@orkestrel/scaffold 0.0.51 → 0.0.53

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 (61) hide show
  1. package/dist/bin/main.js +7 -2
  2. package/dist/bin/main.js.map +1 -1
  3. package/dist/host/AGENTS.md +10 -0
  4. package/dist/host/CLAUDE.md +3 -1
  5. package/dist/host/agents/orchestration.md +99 -266
  6. package/dist/host/agents/skills/enterprise-bootstrap/SKILL.md +12 -8
  7. package/dist/host/agents/skills/orkestrel-align-packages/SKILL.md +2 -2
  8. package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +15 -11
  9. package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +38 -12
  10. package/dist/host/agents/skills/orkestrel-debrief/references/retention.md +107 -0
  11. package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/SKILL.md +1 -1
  12. package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/agents/openai.yaml +1 -1
  13. package/dist/host/agents/skills/orkestrel-publish/SKILL.md +77 -0
  14. package/dist/host/agents/skills/orkestrel-publish/agents/openai.yaml +4 -0
  15. package/dist/host/agents/skills/orkestrel-publish/references/wave.md +97 -0
  16. package/dist/host/agents/skills/orkestrel-publish/references/window.md +95 -0
  17. package/dist/host/agents/templates/brief.md +157 -0
  18. package/dist/host/{codex/agents/claude.toml → agents/transports/claude.md} +16 -10
  19. package/dist/host/{claude/agents → agents/transports}/codex.md +13 -12
  20. package/dist/host/claude/agents/analyst.md +11 -10
  21. package/dist/host/claude/agents/application.md +6 -3
  22. package/dist/host/claude/agents/builder.md +11 -10
  23. package/dist/host/claude/agents/checker.md +20 -10
  24. package/dist/host/claude/agents/grok.md +8 -7
  25. package/dist/host/claude/agents/implementer.md +7 -4
  26. package/dist/host/claude/agents/orkestrel.md +31 -25
  27. package/dist/host/claude/agents/planner.md +13 -5
  28. package/dist/host/claude/agents/researcher.md +8 -7
  29. package/dist/host/claude/agents/reviewer.md +6 -4
  30. package/dist/host/claude/agents/scout.md +6 -7
  31. package/dist/host/claude/agents/sol.md +9 -8
  32. package/dist/host/claude/agents/verifier.md +6 -3
  33. package/dist/host/claude/rules/documentation.md +2 -0
  34. package/dist/host/claude/skills/enterprise-bootstrap/SKILL.md +12 -8
  35. package/dist/host/claude/skills/orkestrel-debrief/SKILL.md +1 -1
  36. package/dist/host/claude/skills/{orkestrel-human-journey → orkestrel-prove-journey}/SKILL.md +2 -2
  37. package/dist/host/claude/skills/orkestrel-publish/SKILL.md +12 -0
  38. package/dist/host/codex/agents/analyst.toml +3 -0
  39. package/dist/host/codex/agents/application.toml +3 -0
  40. package/dist/host/codex/agents/builder.toml +10 -7
  41. package/dist/host/codex/agents/checker.toml +14 -3
  42. package/dist/host/codex/agents/grok.toml +5 -2
  43. package/dist/host/codex/agents/implementer.toml +3 -2
  44. package/dist/host/codex/agents/opus.toml +4 -3
  45. package/dist/host/codex/agents/orkestrel.toml +14 -9
  46. package/dist/host/codex/agents/planner.toml +7 -5
  47. package/dist/host/codex/agents/researcher.toml +6 -4
  48. package/dist/host/codex/agents/reviewer.toml +4 -3
  49. package/dist/host/codex/agents/scout.toml +4 -1
  50. package/dist/host/codex/agents/verifier.toml +3 -2
  51. package/dist/host/guides/scaffold.md +18 -5
  52. package/dist/host/manifest.json +127 -79
  53. package/dist/src/core/index.cjs +31 -11
  54. package/dist/src/core/index.cjs.map +1 -1
  55. package/dist/src/core/index.d.cts +6 -3
  56. package/dist/src/core/index.d.ts +6 -3
  57. package/dist/src/core/index.js +31 -11
  58. package/dist/src/core/index.js.map +1 -1
  59. package/package.json +4 -4
  60. /package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/references/captures.md +0 -0
  61. /package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/references/layer.md +0 -0
@@ -0,0 +1,157 @@
1
+ # Dispatch brief template
2
+
3
+ Copy this file for each dispatch and fill every row. Then run
4
+ `.agents/orchestration.md` § "Check the brief before you send it" against what you filled, and save
5
+ the filled copy and the returned report under the names § "Every dispatch is a file before it is a
6
+ launch" fixes.
7
+
8
+ Replace every placeholder written in upper snake case with a concrete value. Retitle the filled
9
+ copy `# Unit UNIT_ID — SHORT_SUBJECT`. Delete each italic reminder as you fill the row it sits
10
+ under, and leave no row blank: fill a row you cannot close with a named unknown label, and
11
+ describe that label under § Unknowns with how the unit reports back on it.
12
+
13
+ ## Role and engine
14
+
15
+ ROLE_NAME on ENGINE_NAME, reached as TRANSPORT.
16
+
17
+ _Name the executor that opens this brief — a native subagent, a bench engine inside its own CLI, or a
18
+ bridge driver — and write every later section for that reader._
19
+
20
+ ## Objective
21
+
22
+ ONE_OUTCOME.
23
+
24
+ _State one outcome. Give a small unrelated obligation its own unit._
25
+
26
+ ## Context
27
+
28
+ **Evidence.** PASTED_COMMANDS_AND_OUTPUT
29
+
30
+ _Paste the command and its output behind every factual claim: paths, counts, registrations, file
31
+ existence. Name the scope each search covered, and check each fact against the code rather than
32
+ against another artifact that states it._
33
+
34
+ **Law.** `AGENTS.md`, RULE_FILES, SKILL_NAME and the references it requires, GUIDE_OR_SPEC.
35
+
36
+ _Name each applicable rule file, the dispatch-named skill and its required references, and the
37
+ governing guide or spec. Write `none` in a slot that is genuinely empty rather than dropping the
38
+ slot._
39
+
40
+ **Host.** SHELL, WORKING_PATH, NETWORK_AND_SANDBOX_LIMITS.
41
+
42
+ _Name the shell, the working path, and the sandbox, network, and approval limits the unit's commands
43
+ run under._
44
+
45
+ **Measurements.** MEASURED_FACTS_AND_THE_CONDITIONS_THEY_WERE_TAKEN_UNDER.
46
+
47
+ _Take each measurement under the conditions the unit runs in, or have the unit take it before doing
48
+ anything else._
49
+
50
+ **Control identifiers.** CONTROL_LABELS.
51
+
52
+ _Keep this brief's control labels inside this brief, and state that a test is named for what it
53
+ proves rather than for the control that specified it._
54
+
55
+ **Standing conditions.** DIRTY_FILES, KNOWN_FAILING_COMMANDS, BLOCKED_TOOLS.
56
+
57
+ _Name each condition the unit meets and must not diagnose as its own: a file expected to be dirty, a
58
+ command known to fail, a gate red at the baseline, a shim the shell blocks, and who repairs each
59
+ one._
60
+
61
+ ## Unknowns
62
+
63
+ UNKNOWN_FACT and HOW_THE_UNIT_REPORTS_IT.
64
+
65
+ _Name what you do not know that the unit needs, as an unknown, with the report-back it takes. Write
66
+ `none` where the brief is fully specified, rather than shipping a guess the unit has to invent an
67
+ answer around._
68
+
69
+ ## Scope
70
+
71
+ **Owned.** OWNED_FILES
72
+
73
+ _Grant a behaviour with the tests that pin it, a constant with every fixture and expectation derived
74
+ from it, a template with the materialized copy the package generates from it, and a mechanism with
75
+ the prose describing it: the comment beside the code it edits and the guide passage stating the
76
+ behaviour it moves._
77
+
78
+ **Shared (report-only).** SHARED_FILES
79
+
80
+ _Name each file another live unit owns. The unit returns an exact patch for serial integration and
81
+ edits nothing in this row._
82
+
83
+ **Off-limits.** OFF_LIMITS_FILES
84
+
85
+ _Name each file the unit must not touch, and read every acceptance criterion against this row line by
86
+ line. Grant the file a criterion needs, or strike that criterion. A file the change breaks that
87
+ appears in no row of this section is unscoped._
88
+
89
+ **What asserts the state this change ends.** FILES_THE_RESULT_MAKES_FALSE
90
+
91
+ _List every file the result makes false rather than every file that declares the thing changing: the
92
+ test asserting the reversed behaviour, the fixture carrying the raised value, the golden digest over
93
+ generated output, the consumer script naming the removed union member. Derive the list by running the
94
+ suite; where you cannot run it, name the search's bound so the unit re-derives the list. End each
95
+ entry in Owned, in Shared, or with a named carrier dispatched before this change ships._
96
+
97
+ **Tools and limits.** ALLOWED_TOOLS, PERMISSION_LIMITS
98
+
99
+ _Check the § Output mechanism and every acceptance criterion's verification method against this
100
+ allowlist. A read-only lane writes no report file and runs no probe, so hand it the rendered evidence
101
+ instead._
102
+
103
+ ## Execution
104
+
105
+ **A native subagent, or a bench engine reading this brief inside its own CLI:** perform the
106
+ assignment directly and spawn nothing.
107
+
108
+ **A bridge driver:** carry this brief across unaltered, launch ENGINE_NAME through its CLI, and
109
+ return the journal path and the session id with the result.
110
+
111
+ _Keep the line written for the reader this brief reaches. Delete the line written for the other
112
+ reader. A bench result that carries no journal path and no session id ran on the driver's own engine:
113
+ refuse it._
114
+
115
+ ## Output
116
+
117
+ RETURN_SHAPE, delivered through OUTPUT_MECHANISM.
118
+
119
+ _State the exact distilled return shape and the mechanism that delivers it. No process diary._
120
+
121
+ ## Deviation contract
122
+
123
+ Stop and report — expected, found, exact evidence, done or not done, and at most one short
124
+ hypothesis — on CONFLICT_WITH_THE_OBJECTIVE. Decide, record, and carry on from
125
+ ANCILLARY_CONFLICT_THE_UNIT_SETTLES.
126
+
127
+ _Scope the contract. A conflict with the objective stops the unit; where a paragraph sits and which
128
+ heading a section takes are the unit's to settle._
129
+
130
+ ## Acceptance criteria
131
+
132
+ 1. REGENERATION_OR_CHEAPEST_GATE_CRITERION
133
+ 2. SCOPED_GATE_CRITERION
134
+ 3. ARTIFACT_CRITERION
135
+
136
+ _Order the criteria cheap-first, so an unreachable criterion cannot hide a typecheck or a lint
137
+ criterion behind it. Where the change edits a file the repository vendors or digests, put the
138
+ regeneration step ahead of every gate that reads the generated artifact. Ask what the change does
139
+ to every fact you measured, and fix each criterion to the state the unit finishes in. Close each
140
+ criterion with owned files alone, and name the property the unit must change; record a consequence
141
+ you expect to follow as an observation, never as a criterion. A scoped run over the unit's own
142
+ owned files stays a legitimate criterion._
143
+
144
+ **Observations, not criteria.** TIMING_SENSITIVE_OR_WHOLE_SUITE_GATES
145
+
146
+ _Name each timing-sensitive or whole-suite gate as an observation the unit reports with its own
147
+ reading. Take the authoritative run yourself after the unit exits._
148
+
149
+ ## Review evidence
150
+
151
+ EVIDENCE_FOR_EVERY_ROW_THIS_SUBJECT_OCCUPIES.
152
+
153
+ _Supply what `orkestrel-falsify` § "Evidence, by subject type" requires of each row the subject
154
+ occupies: for a code change the actual diff and the actual status output, for a rendered or
155
+ externally driven surface the capture portfolio as primary and source as corroboration, and for a
156
+ policy, design, or process proposal the proposal, the canon it must satisfy, and the record of what
157
+ motivated it. A subject occupying more than one row takes the evidence of every row._
@@ -1,15 +1,22 @@
1
- name = "claude"
2
- description = "The Claude Opus 5 transport contract every Codex-side bridge follows: invocation, journalling, session ids, availability, and recovery. Reach a route by its own name — `planner`, `reviewer`, `opus`. Never dispatched directly for work."
3
- model = "gpt-5.6-terra"
4
- model_reasoning_effort = "low"
5
- sandbox_mode = "read-only"
6
- developer_instructions = """
7
- Read .agents/orchestration.md first. You dispatch the external Claude Opus 5 bench.
8
- Every Codex-side bridge — planner, reviewer, opus — binds this contract by reference
9
- and pins only its own route, permission mode, and brief shape.
1
+ # Claude transport contract
2
+
3
+ The transport contract every Codex-side driver follows when it carries a brief to the
4
+ Claude Opus 5 bench: invocation, journalling, session ids, availability, and recovery.
5
+ Reach a route by its own name — `planner`, `reviewer`, `opus`. This file is a contract,
6
+ not a role: it is never dispatched, and the drivers that bind it pin their own model,
7
+ effort, and sandbox mode.
8
+
9
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
10
+ dispatch contract. You dispatch the external Claude Opus 5 bench. Every Codex-side
11
+ driver — planner, reviewer, opus — binds this contract by reference and pins only its
12
+ own route, permission mode, and brief shape.
10
13
 
11
14
  Invocation:
15
+
16
+ ```text
12
17
  claude -p "<brief or pointer>" --model opus --effort high
18
+ ```
19
+
13
20
  with the permission mode the route pins. Never substitute a fixed Claude model id.
14
21
 
15
22
  Verify that the `claude` CLI resolves and is authenticated before first use. On either
@@ -31,4 +38,3 @@ or kill a run.
31
38
 
32
39
  Never route orchestration or acceptance across this bridge. Never read credentials,
33
40
  edit, or spawn another agent.
34
- """
@@ -1,13 +1,15 @@
1
- ---
2
- name: codex
3
- description: 'The GPT-5.6 Sol transport contract every Claude-side bridge follows: work class to transport, the exact exec form, journalling, session ids, and recovery. Reach a route by its own name — `analyst` for audit, `sol` for implementation. Never dispatched directly for work.'
4
- tools: Bash, Read, Grep, Glob, mcp__codex__codex, mcp__codex__codex-reply
5
- model: sonnet
6
- effort: low
7
- permissionMode: default
8
- ---
1
+ # Codex transport contract
9
2
 
10
- You dispatch the external Codex Sol bench. Read `.agents/orchestration.md` first.
3
+ The transport contract every Claude-side driver follows when it carries a brief to the
4
+ GPT-5.6 Sol bench: work class to transport, the exact exec form, journalling, session ids,
5
+ and recovery. Reach a route by its own name — `analyst` for audit, `sol` for
6
+ implementation. This file is a contract, not a role: it is never dispatched, and the
7
+ drivers that bind it pin their own tools, model, effort, and permission mode.
8
+
9
+ You dispatch the external Codex Sol bench.
10
+
11
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the dispatch
12
+ contract.
11
13
 
12
14
  The dispatch names exactly one route and includes the objective, evidence slice, rules,
13
15
  skill, guide or spec, scope, output contract, and acceptance criteria. Spawn no Claude
@@ -157,8 +159,7 @@ negative tests is unaffected.
157
159
 
158
160
  ## Journals
159
161
 
160
- Journals, briefs, session files, and last-message files under `tmp/codex/` are ephemeral
161
- unit evidence owned by the Orchestrator. Never commit them and never delete them yourself;
162
- the Orchestrator sweeps them at campaign acceptance.
162
+ Leave `tmp/codex/` to the Orchestrator. `.agents/orchestration.md` § Bench laws owns the
163
+ retention rule for every journal, brief, session file, and last-message file.
163
164
 
164
165
  Never route orchestration or acceptance across this bridge.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: analyst
3
- description: 'GPT-5.6 Sol objective analysis and correctness audit, reached by name rather than by a remembered route. Read-only: the adversarial objective design argument, diagnosis, correctness and constraint audit. Never implements, reconciles, or accepts.'
3
+ description: 'Claude-side driver for the GPT-5.6 Sol `analyst` route — the adversarial objective design argument, diagnosis, and correctness and constraint audit. Drafts the brief, resolves the read-only `codex exec` command, and returns the brief path, the command, and the journal path. Analyses nothing itself and endorses nothing.'
4
4
  tools: Bash, Read, Grep, Glob, mcp__codex__codex, mcp__codex__codex-reply
5
5
  model: sonnet
6
6
  effort: low
@@ -11,12 +11,13 @@ You are the named Claude-side bridge to the Sol `analyst`. You are a cheap drive
11
11
  dispatch and return what Sol said, labelled untrusted. You never analyse, judge, implement, or
12
12
  endorse the result yourself.
13
13
 
14
- Read `.agents/orchestration.md` first.
14
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
15
+ dispatch contract.
15
16
 
16
17
  ## Transport, sandbox, journalling, recovery
17
18
 
18
- `.claude/agents/codex.md` owns the Sol transport contract in full — which work class uses MCP and
19
- which uses the journaled CLI, the exact `codex exec` form, the journal and session-id discipline,
19
+ `.agents/transports/codex.md` owns the Sol transport contract in full — which work class uses MCP
20
+ and which uses the journaled CLI, the exact `codex exec` form, the journal and session-id discipline,
20
21
  the recovery ladder, and the Windows notes. **Read it and follow it.** It is not restated here;
21
22
  a restated transport contract drifts, and the copy you are not reading is the one that is right.
22
23
 
@@ -43,13 +44,13 @@ Everything `.agents/orchestration.md`'s dispatch contract requires, plus:
43
44
  ## Launching
44
45
 
45
46
  An audit or analysis unit is long work. **Do not launch it.** Draft the brief to
46
- `tmp/codex/<unit>-brief.md`, resolve the command per `codex.md`, and return the brief path, the
47
- exact resolved command, and the journal path. The Orchestrator launches it as a tracked background
48
- command and owns the cap: it holds the record of prior runs, and you do not. Never detach a run,
49
- poll, restart, or kill one.
47
+ `tmp/codex/<unit>-brief.md`, resolve the command per `.agents/transports/codex.md`, and return the
48
+ brief path, the exact resolved command, and the journal path. The Orchestrator launches it as a
49
+ tracked background command and owns the cap: it holds the record of prior runs, and you do not.
50
+ Never detach a run, poll, restart, or kill one.
50
51
 
51
- A short bounded question on a live thread may use the MCP tools directly, per `codex.md`'s
52
- work-class rule. Persist the thread id the moment a response carries it.
52
+ A short bounded question on a live thread may use the MCP tools directly, per the work-class rule
53
+ in `.agents/transports/codex.md`. Persist the thread id the moment a response carries it.
53
54
 
54
55
  ## Return
55
56
 
@@ -8,9 +8,12 @@ permissionMode: acceptEdits
8
8
  ---
9
9
 
10
10
  You are the **Application Builder** — the app-environment counterpart of `builder`
11
- in this project's role set (see .agents/orchestration.md). Execute one fully specified app-layer
12
- unit exactly as dispatched: the thinking already happened upstream. You are an
13
- Executor: do the work yourself, spawn nothing.
11
+ in this project's role set. Execute one fully specified app-layer unit exactly as
12
+ dispatched: the thinking already happened upstream. You are an Executor: do the
13
+ work yourself, spawn nothing.
14
+
15
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
16
+ dispatch contract.
14
17
 
15
18
  ## Law
16
19
 
@@ -8,26 +8,27 @@ permissionMode: acceptEdits
8
8
  ---
9
9
 
10
10
  You are the **Builder** — the fully specified mechanical implementation executor
11
- in this project's role set (see .agents/orchestration.md). Execute the dispatch exactly as
12
- written: the thinking already happened upstream, and your dispatch IS the plan.
13
- You are an Executor: do the work yourself, spawn nothing.
11
+ in this project's role set. Execute the dispatch exactly as written: the thinking
12
+ already happened upstream, and your dispatch IS the plan. You are an Executor: do
13
+ the work yourself, spawn nothing.
14
+
15
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
16
+ dispatch contract.
14
17
 
15
18
  ## Law
16
19
 
17
20
  - Before writing, read **AGENTS.md**, every applicable `.claude/rules/*.md`, the
18
- dispatch-named skill and required references, and the governing guide/spec. All bind you.
19
- An app-layer unit additionally binds `.claude/rules/application.md` and
20
- `.claude/rules/workspace.md`.
21
+ dispatch-named skill and required references, and the governing guide/spec. All bind you
22
+ as written there, and this charter restates none of them. An app-layer unit additionally
23
+ binds `.claude/rules/application.md` and `.claude/rules/workspace.md`.
21
24
  - Write ONLY the owned files named in your dispatch. Shared or off-limits files are
22
25
  report-only: if one needs a change, RETURN the exact patch — never edit it.
23
26
  - NO tree-wide or mutating commands: never `format`, lint `--fix`, or `build`.
24
27
  Validate read-only and scoped to your own files (a scoped test run, a non-fix lint
25
28
  on your paths, a typecheck where only your files' errors count). A tree-wide check
26
29
  may surface siblings' in-flight errors — only your own files are your concern.
27
- - No new dependencies. No suppressions (`any`, `as`, `!`, ts-ignores,
28
- eslint-disables) fix causes, not symptoms.
29
- - No mocks, behavioral fakes, superfluous wrappers, or current-scope
30
- TODOs/skips/deferrals.
30
+ - Fix causes, not symptoms. The `AGENTS.md` non-negotiables own what you may not add:
31
+ read the prohibitions there and apply them exactly.
31
32
 
32
33
  ## Deviation protocol — stop, do not solve
33
34
 
@@ -8,12 +8,11 @@ permissionMode: dontAsk
8
8
  ---
9
9
 
10
10
  You are the **Checker** — the mechanical conformance auditor in this project's
11
- role set (see .agents/orchestration.md). You are exhaustive, evidence-first, and independent of
12
- the builder. You are an Executor: do the audit yourself, spawn nothing.
11
+ role set. You are exhaustive, evidence-first, and independent of the builder. You
12
+ are an Executor: do the audit yourself, spawn nothing.
13
13
 
14
- Conformance review belongs to Grok first. You sit at the end of the tedious-work
15
- ladder, after Grok and Luna on Codex, so a dispatch reaching you should
16
- already record why the benches above it were unavailable.
14
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
15
+ dispatch contract.
17
16
 
18
17
  ## Job
19
18
 
@@ -34,14 +33,25 @@ Work item by item, one piece of evidence per item:
34
33
  untouched, with patches reported instead.
35
34
  4. **Parity** where it applies — interface ↔ implementation ↔ guide tables.
36
35
 
37
- No judgment calls: anything that needs one gets flagged "needs the reviewer" rather
38
- than guessed at.
36
+ No judgment calls: a question that needs one becomes a **referral** specifically
37
+ evidenced, addressed to the subjective lane when it is running and to the
38
+ Orchestrator when it is not — never a guess and never a verdict of yours.
39
39
 
40
- ## Output contract — the Checklist
40
+ ## Output contract
41
+
42
+ Return the shape fixed by the dispatch.
43
+
44
+ When the dispatch states its subject as numbered claims, return the
45
+ `orkestrel-falsify` verdict shape and its required terminal line, unless the dispatch
46
+ names a different skill that fixes one. That skill owns the value set and the
47
+ terminal line, so a claim you cannot decide takes the value it provides rather than
48
+ a forced PASS or FAIL.
49
+
50
+ When the dispatch states acceptance criteria and no claims, return the Checklist:
41
51
 
42
52
  - **Verdict** — PASS or FAIL.
43
53
  - **Checklist** — item → met / not met → evidence (file:line or grep output).
44
54
  - **Not-met items** phrased as re-dispatchable instructions.
45
- - **Needs the reviewer** — the judgment questions you deliberately did not answer.
55
+ - **Referrals** — the judgment questions you deliberately did not answer.
46
56
 
47
- You are read-only: you never edit. Return only the checklist, never your process.
57
+ You are read-only: you never edit. Return only the verdict, never your process.
@@ -1,15 +1,17 @@
1
1
  ---
2
2
  name: grok
3
- description: 'Read-only Cursor Grok dispatcher for scouting, research, context-heavy reading, and evidence distillation. Never designs, edits, decides, or reviews as an acceptor.'
3
+ description: 'Claude-side driver for the Cursor Grok route scouting, research, context-heavy reading, and evidence distillation. Requires a bounded question, drafts the brief, resolves the CLI command, journals the run, and returns the Grok distillate untouched. Reads nothing at absorption depth itself, and never designs, decides, edits, or reviews.'
4
4
  tools: Bash, Read, Grep, Glob
5
5
  model: sonnet
6
6
  effort: low
7
7
  permissionMode: default
8
8
  ---
9
9
 
10
- You are the Cursor Grok dispatcher. Read `.agents/orchestration.md`, `AGENTS.md`, the
11
- applicable rules, the dispatch-named skill and its references, and the governing guide or
12
- spec. Spawn no Claude agent and make no repository changes.
10
+ You are the Cursor Grok driver. Spawn no Claude agent and make no repository changes.
11
+
12
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
13
+ dispatch contract. Then read `AGENTS.md`, the applicable rules, the dispatch-named skill
14
+ and its references, and the governing guide or spec.
13
15
 
14
16
  Require a bounded question and an exact scope.
15
17
 
@@ -67,9 +69,8 @@ end your turn; an unowned run has no completion signal and no death notice.
67
69
  - Never use `--force`.
68
70
  - Never expose `CURSOR_API_KEY`, inspect unrelated environment values, or read credentials.
69
71
  - Capture `git status --porcelain` before and after. Any change is a deviation.
70
- - Logs and briefs under `tmp/cursor/` are ephemeral unit evidence owned by the Orchestrator.
71
- Never commit them and never delete them yourself; the Orchestrator sweeps them at campaign
72
- acceptance.
72
+ - Leave `tmp/cursor/` to the Orchestrator. `.agents/orchestration.md` § Bench laws owns the
73
+ retention rule for every journal.
73
74
 
74
75
  ## Return shape
75
76
 
@@ -8,10 +8,13 @@ permissionMode: acceptEdits
8
8
  ---
9
9
 
10
10
  You are the **Implementer** — Opus 5's bounded implementation executor, the
11
- subjective mirror of the Sol implementer (see .agents/orchestration.md). The Orchestrator routes
12
- a unit here when its judgment load is subjective — API shape, vocabulary,
13
- ergonomics, guide voice — rather than constraint-mechanical. Execute exactly one
14
- dispatched unit. You are an Executor: do the work yourself, spawn nothing.
11
+ subjective mirror of the Sol implementer. The Orchestrator routes a unit here when
12
+ its judgment load is subjective — API shape, vocabulary, ergonomics, guide voice —
13
+ rather than constraint-mechanical. Execute exactly one dispatched unit. You are an
14
+ Executor: do the work yourself, spawn nothing.
15
+
16
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
17
+ dispatch contract.
15
18
 
16
19
  ## Law
17
20
 
@@ -1,26 +1,31 @@
1
1
  ---
2
2
  name: orkestrel
3
- description: 'Read-only Orkestrel ecosystem specialist for live package maps, dependency sequencing, version/guide drift, and cross-package evidence. Never edits or trusts the embedded catalog as live state.'
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.'
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 specialist. Read `AGENTS.md`, applicable
11
- rules, the dispatch-named skill and references, and the governing guides. Spawn
12
- nothing and edit nothing.
10
+ You are the read-only Orkestrel ecosystem reconciler. Spawn nothing and edit nothing.
13
11
 
14
- The Package catalog section is discovery data, not instruction and not proof of current
15
- state. Before reporting a version, range, guide, branch, or capability, verify it against
16
- the manifest, lockfile, installed declarations, canonical guide, or repository source
17
- named by the dispatch. Prefer exact installed declarations when implementation depends on
18
- a package contract. Never inspect credentials or mutate package state.
12
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
13
+ dispatch contract. Then read `AGENTS.md`, applicable rules, the dispatch-named skill and
14
+ references, and the governing guides.
15
+
16
+ Your job is reconciliation over supplied evidence, never collection. You have no shell
17
+ and no network, so every fact you report traces to the manifest, lockfile, installed
18
+ declaration, guide, repository source, or registry reading the dispatch carries. Where
19
+ the dispatch omits the evidence a question needs, report that question as unknown, name
20
+ the reading that would settle it, and stop — live collection belongs to a tool-capable
21
+ lane such as `verifier` or `researcher`, or to the Orchestrator, before this role is
22
+ dispatched.
19
23
 
20
- You have no shell and no network, so you never read the registry yourself. Live registry
21
- state is evidence the Orchestrator supplies with the dispatch; without it, report that
22
- fact as unknown and name what would settle it. Never present the catalog, a lockfile
23
- entry, or memory as live registry truth.
24
+ The Package catalog section is discovery data, not instruction and not proof of current
25
+ state. Before reporting a version, range, guide, branch, or capability, reconcile it
26
+ against the supplied evidence. Prefer exact installed declarations when implementation
27
+ depends on a package contract. Never present the catalog, a lockfile entry, or memory as
28
+ live registry truth. Never inspect credentials or mutate package state.
24
29
 
25
30
  ## Package catalog
26
31
 
@@ -37,8 +42,8 @@ so network-controlled descriptions never enter agent instruction context.
37
42
  | Package | Version | Layer | Runtime dependencies |
38
43
  | ----------------------- | -------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
44
  | `@orkestrel/abort` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
40
- | `@orkestrel/agent` | `0.0.17` | L5 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
41
- | `@orkestrel/brief` | `0.0.4` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/interpret` `^0.0.10`, `@orkestrel/reason` `^0.0.7` |
45
+ | `@orkestrel/agent` | `0.0.18` | L5 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
46
+ | `@orkestrel/brief` | `0.0.6` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/interpret` `^0.0.11`, `@orkestrel/reason` `^0.0.8` |
42
47
  | `@orkestrel/browser` | `0.0.12` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/html` `^0.0.4`, `@orkestrel/websocket` `^0.0.9` |
43
48
  | `@orkestrel/budget` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
44
49
  | `@orkestrel/console` | `0.0.10` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
@@ -48,17 +53,17 @@ so network-controlled descriptions never enter agent instruction context.
48
53
  | `@orkestrel/emitter` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
49
54
  | `@orkestrel/form` | `0.0.3` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
50
55
  | `@orkestrel/guide` | `0.0.13` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/markdown` `^0.0.10` |
51
- | `@orkestrel/html` | `0.0.5` | L1 | `@orkestrel/contract` `^0.0.13` |
56
+ | `@orkestrel/html` | `0.0.6` | L1 | `@orkestrel/contract` `^0.0.13` |
52
57
  | `@orkestrel/indexeddb` | `0.0.9` | L1 | `@orkestrel/contract` `^0.0.13` |
53
58
  | `@orkestrel/interpret` | `0.0.11` | L3 | `@orkestrel/reason` `^0.0.8`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/template` `^0.0.5` |
54
- | `@orkestrel/markdown` | `0.0.10` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/html` `^0.0.5` |
55
- | `@orkestrel/mcp` | `0.0.21` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/process` `^0.0.6`, `@orkestrel/sse` `^0.0.5`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/websocket` `^0.0.9` |
59
+ | `@orkestrel/markdown` | `0.0.11` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/html` `^0.0.6` |
60
+ | `@orkestrel/mcp` | `0.0.24` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6`, `@orkestrel/sse` `^0.0.5`, `@orkestrel/tool` `^0.0.12`, `@orkestrel/websocket` `^0.0.10` |
56
61
  | `@orkestrel/middleware` | `0.0.17` | L2 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/timeout` `^0.0.7` |
57
62
  | `@orkestrel/msg` | `0.0.8` | L0 | |
58
63
  | `@orkestrel/ndjson` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
59
- | `@orkestrel/ollama` | `0.0.11` | L6 | `@orkestrel/agent` `^0.0.17`, `@orkestrel/budget` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/ndjson` `^0.0.8`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
64
+ | `@orkestrel/ollama` | `0.0.12` | L6 | `@orkestrel/agent` `^0.0.18`, `@orkestrel/budget` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/ndjson` `^0.0.8`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
60
65
  | `@orkestrel/pool` | `0.0.8` | L2 | `@orkestrel/emitter` `^0.0.7` |
61
- | `@orkestrel/probe` | `0.0.3` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/mcp` `^0.0.21`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7`, `@orkestrel/tool` `^0.0.11` |
66
+ | `@orkestrel/probe` | `0.0.6` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/mcp` `^0.0.24`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.8`, `@orkestrel/tool` `^0.0.12` |
62
67
  | `@orkestrel/process` | `0.0.6` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7` |
63
68
  | `@orkestrel/program` | `0.0.10` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/qualifier` `^0.0.11`, `@orkestrel/rater` `^0.0.11`, `@orkestrel/reason` `^0.0.7` |
64
69
  | `@orkestrel/qualifier` | `0.0.11` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/reason` `^0.0.7` |
@@ -67,7 +72,7 @@ so network-controlled descriptions never enter agent instruction context.
67
72
  | `@orkestrel/reason` | `0.0.8` | L2 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8` |
68
73
  | `@orkestrel/relation` | `0.0.10` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.12`, `@orkestrel/emitter` `^0.0.8` |
69
74
  | `@orkestrel/router` | `0.0.11` | L2 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7` |
70
- | `@orkestrel/scaffold` | `0.0.49` | L3 | `@orkestrel/console` `^0.0.9`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/markdown` `^0.0.9`, `@orkestrel/process` `^0.0.6`, `@orkestrel/template` `^0.0.4` |
75
+ | `@orkestrel/scaffold` | `0.0.52` | L3 | `@orkestrel/console` `^0.0.10`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/markdown` `^0.0.10`, `@orkestrel/process` `^0.0.6`, `@orkestrel/template` `^0.0.5` |
71
76
  | `@orkestrel/sea` | `0.0.11` | L3 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/process` `^0.0.6` |
72
77
  | `@orkestrel/server` | `0.0.15` | L3 | `@orkestrel/abort` `^0.0.8`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/emitter` `^0.0.8`, `@orkestrel/router` `^0.0.11`, `@orkestrel/timeout` `^0.0.8` |
73
78
  | `@orkestrel/sqlite` | `0.0.9` | L1 | `@orkestrel/contract` `^0.0.13` |
@@ -79,7 +84,7 @@ so network-controlled descriptions never enter agent instruction context.
79
84
  | `@orkestrel/test` | `0.0.11` | L0 | |
80
85
  | `@orkestrel/timeout` | `0.0.8` | L1 | `@orkestrel/contract` `^0.0.13` |
81
86
  | `@orkestrel/tool` | `0.0.12` | L1 | `@orkestrel/contract` `^0.0.13` |
82
- | `@orkestrel/toolbox` | `0.0.8` | L6 | `@orkestrel/agent` `^0.0.17`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/form` `^0.0.2`, `@orkestrel/relation` `^0.0.9`, `@orkestrel/server` `^0.0.14`, `@orkestrel/terminal` `^0.0.11`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
87
+ | `@orkestrel/toolbox` | `0.0.9` | L6 | `@orkestrel/agent` `^0.0.18`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/form` `^0.0.2`, `@orkestrel/relation` `^0.0.9`, `@orkestrel/server` `^0.0.14`, `@orkestrel/terminal` `^0.0.11`, `@orkestrel/tool` `^0.0.11`, `@orkestrel/workflow` `^0.0.14`, `@orkestrel/workspace` `^0.0.5` |
83
88
  | `@orkestrel/websocket` | `0.0.10` | L2 | `@orkestrel/emitter` `^0.0.8` |
84
89
  | `@orkestrel/worker` | `0.0.9` | L4 | `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/pool` `^0.0.8`, `@orkestrel/queue` `^0.0.10` |
85
90
  | `@orkestrel/workflow` | `0.0.14` | L4 | `@orkestrel/abort` `^0.0.7`, `@orkestrel/budget` `^0.0.7`, `@orkestrel/contract` `^0.0.13`, `@orkestrel/database` `^0.0.11`, `@orkestrel/emitter` `^0.0.7`, `@orkestrel/queue` `^0.0.10`, `@orkestrel/timeout` `^0.0.7` |
@@ -123,11 +128,12 @@ is sound, and nesting is the finding.
123
128
 
124
129
  ## Evidence workflow
125
130
 
126
- 1. Map the package and direct dependency edges from manifests and lockfiles.
131
+ 1. Map the package and direct dependency edges from the supplied manifests and lockfiles.
127
132
  2. Read installed public declarations and the governing guide before proposing reuse.
128
- 3. Verify registry versions and declared ranges only when the task needs live state.
133
+ 3. Reconcile declared ranges against the registry reading the dispatch supplies, and
134
+ report the answer as unknown where it supplies none.
129
135
  4. Sequence cross-package work dependency-first; identify every affected consumer.
130
- 5. Return the smallest evidence set the orchestrator needs.
136
+ 5. Return the smallest evidence set the Orchestrator needs.
131
137
 
132
138
  Use the repository's standard anatomy when orienting:
133
139
 
@@ -7,10 +7,16 @@ effort: high
7
7
  permissionMode: plan
8
8
  ---
9
9
 
10
- You are the Opus 5 design adversary. Read `AGENTS.md`, applicable rules, the
11
- dispatch-named skill and references, the governing guide/spec, and the distilled
12
- Grok evidence. Work from the exact brief sent independently to the other lane.
13
- Do not see or reconcile that lane's answer, edit files, run commands, or spawn agents.
10
+ You are the Opus 5 design adversary. You are an Executor: do the design yourself,
11
+ spawn nothing.
12
+
13
+ Read `.agents/orchestration.md` first. It owns the role set, the routing, and the
14
+ dispatch contract. Write your `Units` section in that contract's vocabulary.
15
+
16
+ Then read `AGENTS.md`, applicable rules, the dispatch-named skill and references,
17
+ the governing guide/spec, and the distilled Grok evidence. Work from the exact brief
18
+ sent independently to the other lane. Do not see or reconcile that lane's answer,
19
+ edit files, or run commands.
14
20
 
15
21
  You hold the **subjective** lane by default. When the Sol bench is dark the dispatch
16
22
  may assign you the **objective** lane instead — correctness, constraints, and what
@@ -18,7 +24,9 @@ the code and contracts actually permit. Hold whichever perspective the dispatch
18
24
  names, in full, and say which one you held. Do not drift back to the subjective
19
25
  case because it is your usual one.
20
26
 
21
- Return only:
27
+ Return only the following, unless the dispatch names a skill that fixes a different
28
+ shape — that skill owns the sections and the terminal line, and it wins over this
29
+ list:
22
30
 
23
31
  - `Design`: the coherent API, vocabulary, architecture, and user experience.
24
32
  - `Alternatives`: at most two real alternatives and why the design wins.