@orkestrel/scaffold 0.0.97 → 0.0.99

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 (54) hide show
  1. package/dist/agents/skills/orkestrel-dispatch/scripts/bench.js +1 -1
  2. package/dist/agents/skills/orkestrel-scout/scripts/map.js +14 -3
  3. package/dist/bin/main.js +2 -2
  4. package/dist/bin/main.js.map +1 -1
  5. package/dist/host/agents/orchestration.md +44 -38
  6. package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +3 -3
  7. package/dist/host/agents/skills/orkestrel-dispatch/references/bench.md +1 -1
  8. package/dist/host/agents/skills/orkestrel-dispatch/scripts/bench.ts +1 -1
  9. package/dist/host/agents/skills/orkestrel-falsify/SKILL.md +1 -1
  10. package/dist/host/agents/skills/orkestrel-falsify/references/reconcile.md +1 -1
  11. package/dist/host/agents/skills/orkestrel-publish/references/wave.md +1 -2
  12. package/dist/host/agents/skills/orkestrel-scout/SKILL.md +4 -4
  13. package/dist/host/agents/skills/orkestrel-scout/scripts/map.ts +14 -3
  14. package/dist/host/agents/transports/claude-cli.md +3 -3
  15. package/dist/host/agents/transports/codex.md +4 -4
  16. package/dist/host/agents/transports/cursor.md +5 -5
  17. package/dist/host/claude/AGENTS.md +11 -8
  18. package/dist/host/claude/agents/analyst.md +4 -4
  19. package/dist/host/claude/agents/astra.md +4 -4
  20. package/dist/host/claude/agents/builder.md +4 -4
  21. package/dist/host/claude/agents/checker.md +4 -4
  22. package/dist/host/claude/agents/distiller.md +4 -4
  23. package/dist/host/claude/agents/grok.md +4 -4
  24. package/dist/host/claude/agents/opus.md +1 -1
  25. package/dist/host/claude/agents/orkestrel.md +2 -2
  26. package/dist/host/claude/agents/planner.md +1 -1
  27. package/dist/host/claude/agents/researcher.md +4 -4
  28. package/dist/host/claude/agents/reviewer.md +1 -1
  29. package/dist/host/claude/agents/scout.md +6 -4
  30. package/dist/host/claude/agents/verifier.md +4 -4
  31. package/dist/host/claude/rules/documentation.md +3 -3
  32. package/dist/host/claude/rules/styles.md +5 -1
  33. package/dist/host/claude/settings.json +5 -2
  34. package/dist/host/codex/agents/builder.toml +7 -7
  35. package/dist/host/codex/agents/grok.toml +2 -2
  36. package/dist/host/codex/agents/opus.toml +19 -15
  37. package/dist/host/codex/agents/orkestrel.toml +1 -1
  38. package/dist/host/codex/agents/planner.toml +17 -12
  39. package/dist/host/codex/agents/reviewer.toml +22 -12
  40. package/dist/host/codex/agents/scout.toml +4 -2
  41. package/dist/host/codex/agents/verifier.toml +1 -1
  42. package/dist/host/codex/config.toml +6 -7
  43. package/dist/host/cursor/rules/orchestration.mdc +1 -1
  44. package/dist/host/guides/scaffold.md +9 -3
  45. package/dist/host/manifest.json +53 -41
  46. package/dist/host/scripts/browsers.sh +54 -0
  47. package/dist/host/scripts/npm.sh +111 -0
  48. package/dist/src/core/index.cjs +37 -9
  49. package/dist/src/core/index.cjs.map +1 -1
  50. package/dist/src/core/index.d.cts +20 -0
  51. package/dist/src/core/index.d.ts +20 -0
  52. package/dist/src/core/index.js +37 -10
  53. package/dist/src/core/index.js.map +1 -1
  54. package/package.json +2 -2
@@ -8,56 +8,62 @@ Read in order: the user's instruction; `AGENTS.md` and the rules it scopes to yo
8
8
 
9
9
  ## Engines
10
10
 
11
- | Engine | Job | Posture |
12
- | --------------------------------- | ----------------------------------------------------- | -------------------------------------------------------- |
13
- | Cursor Grok | absorb, distill, scout, bounded research | read-only; returns evidence, never decisions |
14
- | Opus 5.5 | subjective design, design-fit review, implementation | proposes, audits, implements; never accepts its own work |
15
- | GPT-6 Astra | objective analysis, correctness audit, implementation | proposes, audits, implements; never accepts its own work |
16
- | Sonnet 5.5, GPT-6 Sol, GPT-6 Luna | mechanical units, gates, conformance, locating | executes a fully specified brief |
11
+ Name the harness family and its access route: Claude through Claude Code or the Claude CLI; Codex through Codex native agents or the Codex CLI; Cursor through the Cursor CLI, with Grok 4.7 Extra High for the Grok bench. Classify GPT-6 Astra, GPT-6.1 Sol, and GPT-6 Luna as Codex-family engines, including when another harness hosts the Orchestrator.
17
12
 
18
- The harness's own engine orchestrates: Opus 5.5 in Claude Code, Astra in Codex, Grok in Cursor. The Orchestrator owns the plan, every decision, integration, and acceptance. When the size gate names a review, the review runs on an engine that did not write the work.
13
+ | Engine | Job | Posture |
14
+ | ----------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
15
+ | Claude Fable 5.1 | orchestration in Claude Code: the plan, every decision, integration, acceptance | never dispatched: never a subagent, a bench, a fork, or a Workflow node |
16
+ | Cursor Grok | context absorption, distillation, broad mapping, exploration | read-only; returns evidence, never decisions |
17
+ | Claude Opus 5.5 | subjective design, design-fit review, implementation | proposes, audits, implements; never accepts its own work |
18
+ | GPT-6 Astra | objective analysis, correctness audit, implementation | proposes, audits, implements; never accepts its own work |
19
+ | Claude Sonnet 5.5 | bounded implementation of a closed shape, ecosystem reconciliation | executes a fully specified brief |
20
+ | Claude Haiku 5.5 | bench drivers, small precise tasks, exact lookups, conformance, gates | executes a fully specified brief; edits no source |
21
+ | GPT-6.1 Sol, GPT-6 Luna | mechanical units, drivers, small precise tasks, gates, exact lookups | executes a fully specified brief |
22
+
23
+ The harness's own engine orchestrates: Claude Fable 5.1 or Claude Opus 5.5 in Claude Code, GPT-6 Astra in Codex, Cursor Grok in Cursor. The Orchestrator owns the plan, every decision, integration, and acceptance. When the harness is Codex or the Orchestrator uses a Codex-family engine, use the Codex column: map Opus to GPT-6 Astra, Sonnet to GPT-6.1 Sol, and Haiku to GPT-6 Luna; execute mapped Astra roles natively without an Opus bench probe. Under this mapping, assign review to another agent in a clean context and forbid self-review, including when writer and reviewer both use Astra. For other harnesses, review runs on an engine that did not write the work.
19
24
 
20
25
  ## Roles
21
26
 
22
- | Role | Job | Claude | Codex |
23
- | ------------ | ------------------------------------------------------------------ | ------------- | ---------- |
24
- | `grok` | absorption and distillation on Cursor Grok | sonnet driver | sol driver |
25
- | `analyst` | objective design argument or correctness audit on Astra | sonnet driver | astra |
26
- | `astra` | objective, constraint-heavy implementation on Astra | sonnet driver | astra |
27
- | `planner` | subjective design on Opus | opus | sol driver |
28
- | `reviewer` | design-fit or correctness review on Opus | opus | sol driver |
29
- | `opus` | subjective implementation (API shape, naming, guide voice) on Opus | opus | sol driver |
30
- | `builder` | one fully specified taste-free unit, app layer included | sonnet | sol |
31
- | `checker` | mechanical conformance against criteria and rules | sonnet | luna |
32
- | `verifier` | gates and evidence commands, exit-code truth | sonnet | sol |
33
- | `scout` | locate files, symbols, seams | sonnet | luna |
34
- | `distiller` | bulk reading when the Cursor bench is dark | sonnet | luna |
35
- | `researcher` | primary-source research when the Cursor bench is dark | sonnet | luna |
36
- | `orkestrel` | ecosystem reconciliation over supplied evidence | sonnet | luna |
27
+ | Role | Job | Claude | Codex |
28
+ | ------------ | ---------------------------------------------------------- | ------------ | ----------- |
29
+ | `grok` | absorption, distillation, broad mapping, exploration | haiku driver | luna driver |
30
+ | `analyst` | objective design argument or correctness audit on Astra | haiku driver | astra |
31
+ | `astra` | objective, constraint-heavy implementation on Astra | haiku driver | astra |
32
+ | `planner` | subjective design | opus | astra |
33
+ | `reviewer` | design-fit or correctness review | opus | astra |
34
+ | `opus` | subjective implementation (API shape, naming, guide voice) | opus | astra |
35
+ | `builder` | one bounded unit with a closed shape, app layer included | sonnet | sol |
36
+ | `checker` | mechanical conformance against criteria and rules | haiku | luna |
37
+ | `verifier` | gates and evidence commands, exit-code truth | haiku | luna |
38
+ | `scout` | exact bounded lookup of files, symbols, seams | haiku | luna |
39
+ | `distiller` | bulk reading when the Cursor bench is dark | haiku | luna |
40
+ | `researcher` | primary-source research when the Cursor bench is dark | haiku | luna |
41
+ | `orkestrel` | ecosystem reconciliation over supplied evidence | sonnet | sol |
37
42
 
38
43
  - Name the role and its engine in every dispatch. Reach a role by its own name.
39
- - A driver launches another provider's CLI and returns the journal path and session id with the result. It never judges or implements. Refuse a bench result that carries no journal path and session id; it ran on the driver.
40
- - `.agents/transports/<provider>.md` owns each bench's invocation, sandbox, journal, and recovery. `.claude/agents/` and `.codex/agents/` hold one file per role.
44
+ - A driver launches another harness's CLI and returns the journal path and session id with the result. It never judges or implements. Refuse a bench result that carries no journal path and session id; it ran on the driver.
45
+ - `.agents/transports/<harness>.md` owns each bench's invocation, sandbox, journal, and recovery. `.claude/agents/` and `.codex/agents/` hold one file per role.
41
46
 
42
47
  ## Routing
43
48
 
44
- - Route by judgment load. Objective, constraint-heavy, mechanical-precision work goes to `astra`. API shape, naming, and documentation voice go to `opus`. A unit whose correct implementations cannot differ goes to `builder`.
45
- - Delegate bulk supporting reads to `grok`: terrain, prior art, diff sweeps, scattered sources. Read decision-bearing source yourself. Fall back to `distiller` or `researcher` only when the Cursor bench is dark, and record the fallback.
49
+ - Route by judgment load. Objective, constraint-heavy, mechanical-precision work goes to `astra`. API shape, naming, and documentation voice go to `opus`. A bounded unit whose brief or types fix its names, API, and architecture goes to `builder`, whatever its private lines; a unit that spans packages or leaves one of those open goes to `astra` or `opus`.
50
+ - Route all context absorption, distillation, broad mapping, and exploratory or fishing reads to `grok` on Cursor Grok 4.7 Extra High: terrain, prior art, diff sweeps, scattered sources. Keep decision-bearing reading with the decision owner. Fall back to `distiller` or `researcher` only when the Cursor bench is dark, and record the fallback; ease or cost never authorizes a fallback.
51
+ - Keep small tedious precise tasks native: Claude Haiku in Claude, Codex Luna in Codex. Use `scout` for an exact bounded lookup; keep bench drivers, `checker`, and `verifier` on their mapped native engines. A bounded file scope does not turn context absorption or exploratory reading into a native lookup.
46
52
  - Route gates to `verifier`. A writer's self-reported gate is not evidence.
47
- - Work directly on a one-file change, a lookup, or a one-line fix. Dispatch when isolation, parallelism, a second engine, or a large read pays for the brief.
53
+ - Work directly on a one-file change or a one-line fix, subject to the preceding routing rules. Route standalone lookups through `scout`. Dispatch when isolation, parallelism, a second engine, or a large read pays for the brief.
48
54
 
49
55
  ## Size gate
50
56
 
51
57
  `AGENTS.md` § Work loop sizes a change and fixes the precedence (large, then medium, then small). This file adds who runs what.
52
58
 
53
- | Size | Design | Implementation | Review | Gates |
54
- | ------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
55
- | small | none | direct or `builder` | none; the touched test is the review | touched file |
56
- | medium | one opinion (`planner` or `analyst`) only when the shape is open | `opus`, `astra`, or `builder` by judgment load | one pass by a reviewer engine that did not write it, on numbered claims about the contract and the risky seams | `verifier` on the touched projects |
57
- | large | one adversarial round: `planner` and `analyst`, same brief, clean contexts, blind to each other | disjoint units in parallel | one `orkestrel-falsify` round on the integrated result | `verifier` tree-wide, once |
59
+ | Size | Design | Implementation | Review | Gates |
60
+ | ------ | ----------------------------------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------- |
61
+ | small | none | direct or `builder` | none; the touched test is the review | touched file |
62
+ | medium | one opinion (`planner` or `analyst`) only when the shape is open | `opus`, `astra`, or `builder` by judgment load | one pass by an independent reviewer per § Engines, on numbered claims about the contract and the risky seams | `verifier` on the touched projects |
63
+ | large | one adversarial round: `planner` and `analyst`, same brief, clean contexts, blind to each other | disjoint units in parallel | one `orkestrel-falsify` round on the integrated result | `verifier` tree-wide, once |
58
64
 
59
65
  - Never run a review on a small change. Never run a second design round on the same brief.
60
- - A fix round re-audits the repaired claim only. A fix that adopted the reviewer's prescription verbatim closes with a mutation probe (disable the load-bearing line, watch the test fail, restore it). A fix that departs from it gets one pass by the other engine.
66
+ - A fix round re-audits the repaired claim only. A fix that adopted the reviewer's prescription verbatim closes with a mutation probe (disable the load-bearing line, watch the test fail, restore it). A fix that departs from it gets one pass by an independent reviewer per § Engines.
61
67
  - When review rounds at one seam keep surfacing defects without converging on their source, follow `.agents/skills/orkestrel-falsify/SKILL.md` § End the depth search.
62
68
  - An all-confirmed round ends the audit. A round needs an added or repaired claim to attack; reviewer appetite is not a subject.
63
69
 
@@ -69,7 +75,7 @@ A large change runs these phases once each, in order, and ends when the exit cri
69
75
  2. **Design.** One adversarial round: `planner` (subjective) and `analyst` (objective) on one brief, clean contexts, blind to each other. Reconcile into one plan: units, owned files, dependencies, parallel and serial order, acceptance criteria, exit criterion, routing ledger.
70
76
  3. **Implement.** Dispatch units per § Routing and § Parallelism.
71
77
  4. **Integrate.** Apply returned patches to shared files serially. A type, mechanism, or criterion found here is a successor unit, never an integration edit.
72
- 5. **Audit.** One `orkestrel-falsify` round on the integrated result, one engine that did not write it per lane; add `checker` when the criteria are mechanical.
78
+ 5. **Audit.** One `orkestrel-falsify` round on the integrated result, an independent reviewer per § Engines in each lane; add `checker` when the criteria are mechanical.
73
79
  6. **Verify.** `verifier` runs the tree-wide gates once.
74
80
  7. **Re-baseline.** Strike satisfied units, restate transformed ones, add units the exit criterion already required. A re-baseline never moves the exit criterion; that needs the user.
75
81
  8. **Accept.** Report outcome, decisions, evidence, remaining risk. Run `orkestrel-debrief` when the campaign changed process, then prune per § Cleanup.
@@ -100,7 +106,7 @@ Every working file lives under the checkout's gitignored `tmp/`, in the director
100
106
 
101
107
  | Directory | Holds |
102
108
  | ------------------------------------------ | -------------------------------------------------------------------------------------------------- |
103
- | `tmp/claude/`, `tmp/codex/`, `tmp/cursor/` | bench briefs, launch scripts, journals, `.err` files, last-message files, login logs, per provider |
109
+ | `tmp/claude/`, `tmp/codex/`, `tmp/cursor/` | bench briefs, launch scripts, journals, `.err` files, last-message files, login logs, per harness |
104
110
  | `tmp/units/` | native unit briefs, reports, claims files, and campaign records |
105
111
  | `tmp/probes/` | runtime probes the `probe` Vitest project collects and the `probe` MCP server arms |
106
112
  | `tmp/type/` | the type stage's workspace mirror, owned by `@orkestrel/probe` |
@@ -141,8 +147,8 @@ The Orchestrator triages: obvious correction → tighten and re-dispatch; missin
141
147
 
142
148
  ## Benches
143
149
 
144
- - Probe a bench with the dispatch skill's `scripts/bench.ts` before its first lane in a session. A version string or a login status is not liveness.
145
- - A dispatch that fails on auth, quota, model access, or network records the bench dark and re-plans the lane on the substitute engine: Astra dark → Opus holds the objective lane too; Opus dark in Codex → Astra holds the subjective lane too; Grok dark → Luna, then Sonnet. Record every substitution in the routing ledger.
150
+ - Probe a bench with the dispatch skill's `scripts/bench.ts` and the model its transport pins before its first lane in a session. A version string or a login status is not liveness.
151
+ - For a harness that uses a bench, record a dispatch that fails on auth, quota, model access, or network as bench dark and re-plan the lane: Astra bench dark → Claude Opus holds the objective lane too; Claude Opus bench dark → Astra holds the subjective lane too; Grok dark → the harness's native reader, `distiller` or `researcher`: Claude Haiku 5.5 in Claude Code, GPT-6 Luna under the Codex mapping. When Haiku refuses the read, re-dispatch the role with `model: sonnet`. Record every substitution in the routing ledger. For a native role failure, use § Deviation protocol without a Claude fallback prerequisite.
146
152
  - Never assign Grok a design or review lane in Claude Code or Codex.
147
153
  - Journal every bench run under `tmp/<bench>/` with its session id. Never commit a journal.
148
154
 
@@ -159,7 +165,7 @@ The Orchestrator triages: obvious correction → tighten and re-dispatch; missin
159
165
  - Fix the model at session start. Effort switches and MCP changes invalidate the cache on most models and configurations; check the rule for the active model and tool-loading mode before changing either mid-session.
160
166
  - Keep the always-on instruction set small; rules load by path. An edit to a loaded instruction file takes effect after `/clear`, `/compact`, or a restart.
161
167
  - Give reading and driver roles no instruction files (`omitClaudeMd` in Claude Code) when their charter carries the floor they need.
162
- - Send bulk reads to a subagent and keep only the distillate.
168
+ - Route bulk reads per § Routing and keep only the distillate.
163
169
 
164
170
  ## Acceptance
165
171
 
@@ -39,7 +39,7 @@ is the lens list's only normative home, and the lane states its coverage against
39
39
  charter's wording survives the swap: a charter that assumes its default perspective
40
40
  everywhere outside the swap clause cannot be dispatched into the other lane, and a round
41
41
  run under a swap that reads like the default lane's output is the residue.
42
- - **Bridge minimalism.** A provider bridge loads one canonical workflow and adds nothing.
42
+ - **Bridge minimalism.** A harness bridge loads one canonical workflow and adds nothing.
43
43
  Any instruction beyond the load is a competing instruction.
44
44
  - **Vocabulary drift across mirrored files.** The same concept takes the same term across
45
45
  the Claude and Codex mirrors and each operating contract's role table.
@@ -92,7 +92,7 @@ Findings land as one of:
92
92
  skill step the campaign always skipped or always overrode is wrong.
93
93
  - **Orchestration-contract refinements.** Laws the orchestrator learned (cap sizing,
94
94
  probe-first, journal-first, verdict shapes, launch ownership) land in the operating
95
- contract, mirrored across providers.
95
+ contract, mirrored across harnesses.
96
96
 
97
97
  ## The questions every round asks
98
98
 
@@ -108,6 +108,6 @@ Findings land as one of:
108
108
 
109
109
  ## Mirror discipline
110
110
 
111
- Every roster or contract change lands on all provider surfaces in the same round: the
111
+ Every roster or contract change lands on all harness surfaces in the same round: the
112
112
  Claude charters, the Codex mirrors, and both operating-contract role tables. An
113
113
  unmirrored refinement is a new drift seeded on purpose.
@@ -1,6 +1,6 @@
1
1
  # Bench lanes
2
2
 
3
- An external engine widens capacity and inherits no authority. Treat every bench output as a proposal until the Orchestrator verifies it against the tree. `.agents/transports/<provider>.md` owns each bench's command, sandbox, and recovery; this file owns what is true of every bench.
3
+ An external engine widens capacity and inherits no authority. Treat every bench output as a proposal until the Orchestrator verifies it against the tree. `.agents/transports/<harness>.md` owns each bench's command, sandbox, and recovery; this file owns what is true of every bench.
4
4
 
5
5
  ## Before the lane
6
6
 
@@ -21,7 +21,7 @@ const SCRIPTS = dirname(fileURLToPath(import.meta.url))
21
21
  // The checkout runs the `.ts` sources and a built twin under `dist/agents` runs `.js` siblings.
22
22
  const EXTENSION = extname(fileURLToPath(import.meta.url))
23
23
  const PROMPT = 'Reply with the single word READY and nothing else.'
24
- const CURSOR_MODEL = process.env.CURSOR_GROK_MODEL ?? 'grok-4.7-high'
24
+ const CURSOR_MODEL = process.env.CURSOR_GROK_MODEL ?? 'grok-4.7-xhigh'
25
25
  const CODEX_MODEL = process.env.CODEX_ASTRA_MODEL ?? 'gpt-6-astra'
26
26
  const CLAUDE_MODEL = 'opus'
27
27
  const DEFAULT_CAP = 180
@@ -31,7 +31,7 @@ Write `tmp/units/<unit>-claims.md` and point every lane at it. Read `references/
31
31
 
32
32
  ## Dispatch the lanes
33
33
 
34
- - Medium: one lane, on an engine that did not write the work (`reviewer` for Astra-written work, `analyst` for Opus-written work). Large: the objective lane and the subjective lane, same claims file, each in a clean context, neither shown the other's answer before reconciliation. Add `checker` when criteria are mechanical.
34
+ - Medium: one lane, with an independent reviewer per `.agents/orchestration.md` § Engines (`reviewer` for Astra-written work, `analyst` for Opus-written work). Large: the objective lane and the subjective lane, same claims file, each in a clean context, neither shown the other's answer before reconciliation. Add `checker` when criteria are mechanical.
35
35
  - Tell a lane when its own engine wrote the half it audits.
36
36
  - Give a lane the evidence a read-only allowlist cannot produce: run the probe yourself, record its control and output, and hand it over.
37
37
  - Auditors edit no source and spawn nothing. Their reports are immutable after they return.
@@ -53,5 +53,5 @@ Record which engine was right and on what.
53
53
  - Every retained finding names the fix-brief item that carries it; walk the list once.
54
54
  - Drop, on the record, anything no lane can substantiate against the evidence.
55
55
  - Promote anything that must outlive the round into a durable artifact before the working files are swept.
56
- - The fix round's lane is an engine that did not write the fix. The next round's brief is this round's successor.
56
+ - Assign the fix round's lane to an independent reviewer per `.agents/orchestration.md` § Engines. The next round's brief is this round's successor.
57
57
  - Accept when the claims are satisfied on evidence (`VERDICT: PASS` against a claim set covering what the subject owns), never on green gates alone. Bound the claim set at the brief, rule on what it returned, and close; never re-run because an attack can still be imagined.
@@ -112,8 +112,7 @@ Prepare a published package's layer in this order, after the visit has ruled the
112
112
  4. **Run each package's own `prepublishOnly` script to green.**
113
113
  When the host npm is below the `MINIMUM_NPM_VERSION` floor a generated workspace declares in
114
114
  `devEngines`, prepend a local npm 11 install's `node_modules/.bin` to `PATH` for the visit and
115
- this script; a distribution proof that installs a generated workspace under an older npm fails
116
- `EBADDEVENGINES`.
115
+ this script.
117
116
  5. **Write the release commit and push before the window opens.** The preparation commit inside
118
117
  the visit is a different commit at a different moment.
119
118
 
@@ -10,9 +10,9 @@ A map is mechanical; reading is not. Run the map first, hand it to the reader, a
10
10
 
11
11
  ## Scripts
12
12
 
13
- | Script | Does |
14
- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
- | `scripts/map.ts` | `--tree PATH...` files with line counts and sizes; `--headings PATH...` Markdown headings with lines; `--frontmatter PATH...` every key of a frontmatter block, a TOML file, or a YAML file with its whole value, nested keys dotted (`interface.default_prompt`); `--exports PATH...` `export` lines in TypeScript files (a text reading); `--census TERM...` every line carrying a term; `--refs PATH` every line naming a path or its basename; `--anchors PATH...` every `§ Heading` reference whose heading its target lacks. `--paths a,b` narrows a census or refs walk; `--ignore-case`; `--json`; `--out FILE` writes the map instead of printing it. Walks skip `node_modules`, `.git`, `dist`, `tmp`, `.orkestrel`, `.idea`, and `host.json`. |
13
+ | Script | Does |
14
+ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | `scripts/map.ts` | `--tree PATH...` files with line counts and sizes; `--headings PATH...` Markdown headings with lines; `--frontmatter PATH...` every key of a frontmatter block, a TOML file, or a YAML file with its whole value, nested keys dotted (`interface.default_prompt`); `--exports PATH...` `export` lines in TypeScript files (a text reading); `--census TERM...` every line carrying a term (a term that opens with `--` is refused as a missing value, so drop a custom property's leading dashes); `--refs PATH` every line naming a path or its basename; `--anchors PATH...` every `§ Heading` reference whose heading its target lacks. `--paths a,b` narrows a census or refs walk; `--ignore-case`; `--json`; `--out FILE` writes the map instead of printing it. Walks skip `node_modules`, `.git`, `dist`, `tmp`, `.orkestrel`, `.idea`, and `host.json`. |
16
16
 
17
17
  ## Map
18
18
 
@@ -24,5 +24,5 @@ A map is mechanical; reading is not. Run the map first, hand it to the reader, a
24
24
 
25
25
  ## Refuse
26
26
 
27
- - A question that needs reading at depth or a judgment: route it to `grok`, `distiller`, or the reviewer the size gate names, with the map attached.
27
+ - A question that needs reading at depth or a judgment: route it per `.agents/orchestration.md` § Routing and the size gate, with the map attached.
28
28
  - A census over a term short enough to match inside unrelated words, without `--paths`.
@@ -9,8 +9,9 @@
9
9
  // heading the named file, or the same file, does not carry. Walks skip node_modules, .git, dist,
10
10
  // tmp, .orkestrel, .idea, and host.json; --paths narrows a census or refs walk. Modes combine, each
11
11
  // printing its section; --json prints one object; --out writes the output to FILE instead of the
12
- // terminal. Give each flag once; a later duplicate is not read. Exit 0, or 64 when no mode is
13
- // given or --refs names no path.
12
+ // terminal. Give each flag once; a later duplicate is not read. A value that opens with `--` is a
13
+ // missing value, so census a custom property without its leading dashes. Exit 0, or 64 when no
14
+ // mode is given or a flag is given with no value.
14
15
  import { existsSync, readFileSync, statSync, mkdirSync, writeFileSync } from 'node:fs'
15
16
  import { basename, dirname } from 'node:path'
16
17
  import {
@@ -300,7 +301,17 @@ function renderReport(report: Report): string {
300
301
  }
301
302
 
302
303
  function main(argv: readonly string[]): number {
303
- const missing = readMissingFlags(argv, ['--refs', '--paths', '--out'])
304
+ const missing = readMissingFlags(argv, [
305
+ '--tree',
306
+ '--headings',
307
+ '--frontmatter',
308
+ '--exports',
309
+ '--census',
310
+ '--refs',
311
+ '--anchors',
312
+ '--paths',
313
+ '--out',
314
+ ])
304
315
  if (missing.length > 0) {
305
316
  console.error(`map: ${missing.join(', ')} given with no value`)
306
317
  return 64
@@ -1,6 +1,6 @@
1
1
  # Claude transport contract
2
2
 
3
- Every Codex-side driver that carries a brief to the Claude Opus 5.5 bench follows this file. Routes: `planner`, `reviewer`, `opus`. A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs. Read `.agents/orchestration.md` first; it owns the role set and the routing.
3
+ For harnesses that route work to the Claude Opus 5.5 bench, follow this file. Routes: `planner`, `reviewer`, `opus`. Read `.agents/orchestration.md` first; its Codex mapping uses native roles without this transport or a Claude probe. A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs.
4
4
 
5
5
  ## Command
6
6
 
@@ -8,7 +8,7 @@ Every Codex-side driver that carries a brief to the Claude Opus 5.5 bench follow
8
8
  node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/claude/<unit>.jsonl --errors tmp/claude/<unit>.err --cap <seconds> --status -- claude -p "Read tmp/claude/<unit>-brief.md and execute it exactly. Your final message is the report it specifies." --model opus --output-format stream-json --verbose --permission-mode <mode>
9
9
  ```
10
10
 
11
- - Pass the permission mode the route pins. Never substitute a fixed Claude model id; `opus` and `sonnet` are the aliases.
11
+ - Pass the permission mode the route pins and `--model opus` for every route. Never substitute another alias, `fable`, or a fixed Claude model id.
12
12
  - Write the brief to `tmp/claude/<unit>-brief.md` with `scripts/brief.ts --lane claude`; the prompt is a pointer to it. Briefs never travel as shell arguments.
13
13
  - Read the answer and the session id with `node .agents/skills/orkestrel-dispatch/scripts/result.ts --claude tmp/claude/<unit>.jsonl`. A unit with no journal ran on its driver's engine, however normal its answer reads.
14
14
  - A driver pinned `workspace-write` writes the brief itself. A driver pinned `read-only` writes nothing: it returns the brief text, its intended path, the resolved command, and the journal paths, and the Orchestrator writes and launches.
@@ -16,6 +16,6 @@ node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/claude/<u
16
16
 
17
17
  ## Availability
18
18
 
19
- - Probe with `node .agents/skills/orkestrel-dispatch/scripts/bench.ts --claude` before the first use in a session. `live: false` records the bench dark: return it at once with the fallback named, so the Astra main session records Opus unavailable for the round. Where the binary is absent, name the install command for the `claude` CLI so the Orchestrator can put it to the user in the same turn.
19
+ - Probe with `node .agents/skills/orkestrel-dispatch/scripts/bench.ts --claude` before the first bench use in a session. `live: false` records the bench dark: return it at once with the fallback named, so the Orchestrator records Opus unavailable for the round. Where the binary is absent, name the install command for the `claude` CLI so the Orchestrator can put it to the user in the same turn.
20
20
  - Never install, authenticate, or substitute an API key, access token, or copied auth file.
21
21
  - Never route orchestration or acceptance across this bridge. Never read credentials, edit, or spawn another agent.
@@ -1,18 +1,18 @@
1
1
  # Codex transport contract
2
2
 
3
- Every driver that carries a brief to the GPT-6 Astra bench follows this file. Routes: `analyst` (audit, objective design argument) and `astra` (implementation). A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs.
3
+ Every driver that carries a brief to the Codex GPT-6 Astra bench follows this file. Routes: `analyst` (audit, objective design argument) and `astra` (implementation). For native roles, use the canonical Codex mapping in `.agents/orchestration.md` without a bench launch or probe. A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs.
4
4
 
5
5
  ## Models and effort
6
6
 
7
7
  ```text
8
8
  CODEX_ASTRA_MODEL=gpt-6-astra effort high; xhigh only for a stated hard-reasoning need
9
- CODEX_MECHANICAL_MODEL=gpt-6-sol fully specified, taste-free units and drivers
9
+ CODEX_MECHANICAL_MODEL=gpt-6.1-sol fully specified, taste-free units
10
10
  CODEX_READING_MODEL=gpt-6-luna absorption and research when the Cursor bench is dark; record the substitution
11
11
  ```
12
12
 
13
13
  ## Command
14
14
 
15
- Use the journaled CLI for every unit. `codex mcp-server` was removed in Codex 0.154.0: never register it in an MCP configuration and never call an `mcp__codex__*` tool.
15
+ Use the journaled CLI for every bench unit. `codex mcp-server` was removed in Codex 0.154.0: never register it in an MCP configuration and never call an `mcp__codex__*` tool.
16
16
 
17
17
  ```text
18
18
  node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/codex/<unit>.jsonl --errors tmp/codex/<unit>.err --cap <seconds> --status -- codex exec --json -C <checkout> --sandbox <sandbox> --model gpt-6-astra -c model_reasoning_effort="high" --output-last-message tmp/codex/<unit>-last.md "Read tmp/codex/<unit>-brief.md from disk and execute it exactly. Your final message is the report it specifies."
@@ -47,7 +47,7 @@ node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/codex/<un
47
47
 
48
48
  ## Routing exclusion
49
49
 
50
- The provider's content filter has ended turns that authored a violation construct, even as a negative test: sandbox escapes, resolution-bypassing imports, injection payloads, credential probes. Route such a unit to `opus` from the start and record the bench dark for that unit only.
50
+ For harnesses that route `opus` to Claude, route a unit that authors sandbox escapes, resolution-bypassing imports, injection payloads, or credential probes to `opus` from the start and record the Codex bench dark for that unit only. For native Codex roles, report a harness refusal through the deviation protocol; the `opus` role uses the same harness.
51
51
 
52
52
  ## Journals
53
53
 
@@ -1,14 +1,14 @@
1
1
  # Cursor transport contract
2
2
 
3
- Every driver that carries a brief to the Cursor Grok bench follows this file. Route: `grok`. A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs. Read `.agents/orchestration.md` first; it owns the role set and the routing.
3
+ Every driver that carries a brief to the Cursor Grok 4.7 Extra High bench follows this file. Route: `grok`. A driver writes the brief, resolves the command, and returns the brief path, the command, and the journal path. The Orchestrator launches the run as a tracked background command under a cap it sizes from prior runs. Read `.agents/orchestration.md` first; it owns the role set and the routing.
4
4
 
5
5
  ## Model
6
6
 
7
7
  ```text
8
- CURSOR_GROK_MODEL=grok-4.7-high
8
+ CURSOR_GROK_MODEL=grok-4.7-xhigh
9
9
  ```
10
10
 
11
- Read from `agent models` on 2026-08-13. Re-read `agent models` and update this line when the id changes. Never guess or substitute a model id.
11
+ `grok-4.7-xhigh` is Grok 4.7 Extra High in `agent models` (read 2026-10-08). Re-read `agent models` and update this line, the `bench.ts` default, and the `CURSOR_GROK_MODEL` value in each host environment when the id changes. Never guess or substitute a model id.
12
12
 
13
13
  ## Command
14
14
 
@@ -16,7 +16,7 @@ Read from `agent models` on 2026-08-13. Re-read `agent models` and update this l
16
16
  - Launch:
17
17
 
18
18
  ```text
19
- node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/cursor/<unit>.jsonl --errors tmp/cursor/<unit>.err --cap <seconds> --status -- <node> <index> -p --trust --mode=ask --model grok-4.7-high --output-format stream-json "Read tmp/cursor/<unit>-brief.md and execute it exactly. Your final message is the document it specifies."
19
+ node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/cursor/<unit>.jsonl --errors tmp/cursor/<unit>.err --cap <seconds> --status -- <node> <index> -p --trust --mode=ask --model grok-4.7-xhigh --output-format stream-json "Read tmp/cursor/<unit>-brief.md and execute it exactly. Your final message is the document it specifies."
20
20
  ```
21
21
 
22
22
  - Write the brief to `tmp/cursor/<unit>-brief.md` with `scripts/brief.ts --lane cursor`; the prompt is a pointer to it.
@@ -32,5 +32,5 @@ node .agents/skills/orkestrel-dispatch/scripts/launch.ts --journal tmp/cursor/<u
32
32
 
33
33
  ## Availability
34
34
 
35
- - `bench.ts --cursor` reporting `live: false` records the bench dark. Stop with a deviation naming the fallback from `.agents/orchestration.md` § Benches: Luna, then Sonnet. Never hand the reading to the Orchestrator, `planner`, or `analyst`. Never install or authenticate.
35
+ - `bench.ts --cursor --model grok-4.7-xhigh` reporting `live: false` records the bench dark. Stop with a deviation naming the native reader for the harness from `.agents/orchestration.md` § Benches. Never hand the reading to the Orchestrator, `planner`, or `analyst`. Never install or authenticate.
36
36
  - Never route orchestration or acceptance across this bridge.
@@ -4,18 +4,19 @@
4
4
 
5
5
  ## Dispatch
6
6
 
7
- - Use the Agent tool for one unit, or when the next step depends on the result. Name the role as `subagent_type`.
8
- - Use a Workflow for a fan-out of many small units, a staged pipeline, or a loop. Give every `agent()` node a model alias and an effort. Serialize writing nodes. Recover an interrupted run with `resumeFromRunId`.
9
- - Never run a design or review lane as `fork`. A lane starts with a clean context.
10
- - Use the built-in `Explore` agent for a quick locate; it loads no instruction files.
7
+ - Use the Agent tool for one unit, or when the next step depends on the result. Name a role from `.claude/agents/` as `subagent_type`; never `general-purpose`, `Plan`, `claude`, or `fork`.
8
+ - Use a Workflow for a fan-out of many small units, a staged pipeline, or a loop. Give every `agent()` node a model alias from § Models and an effort. Serialize writing nodes. Recover an interrupted run with `resumeFromRunId`.
9
+ - Never dispatch `fork`; it runs on the session's model and context. Every unit starts with a clean context on its role's model.
10
+ - Use the built-in `Explore` agent with `model: haiku` for an exact bounded lookup; apply `.agents/orchestration.md` § Routing. It loads no instruction files.
11
11
  - Foreground Bash is capped at 10 minutes. Run anything longer as a background command with an internal `timeout`.
12
12
  - Write a reusable or long-running program as a TypeScript file and run it with `node`; a heredoc, `node -e`, `&&` chain, or `${...}` argument trips the Windows approval classifier, and a one-shot read-only check may run inline. Probe a bench with `node .agents/skills/orkestrel-dispatch/scripts/bench.ts`, launch a lane through `scripts/launch.ts`, and read its answer with `scripts/result.ts`, all from the dispatch skill.
13
13
 
14
14
  ## Models
15
15
 
16
- - Use the aliases `opus` and `sonnet`. Never `inherit`, never a fixed model ID, never `CLAUDE_CODE_SUBAGENT_MODEL`.
17
- - An alias serves the model the installed Claude Code maps it to. After a model release, measure the mapping with `claude -p --model <alias> --output-format json` and read `modelUsage`; when a newer model answers by id and the alias lags, update Claude Code (`scoop update claude-code` on this host) and measure again. Claude Code 2.1.284 serves Sonnet 5.5 as `sonnet` and Opus 5.5 as `opus` (measured 2026-09-29).
18
- - Run the main session on `opus` at high effort and keep the model fixed for the session; a model switch invalidates the prompt cache. An effort switch invalidates it too except on Opus 5.5 and Fable 5.1 under a Claude subscription or API key.
16
+ - Use the aliases `haiku`, `sonnet`, and `opus` in role frontmatter, a Workflow node, and a per-invocation `model`. Never `fable`, never `inherit`, never a fixed model ID, and never a dispatch that takes its model from the session, an `Explore` call or a Workflow node without `model` included: Claude Fable 5.1 orchestrates and is never a subagent.
17
+ - Keep `CLAUDE_CODE_SUBAGENT_MODEL` at `sonnet` in the `env` object of `.claude/settings.json`. It serves a subagent that no role frontmatter and no dispatch assigned a model; frontmatter and a per-invocation `model` outrank it (measured 2026-10-08 on Claude Code 2.1.294: `general-purpose` took it, `Plan` did not). Never set `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`; it overrides every role.
18
+ - An alias serves the model the installed Claude Code maps it to. After a model release, measure the mapping with `claude -p "Reply with the single word OK." --model <alias> --output-format json --max-turns 1` and read `modelUsage`; when a newer model answers by id and the alias lags, update Claude Code (`scoop update claude-code` on the Windows host) and measure again. Claude Code 2.1.294 serves Haiku 5.5 as `haiku`, Sonnet 5.5 as `sonnet`, and Opus 5.5 as `opus` (measured 2026-10-08). When a measurement moves an alias, update, in the same change, the version each `.claude/agents/` charter names in its description and opening line and the rows of `.agents/orchestration.md` § Engines.
19
+ - Run the main session on `fable` or `opus` at high effort and keep the model fixed for the session; a model switch invalidates the prompt cache. An effort switch invalidates it too except on Opus 5.5 and Fable 5.1 under a Claude subscription or API key.
19
20
  - Reach Astra through `analyst` and `astra`, Grok through `grok`. Role frontmatter carries Claude models only.
20
21
 
21
22
  ## Context and cache
@@ -23,7 +24,7 @@
23
24
  - Roles that launch a CLI, run gates, or only read set `omitClaudeMd: true`; their charters carry the permission floor they need. Writers and reviewers load the contract.
24
25
  - Adding or removing an MCP server invalidates the cache when its tools load into the prefix; deferred tools (the default) append without disturbing it. Avoid either mid-session.
25
26
  - An edit to a loaded instruction file takes effect after `/clear`, `/compact`, or a restart. Edits under `.claude/agents/` and `.claude/skills/` hot-reload.
26
- - Keep large reads in subagents. The main context holds decisions.
27
+ - Route supporting reads per `.agents/orchestration.md` § Routing. The main context holds decisions.
27
28
 
28
29
  ## Wiring
29
30
 
@@ -35,4 +36,6 @@
35
36
  ## Cloud
36
37
 
37
38
  - Setup installs `@openai/codex` and never authenticates. Start each live session with `codex login --device-auth`.
39
+ - When `npm ci` in a remote session refuses `EBADDEVENGINES`, run `scripts/npm.sh` and rerun the install.
38
40
  - `scripts/deps.sh` reinstalls when the lockfile digest differs from `node_modules/.orkestrel-lock.sha256`. Write the marker only after `npm ci` succeeds for that lockfile, in the same turn.
41
+ - When a browser launch in a remote session reports `Executable doesn't exist`, run `scripts/browsers.sh` and rerun the test before treating the failure as a defect.
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: analyst
3
- description: 'Driver for the GPT-6 Astra analyst route: the objective design argument, diagnosis, and correctness audit. Writes the brief, resolves the read-only codex exec command, and returns the brief path, the command, and the journal path. Analyzes nothing itself and endorses nothing.'
3
+ description: 'Haiku 5.5 driver for the GPT-6 Astra analyst route: the objective design argument, diagnosis, and correctness audit. Writes the brief, resolves the read-only codex exec command, and returns the brief path, the command, and the journal path. Analyzes nothing itself and endorses nothing.'
4
4
  tools: Bash, Read, Grep, Glob
5
- model: sonnet
6
- effort: low
5
+ model: haiku
6
+ effort: high
7
7
  permissionMode: default
8
8
  omitClaudeMd: true
9
9
  ---
10
10
 
11
- You drive the Astra `analyst` route. Do not analyze, judge, implement, or endorse the result yourself.
11
+ On Claude Haiku 5.5, you drive the Astra `analyst` route. Do not analyze, judge, implement, or endorse the result yourself.
12
12
 
13
13
  Read `.agents/transports/codex.md` and follow it exactly. It owns the command, the sandbox by host, the journal, and the recovery ladder. The route is read-only: on a POSIX host the sandbox is `read-only`; on Windows it is `danger-full-access` with the brief stating read-only and the launch script recording `git status --porcelain` before and after.
14
14
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: astra
3
- description: 'Driver for the GPT-6 Astra implementation route: one bounded, objective, constraint-heavy unit. Writes the brief, resolves the writing codex exec command, and returns the brief path, the command, and the journal path. Implements nothing itself and endorses nothing.'
3
+ description: 'Haiku 5.5 driver for the GPT-6 Astra implementation route: one bounded, objective, constraint-heavy unit. Writes the brief, resolves the writing codex exec command, and returns the brief path, the command, and the journal path. Implements nothing itself and endorses nothing.'
4
4
  tools: Bash, Read, Grep, Glob
5
- model: sonnet
6
- effort: low
5
+ model: haiku
6
+ effort: high
7
7
  permissionMode: default
8
8
  omitClaudeMd: true
9
9
  ---
10
10
 
11
- You drive the Astra implementation route. Do not implement, judge, or endorse the result yourself.
11
+ On Claude Haiku 5.5, you drive the Astra implementation route. Do not implement, judge, or endorse the result yourself.
12
12
 
13
13
  Read `.agents/transports/codex.md` and follow it exactly. It owns the command, the sandbox by host (`workspace-write` on POSIX, `danger-full-access` on Windows), the journal, and the recovery ladder.
14
14
 
@@ -1,26 +1,26 @@
1
1
  ---
2
2
  name: builder
3
- description: 'Implements one small, fully specified, taste-free unit exactly as dispatched, in src, app, tests, or configs. Writes only owned files as the sole writer in its checkout, validates scoped to them, and stops on any conflict with the brief. Nontrivial design belongs to astra or opus.'
3
+ description: 'Sonnet 5.5 implementation of one bounded unit with a closed shape, in src, app, tests, or configs: the brief or the types fix its names, API, and architecture. Writes only owned files as the sole writer in its checkout, validates scoped to them, and stops on any conflict with the brief. A unit that leaves a name, API, or architecture open belongs to astra or opus.'
4
4
  tools: Read, Grep, Glob, Edit, Write, Bash
5
5
  model: sonnet
6
6
  effort: low
7
7
  permissionMode: acceptEdits
8
8
  ---
9
9
 
10
- You implement one fully specified unit. The dispatch is the plan; do not re-plan.
10
+ On Claude Sonnet 5.5, you implement one bounded unit with a closed shape. The dispatch is the plan; do not re-plan.
11
11
 
12
12
  ## Do
13
13
 
14
14
  1. Read the brief, the rules whose `paths` match your owned files, and the guide it names.
15
15
  2. Write only the owned files. Return an exact patch for a shared file; never edit it.
16
- 3. Follow `AGENTS.md` § Work loop for a small change: edit, prove or test the claim, run the touched test file, then the touched project if the brief names it.
16
+ 3. At the size the brief names, follow `AGENTS.md` § Work loop. Edit, prove or test the claim, run the touched test file, then the touched project when the brief names it.
17
17
  4. Validate read-only and scoped: a non-fix lint on your paths, the scoped `check:` script, the touched tests. Never run `format`, lint `--fix`, `build`, or the whole suite.
18
18
  5. Delete any probe you wrote before returning; promote a probe that settled a claim into a test in the mirrored location.
19
19
  6. Stop and report per `.agents/orchestration.md` § Deviation protocol when the brief conflicts with the tree or asks for an unowned edit.
20
20
 
21
21
  ## Refuse
22
22
 
23
- - A unit whose naming, API shape, or architecture is still open: report it as belonging to `astra` or `opus`.
23
+ - A unit that leaves naming, API shape, or architecture open, or that spans packages: report it as belonging to `astra` or `opus`.
24
24
  - Installing, committing, pushing, reading a secret, or a destructive command.
25
25
 
26
26
  ## Return
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: checker
3
- description: 'Mechanical conformance review of a diff against its acceptance criteria, the AGENTS.md letter, the applicable rules, scope honesty, and guide parity. One piece of evidence per item; no judgment calls. Dispatched when criteria are mechanically checkable. Never edits.'
3
+ description: 'Haiku 5.5 mechanical conformance review of a diff against its acceptance criteria, the AGENTS.md letter, the applicable rules, scope honesty, and guide parity. One piece of evidence per item; no judgment calls. Dispatched when criteria are mechanically checkable. Never edits.'
4
4
  tools: Read, Grep, Glob
5
- model: sonnet
6
- effort: low
5
+ model: haiku
6
+ effort: high
7
7
  permissionMode: dontAsk
8
8
  ---
9
9
 
10
- You check mechanically. You hold no edit tool and run no command; your final message is the verdict.
10
+ On Claude Haiku 5.5, you check mechanically. You hold no edit tool and run no command; your final message is the verdict.
11
11
 
12
12
  ## Do
13
13
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: distiller
3
- description: 'Read-only bulk reading and evidence distillation when the Cursor Grok bench is dark: sweeps large files, diffs, and directory trees and returns cited facts, contradictions, and unresolved inputs. Never designs, implements, reviews, or accepts.'
3
+ description: 'Haiku 5.5 read-only bulk reading and evidence distillation when the Cursor Grok bench is dark: sweeps large files, diffs, and directory trees and returns cited facts, contradictions, and unresolved inputs. Never designs, implements, reviews, or accepts.'
4
4
  tools: Read, Grep, Glob
5
- model: sonnet
6
- effort: low
5
+ model: haiku
6
+ effort: high
7
7
  permissionMode: dontAsk
8
8
  omitClaudeMd: true
9
9
  ---
10
10
 
11
- You read so the Orchestrator does not have to. You decide nothing.
11
+ On Claude Haiku 5.5, you read and distill the supplied evidence. You decide nothing.
12
12
 
13
13
  ## Do
14
14
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: grok
3
- description: 'Driver for the Cursor Grok bench: absorption, distillation, scouting, and bounded research over a large read. Writes the brief, resolves the CLI command, and returns the Grok distillate with its journal path and session id. Reads nothing at depth itself and never designs, decides, edits, or reviews.'
3
+ description: 'Haiku 5.5 driver for the Cursor Grok bench: context absorption, distillation, broad mapping, and exploration. Writes the brief, resolves the CLI command, and returns the Grok distillate with its journal path and session id. Reads nothing at depth itself and never designs, decides, edits, or reviews.'
4
4
  tools: Bash, Read, Grep, Glob
5
- model: sonnet
6
- effort: low
5
+ model: haiku
6
+ effort: high
7
7
  permissionMode: default
8
8
  omitClaudeMd: true
9
9
  ---
10
10
 
11
- You drive the Cursor Grok bench. Do not read the subject yourself, do not answer the question yourself, and make no repository change.
11
+ On Claude Haiku 5.5, you drive the Cursor Grok bench. Do not read the subject yourself, do not answer the question yourself, and make no repository change.
12
12
 
13
13
  Read `.agents/transports/cursor.md` and follow it exactly. It owns the model pin, the CLI resolution, the launch form, the journal, and the recovery ladder.
14
14
 
@@ -7,7 +7,7 @@ effort: high
7
7
  permissionMode: acceptEdits
8
8
  ---
9
9
 
10
- You implement one dispatched unit and spawn nothing.
10
+ On Claude Opus 5.5, you implement one dispatched unit and spawn nothing.
11
11
 
12
12
  ## Do
13
13
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: orkestrel
3
- description: 'Read-only Orkestrel ecosystem reconciler: turns the evidence the dispatch supplies — manifests, lockfiles, installed declarations, guides, and registry readings — into package maps, dependency sequencing, blast radius, and drift findings. Collects no live state itself, and never treats the embedded catalog as live state.'
3
+ description: 'Sonnet 5.5 read-only Orkestrel ecosystem reconciler: turns the evidence the dispatch supplies — manifests, lockfiles, installed declarations, guides, and registry readings — into package maps, dependency sequencing, blast radius, and drift findings. Collects no live state itself, and never treats the embedded catalog as live state.'
4
4
  tools: Read, Grep, Glob
5
5
  model: sonnet
6
6
  effort: low
7
7
  permissionMode: dontAsk
8
8
  ---
9
9
 
10
- You are the read-only Orkestrel ecosystem reconciler. Spawn nothing and edit nothing.
10
+ On Claude Sonnet 5.5, you are the read-only Orkestrel ecosystem reconciler. Spawn nothing and edit nothing.
11
11
 
12
12
  Read the orchestration contract first. It owns the role set, the routing, and the
13
13
  dispatch contract. Resolve it against scaffold. In the scaffold checkout it sits at