llm-orchestrator 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +14 -0
- package/.claude-plugin/plugin.json +19 -0
- package/COMPATIBILITY.md +27 -0
- package/IMPLEMENTATION.md +26 -0
- package/LICENSE +31 -0
- package/NOTICE +17 -0
- package/README.md +291 -0
- package/SKILL.md +125 -0
- package/adapters/agents.mjs +46 -0
- package/adapters/claude/index.mjs +9 -0
- package/adapters/codex/index.mjs +15 -0
- package/adapters/commands.mjs +117 -0
- package/adapters/kilo/index.mjs +5 -0
- package/adapters/opencode/index.mjs +5 -0
- package/bin/attribution-check.mjs +136 -0
- package/bin/cli-options.mjs +90 -0
- package/bin/discover-models.mjs +271 -0
- package/bin/doctor.mjs +191 -0
- package/bin/install.mjs +48 -0
- package/bin/llm-orchestrator.mjs +103 -0
- package/bin/model-thinking-report.mjs +165 -0
- package/bin/render.mjs +22 -0
- package/bin/route.mjs +139 -0
- package/bin/uninstall.mjs +15 -0
- package/lib/adapter-renderer.mjs +114 -0
- package/lib/capability-resolver.mjs +343 -0
- package/lib/dispatch-contract.mjs +583 -0
- package/lib/first-run.mjs +299 -0
- package/lib/harness.mjs +6 -0
- package/lib/installation.mjs +550 -0
- package/lib/project-discovery.mjs +434 -0
- package/lib/router.mjs +660 -0
- package/lib/tool-discovery.mjs +162 -0
- package/models/example-model-inventory.json +82 -0
- package/models/model-thinking-data.json +580 -0
- package/models/model-thinking-matrix.md +157 -0
- package/models/top-models.json +1299 -0
- package/package.json +65 -0
- package/policies/capabilities.md +144 -0
- package/policies/cleanup.md +51 -0
- package/policies/dispatch.md +284 -0
- package/policies/execution.md +116 -0
- package/policies/questions.md +75 -0
- package/policies/routing.md +677 -0
- package/policies/state.md +85 -0
- package/policies/verification.md +72 -0
- package/protocol.md +162 -0
- package/registries/agent-roles.json +1 -0
- package/registries/capabilities.json +58 -0
- package/registries/core-profile.json +183 -0
- package/registries/preferred-tools.json +595 -0
- package/registries/routing-matrix.json +394 -0
- package/registries/task-mappings.json +259 -0
- package/schemas/agent-roles.schema.json +1 -0
- package/schemas/capability-contract.schema.json +209 -0
- package/schemas/installation-manifest.schema.json +57 -0
- package/schemas/project-profile.schema.json +70 -0
- package/schemas/routing-matrix.schema.json +237 -0
- package/schemas/tool-inventory.schema.json +127 -0
- package/schemas/top-models.schema.json +235 -0
- package/skills/orchestrate-core/SKILL.md +18 -0
- package/workflows/bug-fix.md +59 -0
- package/workflows/config.md +57 -0
- package/workflows/deploy.md +57 -0
- package/workflows/feature.md +61 -0
- package/workflows/incident.md +61 -0
- package/workflows/investigation.md +62 -0
- package/workflows/refactor.md +53 -0
- package/workflows/research.md +61 -0
- package/workflows/review.md +58 -0
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_attribution": "llm-orchestrator · created by Bogdan-Gabriel Torcescu · https://www.linkedin.com/in/bogdantorcescu/ · keep this credit when copying or deriving",
|
|
3
|
+
"schema_version": 1,
|
|
4
|
+
"observed_at": "2026-09-22",
|
|
5
|
+
"source_of_truth": "policies/routing.md",
|
|
6
|
+
"note": "Machine-readable encoding of policies/routing.md. The prose remains authoritative for intent; this registry is what lib/router.mjs and bin/route.mjs execute. Model prices and measured cost per task live in models/top-models.json.",
|
|
7
|
+
"tiers": {
|
|
8
|
+
"W": {
|
|
9
|
+
"name": "worker",
|
|
10
|
+
"responsibility": "Local, mechanical, repetitive, well-defined: code search, classification, extraction, small edits, boilerplate, simple tests, consistency checks, scoped transforms.",
|
|
11
|
+
"incumbents": {"claude": "claude-haiku-4-5", "codex": "gpt-5.6-luna"}
|
|
12
|
+
},
|
|
13
|
+
"S": {
|
|
14
|
+
"name": "standard",
|
|
15
|
+
"responsibility": "Default software-engineering model: normal implementation, frontend/backend, moderate debugging, tests, reasonable multi-file refactors, codebase analysis, tool use.",
|
|
16
|
+
"incumbents": {"claude": "claude-sonnet-5", "codex": "gpt-5.6-terra"}
|
|
17
|
+
},
|
|
18
|
+
"X": {
|
|
19
|
+
"name": "senior",
|
|
20
|
+
"responsibility": "Hard debugging, architecture, concurrency, migrations, security, auth, payments, billing, backwards compatibility, critical code review, many invariants.",
|
|
21
|
+
"incumbents": {"claude": "claude-opus-5", "codex": "gpt-5.6-sol"}
|
|
22
|
+
},
|
|
23
|
+
"F": {
|
|
24
|
+
"name": "frontier",
|
|
25
|
+
"responsibility": "Exceptional escalation: very ambiguous, long-horizon, cross-system, major architecture, very large codebase, planning under heavy constraints, or when X fails to produce a solid solution.",
|
|
26
|
+
"incumbents": {"claude": "claude-fable-5", "codex": "gpt-6-astra"},
|
|
27
|
+
"capped_exception": {"claude": "claude-fable-5-1"}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"tier_order": ["W", "S", "X", "F"],
|
|
31
|
+
"thinking_levels": {
|
|
32
|
+
"T0": {
|
|
33
|
+
"use": "Mechanical: copy, grep, formatting, trivial edit.",
|
|
34
|
+
"claude_effort": null,
|
|
35
|
+
"codex_reasoning_effort": "low",
|
|
36
|
+
"haiku_budget": "thinking off"
|
|
37
|
+
},
|
|
38
|
+
"T1": {
|
|
39
|
+
"use": "Local, well-defined task.",
|
|
40
|
+
"claude_effort": "low",
|
|
41
|
+
"codex_reasoning_effort": "low",
|
|
42
|
+
"haiku_budget": "thinking off"
|
|
43
|
+
},
|
|
44
|
+
"T2": {
|
|
45
|
+
"use": "Standard implementation, moderate reasoning.",
|
|
46
|
+
"claude_effort": "medium",
|
|
47
|
+
"codex_reasoning_effort": "medium",
|
|
48
|
+
"haiku_budget": "small budget"
|
|
49
|
+
},
|
|
50
|
+
"T3": {
|
|
51
|
+
"use": "Multi-file reasoning, review, debugging, serious planning.",
|
|
52
|
+
"claude_effort": "high",
|
|
53
|
+
"codex_reasoning_effort": "high",
|
|
54
|
+
"haiku_budget": "moderate budget"
|
|
55
|
+
},
|
|
56
|
+
"T4": {
|
|
57
|
+
"use": "Very hard debugging, security, money, concurrency, migrations, architecture, critical compatibility.",
|
|
58
|
+
"claude_effort": "xhigh",
|
|
59
|
+
"codex_reasoning_effort": "high",
|
|
60
|
+
"codex_note": "No usable effort above `high` on the gpt-5.6 family: T4 is `high` plus an independent second reviewer. Astra expresses T4 as `xhigh`.",
|
|
61
|
+
"haiku_budget": "not available — escalate to S instead of inflating the budget"
|
|
62
|
+
},
|
|
63
|
+
"T5": {
|
|
64
|
+
"use": "Frontier-only; can over-think simple tasks — diminishing returns.",
|
|
65
|
+
"claude_effort": "max",
|
|
66
|
+
"codex_reasoning_effort": "max",
|
|
67
|
+
"codex_note": "Astra `max` only; not available on gpt-5.6.",
|
|
68
|
+
"haiku_budget": "not available — escalate to S instead of inflating the budget"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"thinking_level_order": ["T0", "T1", "T2", "T3", "T4", "T5"],
|
|
72
|
+
"haiku_budget_rule": "The Claude W model has no `effort` parameter — only `thinking: enabled` + `budget_tokens`. T0/T1 = thinking off, T2 = small budget, T3 = moderate budget. If a task would need T4+, escalate to S instead of inflating the budget: a small model that thinks a lot does not become a frontier model.",
|
|
73
|
+
"resolution": {
|
|
74
|
+
"W T0-T1": {
|
|
75
|
+
"claude": {"model": "claude-haiku-4-5", "effort": null, "thinking": "off"},
|
|
76
|
+
"codex": {"model": "gpt-5.6-luna", "effort": "low"}
|
|
77
|
+
},
|
|
78
|
+
"W T2": {
|
|
79
|
+
"claude": {"model": "claude-haiku-4-5", "effort": null, "thinking": "small budget"},
|
|
80
|
+
"codex": {"model": "gpt-5.6-luna", "effort": "medium"}
|
|
81
|
+
},
|
|
82
|
+
"W T3": {
|
|
83
|
+
"claude": null,
|
|
84
|
+
"claude_note": "No headroom at the Claude W tier — escalate to S.",
|
|
85
|
+
"codex": {"model": "gpt-5.6-luna", "effort": "xhigh", "alternate_effort": "max"}
|
|
86
|
+
},
|
|
87
|
+
"S T1": {
|
|
88
|
+
"claude": {"model": "claude-sonnet-5", "effort": "low"},
|
|
89
|
+
"codex": {"model": "gpt-5.6-terra", "effort": "low"}
|
|
90
|
+
},
|
|
91
|
+
"S T2": {
|
|
92
|
+
"claude": {"model": "claude-sonnet-5", "effort": "medium"},
|
|
93
|
+
"codex": {"model": "gpt-5.6-terra", "effort": "medium"}
|
|
94
|
+
},
|
|
95
|
+
"S T3": {
|
|
96
|
+
"claude": {"model": "claude-sonnet-5", "effort": "high"},
|
|
97
|
+
"codex": {"model": "gpt-5.6-terra", "effort": "high"}
|
|
98
|
+
},
|
|
99
|
+
"X T2": {
|
|
100
|
+
"claude": {"model": "claude-opus-5", "effort": "medium"},
|
|
101
|
+
"codex": {"model": "gpt-5.6-sol", "effort": "medium"}
|
|
102
|
+
},
|
|
103
|
+
"X T3": {
|
|
104
|
+
"claude": {"model": "claude-opus-5", "effort": "high"},
|
|
105
|
+
"codex": {"model": "gpt-5.6-sol", "effort": "high"}
|
|
106
|
+
},
|
|
107
|
+
"X T4": {
|
|
108
|
+
"claude": {"model": "claude-opus-5", "effort": "xhigh"},
|
|
109
|
+
"codex": {"model": "gpt-5.6-sol", "effort": "high", "independent_second_reviewer": {"model": "gpt-5.6-sol", "effort": "high"}}
|
|
110
|
+
},
|
|
111
|
+
"F T3": {
|
|
112
|
+
"claude": {"model": "claude-fable-5", "effort": "high"},
|
|
113
|
+
"codex": {"model": "gpt-6-astra", "effort": "high"}
|
|
114
|
+
},
|
|
115
|
+
"F T4": {
|
|
116
|
+
"claude": {"model": "claude-fable-5", "effort": "xhigh"},
|
|
117
|
+
"codex": {"model": "gpt-6-astra", "effort": "xhigh"}
|
|
118
|
+
},
|
|
119
|
+
"F T5": {
|
|
120
|
+
"claude": {"model": "claude-fable-5", "effort": "max", "note": "Essentially never. Fable 5.1 only under the ≤2% cap."},
|
|
121
|
+
"codex": {"model": "gpt-6-astra", "effort": "max", "note": "Essentially never."}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"pair_normalization": {
|
|
125
|
+
"W T0": "W T0-T1",
|
|
126
|
+
"W T1": "W T0-T1",
|
|
127
|
+
"W T4": "S T3",
|
|
128
|
+
"W T5": "S T3",
|
|
129
|
+
"S T0": "S T1",
|
|
130
|
+
"S T4": "X T4",
|
|
131
|
+
"S T5": "X T4",
|
|
132
|
+
"X T0": "X T2",
|
|
133
|
+
"X T1": "X T2",
|
|
134
|
+
"X T5": "F T5",
|
|
135
|
+
"F T0": "F T3",
|
|
136
|
+
"F T1": "F T3",
|
|
137
|
+
"F T2": "F T3"
|
|
138
|
+
},
|
|
139
|
+
"default_routing": {
|
|
140
|
+
"mechanical": "W T0-T1",
|
|
141
|
+
"standard_implementation": "S T2",
|
|
142
|
+
"complex_implementation": "S T3",
|
|
143
|
+
"planning": "S T3",
|
|
144
|
+
"hard_planning": "X T3",
|
|
145
|
+
"frontier_planning": "F T3",
|
|
146
|
+
"difficult_debug_review": "X T3",
|
|
147
|
+
"critical_risk": "X T4",
|
|
148
|
+
"frontier": "F T3",
|
|
149
|
+
"last_escalation": "F T5"
|
|
150
|
+
},
|
|
151
|
+
"task_flows": {
|
|
152
|
+
"INCIDENT": {
|
|
153
|
+
"phases": [
|
|
154
|
+
{"phase": "evidence", "pair": "W T0-T1", "roles": ["production-telemetry-collector", "route-data-flow-tracer"], "gate": "telemetry_before_hypothesis", "parallelizable": true},
|
|
155
|
+
{"phase": "specialist_evidence", "pair": "S T2", "roles": ["route-data-flow-tracer", "backend-fixer"], "gate": "telemetry_before_hypothesis", "parallelizable": true},
|
|
156
|
+
{"phase": "synthesis", "pair": "X T3", "roles": ["orchestrator"], "gate": "hypothesis_validated", "parallelizable": false, "escalation": "F T3 only if X finds no solid hypothesis"},
|
|
157
|
+
{"phase": "fix", "pair": "S T2", "roles": ["backend-fixer", "frontend-fixer"], "gate": "risk_floor_implementation", "parallelizable": false},
|
|
158
|
+
{"phase": "verify", "pair": "S T2", "roles": ["test-engineer"], "gate": "verification_passed", "parallelizable": false},
|
|
159
|
+
{"phase": "review", "pair": "X T3", "roles": ["code-reviewer", "adversarial-skeptic"], "gate": "independent_review", "parallelizable": false}
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
"FEATURE": {
|
|
163
|
+
"phases": [
|
|
164
|
+
{"phase": "plan", "pair": "S T3", "roles": ["orchestrator"], "gate": "plan_accepted", "parallelizable": false, "escalation": "X T3–T4 when complex; F T4 frontier only"},
|
|
165
|
+
{"phase": "tdd", "pair": "S T2", "roles": ["test-engineer"], "gate": "failing_test_first", "parallelizable": true},
|
|
166
|
+
{"phase": "implementation", "pair": "S T2", "roles": ["backend-fixer", "frontend-fixer", "frontend-specialist"], "gate": "risk_floor_implementation", "parallelizable": true},
|
|
167
|
+
{"phase": "mechanical", "pair": "W T0-T1", "roles": ["code-simplifier"], "gate": null, "parallelizable": true},
|
|
168
|
+
{"phase": "review", "pair": "S T3", "roles": ["code-reviewer"], "gate": "risk_floor_review", "parallelizable": false},
|
|
169
|
+
{"phase": "re_review", "pair": "S T1", "roles": ["code-reviewer"], "gate": "fixes_landed", "parallelizable": false}
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
"BUG_FIX": {
|
|
173
|
+
"phases": [
|
|
174
|
+
{"phase": "reproduce", "pair": "W T0-T1", "roles": ["route-data-flow-tracer"], "gate": "reproduced", "parallelizable": true},
|
|
175
|
+
{"phase": "hypothesis", "pair": "S T3", "roles": ["backend-fixer", "frontend-fixer"], "gate": "hypothesis_validated", "parallelizable": false, "escalation": "X T3–T4 for money, concurrency or security"},
|
|
176
|
+
{"phase": "fix", "pair": "S T2", "roles": ["backend-fixer", "frontend-fixer"], "gate": "risk_floor_implementation", "parallelizable": false},
|
|
177
|
+
{"phase": "regression_test", "pair": "S T2", "roles": ["test-engineer"], "gate": "regression_test_present", "parallelizable": false},
|
|
178
|
+
{"phase": "review", "pair": "S T2", "roles": ["code-reviewer"], "gate": "risk_floor_review", "parallelizable": false}
|
|
179
|
+
]
|
|
180
|
+
},
|
|
181
|
+
"REFACTOR": {
|
|
182
|
+
"phases": [
|
|
183
|
+
{"phase": "analysis", "pair": "S T2", "roles": ["orchestrator", "code-simplifier"], "gate": "incremental_plan", "parallelizable": false},
|
|
184
|
+
{"phase": "mechanical_steps", "pair": "W T0-T1", "roles": ["code-simplifier"], "gate": null, "parallelizable": true},
|
|
185
|
+
{"phase": "verification", "pair": "S T2", "roles": ["test-engineer"], "gate": "behavior_preserved", "parallelizable": false},
|
|
186
|
+
{"phase": "review", "pair": "S T3", "roles": ["code-reviewer"], "gate": "risk_floor_review", "parallelizable": false}
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
"INVESTIGATION": {
|
|
190
|
+
"phases": [
|
|
191
|
+
{"phase": "evidence_collection", "pair": "W T0-T1", "roles": ["route-data-flow-tracer", "production-telemetry-collector"], "gate": "evidence_recorded", "parallelizable": true},
|
|
192
|
+
{"phase": "synthesis", "pair": "S T2", "roles": ["orchestrator"], "gate": "findings_supported_by_evidence", "parallelizable": false, "escalation": "X T3 if complex"},
|
|
193
|
+
{"phase": "adversarial_review", "pair": "S T3", "roles": ["adversarial-skeptic"], "gate": "independent_challenge", "parallelizable": false}
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
"DEPLOY": {
|
|
197
|
+
"phases": [
|
|
198
|
+
{"phase": "pre_checks", "pair": "W T0-T1", "roles": ["test-engineer"], "gate": "pre_deploy_checks_green", "parallelizable": true},
|
|
199
|
+
{"phase": "smoke", "pair": "W T0-T1", "roles": ["test-engineer"], "gate": "smoke_passed", "parallelizable": true},
|
|
200
|
+
{"phase": "soak", "pair": "S T2", "roles": ["production-telemetry-collector"], "gate": "telemetry_clean", "parallelizable": false}
|
|
201
|
+
]
|
|
202
|
+
},
|
|
203
|
+
"CONFIG": {
|
|
204
|
+
"phases": [
|
|
205
|
+
{"phase": "change", "pair": "S T2", "roles": ["backend-fixer"], "gate": "risk_floor_implementation", "parallelizable": false},
|
|
206
|
+
{"phase": "migration", "pair": "S T3", "roles": ["db-migration-author"], "gate": "migration_and_provenance", "parallelizable": false},
|
|
207
|
+
{"phase": "review", "pair": "S T3", "roles": ["code-reviewer"], "gate": "risk_floor_review", "parallelizable": false, "escalation": "X T4 review for migrations on money tables"}
|
|
208
|
+
]
|
|
209
|
+
},
|
|
210
|
+
"REVIEW": {
|
|
211
|
+
"phases": [
|
|
212
|
+
{"phase": "review", "pair": "S T3", "roles": ["code-reviewer"], "gate": "risk_floor_review", "parallelizable": false, "escalation": "X T4 for money/security diffs"},
|
|
213
|
+
{"phase": "adversarial_review", "pair": "S T3", "roles": ["adversarial-skeptic"], "gate": "independent_challenge", "parallelizable": false}
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"RESEARCH": {
|
|
217
|
+
"phases": [
|
|
218
|
+
{"phase": "source_collection", "pair": "W T0-T1", "roles": ["route-data-flow-tracer"], "gate": "sources_recorded", "parallelizable": true},
|
|
219
|
+
{"phase": "synthesis", "pair": "S T3", "roles": ["orchestrator"], "gate": "claims_corroborated", "parallelizable": false},
|
|
220
|
+
{"phase": "corroboration", "pair": "S T2", "roles": ["adversarial-skeptic"], "gate": "independent_challenge", "parallelizable": false}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"risk_floors": {
|
|
225
|
+
"text": {"implementation": "S T1", "review": "S T2", "independent_review": false},
|
|
226
|
+
"i18n": {"implementation": "S T1", "review": "S T2", "independent_review": false},
|
|
227
|
+
"ui-cosmetic": {"implementation": "W T0-T1", "review": "S T1", "independent_review": false},
|
|
228
|
+
"ui-component": {"implementation": "S T2", "review": "S T3", "independent_review": false},
|
|
229
|
+
"api-crud": {"implementation": "S T2", "review": "S T3", "independent_review": false},
|
|
230
|
+
"business-logic": {"implementation": "S T3", "review": "X T3", "independent_review": true},
|
|
231
|
+
"sql": {"implementation": "S T2", "review": "S T3", "independent_review": false},
|
|
232
|
+
"schema-migration": {"implementation": "S T3", "review": "X T4", "independent_review": true},
|
|
233
|
+
"realtime": {"implementation": "S T3", "review": "X T3", "independent_review": true},
|
|
234
|
+
"client-compatibility": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
235
|
+
"auth": {"implementation": "S T3", "review": "X T4", "independent_review": true},
|
|
236
|
+
"security": {"implementation": "S T3", "review": "X T4", "independent_review": true},
|
|
237
|
+
"payments": {"implementation": "S T3", "review": "X T4", "independent_review": true},
|
|
238
|
+
"in-app-purchase": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
239
|
+
"store-billing": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
240
|
+
"refund": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
241
|
+
"entitlement": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
242
|
+
"concurrency": {"implementation": "X T3", "review": "X T4", "independent_review": true},
|
|
243
|
+
"major-architecture": {"implementation": "X T4", "review": "F T3", "independent_review": true},
|
|
244
|
+
"cross-system-redesign": {"implementation": "F T3", "review": "F T4", "independent_review": true},
|
|
245
|
+
"test-boilerplate": {"implementation": "W T0-T1", "review": null, "independent_review": false}
|
|
246
|
+
},
|
|
247
|
+
"risk_to_review_floor": {
|
|
248
|
+
"low": "S T1",
|
|
249
|
+
"medium": "S T2",
|
|
250
|
+
"high": "X T3",
|
|
251
|
+
"critical": "X T4"
|
|
252
|
+
},
|
|
253
|
+
"risk_floor_rule": "Project rows in the consuming project's `## Orchestration bindings (project)` section override these upward, never downward. A cheaper frontier config never overrides a risk-floor row. The reviewer must be an independent agent — a separate child with no full-history fork.",
|
|
254
|
+
"agent_defaults": {
|
|
255
|
+
"orchestrator": "S T3",
|
|
256
|
+
"production-telemetry-collector": "W T0-T1",
|
|
257
|
+
"route-data-flow-tracer": "W T0-T1",
|
|
258
|
+
"explore": "W T0-T1",
|
|
259
|
+
"db-concurrency-specialist": "X T3",
|
|
260
|
+
"frontend-specialist": "S T3",
|
|
261
|
+
"provider-webhook-specialist": "X T2",
|
|
262
|
+
"adversarial-skeptic": "S T3",
|
|
263
|
+
"test-engineer": "S T2",
|
|
264
|
+
"db-migration-author": "S T3",
|
|
265
|
+
"backend-fixer": "S T2",
|
|
266
|
+
"frontend-fixer": "S T2",
|
|
267
|
+
"code-simplifier": "S T2",
|
|
268
|
+
"code-reviewer": "S T2",
|
|
269
|
+
"general": "S T2"
|
|
270
|
+
},
|
|
271
|
+
"agent_default_notes": {
|
|
272
|
+
"provider-webhook-specialist": "X T3 on broken signatures or idempotency.",
|
|
273
|
+
"orchestrator": "S T3 default; X T3–T4 when complex; F only for frontier planning.",
|
|
274
|
+
"code-simplifier": "S T2 per the agent-defaults table; the registry role's own W seat applies only to purely mechanical cleanup passes."
|
|
275
|
+
},
|
|
276
|
+
"escalation_ladder": {
|
|
277
|
+
"claude": [
|
|
278
|
+
{"model": "claude-haiku-4-5", "effort": null},
|
|
279
|
+
{"model": "claude-sonnet-5", "effort": "low"},
|
|
280
|
+
{"model": "claude-sonnet-5", "effort": "medium"},
|
|
281
|
+
{"model": "claude-sonnet-5", "effort": "high"},
|
|
282
|
+
{"model": "claude-opus-5", "effort": "high"},
|
|
283
|
+
{"model": "claude-opus-5", "effort": "xhigh"},
|
|
284
|
+
{"model": "claude-fable-5", "effort": "high"},
|
|
285
|
+
{"model": "claude-fable-5", "effort": "xhigh"},
|
|
286
|
+
{"model": "claude-fable-5", "effort": "max"},
|
|
287
|
+
{"model": "claude-fable-5-1", "effort": "high", "requires_explicit_flag": true, "note": "≤2% cap, explicit request or documented Fable 5 F-T4 failure only."}
|
|
288
|
+
],
|
|
289
|
+
"codex": [
|
|
290
|
+
{"model": "gpt-5.6-luna", "effort": "low"},
|
|
291
|
+
{"model": "gpt-5.6-luna", "effort": "medium"},
|
|
292
|
+
{"model": "gpt-5.6-luna", "effort": "xhigh"},
|
|
293
|
+
{"model": "gpt-5.6-luna", "effort": "max"},
|
|
294
|
+
{"model": "gpt-5.6-terra", "effort": "medium"},
|
|
295
|
+
{"model": "gpt-5.6-terra", "effort": "high"},
|
|
296
|
+
{"model": "gpt-5.6-sol", "effort": "medium"},
|
|
297
|
+
{"model": "gpt-5.6-sol", "effort": "high"},
|
|
298
|
+
{"model": "gpt-5.6-sol", "effort": "high", "independent_second_reviewer": true},
|
|
299
|
+
{"model": "gpt-6-astra", "effort": "high"},
|
|
300
|
+
{"model": "gpt-6-astra", "effort": "xhigh"},
|
|
301
|
+
{"model": "gpt-6-astra", "effort": "max", "note": "Essentially never."}
|
|
302
|
+
]
|
|
303
|
+
},
|
|
304
|
+
"escalation_rules": [
|
|
305
|
+
"Escalate incrementally — never jump from S medium to F max.",
|
|
306
|
+
"Raise thinking first when the problem needs deeper reasoning; raise the model when it needs capacity, judgment, autonomy, context or consistency.",
|
|
307
|
+
"Before escalating after a failure, remove redundant context and fix missing evidence, tool access or environment — those are not reasoning failures.",
|
|
308
|
+
"Budget one targeted escalation after a failed attempt; at a second relevant failure narrow scope or move to a higher-capacity model.",
|
|
309
|
+
"Never use a retry policy to lower a required implementation or review floor.",
|
|
310
|
+
"Refusal loop: a weaker subagent that explicitly refuses a task as beyond its capability is re-dispatched one tier up at the same thinking level."
|
|
311
|
+
],
|
|
312
|
+
"fan_out_minimum": {
|
|
313
|
+
"SIMPLE": 1,
|
|
314
|
+
"MODERATE": 2,
|
|
315
|
+
"COMPLEX": 3,
|
|
316
|
+
"CRITICAL": 4
|
|
317
|
+
},
|
|
318
|
+
"parallel_bounds": {
|
|
319
|
+
"min": 2,
|
|
320
|
+
"max": 6,
|
|
321
|
+
"max_active_shards": 8
|
|
322
|
+
},
|
|
323
|
+
"target_distribution": {
|
|
324
|
+
"W": [30, 40],
|
|
325
|
+
"S": [40, 50],
|
|
326
|
+
"X": [5, 12],
|
|
327
|
+
"F": [10, 15]
|
|
328
|
+
},
|
|
329
|
+
"cost_discipline": {
|
|
330
|
+
"primary_metric": "mean USD per task across the flow",
|
|
331
|
+
"healthy_band_usd_per_task": [0.4, 0.7],
|
|
332
|
+
"too_expensive_above_usd_per_task": 1.0,
|
|
333
|
+
"too_cheap_below_usd_per_task": 0.25,
|
|
334
|
+
"note": "Tier shares are a sanity check on classification, not the metric. Above ~$1.00 the router is escalating work a cheaper tier would have solved; below ~$0.25 mechanical models are probably running tasks that need judgment."
|
|
335
|
+
},
|
|
336
|
+
"caps": {
|
|
337
|
+
"fable_5_1_share_max": 0.02,
|
|
338
|
+
"terra_max_effort": "high",
|
|
339
|
+
"sol_max_effort": "high",
|
|
340
|
+
"codex_long_context_cliff_tokens": 272000,
|
|
341
|
+
"haiku_context_cap": 200000
|
|
342
|
+
},
|
|
343
|
+
"quota_degradation_ladder": [
|
|
344
|
+
{"order": 1, "give_up": "Parallel breadth on evidence gathering — serialise the fan-out.", "why": "Costs wall-clock, not correctness."},
|
|
345
|
+
{"order": 2, "give_up": "One thinking notch on dispatches that are not on a risk-floor row.", "why": "Measured: medium ≈ high output quality on routine work."},
|
|
346
|
+
{"order": 3, "give_up": "Full re-review → scoped re-review over the fix range only.", "why": "Verifies the fix without re-reading the task."},
|
|
347
|
+
{"order": 4, "give_up": "Implementation model tier where the plan carries literal code.", "why": "Transcription does not need judgment."},
|
|
348
|
+
{"order": 5, "give_up": "Batch same-shape tasks into one dispatch and review the batch as a unit.", "why": "One context build instead of N."}
|
|
349
|
+
],
|
|
350
|
+
"never_give_up": [
|
|
351
|
+
"The independent-review seat on a risk-floor row.",
|
|
352
|
+
"The review model on money.",
|
|
353
|
+
"The review model on security.",
|
|
354
|
+
"The review model on concurrency.",
|
|
355
|
+
"The review model on migrations.",
|
|
356
|
+
"The review model on client compatibility.",
|
|
357
|
+
"Cut the implementer, never the reviewer.",
|
|
358
|
+
"Defer beats degrade: if the only way to fit the work into this window is to cut a risk-floor review, stop and wait for the window to roll."
|
|
359
|
+
],
|
|
360
|
+
"context_rules": {
|
|
361
|
+
"worker_context_cap_tokens": 200000,
|
|
362
|
+
"worker_shard_soft_cap_tokens": 150000,
|
|
363
|
+
"long_context_cliff_tokens": 272000,
|
|
364
|
+
"rules": [
|
|
365
|
+
"Context can force escalation independent of difficulty: a mechanical task over a >150K working set is not a W dispatch on a 200K model. Route it S T0–T1 or shard the input.",
|
|
366
|
+
"Do not pay for context you do not ship — give subagents trimmed inputs.",
|
|
367
|
+
"Input past the long-context cliff reprices the whole request; shard below it whenever the task allows and treat any dispatch above it as a tier bump in the cost ledger.",
|
|
368
|
+
"Where every available model is large-context, the window floor does not apply — the constraint is pricing, not capability.",
|
|
369
|
+
"Where a model's long-context repricing is undocumented, assume it may apply and prefer the known-flat-priced option."
|
|
370
|
+
]
|
|
371
|
+
},
|
|
372
|
+
"dispatch_metadata_fields": [
|
|
373
|
+
"harness",
|
|
374
|
+
"provider",
|
|
375
|
+
"model_requested",
|
|
376
|
+
"model_effective",
|
|
377
|
+
"effort_requested",
|
|
378
|
+
"effort_effective",
|
|
379
|
+
"role",
|
|
380
|
+
"risk",
|
|
381
|
+
"reason_for_tier",
|
|
382
|
+
"review_floor",
|
|
383
|
+
"selection_reason",
|
|
384
|
+
"price_source",
|
|
385
|
+
"price_as_of",
|
|
386
|
+
"benchmark_version",
|
|
387
|
+
"inventory_source",
|
|
388
|
+
"inventory_observed_at",
|
|
389
|
+
"availability",
|
|
390
|
+
"quota_state",
|
|
391
|
+
"window_state",
|
|
392
|
+
"acceptance_outcome"
|
|
393
|
+
]
|
|
394
|
+
}
|