musubix3 0.1.19 → 0.1.21

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 (80) hide show
  1. package/.github/plugin/marketplace.json +2 -2
  2. package/.github/skills/sdd-change/SKILL.md +28 -45
  3. package/CHANGELOG.md +126 -0
  4. package/README-ja.md +171 -5
  5. package/README.md +185 -8
  6. package/dist/packages/analysis/src/adapters.d.ts +2 -2
  7. package/dist/packages/analysis/src/adapters.js +33 -3
  8. package/dist/packages/analysis/src/adapters.js.map +1 -1
  9. package/dist/packages/analysis/src/approval-record.js +4 -0
  10. package/dist/packages/analysis/src/approval-record.js.map +1 -1
  11. package/dist/packages/analysis/src/approval.d.ts +51 -0
  12. package/dist/packages/analysis/src/approval.js +341 -2
  13. package/dist/packages/analysis/src/approval.js.map +1 -1
  14. package/dist/packages/analysis/src/attestation.js +4 -0
  15. package/dist/packages/analysis/src/attestation.js.map +1 -1
  16. package/dist/packages/analysis/src/change-evidence.d.ts +65 -8
  17. package/dist/packages/analysis/src/change-evidence.js +173 -46
  18. package/dist/packages/analysis/src/change-evidence.js.map +1 -1
  19. package/dist/packages/analysis/src/change-waiver.d.ts +46 -13
  20. package/dist/packages/analysis/src/change-waiver.js +481 -152
  21. package/dist/packages/analysis/src/change-waiver.js.map +1 -1
  22. package/dist/packages/analysis/src/change.d.ts +1 -0
  23. package/dist/packages/analysis/src/change.js +194 -66
  24. package/dist/packages/analysis/src/change.js.map +1 -1
  25. package/dist/packages/analysis/src/evidence-merge-guard.d.ts +9 -0
  26. package/dist/packages/analysis/src/evidence-merge-guard.js +62 -0
  27. package/dist/packages/analysis/src/evidence-merge-guard.js.map +1 -0
  28. package/dist/packages/analysis/src/evidence-merge.d.ts +55 -0
  29. package/dist/packages/analysis/src/evidence-merge.js +1182 -0
  30. package/dist/packages/analysis/src/evidence-merge.js.map +1 -0
  31. package/dist/packages/analysis/src/evidence-writer-lock.d.ts +189 -0
  32. package/dist/packages/analysis/src/evidence-writer-lock.js +843 -0
  33. package/dist/packages/analysis/src/evidence-writer-lock.js.map +1 -0
  34. package/dist/packages/analysis/src/files.js +11 -0
  35. package/dist/packages/analysis/src/files.js.map +1 -1
  36. package/dist/packages/analysis/src/formal.js +7 -0
  37. package/dist/packages/analysis/src/formal.js.map +1 -1
  38. package/dist/packages/analysis/src/gate.d.ts +1 -1
  39. package/dist/packages/analysis/src/gate.js +23 -6
  40. package/dist/packages/analysis/src/gate.js.map +1 -1
  41. package/dist/packages/analysis/src/graph.js +6 -0
  42. package/dist/packages/analysis/src/graph.js.map +1 -1
  43. package/dist/packages/analysis/src/index.d.ts +3 -0
  44. package/dist/packages/analysis/src/index.js +3 -0
  45. package/dist/packages/analysis/src/index.js.map +1 -1
  46. package/dist/packages/analysis/src/knowledge.js +4 -0
  47. package/dist/packages/analysis/src/knowledge.js.map +1 -1
  48. package/dist/packages/analysis/src/model-correspondence.js +5 -1
  49. package/dist/packages/analysis/src/model-correspondence.js.map +1 -1
  50. package/dist/packages/analysis/src/mutation.js +4 -0
  51. package/dist/packages/analysis/src/mutation.js.map +1 -1
  52. package/dist/packages/analysis/src/order.d.ts +16 -1
  53. package/dist/packages/analysis/src/order.js +10 -0
  54. package/dist/packages/analysis/src/order.js.map +1 -1
  55. package/dist/packages/analysis/src/performance.js +5 -1
  56. package/dist/packages/analysis/src/performance.js.map +1 -1
  57. package/dist/packages/analysis/src/quality-refresh.d.ts +18 -0
  58. package/dist/packages/analysis/src/quality-refresh.js +312 -0
  59. package/dist/packages/analysis/src/quality-refresh.js.map +1 -0
  60. package/dist/packages/analysis/src/tdd.d.ts +86 -3
  61. package/dist/packages/analysis/src/tdd.js +604 -52
  62. package/dist/packages/analysis/src/tdd.js.map +1 -1
  63. package/dist/packages/analysis/src/trace.d.ts +24 -0
  64. package/dist/packages/analysis/src/trace.js +101 -3
  65. package/dist/packages/analysis/src/trace.js.map +1 -1
  66. package/dist/packages/analysis/src/workflow-waiver.d.ts +6 -2
  67. package/dist/packages/analysis/src/workflow-waiver.js +9 -5
  68. package/dist/packages/analysis/src/workflow-waiver.js.map +1 -1
  69. package/dist/packages/analysis/src/workflow.d.ts +1 -1
  70. package/dist/packages/analysis/src/workflow.js +103 -21
  71. package/dist/packages/analysis/src/workflow.js.map +1 -1
  72. package/dist/packages/cli/src/install.js +51 -6
  73. package/dist/packages/cli/src/install.js.map +1 -1
  74. package/dist/packages/cli/src/main.js +252 -79
  75. package/dist/packages/cli/src/main.js.map +1 -1
  76. package/dist/packages/domain/src/design.js +8 -1
  77. package/dist/packages/domain/src/design.js.map +1 -1
  78. package/dist/packages/domain/src/types.d.ts +1 -0
  79. package/package.json +7 -2
  80. package/plugin.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **Latest release v0.1.17 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
3
+ **Latest release v0.1.21 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
4
4
 
5
5
  [日本語](README-ja.md)
6
6
 
@@ -389,7 +389,7 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
389
389
  | `design validate <file>` | Fields, global requirement IDs, existing ADR references |
390
390
  | `design scaffold <slug>` | Create `.musubix/features/<slug>/design.md` from a fixed placeholder template; never overwrites an existing file, and does not require a pre-existing `requirements.md` |
391
391
  | `design c4 <file>` | Mermaid component/dependency diagram from explicit fields |
392
- | `approval prepare <requirements\|design\|release>` | Display the exact deterministic manifest and hash for human review |
392
+ | `approval prepare <requirements\|design\|release> [--diff-only]` | Display the exact deterministic manifest and hash for human review; `--diff-only` additionally reports `changedFiles` (only paths whose content differs from the last recorded approval for that stage; all current paths with `diffOnlyBaseline: "none"` when no prior approval exists) without altering `artifactSha256`/`artifacts` |
393
393
  | `approval record <stage> --approver <name> --artifact-sha256 <hash> --confirm` | Record approval only if the reviewed hash is still current |
394
394
  | `approval validate` | Report each approval as approved, missing, or stale; never infer approval from validation |
395
395
  | `trace build` | Generate global trace snapshot and feature copies |
@@ -407,10 +407,14 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
407
407
  | `formal check <file> [--solver auto\|none\|z3\|lean]` | Check the explicit Boolean/conditional/numeric/temporal/transition model |
408
408
  | `model-correspondence validate` | Revalidate Formal JSON → generated trace → authoritative passing test evidence (run `evidence refresh` first to generate its evidence file) |
409
409
  | `evidence refresh [--changed]` | Regenerate derived evidence through the same fail-closed gate pipeline |
410
+ | `evidence unlock --recover` | Recover only a demonstrably dead same-host evidence-writer lock. Live, cross-host, malformed, PID-reused, unsupported-platform, and indeterminate owners are refused without mutation. |
411
+ | `evidence merge --incoming <directory> [--dry-run]` | Merge the current root's valid order/TDD/change/waiver history with another valid project history. Base records remain first; exact duplicates are deduplicated; ambiguous payloads, chronology inversions, and post-Quality batch additions fail without writes. Dry-run performs the same planning and validation. The incoming directory is never modified. |
412
+ | `evidence merge --recover` | Recover an interrupted evidence merge from its journal. Prepared transactions roll back; committed transactions verify and roll forward. If recovery reports `EVIDENCE_MERGE_RECOVERY_UNSAFE`, back up `.musubix/evidence`, restore or verify `order.json`, `tdd.json`, `changes.json`, and `change-waivers.json` from a trusted source, quarantine merge journal/temporary files, then rerun validation. |
410
413
  | `mutation validate` | Revalidate requirement-scoped schema-v1 killed-mutant evidence |
411
414
  | `mutation identity <REQ-ID> <TEST-ID> <sourcePath> <operator> <line> <column>` | Print the deterministic `MUT-*` identity a mutation report must declare |
412
415
  | `tdd validate` | Validate persisted Red/Green/Refactor order, fingerprints, durations, and hash-chain evidence |
413
- | `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | Execute and record a verified TDD phase. Recording the project's **first** `tdd` cycle (any `red` call while `.musubix/evidence/tdd.json` has zero cycles) makes `gate`'s `tdd` check required **project-wide**, for every mandatory requirement, not just the ones touched by the current change; each uncovered requirement then surfaces as `TDD_REQUIREMENT_UNCOVERED`. `approval record release` always runs the full (non-`--changed`) gate, so it is blocked by any resulting `TDD_REQUIREMENT_UNCOVERED` diagnostics. `tdd migrate` cannot be used to bulk-onboard previously-uncovered requirements: it only re-fingerprints a requirement that already has a valid Green cycle. `tdd red` prints/returns a `TDD_ADOPTION_PROJECT_WIDE` warning (in a `warnings` array, separate from `diagnostics`) the moment this first cycle is persisted, listing every other still-uncovered mandatory requirement. |
416
+ | `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | Execute and record a verified TDD phase. Recording the project's **first** `tdd` cycle (any `red` call while `.musubix/evidence/tdd.json` has zero cycles) activates `gate`'s `tdd` coverage evaluation **project-wide**, for every mandatory requirement, not just the ones touched by the current change; each uncovered requirement then surfaces as `TDD_REQUIREMENT_UNCOVERED`. If `tdd` was not already required for another configured reason, that same first cycle is also what makes the check required. `approval record release` always runs the full (non-`--changed`) gate, so it is blocked by any resulting `TDD_REQUIREMENT_UNCOVERED` diagnostics. `tdd migrate` cannot be used to bulk-onboard previously-uncovered requirements: it only reuses already-covered valid Green-backed evidence. `tdd red` prints/returns a `TDD_ADOPTION_PROJECT_WIDE` warning (in a `warnings` array, separate from `diagnostics`) the moment this first cycle is persisted, listing every other still-uncovered mandatory requirement. |
417
+ | `tdd migrate <test-id>` / `tdd migrate <old-id> <new-id>` | Relink already-covered evidence without fabricating a fresh Red/Green cycle. `tdd migrate <test-id>` preserves the existing fingerprint-migration mode for a single covered test whose current declaration still matches the stored evidence under the superseded fingerprinting algorithm. `tdd migrate <old-id> <new-id>` relinks a pure identifier rename when the current authoritative `new-id` declaration differs from `old-id` only in its `@id` annotation and adapter-matched test identity string, the non-test `sourceFingerprint` is unchanged, and the renamed test remains the sole authoritative declaration at the same test path. |
414
418
  | `workflow-record <skill> <phase> --status <status>` | Record a compact self-reported workflow declaration |
415
419
  | `workflow waiver record <code> --skill <skill> --phase <phase> --recorded-at <timestamp> [--index <n>] --approver <name> --reason <text> --confirm` | Record an audited, bounded downgrade of one declaration-scoped workflow reconciliation diagnostic (`WORKFLOW_SKILL_NOT_INVOKED`, `WORKFLOW_INVOCATION_ORDER`, `WORKFLOW_INVOCATION_INCOMPLETE`, `WORKFLOW_INVOCATION_FAILED`, or `WORKFLOW_INVOCATION_REUSED`) to a non-blocking waived status; a paired `WORKFLOW_BINDING_MISSING` diagnostic sharing the same declaration scope is downgraded together with it. It cannot waive `WORKFLOW_INVOCATION_UNVERIFIED`, which only `workflow-verify` having actually run this session can resolve |
416
420
  | `workflow waiver record-all --approver <name> --reason <text> --confirm` | Bulk variant of `workflow waiver record`: waives every currently-outstanding waivable declaration-scoped diagnostic across the whole reconciliation report in one all-or-nothing call, instead of one `record` invocation per diagnostic. Rejects (recording nothing) if any bulk waiver precondition fails first — malformed waiver evidence, an invalid waiver chain, a blank `--approver`/`--reason`, or a `WORKFLOW_INVOCATION_UNVERIFIED` diagnostic (which `workflow-verify` must resolve first; no per-declaration or bulk waiver can substitute for `workflow-verify` never having run). Each waived declaration-scoped diagnostic's paired `WORKFLOW_BINDING_MISSING` is downgraded together with it, identically to the existing single-record command. With zero remaining candidates (already waived, or none present) it succeeds idempotently and records nothing |
@@ -419,12 +423,81 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
419
423
  | `attestation oidc-audience --key-id <id> [--public-key-file <pem>]` | Derive the GitHub custom audience that authorizes a signing key |
420
424
  | `attestation payload --provider <name> --run-id <id> --key-id <id> [--public-key-file <pem>] [--github-oidc-token-file <jwt>]` | Emit canonical unsigned CI payload for external signing |
421
425
  | `attestation verify` | Verify static-key or GitHub OIDC-authorized Ed25519 provenance |
422
- | `change-record <CHANGE-ID> <phase> --requirement <REQ-ID...> [--allow-unchanged] [--dry-run]` | Record ordered artifact/TDD fingerprints for a staged change. `impact`/`requirements`/`design`/`quality` require the change's full requirement ID set; `red`/`implementation`/`green` also accept a proper non-empty subset, recorded as an independent per-requirement batch, so a multi-requirement change can be completed with an interleaved per-requirement Red-Implementation-Green loop instead of one global batch. Rejects with a non-zero exit and a stable `*_UNCHANGED_AT_RECORD` diagnostic (leaving `changes.json`/`order.json` untouched) when a phase's fingerprint is byte-identical to the immediately preceding phase's, since that mistake is otherwise only caught much later by `trace check --strict`/`gate`, at which point the append-only evidence store makes it unfixable. `--allow-unchanged` bypasses this check for the `requirements` phase only (the one case `sdd-change` documents as legitimate: a defect fix that intentionally leaves its requirement unchanged) and persists a durable marker so later validation does not re-flag it. `--dry-run` previews the exact success/rejection outcome, including every existing check, without persisting anything. Each recorded phase/batch stores both `order` (the verified, `gate`-checked logical append sequence from `order.json` — the only field guaranteed correct and monotonic per change) and `recordedAt` (an independently captured wall-clock timestamp with no ordering guarantee relative to `order`); `gate` reports a non-blocking `CHANGE_RECORDEDAT_OUT_OF_ORDER` warning when a change's `recordedAt` values disagree with its `order` sequence |
426
+ | `change-record <CHANGE-ID> <phase> --requirement <REQ-ID...> [--allow-unchanged] [--dry-run]` | Record ordered artifact/TDD fingerprints for a staged change. `impact`/`requirements`/`design`/`quality` require the change's full requirement ID set; `red`/`implementation`/`green` also accept a proper non-empty subset, recorded as an independent per-requirement batch, so a multi-requirement change can be completed with an interleaved per-requirement Red-Implementation-Green loop instead of one global batch. When multiple batches contain the same requirement, validation uses the batch with the latest Red `order`; a later incomplete batch supersedes older evidence and must be completed rather than silently falling back. Rejects with a non-zero exit and a stable `*_UNCHANGED_AT_RECORD` diagnostic (leaving `changes.json`/`order.json` untouched) when a phase's fingerprint is byte-identical to the immediately preceding phase's, since that mistake is otherwise only caught much later by `trace check --strict`/`gate`, at which point the append-only evidence store makes it unfixable. `--allow-unchanged` bypasses this check for the `requirements` phase only (the one case `sdd-change` documents as legitimate: a defect fix that intentionally leaves its requirement unchanged) and persists a durable marker so later validation does not re-flag it. `--dry-run` previews the exact success/rejection outcome, including every existing check, without persisting anything. Each recorded phase/batch stores both `order` (the verified, `gate`-checked logical append sequence from `order.json` — the only field guaranteed correct and monotonic per change) and `recordedAt` (an independently captured wall-clock timestamp with no ordering guarantee relative to `order`); `gate` reports a non-blocking `CHANGE_RECORDEDAT_OUT_OF_ORDER` warning when a change's `recordedAt` values disagree with its `order` sequence |
427
+ | `change quality-recover [--json]` | Recover an interrupted atomic Quality refresh. A repeated full-set Quality after a newer complete corrective batch retains earlier checkpoints in schema-version-2 `qualityHistory`; incomplete/current or unnecessary refreshes fail with stable `CHANGE_QUALITY_REFRESH_*` errors. |
423
428
  | `config lint` | Report configured commands whose `args` reference repository-relative paths that do not exist |
424
429
  | `config scaffold` | Propose native test-command entries for detected Go/Rust/Maven/Python/Node toolchains without writing `.musubix/config.json` |
425
430
  | `gate [--changed] [--feature <name>]` | Fresh full checks plus actual configured commands; persist evidence. `--feature` scopes requirements/design/trace/tdd/change-history/change-completeness checks to one feature as a diagnostic view; never a substitute for the repository-wide gate |
426
431
  | `status` | Artifact counts and readiness/staleness summary |
427
432
 
433
+ ### Evidence writer coordination
434
+
435
+ Commands that mutate evidence or generated project state use one fail-fast lock
436
+ at `<realpath(project-root)>/.musubix/evidence/.writer-lock.json`. This includes
437
+ init/upgrade writes, gate and evidence refresh, TDD/change/workflow/approval
438
+ recording, trace/graph/knowledge/formal generation, and evidence merge/recovery.
439
+ Complete owner metadata is staged, flushed, and published with a same-directory
440
+ exclusive hard link, so the canonical lock is never visible as empty or partial.
441
+ Filesystems that cannot provide this atomic publication fail with
442
+ `EVIDENCE_WRITER_LOCK_ACQUIRE_FAILED`; there is no non-atomic fallback.
443
+ When Windows directory synchronization rejects EPERM, EINVAL, or ENOTSUP after
444
+ successful staging-file synchronization and atomic publication or verified
445
+ release, musubix3 treats only that directory-entry durability operation as an
446
+ unsupported capability. File synchronization, publication, metadata, unlink,
447
+ open/close, every other error, and every non-Windows platform remain
448
+ fail-closed.
449
+
450
+ Coordinated readers such as status, approval preparation/validation, trace and
451
+ graph inspection, knowledge queries, TDD validation, attestation payload/verify,
452
+ and merge dry-run fail immediately with `EVIDENCE_WRITER_LOCKED` when an
453
+ unrelated owner exists. They do not wait or hold a read lease. Nested analysis
454
+ operations in one owner async context reuse the lock; child processes and worker
455
+ threads do not inherit that context. A configured command that recursively runs
456
+ a musubix3 writer or coordinated reader against the same root therefore fails
457
+ fast and must be removed from that command chain. Programs that write project
458
+ files directly outside musubix3 are not coordinated.
459
+
460
+ An abrupt exit can leave the lock. Run `evidence unlock --recover`; automatic
461
+ recovery is currently Linux-only and requires matching hostname, boot identity,
462
+ PID namespace, and a demonstrably absent owner PID. Live, PID-reused,
463
+ cross-host, malformed, changed, unsupported, or indeterminate locks are left
464
+ untouched with the exact path and inspection guidance. There is no force mode.
465
+ Because the required identity probes are unavailable, automatic recovery remains inspection-only on Windows and macOS.
466
+ The canonical lock and `.writer-lock.<transactionId>.json` staging files are
467
+ ignored and excluded from generated inputs. After confirming no related process
468
+ is active, an abandoned staging file may be removed by its exact path.
469
+
470
+ Writer-lock checks precede merge-journal checks. When both an abandoned writer
471
+ lock and pending merge journal exist, run `evidence unlock --recover` first and
472
+ `evidence merge --recover` second. Unlock recovery never reads or modifies the
473
+ merge journal.
474
+
475
+ ### Evidence-history merge
476
+
477
+ `evidence merge` requires both roots to have individually valid `order.json`,
478
+ `tdd.json`, and `changes.json`; `change-waivers.json` is optional. The incoming
479
+ real path must be disjoint from the current root, remains read-only, and the
480
+ current worktree must already contain each newly introduced incoming change
481
+ document. Duplicate comparison canonicalizes JSON after removing only rebuilt
482
+ sequence/order/hash-link fields. The result keeps base history first and then
483
+ incoming relative order, so wall-clock `recordedAt` warnings can remain even
484
+ when logical order is valid. If base Quality precedes an incoming Red or
485
+ Implementation batch, merge the histories before recording Quality and record
486
+ Quality again against the merged history.
487
+
488
+ Use `--dry-run` for the same conflict, candidate, stale-waiver, and supersession
489
+ analysis without writes. A successful merge can make waiver snapshots stale
490
+ and inactive or select a later authoritative waiver; explicitly re-approve
491
+ those waivers and rerun normal `gate` and `status`. Only `order.json`,
492
+ `tdd.json`, `changes.json`, and `change-waivers.json` are merged. Workflow,
493
+ approval, quality, formal, mutation, correspondence, performance, attestation,
494
+ and native test-report evidence must use their existing regeneration or
495
+ conflict-resolution workflows. `EVIDENCE_MERGE_CANDIDATE_INVALID` reports each
496
+ underlying file/entity diagnostic. Use `--recover` after interruption; for
497
+ `EVIDENCE_MERGE_RECOVERY_UNSAFE`, back up `.musubix/evidence`, restore or verify
498
+ all four targets from a trusted source, quarantine merge-owned journal and
499
+ temporary files, and rerun structural validation.
500
+
428
501
  `--changed` reads staged, unstaged, untracked and renamed/deleted paths from Git.
429
502
  It reports affected files but **conservatively recomputes all deterministic checks
430
503
  and executes all configured commands**. This avoids unsafe incremental skips.
@@ -648,12 +721,39 @@ SHA-256. Run `approval prepare` before review and pass that exact hash to
648
721
  `approval record`; an intervening change is rejected and later changes become
649
722
  stale. Release recording recomputes the gate and requires every required
650
723
  non-approval check to pass rather than trusting cached quality evidence.
724
+ `approval prepare <stage> --diff-only` additionally reports `changedFiles`:
725
+ only the artifact paths whose content differs from that stage's last
726
+ *recorded* approval (not a live `git diff`), computed from the same
727
+ deterministic manifest used for `artifactSha256` — the full hash and
728
+ `artifacts` map are always still returned unchanged, so integrity verification
729
+ is never weakened. `diffOnlyBaseline` is `"approved"` when compared against a
730
+ prior recorded approval, or `"none"` (with every current path listed) when
731
+ this stage has never been approved before. With `--domain`, the comparison is
732
+ scoped to that domain's prior approval, matching normal domain-scoped approval
733
+ semantics. If the last recorded approval file for that stage exists but fails
734
+ schema validation, `approval prepare --diff-only` fails fast with the same
735
+ `Invalid <stage> approval evidence.` error `approval validate` reports,
736
+ rather than silently treating corrupted evidence as "no prior approval".
737
+ Without `--diff-only`, non-JSON output is unchanged; with `--diff-only` and no
738
+ `--json`, the console summary prints only the changed paths and a short
739
+ baseline note instead of the full artifact listing.
651
740
  The approver string is explicit local evidence, not authenticated identity;
652
741
  repositories that require independent identity must also use protected review,
653
742
  CODEOWNERS, or CI/OIDC controls.
654
743
  Local approval evidence records explicit intent but does not cryptographically
655
744
  authenticate the approver; protect release authorization with repository review,
656
745
  CODEOWNERS/branch protection, or CI/OIDC attestation.
746
+ `approval prepare release`'s manifest excludes a fixed, source-hardcoded
747
+ scratch-file convention from its untracked candidates: any untracked path at
748
+ or beneath `.musubix/scratch/`, and any untracked file whose basename matches
749
+ `*.scratch.<ext>` (for example `debug.scratch.json`). Write ad hoc
750
+ inspection/debug output using this convention so it never changes the
751
+ release-manifest hash on repeated inspection. This exclusion is a fixed,
752
+ version-controlled list, not a configurable setting: it applies only to
753
+ untracked candidates (a tracked file named this way is still included), and
754
+ only as a final filter on the manifest's output, never before the structural
755
+ nested-workspace/generated-directory exclusion scan, so it cannot be widened
756
+ to quietly hide a real tracked change.
657
757
  Use `tdd.redPreflightCommands` to reference plain configured formatter commands;
658
758
  they must pass before Red captures the authoritative test fingerprint.
659
759
  Conventional `.venv` and `venv` Python environments containing a regular
@@ -837,11 +937,14 @@ Incomplete, failed, reused, out-of-order and stale bindings fail.
837
937
  Set `"workflow":{"mode":"strict"}` or pass `--strict` to additionally require
838
938
  valid JSON on every nonempty line, valid event timestamps, consistent one-to-one
839
939
  tool start/completion lifecycles, and exactly one successful final terminal
840
- event. Supported terminal formats are `result` with `exitCode: 0`, or the current
940
+ state. Supported terminal formats are `result` with `exitCode: 0`, or the current
841
941
  Copilot CLI lifecycle format with one session UUID and a final
842
- `session.shutdown` whose `data.shutdownType` is `routine`. Mixed terminal
843
- formats, multiple session identities, abnormal shutdowns, and trailing events
844
- fail closed. Compatible mode alone accepts more than one transcript path;
942
+ `session.shutdown` whose `data.shutdownType` is `routine`. The shutdown format
943
+ also accepts one or more intermediate routine shutdowns when each is immediately
944
+ followed by `session.resume`; `workflow-sanitize` retains those lifecycle
945
+ boundaries. Mixed terminal formats, unmatched shutdown/resume transitions,
946
+ multiple session identities, abnormal shutdowns, and trailing events fail
947
+ closed. Compatible mode alone accepts more than one transcript path;
845
948
  supplied files are concatenated in ascending order of each file's earliest
846
949
  event timestamp (not command-line order), while each file's own internal
847
950
  event order is preserved untouched — this lets declarations whose invocation
@@ -1066,6 +1169,14 @@ transcript/session fields into the Ed25519 signature.
1066
1169
  - Core CI covers Node 22 on Linux, Windows, and macOS, with additional Node 20
1067
1170
  and Node 24 Linux compatibility checks. Native adapters and formal solvers run
1068
1171
  once on Linux with pinned toolchains.
1172
+ - **GitHub-hosted runner policy:** the portability matrix intentionally uses
1173
+ `ubuntu-latest`, `windows-latest`, and `macos-latest`; every other CI job and
1174
+ the Release and npm publication workflows use `ubuntu-latest`. These are
1175
+ floating GitHub-hosted labels, not pinned images. When the selected hosted
1176
+ runner image changes, revalidate toolchain installation, typecheck, build,
1177
+ tests, package checks, release preparation, provenance, and publication
1178
+ controls. The actions' Node.js 24 implementation runtime is independent of
1179
+ the Node.js 20/22/24 versions tested for this package.
1069
1180
  No formatting/lint framework is bundled; strict TypeScript and tests are used.
1070
1181
 
1071
1182
  ## Development and release checks
@@ -1080,6 +1191,49 @@ npm run pack:check
1080
1191
  npm run pack:smoke
1081
1192
  ```
1082
1193
 
1194
+ ### Dependency audit policy
1195
+
1196
+ When installation or release preparation reports a dependency advisory, run
1197
+ root-workspace `npm run audit:report` (`npm audit --json`) with all severities and development
1198
+ dependencies included. Record the advisory ID, every dependency path,
1199
+ production/build/test reachability, maintained fix availability, remediation
1200
+ decision, and residual risk or monitoring obligation. Development-only or
1201
+ currently unreachable code lowers exposure but is not remediation when a
1202
+ maintained fix is available. A recorded clean result is time-bound and must not
1203
+ be treated as proof that future audits remain clean.
1204
+ `.github/workflows/dependency-audit.yml` repeats the full report weekly and on
1205
+ manual dispatch; review and remediate any failing run before release.
1206
+
1207
+ The reviewed dependency exception is exactly `{"js-yaml":"^5.4.3"}` in root
1208
+ `overrides` (CHANGE-0052). The offline remediation checker rejects different or
1209
+ additional overrides and reintroduced `sprintf-js`; retained audit evidence
1210
+ must match the current lockfile bytes. This is not general permission to override
1211
+ Vitest packages or to accept development-only vulnerabilities.
1212
+
1213
+ Synchronize every mechanically managed release-version surface before building:
1214
+
1215
+ ```sh
1216
+ npm run --silent release:version -- 1.2.3
1217
+ npm run --silent release:version -- --check 1.2.3
1218
+ # Equivalent direct entrypoints:
1219
+ node scripts/release-version.mjs 1.2.3
1220
+ node scripts/release-version.mjs --check 1.2.3
1221
+ ```
1222
+
1223
+ Use `--silent` with the npm entrypoint so stdout contains only its JSON report.
1224
+ Supply a bare SemVer version, without the tag's `v` prefix or build metadata.
1225
+ The release order is version synchronization, authored `CHANGELOG.md` review,
1226
+ `npm run build`, package validation, explicit release approval, commit, and the
1227
+ matching `v<version>` tag before preparation.
1228
+ The enforced release order is final release metadata and `CHANGELOG.md`,
1229
+ validation and build, explicit release approval, commit and create the unchanged `v<version>` tag,
1230
+ then `release:prepare`. Any committed release-input change
1231
+ after approval requires renewed validation and release approval before a new tag
1232
+ is prepared. `release:prepare` validates every synchronized surface, the tag
1233
+ commit, and the approved tagged manifest before changing its output directory.
1234
+ For a manual Release workflow dispatch, select the target tag in the workflow
1235
+ ref selector and enter that identical tag as `release_tag`.
1236
+
1083
1237
  Workspaces: `packages/domain` (pure validators), `packages/analysis` (evidence,
1084
1238
  compiler and filesystem services), `packages/cli` (thin command/installation layer).
1085
1239
  One build emits `dist/packages/**`. Published contents explicitly include hidden
@@ -1104,6 +1258,29 @@ For manual dispatch, select the release tag as the workflow ref and provide the
1104
1258
  same value as `release_tag`; the workflow rejects tags that do not point to the
1105
1259
  OIDC-bound `GITHUB_SHA`.
1106
1260
 
1261
+ npm publishing accepts stable `vMAJOR.MINOR.PATCH` tags only. Both protected
1262
+ GitHub Actions publish paths check out that tag, download its non-draft GitHub
1263
+ Release into a new empty directory, and use the shared validator before npm
1264
+ provenance publishing. The validator rejects historical or additional assets,
1265
+ verifies the exact SHA256SUMS syntax and embedded `musubix3` package version,
1266
+ and requires every local file digest to match the current uploaded GitHub
1267
+ Release asset digest. Direct `release:prepare` output is not publishable because
1268
+ the strict CI attestation is added later.
1269
+
1270
+ Local operators can verify, but cannot provenance-publish, the same release:
1271
+
1272
+ ```bash
1273
+ gh auth status
1274
+ mkdir release-assets-verify
1275
+ gh release download v1.2.3 --repo nahisaho/musubix3 --dir release-assets-verify
1276
+ npm run --silent release:publish -- --verify-only --tag v1.2.3 \
1277
+ --repository nahisaho/musubix3 --directory release-assets-verify
1278
+ ```
1279
+
1280
+ Use a GitHub CLI version whose release asset output includes `digest` and
1281
+ `state`. Provenance-enabled publishing remains restricted to the protected
1282
+ `npm-publish` GitHub Actions environment.
1283
+
1107
1284
  The release attestation uses a real GitHub Actions OIDC token whose custom
1108
1285
  audience binds an ephemeral Ed25519 public key. Its signature covers repository,
1109
1286
  Git commit, run ID, workflow/ref identity, current workspace snapshot, and any
@@ -8,6 +8,6 @@ export interface AdapterInvocation {
8
8
  }
9
9
  export declare function mergeAdapterArgs(adapter: TestAdapter, configuredArgs: string[], invocationArgs: string[]): string[];
10
10
  export declare function adapterInvocation(adapter: TestAdapter, commandName: string, testId?: string, testPath?: string): AdapterInvocation;
11
- export declare function clearAdapterOutput(invocation: AdapterInvocation, absolutePath: string): Promise<void>;
12
- export declare function readAdapterOutput(invocation: AdapterInvocation, absolutePath: string, stdout: string): Promise<string | null>;
11
+ export declare function clearAdapterOutput(invocation: AdapterInvocation, absolutePath: string, root?: string): Promise<void>;
12
+ export declare function readAdapterOutput(invocation: AdapterInvocation, absolutePath: string, stdout: string, root?: string): Promise<string | null>;
13
13
  export declare function normalizeAdapterReport(adapter: TestAdapter, text: string, targetTestId?: string): MusubixTestReport;
@@ -1,6 +1,8 @@
1
- import { dirname, posix } from 'node:path';
1
+ import { dirname, posix, sep } from 'node:path';
2
2
  import { mkdir, readdir, readFile, rm, unlink, writeFile } from 'node:fs/promises';
3
3
  import { exists } from './files.js';
4
+ import { assertAbsoluteEvidencePathReady } from './evidence-merge-guard.js';
5
+ import { assertCoordinatedEvidenceRead, assertEvidenceWriterOwned, withEvidenceWriterLock, } from './evidence-writer-lock.js';
4
6
  const goValueFlags = new Set([
5
7
  '-C', '-asmflags', '-bench', '-benchtime', '-blockprofile', '-blockprofilerate',
6
8
  '-buildmode', '-compiler',
@@ -151,7 +153,13 @@ export function adapterInvocation(adapter, commandName, testId, testPath) {
151
153
  source: 'directory',
152
154
  };
153
155
  }
154
- export async function clearAdapterOutput(invocation, absolutePath) {
156
+ function adapterProjectRoot(absolutePath) {
157
+ const marker = `${sep}.musubix${sep}`;
158
+ const index = absolutePath.lastIndexOf(marker);
159
+ return index < 0 ? undefined : absolutePath.slice(0, index);
160
+ }
161
+ async function clearAdapterOutputUnlocked(invocation, absolutePath) {
162
+ await assertAbsoluteEvidencePathReady(absolutePath);
155
163
  if (await exists(absolutePath)) {
156
164
  if (invocation.source === 'directory')
157
165
  await rm(absolutePath, { recursive: true });
@@ -160,7 +168,17 @@ export async function clearAdapterOutput(invocation, absolutePath) {
160
168
  }
161
169
  await mkdir(invocation.source === 'directory' ? absolutePath : dirname(absolutePath), { recursive: true });
162
170
  }
163
- export async function readAdapterOutput(invocation, absolutePath, stdout) {
171
+ export async function clearAdapterOutput(invocation, absolutePath, root) {
172
+ const projectRoot = root ?? adapterProjectRoot(absolutePath);
173
+ if (projectRoot === undefined)
174
+ return clearAdapterOutputUnlocked(invocation, absolutePath);
175
+ return withEvidenceWriterLock(projectRoot, 'adapter output clear', async () => {
176
+ await assertEvidenceWriterOwned(projectRoot);
177
+ await clearAdapterOutputUnlocked(invocation, absolutePath);
178
+ });
179
+ }
180
+ async function readAdapterOutputUnlocked(invocation, absolutePath, stdout) {
181
+ await assertAbsoluteEvidencePathReady(absolutePath);
164
182
  if (invocation.source === 'stdout') {
165
183
  if (stdout) {
166
184
  await mkdir(dirname(absolutePath), { recursive: true });
@@ -189,6 +207,18 @@ export async function readAdapterOutput(invocation, absolutePath, stdout) {
189
207
  return null;
190
208
  return (await Promise.all(entries.map((entry) => readFile(entry, 'utf8')))).join('\n');
191
209
  }
210
+ export async function readAdapterOutput(invocation, absolutePath, stdout, root) {
211
+ const projectRoot = root ?? adapterProjectRoot(absolutePath);
212
+ if (projectRoot !== undefined && invocation.source === 'stdout' && stdout) {
213
+ return withEvidenceWriterLock(projectRoot, 'adapter output capture', async () => {
214
+ await assertEvidenceWriterOwned(projectRoot);
215
+ return readAdapterOutputUnlocked(invocation, absolutePath, stdout);
216
+ });
217
+ }
218
+ if (projectRoot !== undefined)
219
+ await assertCoordinatedEvidenceRead(projectRoot);
220
+ return readAdapterOutputUnlocked(invocation, absolutePath, stdout);
221
+ }
192
222
  /* @id CODE-ADAPTER-PATTERN-RECOGNITION-001
193
223
  * @implements REQ-ADAPTER-PATTERN-RECOGNITION-001
194
224
  * @design DES-ADAPTER-PATTERN-RECOGNITION-001
@@ -1 +1 @@
1
- {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../../packages/analysis/src/adapters.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { approvalManifest, approvalPath, domainsConfigured, requireApproval, requireDomainOption, resolveDomains, validateStageArtifacts, } from './approval.js';
2
2
  import { writeJson } from './files.js';
3
3
  import { runGate } from './gate.js';
4
+ import { withEvidenceWriterLock } from './evidence-writer-lock.js';
4
5
  /** @id CODE-HUMAN-APPROVAL-GATES-002
5
6
  * @implements REQ-HUMAN-APPROVAL-GATES-001 REQ-HUMAN-APPROVAL-GATES-006
6
7
  * @design DES-APPROVAL-002 DES-APPROVAL-003
@@ -11,6 +12,9 @@ import { runGate } from './gate.js';
11
12
  * @design DES-APPROVAL-DOMAIN-SCOPING-004
12
13
  */
13
14
  export async function recordApproval(root, stage, approver, expectedArtifactSha256, config, domainName) {
15
+ return withEvidenceWriterLock(root, 'approval record', () => recordApprovalUnlocked(root, stage, approver, expectedArtifactSha256, config, domainName));
16
+ }
17
+ async function recordApprovalUnlocked(root, stage, approver, expectedArtifactSha256, config, domainName) {
14
18
  const normalizedApprover = approver.trim();
15
19
  if (!normalizedApprover || normalizedApprover.includes('\0')) {
16
20
  throw new Error('Approver must be a nonempty name without NUL bytes.');
@@ -1 +1 @@
1
- {"version":3,"file":"approval-record.js","sourceRoot":"","sources":["../../../../packages/analysis/src/approval-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approval-record.js","sourceRoot":"","sources":["../../../../packages/analysis/src/approval-record.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type Diagnostic } from '../../domain/src/index.js';
2
2
  import type { ApprovalConfig } from './config.js';
3
+ import { type Runner } from './process.js';
3
4
  import { type ResolvedDomain } from './approval-domains.js';
4
5
  export { domainsConfigured, domainOwning, featureOwningDesignFile, featureOwningRequirement, resolveDomains, type ResolvedDomain, } from './approval-domains.js';
5
6
  export declare const approvalStages: readonly ["requirements", "design", "release"];
@@ -42,7 +43,33 @@ export interface ApprovalValidation {
42
43
  release?: ApprovalStageValidation;
43
44
  diagnostics: Diagnostic[];
44
45
  }
46
+ export interface ReleaseApprovalDrift {
47
+ path: string;
48
+ change: 'added' | 'modified' | 'deleted';
49
+ approvedSha256: string | null;
50
+ currentSha256: string | null;
51
+ }
52
+ export interface ReleaseApprovalReport {
53
+ valid: boolean;
54
+ stage: 'release';
55
+ status: 'approved' | 'missing' | 'stale';
56
+ diagnostics: ReleaseApprovalDrift[];
57
+ }
58
+ export declare class ReleaseApprovalPreconditionError extends Error {
59
+ readonly code: string;
60
+ constructor(code: string, message: string);
61
+ }
62
+ export declare class ReleaseApprovalSchemaError extends Error {
63
+ readonly code = "RELEASE_APPROVAL_SCHEMA";
64
+ constructor(message: string);
65
+ }
45
66
  export declare function approvalPath(stage: ApprovalStage, domain?: string): string;
67
+ /** @id CODE-RELEASE-APPROVAL-ORDERING-001
68
+ * @implements REQ-RELEASE-APPROVAL-ORDERING-001 REQ-RELEASE-APPROVAL-ORDERING-002 REQ-RELEASE-APPROVAL-ORDERING-003
69
+ * @design DES-RELEASE-APPROVAL-ORDERING-001
70
+ */
71
+ export declare function releaseCandidatePaths(root: string, runner?: Runner): Promise<string[]>;
72
+ export declare function releaseTaggedPaths(root: string, tag: string, runner?: Runner): Promise<string[]>;
46
73
  /** @id CODE-HUMAN-APPROVAL-GATES-001
47
74
  * @implements REQ-HUMAN-APPROVAL-GATES-001 REQ-HUMAN-APPROVAL-GATES-002 REQ-HUMAN-APPROVAL-GATES-003
48
75
  * @implements REQ-HUMAN-APPROVAL-GATES-004 REQ-HUMAN-APPROVAL-GATES-005 REQ-HUMAN-APPROVAL-GATES-006
@@ -56,6 +83,30 @@ export declare function approvalPath(stage: ApprovalStage, domain?: string): str
56
83
  */
57
84
  export declare function approvalManifest(root: string, stage: ApprovalStage, domain?: ResolvedDomain): Promise<ApprovalManifest>;
58
85
  export declare function loadApproval(root: string, stage: ApprovalStage, domain?: string): Promise<ApprovalEvidence | null>;
86
+ /** @id CODE-APPROVAL-PREPARE-DIFF-ONLY-001
87
+ * @implements REQ-APPROVAL-PREPARE-DIFF-ONLY-003
88
+ * @design DES-APPROVAL-PREPARE-DIFF-ONLY-001
89
+ */
90
+ export declare function artifactDrift(approved: Record<string, string>, current: Record<string, string>): ReleaseApprovalDrift[];
91
+ export type DiffOnlyBaseline = 'approved' | 'none';
92
+ export interface DiffOnlyResult {
93
+ changedFiles: string[];
94
+ diffOnlyBaseline: DiffOnlyBaseline;
95
+ }
96
+ /** @id CODE-APPROVAL-PREPARE-DIFF-ONLY-002
97
+ * @implements REQ-APPROVAL-PREPARE-DIFF-ONLY-002 REQ-APPROVAL-PREPARE-DIFF-ONLY-003
98
+ * @implements REQ-APPROVAL-PREPARE-DIFF-ONLY-004
99
+ * @design DES-APPROVAL-PREPARE-DIFF-ONLY-001
100
+ */
101
+ export declare function diffOnlyChangedFiles(manifest: Pick<ApprovalManifest, 'artifacts'>, previous: ApprovalEvidence | null): DiffOnlyResult;
102
+ /** @id CODE-RELEASE-APPROVAL-ORDERING-002
103
+ * @implements REQ-RELEASE-APPROVAL-ORDERING-001 REQ-RELEASE-APPROVAL-ORDERING-002 REQ-RELEASE-APPROVAL-ORDERING-003
104
+ * @design DES-RELEASE-APPROVAL-ORDERING-001
105
+ */
106
+ export declare function validateReleaseApprovalForTag(root: string, tag: string, config: ApprovalConfig, options?: {
107
+ runner?: Runner;
108
+ githubSha?: string;
109
+ }): Promise<ReleaseApprovalReport>;
59
110
  export declare function validateApprovalStage(root: string, stage: ApprovalStage, config: ApprovalConfig, domain?: ResolvedDomain): Promise<ApprovalStageValidation>;
60
111
  /** @id CODE-APPROVAL-DOMAIN-SCOPING-004
61
112
  * @implements REQ-APPROVAL-DOMAIN-SCOPING-008 REQ-APPROVAL-DOMAIN-SCOPING-021 REQ-APPROVAL-DOMAIN-SCOPING-022