@orkestrel/scaffold 0.0.108 → 0.0.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/skills/orkestrel-dispatch/scripts/bench.js +326 -91
- package/dist/agents/skills/orkestrel-dispatch/scripts/brief.js +110 -14
- package/dist/agents/skills/orkestrel-dispatch/scripts/chain.js +280 -0
- package/dist/agents/skills/orkestrel-dispatch/scripts/cite.js +188 -26
- package/dist/agents/skills/orkestrel-dispatch/scripts/launch.js +142 -43
- package/dist/agents/skills/orkestrel-dispatch/scripts/login.js +240 -62
- package/dist/agents/skills/orkestrel-dispatch/scripts/patch.js +323 -0
- package/dist/agents/skills/orkestrel-dispatch/scripts/result.js +169 -32
- package/dist/agents/skills/orkestrel-dispatch/scripts/sweep.js +290 -69
- package/dist/agents/skills/orkestrel-falsify/scripts/mutate.js +560 -0
- package/dist/agents/skills/orkestrel-harden/scripts/discovery.js +1052 -205
- package/dist/agents/skills/orkestrel-harden/scripts/measure.js +361 -0
- package/dist/agents/skills/orkestrel-harden/scripts/titles.js +455 -80
- package/dist/agents/skills/orkestrel-parallel/scripts/cases.js +327 -0
- package/dist/agents/skills/orkestrel-publish/scripts/compare.js +298 -51
- package/dist/agents/skills/orkestrel-publish/scripts/pins.js +170 -13
- package/dist/agents/skills/orkestrel-publish/scripts/swap.js +956 -191
- package/dist/agents/skills/orkestrel-publish/scripts/wave.js +707 -112
- package/dist/agents/skills/orkestrel-publish/scripts/window.js +235 -41
- package/dist/agents/skills/orkestrel-scout/scripts/map.js +341 -54
- package/dist/agents/templates/brief.md +1 -1
- package/dist/bin/main.js +51 -46
- package/dist/bin/main.js.map +1 -1
- package/dist/host/AGENTS.md +23 -21
- package/dist/host/agents/orchestration.md +43 -18
- package/dist/host/agents/platforms/windows.md +3 -3
- package/dist/host/agents/skills/orkestrel-align/SKILL.md +10 -13
- package/dist/host/agents/skills/orkestrel-align/references/fleet.md +4 -10
- package/dist/host/agents/skills/orkestrel-align/references/integration.md +1 -1
- package/dist/host/agents/skills/orkestrel-build/SKILL.md +16 -48
- package/dist/host/agents/skills/orkestrel-build/agents/openai.yaml +1 -1
- package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +19 -16
- package/dist/host/agents/skills/orkestrel-debrief/agents/openai.yaml +1 -1
- package/dist/host/agents/skills/orkestrel-debrief/references/field-testing.md +15 -28
- package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +5 -6
- package/dist/host/agents/skills/orkestrel-debrief/references/retention.md +4 -6
- package/dist/host/agents/skills/orkestrel-dispatch/SKILL.md +31 -20
- package/dist/host/agents/skills/orkestrel-dispatch/references/launch.md +3 -4
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/bench.ts +366 -75
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/brief.ts +126 -16
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/chain.ts +323 -0
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/cite.ts +220 -31
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/launch.ts +176 -33
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/login.ts +294 -59
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/patch.ts +401 -0
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/result.ts +199 -34
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/sweep.ts +330 -69
- package/dist/host/agents/skills/orkestrel-falsify/SKILL.md +10 -8
- package/dist/host/agents/skills/orkestrel-falsify/references/brief.md +1 -5
- package/dist/host/agents/skills/orkestrel-falsify/references/reconcile.md +1 -1
- package/dist/host/agents/skills/orkestrel-falsify/scripts/mutate.ts +701 -0
- package/dist/host/agents/skills/orkestrel-harden/SKILL.md +16 -12
- package/dist/host/agents/skills/orkestrel-harden/references/bindings.md +23 -81
- package/dist/host/agents/skills/orkestrel-harden/references/centralization.md +4 -5
- package/dist/host/agents/skills/orkestrel-harden/references/contract.md +2 -0
- package/dist/host/agents/skills/orkestrel-harden/references/document.md +33 -0
- package/dist/host/agents/skills/orkestrel-harden/references/equivalence.md +6 -3
- package/dist/host/agents/skills/orkestrel-harden/references/hardening.md +8 -4
- package/dist/host/agents/skills/orkestrel-harden/references/research.md +2 -0
- package/dist/host/agents/skills/orkestrel-harden/scripts/discovery.ts +1272 -279
- package/dist/host/agents/skills/orkestrel-harden/scripts/measure.ts +425 -0
- package/dist/host/agents/skills/orkestrel-harden/scripts/titles.ts +603 -98
- package/dist/host/agents/skills/orkestrel-journey/SKILL.md +75 -98
- package/dist/host/agents/skills/orkestrel-journey/references/captures.md +54 -17
- package/dist/host/agents/skills/orkestrel-journey/references/decide.md +1 -20
- package/dist/host/agents/skills/orkestrel-journey/references/layer.md +21 -31
- package/dist/host/agents/skills/orkestrel-journey/references/styles.md +1 -1
- package/dist/host/agents/skills/orkestrel-parallel/SKILL.md +28 -24
- package/dist/host/agents/skills/orkestrel-parallel/references/claude.md +15 -13
- package/dist/host/agents/skills/orkestrel-parallel/references/codex.md +1 -0
- package/dist/host/agents/skills/orkestrel-parallel/references/cursor.md +13 -13
- package/dist/host/agents/skills/orkestrel-parallel/scripts/cases.ts +389 -0
- package/dist/host/agents/skills/orkestrel-polish/SKILL.md +16 -20
- package/dist/host/agents/skills/orkestrel-polish/references/capture-harness.md +16 -26
- package/dist/host/agents/skills/orkestrel-publish/SKILL.md +12 -26
- package/dist/host/agents/skills/orkestrel-publish/agents/openai.yaml +2 -2
- package/dist/host/agents/skills/orkestrel-publish/references/adopt.md +23 -0
- package/dist/host/agents/skills/orkestrel-publish/references/release.md +4 -4
- package/dist/host/agents/skills/orkestrel-publish/references/wave.md +10 -9
- package/dist/host/agents/skills/orkestrel-publish/references/window.md +20 -25
- package/dist/host/agents/skills/orkestrel-publish/scripts/compare.ts +348 -59
- package/dist/host/agents/skills/orkestrel-publish/scripts/pins.ts +202 -22
- package/dist/host/agents/skills/orkestrel-publish/scripts/swap.ts +1061 -191
- package/dist/host/agents/skills/orkestrel-publish/scripts/wave.ts +812 -140
- package/dist/host/agents/skills/orkestrel-publish/scripts/window.ts +280 -38
- package/dist/host/agents/skills/orkestrel-scout/SKILL.md +3 -3
- package/dist/host/agents/skills/orkestrel-scout/scripts/map.ts +428 -70
- package/dist/host/agents/templates/brief.md +1 -1
- package/dist/host/agents/transports/claude-cli.md +3 -3
- package/dist/host/agents/transports/codex.md +2 -7
- package/dist/host/agents/transports/cursor.md +2 -3
- package/dist/host/claude/AGENTS.md +2 -2
- package/dist/host/claude/agents/analyst.md +3 -3
- package/dist/host/claude/agents/astra.md +3 -3
- package/dist/host/claude/agents/builder.md +1 -1
- package/dist/host/claude/agents/checker.md +1 -1
- package/dist/host/claude/agents/distiller.md +1 -1
- package/dist/host/claude/agents/grok.md +1 -1
- package/dist/host/claude/agents/opus.md +2 -2
- package/dist/host/claude/agents/orkestrel.md +57 -90
- package/dist/host/claude/agents/researcher.md +1 -1
- package/dist/host/claude/agents/reviewer.md +4 -0
- package/dist/host/claude/agents/scout.md +1 -1
- package/dist/host/claude/agents/verifier.md +1 -1
- package/dist/host/claude/rules/application.md +14 -21
- package/dist/host/claude/rules/architecture.md +34 -44
- package/dist/host/claude/rules/browser.md +3 -4
- package/dist/host/claude/rules/campaign.md +2 -2
- package/dist/host/claude/rules/documentation.md +25 -12
- package/dist/host/claude/rules/names.md +9 -4
- package/dist/host/claude/rules/patterns.md +6 -7
- package/dist/host/claude/rules/portability.md +1 -1
- package/dist/host/claude/rules/quality.md +4 -5
- package/dist/host/claude/rules/styles.md +2 -2
- package/dist/host/claude/rules/tests.md +57 -114
- package/dist/host/claude/rules/typescript.md +7 -9
- package/dist/host/claude/rules/workspace.md +21 -19
- package/dist/host/claude/rules/writing.md +2 -5
- package/dist/host/claude/skills/orkestrel-dispatch/SKILL.md +1 -1
- package/dist/host/claude/skills/orkestrel-harden/SKILL.md +1 -1
- package/dist/host/claude/skills/orkestrel-publish/SKILL.md +1 -1
- package/dist/host/claude/skills/orkestrel-scout/SKILL.md +1 -1
- package/dist/host/codex/agents/analyst.toml +9 -3
- package/dist/host/codex/agents/astra.toml +3 -4
- package/dist/host/codex/agents/builder.toml +1 -1
- package/dist/host/codex/agents/opus.toml +3 -4
- package/dist/host/codex/agents/orkestrel.toml +1 -1
- package/dist/host/codex/agents/researcher.toml +2 -2
- package/dist/host/codex/agents/verifier.toml +1 -1
- package/dist/host/configs/helpers.ts +21 -1
- package/dist/host/configs/policy.ts +299 -15
- package/dist/host/dotfiles/oxlintrc.json +137 -3
- package/dist/host/guides/agent.md +111 -134
- package/dist/host/guides/capture.md +801 -0
- package/dist/host/guides/probe.md +27 -8
- package/dist/host/guides/scaffold.md +96 -18
- package/dist/host/guides/study.md +534 -440
- package/dist/host/guides/test.md +111 -44
- package/dist/host/manifest.json +160 -240
- package/dist/host/tests/config.test.ts +971 -187
- package/dist/host/tests/policy.test.ts +127 -1
- package/dist/host/tests/setupPolicy.ts +893 -33
- package/dist/src/core/index.cjs +214 -86
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +122 -38
- package/dist/src/core/index.d.ts +122 -38
- package/dist/src/core/index.js +209 -85
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/server/index.cjs +20 -27
- package/dist/src/server/index.cjs.map +1 -1
- package/dist/src/server/index.js +21 -28
- package/dist/src/server/index.js.map +1 -1
- package/package.json +11 -11
- package/dist/agents/skills/orkestrel-dispatch/scripts/helpers.js +0 -283
- package/dist/host/agents/skills/orkestrel-dispatch/references/bench.md +0 -25
- package/dist/host/agents/skills/orkestrel-dispatch/scripts/helpers.ts +0 -333
- package/dist/host/guides/supervisor.md +0 -4890
package/dist/host/AGENTS.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- `*/types.ts` is authoritative for public APIs. Never undo a user's type edit.
|
|
10
10
|
- `.agents/orchestration.md` governs agent operation and cannot weaken this file. Harness bridges (`.claude/AGENTS.md`, `.codex/config.toml`, `.cursor/rules/orchestration.mdc`) add harness mechanics only.
|
|
11
11
|
- A skill under `.agents/skills/` is a procedure. Follow it when the user or a dispatch names it, or when its trigger fires. A skill cannot weaken this file or a rule.
|
|
12
|
-
- Before editing, read: this file; each rule
|
|
12
|
+
- Before editing, read: this file; each rule whose `paths` frontmatter matches the paths you touch; the named skill and the references it names; the matching guide under `guides/` and `ROADMAP.md` when present. Read nothing else up front.
|
|
13
13
|
- Rules state how to write. Guides state what to build. On conflict, stop and report the conflict.
|
|
14
14
|
- A rule file's stated exception to a law in this file applies.
|
|
15
15
|
|
|
@@ -43,7 +43,7 @@ configs/ thin target wrappers around root Vite/TypeScript configuration
|
|
|
43
43
|
- **NEVER** use mocks, behavioral fakes, module replacement, framework spies, or fake clocks for project-owned behavior. Use real implementations, recorders, temporary resources, protocol-faithful fixture servers, and inert data stubs.
|
|
44
44
|
- **ALWAYS** make interface properties and public return collections readonly.
|
|
45
45
|
- **ALWAYS** define reusable and public types in `*/types.ts` before implementation.
|
|
46
|
-
- **ALWAYS**
|
|
46
|
+
- **ALWAYS** check whether an `@orkestrel` package already provides a capability before writing logic, a tool, or an instrument that could overlap it. Read the package guides first: `guides/README.md` maps them, and a target holds them under `node_modules/@orkestrel/scaffold/dist/host/guides/`. When a guide leaves the question open, read the package's source in a checkout beside the repository. When no checkout exists, read its repository at `https://github.com/orkestrel/<package>`, online or cloned under `tmp/`. Reuse a primitive whose semantics match; never wrap one to rename it.
|
|
47
47
|
- **ALWAYS** finish the requested implementation: no stubs, deferred logic, or hidden follow-up.
|
|
48
48
|
- **ALWAYS** write a script as TypeScript run by Node (`node path/to/script.ts`, type stripping, `node:` modules only): a skill script, a probe, a launcher, an instrument, a one-off tool. Never write a bash, PowerShell, or Python script. The Claude Code Cloud hooks under `scripts/` are the one bash exception, and that folder holds nothing else.
|
|
49
49
|
|
|
@@ -72,6 +72,8 @@ configs/ thin target wrappers around root Vite/TypeScript configuration
|
|
|
72
72
|
|
|
73
73
|
Types, tests, and implementation decide every step; comments, TSDoc, and guides follow the final implementation. Report results against the goal, and prefer the smallest change that reaches green over a perfect one.
|
|
74
74
|
|
|
75
|
+
Open a task with its goal, its acceptance criteria, and the cheapest pass/fail check that proves them. Before writing a fixture, proof, or tool around a command, run that command on real data. `.agents/orchestration.md` § Depth, breadth, and machinery sizes the effort and rules on what becomes a package.
|
|
76
|
+
|
|
75
77
|
Size the change before touching a file. Take the largest row whose trigger applies: large, then medium, then small. Run only what the row names.
|
|
76
78
|
|
|
77
79
|
| Size | Trigger | Do |
|
|
@@ -89,7 +91,7 @@ Within the size, in order:
|
|
|
89
91
|
3. **Implement.** Conform to the types. Place each declaration in its kind file. Update the barrel.
|
|
90
92
|
4. **Test.** Cover happy paths, edge cases, failures, and boundaries with deterministic tests against real implementations. For a defect, record the failing command and count before the fix and the same command green after.
|
|
91
93
|
5. **Consolidate.** Remove duplication, nested functions, and superfluous wrappers without widening the API.
|
|
92
|
-
6. **Document.**
|
|
94
|
+
6. **Document.** After the implementation is final, update the matching guide, comments, and TSDoc in one minimal pass. Before then, write, revise, and review no prose.
|
|
93
95
|
|
|
94
96
|
Test ladder, narrowest first; stop at the boundary the change size names:
|
|
95
97
|
|
|
@@ -108,24 +110,24 @@ Test ladder, narrowest first; stop at the boundary the change size names:
|
|
|
108
110
|
|
|
109
111
|
## Rule map
|
|
110
112
|
|
|
111
|
-
Each row is a normative extension of this file.
|
|
112
|
-
|
|
113
|
-
| Rule | Governs
|
|
114
|
-
| -------------------------------- |
|
|
115
|
-
| `.claude/rules/names.md` | Identifiers, API shape, acronyms, lifecycle vocabulary, files
|
|
116
|
-
| `.claude/rules/typescript.md` | TypeScript syntax, imports, immutability, errors, TSDoc
|
|
117
|
-
| `.claude/rules/architecture.md` | Centralized files,
|
|
118
|
-
| `.claude/rules/patterns.md` |
|
|
119
|
-
| `.claude/rules/tests.md` | Test
|
|
120
|
-
| `.claude/rules/workspace.md` | Src/app environments, aliases,
|
|
121
|
-
| `.claude/rules/application.md` | App composition,
|
|
122
|
-
| `.claude/rules/browser.md` | Vue
|
|
123
|
-
| `.claude/rules/styles.md` | SCSS/CSS centralization, tokens, mixins, layers, naming
|
|
124
|
-
| `.claude/rules/portability.md` | Host branching,
|
|
125
|
-
| `.claude/rules/documentation.md` | Guides, parity,
|
|
126
|
-
| `.claude/rules/writing.md` | Prose in guides, replies, commits, and instruction files
|
|
127
|
-
| `.claude/rules/quality.md` | Evidence, probes, instruments, performance,
|
|
128
|
-
| `.claude/rules/campaign.md` | The `.orkestrel/` campaign folder: layout, content, session start
|
|
113
|
+
Each row is a normative extension of this file. A rule's `paths` frontmatter controls automatic loading, and `.claude/rules/writing.md` carries none and loads always. Read the row when its subject matches your change.
|
|
114
|
+
|
|
115
|
+
| Rule | Governs |
|
|
116
|
+
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
117
|
+
| `.claude/rules/names.md` | Identifiers, API shape, helper prefixes, acronyms, fleet name ownership, lifecycle vocabulary, files and folders |
|
|
118
|
+
| `.claude/rules/typescript.md` | TypeScript syntax, imports, types, immutability, bindings and state, errors, TSDoc |
|
|
119
|
+
| `.claude/rules/architecture.md` | Centralized files, declaration placement, kind purity, wrappers, functions, classes, middleware, plugins, stores, barrels |
|
|
120
|
+
| `.claude/rules/patterns.md` | Ecosystem reuse, options, managers, emitters, validation and contracts, foreign contracts |
|
|
121
|
+
| `.claude/rules/tests.md` | Test contract, cross-cutting proofs, probes, live-service and expensive proofs, shared helpers, browser tests, runner configuration |
|
|
122
|
+
| `.claude/rules/workspace.md` | Src/app environments, aliases, configuration, builds, test project matrix, typechecking scopes, scripts, policy instruments, text integrity |
|
|
123
|
+
| `.claude/rules/application.md` | App composition, CLI selections, entries, manifests, server runner |
|
|
124
|
+
| `.claude/rules/browser.md` | Vue and browser architecture: composables, reactivity, platform APIs |
|
|
125
|
+
| `.claude/rules/styles.md` | SCSS/CSS centralization, tokens, mixins, layers, folders, proofs, naming |
|
|
126
|
+
| `.claude/rules/portability.md` | Host branching, line endings, paths, processes, terminals, scripts and packaging, host claims |
|
|
127
|
+
| `.claude/rules/documentation.md` | Guides, parity, examples, agent-facing surfaces, skill files |
|
|
128
|
+
| `.claude/rules/writing.md` | Prose in guides, replies, commits, and instruction files |
|
|
129
|
+
| `.claude/rules/quality.md` | Evidence, probes, instruments, performance, ecosystem reuse, hardening, completion |
|
|
130
|
+
| `.claude/rules/campaign.md` | The `.orkestrel/` campaign folder: layout, content, session start, hand off and close |
|
|
129
131
|
|
|
130
132
|
## Writing
|
|
131
133
|
|
|
@@ -52,6 +52,7 @@ The harness's own engine orchestrates: Claude Fable 5.1 or Claude Opus 5.5 in Cl
|
|
|
52
52
|
- Route by judgment load. Objective, constraint-heavy, mechanical-precision work goes to `astra`. API shape, naming, and documentation voice go to `opus`. A bounded unit whose brief or types fix its names, API, and architecture goes to `builder`, whatever its private lines; a unit that spans packages or leaves one of those open goes to `astra` or `opus`.
|
|
53
53
|
- Route all context absorption, distillation, broad mapping, and exploratory or fishing reads to `grok` on Cursor Grok 4.7 Extra High: terrain, prior art, diff sweeps, scattered sources. Keep decision-bearing reading with the decision owner. Fall back to `distiller` or `researcher` only when the Cursor bench is dark, and record the fallback; ease or cost never authorizes a fallback.
|
|
54
54
|
- Keep small tedious precise tasks native: Claude Haiku in Claude, Codex Luna in Codex. Use `scout` for an exact bounded lookup; keep bench drivers, `checker`, and `verifier` on their mapped native engines. A bounded file scope does not turn context absorption or exploratory reading into a native lookup.
|
|
55
|
+
- Route a unit that authors path-containment, import-resolution-boundary, unescaped-input, or credential-exposure proofs to `opus` from the start where `opus` runs on Claude, and record the Codex bench dark for that unit only. Under native Codex roles, report a harness refusal through § Deviation protocol.
|
|
55
56
|
- Route gates to `verifier`. A writer's self-reported gate is not evidence.
|
|
56
57
|
- Under the Codex mapping, put falsify lanes on Astra or Sol at high effort; keep Luna for gates and verifier runs, never for a lane that must resolve runtime claims.
|
|
57
58
|
- Work directly on a one-file change or a one-line fix, subject to the preceding routing rules. Route standalone lookups through `scout`. Dispatch when isolation, parallelism, a second engine, or a large read pays for the brief.
|
|
@@ -77,10 +78,33 @@ The harness's own engine orchestrates: Claude Fable 5.1 or Claude Opus 5.5 in Cl
|
|
|
77
78
|
## Pace
|
|
78
79
|
|
|
79
80
|
- Spend process only where it changes a result. Launch, run, and report: no fixed clock windows, readiness-only turns, per-command acknowledgments, hash pins of a brief, or process queries beyond the recorded process ids.
|
|
80
|
-
-
|
|
81
|
-
-
|
|
81
|
+
- When a verifier lane fails in its harness rather than in the gate, run the gate once yourself and read its exit code; write no comparator, snapshot, or retry chain to obtain evidence.
|
|
82
|
+
- Keep valid receipts. Re-run a check only when its inputs, configuration, environment, or claim changed; never repeat a passing check to collect another receipt.
|
|
83
|
+
- Ask the user only for a decision that is theirs: scope, the spend ceiling and stop line § Hold the plan names, a conflicting ruling, a credential, publication, or a commit or push the law reserves. Decide routine matters yourself, such as time and lane allowances, retries, and order, and report them, with time in whole minutes.
|
|
82
84
|
- Never end a turn with work pending and nothing that will wake the session: run the work as a tracked background command or a child whose completion notifies, or schedule a wake. While a lane runs, continue independent work.
|
|
83
|
-
|
|
85
|
+
|
|
86
|
+
## Hold the plan
|
|
87
|
+
|
|
88
|
+
- Open with the goal and acceptance criteria per `AGENTS.md` § Work loop, then estimate the scope: the units, the review and evidence each needs, and what stays out. When the estimate is large, agree with the user the estimate, the spend ceiling, and the stop line: how much lane time the work can take, and the point at which work stops and reports.
|
|
89
|
+
- Before each unit, name the plan step it serves. Cut a unit no step needs; set an unplanned idea aside in the plan and return to the step.
|
|
90
|
+
- Add a tracked file only where the request, the plan, or a rule names it.
|
|
91
|
+
- After every unit return, unexpected result, or user message, compare the work with the plan: mark what is done, restate the next step, and set aside what no longer serves the goal.
|
|
92
|
+
- When the work outgrows its estimate, stop, re-estimate, and bring the user the choice to cut, defer, or extend before continuing.
|
|
93
|
+
- When the user questions the plan, test it against the evidence in hand: reopen it where the evidence disagrees and report what changed; where the evidence holds, answer with that evidence.
|
|
94
|
+
- Answer a status question before dispatching more work, and close every report the same way: the goal, what is done against it, what is measured, what remains, and the next step.
|
|
95
|
+
|
|
96
|
+
## Depth, breadth, and machinery
|
|
97
|
+
|
|
98
|
+
- Size the effort to the task before spending: a lookup takes one lane, routed per § Routing, and only open-ended work with independent, high-value parts fans out, per § Parallelism.
|
|
99
|
+
- Locate the evidence with short broad probes before any deep pass: a run of the shipped command, a census, a search. Go deep only on a defect or gap a run has shown, in one lane, with the narrowest instrument that answers it: a counting probe or a mutation.
|
|
100
|
+
- When a failure recurs, read the exact input and output of the failing case before adding capability, and fix the cause.
|
|
101
|
+
- Deepen in rounds and report a usable result after each. Stop at the first result that clears the acceptance criteria and name the gaps that remain.
|
|
102
|
+
- Prove a change in one consumer, with its gate green, before spreading it to the rest.
|
|
103
|
+
- Use the simplest method that can clear the criteria, starting with what an `@orkestrel` package already provides, looked up per `AGENTS.md` § Non-negotiable rules. Add machinery only after that method fails a measured check, and build nothing for a hypothetical need.
|
|
104
|
+
- Do a one-use step inline. Keep a tool one unit runs more than once as a throwaway under `tmp/`, deleted with the unit and never committed.
|
|
105
|
+
- When a second unit, package, or campaign needs a tool, move it out of `tmp/`: into a skill script under `.agents/skills/` when it only runs a procedure, and into its own package, with its own tests and release, when it carries correctness claims of its own or an identity consumers pin, replay, or audit. Write the promotion path and the removal path when you first build it.
|
|
106
|
+
- When a throwaway grows a mechanism per step instead of answering its question, stop and map it against the owning packages before building more.
|
|
107
|
+
- Ship the proven fix first, and run experiments behind it under a stated cap.
|
|
84
108
|
|
|
85
109
|
## Size gate
|
|
86
110
|
|
|
@@ -94,7 +118,7 @@ The harness's own engine orchestrates: Claude Fable 5.1 or Claude Opus 5.5 in Cl
|
|
|
94
118
|
|
|
95
119
|
- Never run a review on a small change. Never run a second design round on the same brief.
|
|
96
120
|
- A review judges types, tests, and implementation. It reports comment, TSDoc, or guide wording only where the text contradicts the final behavior, and no fix round opens for prose alone.
|
|
97
|
-
- A fix round re-audits the repaired claim only. A fix that adopted the reviewer's prescription verbatim closes with a mutation probe (disable the load-bearing line, watch the test fail, restore it). A fix that departs from it gets one pass by an independent reviewer per § Engines.
|
|
121
|
+
- A fix round re-audits the repaired claim only. A fix that adopted the reviewer's prescription verbatim closes with a mutation probe (disable the load-bearing line, watch the test fail, restore it); `node .agents/skills/orkestrel-falsify/scripts/mutate.ts --edits EDITS.md -- COMMAND` runs the probe and proves the restore. A fix that departs from it gets one pass by an independent reviewer per § Engines.
|
|
98
122
|
- When review rounds at one seam keep surfacing defects without converging on their source, follow `.agents/skills/orkestrel-falsify/SKILL.md` § End the depth search.
|
|
99
123
|
- An all-confirmed round ends the audit. A round needs an added or repaired claim to test; reviewer appetite is not a subject.
|
|
100
124
|
|
|
@@ -105,7 +129,7 @@ A large change opens with a concise goal and its exit criterion, short enough to
|
|
|
105
129
|
1. **Absorb.** Map the terrain with the `orkestrel-scout` skill's `map.ts`, then `grok` distills it and the prior art. In an Orkestrel repository, `verifier` or another tool-capable role collects manifests, lockfiles, installed declarations, and registry readings, and `orkestrel` reconciles them.
|
|
106
130
|
2. **Design.** One independent round: `planner` (subjective) and `analyst` (objective) on one brief, clean contexts, blind to each other. Reconcile into one plan: units, owned files, dependencies, parallel and serial order, acceptance criteria, exit criterion, ledger.
|
|
107
131
|
3. **Implement.** Dispatch units per § Routing and § Parallelism.
|
|
108
|
-
4. **Integrate.** Apply returned patches to shared files serially. A type, mechanism, or criterion found here is a successor unit, never an integration edit.
|
|
132
|
+
4. **Integrate.** Apply returned patches to shared files serially with `node .agents/skills/orkestrel-dispatch/scripts/patch.ts EDITS.md --plan`, then `--apply`. A type, mechanism, or criterion found here is a successor unit, never an integration edit.
|
|
109
133
|
5. **Audit.** One `orkestrel-falsify` round on the integrated result, an independent reviewer per § Engines in each lane; add `checker` when the criteria are mechanical.
|
|
110
134
|
6. **Verify.** `verifier` runs the tree-wide gates once.
|
|
111
135
|
7. **Re-baseline.** Strike satisfied units, restate transformed ones, add units the exit criterion already required. A re-baseline never moves the exit criterion; that needs the user.
|
|
@@ -119,8 +143,8 @@ A large change opens with a concise goal and its exit criterion, short enough to
|
|
|
119
143
|
- One writer per checkout, except under `orkestrel-parallel`: there, at most three writers share one checkout, each owns disjoint files and disjoint regions of shared files, and one runner lane owns every test, check, and build process. Otherwise give parallel writers disjoint owned files, and give a writer its own worktree under `tmp/worktrees/` only when two units must write the same files at once. Commit a checkpoint before a writing dispatch.
|
|
120
144
|
- Fold every branch, clone, copy, or worktree an agent creates back into the original checkout's main branch with its changes left uncommitted there, so the user sees the whole difference from that branch. Commit inside the branch, clone, copy, or worktree as its unit needs, then remove it and delete its branch.
|
|
121
145
|
- In a checkout another session shares, read the branch and `git status` before a write, and stop and ask the user when another session's uncommitted work is present.
|
|
122
|
-
- Shared files are report-only; a unit returns an exact patch. Under `orkestrel-parallel`, a writer edits its owned regions of a shared file directly.
|
|
123
|
-
- Scope validation by the claim and its input dependencies, not by writer ownership alone. Under `orkestrel-parallel`, the runner owns checks and obtains the required write holds
|
|
146
|
+
- Shared files are report-only; a unit returns an exact patch as an edit file that `.agents/skills/orkestrel-dispatch/scripts/patch.ts` applies. Under `orkestrel-parallel`, a writer edits its owned regions of a shared file directly.
|
|
147
|
+
- Scope validation by the claim and its input dependencies, not by writer ownership alone. Under `orkestrel-parallel`, the runner owns checks and obtains the required write holds; § Pace rules on reruns. Never run tree-wide `format`, lint `--fix`, or `build` beside a live writer.
|
|
124
148
|
- One Grok lane at a time; queue the rest. An empty lane beside a live probe is starvation, not darkness.
|
|
125
149
|
- The Orchestrator's own sweep is a writing dispatch: run it before or after the units, never beside them.
|
|
126
150
|
|
|
@@ -140,15 +164,15 @@ A large change opens with a concise goal and its exit criterion, short enough to
|
|
|
140
164
|
|
|
141
165
|
Every working file lives under the checkout's gitignored `tmp/`, in the directory its kind names.
|
|
142
166
|
|
|
143
|
-
| Directory | Holds
|
|
144
|
-
| ------------------------------------------ |
|
|
145
|
-
| `tmp/claude/`, `tmp/codex/`, `tmp/cursor/` | bench briefs, launch scripts, journals, `.err` files, last-message files, login logs, per harness
|
|
146
|
-
| `tmp/units/` | native unit briefs, reports, claims files, and unit records
|
|
147
|
-
| `tmp/probes/` | runtime probes the `probe` Vitest project collects and the `probe` MCP server arms
|
|
148
|
-
| `tmp/type/` | the type stage's workspace mirror, owned by `@orkestrel/probe`
|
|
149
|
-
| `tmp/captures/` | screenshots, resolved-style snapshots, and other capture portfolios
|
|
150
|
-
| `tmp/browsers/` | the journeys a `browse` server saves, their runs and captures, and its profiles under `.profiles/`
|
|
151
|
-
| `tmp/worktrees/` | worktrees the Orchestrator creates for a parallel writer
|
|
167
|
+
| Directory | Holds |
|
|
168
|
+
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
169
|
+
| `tmp/claude/`, `tmp/codex/`, `tmp/cursor/` | bench briefs, launch scripts, journals, `.err` files, last-message files, login logs, per harness |
|
|
170
|
+
| `tmp/units/` | native unit briefs, reports, claims files, and unit records |
|
|
171
|
+
| `tmp/probes/` | runtime probes the `probe` Vitest project collects and the `probe` MCP server arms, and a skill script's scratch under its own subdirectory (`census/`, `lint/`, `mutate/`) |
|
|
172
|
+
| `tmp/type/` | the type stage's workspace mirror, owned by `@orkestrel/probe` |
|
|
173
|
+
| `tmp/captures/` | screenshots, resolved-style snapshots, and other capture portfolios |
|
|
174
|
+
| `tmp/browsers/` | the journeys a `browse` server saves, their runs and captures, and its profiles under `.profiles/` |
|
|
175
|
+
| `tmp/worktrees/` | worktrees the Orchestrator creates for a parallel writer |
|
|
152
176
|
|
|
153
177
|
## .orkestrel layout
|
|
154
178
|
|
|
@@ -158,7 +182,7 @@ Every working file lives under the checkout's gitignored `tmp/`, in the director
|
|
|
158
182
|
|
|
159
183
|
`orkestrel-dispatch` owns the brief template, launch mechanics for native and bench units, long-running commands, liveness, and recovery. Load it before a bench lane, a campaign unit, or any command that outlives the turn. The floor that follows binds every dispatch.
|
|
160
184
|
|
|
161
|
-
-
|
|
185
|
+
- Write each brief per `.agents/skills/orkestrel-dispatch/SKILL.md` § Write the brief. A brief file lives at `tmp/units/<unit>-brief.md` (native) or `tmp/<bench>/<unit>-brief.md` (bench), and a re-run at `<unit>-brief-<n>.md`.
|
|
162
186
|
- State in every brief: role and engine, one objective, the evidence slice, owned and off-limits files, the acceptance criteria cheap-first, the return shape, the deviation contract, and that the executor performs the work itself and spawns nothing.
|
|
163
187
|
- Capture a campaign unit's report to `tmp/units/<unit>-report.md`, or read the bench's last-message file.
|
|
164
188
|
- Launch every multi-minute command as a harness-tracked background command through `node .agents/skills/orkestrel-dispatch/scripts/launch.ts` under a cap sized from prior runs, and read a bench answer with that skill's `scripts/result.ts`. Every launcher, probe, and instrument is a TypeScript file run by `node`, never a shell or Python script. Read liveness from the artifact the work produces. Kill only a recorded process id, never a pattern, and confirm the process and its descendants are gone before another writer takes its files.
|
|
@@ -192,13 +216,14 @@ The Orchestrator triages: obvious correction → tighten and re-dispatch; missin
|
|
|
192
216
|
|
|
193
217
|
- Keep the model, options, tools, and instruction prefix unchanged while they fit the task. Check the active provider and harness before claiming that a change preserves or invalidates caching. Treat a continued session as retained context, not as a cache hit; a cache hit depends on the provider, the prefix, and the retention window. Claim a saving only from recorded usage.
|
|
194
218
|
- Keep the always-on instruction set small and load supporting rules by scope. When instructions change, use the harness's documented reload mechanism and tell affected agents what changed. Do not assume a file edit updates an active session.
|
|
195
|
-
- Give reading and driver roles no instruction files
|
|
219
|
+
- Give reading and driver roles no instruction files when their charter carries the floor they need.
|
|
196
220
|
- Route bulk reads per § Routing and keep only the distillate.
|
|
197
221
|
|
|
198
222
|
## Acceptance
|
|
199
223
|
|
|
200
224
|
- No writer's and no bench's self-assessment is authoritative. The Orchestrator accepts after the review and the gates the size gate names.
|
|
201
225
|
- Accept when the exit criterion is met and the gates are green. Reopening an accepted criterion is the user's instruction, not a reviewer's finding.
|
|
226
|
+
- Before calling work ready, try the shipped result as the user will, on the build they run, and report what did not run.
|
|
202
227
|
- Substitute an engine only when the same session recorded the bench dark; name the fallback in the brief and the carrying commit.
|
|
203
228
|
- In a repository whose package the registry already serves, commit on the main branch and push it only on the user's go-ahead.
|
|
204
229
|
- Commit by explicit paths. Before a push, read `git log @{upstream}..` and push only commits meant to publish together; hold a push while a commit depends on an unpublished local pin.
|
|
@@ -26,10 +26,10 @@ The commands an agent runs on a Windows host, and their quirks. `.claude/rules/p
|
|
|
26
26
|
- `Get-FileHash` prints uppercase hexadecimal, and Node's `createHash` prints lowercase. Compare digests case-insensitively.
|
|
27
27
|
- Redirecting a native command's standard error with `2>&1` wraps each line in an error record and sets `$?` to false on success. Let the harness capture standard error.
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## Release packs and terminals
|
|
30
30
|
|
|
31
|
-
-
|
|
32
|
-
-
|
|
31
|
+
- Git Bash ships no `script` binary, so an agent cannot give npm a TTY there; the operator runs a browser-authorized `npm login` or `npm publish` in a real terminal.
|
|
32
|
+
- A pack made on Windows records `0644` for an entry git tracks as `100755`. Compare release packs between hosts by paths, sizes, and content hashes, and report executable-mode differences separately.
|
|
33
33
|
|
|
34
34
|
## Deleting untracked files
|
|
35
35
|
|
|
@@ -19,17 +19,15 @@ Invoke `$orkestrel-harden` for each package implementation unit. This skill owns
|
|
|
19
19
|
|
|
20
20
|
## Execute the campaign
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
10. **Verify topologically.** Run local gates for touched packages from dependencies to dependents and inspect relevant generated outputs.
|
|
32
|
-
11. **Review the campaign.** Run the review `.agents/orchestration.md` § Size gate names on the integrated result, with one cross-package architecture and ergonomics pass over the whole graph. Do not review each unit separately.
|
|
22
|
+
Run `.agents/orchestration.md` § Campaign for the phases, the review, and the gates, and `$orkestrel-harden` for each package unit. Record the live state of every relevant repository per [fleet.md](references/fleet.md) § Verify live state. This skill adds:
|
|
23
|
+
|
|
24
|
+
1. **Trace the real flow.** Follow public types and one concrete consumer end to end. Identify where ergonomics break and which layer owns the reusable mechanism.
|
|
25
|
+
2. **Assign ownership.** Keep core host-independent. Keep server free of browser assumptions and browser free of Node assumptions. Keep product policy in applications.
|
|
26
|
+
3. **Judge downstream friction.** Treat consumer gymnastics as evidence, not automatic proof. Decide whether the consumer misused a coherent API or exposed a general upstream defect.
|
|
27
|
+
4. **Prove the round trip.** Put integration coverage at the highest package that can exercise the real composed behavior. Retain focused deterministic coverage in lower packages.
|
|
28
|
+
5. **Validate local changes safely.** When necessary, use built artifacts in an isolated consumer and prove the resolved graph, per [fleet.md](references/fleet.md) § Validate local packages.
|
|
29
|
+
|
|
30
|
+
The review is one cross-package architecture and ergonomics pass over the whole graph, not one per unit.
|
|
33
31
|
|
|
34
32
|
## Accept the result
|
|
35
33
|
|
|
@@ -40,7 +38,6 @@ Completion requires:
|
|
|
40
38
|
- every changed public contract, consumer, test, and guide is aligned;
|
|
41
39
|
- real round-trip behavior is proven at the correct layer;
|
|
42
40
|
- package versions/ranges/guides are reported from live evidence;
|
|
43
|
-
- every touched repository's requested local gates are green
|
|
44
|
-
- no in-scope work is deferred.
|
|
41
|
+
- every touched repository's requested local gates are green.
|
|
45
42
|
|
|
46
43
|
Report the final package graph, ownership decisions, shipped behavior, exact verification, residual risk, and any user decision still required.
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Fleet alignment
|
|
2
2
|
|
|
3
|
+
This reference governs fleet alignment across repositories: verifying live state, planning dependency order, and verifying consumers.
|
|
4
|
+
|
|
3
5
|
## Verify live state
|
|
4
6
|
|
|
5
7
|
For every relevant repository, record:
|
|
@@ -29,19 +31,11 @@ Keep one authoritative session per package. Re-establish live state before actin
|
|
|
29
31
|
|
|
30
32
|
## Validate local packages
|
|
31
33
|
|
|
32
|
-
When a dependent must verify a local package
|
|
33
|
-
|
|
34
|
-
- build the dependency;
|
|
35
|
-
- consume its built artifact only in an isolated or explicitly authorized consumer;
|
|
36
|
-
- prove every relevant resolution points to the intended artifact;
|
|
37
|
-
- run the dependent's targeted then final local gates;
|
|
38
|
-
- restore temporary overrides, manifest edits, and lockfile state.
|
|
39
|
-
|
|
40
|
-
Do not treat an undeclared source-checkout import as consumer proof.
|
|
34
|
+
When a dependent must verify a local package, pin it to a built tarball in an isolated or explicitly authorized consumer, run the dependent's targeted then final local gates, and restore the pin, per `.agents/skills/orkestrel-publish/references/release.md` § Fix a dependency before it publishes. Do not treat an undeclared source-checkout import as consumer proof.
|
|
41
35
|
|
|
42
36
|
## Align guides and verification
|
|
43
37
|
|
|
44
|
-
Refresh dependency guides
|
|
38
|
+
Refresh dependency guides with `scaffold catalog` when the owning repository and scope permit it. Report drift rather than hand-editing a vendored guide whose canonical source lives elsewhere.
|
|
45
39
|
|
|
46
40
|
Run package-local verification from dependencies to dependents. A passing lower package does not prove its consumer; a passing consumer does not replace lower-package invariants.
|
|
47
41
|
|
|
@@ -42,6 +42,6 @@ Place each proof at the highest useful layer:
|
|
|
42
42
|
|
|
43
43
|
Use the actual packages and transports. Use temporary resources or protocol-faithful fixture servers for deterministic network boundaries. Use the real external service when its behavior is the claim. Never simulate an owned package with a mock or fake.
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Prove a claim that a foreign client can consume the stack per `.agents/skills/orkestrel-harden/references/hardening.md` § Use real implementations.
|
|
46
46
|
|
|
47
47
|
Test both successful composition and contract disagreement: invalid options, unavailable capability, partial failure, abort/cleanup, version mismatch, and lifecycle ordering where applicable.
|
|
@@ -14,18 +14,16 @@ than this summary of it.
|
|
|
14
14
|
|
|
15
15
|
## Select the environments
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
`scaffold new` takes the independent selections `--src` and `--app`; `guides/scaffold.md` § Command line
|
|
18
|
+
and § Select at creation own the options and the combinations they refuse. The table names what each
|
|
19
|
+
app environment owns.
|
|
20
20
|
|
|
21
|
-
| Selection | What it owns
|
|
22
|
-
| ----------- |
|
|
23
|
-
| app/core | Host-independent contracts and composition; check and test only
|
|
24
|
-
| app/browser |
|
|
25
|
-
| app/
|
|
26
|
-
|
|
27
|
-
Core-only, browser-only, and server-only applications are valid. A browser+server pair
|
|
28
|
-
includes app/core so the shared transport contracts have one host-independent owner.
|
|
21
|
+
| Selection | What it owns |
|
|
22
|
+
| ----------- | ------------------------------------------------------------------------------------------ |
|
|
23
|
+
| app/core | Host-independent contracts and composition; check and test only |
|
|
24
|
+
| app/browser | Framework-independent DOM runtime behind an `index.html` entry, `tsc`, real Chromium tests |
|
|
25
|
+
| app/vue | Vue runtime with `App.vue` behind an `index.html` entry, `vue-tsc`, real Chromium tests |
|
|
26
|
+
| app/server | Node runtime, `dist/app/server/main.cjs` with only `node:*` external |
|
|
29
27
|
|
|
30
28
|
## Execute the workflow
|
|
31
29
|
|
|
@@ -39,50 +37,26 @@ includes app/core so the shared transport contracts have one host-independent ow
|
|
|
39
37
|
thin target wrappers and scoped tsconfigs.
|
|
40
38
|
4. **Implement completely** — entries, barrels, centralized declarations, one-class
|
|
41
39
|
implementation files, environment parsing, lifecycle, builds, and scripts — under the
|
|
42
|
-
placement and manifest laws
|
|
43
|
-
|
|
44
|
-
negative, or out-of-range ports with a coded error and its guard.
|
|
45
|
-
5. **Own the shutdown contract.**
|
|
40
|
+
placement and manifest laws in `.claude/rules/application.md`.
|
|
41
|
+
5. **Own the shutdown contract** of the runner `.claude/rules/application.md` requires:
|
|
46
42
|
- Serialize lifecycle transitions in call order.
|
|
47
43
|
- Re-request port zero on an ephemeral restart.
|
|
48
44
|
- Close lingering active connections deterministically on stop.
|
|
49
45
|
- Release the runner's signal listeners idempotently on stop.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
6. **Keep boundary enforcement inside the configured toolchain.** Each layer owns what it
|
|
54
|
-
can express:
|
|
55
|
-
- Oxlint `no-restricted-imports` — literal-string declared package, alias, and
|
|
56
|
-
conventional relative import direction.
|
|
57
|
-
- Oxfmt — formatting.
|
|
58
|
-
- `tests/setupPolicy.ts` — the narrow TypeScript compiler-API pass over computed and
|
|
59
|
-
template-literal specifiers, declaration placement, and the barrel law.
|
|
60
|
-
- Scoped TypeScript projects — host-global isolation.
|
|
61
|
-
- Vite's real builds and environment-boundary plugin — Vue, CSS, assets, workers,
|
|
62
|
-
runtime resolution, and physical workspace containment. Its parsed HTML asset
|
|
63
|
-
callbacks reject forced inlining before any direct asset read, and non-inlined
|
|
64
|
-
output assets are audited by physical source path.
|
|
65
|
-
|
|
66
|
-
Then hold these limits:
|
|
67
|
-
- Add no standalone boundary script, and no second parser or source-language analyzer
|
|
68
|
-
duplicating those layers. Reach for the toolchain's own facilities instead: Vite's
|
|
69
|
-
Oxc/Rolldown AST for TypeScript and JavaScript asset references, the official Vue SFC
|
|
70
|
-
compiler for `.vue` blocks, Vite's HTML parser callbacks, its bundled Lightning CSS
|
|
71
|
-
dependency analyzer, and the TypeScript compiler API for the narrow coding-law pass.
|
|
46
|
+
6. **Keep boundary enforcement inside the configured toolchain**, per
|
|
47
|
+
`.claude/rules/workspace.md` § Typechecking and environment isolation and § Tooling.
|
|
48
|
+
- Add no standalone boundary script and no second parser or source-language analyzer.
|
|
72
49
|
- Disable the browser application's public directory, so an unmanaged file copy cannot
|
|
73
50
|
ship outside the module graph.
|
|
74
51
|
- Keep browser-only runtime tooling development-only.
|
|
75
52
|
- Require explicit authorization before adding a Sass compiler.
|
|
76
|
-
|
|
77
53
|
7. **Prove it on real hosts.**
|
|
78
54
|
- Run app/browser tests on Playwright-backed Vitest Browser Mode against real DOM.
|
|
79
55
|
Probe the installed executable directly with `existsSync(chromium.executablePath())`
|
|
80
56
|
rather than guessing a channel or reading an environment flag.
|
|
81
57
|
- Bind port zero on loopback in app/server tests and use real fetch.
|
|
82
58
|
- Prove executable readiness, collision exit, signal termination, and port release with
|
|
83
|
-
real child-process tests.
|
|
84
|
-
termination by signal, while POSIX delivery exercises the graceful listener and exits
|
|
85
|
-
zero.
|
|
59
|
+
real child-process tests.
|
|
86
60
|
- Probe the actual capability in a capability-dependent test, and scope any skip
|
|
87
61
|
narrowly.
|
|
88
62
|
8. **Document and prove parity** for every app export and behavioral method: guide,
|
|
@@ -92,10 +66,6 @@ includes app/core so the shared transport contracts have one host-independent ow
|
|
|
92
66
|
`.agents/orchestration.md` § Size gate names for the change and the repository gates in
|
|
93
67
|
their required order.
|
|
94
68
|
|
|
95
|
-
Do not add showcase, authentication, persistence, proxy, styling-system, or product
|
|
96
|
-
policy unless the request requires it. Do not leave placeholders, compatibility shims,
|
|
97
|
-
empty setup files, or deferred app behavior.
|
|
98
|
-
|
|
99
69
|
## Accept the result
|
|
100
70
|
|
|
101
71
|
Completion requires:
|
|
@@ -109,6 +79,4 @@ Completion requires:
|
|
|
109
79
|
- guide parity green over every app export and behavioral method;
|
|
110
80
|
- the repository gates green in their required order from an independent `verifier`.
|
|
111
81
|
|
|
112
|
-
|
|
113
|
-
means the run is not finished. Report what each environment owns, the exact proof and gate
|
|
114
|
-
evidence, and any residual risk. Do not call an in-scope omission future work.
|
|
82
|
+
Report what each environment owns, the exact proof and gate evidence, and any residual risk.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: 'Build Orkestrel Application'
|
|
3
|
-
short_description: '
|
|
3
|
+
short_description: 'Wire and harden Orkestrel app environments'
|
|
4
4
|
default_prompt: 'Use $orkestrel-build to build or harden this workspace application layer.'
|
|
@@ -13,8 +13,8 @@ auditing the agent, rule, skill, and process layer; [field-testing.md](reference
|
|
|
13
13
|
before running or judging a live field pass of an agent-facing surface;
|
|
14
14
|
[retention.md](references/retention.md) before retiring the campaign folder.
|
|
15
15
|
|
|
16
|
-
The debrief judges the artifact and the process that produced it
|
|
17
|
-
|
|
16
|
+
The debrief judges the artifact and the process that produced it. Record a practice that worked
|
|
17
|
+
as a refinement.
|
|
18
18
|
|
|
19
19
|
## The debrief laws
|
|
20
20
|
|
|
@@ -43,23 +43,25 @@ practice that worked as a refinement, so it repeats.
|
|
|
43
43
|
|
|
44
44
|
## Run the round
|
|
45
45
|
|
|
46
|
-
1. **Scope and gather.** Name the campaign(s) under debrief. Assemble the record
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
1. **Scope and gather.** Name the campaign(s) under debrief. Assemble the record from the
|
|
47
|
+
campaign folder (`.claude/rules/campaign.md` § Layout): `plan.md`, `ledger.md`, `gaps.md`,
|
|
48
|
+
`ideas.md`, and the verdict files, plus deviations and recoveries, gate history, and any
|
|
49
|
+
live transcripts. State what evidence exists and what must be
|
|
49
50
|
produced fresh.
|
|
50
51
|
2. **Field evidence.** Drive what was built with real consumers where a consumable
|
|
51
52
|
surface exists. Record every pass verbatim.
|
|
52
53
|
3. **Artifact audits.** Layer and boundary truth: does app code belong a layer down in
|
|
53
54
|
src, does src carry application policy, does either duplicate a declared ecosystem
|
|
54
55
|
primitive? Package promotion: what grew into a reusable mechanism that belongs in an
|
|
55
|
-
existing package or justifies a new one
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
existing package or justifies a new one, judged by the extraction signals in
|
|
57
|
+
`.agents/orchestration.md` § Depth, breadth, and machinery and mapped dependency-first
|
|
58
|
+
so promotion order is executable. Sweep test infrastructure both ways: name every
|
|
59
|
+
local test helper or fixture whose semantics an installed shared-package export already
|
|
60
|
+
covers (compare against the declarations each repository compiles with, and adopt
|
|
61
|
+
rather than keep), and name every instrument two or more packages built independently
|
|
62
|
+
(count a value set fed through one proof loop as one implementation, whether the set
|
|
63
|
+
sits beside the loop or its assertions are spelled out one by one). Every row ends
|
|
64
|
+
implement, repair, retain, or intentionally exclude, with evidence.
|
|
63
65
|
4. **Process retrospective.** Walk the campaign record for both failure and success:
|
|
64
66
|
dispatches that deviated and why; recoveries that worked (codify the mechanism that
|
|
65
67
|
saved them); estimates versus observed durations; audit rounds that caught real
|
|
@@ -77,8 +79,9 @@ practice that worked as a refinement, so it repeats.
|
|
|
77
79
|
orchestration contract) with the owner's direction where the root contract is
|
|
78
80
|
touched; re-prove per the re-proving law in § "The debrief laws".
|
|
79
81
|
8. **Propagate.** Portable changes are made in the scaffold repository's host inventory,
|
|
80
|
-
staged, gated, and
|
|
81
|
-
the
|
|
82
|
+
staged, gated, and committed; editing one project's checkout propagates nothing. Push on
|
|
83
|
+
the user's go-ahead (`.agents/orchestration.md` § Acceptance). Verify the
|
|
84
|
+
generated-workspace proofs stay green so new projects inherit the refined canon.
|
|
82
85
|
9. **Dispose.** Present the disposition map — finding table with carriers, the canon
|
|
83
86
|
delta, what remains open — and retire the campaign folder through
|
|
84
87
|
[retention.md](references/retention.md), which owns the checks, the go-ahead, the
|
|
@@ -89,5 +92,5 @@ practice that worked as a refinement, so it repeats.
|
|
|
89
92
|
Each round ends with one fixed report: the finding table (id, evidence pointer, bucket,
|
|
90
93
|
carrier), the canon delta (files created or changed, per layer: agents, rules, skills,
|
|
91
94
|
process, guide, roadmap), the re-proof evidence, and exactly one terminal line —
|
|
92
|
-
`DEBRIEF: FOLDED` when every finding has a carrier and the propagation is
|
|
95
|
+
`DEBRIEF: FOLDED` when every finding has a carrier and the propagation is committed in scaffold, or
|
|
93
96
|
`DEBRIEF: OPEN` with the blocking items.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: 'Debrief Closed Campaign'
|
|
3
3
|
short_description: 'Fold a closed campaign into portable truth on field evidence'
|
|
4
|
-
default_prompt: 'Use $orkestrel-debrief to debrief the closed campaign: field passes,
|
|
4
|
+
default_prompt: 'Use $orkestrel-debrief to debrief the closed campaign: field passes, finding table, fix loops, canon refinement, propagation, disposal.'
|
|
@@ -5,17 +5,18 @@ model consumes.
|
|
|
5
5
|
|
|
6
6
|
## The tier ladder
|
|
7
7
|
|
|
8
|
-
Test from the top down, and do not stop at the tier that passes
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
Test from the top down, and do not stop at the tier that passes. Map each tier to an engine
|
|
9
|
+
per `.agents/orchestration.md` § Roles and name the map in the dispatch.
|
|
10
|
+
|
|
11
|
+
1. **Frontier** (the harness's default engine) — proves the surface works at all.
|
|
12
|
+
2. **Mid tier** — proves the surface survives a harness's schema abbreviation and an engine
|
|
13
|
+
that reads less carefully.
|
|
14
|
+
3. **Small native** (the mechanical roles' engine) — the acceptance tier: it must walk the
|
|
15
|
+
surface unaided, or the surface is not done.
|
|
16
|
+
4. **Local floor** (a small quantized model through a real tool-calling client) — not an
|
|
17
|
+
acceptance gate; a stochastic probe that exposes teaching gaps nothing else hits. Its
|
|
18
|
+
residual failures must be provably consumer-floor (malformed emission, attention loss),
|
|
19
|
+
never surface darkness — every refusal it received must have named the fix.
|
|
19
20
|
|
|
20
21
|
## The pass discipline
|
|
21
22
|
|
|
@@ -48,23 +49,9 @@ Read every trace against these; each maps to a class of surface fix:
|
|
|
48
49
|
| Opaque-wall regression | A correct structure abandoned after an unnamed refusal | Every refusal names the subject, path, expectation, and candidates |
|
|
49
50
|
| Repetition fixpoint | The identical failing call repeated verbatim | The refusal must change the caller's information state; if it already does, the residual is consumer-floor |
|
|
50
51
|
|
|
51
|
-
##
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- **Descriptions are the surviving surface.** Harnesses abbreviate nested schemas;
|
|
56
|
-
the tool description reaches every model intact. The critical path — a worked example,
|
|
57
|
-
the key nesting, the reply shape — lives there, importance-first, so a model that
|
|
58
|
-
stops reading early still gets it.
|
|
59
|
-
- **Every refusal orients, names, or corrects.** Subject, exact key path, expected
|
|
60
|
-
shape, valid candidates, missing versus unexpected — a refusal that names nothing ends
|
|
61
|
-
runs; a refusal that names everything converges even a 2B model.
|
|
62
|
-
- **Strictness with teaching beats tolerance.** Never coerce, never silently drop;
|
|
63
|
-
refuse with the correction in the message. Encode untrusted identifiers (JSON-encoded,
|
|
64
|
-
length-capped) so malformed input cannot fake or balloon a diagnostic.
|
|
65
|
-
- **Acknowledge or state, never both.** Mutations return acknowledgements; reads return
|
|
66
|
-
state; the split is stated in both tools' descriptions so neither is polled for the
|
|
67
|
-
other's job.
|
|
52
|
+
## Judge the fix
|
|
53
|
+
|
|
54
|
+
Rule each fix against `.claude/rules/documentation.md` § Agent-facing surfaces.
|
|
68
55
|
|
|
69
56
|
## The scoreboard
|
|
70
57
|
|