@open-agent-toolkit/cli 0.2.19 → 0.2.21

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.
Files changed (66) hide show
  1. package/assets/config/dispatch-matrix-recommendation.json +15 -5
  2. package/assets/docs/cli-utilities/configuration.md +10 -5
  3. package/assets/docs/contributing/index.md +1 -0
  4. package/assets/docs/contributing/verifying-cursor-pins.md +282 -0
  5. package/assets/docs/workflows/projects/artifacts.md +1 -1
  6. package/assets/docs/workflows/projects/dispatch-ceiling.md +50 -4
  7. package/assets/docs/workflows/skills/explainer-kit.md +188 -23
  8. package/assets/docs/workflows/skills/index.md +1 -1
  9. package/assets/public-package-versions.json +4 -4
  10. package/assets/skills/explainer-kit/SKILL.md +87 -25
  11. package/assets/skills/explainer-kit/briefs/deep-dive.md +35 -0
  12. package/assets/skills/explainer-kit/briefs/engineer-tour.md +45 -0
  13. package/assets/skills/explainer-kit/briefs/program-recap.md +41 -0
  14. package/assets/skills/explainer-kit/briefs/project-explainer.md +38 -0
  15. package/assets/skills/explainer-kit/briefs/project-page.md +38 -0
  16. package/assets/skills/explainer-kit/briefs/project-recap.md +47 -0
  17. package/assets/skills/explainer-kit/briefs/supporting-diagram.md +28 -0
  18. package/assets/skills/explainer-kit/briefs/walkthrough-deck.md +35 -0
  19. package/assets/skills/explainer-kit/examples/project-recap/content.md +57 -14
  20. package/assets/skills/explainer-kit/examples/project-recap/fact-base.json +104 -0
  21. package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +26 -4
  22. package/assets/skills/explainer-kit/recipes/engineer-tour.json +27 -10
  23. package/assets/skills/explainer-kit/recipes/program-recap.json +35 -11
  24. package/assets/skills/explainer-kit/recipes/project-explainer.json +27 -10
  25. package/assets/skills/explainer-kit/recipes/project-recap.json +43 -11
  26. package/assets/skills/explainer-kit/references/contracts.md +45 -19
  27. package/assets/skills/explainer-kit/schemas/author-request.v2.schema.json +41 -0
  28. package/assets/skills/explainer-kit/schemas/author-result.v2.schema.json +52 -0
  29. package/assets/skills/explainer-kit/scripts/lib/browser-runtime.mjs +442 -0
  30. package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +223 -10
  31. package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +28 -43
  32. package/assets/skills/explainer-kit/scripts/lib/diagram.mjs +237 -0
  33. package/assets/skills/explainer-kit/scripts/lib/html-safety.mjs +680 -0
  34. package/assets/skills/explainer-kit/scripts/lib/markdown.mjs +414 -0
  35. package/assets/skills/explainer-kit/scripts/lib/qa.mjs +309 -10
  36. package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +313 -41
  37. package/assets/skills/explainer-kit/scripts/lib/records.mjs +61 -0
  38. package/assets/skills/explainer-kit/scripts/lib/render.mjs +166 -12
  39. package/assets/skills/explainer-kit/scripts/render-qa.mjs +147 -2
  40. package/assets/skills/explainer-kit/scripts/run.mjs +796 -272
  41. package/assets/skills/explainer-kit/templates/deck-shell.html +25 -5
  42. package/assets/skills/explainer-kit/templates/diagram-shell.html +29 -7
  43. package/assets/skills/explainer-kit/templates/engineer-tour.html +133 -9
  44. package/assets/skills/explainer-kit/templates/house-style.html +82 -0
  45. package/assets/skills/oat-explainer-kit/SKILL.md +16 -9
  46. package/assets/skills/oat-explainer-kit/references/author-callback.md +51 -0
  47. package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +10 -8
  48. package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +14 -0
  49. package/assets/skills/oat-explainer-kit/scripts/run.mjs +7 -11
  50. package/assets/skills/oat-project-complete/SKILL.md +18 -2
  51. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  52. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +7 -1
  53. package/assets/skills/oat-wave-execute/SKILL.md +12 -19
  54. package/assets/skills/oat-wave-program/SKILL.md +12 -13
  55. package/assets/skills/subagent-orchestration/SKILL.md +1 -1
  56. package/assets/skills/subagent-orchestration/references/evidence-and-refresh.md +153 -15
  57. package/assets/skills/subagent-orchestration/references/model-selection-principles.md +75 -3
  58. package/assets/skills/subagent-orchestration/references/provider-claude.md +95 -35
  59. package/assets/skills/subagent-orchestration/references/provider-codex.md +36 -10
  60. package/assets/skills/subagent-orchestration/references/provider-cursor.md +91 -15
  61. package/dist/providers/cursor/codec/catalog.d.ts +19 -1
  62. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -1
  63. package/dist/providers/cursor/codec/catalog.js +54 -0
  64. package/package.json +2 -2
  65. package/assets/skills/explainer-kit/schemas/author-request.schema.json +0 -85
  66. package/assets/skills/explainer-kit/schemas/author-result.schema.json +0 -65
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-implement
3
- version: 2.1.9
3
+ version: 2.2.0
4
4
  description: Use when plan.md is ready for execution. Dispatches one phase implementer per phase, owns independent phase review and bounded fix routing, and supports plan-declared worktree-isolated parallel phases.
5
5
  oat_gateable: true
6
6
  argument-hint: '[--retry-limit <N>] [--dry-run]'
@@ -751,7 +751,13 @@ Before generating, inspect the active project's explainer runs. A fresh `project
751
751
  Resolve recap intent through `oat-explainer-kit`. When `OAT_AUTONOMOUS=1` and no fresh recap exists, attempt `project-recap` exactly once; missing or stale persisted intent cannot suppress this autonomous attempt. Interactive mode honors the adapter's resolved persisted or workflow intent.
752
752
 
753
753
  Invoke the `oat-explainer-kit` adapter first, then run its shared tracked-run finalizer in `dedicated` mode for a successful build. Use the adapter result and finalizer result as returned; do not improvise commits, durability evidence, or reruns. Outcomes `failed` and `built-not-durable` are recorded warnings, never blockers for final HiLL approval, completion reporting, or later PR steps.
754
- Supply the provider-neutral critic callback (or validated critic module entry point for JSON/CLI invocation) on every federated adapter run.
754
+ For an adapter invocation, construct exactly one brief-aware,
755
+ provider-neutral author seam using
756
+ `oat-explainer-kit/references/author-callback.md`. In-process callers pass
757
+ `author`; JSON/CLI callers pass a validated `authorModulePath`. Supply it
758
+ alongside the existing `critic` callback (or validated
759
+ `criticModulePath`), and always invoke this implementation-tail recap with
760
+ `mode: unattended`.
755
761
 
756
762
  Always include the selected or attempted recap's outcome and run path in the
757
763
  implementation completion report. If `summary.md` exists, append or refresh its
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-wave-execute
3
- version: 1.7.1
3
+ version: 1.8.0
4
4
  description: Use when executing a wave of external implementation plans as a wrapper OAT project — scaffolding, drift refresh, parallel worktree groups, briefs, gates, merge choreography, and closeout.
5
5
  argument-hint: '<wave-id> [plan-names...] (e.g. wave-2 http-listener-before-indexing ...)'
6
6
  disable-model-invocation: false
@@ -411,24 +411,17 @@ exactly:
411
411
  `schemaVersion, generatedAt, mode, freshnessPolicy, sources, claims, unresolvedClaims, overrides`.
412
412
 
413
413
  The caller also owns CONTENT AUTHORING, exactly as it owns critic execution and
414
- fact-base synthesis: the kit's pipeline validates structure and fact
415
- consistency, but nothing in it owns prose quality. An unattended recap run
416
- without a caller-supplied authoring path emits raw federated artifact text as
417
- deck prose (stoa W6 live evidence, run-19af6e55: implementation.md pasted
418
- verbatim, frontmatter included, tables flattened to run-on prose every
419
- automated gate passed it). The explainer-kit now enforces this seam: every
420
- unattended run requires exactly one provider-neutral author seam in-process
421
- callers supply an `author(request)` callback; JSON/CLI callers supply
422
- `authorModulePath` naming a module with an `author` function export. The core
423
- invokes it once per recipe artifact with an `explainer-kit.author-request/v1`
424
- document and expects an `explainer-kit.author-result/v1` reply; runs fail if
425
- the author is absent, returns an invalid result, or copies excessive verbatim
426
- source text. Recap callers MUST satisfy that seam by authoring content from
427
- the synthesized fact base plus the recipe outline (LLM-authored from
428
- summary/synthesis material, as the operator-approved W6 rebuild demonstrates)
429
- or NOT run the unattended build, recording the skip disposition per the
430
- optional-step rule. Callbacks and module paths never enter the persisted run
431
- request.
414
+ fact-base synthesis: the kit validates structure and fact consistency, but
415
+ nothing in it owns prose quality. Every recap run requires exactly one
416
+ provider-neutral author seam in-process callers supply an `author(request)`
417
+ callback; JSON/CLI callers supply `authorModulePath` naming a module with an
418
+ `author` function export. The core invokes it for every floor and accepted
419
+ expansion artifact with `author-request/v2`: the artifact brief is inlined,
420
+ the fact base is attached, and artistic requests include the resolved theme
421
+ and hash-pinned shell. Authors may propose only recipe-declared expansion
422
+ profiles and return `author-result/v2`; runs fail on absent or invalid author
423
+ results or excessive verbatim source copying. Callbacks and module paths never
424
+ enter persisted run requests.
432
425
 
433
426
  The mechanical caller constructs an `explainer-kit.run-request/v1` document whose
434
427
  required keys are exactly:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-wave-program
3
- version: 1.3.1
3
+ version: 1.4.0
4
4
  description: Use when decomposing a corpus of external implementation plans into an ordered wave program — coverage inventory, dependency mapping, wave composition, and the durable execution-program artifact that oat-wave-execute consumes and updates.
5
5
  argument-hint: '[new|refresh|wave-close <wave-id>] (default: refresh against the current artifact)'
6
6
  disable-model-invocation: false
@@ -136,18 +136,17 @@ required keys are exactly:
136
136
  `schemaVersion, generatedAt, mode, freshnessPolicy, sources, claims, unresolvedClaims, overrides`.
137
137
 
138
138
  The caller also owns CONTENT AUTHORING, exactly as it owns critic execution and
139
- fact-base synthesis: the kit's pipeline validates structure and fact
140
- consistency, but nothing in it owns prose quality. An unattended recap run
141
- without a caller-supplied authoring path emits raw federated artifact text as
142
- deck prose (stoa W6 live evidence, run-19af6e55: implementation.md pasted
143
- verbatim, frontmatter included, tables flattened to run-on prose every
144
- automated gate passed it). Until the explainer-kit ships its authoring seam (a
145
- caller-supplied author callback / `authorModulePath`, pending upstream),
146
- wave-close/program-close recap callers MUST either author the content document
147
- from the synthesized fact base plus the recipe outline (LLM-authored from
148
- summary/synthesis material, as the operator-approved W6 rebuild demonstrates)
149
- or NOT run the unattended build, recording the skip disposition per the
150
- optional-step rule.
139
+ fact-base synthesis: the kit validates structure and fact consistency, but
140
+ nothing in it owns prose quality. Every recap run requires exactly one
141
+ provider-neutral author seam in-process callers supply an `author(request)`
142
+ callback; JSON/CLI callers supply `authorModulePath` naming a module with an
143
+ `author` function export. The core invokes it for every floor and accepted
144
+ expansion artifact with `author-request/v2`: the artifact brief is inlined,
145
+ the fact base is attached, and artistic requests include the resolved theme
146
+ and hash-pinned shell. Authors may propose only recipe-declared expansion
147
+ profiles and return `author-result/v2`; runs fail on absent or invalid author
148
+ results or excessive verbatim source copying. Callbacks and module paths never
149
+ enter persisted run requests.
151
150
 
152
151
  The mechanical caller constructs an `explainer-kit.run-request/v1` document whose
153
152
  required keys are exactly:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: subagent-orchestration
3
- version: 1.0.0
3
+ version: 1.0.1
4
4
  description: Use when delegating work to subagents or choosing a model for a task — routing by task class, selecting provider-specific models and effort, and verifying subagent claims. Covers OpenAI/Codex, Anthropic/Claude, and Cursor.
5
5
  compatibility: Self-contained; no OAT installation required.
6
6
  user-invocable: true
@@ -1,10 +1,10 @@
1
1
  # Evidence and Refresh Policy
2
2
 
3
3
  ```yaml
4
- guidance_version: 2026-07-21
5
- last_verified: 2026-07-21
6
- review_after: 2026-09-04
7
- stale_after: 2026-10-19
4
+ guidance_version: 2026-07-25
5
+ last_verified: 2026-07-25
6
+ review_after: 2026-09-08
7
+ stale_after: 2026-10-23
8
8
  ```
9
9
 
10
10
  This file governs dated provider examples. It does not override a live catalog,
@@ -17,8 +17,11 @@ authorization boundary.
17
17
  - `review-required`: older than 45 days, a newer family is observed, or a material control, price, tool, context, alias, or harness change is detected.
18
18
  - `stale`: older than 90 days, named models are unavailable or deprecated, or the launching surface can no longer express the recorded controls.
19
19
 
20
- Provider mappings in this package become review-required on 2026-09-04 and
21
- stale on 2026-10-19 unless re-verified earlier.
20
+ Provider mappings in this package become review-required on 2026-09-08 and
21
+ stale on 2026-10-23 unless re-verified earlier, or on the earlier date a
22
+ reference states in its own header. `provider-cursor.md` carries an earlier
23
+ 2026-09-04 review date because its catalog was not re-verified in the
24
+ 2026-07-25 refresh.
22
25
 
23
26
  ## Immediate Review Triggers
24
27
 
@@ -61,24 +64,61 @@ When evidence is incomplete, retain the incumbent or route one class up.
61
64
 
62
65
  Do not use aggregate leaderboard rank as a universal model order.
63
66
 
67
+ ## Comparable-Rung Analysis
68
+
69
+ For cross-provider analysis, show same-labelled effort rungs first when they
70
+ exist, then show empirically interesting practical substitutions as a separate
71
+ view. Label the model, effort, service tier, harness, benchmark version, and
72
+ retrieval date for every row.
73
+
74
+ Same-labelled rungs are comparable observations, not equivalent controls.
75
+ CursorBench, provider-native coding-agent harnesses, and common-agent harnesses
76
+ produce different Opus-to-Sol relationships. Preserve that disagreement; never
77
+ publish a provider-independent effort conversion.
78
+
64
79
  ## Current Evidence Summary
65
80
 
66
81
  - OpenAI positions GPT-5.6 Sol as frontier, Terra as balanced, and Luna as
67
82
  high-volume. Official guidance starts at medium generally, but independent
68
83
  coding-agent data shows meaningful Luna/Terra quality cliffs below high for
69
84
  repository work. The dated mechanical Codex floor is therefore Luna high.
70
- - Anthropic positions Sonnet 5 as the speed/intelligence workhorse, Opus 4.8 as
71
- a complex coding and enterprise model, and Fable 5 as the most capable widely
72
- released model. Their effort defaults and recommendations differ by model.
85
+ - Post-release Opus 5 evidence supports medium for normal substantive Claude
86
+ work and high for hard reasoning. Use xhigh for a reasoning-depth bottleneck
87
+ or evaluated long-horizon gain; max is selective and requires an effort
88
+ sweep. Consequence adds independent review rather than automatically raising
89
+ effort.
90
+ - Sonnet 5 is a conditional route when measured latency, throughput, access,
91
+ rate limits, or end-to-end workload economics win. Fable 5 is an
92
+ eligibility-gated specialist; its missing-domain-concept or long-horizon
93
+ reviewer instantiation remains provisional, and zero-data-retention
94
+ requirements exclude the current route.
73
95
  - CursorBench supports Composer 2.5 as an economical bounded coding worker.
74
96
  Cursor explicitly documents Composer fast as the same intelligence at a
75
97
  higher latency tier price.
98
+ - Mechanical reconnaissance remains harness-specific: Luna high in Codex,
99
+ Haiku 4.5 in Claude, and Composer 2.5 in Cursor. Direct API mini or nano
100
+ routes are limited to strict extraction, classification, or similarly
101
+ mechanically verified work.
76
102
  - OpenAI's long-context evidence disqualifies Luna for some very large-context
77
- work even when Luna's nominal context window accepts the input.
78
- - Anthropic documents benign false positives from Fable's stronger cyber
79
- classifier. This is operational evidence to consider when routing
80
- cyber-sensitive work, not a capability weakness or a reason to invert the
81
- general Opus-first policy.
103
+ work even when Luna's nominal context window accepts the input. Sol's current
104
+ direct-API requests above 272K input tokens carry a input and 1.5× output
105
+ price step.
106
+ - Sol's measured advantage is trajectory efficiency, not universal list-price
107
+ leadership. Opus output token pricing can be lower while Sol costs less per
108
+ completed task through fewer tokens, steps, turns, or recoveries.
109
+ - Two independent benchmarks show top-end Opus effort is non-monotonic:
110
+ Artificial Analysis Coding Agent Index (xhigh 67, max 66) and Frontier-Bench
111
+ (xhigh 44.4%, max 43.3%), both retrieved 2026-07-25. Frontier-Bench is
112
+ vendor-operated and its figure rests on a single self-reported row with no
113
+ independently verified counterpart, so weight it below the Coding Agent Index
114
+ rather than treating the two as equal evidence. CursorBench 3.2 is monotonic
115
+ over the same range, 69.3% to 70.0%; its contribution is economic, since
116
+ marginal cost per score point is roughly 3.75x worse above high than below
117
+ it. Together these support treating max as a route requiring justification,
118
+ not a strictly better rung.
119
+ - Cyber-sensitive and valid dual-use work should start on Opus 5 with
120
+ documented fallback handling where safeguards block the workflow. Opus 4.8
121
+ remains a compatibility fallback, not the universal primary.
82
122
  - Cursor disclosed that Cursor repository data entered Grok 4.5's training
83
123
  mixture. Its CursorBench ranking is evidence of competitiveness, not proof
84
124
  of superiority over nearby frontier models. Practical use supports Grok 4.5
@@ -86,8 +126,99 @@ Do not use aggregate leaderboard rank as a universal model order.
86
126
  implementation, and hard-reasoning economy routes, with cross-family review
87
127
  retained for consequential conclusions.
88
128
 
129
+ ## Speed and Wall-Clock Contract
130
+
131
+ Speed evidence must satisfy the multi-measure contract defined in
132
+ `model-selection-principles.md`, which is the single authority for which
133
+ measures are required and which are recorded when available. Do not restate a
134
+ divergent list here.
135
+
136
+ Every load-bearing quantitative claim requires claim-level provenance:
137
+
138
+ - a direct result locator, retrieval date, and stable source identity;
139
+ - exact model selector, effort, reasoning mode, service tier, harness, and
140
+ benchmark version;
141
+ - metric definition, aggregation basis, exclusions, and extraction method;
142
+ - absolute input values before any derived ratio or delta;
143
+ - the formula and units for each derived value;
144
+ - cache, fallback, refusal, retry, and completion treatment;
145
+ - unresolved source gaps stated explicitly rather than inferred away.
146
+
147
+ The Coding Agent Index time measure is average active agent wall time per task.
148
+ It excludes environment startup and verifier or judge time, and must not be
149
+ relabeled as total user-observed elapsed time. AA-Briefcase time remains
150
+ definition-unverified and must not be compared directly with it. Mutable
151
+ leaderboards require row-level locators; a homepage or aggregate rank is not a
152
+ sufficient source.
153
+
154
+ This file records reconciled conclusions and the values that drive a rule, not
155
+ the full ledger behind them. Every figure quoted here must name a publicly
156
+ resolvable source: the benchmark, its version, and the retrieval date, so a
157
+ reader outside the authoring environment can check it. Do not cite a private
158
+ research artifact as a locator — an internal packet may hold the working
159
+ arithmetic, but it cannot serve as provenance for published guidance.
160
+
161
+ ## Research Independence and Acceptance
162
+
163
+ A policy refresh requires:
164
+
165
+ 1. a neutral research brief and isolated independent author lanes;
166
+ 2. a source ledger with claim-level provenance for each lane;
167
+ 3. reciprocal or independent review that did not author the claim under review;
168
+ 4. fact reconciliation before routing synthesis;
169
+ 5. a cross-model synthesis that preserves contradictions and uncertainty;
170
+ 6. explicit human acceptance of the update scope;
171
+ 7. canonical-first application;
172
+ 8. downstream parity verification by read-back.
173
+
174
+ The author and reviewer may use the same evidence, but reviewer output must be
175
+ independently produced. Agreement is not proof. Record disagreements and their
176
+ resolution; do not collapse them into an unsupported consensus.
177
+
178
+ ## Live-Catalog and Downstream Gates
179
+
180
+ Before adding or changing a selector, verify the live launching surface,
181
+ resolved identity, effort or thinking control, service tier, and absence of
182
+ silent fallback. Direct-provider evidence can nominate a harness candidate but
183
+ cannot prove its alias.
184
+
185
+ A selector ships only after a live probe verifies those controls for that
186
+ specific mapping. Verification does not generalize: neither across rungs of one
187
+ family nor across families, because a harness may substitute a default for any
188
+ component it cannot resolve. Probe a non-default rung as well, or a result that
189
+ merely matches the family default cannot distinguish an honored parameter from
190
+ an ignored one.
191
+
192
+ The six Cursor `claude-opus-5` and `claude-opus-4-8` mappings shipped on
193
+ 2026-07-25 met this gate; their resolved identities are listed in
194
+ `provider-cursor.md`.
195
+
196
+ After canonical changes:
197
+
198
+ 1. inventory exact mirrors, wrappers, generated views, and application-specific
199
+ consumers before synchronization;
200
+ 2. use each consumer's supported sync or bundle mechanism;
201
+ 3. read back every consumer, including each machine where user-scope copies
202
+ exist;
203
+ 4. require byte-for-byte equality for mirrors and documented semantic parity
204
+ for intentional wrappers;
205
+ 5. search live prompts, rules, code, and configuration for copied historical
206
+ selectors or effort defaults;
207
+ 6. record intentional exceptions and fail the gate while unexplained
208
+ divergence remains.
209
+
89
210
  ## Reverification Record
90
211
 
212
+ One record describes one provider reference. When a single refresh cycle
213
+ updates several provider references, emit one record per provider inside a
214
+ `records:` list and lift the cycle-level fields — `verified_at`, `sources`,
215
+ `claim_provenance`, `independent_author`, `independent_reviewer`,
216
+ `incumbent_changes`, `reason`, `downstream_consumers`, `downstream_parity`, and
217
+ `unresolved_items` — to the parent so they are stated once rather than
218
+ duplicated per provider. Each record then carries only `provider`,
219
+ `harness_context`, `catalog_source`, `models_considered`, `controls_verified`,
220
+ and `eligibility_verified`.
221
+
91
222
  When updating a provider reference, record:
92
223
 
93
224
  ```yaml
@@ -97,7 +228,14 @@ harness_context: exact launching surface
97
228
  catalog_source: tool schema | CLI list | API catalog | UI snapshot
98
229
  models_considered: exact selectors
99
230
  controls_verified: effort, service tier, reasoning mode, context, tools
100
- sources: official docs and relevant benchmarks
231
+ eligibility_verified: retention, access, pricing thresholds, safeguards
232
+ sources: direct locators for official docs and relevant benchmark rows
233
+ claim_provenance: selector, effort, harness, metric, locator, retrieval date
234
+ independent_author: identity and model family
235
+ independent_reviewer: identity and model family
101
236
  incumbent_changes: additions, replacements, removals, or none
102
237
  reason: scheduled review or trigger
238
+ downstream_consumers: mirrors, wrappers, generated views, applications
239
+ downstream_parity: hashes or documented semantic comparison
240
+ unresolved_items: gaps, provisional routes, and deferred probes
103
241
  ```
@@ -12,11 +12,24 @@ Never select from a model family name alone. Preserve these axes separately:
12
12
  - provider-native effort or reasoning selector;
13
13
  - service tier, including fast or priority variants;
14
14
  - reasoning mode when the provider exposes one independently of effort;
15
+ - task class and the reasoning depth the work requires;
16
+ - consequence and the independent-review requirement it creates;
17
+ - reviewer role and the anticipated failure mode that reviewer should catch;
18
+ - eligibility, including selector availability, retention policy, access,
19
+ context, safeguards, and harness-version constraints;
15
20
  - role, context inheritance, authority, deadline, and route.
16
21
 
17
22
  Do not normalize effort labels across providers. `medium`, `high`, `xhigh`,
18
23
  `max`, extended thinking, adaptive thinking, and provider-specific modes have
19
- different semantics. The exact pair or tuple is the route.
24
+ different semantics. Compare same-labelled rungs only as an analysis view
25
+ within a named harness, never as evidence that the labels are equivalent. The
26
+ exact pair or tuple is the route.
27
+
28
+ Task class, effort, consequence, reviewer role, and eligibility are related but
29
+ independent decisions. Reasoning depth determines effort escalation.
30
+ Consequence normally adds independent review, root-owned authorization, or
31
+ stronger verification; it does not automatically force the highest effort.
32
+ Eligibility filters the candidate set before capability or economy is compared.
20
33
 
21
34
  ## Five Task Classes
22
35
 
@@ -59,7 +72,27 @@ the task.
59
72
  adversarial behavior, or expensive failure dominates.
60
73
 
61
74
  Narrow a poorly decomposed task before escalating its model. Model capability
62
- never repairs an over-broad objective.
75
+ never repairs an over-broad objective. A consequential classification does not
76
+ by itself justify top effort; raise effort only when deeper reasoning is also a
77
+ bottleneck.
78
+
79
+ ## Eligibility
80
+
81
+ Eliminate ineligible routes before ranking capability, cost, or speed. Verify:
82
+
83
+ - the exact selector and required effort or thinking control exist in the live
84
+ launching surface;
85
+ - retention, data-handling, authorization, and safeguard behavior permit the
86
+ workload;
87
+ - account access, rate limits, service-tier commitments, and harness version
88
+ permit the route;
89
+ - the context window, long-context quality, and threshold pricing fit the
90
+ input;
91
+ - tool support and fallback behavior are understood and do not silently change
92
+ the selected route.
93
+
94
+ Provider evidence can nominate a candidate. It cannot prove that another
95
+ harness exposes the same selector or control.
63
96
 
64
97
  ## Long Context
65
98
 
@@ -88,9 +121,41 @@ the final answer is short.
88
121
 
89
122
  A fast or priority tier is a latency control unless the provider explicitly
90
123
  documents a capability difference. It does not satisfy a higher task-class
91
- floor. Choose it only when wall-clock latency is worth the price and record it
124
+ floor. Choose it only when measured latency is worth the price and record it
92
125
  separately from the model and effort.
93
126
 
127
+ Speed is a multi-measure contract, not a single throughput number. This section
128
+ defines that contract; other references cite it rather than restating their own
129
+ version.
130
+
131
+ Required in any speed claim:
132
+
133
+ - time to first token;
134
+ - active agent runtime;
135
+ - total user-observed elapsed time;
136
+ - output tokens;
137
+ - steps, turns, or tool calls;
138
+ - completion rate and variance.
139
+
140
+ Time to first token is required, not substitutable. Where a harness cannot
141
+ expose it, record it explicitly as not-reported rather than silently omitting
142
+ it or supplying a different measure in its place; an absent measure and an
143
+ unmeasurable one are different claims.
144
+
145
+ Record additionally when available:
146
+
147
+ - first useful action, which is a complement to time to first token and never
148
+ a replacement for it;
149
+ - output rate;
150
+ - input and cached-input tokens;
151
+ - retries, recoveries, refusals, and operator interventions;
152
+ - service tier, rate limits, and agent-slot occupancy;
153
+ - cost per attempted and completed task.
154
+
155
+ Do not relabel active runtime as total elapsed time, and do not infer latency
156
+ from tokens or steps. Trajectory measures cannot substitute for measured
157
+ latency. Compare list pricing separately from total trajectory cost.
158
+
94
159
  ## Independent Review
95
160
 
96
161
  For high-risk diffs and foundational decisions, prefer an author and reviewer
@@ -98,6 +163,13 @@ from different model families or providers. Agreement is not proof; disagreement
98
163
  is evidence that the root must resolve. The root verifies every load-bearing
99
164
  claim and retains final judgment.
100
165
 
166
+ Choose the reviewer according to the failure mode the reviewer should catch:
167
+ engineering execution, tool trajectory, missing domain concepts, factual
168
+ knowledge, policy interpretation, or adversarial weakness. Named reviewer
169
+ instantiations in provider guidance are dated and provisional unless a relevant
170
+ evaluation qualifies them. Reviewer independence never transfers authorization
171
+ away from the root.
172
+
101
173
  ## Staleness
102
174
 
103
175
  Read `evidence-and-refresh.md` when provider guidance is review-required or
@@ -1,7 +1,7 @@
1
1
  ---
2
- guidance_version: 2026-07-22
3
- last_verified: 2026-07-22
4
- review_after: 2026-09-04
2
+ guidance_version: 2026-07-25
3
+ last_verified: 2026-07-25
4
+ review_after: 2026-09-08
5
5
  ---
6
6
 
7
7
  # Claude Model Selection
@@ -15,12 +15,15 @@ the dated model examples below. Launch mechanics for OAT dispatch live in
15
15
 
16
16
  - `claude-haiku-4-5`: fastest economical class for straightforward,
17
17
  high-volume, mechanically verified work.
18
- - `claude-sonnet-5`: normal workhorse for coding, tool use, knowledge work, and
19
- agentic execution.
20
- - `claude-opus-4-8`: strong complex coding and enterprise route and the
21
- default for hard-reasoning and consequential work.
22
- - `claude-fable-5`: exceptional escalation route for the most difficult
23
- long-running agents, coding, and frontier knowledge work.
18
+ - `claude-opus-5`: normal substantive route and the default for
19
+ interpretation-heavy implementation, hard reasoning, and consequential work.
20
+ - `claude-sonnet-5`: conditional route when measured latency, throughput,
21
+ access, rate limits, or established-workflow economics beat the relevant
22
+ Opus route.
23
+ - `claude-fable-5`: eligibility-gated specialist for a directly relevant
24
+ failure mode, not a universal escalation above Opus.
25
+ - `claude-opus-4-8`: compatibility or documented safeguard fallback, not the
26
+ current general primary.
24
27
 
25
28
  Claude Mythos 5 is invitation-only and intended for approved defensive cyber
26
29
  work. It is not a general routing candidate unless the organization explicitly
@@ -30,52 +33,109 @@ provisions and authorizes it.
30
33
 
31
34
  Never normalize Claude effort against OpenAI or Cursor labels.
32
35
 
33
- - Sonnet 5: high is the default workhorse; medium is the cost-saving step down;
34
- xhigh is for the hardest coding and agentic work; max is exceptional.
35
- - Opus 4.8: start at xhigh for coding and agentic work; use high for other
36
- intelligence-sensitive work; lower only after evaluation.
37
- - Fable 5: start at high; use xhigh for capability-sensitive work; max is
38
- exceptional; medium/low are routine-work controls, not the default economy
39
- substitute for Sonnet.
36
+ - Opus 5: use medium for normal substantive work and high for hard reasoning,
37
+ architecture, ambiguity, and deep review. Use xhigh only when reasoning depth
38
+ is the bottleneck or an evaluated long-horizon workload benefits. Max is
39
+ exceptional and requires a workload-specific effort sweep or an explicit
40
+ quality-first exception.
41
+ - Sonnet 5: use medium or high only when measured latency, throughput, access,
42
+ or workload economics justify the conditional route. Do not preserve xhigh
43
+ or max as generic workhorse settings.
44
+ - Fable 5: use high or xhigh only for a qualified specialist case. Max is
45
+ exceptional; medium or low are not routine economy substitutes for Opus.
40
46
  - Haiku 4.5 does not expose the same adaptive-effort surface. Use only controls
41
47
  present in the live schema.
42
48
 
43
49
  Effort changes tool-call behavior as well as prose. Record it independently.
44
- For Opus 4.8 direct API calls, verify adaptive thinking is enabled as required
45
- by the current API contract. Fable adaptive thinking is always on in the
46
- current API.
50
+ Opus 5 adaptive thinking is on by default; current direct-API behavior rejects
51
+ disabling thinking at xhigh or max. Verify the live schema before launch.
52
+ Changing effort or speed can invalidate prompt caches. Fable adaptive thinking
53
+ is always on in the current API.
47
54
 
48
55
  ## Dated Task-Class Matrix
49
56
 
50
- | Task class | Default | Economy | Escalation | Floor notes |
51
- | ------------------------ | -------------- | ---------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------- |
52
- | `mechanical-recon` | Haiku 4.5 | Same, with strict output and mechanical verification | Sonnet 5 medium | Haiku is below floor for semantic audits and silent-miss-prone exploration. |
53
- | `intelligent-recon` | Sonnet 5 high | Sonnet 5 medium | Sonnet xhigh or Opus 4.8 xhigh | Do not use Sonnet low for coding or open-ended recon. |
54
- | `default-implementation` | Sonnet 5 high | Sonnet 5 medium | Sonnet xhigh or Opus 4.8 xhigh | Fable low/medium is not the routine economy route. |
55
- | `hard-reasoning` | Opus 4.8 xhigh | Sonnet 5 xhigh | Fable 5 xhigh for exceptional escalation | Unresolved ambiguity or exceptional novelty must justify Fable's incremental cost. |
56
- | `consequential` | Opus 4.8 xhigh | No routine economy route | Fable 5 xhigh or max plus independent review | A consequential label alone does not justify Fable; retain root authorization and review. |
57
+ These routes are dated guidance and benchmark-derived routing hypotheses.
58
+ Evaluate them on representative local work before treating fine boundaries as
59
+ stable.
60
+
61
+ | Task class | Default | Economy | Escalation | Floor notes |
62
+ | ------------------------ | ----------------------------------- | ------------------------------------------------------ | --------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
63
+ | `mechanical-recon` | Haiku 4.5 | Same, with strict output and mechanical verification | Opus 5 medium | Haiku is below floor for semantic audits and silent-miss-prone exploration. |
64
+ | `intelligent-recon` | Opus 5 medium | Sonnet 5 medium/high only when its measured route wins | Opus 5 high | Do not use Sonnet low for coding or open-ended recon. |
65
+ | `default-implementation` | Opus 5 medium | Sonnet 5 medium/high for evaluated bounded throughput | Opus 5 high | Fable is not a routine implementation or economy route. |
66
+ | `hard-reasoning` | Opus 5 high | Opus 5 medium only after narrowing and evaluation | Opus 5 xhigh for a reasoning-depth bottleneck | Use max only after a workload-specific effort sweep. |
67
+ | `consequential` | Opus 5 high plus independent review | No routine economy route | Opus 5 xhigh when deeper reasoning is also required | Consequence adds review and root authorization; it does not automatically require xhigh or max. |
57
68
 
58
69
  ## Root and Subagent Cost Posture
59
70
 
60
71
  Preserve strong, low-volume root orchestration. Root calls are
61
72
  coherence-critical and comparatively infrequent, while bounded subagents carry
62
73
  most execution volume. Capture routine savings in higher-volume subagents by
63
- routing mechanical work to Haiku and normal implementation to Sonnet instead
64
- of weakening the root orchestrator.
74
+ routing mechanical work to Haiku and using Sonnet only where a measured
75
+ high-volume route wins instead of weakening the root orchestrator.
65
76
 
66
77
  Opus remains the hard-reasoning and consequential root default. Escalate the
67
78
  root from Opus to Fable only when unresolved ambiguity, exceptional novelty or
68
- consequence, or a directly relevant Fable strength is expected to justify the
69
- incremental cost. A consequential classification by itself is insufficient.
79
+ consequence, or a directly relevant Fable strength exposes a failure mode that
80
+ Fable is expected to catch and eligibility permits it. This named Fable
81
+ instantiation is provisional.
82
+
83
+ A consequential classification by itself is insufficient.
84
+
85
+ ## Conditional and Specialist Routes
86
+
87
+ Sonnet remains available when time to first token, active runtime, total elapsed
88
+ time, throughput, access, rate limits, or end-to-end workload economics win for
89
+ the actual harness. Compare against the relevant Opus effort and service tier,
90
+ not an unrelated maximum-effort latency row. A lower token price alone does not
91
+ prove lower trajectory cost.
92
+
93
+ Choose specialist reviewers by anticipated failure mode. Fable is a
94
+ provisional candidate for latent-knowledge, missing-domain-concept,
95
+ sparse-context, long-horizon, or additional-perspective work. It is unavailable
96
+ where zero data retention is required because the current route requires
97
+ 30-day retention. Provider availability, retention, and controls must be
98
+ verified before selection.
99
+
100
+ ## Eligibility, Retention, and Service Constraints
101
+
102
+ Eligibility filters the candidate set before capability or economy is compared.
103
+ A route that fails one of these gates is unavailable regardless of benchmark
104
+ standing. These are dated facts verified 2026-07-25; reverify against the live
105
+ schema and the organization's actual plan before launch.
106
+
107
+ | Constraint | Opus 5 | Sonnet 5 | Fable 5 | Haiku 4.5 |
108
+ | ------------------- | ---------------------- | ------------- | -------------------------- | ------------- |
109
+ | Zero data retention | eligible | eligible | **unavailable**, needs 30d | eligible |
110
+ | Priority Tier | not supported | not supported | supported | verify live |
111
+ | Fast mode | gated research preview | no | no | no |
112
+ | Long context | 1M at standard rates | 1M standard | 1M standard | verify live |
113
+ | Claude Code minimum | version-gated | version-gated | version-gated | version-gated |
114
+
115
+ - Zero data retention removes Fable from the route set outright. Check the
116
+ retention requirement before selecting a specialist reviewer.
117
+ - Priority Tier commitments are closed to new buyers, so this matters only for
118
+ an existing commitment. Do not infer availability from another Claude family.
119
+ - Fast mode is a gated latency purchase, not a capability rung.
120
+ - Claude 4.6 and later families use their full 1M context windows at standard
121
+ rates. Do not carry a competitor's long-context surcharge model across to
122
+ Claude; the Codex Sol threshold step is a Sol fact, not a general one.
123
+ - Claude Code enforces family-specific minimum versions. Verify the installed
124
+ runtime rather than assuming the catalog entry is launchable.
125
+
126
+ Record service tier independently and apply the multi-measure speed contract
127
+ from `model-selection-principles.md`.
70
128
 
71
129
  ## Cyber-Sensitive Evidence
72
130
 
73
- Fable 5 has a stronger cyber classifier that may flag benign coding and
74
- debugging work. For security review, vulnerability triage, auth boundaries,
75
- permissions, and other dual-use workflows where false-positive blocking would
76
- break the run, Opus 4.8 xhigh remains the operational default. Pair
77
- consequential findings with an independent provider review.
131
+ For security review, vulnerability triage, auth boundaries, permissions, and
132
+ other valid dual-use workflows, start with Opus 5 at the effort warranted by
133
+ reasoning depth and pair consequential findings with an independent provider
134
+ review.
78
135
 
136
+ If a safeguard blocks a valid workflow, record the refusal, preserve the
137
+ authorization boundary, and use a documented compatible fallback. Opus 4.8 is
138
+ the current fallback target where necessary, not the universal cyber primary.
79
139
  Do not infer that a stronger safety classifier is a capability weakness. It is
80
140
  evidence about predictable workflow completion and refusal behavior, not an
81
141
  exception that inverts the general Opus-first policy.