@orkestrel/scaffold 0.0.77 → 0.0.79

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 (158) hide show
  1. package/dist/agents/skills/orkestrel-dispatch/scripts/bench.js +204 -0
  2. package/dist/agents/skills/orkestrel-dispatch/scripts/brief.js +102 -0
  3. package/dist/agents/skills/orkestrel-dispatch/scripts/cite.js +95 -0
  4. package/dist/agents/skills/orkestrel-dispatch/scripts/helpers.js +207 -0
  5. package/dist/agents/skills/orkestrel-dispatch/scripts/launch.js +108 -0
  6. package/dist/agents/skills/orkestrel-dispatch/scripts/login.js +114 -0
  7. package/dist/agents/skills/orkestrel-dispatch/scripts/result.js +108 -0
  8. package/dist/agents/skills/orkestrel-dispatch/scripts/sweep.js +156 -0
  9. package/dist/agents/skills/orkestrel-harden/scripts/discovery.js +196 -0
  10. package/dist/agents/skills/orkestrel-publish/scripts/compare.js +206 -0
  11. package/dist/agents/skills/orkestrel-publish/scripts/pins.js +93 -0
  12. package/dist/agents/skills/orkestrel-publish/scripts/wave.js +458 -0
  13. package/dist/agents/skills/orkestrel-publish/scripts/window.js +188 -0
  14. package/dist/agents/skills/orkestrel-scout/scripts/map.js +300 -0
  15. package/dist/agents/templates/brief.md +55 -0
  16. package/dist/bin/main.js +58 -6
  17. package/dist/bin/main.js.map +1 -1
  18. package/dist/host/AGENTS.md +77 -135
  19. package/dist/host/agents/orchestration.md +147 -998
  20. package/dist/host/agents/skills/enterprise-bootstrap/SKILL.md +2 -2
  21. package/dist/host/agents/skills/enterprise-bootstrap/references/inspection.md +1 -1
  22. package/dist/host/agents/skills/{orkestrel-align-packages → orkestrel-align}/SKILL.md +6 -13
  23. package/dist/host/agents/skills/{orkestrel-align-packages → orkestrel-align}/agents/openai.yaml +1 -1
  24. package/dist/host/agents/skills/{orkestrel-align-packages → orkestrel-align}/references/fleet.md +5 -7
  25. package/dist/host/agents/skills/{orkestrel-build-application → orkestrel-build}/SKILL.md +11 -22
  26. package/dist/host/agents/skills/{orkestrel-build-application → orkestrel-build}/agents/openai.yaml +1 -1
  27. package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +8 -16
  28. package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +3 -3
  29. package/dist/host/agents/skills/orkestrel-debrief/references/retention.md +13 -13
  30. package/dist/host/agents/skills/orkestrel-dispatch/SKILL.md +61 -0
  31. package/dist/host/agents/skills/orkestrel-dispatch/agents/openai.yaml +4 -0
  32. package/dist/host/agents/skills/orkestrel-dispatch/references/bench.md +25 -0
  33. package/dist/host/agents/skills/orkestrel-dispatch/references/launch.md +32 -0
  34. package/dist/host/agents/skills/orkestrel-dispatch/scripts/bench.ts +259 -0
  35. package/dist/host/agents/skills/orkestrel-dispatch/scripts/brief.ts +110 -0
  36. package/dist/host/agents/skills/orkestrel-dispatch/scripts/cite.ts +115 -0
  37. package/dist/host/agents/skills/orkestrel-dispatch/scripts/helpers.ts +239 -0
  38. package/dist/host/agents/skills/orkestrel-dispatch/scripts/launch.ts +124 -0
  39. package/dist/host/agents/skills/orkestrel-dispatch/scripts/login.ts +123 -0
  40. package/dist/host/agents/skills/orkestrel-dispatch/scripts/result.ts +129 -0
  41. package/dist/host/agents/skills/orkestrel-dispatch/scripts/sweep.ts +157 -0
  42. package/dist/host/agents/skills/orkestrel-falsify/SKILL.md +42 -193
  43. package/dist/host/agents/skills/orkestrel-falsify/references/brief.md +38 -108
  44. package/dist/host/agents/skills/orkestrel-falsify/references/reconcile.md +35 -134
  45. package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/SKILL.md +10 -14
  46. package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/agents/openai.yaml +1 -1
  47. package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/references/hardening.md +3 -4
  48. package/dist/host/agents/skills/orkestrel-harden/scripts/discovery.ts +228 -0
  49. package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/SKILL.md +15 -23
  50. package/dist/host/agents/skills/orkestrel-journey/agents/openai.yaml +4 -0
  51. package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/references/captures.md +1 -1
  52. package/dist/host/agents/skills/{orkestrel-polish-surface → orkestrel-polish}/SKILL.md +25 -33
  53. package/dist/host/agents/skills/{orkestrel-polish-surface → orkestrel-polish}/agents/openai.yaml +1 -1
  54. package/dist/host/agents/skills/{orkestrel-polish-surface → orkestrel-polish}/references/capture-harness.md +3 -3
  55. package/dist/host/agents/skills/orkestrel-publish/SKILL.md +33 -20
  56. package/dist/host/agents/skills/orkestrel-publish/references/release.md +39 -0
  57. package/dist/host/agents/skills/orkestrel-publish/references/wave.md +22 -21
  58. package/dist/host/agents/skills/orkestrel-publish/references/window.md +27 -14
  59. package/dist/host/agents/skills/orkestrel-publish/scripts/compare.ts +220 -0
  60. package/dist/host/agents/skills/orkestrel-publish/scripts/pins.ts +114 -0
  61. package/dist/host/agents/skills/orkestrel-publish/scripts/wave.ts +629 -0
  62. package/dist/host/agents/skills/orkestrel-publish/scripts/window.ts +242 -0
  63. package/dist/host/agents/skills/orkestrel-scout/SKILL.md +28 -0
  64. package/dist/host/agents/skills/orkestrel-scout/agents/openai.yaml +4 -0
  65. package/dist/host/agents/skills/orkestrel-scout/scripts/map.ts +352 -0
  66. package/dist/host/agents/templates/brief.md +21 -142
  67. package/dist/host/agents/transports/claude-cli.md +21 -0
  68. package/dist/host/agents/transports/codex.md +38 -159
  69. package/dist/host/agents/transports/cursor.md +16 -65
  70. package/dist/host/claude/AGENTS.md +38 -0
  71. package/dist/host/claude/agents/analyst.md +14 -53
  72. package/dist/host/claude/agents/astra.md +26 -0
  73. package/dist/host/claude/agents/builder.md +14 -30
  74. package/dist/host/claude/agents/checker.md +13 -57
  75. package/dist/host/claude/agents/distiller.md +11 -26
  76. package/dist/host/claude/agents/grok.md +12 -35
  77. package/dist/host/claude/agents/opus.md +14 -30
  78. package/dist/host/claude/agents/orkestrel.md +4 -4
  79. package/dist/host/claude/agents/planner.md +10 -44
  80. package/dist/host/claude/agents/researcher.md +11 -30
  81. package/dist/host/claude/agents/reviewer.md +11 -95
  82. package/dist/host/claude/agents/scout.md +9 -23
  83. package/dist/host/claude/agents/verifier.md +15 -33
  84. package/dist/host/claude/rules/documentation.md +8 -2
  85. package/dist/host/claude/rules/portability.md +7 -1
  86. package/dist/host/claude/rules/quality.md +36 -96
  87. package/dist/host/claude/rules/styles.md +3 -0
  88. package/dist/host/claude/rules/tests.md +6 -3
  89. package/dist/host/claude/rules/workspace.md +21 -15
  90. package/dist/host/claude/rules/writing.md +57 -108
  91. package/dist/host/claude/settings.json +5 -3
  92. package/dist/host/claude/skills/enterprise-bootstrap/SKILL.md +1 -1
  93. package/dist/host/claude/skills/{orkestrel-align-packages → orkestrel-align}/SKILL.md +2 -2
  94. package/dist/host/claude/skills/{orkestrel-build-application → orkestrel-build}/SKILL.md +2 -2
  95. package/dist/host/claude/skills/orkestrel-dispatch/SKILL.md +11 -0
  96. package/dist/host/claude/skills/orkestrel-falsify/SKILL.md +2 -1
  97. package/dist/host/claude/skills/{orkestrel-harden-package → orkestrel-harden}/SKILL.md +2 -2
  98. package/dist/host/claude/skills/{orkestrel-prove-journey → orkestrel-journey}/SKILL.md +2 -2
  99. package/dist/host/claude/skills/orkestrel-polish/SKILL.md +12 -0
  100. package/dist/host/claude/skills/orkestrel-scout/SKILL.md +11 -0
  101. package/dist/host/codex/agents/analyst.toml +14 -31
  102. package/dist/host/codex/agents/astra.toml +25 -0
  103. package/dist/host/codex/agents/builder.toml +13 -20
  104. package/dist/host/codex/agents/checker.toml +13 -27
  105. package/dist/host/codex/agents/distiller.toml +9 -22
  106. package/dist/host/codex/agents/grok.toml +11 -30
  107. package/dist/host/codex/agents/opus.toml +14 -22
  108. package/dist/host/codex/agents/orkestrel.toml +1 -1
  109. package/dist/host/codex/agents/planner.toml +11 -28
  110. package/dist/host/codex/agents/researcher.toml +10 -22
  111. package/dist/host/codex/agents/reviewer.toml +11 -27
  112. package/dist/host/codex/agents/scout.toml +11 -17
  113. package/dist/host/codex/agents/verifier.toml +16 -12
  114. package/dist/host/codex/config.toml +18 -21
  115. package/dist/host/cursor/mcp.json +0 -4
  116. package/dist/host/cursor/rules/orchestration.mdc +12 -20
  117. package/dist/host/dotfiles/mcp.json +0 -4
  118. package/dist/host/dotfiles/oxlintrc.json +7 -0
  119. package/dist/host/guides/probe.md +18 -14
  120. package/dist/host/guides/scaffold.md +147 -83
  121. package/dist/host/guides/test.md +442 -148
  122. package/dist/host/manifest.json +322 -185
  123. package/dist/host/scripts/codex.sh +0 -0
  124. package/dist/host/scripts/cursor.sh +0 -0
  125. package/dist/host/scripts/deps.sh +0 -0
  126. package/dist/host/scripts/ollama.sh +0 -0
  127. package/dist/host/tests/config.test.ts +86 -55
  128. package/dist/host/tests/policy.test.ts +1 -5
  129. package/dist/host/tests/setupPolicy.ts +179 -4
  130. package/dist/src/core/index.cjs +264 -89
  131. package/dist/src/core/index.cjs.map +1 -1
  132. package/dist/src/core/index.d.cts +95 -30
  133. package/dist/src/core/index.d.ts +95 -30
  134. package/dist/src/core/index.js +262 -90
  135. package/dist/src/core/index.js.map +1 -1
  136. package/dist/src/server/index.cjs +55 -9
  137. package/dist/src/server/index.cjs.map +1 -1
  138. package/dist/src/server/index.d.cts +29 -4
  139. package/dist/src/server/index.d.ts +29 -4
  140. package/dist/src/server/index.js +56 -11
  141. package/dist/src/server/index.js.map +1 -1
  142. package/package.json +16 -12
  143. package/dist/host/CLAUDE.md +0 -61
  144. package/dist/host/agents/skills/orkestrel-prove-journey/agents/openai.yaml +0 -4
  145. package/dist/host/agents/transports/claude.md +0 -49
  146. package/dist/host/claude/agents/application.md +0 -36
  147. package/dist/host/claude/agents/sol.md +0 -61
  148. package/dist/host/claude/skills/orkestrel-polish-surface/SKILL.md +0 -12
  149. package/dist/host/codex/agents/application.toml +0 -25
  150. package/dist/host/codex/agents/sol.toml +0 -19
  151. /package/dist/host/agents/skills/{orkestrel-align-packages → orkestrel-align}/references/integration.md +0 -0
  152. /package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/references/centralization.md +0 -0
  153. /package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/references/contract.md +0 -0
  154. /package/dist/host/agents/skills/{orkestrel-harden-package → orkestrel-harden}/references/research.md +0 -0
  155. /package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/references/decide.md +0 -0
  156. /package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/references/layer.md +0 -0
  157. /package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/references/statechart.md +0 -0
  158. /package/dist/host/agents/skills/{orkestrel-prove-journey → orkestrel-journey}/references/styles.md +0 -0
@@ -58,6 +58,7 @@ Define aliases in `tsconfig.json` first. `vite.config.ts` derives from `compiler
58
58
  - `tsconfig.json`: shared compiler options, all-tree types, and path aliases.
59
59
  - `vite.config.ts`: shared builds, test projects, environment loading/mapping, and aliases.
60
60
  - `*/types.ts`: public API contracts.
61
+ - `configs/agents/tsconfig.skills.json`: the scoped typecheck of the skill scripts; its presence selects the `skills` blueprint fact.
61
62
  - `configs/src/` and `configs/app/`: thin per-target wrappers, including optional
62
63
  `configs/src/*bin*` files. Shared logic remains in root configs.
63
64
  - `configs/helpers.ts`, `configs/browsers.ts`, and `configs/policy.ts`: the only permitted leaves
@@ -128,18 +129,19 @@ environment axis is one project per src/app axis × environment:
128
129
  The workspace-proof axis is cross-cutting. Each proof covers the whole workspace rather than
129
130
  one environment, so each is its own project:
130
131
 
131
- | Project | Files | Proves | Gate |
132
- | ------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
133
- | `policy` | `tests/policy.test.ts` | The path- and text-shaped policy laws: mirrors, suppressions, the rule map, filenames, manifest scripts, skills, and bridges | `test` |
134
- | `config` | `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs | `test` |
135
- | `setup` | `tests/setup*.test.ts`, excluding `tests/setupBrowser.test.ts` | Prove root setup behavior in Node with `setup.ts`. | `test` |
136
- | `setup:browser` | `tests/setupBrowser.test.ts` | Prove browser setup behavior in Playwright Chromium with `setup.ts` and `setupBrowser.ts`. | `test` |
137
- | `journey:<variant>` | `tests/app/browser/integration.test.ts` | Drive the browser application at the declared variant viewport in Playwright Chromium with `setup.ts` and `setupBrowser.ts`. | `test` through `test:journey` |
138
- | `guides` | `tests/guides.test.ts` | Every documented API exists, every public API is documented, every compared summary, example, and pitch equals its source, and every executable fence returns what the guide says it returns | `test` |
139
- | `conformance` | `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks | `test` |
140
- | `distribution` | `tests/distribution.test.ts` | The packed package installs and resolves through its public exports | `prepublishOnly`; absent when private |
141
- | `integration` | `tests/integration.test.ts` | The package's features work together end to end across environments | `test` |
142
- | `service` | `tests/service/**/*.test.ts` | The live external services this package drives, driven for real | `prepublishOnly`; `test` when private |
132
+ | Project | Files | Proves | Gate |
133
+ | ------------------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
134
+ | `policy` | `tests/policy.test.ts` | The path- and text-shaped policy laws: mirrors, suppressions, the rule map, filenames, manifest scripts, skills, and bridges | `test` |
135
+ | `config` | `tests/config.test.ts` | Root configuration resolves its aliases, projects, and outputs | `test` |
136
+ | `setup` | `tests/setup*.test.ts`, excluding `tests/setupBrowser.test.ts` | Prove root setup behavior in Node with `setup.ts`. | `test` |
137
+ | `setup:browser` | `tests/setupBrowser.test.ts` | Prove browser setup behavior in Playwright Chromium with `setup.ts` and `setupBrowser.ts`. | `test` |
138
+ | `journey:<variant>` | `tests/app/browser/integration.test.ts` | Drive the browser application at the declared variant viewport in Playwright Chromium with `setup.ts` and `setupBrowser.ts`. | `test` through `test:journey` |
139
+ | `guides` | `tests/guides.test.ts` | Every documented API exists, every public API is documented, every compared summary, example, and pitch equals its source, and every executable fence returns what the guide says it returns | `test` |
140
+ | `conformance` | `tests/conformance.test.ts` | Where this package drifts from the official tooling it tracks | `test` |
141
+ | `skills` | `tests/agents/**/*.test.ts` | Each skill script under `.agents/skills/*/scripts/` does what its `SKILL.md` states, driven as a child process against a scratch fixture from its mirrored proof; `configs/agents/tsconfig.skills.json` selects the project | `test` |
142
+ | `distribution` | `tests/distribution.test.ts` | The packed package installs and resolves through its public exports | `prepublishOnly`; absent when private |
143
+ | `integration` | `tests/integration.test.ts` | The package's features work together end to end across environments | `test` |
144
+ | `service` | `tests/service/**/*.test.ts` | The live external services this package drives, driven for real | `prepublishOnly`; `test` when private |
143
145
 
144
146
  - Define the Node `setup` project only when a root file matches `tests/setup*.test.ts`,
145
147
  exact-case, other than `tests/setupBrowser.test.ts`. Include those matching files and exclude
@@ -147,6 +149,8 @@ one environment, so each is its own project:
147
149
  exists, and collect that path alone. For each registered project, emit its `test:setup` or
148
150
  `test:setup:browser` script and run it from `test`; otherwise emit neither its project nor its
149
151
  script.
152
+ - When `tests/setupGlobal.ts` exists, give `src:browser`, `setup:browser`, and `integration` that
153
+ module as their `globalSetup` option, and give no other project a global setup.
150
154
  - When a browser application selects the journey axis, register `journey:<variant>` projects
151
155
  through the birth-owned `configs/app/vite.journey.config.ts` wrapper. Keep the adopter's variant
152
156
  list there and compose each project through the root `appJourney` factory. Exclude
@@ -164,13 +168,13 @@ parallelism in `service`. In a `private: true` workspace, never declare `prepubl
164
168
  `distribution`, reach `service` from `test`, and retain the service project's isolated
165
169
  configuration.
166
170
 
167
- One project sits on neither axis. `probe` includes `tmp/probe/**/*.test.ts` so an agent can run a
171
+ One project sits on neither axis. `probe` includes `tmp/probes/**/*.test.ts` so an agent can run a
168
172
  throwaway instrument against real sources, aliases and setup. Declare no proof there. Keep the
169
173
  project composed in the root configuration rather than declared as a path string. The `probe` MCP
170
- server arms through it — its arming specifications live under the `tmp/probe/` directory and infer
174
+ server arms through it — its arming specifications live under the `tmp/probes/` directory and infer
171
175
  this project — so a workspace that removes the project, or declares it as a path string, fails the
172
176
  server's arming, and an unarmed server refuses every `prove` call. The `test:bench` script runs the
173
- same project in benchmark mode, which collects every test file under the `tmp/probe/` directory and
177
+ same project in benchmark mode, which collects every test file under the `tmp/probes/` directory and
174
178
  the `tests/` tree while refusing every ordinary test case. Every test script names its project and
175
179
  the `test:bench` script joins no chain, so no gate runs either mode; the project's directory is
176
180
  ignored by git; and `.claude/rules/tests.md` governs what may live there.
@@ -204,6 +208,8 @@ then runs the configured scoped checks that prove environment isolation.
204
208
  - `check:src` mirrors configured `src:*` test projects; optional `src:bin` is its
205
209
  own scope.
206
210
  - `check:app` mirrors configured `app:*` projects.
211
+ - `check:skills` typechecks `.agents/skills/*/scripts/*.ts` through `configs/agents/tsconfig.skills.json` wherever that wrapper is present: the root project's wildcard never enters a dot-prefixed directory, so the scripts need their own scope.
212
+ - The `build:skills` script emits a `.js` twin of every `.agents/skills/*/scripts/*.ts` script into the `dist/agents/skills/` tree through the same wrapper, rewrites each relative import to `.js`, and copies `.agents/templates/brief.md` into the `dist/agents/templates/` directory; the `build` chain runs it after `build:host`, and `dist/agents` ships in the package.
207
213
  - During development, run the narrowest granular scope that covers the change.
208
214
  - Lint is a separate complementary gate; neither lint nor root checking replaces
209
215
  environment-isolation checks.
@@ -1,89 +1,66 @@
1
- # Developer-facing writing rules
2
-
3
- These rules govern prose a developer reads, including chat replies, reports, guides, README files,
4
- and commit messages.
5
- `AGENTS.md` § Writing governs prose everywhere, and this file does not restate it; this file adds
6
- only what a developer audience decides. An instruction file follows `AGENTS.md` § Instruction files
7
- first, and these rules wherever a rule here names no different form for it.
8
-
9
- ## Voice and actor
10
-
11
- - Write `must` for a requirement, `can` for an option or an ability, and `might` for a possibility.
12
- A recommendation takes the imperative, the same form `AGENTS.md` § Writing fixes for instructions.
13
- Never write `should`, and never soften a recommendation into `We recommend`.
14
- - Address the developer as `you`. Name the software component that acts, and make it the subject of
15
- the sentence. Reserve `user` for someone using software the developer builds. Never write `we`,
16
- `our`, or `let's` about agent work.
17
- - Give software no human faculties. A component reports, returns, detects, or refuses; it never
18
- knows, thinks, wants, or sees.
19
- - Use the passive voice only where naming the actor adds blame and nothing else, such as a defect
20
- count. Name the actor wherever the reader needs it.
21
- - Use negative contractions (`don't`, `isn't`, `can't`) in a reply or a guide. Do not use them in an
22
- instruction file.
23
-
24
- ## Sentence and paragraph order
25
-
26
- - Put the condition, the goal, or the location before the instruction, so a reader the instruction
27
- does not apply to stops at the first clause. Put the result or the reason after it. This governs a
28
- sentence, not a document: a report still opens with its finding.
29
- - Put the key point in the first sentence of every paragraph and every list item, not only in the
30
- opening of the reply or the section.
31
- - Keep the helper words `that`, `then`, `of`, `a`, and `the`. Do not drop one for brevity.
32
- - Name the noun after `this`, `these`, or `it` wherever the reader could attach the pronoun to
33
- another referent.
34
- - State what the reader can do. Do not write a double negative.
1
+ # Writing rules
2
+
3
+ `AGENTS.md` § Writing governs every reply. This file adds what developer prose, comments, and instruction files decide. Write prose after the code works, and keep it short.
4
+
5
+ ## Voice
6
+
7
+ - Write `must` for a requirement, `can` for an option, `might` for a possibility, and the imperative for a recommendation. Never `should`, never `We recommend`.
8
+ - Address the developer as `you`. Make the software component the subject; it reports, returns, detects, or refuses, and never knows, thinks, wants, or sees. Never `we`, `our`, or `let's` about agent work.
9
+ - Use the passive voice only where naming the actor adds nothing.
10
+ - Use negative contractions in a reply or a guide, never in an instruction file.
11
+
12
+ ## Order
13
+
14
+ - Put the condition, goal, or location before the instruction. A report still opens with its finding.
15
+ - Put the key point in the first sentence of every paragraph and list item.
16
+ - Keep `that`, `then`, `of`, `a`, and `the`. Name the noun after `this`, `these`, or `it` when the referent is unclear.
17
+ - State what the reader can do; no double negatives.
35
18
 
36
19
  ## Claims and time
37
20
 
38
- - Claim only what the reader can check. Never write `ensure`, `guarantee`, a superlative, or an
39
- effort adjective as a claim about behavior, and cite the run behind every number. `ensure`
40
- addressed to an executor as a directive is outside this ban.
41
- - Write the present tense for what exists. Do not write `currently`, `now`, `new`, `latest`, or
42
- `soon`; where time matters, give the version or the date.
43
- - Recommend one path, the shortest one you proved. Rule on every option you list, and drop an option
44
- equivalent to the one you recommend.
45
-
46
- ## Code tokens, references, and links
47
-
48
- - Put a code token in backticks and follow it with a noun: the `parse` method, the `vite.config.ts`
49
- file, the `--check` flag. Never inflect, pluralize, or possessivize a code token, and never use one
50
- as an English verb.
51
- - Point to other material with `preceding`, `following`, `earlier`, or `later`, never with `above` or
52
- `below`. Use `earlier` and `later` for a version range too.
53
- - Write link text as the destination's title or a descriptive phrase, introduced by `see`. Never
54
- write `here`, `this document`, or a bare URL in prose.
55
- - Paraphrase third-party content and link its source; never paste it into prose you author. A
56
- vendored mirror is fetched bytes rather than authored prose, and `.claude/rules/documentation.md`
57
- governs it.
21
+ - Claim only what the reader can check. Never `ensure`, `guarantee`, a superlative, or an effort adjective as a claim about behavior; cite the run behind every number.
22
+ - Present tense for what exists. Never `currently`, `now`, `new`, `latest`, or `soon`; give a version or a date.
23
+ - Recommend one path. Rule on every option you list.
24
+
25
+ ## Tokens, references, links
26
+
27
+ - Put a code token in backticks and follow it with a noun. Never inflect or pluralize a code token or use it as a verb.
28
+ - Point with `preceding`, `following`, `earlier`, or `later`, never `above` or `below`.
29
+ - Link text is the destination's title or a descriptive phrase, introduced by `see`. No `here`, no bare URL in prose.
30
+ - Paraphrase third-party content and link it. A vendored mirror is fetched bytes and is exempt.
58
31
 
59
32
  ## Structure
60
33
 
61
- - Keep a required fact in the main flow. A note or a notice carries only what the reader can skip,
62
- never a prerequisite, a step, or a warning the task depends on.
63
- - In a reply or a guide, introduce every list, table, and code fence with a complete sentence naming
64
- what follows; a rule file's list sits bare under its heading. Number a list only where order or
65
- rank matters. Use a table only for rows with comparable fields.
66
- - Write a heading in sentence case, verb first for a task and a noun phrase for a concept. Identity
67
- numbering — a claim, an audit verdict, a plan unit — is data rather than a heading style, and
68
- stays.
69
-
70
- ## Examples, numbers, and abbreviations
71
-
72
- - Build an example from fictional data with descriptive names and no personally identifiable
73
- information. Write a placeholder in `UPPER_SNAKE_CASE` and explain it on first use. Never write
74
- `foo`, `bar`, or `baz`.
75
- - Expand an abbreviation the reader may not know on first use, with the short form in parentheses.
76
- Skip the expansion for one this audience reads daily, such as `API`, `CLI`, `JSON`, `URL`, or a
77
- file format.
78
- - Write a numeral for a technical quantity, a version, or a measurement. Write a date as
79
- `YYYY-MM-DD` in evidence, commit messages, and reports. See `AGENTS.md` § Writing for what
80
- separates a value from a count.
81
- - Use the serial comma. Mark omitted code with a comment in the sample's language, never with `...`.
34
+ - Keep a required fact in the main flow; a note carries only what the reader can skip.
35
+ - In a reply or a guide, introduce every list, table, and fence with a sentence. A rule file's list sits bare under its heading. Number a list only where order matters.
36
+ - Headings in sentence case: verb first for a task, noun phrase for a concept.
37
+
38
+ ## Examples, numbers, abbreviations
39
+
40
+ - Build examples from fictional descriptive data; placeholders in `UPPER_SNAKE_CASE`, explained on first use. Never `foo`, `bar`, or `baz`.
41
+ - Expand an abbreviation the reader may not know on first use; skip `API`, `CLI`, `JSON`, `URL`, and file formats.
42
+ - Numerals for technical quantities, versions, and measurements. Dates as `YYYY-MM-DD`. Serial comma. Mark omitted code with a comment in the sample's language.
43
+
44
+ ## Code comments
45
+
46
+ - A comment states why, never what the code shows. Delete a comment that restates the line. Do not narrate history, alternatives tried, or a probe's result.
47
+ - Write TSDoc only where `.claude/rules/typescript.md` requires it, in its prescribed shape, and no longer than the contract needs.
48
+
49
+ ## Instruction files
50
+
51
+ `AGENTS.md`, `.claude/rules/*`, `.agents/*`, `.claude/agents/*`, `.codex/agents/*`, `.cursor/rules/*`, and every skill are executed by an agent mid-task.
52
+
53
+ - Write every line as a directive: what to do, what to check, or what to refuse. Delete a line that does none of those.
54
+ - Name the trigger and the action: "When X, do Y".
55
+ - State the finding as the rule. Never record how it was found, which session found it, or what was tried first; that belongs in the commit message.
56
+ - Cut every clause that persuades, reassures, or explains to a person.
57
+ - Give a rule one home. Point at it from elsewhere; never restate it.
58
+ - Keep an example only when it disambiguates the rule.
59
+ - Keep `AGENTS.md` under 200 lines and the always-loaded set small; move a procedure into a skill and scope a rule with `paths`.
82
60
 
83
61
  ## Substitutions
84
62
 
85
- Replace each term in this table with its replacement. A literal code identifier is data, and so is
86
- a sample string inside a code fence or a test fixture: quote each as itself, exempt from every row.
63
+ Replace each term with its replacement. A code identifier and a string inside a fence or a fixture are data and exempt.
87
64
 
88
65
  | Term | Replacement |
89
66
  | ---------------------------------- | -------------------------------------------- |
@@ -108,35 +85,7 @@ a sample string inside a code fence or a test fixture: quote each as itself, exe
108
85
  | `blacklist`, `whitelist` | `denylist`, `allowlist` |
109
86
  | `master`, `slave` | `primary`, `replica` |
110
87
 
111
- - Register each lexical prohibition in the substitution table. Where its application depends on the
112
- sense rather than the match, register it in the judged set and rule each hit.
113
- - `policy/no-banned-term` reads every comment and the prose sweep in `tests/setupPolicy.ts` reads
114
- every authored Markdown file, and each matches the rows this table bans unconditionally. The rule
115
- and the sweep leave `now`, `new`, `latest`, `once`, `since`, `above`, `below`, and `master`
116
- unmatched because those rows carry a permitted sense, so rule a hit in one of those rows yourself.
117
- - Sweep case-insensitively and across inflections when checking prose against the preceding table. A
118
- pattern for `easy` reaches neither `Easy` nor `easier`, and a temporal `once` most often appears
119
- as a sentence-initial `Once`.
120
- - Rule every hit by the sense its row bans, not by the match. `once` counts as often as it means
121
- `after`, and `new` names a value as often as it dates one. Record a hit in a permitted sense as
122
- permitted rather than dropping it.
123
- - Name the pattern and the paths behind every sweep result, including a clean one. A result naming
124
- neither reports on the population its pattern admitted rather than on the population it was drawn
125
- from.
88
+ - `policy/no-banned-term` reads comments and the prose sweep in `tests/setupPolicy.ts` reads authored Markdown; each matches the rows banned unconditionally. Rule a hit in `now`, `new`, `latest`, `once`, `since`, `above`, `below`, or `master` yourself by the banned sense.
89
+ - Sweep case-insensitively and across inflections. Name the pattern and the paths behind every sweep result.
126
90
  - Write singular `they` for a person of unstated gender.
127
- - This table carries no row for `execute`, `abort`, `kill`, `terminate`, or `run`:
128
- `.claude/rules/names.md` § Fixed lifecycle vocabulary owns those words, and no row here overrides
129
- it.
130
-
131
- ## Not adopted
132
-
133
- - Do not add conversational personality, warmth, or memorability to a reply; the prose stays plain.
134
- - Do not import a license to break these rules where a departure reads better; an exception exists
135
- only where a rule states it.
136
- - `We recommend` as a recommendation form — refused in § Voice and actor.
137
- - Do not apply a source guide's sample indentation or line-length chrome; the repository formatter
138
- and `.claude/rules/typescript.md` decide code presentation.
139
- - Do not write an unspaced em dash; this project spaces it.
140
- - Do not cap a sentence at a word count; `AGENTS.md` § Writing owns sentence length.
141
- - Do not treat an external word list as vocabulary law; the preceding substitution table is the
142
- adopted set.
91
+ - `.claude/rules/names.md` § Fixed lifecycle vocabulary owns `execute`, `abort`, `kill`, `terminate`, and `run`.
@@ -10,7 +10,6 @@
10
10
  "Bash(codex login status)",
11
11
  "Bash(codex exec *)",
12
12
  "Bash(agent.cmd --version)",
13
- "Bash(codex mcp-server)",
14
13
  "Bash(agent --version)",
15
14
  "Bash(agent -p *)",
16
15
  "Bash(claude --version)",
@@ -239,8 +238,6 @@
239
238
  "Bash(cmd /c fc *)",
240
239
  "Bash(cmd /c tree)",
241
240
  "Bash(cmd /c tree *)",
242
- "mcp__codex__codex",
243
- "mcp__codex__codex-reply",
244
241
  "mcp__webstorm__read_file",
245
242
  "mcp__webstorm__search_regex",
246
243
  "mcp__webstorm__search_text",
@@ -989,6 +986,11 @@
989
986
  "type": "command",
990
987
  "command": "\"$CLAUDE_PROJECT_DIR\"/scripts/codex.sh",
991
988
  "timeout": 120
989
+ },
990
+ {
991
+ "type": "command",
992
+ "command": "cd \"$CLAUDE_PROJECT_DIR\" && [ -f .agents/skills/orkestrel-dispatch/scripts/sweep.ts ] && node .agents/skills/orkestrel-dispatch/scripts/sweep.ts --report || true",
993
+ "timeout": 30
992
994
  }
993
995
  ]
994
996
  }
@@ -11,7 +11,7 @@ description: >-
11
11
  scales, or must look professional rather than like stock Bootstrap. Covers
12
12
  aesthetics, typography, color modes, design tokens, elevation, finishing
13
13
  details, accessibility (WCAG 2.2 AA), responsive layout, and enterprise app
14
- patterns. The `orkestrel-polish-surface` skill owns a requested verdict,
14
+ patterns. The `orkestrel-polish` skill owns a requested verdict,
15
15
  round, or campaign over a surface that already renders, including a review
16
16
  that changes nothing; in that campaign's fix units, use this skill for
17
17
  Bootstrap craft.
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: orkestrel-align-packages
2
+ name: orkestrel-align
3
3
  description: Audit and improve how two or more Orkestrel packages, or their core, server, browser, and app environments, fit together. Use for coordinated package-stack refactors, cross-package extraction, developer-ergonomics reviews, end-to-end or live integration testing, dependency and guide alignment, and fleet/package-manager campaigns. Preserve host-independent core boundaries, update dependents topologically, and use the package-hardening workflow for each implementation unit.
4
4
  ---
5
5
 
6
6
  # Load the canonical workflow
7
7
 
8
- Read `.agents/skills/orkestrel-align-packages/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
8
+ Read `.agents/skills/orkestrel-align/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
9
9
 
10
10
  This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: orkestrel-build-application
2
+ name: orkestrel-build
3
3
  description: Wire, extend, or harden Orkestrel `app/core`, `app/browser`, and `app/server` environments — the environment's contracts, boundaries, entries, and host proofs, never the product designed inside one. Use for app-only or mixed src/app workspaces, app environment isolation, Vue browser entries, Node server entries, app aliases, configs, scripts, and tests, cross-environment contracts, and application guide parity. Do not use it to redesign an application's routes, screens, or domain behavior; take that to a design round and return here to wire what it decides.
4
4
  ---
5
5
 
6
6
  # Load the canonical workflow
7
7
 
8
- Read `.agents/skills/orkestrel-build-application/SKILL.md` completely, then read
8
+ Read `.agents/skills/orkestrel-build/SKILL.md` completely, then read
9
9
  every reference it requires. Follow that canonical workflow before acting.
10
10
 
11
11
  This bridge contains no independent process. `AGENTS.md`, applicable rules, the
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: orkestrel-dispatch
3
+ description: >-
4
+ Dispatch one unit of work to a native subagent or an external bench and bring its result back: write the brief, probe the bench, launch under a cap, watch liveness, read the report, check its citations, accept, and delete the launch copies. Use when `.agents/orchestration.md` routes work to a role, when a bench lane (Grok, Astra, or Opus through the Claude CLI) is needed, or when a command will outlive the turn that starts it.
5
+ ---
6
+
7
+ # Load the canonical workflow
8
+
9
+ Read `.agents/skills/orkestrel-dispatch/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
10
+
11
+ This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: orkestrel-falsify
3
- description: Run an adversarial audit round against work that already looks finished — write the subject as numbered falsifiable claims, dispatch independent auditors instructed to break them rather than confirm them, reconcile their evidence, and rule. Use before accepting a fix round, before a version bump or publication, when green gates are the only evidence a change works, when a defect has recurred across rounds, or whenever a review would otherwise read a diff and agree with it.
3
+ description: >-
4
+ Run one adversarial audit round against finished work: write the subject as numbered falsifiable claims, dispatch independent auditors instructed to break them, reconcile their evidence, and rule. Use when the size gate in `.agents/orchestration.md` names a review, before a fix round is accepted, before a version bump or publication, or when a defect has recurred across rounds. Do not use it for a small change, a mechanical rename, or a round with no added or repaired claim to attack.
4
5
  ---
5
6
 
6
7
  # Load the canonical workflow
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: orkestrel-harden-package
2
+ name: orkestrel-harden
3
3
  description: Research, audit, refactor, implement, centralize, test, document, and locally verify an individual Orkestrel TypeScript package to enterprise-grade production readiness under the repository's current AGENTS.md. Use when asked to fill missing or deferred capabilities, compare upstream or legacy implementations, salvage prior art, centralize source or test declarations, eliminate nested functions or superfluous wrappers, maximize declared @orkestrel dependencies—especially @orkestrel/contract—or add rigorous real-implementation and live-service tests. Select only the phases required by a narrow request; run the full workflow for production readiness or comprehensive hardening.
4
4
  ---
5
5
 
6
6
  # Load the canonical workflow
7
7
 
8
- Read `.agents/skills/orkestrel-harden-package/SKILL.md` completely, then read every reference it requires for the selected work lane. Follow that canonical workflow before acting.
8
+ Read `.agents/skills/orkestrel-harden/SKILL.md` completely, then read every reference it requires for the selected work lane. Follow that canonical workflow before acting.
9
9
 
10
10
  This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -1,10 +1,10 @@
1
1
  ---
2
- name: orkestrel-prove-journey
2
+ name: orkestrel-journey
3
3
  description: Prove a browser application the way a person uses it — real keystrokes, clicks, and Tab/Enter against only what is visible and reachable — through the journey layer @orkestrel/test/browser publishes, and generate the capture portfolio, the resolved-style matrix, and the statechart outcome from those same journeys. Use when accepting a UI build, proving an application end to end, deciding whether a surface is reachable by keyboard alone, proving what a screen refuses as well as what it does, proving the styles a browser actually resolved under each theme and viewport, driving a transition table through the interface and watching it run, auditing whether the interface speaks the user's vocabulary rather than the engine's, producing the screenshots a design review judges, routing a rendered question to an artifact a model can read, or whenever the only evidence a screen works is a test that drove it through JavaScript instead of through the interface.
4
4
  ---
5
5
 
6
6
  # Load the canonical workflow
7
7
 
8
- Read `.agents/skills/orkestrel-prove-journey/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
8
+ Read `.agents/skills/orkestrel-journey/SKILL.md` completely, then read every reference it requires. Follow that canonical workflow before acting.
9
9
 
10
10
  This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: orkestrel-polish
3
+ description: Drive a rendered or externally driven surface to shipped quality through one capture-evidence verdict round and its fix units. Use when asked to polish an interface, bring a rendered surface to enterprise grade, judge what actually renders rather than what the source claims, or reconcile design, state-truth, and inventory findings into fix units on captured proof. Run a verdict alone for a narrow request; run the round with its fix units for a polish or production-readiness request.
4
+ ---
5
+
6
+ # Load the canonical workflow
7
+
8
+ Read `.agents/skills/orkestrel-polish/SKILL.md` completely, then read every
9
+ reference it requires. Follow that canonical workflow before acting.
10
+
11
+ This bridge contains no independent process. `AGENTS.md`, applicable rules, the
12
+ canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: orkestrel-scout
3
+ description: >-
4
+ Map terrain mechanically before anyone reads it: file trees with line counts, Markdown headings, export lines, a term census, the files that name a path, and unresolved `§` cross-references, written once and handed to the lane that reads. Use before writing a brief, before a Grok absorption lane, before a rename or a sweep, when a dispatch names the `scout` role, or whenever a question is "where is", "how big is", "what names this", or "which files carry this term".
5
+ ---
6
+
7
+ # Load the canonical workflow
8
+
9
+ Read `.agents/skills/orkestrel-scout/SKILL.md` completely and run the script it names. Follow that canonical workflow before acting.
10
+
11
+ This bridge contains no independent process. `AGENTS.md`, applicable rules, the canonical skill, and the governing guide/spec remain authoritative in that order.
@@ -1,40 +1,23 @@
1
1
  name = "analyst"
2
- description = "Read-only GPT-6 Astra objective analysis, correctness audit, and constraint review."
2
+ description = "Read-only GPT-6 Astra objective design argument, diagnosis, and correctness audit against numbered claims."
3
3
  model = "gpt-6-astra"
4
4
  model_reasoning_effort = "high"
5
5
  sandbox_mode = "read-only"
6
6
  developer_instructions = """
7
- Read .agents/orchestration.md first. It owns the role set, the routing, and the
8
- dispatch contract.
7
+ Read the brief, AGENTS.md, the .claude/rules files whose paths match the subject, the named skill,
8
+ and the guide. Read the actual diff and status the dispatch supplies; return a deviation if they
9
+ are missing.
9
10
 
10
- Read AGENTS.md, applicable rules, the dispatch-named skill and references, the
11
- governing guide/spec, and the exact scope. For design, take the same brief as Opus
12
- independently and argue what contracts, evidence, and constraints permit.
11
+ Hold the lane the dispatch names and say which: objective (correctness under adverse orderings,
12
+ what the contracts and installed declarations permit, dependency and range truth, test
13
+ sufficiency, the letter of the rules) or subjective (shape, naming, ergonomics, design fit).
13
14
 
14
- You hold the objective lane by default. The dispatch may assign you the subjective lane
15
- instead — shape, taste, naming, ergonomics, and design fit — whenever the round needs an
16
- engine that is not the one running that lane, including when the Claude CLI is dark and
17
- when Opus 5.5 wrote the work under audit. Hold whichever perspective the dispatch names, in
18
- full, and say which one you held. Do not drift back to the objective case because it is
19
- your usual one.
15
+ Attack each numbered claim with a concrete input, state, or interleaving. Before confirming a
16
+ claim about a proof, name the mutation that would make the proof fail and whether the assertions
17
+ distinguish it. Rule a claim whose only evidence is the writer's report UNRESOLVED. Mark a
18
+ rendered-surface claim the capture cannot show NOT-EVIDENCED.
20
19
 
21
- For audit,
22
- read the actual diff and examine correctness, security, concurrency, failure modes,
23
- dependency reuse, boundary behavior, tests, cleanup, and guide parity. Require
24
- file:line evidence and drop unsupported claims. When the brief states its subject as
25
- numbered falsifiable claims, attempt refutation rather than confirmation and return
26
- each claim per the Falsification section of .claude/rules/quality.md. The verdict
27
- shape defaults to orkestrel-falsify; a dispatch may name a different skill that fixes
28
- another. That skill owns the value set and the terminal line — it may carry values
29
- beyond CONFIRMED and BROKEN, and a claim you cannot decide belongs in the one it
30
- provides rather than being forced into BROKEN. For a rendered or externally driven
31
- surface, the supplied capture portfolio is primary evidence and source is
32
- corroboration; mark a claim the portfolio cannot show NOT-EVIDENCED rather than
33
- inferring it from source. Never edit, implement, reconcile, accept, or spawn. Return
34
- only the objective argument or PASS/FAIL audit, blockers, advisories, and criterion
35
- confirmations.
36
-
37
- Your sandbox is read-only: you never edit a file and never write your report to a file.
38
- Your final message IS the verdict. A dispatch that names a report path for you is a
39
- dispatch defect — return the verdict as your final message and name the defect in it.
20
+ Return the orkestrel-falsify verdict shape: numbered verdicts with evidence, findings outside the
21
+ claims, attacked-and-held, one terminal line. Never edit, implement, reconcile, accept, or spawn.
22
+ Your final message is the verdict.
40
23
  """
@@ -0,0 +1,25 @@
1
+ name = "astra"
2
+ description = "GPT-6 Astra implementation of one bounded, objective, constraint-heavy unit as the sole writer in its checkout."
3
+ model = "gpt-6-astra"
4
+ model_reasoning_effort = "high"
5
+ sandbox_mode = "workspace-write"
6
+ developer_instructions = """
7
+ Implement one dispatched unit and spawn nothing.
8
+
9
+ Read the brief, AGENTS.md, the .claude/rules files whose paths match the owned files, the named
10
+ skill, and the guide. Follow AGENTS.md § Work loop: types first, prove the claim with the prove
11
+ tool, implement, test, consolidate, document. For a defect, record the failing command and count
12
+ before the fix and the same command green after.
13
+
14
+ Write only the owned files; return an exact patch for a shared file. Validate read-only and scoped:
15
+ the touched project's check: script, the touched test file, then the touched project. Never run
16
+ format, lint --fix, build, or the whole suite. Delete every probe before returning; promote a
17
+ probe that settled a claim into a test.
18
+
19
+ Never add a dependency, suppress a diagnostic, mock project-owned behavior, leave a TODO in scope,
20
+ commit, push, install, read a secret, or run a destructive command. Stop only per
21
+ .agents/orchestration.md § Deviation protocol.
22
+
23
+ Return touched files with one line each, diffstat, scoped validation results, the prove closing
24
+ line per claim, failing-first test names, shared-file patches, deviation state. No process diary.
25
+ """
@@ -1,28 +1,21 @@
1
1
  name = "builder"
2
- description = "Terra executor for one small, fully specified, taste-free unit; follows the orchestration contract deviation protocol."
3
- model = "gpt-5.6-terra"
2
+ description = "Sol executor for one small, fully specified, taste-free unit in src, app, tests, or configs; writes only owned files as the sole writer in its checkout and validates scoped to them."
3
+ model = "gpt-6-sol"
4
4
  model_reasoning_effort = "low"
5
5
  sandbox_mode = "workspace-write"
6
6
  developer_instructions = """
7
- Read .agents/orchestration.md first. It owns the role set, the routing, and the
8
- dispatch contract.
7
+ Implement one fully specified unit. The dispatch is the plan; do not re-plan.
9
8
 
10
- Accept work only when owned files, the transformation, and mechanical acceptance
11
- criteria are complete enough that correct implementations cannot differ meaningfully.
12
- A unit whose naming, API shape, architecture, or house taste is still open belongs to
13
- sol or opus: stop and say so.
9
+ Read the brief, the .claude/rules files whose paths match your owned files, and the guide it names.
10
+ Write only the owned files; return an exact patch for a shared file. Follow AGENTS.md § Work loop
11
+ for a small change: edit, prove or test the claim, run the touched test file, then the touched
12
+ project if the brief names it. Validate read-only and scoped: a non-fix lint on your paths, the
13
+ scoped check: script, the touched tests; never run format, lint --fix, build, or the whole suite. Delete any probe you wrote before returning.
14
14
 
15
- Read AGENTS.md, applicable .claude/rules files, the dispatch-named skill and required
16
- references, and the governing guide/spec before writing; they bind as written there and
17
- are not restated here. An app-layer unit belongs to application: stop and say so.
18
- Execute the supplied plan exactly, in owned files only; shared and off-limits files are
19
- report-only and return as exact patches. The AGENTS.md non-negotiables own what you may
20
- not add: read the prohibitions there and apply them exactly. Never install, commit,
21
- push, publish, read credentials, run a destructive command, or run a tree-wide mutating
22
- command. Validate only the owned scope.
15
+ A unit whose naming, API shape, or architecture is still open belongs to astra or opus: stop and
16
+ say so. Never install, commit, push, read a secret, or run a destructive command. Stop and report
17
+ per .agents/orchestration.md § Deviation protocol on any conflict with the brief.
23
18
 
24
- Follow .agents/orchestration.md § Deviation protocol. Otherwise return changes, actual
25
- scoped validation, and exact shared-file patches. Never re-plan, investigate beyond
26
- scope, or spawn another agent.
27
- The result is an untrusted proposal requiring independent checker and reviewer passes.
19
+ Return changed files with one line each, the scoped commands run and their results, shared-file
20
+ patches, and any deviation report. No process diary. Never spawn another agent.
28
21
  """