@orkestrel/scaffold 0.0.50 → 0.0.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/bin/main.js +46 -17
  2. package/dist/bin/main.js.map +1 -1
  3. package/dist/host/AGENTS.md +2 -2
  4. package/dist/host/CLAUDE.md +3 -1
  5. package/dist/host/agents/orchestration.md +109 -274
  6. package/dist/host/agents/skills/enterprise-bootstrap/SKILL.md +12 -8
  7. package/dist/host/agents/skills/orkestrel-align-packages/SKILL.md +2 -2
  8. package/dist/host/agents/skills/orkestrel-debrief/SKILL.md +15 -11
  9. package/dist/host/agents/skills/orkestrel-debrief/references/instruction-audit.md +38 -12
  10. package/dist/host/agents/skills/orkestrel-debrief/references/retention.md +107 -0
  11. package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/SKILL.md +1 -1
  12. package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/agents/openai.yaml +1 -1
  13. package/dist/host/agents/skills/orkestrel-publish/SKILL.md +77 -0
  14. package/dist/host/agents/skills/orkestrel-publish/agents/openai.yaml +4 -0
  15. package/dist/host/agents/skills/orkestrel-publish/references/wave.md +97 -0
  16. package/dist/host/agents/skills/orkestrel-publish/references/window.md +95 -0
  17. package/dist/host/agents/templates/brief.md +157 -0
  18. package/dist/host/{codex/agents/claude.toml → agents/transports/claude.md} +16 -10
  19. package/dist/host/{claude/agents → agents/transports}/codex.md +13 -12
  20. package/dist/host/claude/agents/analyst.md +11 -10
  21. package/dist/host/claude/agents/application.md +6 -3
  22. package/dist/host/claude/agents/builder.md +11 -10
  23. package/dist/host/claude/agents/checker.md +20 -10
  24. package/dist/host/claude/agents/grok.md +8 -7
  25. package/dist/host/claude/agents/implementer.md +7 -4
  26. package/dist/host/claude/agents/orkestrel.md +27 -21
  27. package/dist/host/claude/agents/planner.md +13 -5
  28. package/dist/host/claude/agents/researcher.md +8 -7
  29. package/dist/host/claude/agents/reviewer.md +6 -4
  30. package/dist/host/claude/agents/scout.md +6 -7
  31. package/dist/host/claude/agents/sol.md +9 -8
  32. package/dist/host/claude/agents/verifier.md +6 -3
  33. package/dist/host/claude/rules/architecture.md +6 -6
  34. package/dist/host/claude/rules/documentation.md +2 -0
  35. package/dist/host/claude/rules/tests.md +4 -2
  36. package/dist/host/claude/rules/workspace.md +1 -1
  37. package/dist/host/claude/skills/enterprise-bootstrap/SKILL.md +12 -8
  38. package/dist/host/claude/skills/orkestrel-debrief/SKILL.md +1 -1
  39. package/dist/host/claude/skills/{orkestrel-human-journey → orkestrel-prove-journey}/SKILL.md +2 -2
  40. package/dist/host/claude/skills/orkestrel-publish/SKILL.md +12 -0
  41. package/dist/host/codex/agents/analyst.toml +3 -0
  42. package/dist/host/codex/agents/application.toml +3 -0
  43. package/dist/host/codex/agents/builder.toml +10 -7
  44. package/dist/host/codex/agents/checker.toml +14 -3
  45. package/dist/host/codex/agents/grok.toml +5 -2
  46. package/dist/host/codex/agents/implementer.toml +3 -2
  47. package/dist/host/codex/agents/opus.toml +4 -3
  48. package/dist/host/codex/agents/orkestrel.toml +14 -9
  49. package/dist/host/codex/agents/planner.toml +7 -5
  50. package/dist/host/codex/agents/researcher.toml +6 -4
  51. package/dist/host/codex/agents/reviewer.toml +4 -3
  52. package/dist/host/codex/agents/scout.toml +4 -1
  53. package/dist/host/codex/agents/verifier.toml +3 -2
  54. package/dist/host/codex/config.toml +1 -1
  55. package/dist/host/guides/scaffold.md +48 -44
  56. package/dist/host/manifest.json +132 -84
  57. package/dist/host/tests/config.test.ts +57 -0
  58. package/dist/src/core/index.cjs +455 -406
  59. package/dist/src/core/index.cjs.map +1 -1
  60. package/dist/src/core/index.d.cts +51 -48
  61. package/dist/src/core/index.d.ts +51 -48
  62. package/dist/src/core/index.js +455 -406
  63. package/dist/src/core/index.js.map +1 -1
  64. package/package.json +2 -2
  65. /package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/references/captures.md +0 -0
  66. /package/dist/host/agents/skills/{orkestrel-human-journey → orkestrel-prove-journey}/references/layer.md +0 -0
@@ -12,8 +12,8 @@ does not work. Scaffold makes the shared set data — a vendored data root shipp
12
12
  — and gives it verbs: create a workspace from it, report how a workspace differs from it, and
13
13
  write the difference back.
14
14
 
15
- Every code fence below is illustrative. [`tests/guides.test.ts`](../tests/guides.test.ts) keeps the
16
- command reference aligned with the executable and transcribes the pure blueprint-default,
15
+ Every following code fence is illustrative. [`tests/guides.test.ts`](../tests/guides.test.ts)
16
+ keeps the command reference aligned with the executable and transcribes the pure blueprint-default,
17
17
  compile-refusal, and error-narrowing fences. A trailing comment in another fence is this guide's
18
18
  claim rather than a measured answer; the driven examples are the ones the shipped declarations
19
19
  print. Limits states what that leaves unproven and what covers it instead.
@@ -391,8 +391,8 @@ Exported from `@orkestrel/scaffold/server`, and reachable from
391
391
 
392
392
  `Compiler` implements `CompilerInterface`, `Materializer` implements `MaterializerInterface`, and
393
393
  `Upstream` implements `UpstreamInterface`. Each class exposes exactly its interface's members and
394
- nothing more, so the interface tables below describe the classes too. `WriteTransaction` publishes
395
- no interface and is documented directly.
394
+ nothing more, so the following interface tables describe the classes too. `WriteTransaction`
395
+ publishes no interface and is documented directly.
396
396
 
397
397
  #### `CompilerInterface`
398
398
 
@@ -566,9 +566,9 @@ carries the fact and the vendor list keeps its own separate job.
566
566
  The root Vite configuration defines and registers the fixed `guides` project only when the derived
567
567
  blueprint carries `guides`. Reading verbs set that fact only when `tests/guides.test.ts` is a
568
568
  physical file with that exact path case. A directory or a case-folded spelling does not select it. A
569
- fresh workspace therefore carries no guides project or script. A developer who adds the proof must
570
- also add the exact `test:guides` script line that the plan reports; the manifest remains
571
- birth-owned.
569
+ fresh workspace therefore carries no guides project or script. When a developer adds the proof,
570
+ `audit` reports the exact `test:guides` script line until `repair` or `overwrite` appends it through
571
+ the writable script region. The rest of the manifest remains birth-owned.
572
572
 
573
573
  The plan-reading verbs compare the Vitest project set named by the target manifest with the
574
574
  project set the planned root configuration registers. Every planned proof project must also be
@@ -585,31 +585,36 @@ static Vitest fact to infer.
585
585
  `audit` still completes the comparison and reports one non-blocking `projects` question when its
586
586
  selection includes `configs`. A scoped audit that excludes `configs` omits that question. For a
587
587
  literal absent project, its advisory tells the developer to register the project or remove the
588
- script. For a planned project absent from the gate chains, the advisory checks the direct
589
- `test:<project>` script. When the script is absent, the advisory gives the exact line to add to
590
- `package.json`. When the script is declared but ungated, the advisory names the script and the gate
591
- chain that must invoke it, without repeating a script line. When `configs` is selected, `repair` and
592
- `overwrite` refuse either mismatch before writing. Their refusal names the `configs` group, the
593
- manifest and planned `vite.config.ts` conflict, and the option to exclude `configs` from
594
- `--groups`. A selection that excludes `configs` proceeds. An advisory alone does not make an aligned
595
- target drift.
596
-
597
- Scaffold writes one part of the manifest rather than advising on it: the script region a publishing
598
- workspace needs for the generated distribution proof. `repair` and `overwrite` write
599
- `test:distribution` and `prepublishOnly` there. A declared value is overwritten only when it is
600
- already the value being written, or, for `prepublishOnly`, the one predecessor the region accepts —
601
- the same gate chain without the release row. The overwrite happens in place, so every byte outside
602
- the replaced ranges survives, and a description, a keyword, a key order, and a script the workspace
603
- added are untouched. A script the manifest does not declare is appended after the last declared one,
604
- copying that section's indentation. `catalog` writes no script region; it names the ranges alone.
605
-
606
- A value matching neither is a chain the workspace author wrote. The region is then refused whole,
607
- without a byte moving, and the range region is still written. The `projects` advisory reads the
608
- manifest as a write would leave it, so a region scaffold writes for itself raises no question, while
609
- a refused region leaves the target's own text standing and the advisory reports whichever half is
610
- outstanding: the exact `test:distribution` line to paste, or the gate chain that must invoke a
611
- script the manifest already declares. The refusal covers the region rather than one script, so a
612
- manifest never holds one written value beside one refused one.
588
+ script. For a planned project absent from the gate chains, the advisory reads the manifest after a
589
+ writable script projection. The `scripts` question owns an absent direct `test:<project>` line. The
590
+ `projects` question names the direct script and the gate chain that must invoke it when the projected
591
+ region still leaves the project ungated. When `configs` is selected, `repair` and `overwrite` refuse
592
+ an unregistered or ungated project before writing. Their refusal names the `configs` group, the
593
+ manifest and planned `vite.config.ts` conflict, and the option to exclude `configs` from `--groups`.
594
+ A selection that excludes `configs` proceeds. An advisory alone does not make an aligned target
595
+ drift.
596
+
597
+ Scaffold writes one part of the manifest rather than advising on it: the writable script region.
598
+ `repair` and `overwrite` write every direct `test:<project>` script the blueprint computes,
599
+ `test:probe`, and `test:bench`. A publishing workspace also receives `test:distribution`, `prepack`,
600
+ and `prepublishOnly`. The `test`, `check`, `build`, `dev`, `serve`, `show`, `format`, `lint`, `clean`,
601
+ and `copy` gate chains stay maintainer-owned. A declared value is overwritten only when it is already
602
+ the value being written or is a recognized generated predecessor. The overwrite happens in place,
603
+ so every byte outside the replaced ranges survives. A target's descriptions, keywords, extra
604
+ scripts, and manifest key order survive byte-for-byte. A script the manifest does not declare is
605
+ appended after the last declared one, copying that section's indentation. `catalog` writes no script
606
+ region; it names the ranges alone.
607
+
608
+ A value matching neither is a script the workspace author wrote. The region writer retains that
609
+ value byte-for-byte and reports its name, declared value, and planned value. Each other planned
610
+ script is decided independently: an absent script appends, the planned value stands, and an accepted
611
+ predecessor upgrades in place. Extra scripts remain byte-identical. A planned key holding a
612
+ non-string value or a `scripts` field that is not an object still refuses the whole region with no
613
+ script byte moving. `audit` reports absent and differing scripts separately in its non-blocking
614
+ `scripts` question, and the terminal audit in `repair` and `overwrite` keeps every retained
615
+ difference visible. Other selected writes still proceed. The `projects` question reports only a
616
+ direct script the manifest declares but the maintainer-owned gate chain does not invoke after
617
+ projection.
613
618
 
614
619
  The same plan-reading verbs compare the tooling set the derived blueprint plans against
615
620
  `dependencies` and `devDependencies` together. A missing planned package produces one non-blocking
@@ -640,7 +645,8 @@ maintainer wrote rather than what scaffold seeded.
640
645
  That reading carries a release-skew limit. A seeded setup module is birth-owned, so `repair` reports
641
646
  it aligned and never rewrites it. A target keeps the seed of the release that materialized it. When
642
647
  a release moves a planned seed, scaffold raises the question on every target materialized before it,
643
- against a module scaffold wrote and no maintainer touched.
648
+ against a module scaffold wrote and no maintainer touched. `audit` compares each setup module only
649
+ with the seed the installed release plans, and it retains no earlier seed bytes.
644
650
  `tests/setupGlobal.ts` is the module that can meet it, because it is the one seeded with more than
645
651
  the empty string. A maintainer meeting that question closes it by writing the proof it asks for, or
646
652
  by taking the seed the installed release plans.
@@ -741,7 +747,7 @@ One published environment owns the package root directly. Several published envi
741
747
  never runs. The gate reports that as a non-blocking `src` question rather than refusing the compile,
742
748
  because the shape is chosen once and read afterwards: `new` refuses the advisory, while `audit` and
743
749
  `repair` need the plan to describe and restore a target that already has that shape. A library
744
- caller creating a workspace holds the same refusal, and the Compile section below states it.
750
+ caller creating a workspace holds the same refusal, and the Compile section states it.
745
751
 
746
752
  `bin`, `setup`, `guides`, `integration`, `conformance`, `service`, `vendors`, `global`, and
747
753
  `showcase` are structural facts. Each is set only when the workspace physically ships the directory
@@ -758,14 +764,12 @@ generated before that file existed and still registers no `integration` project,
758
764
  fails with `integration has no project factory or configuration` until a plan-writing verb
759
765
  regenerates it.
760
766
 
761
- `repair` alone does not close that, and refusing is correct rather than a gap. `package.json` is
762
- birth-owned, so the verb cannot add the project's script, and it will not register a project the
763
- manifest reaches from no gate. It exits 1 naming the target and writes nothing.
767
+ `repair` closes the direct-script half through the writable manifest region. It still refuses to
768
+ register a project that the maintainer-owned gate chains do not reach.
764
769
 
765
- Adding a structural proof is therefore these steps, in order: write the file; declare its
766
- `test:<project>` script and invoke that script from a gate chain; then run `repair`, which
767
- regenerates the root configuration and registers the project. `audit` reports whichever piece is
768
- still outstanding at each step.
770
+ When you add a structural proof, write the file and invoke its planned `test:<project>` script from
771
+ a gate chain. Then run `repair`; it appends the direct script, regenerates the root configuration,
772
+ and registers the project. `audit` reports whichever piece is still outstanding at each step.
769
773
 
770
774
  `distribution` is not a field at all. A published `src` environment is its whole condition, read
771
775
  from the `src` axis the blueprint already carries. The proof packs and installs the published
@@ -1184,9 +1188,9 @@ A workspace's file set is a function of its axes plus its structural facts. Noth
1184
1188
  except the manifest.
1185
1189
 
1186
1190
  - One computed artifact: `package.json`, with the entry points, `exports` map, scripts, and
1187
- development dependencies its selection implies. A publishing manifest carries
1188
- `"prepack": "npm run build"` so a publish rebuilds `dist/` and cannot ship a stale artifact;
1189
- the hook is publish-time only, and every generated distribution proof passes
1191
+ development dependencies its selection implies. In publishing workspaces, the emitted `prepack`
1192
+ script runs `npm run build` so a publish rebuilds `dist/` and cannot ship a stale artifact; the
1193
+ hook is publish-time only, and every generated distribution proof passes
1190
1194
  `--ignore-scripts` to `npm pack` so a suite never re-runs the build it already gates.
1191
1195
  - One template artifact per configuration file the selection needs: the root `tsconfig.json` and
1192
1196
  `vite.config.ts`, plus a Vite config and a scoped TypeScript config per selected environment and