roles.sh had been red for a while, hiding everything behind whatever failed first: - planner.md was bumped to 4.2.0 (board-triggered split mode) without updating the test's hardcoded 4.1.0 expectations. - reviewer.md had drifted two minor versions ahead of its catalog.json entry (1.6.0 registered vs. 1.8.0 actual) across two prior commits that never touched the catalog; catalog.json now matches. - researcher.json's generic Bash(*) grant is an intentional, already deployed capability (docs/intent/research-pipeline-researcher-shell.md) that the blanket "no self-close settings file may hold Bash(*)" loop didn't know about; researcher.json is now a documented exception with its own check that the required deny-prefix list stays in place. - fixer.md's Inspector/Fixer split reworded "erfolgreichen Review" to "erfolgreichem Review"; the substring assertion didn't follow. - the operator.json permission check had a jq and/or precedence bug (missing parens around length == N clauses) that made it error out rather than actually check anything. agents/tests/roles.sh, agents/tests/fixer-role.sh and agents/tests/inspector-role.sh all pass end to end now. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T7UVrKsttMP9a6FiGFna9b
209 lines
7.8 KiB
JSON
209 lines
7.8 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"profile_policy": {
|
|
"sol_high_requires_measured_quality": true,
|
|
"defaults_are_configurable": true,
|
|
"running_processes_are_unchanged": true
|
|
},
|
|
"roles": [
|
|
{
|
|
"id": "dialog-agent",
|
|
"version": "1.0.0",
|
|
"status": "active",
|
|
"definition": "agent.md",
|
|
"start": "xmpp-worker",
|
|
"sandbox": "read-only",
|
|
"profile_id": "orchestrator"
|
|
},
|
|
{
|
|
"id": "builder",
|
|
"version": "2.1.0",
|
|
"status": "active",
|
|
"definition": "builder.md",
|
|
"start": "xmpp-worker",
|
|
"sandbox": "scoped-write"
|
|
},
|
|
{
|
|
"id": "graphics",
|
|
"version": "2.0.0",
|
|
"status": "active",
|
|
"definition": "graphics.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "per-assignment",
|
|
"profile_id": "grafiker"
|
|
},
|
|
{
|
|
"id": "administrator",
|
|
"version": "3.1.0",
|
|
"status": "active",
|
|
"definition": "admin.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "per-assignment",
|
|
"profile_id": "administrator"
|
|
},
|
|
{
|
|
"id": "agent-manager",
|
|
"version": "2.3.0",
|
|
"status": "active",
|
|
"definition": "agent-manager.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "per-assignment",
|
|
"profile_id": "agent-manager"
|
|
},
|
|
{
|
|
"id": "reviewer",
|
|
"version": "1.8.0",
|
|
"status": "active",
|
|
"definition": "reviewer.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "scoped-write",
|
|
"profile_id": "reviewer"
|
|
},
|
|
{
|
|
"id": "orga",
|
|
"version": "2.1.1",
|
|
"status": "active",
|
|
"definition": "orga.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "helper-only",
|
|
"profile_id": "orga"
|
|
},
|
|
{
|
|
"id": "planner",
|
|
"version": "4.2.0",
|
|
"status": "active",
|
|
"definition": "planner.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "scoped-write",
|
|
"profile_id": "planner"
|
|
},
|
|
{
|
|
"id": "researcher",
|
|
"version": "1.0.0",
|
|
"status": "active",
|
|
"definition": "researcher.md",
|
|
"start": "herdr-visible",
|
|
"sandbox": "scoped-write",
|
|
"profile_id": "researcher"
|
|
},
|
|
{
|
|
"id": "operator",
|
|
"version": "1.0.0",
|
|
"status": "active",
|
|
"definition": "operator.md",
|
|
"start": "board-headless",
|
|
"sandbox": "read-only",
|
|
"profile_id": "operator"
|
|
},
|
|
{
|
|
"id": "inspector",
|
|
"version": "1.0.0",
|
|
"status": "active",
|
|
"definition": "inspector.md",
|
|
"start": "board-headless",
|
|
"sandbox": "read-only"
|
|
},
|
|
{
|
|
"id": "fixer",
|
|
"version": "2.0.0",
|
|
"status": "active",
|
|
"definition": "fixer.md",
|
|
"start": "board-headless",
|
|
"sandbox": "isolated-worktree-write"
|
|
}
|
|
],
|
|
"model_profiles": [
|
|
{
|
|
"id": "orchestrator",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "fallback": null },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "medium", "settings_file": "agents/claude-settings/orchestrator.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
},
|
|
"notes": "Konfigurierbarer Startdefault für Dialog-Orchestrierung."
|
|
},
|
|
{
|
|
"id": "administrator",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "high", "fallback": { "model": "gpt-5.6-sol", "reasoning_effort": "high", "condition": "nur bei gemessener Qualitätsnotwendigkeit" } },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "high", "settings_file": "agents/claude-settings/administrator.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "agent-manager",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-sol", "reasoning_effort": "high", "fallback": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "condition": "Routineaufgabe" } },
|
|
"claude": { "model": "claude-opus-4-8", "reasoning_effort": "high", "settings_file": "agents/claude-settings/agent-manager.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "reviewer",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-sol", "reasoning_effort": "high", "fallback": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "condition": "Routineaufgabe" } },
|
|
"claude": { "model": "claude-opus-4-8", "reasoning_effort": "high", "settings_file": "agents/claude-settings/reviewer.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "planner",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "high", "fallback": null },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "high", "settings_file": "agents/claude-settings/planner.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "researcher",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "fallback": { "model": "gpt-5.6-luna", "reasoning_effort": "low", "condition": "Routineinventur" } },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "medium", "settings_file": "agents/claude-settings/researcher.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineinventur" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "operator",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "high", "fallback": null },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "high", "settings_file": "agents/claude-settings/operator.json", "fallback": null }
|
|
},
|
|
"notes": "Planungsstarkes Profil für atomare Board-Entscheidungen und Builder-only-Zerlegung."
|
|
},
|
|
{
|
|
"id": "grafiker",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "fallback": { "model": "gpt-5.6-luna", "reasoning_effort": "low", "condition": "reines Resize" } },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "medium", "settings_file": "agents/claude-settings/grafiker.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "reines Resize" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "orga",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-terra", "reasoning_effort": "medium", "fallback": null },
|
|
"claude": { "model": "claude-sonnet-5", "reasoning_effort": "medium", "settings_file": "agents/claude-settings/orga.json", "fallback": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "low", "condition": "Routineaufgabe" } }
|
|
}
|
|
},
|
|
{
|
|
"id": "dispatcher",
|
|
"default_runtime": "none",
|
|
"runtimes": {
|
|
"none": { "model": null, "reasoning_effort": null, "fallback": null }
|
|
},
|
|
"execution": "no-llm",
|
|
"runtime_policy": "no-llm; kein Codex- oder Claude-Prozess"
|
|
},
|
|
{
|
|
"id": "finance",
|
|
"default_runtime": "codex",
|
|
"runtimes": {
|
|
"codex": { "model": "gpt-5.6-luna", "reasoning_effort": "medium", "fallback": null },
|
|
"claude": { "model": "claude-haiku-4-5-20251001", "reasoning_effort": "medium", "settings_file": "agents/claude-settings/finance.json", "fallback": null }
|
|
},
|
|
"legacy_fallbacks": "preserve-existing-historical-fallbacks"
|
|
}
|
|
]
|
|
}
|