@orkestrel/scaffold 0.0.32 → 0.0.33

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.
@@ -101,7 +101,7 @@ configs/ thin target wrappers around root Vite/TypeScript configuration
101
101
  7. **Document:** update the guide, examples, and parity contract.
102
102
  8. **Verify:** audit discovery, deferrals, and package contents as applicable. Run the required gates and read their actual output before claiming success.
103
103
 
104
- Quality gates before commit, in order. The acceptance gate is the non-mutating variant; run the mutating `format` and `lint` first only to converge, then prove with the checks:
104
+ Quality gates before commit, in order. The acceptance gate is the non-mutating variant; run the mutating `lint` and then `format` first only to converge, then prove with the checks. `lint --fix` rewrites code and its output is not formatter-clean, so a `format` that ran before it leaves `format:check` failing on the file `lint` just rewrote:
105
105
 
106
106
  ```text
107
107
  npm run format:check → npm run lint:check → npm run check → npm run build → npm test
@@ -421,7 +421,7 @@ The harness bridge names the concrete mechanism for each of these.
421
421
 
422
422
  ### Check the brief before you send it
423
423
 
424
- Run these nine checks on every brief. Each is cheap, and skipping one costs a full dispatch cycle
424
+ Run these eleven checks on every brief. Each is cheap, and skipping one costs a full dispatch cycle
425
425
  that produces no work, because a unit given a brief that is internally consistent and factually
426
426
  wrong is right to stop.
427
427
 
@@ -461,6 +461,15 @@ wrong is right to stop.
461
461
  be read, and say in the brief that a test is named for what it proves, never for the control that
462
462
  specified it. An implementer writing one test per control otherwise takes the label as the obvious
463
463
  name, and a private brief vocabulary becomes a permanent test name.
464
+ - Check the brief's output mechanism and its verification method against the executor's tool
465
+ allowlist. A read-only role cannot write a report file, cannot write a probe, and cannot run a
466
+ sandbox that writes, so naming any of those stops the unit on arrival over a detail the allowlist
467
+ already settled. Where a read-only lane needs executed evidence, produce it separately and hand it
468
+ over: the Orchestrator supplies the evidence and the lane rules on it.
469
+ - Scope a fleet-wide refactor by the files that **consume** a symbol, not by the files that declare
470
+ it. A criterion to delete or rename anything closes only when every importer is owned, so a brief
471
+ scoped to the declaration alone sends the unit into a typecheck break in a file it cannot edit.
472
+ Count the importers before writing the owned list.
464
473
 
465
474
  ### Carry every finding
466
475
 
@@ -632,6 +641,11 @@ and propagates as files rather than as a cascade.
632
641
  prove that target's gates still green. `repair` restores `tests/setupPolicy.ts` and
633
642
  `tests/policy.test.ts`, so a vendored-only release can turn a green target red. A target bumps
634
643
  only when its own published surface moved.
644
+ - Never edit a vendored file inside a target. `repair` restores it, so the edit is reverted and
645
+ reports as drift in `scaffold audit`. In this repository those same files are the published
646
+ `dist/host` surface, so editing one forces a bump, a publish, and a re-propagation across every
647
+ target. Scope a fleet-wide refactor to the files each target owns, and record the vendored
648
+ exclusion in the brief rather than letting each unit rediscover it.
635
649
 
636
650
  ### Preparing
637
651
 
@@ -305,8 +305,8 @@ var DEFAULT_ENGINES = `>=${MINIMUM_NODE_VERSION}`;
305
305
  /** The tooling versions scaffold and every generated workspace share. */
306
306
  var BASE_DEV_DEPENDENCIES = Object.freeze({
307
307
  "@orkestrel/guide": "^0.0.11",
308
- "@orkestrel/scaffold": "^0.0.32",
309
- "@orkestrel/test": "^0.0.2",
308
+ "@orkestrel/scaffold": "^0.0.33",
309
+ "@orkestrel/test": "^0.0.3",
310
310
  "@types/node": "^26.2.0",
311
311
  oxfmt: "^0.62.0",
312
312
  oxlint: "^1.77.0",