musubix3 0.1.11 → 0.1.13

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 (35) hide show
  1. package/.github/plugin/marketplace.json +2 -2
  2. package/.github/skills/sdd-change/SKILL.md +1 -0
  3. package/.github/skills/sdd-issue-report/SKILL.md +45 -0
  4. package/CHANGELOG.md +88 -0
  5. package/README-ja.md +73 -2
  6. package/README.md +121 -5
  7. package/dist/packages/analysis/src/adapters.js +25 -2
  8. package/dist/packages/analysis/src/adapters.js.map +1 -1
  9. package/dist/packages/analysis/src/change.d.ts +16 -0
  10. package/dist/packages/analysis/src/change.js +200 -52
  11. package/dist/packages/analysis/src/change.js.map +1 -1
  12. package/dist/packages/analysis/src/config.d.ts +7 -2
  13. package/dist/packages/analysis/src/config.js +50 -5
  14. package/dist/packages/analysis/src/config.js.map +1 -1
  15. package/dist/packages/analysis/src/files.d.ts +1 -0
  16. package/dist/packages/analysis/src/files.js +1 -1
  17. package/dist/packages/analysis/src/files.js.map +1 -1
  18. package/dist/packages/analysis/src/gate.js +2 -2
  19. package/dist/packages/analysis/src/gate.js.map +1 -1
  20. package/dist/packages/analysis/src/model-correspondence.js +4 -1
  21. package/dist/packages/analysis/src/model-correspondence.js.map +1 -1
  22. package/dist/packages/analysis/src/tdd.js +50 -14
  23. package/dist/packages/analysis/src/tdd.js.map +1 -1
  24. package/dist/packages/cli/src/install.d.ts +1 -1
  25. package/dist/packages/cli/src/install.js +1 -1
  26. package/dist/packages/cli/src/install.js.map +1 -1
  27. package/dist/packages/cli/src/main.js +9 -3
  28. package/dist/packages/cli/src/main.js.map +1 -1
  29. package/dist/packages/domain/src/design.js +17 -3
  30. package/dist/packages/domain/src/design.js.map +1 -1
  31. package/dist/packages/domain/src/requirements.d.ts +1 -0
  32. package/dist/packages/domain/src/requirements.js +32 -2
  33. package/dist/packages/domain/src/requirements.js.map +1 -1
  34. package/package.json +1 -1
  35. package/plugin.json +1 -1
@@ -3,13 +3,13 @@
3
3
  "owner": { "name": "nahisaho" },
4
4
  "metadata": {
5
5
  "description": "GitHub Copilot CLI specification-driven development skills",
6
- "version": "0.1.11"
6
+ "version": "0.1.13"
7
7
  },
8
8
  "plugins": [
9
9
  {
10
10
  "name": "musubix3",
11
11
  "source": ".",
12
- "version": "0.1.11",
12
+ "version": "0.1.13",
13
13
  "description": "Evidence-driven SDD without duplicating native Copilot capabilities."
14
14
  }
15
15
  ]
@@ -19,6 +19,7 @@ For strict evidence, bind an expected UUID; GitHub origin needs strict OIDC.
19
19
  Never record multiple declarations per invocation; use only the configured CLI.
20
20
  For broad work, use short stages: initialize, requirements, requirements approval, design, design approval, real Red, Green, integration, trace/formal, quality, release approval. Report each result before the next prompt.
21
21
  For a staged change, run `change-record <CHANGE-ID> <phase> --requirement <REQ-ID...>` after each phase in this exact order: `impact`, `requirements`, `design`, `red`, `implementation`, `green`, `quality`.
22
+ `impact`/`requirements`/`design`/`quality` always use the full requirement ID set; `red`/`implementation`/`green` may instead use a non-empty subset as an independent per-requirement batch for an interleaved Red-Implementation-Green loop; `quality` still needs full cumulative Green coverage.
22
23
  List only requirements whose statement/acceptance changes, classify each, and
23
24
  document other impacts separately. Each needs fresh Red and Green.
24
25
  The CHANGE document must contain `Requirements:` with exactly those normative IDs.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: sdd-issue-report
3
+ description: "Use when a defect, bug, or gap is found (during development, testing, or review) and must be registered as a GitHub Issue instead of fixed immediately. 不具合・バグ・ギャップを発見した際にGitHub Issueへ登録する場合に使用。"
4
+ ---
5
+ # Defect reporting / 不具合報告
6
+ Follow the user's input language. Use the `gh` CLI (per repository preference), never the GitHub MCP tools, for all issue operations.
7
+ Use native Copilot research/review only to gather reproduction evidence; do not add another issue-tracker client, bot, or agent runtime for this task.
8
+ This skill only registers an issue; it never implements a fix. If the user asks
9
+ to both report and fix now, register the issue first, then hand off to
10
+ `sdd-change` referencing that issue number.
11
+ ## 1. Confirm it is reportable, not immediately fixable / 報告対象かを確認
12
+ 1. Reproduce or clearly observe the defect (failing command output, wrong
13
+ diagnostic, unexpected file content, etc.); never file speculative reports
14
+ without concrete evidence (command, input, actual vs. expected output).
15
+ 2. Search first to avoid duplicates: `gh issue list --search "<keywords>" --state all`.
16
+ If a matching open issue exists, add a comment with the new reproduction
17
+ instead of creating a duplicate; if closed and it recurs, reopen with
18
+ `gh issue reopen <number>` and comment with the new evidence.
19
+ 3. If the defect is trivial and the user asked to fix it now (not just report
20
+ it), do not use this skill — use `sdd-change` directly instead.
21
+ ## 2. Write the report / 報告内容を作成
22
+ 1. Title: short, specific, symptom-first (e.g. "`config lint` flags Go's
23
+ `./...` wildcard as a missing path"). Avoid vague titles like "bug in CLI".
24
+ 2. Body must include, as separate sections:
25
+ - **Summary**: what is wrong, one or two sentences.
26
+ - **Reproduction**: exact command(s), input file/config content, and
27
+ environment (musubix3 version, adapter, OS) needed to reproduce.
28
+ - **Actual vs Expected**: observed output vs. what should happen.
29
+ - **Impact**: who/what this blocks (false positive, silent failure,
30
+ onboarding confusion, severity estimate).
31
+ - **Suggested fix** (optional): only if you have a concrete idea; do not
32
+ guess at internals you have not inspected.
33
+ 3. Never include secrets, credentials, or third-party confidential data in the
34
+ issue body, even when they appear in a reproduction log.
35
+ 4. Create with `gh issue create --title "<title>" --body "<body>"`; apply
36
+ labels only if the repository defines them (`gh label list`), never invent
37
+ new labels ad hoc without asking.
38
+ ## 3. Confirm and hand off / 確認と連携
39
+ 1. Print the created issue URL/number back to the user.
40
+ 2. If the user wants it fixed now or later, note that a future `sdd-change`
41
+ commit should use `Fixes #<number>` (one `Fixes` keyword per issue number
42
+ when closing several in one commit) so GitHub auto-closes it on merge to
43
+ the default branch.
44
+ 3. Do not mark the issue as fixed, closed, or resolved yourself unless the
45
+ user explicitly confirms a fix has already been merged.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,94 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.13 - 2026-09-11
6
+
7
+ Fixes for two issues (#15, #16) found while running a real large-scale IoT
8
+ trial project against musubix3@0.1.12.
9
+
10
+ - `tdd red` on a brand-new module referenced only by its test (#15):
11
+ `normalizeAdapterReport()` now appends any vitest/jest suite-level
12
+ collection-failure message (e.g. "Cannot find module ...") to the
13
+ "No annotated TEST-* identities were found" error, instead of giving no
14
+ hint about the underlying import/collection failure. Documented the
15
+ greenfield-module stub-then-correct workaround in the README.
16
+ - `model-correspondence validate` failing with `MODEL_CORRESPONDENCE_MISSING`
17
+ before `evidence refresh` has been run (#16): the diagnostic message now
18
+ explicitly instructs running `npx musubix3 evidence refresh` to generate
19
+ `.musubix/evidence/model-correspondence.json`, and
20
+ `model-correspondence validate --help` documents the same prerequisite.
21
+
22
+ Known open debt shipped with this release (unchanged since v0.1.9, see
23
+ closed Issue #1):
24
+ - `TDD_TEST_STALE` on `TEST-CLI-WORKFLOW-UX-001..005` (cosmetic fingerprint
25
+ drift; underlying tests still pass and are not stale in behavior).
26
+ - `CHANGE-0005`/`CHANGE-0006` change-record chronology gap.
27
+ - Stale `release` approval stage (expected until the next explicit release
28
+ approval is recorded).
29
+
30
+ ## 0.1.12 - 2026-09-10
31
+
32
+ Fixes for every issue found while running real multi-language, large-scale
33
+ trial projects against musubix3@0.1.11, all filed and fixed since that
34
+ release (GitHub Issues #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13,
35
+ #14).
36
+
37
+ - TDD superseded-cycle scoping (#11): a recorded Red-Green cycle superseded
38
+ by a later, fully valid cycle for the same test ID no longer raises
39
+ `TDD_RED_MISSING`/`TDD_GREEN_MISSING`/`TDD_LEGACY_OR_UNSCOPED_EVIDENCE`.
40
+ - Per-requirement change batches (#12): `change-record`'s red/implementation/
41
+ green phases can be recorded once per non-empty subset of a change's
42
+ requirement IDs, enabling an interleaved per-requirement TDD loop across a
43
+ multi-requirement change; recording the full requirement set at once
44
+ remains fully compatible with previously recorded evidence.
45
+ - Scope Green/Refactor cycle matching by requirement ID and validate before
46
+ order-log append (#14).
47
+ - More specific EARS/requirement-ID validation diagnostics: mixed clause
48
+ forms, missing subject, and other classification failures now name the
49
+ actual problem instead of a generic message; the `REQ_ID` diagnostic
50
+ states the expected `REQ-<FEATURE>-<digits>` pattern (#2, #3, #4).
51
+ - Fix adapter test-ID recognition for Go/Rust-style names with a digit run
52
+ followed by a descriptive suffix, and stop `config lint` from flagging a
53
+ `go test ./...` package wildcard as a missing repository-relative path
54
+ (#7, #9).
55
+ - Add an optional `cwd` field to a configured command in
56
+ `.musubix/config.json`, so `gate`/`tdd red`/`tdd green`/`tdd refactor`
57
+ run that command (including its Red preflight phase) from a
58
+ project-root-relative subdirectory instead of always the project root.
59
+ Supports polyglot monorepos with per-service toolchains. `config lint`
60
+ reports a new `CONFIG_CWD_INVALID` diagnostic for a `cwd` that escapes
61
+ the project root or does not exist, and scopes its `CONFIG_ORPHANED_PATH`
62
+ argument check to that command's own `cwd`. Evidence/report paths and
63
+ `.musubix/config.json` itself are unaffected and stay project-root
64
+ relative (#6).
65
+ - `design validate` accepts an explicit `ADRs: none — <reason>` marker
66
+ (case-insensitive, hyphen/en dash/em dash/colon separator) as satisfying
67
+ the ADR requirement for a component with no architecturally significant
68
+ decision, as long as the reason is concrete (not empty, not a
69
+ `TODO`/`TBD`/`N/A`/`未定` placeholder). A bare `none` or a placeholder
70
+ reason is now reported as `DES_ADR_EXEMPTION_REASON` instead of `DES_ADR`,
71
+ so authors are told to justify the exemption rather than to add an ADR.
72
+ An empty field, or a field with only unknown ADR references, still fails
73
+ exactly as before (#5).
74
+ - Document the recommended practice for a requirement that a correct,
75
+ general implementation already satisfies as a side effect of another
76
+ requirement: temporarily and locally narrow the shared implementation to
77
+ observe a genuine failing test, record `tdd red`, then restore the
78
+ implementation and record `tdd green`. No `--already-satisfied-by`-style
79
+ bypass was added: a human declaration that a requirement is "already
80
+ satisfied elsewhere" is not measured evidence (#13).
81
+ - Document the two independent requirements for `tdd`'s test-ID discovery
82
+ (a `@verifies`/`@id`-style doc-comment link from source to the
83
+ requirement, and a structured test-runner report identifying the test by
84
+ ID) next to the existing worked example, and add a per-adapter reference
85
+ table (vitest/jest/pytest/go-test/cargo/junit/dotnet) with the exact
86
+ declaration each adapter expects. Expand the `tdd` command's CLI help
87
+ text to summarize the same dual requirement (#8, #10).
88
+ - Add the `sdd-issue-report` skill for recording a discovered defect as a
89
+ GitHub Issue with reproduction evidence, and register it in the packaged
90
+ skill list (it was initially missing from `plugin-install`/`pack:check`,
91
+ so it did not install with the package until this release).
92
+
5
93
  ## 0.1.11 - 2026-09-10
6
94
 
7
95
  - `workflow-verify`/`verifyWorkflowLogFile` now accept one or more Copilot
package/README-ja.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **最新リリース v0.1.11 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
3
+ **最新リリース v0.1.13 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
4
4
 
5
5
  [English](README.md)
6
6
 
@@ -206,6 +206,35 @@ npx musubix3 approval validate --json
206
206
  npx musubix3 status --json
207
207
  ```
208
208
 
209
+ ### 別の要求の実装の副作用としてすでに満たされている要求
210
+
211
+ `tdd red` はすでに成功しているtestのRed記録を拒否します(`TDD_TARGET_RESULT`)。
212
+ これはバグではなく正しい挙動です。あるrequirementのために書いた正しく汎用的な
213
+ 実装が、別のまだ未実装のrequirementも副作用として満たしてしまうこと(例:
214
+ 汎用的なcapacity-aware割当algorithmが、別のrequirementが求める「利用可能な
215
+ resourceがない」edge caseも正しく処理してしまう場合)はありえます。この場合
216
+ のためにRedを迂回する`--already-satisfied-by`のような宣言はあえて提供して
217
+ いません。「他所ですでに満たされている」という人間の宣言は測定された根拠では
218
+ なく、それを受理してしまうと未実装または誤って実装されたrequirementが検証
219
+ されないままgateを通過しかねないためです。
220
+
221
+ 推奨する方法は、他のrequirementと同じように genuine なRedを証明することです。
222
+ すでに正しい共有実装を一時的に意図的に狭め、新しいrequirementのtestを
223
+ 実際に失敗させて`tdd red`を記録し、正しい実装を復元して`tdd green`を記録
224
+ します。
225
+
226
+ ```sh
227
+ # 共有実装はすでに正しい。TEST-EXAMPLE-002を実際に失敗させるために、
228
+ # 一時的に実装を狭める(例: 汎用algorithmがすでに包含している特殊ケースを
229
+ # 一時的に再度別処理として書き戻すなど)。
230
+ npx musubix3 tdd red TEST-EXAMPLE-002 --requirement REQ-EXAMPLE-002 --command test
231
+ # 正しい(すでに書かれている)実装に戻す。他のコード変更は行わない。
232
+ npx musubix3 tdd green TEST-EXAMPLE-002 --requirement REQ-EXAMPLE-002 --command test
233
+ ```
234
+
235
+ 狭める変更はその場限りに留め、Green記録と同じ手順内で必ず元に戻してください。
236
+ 弱めたコードをどの時点でもcommitしたままにしないでください。
237
+
209
238
  ## コマンド
210
239
 
211
240
  分析コマンドは `--root <dir>` と `--json` に対応します。ファイルは root 基準です。
@@ -341,6 +370,11 @@ feature: auth
341
370
 
342
371
  英語ラベルは `Responsibilities` / `Interfaces` / `Constraints` / `Requirements` /
343
372
  `ADRs` / `Depends-On`。ADR には背景・採用案・却下案・結果を記録します。
373
+ 本質的にADRに値する決定が存在しないcomponentは、実際のADR参照の代わりに
374
+ `ADRs: none — <具体的な理由>`(プレースホルダーでない理由)と書けます。
375
+ 理由のない`none`単体、空欄、プレースホルダー理由(`TODO`/`TBD`/`N/A`/`未定`)は
376
+ 引き続き検証エラーとなり、`none`マーカーがあり理由が使えない場合は
377
+ `DES_ADR_EXEMPTION_REASON`として報告されます。
344
378
  C4-like 図は明示した内容だけを描画し、完全な C4 モデルを推論しません。
345
379
 
346
380
  正本となるコード・テストに、エンティティごとに1つのコメントを追加します。
@@ -368,7 +402,19 @@ export function guard() { /* 実装 */ }
368
402
  // 実際の振る舞いテスト
369
403
  ```
370
404
 
371
- 複数参照は空白・カンマ区切り。`@design` は任意。実装網羅性は要求への直接リンク、
405
+ 複数参照は空白・カンマ区切り。`@design` は任意。
406
+ **このdoc commentとnative testレポートのID照合は、`tdd red`/`tdd green`成功のために
407
+ 両方満たす必要がある、独立した2つの要件です。**`@id TEST-*`/`@verifies REQ-*`
408
+ commentは、テストを`kind: 'test'`のtrace-graphノードとして発見可能にし、CLIが
409
+ 要求へのリンクを解決できるようにするだけです。それとは別に、設定したadapter
410
+ (または`tddReport`)が、実行済みのnative testレポート内で同じIDを照合できる
411
+ 必要があり、その照合方法はadapterごとに異なります(下記のadapter対応表を参照)。
412
+ doc commentはあるがレポートをadapterが照合できない場合はRed/Greenが失敗し
413
+ (レポートに認識可能な`TEST-*`エントリが無い)、レポートは照合できるがdoc comment
414
+ が無い場合はtrace graph参照の時点で`Annotated test ID not found: <id>`で失敗
415
+ します。症状は似ていますが原因は異なるため、まずdoc commentを確認し、次に
416
+ adapterの照合ルールを確認してください。
417
+ 実装網羅性は要求への直接リンク、
372
418
  または設計経由で判定し、テストは要求への直接リンクを必要とします。
373
419
  注釈はテストの正しさを証明しません。機能別 `trace.json` は機能横断の完全な
374
420
  スナップショット(nodes/edges/diagnostics/入力SHA-256)を保持します。
@@ -444,6 +490,16 @@ version: 1.0.0
444
490
 
445
491
  未知の設定キー、不正な閾値、重複コマンドはエラーです。
446
492
  glob は `*` / `**` / `?` に対応し、外部依存は `npm:` 接頭辞で表現します。
493
+ コマンドには任意の`cwd`(project root相対のディレクトリ)を指定でき、
494
+ project rootではなくサービス単位のサブディレクトリから実行できます。
495
+ polyglot monorepoで、各言語のtoolingが自分のpackage/moduleディレクトリから
496
+ 実行される前提の場合に有用です。`config lint`はproject rootを脱出する、
497
+ または実在しない`cwd`を`CONFIG_CWD_INVALID`として報告し、そのコマンドの
498
+ repository相対path引数(`CONFIG_ORPHANED_PATH`)はproject rootではなく
499
+ そのコマンド自身の`cwd`を基準にチェックします。
500
+ evidence/reportのpath(`tddReport`/`testReport`/`mutationReport`、
501
+ `.musubix/config.json`自体)は`cwd`に関わらず常にproject root基準のまま
502
+ 解決され、変わるのは起動するprocess自体の作業ディレクトリのみです。
447
503
  `qualityProfile`の既定値は`custom`です。`minimal`はSDDの基本gate、
448
504
  `recommended`はstrict Code Graph、TDD、構造化test identityも要求し、
449
505
  `release`はformal、mutation、workflow、変更、performance、CI attestationを
@@ -501,6 +557,21 @@ strict OIDC identity/key binding、必須コマンド名の最低条件です。
501
557
  実行testが0件、またはskipped・failed・error testを1件でも報告した場合は
502
558
  失敗します。integration suiteが依存service不在のまま暗黙に通ることを防ぎます。
503
559
 
560
+ **adapterごとのtest-ID宣言方式対応表**(各方式は独立しており、上記の
561
+ `@id`/`@verifies` doc commentとの関係は前述の「独立した2つの要件」を参照):
562
+
563
+ | Adapter | ID宣言方式 | 具体例 |
564
+ | --- | --- | --- |
565
+ | `vitest` / `jest` | test titleの任意の位置にIDを部分文字列として含める | `it('TEST-APP-001 rejects empty input', () => { ... })` |
566
+ | `pytest` | test関数名のunderscore形式にIDを含める | `def test_TEST_APP_001(): ...` |
567
+ | `go-test` | test/subtest名の末尾サフィックスとしてID | `func TestTEST_APP_001(t *testing.T) { ... }` |
568
+ | `cargo` | Rust識別子の末尾サフィックスとしてID | `fn test_app_001() { ... }` |
569
+ | `junit` | 正確な`@Tag("TEST-APP-001")` **に加えて** IDを含むmethod名または`@DisplayName` | `@Tag("TEST-APP-001") @Test void test() { ... }` |
570
+ | `dotnet`(xUnit) | `[Fact(DisplayName = "...")]`内にID | `[Fact(DisplayName = "TEST-APP-001 rejects empty input")]` |
571
+
572
+ `junit`だけが、IDを含むmethod名/`@DisplayName`に加えて**別途**tag annotationを
573
+ 要求する方式です。他のadapterはtest自身の名前/titleから直接IDを照合します。
574
+
504
575
  TDD用コマンドには明示的な`tddArgs`と`tddReport`、または組込みの
505
576
  `vitest`、`jest`、`pytest`、`go-test`、`cargo`、`junit`、`dotnet` adapterが必要です。
506
577
  明示設定を優先し、adapterは対象引数を導出してnative JSON/JSONL/XMLを正規化します。
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **Latest release v0.1.11 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
3
+ **Latest release v0.1.13 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
4
4
 
5
5
  [日本語](README-ja.md)
6
6
 
@@ -180,7 +180,11 @@ finalize requirements while blockers remain.
180
180
  4. Write an annotated behavior test, record a structured failing `tdd red`, then
181
181
  record the change `red` checkpoint.
182
182
  5. Implement the minimum change, record `implementation`, run passing `tdd green`,
183
- then record `green` and refactor.
183
+ then record `green` and refactor. For a change with multiple requirements,
184
+ `red`/`implementation`/`green` may instead be recorded once per requirement
185
+ subset (an independent batch per subset), completing each requirement's
186
+ Red-Implementation-Green loop before moving to the next, instead of
187
+ completing every requirement's Red before any Implementation.
184
188
  6. Add trace annotations, build graphs, inspect impact and fix missing coverage.
185
189
  7. Configure real checks and run the candidate `gate --changed`. After every
186
190
  required non-approval check passes, obtain explicit human `release` approval,
@@ -200,6 +204,11 @@ npx musubix3 tdd red TEST-EXAMPLE-001 --requirement REQ-EXAMPLE-001 --command te
200
204
  # Implement the minimum behavior without changing the test.
201
205
  npx musubix3 tdd green TEST-EXAMPLE-001 --requirement REQ-EXAMPLE-001 --command test
202
206
  npx musubix3 tdd refactor TEST-EXAMPLE-001 --requirement REQ-EXAMPLE-001 --command test
207
+ # A change declaring REQ-EXAMPLE-001 and REQ-EXAMPLE-002 may record red/implementation/green
208
+ # once per requirement subset instead of once for the whole change:
209
+ npx musubix3 change-record CHANGE-0001 red --requirement REQ-EXAMPLE-001
210
+ npx musubix3 change-record CHANGE-0001 implementation --requirement REQ-EXAMPLE-001
211
+ npx musubix3 change-record CHANGE-0001 green --requirement REQ-EXAMPLE-001
203
212
  npx musubix3 trace build
204
213
  npx musubix3 trace check --strict --json
205
214
  npx musubix3 graph index
@@ -212,6 +221,64 @@ npx musubix3 approval validate --json
212
221
  npx musubix3 status --json
213
222
  ```
214
223
 
224
+ ### A requirement already satisfied as a side effect
225
+
226
+ `tdd red` rejects recording a Red phase for a test that is already passing
227
+ (`TDD_TARGET_RESULT`). This is correct: it is not a bug when a correct,
228
+ general implementation written for one requirement also happens to satisfy a
229
+ separate, not-yet-implemented requirement (for example, a general
230
+ capacity-aware assignment algorithm that also correctly handles a "no
231
+ resource available" edge case required by a different requirement). There is
232
+ deliberately no `--already-satisfied-by`-style declaration to bypass Red for
233
+ this case: a human declaration that a requirement is "already satisfied
234
+ elsewhere" is not measured evidence, and accepting one would let an
235
+ unimplemented or incorrectly implemented requirement pass gate on an
236
+ unverified claim.
237
+
238
+ The recommended practice is to prove the Red genuinely, the same way as any
239
+ other requirement, by briefly and deliberately narrowing the scope of the
240
+ already-correct shared implementation so the new requirement's test fails,
241
+ recording `tdd red`, then restoring the correct implementation for `tdd
242
+ green`:
243
+
244
+ ```sh
245
+ # The shared implementation is already correct; temporarily narrow it
246
+ # (e.g. re-add the special case the general algorithm already subsumes)
247
+ # so TEST-EXAMPLE-002 genuinely fails.
248
+ npx musubix3 tdd red TEST-EXAMPLE-002 --requirement REQ-EXAMPLE-002 --command test
249
+ # Restore the correct (already-written) implementation; no other code changes.
250
+ npx musubix3 tdd green TEST-EXAMPLE-002 --requirement REQ-EXAMPLE-002 --command test
251
+ ```
252
+
253
+ Keep the narrowing edit local and revert it in the same step as recording
254
+ Green; do not leave the weakened code committed at any point.
255
+
256
+ ### A brand-new module for a from-scratch requirement
257
+
258
+ `tdd red` requires a *collected and executed* failing test, not merely a test
259
+ file that exists: if the test imports a source module that does not exist
260
+ yet, the runner fails at collection time (0 tests run) instead of failing an
261
+ assertion, and `tdd red` correctly reports this as an invalid Red
262
+ (`TDD_REPORT_INVALID`). For a vitest/jest adapter, the thrown error now
263
+ appends the underlying suite collection-failure message (for example
264
+ `Cannot find module '../src/service.js'`) after `No annotated TEST-*
265
+ identities were found`, to make this cause visible immediately instead of
266
+ requiring a separate investigation.
267
+
268
+ The recommended practice for a genuinely new module is the same
269
+ stub-then-correct technique as above: create a compiling implementation file
270
+ with a deliberately wrong body first, so the runner can collect and execute
271
+ the test (and it fails on the wrong behavior, not on a missing import), then
272
+ implement the correct behavior for Green:
273
+
274
+ ```sh
275
+ # src/service.ts does not exist yet; create it with an intentionally wrong body
276
+ # so the test can be collected and genuinely fails on assertion, not on import.
277
+ npx musubix3 tdd red TEST-EXAMPLE-003 --requirement REQ-EXAMPLE-003 --command test
278
+ # Replace the stub body with the correct implementation.
279
+ npx musubix3 tdd green TEST-EXAMPLE-003 --requirement REQ-EXAMPLE-003 --command test
280
+ ```
281
+
215
282
  ## Command reference
216
283
 
217
284
  All analysis commands accept `--root <directory>` and `--json`. Files resolve
@@ -244,7 +311,7 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
244
311
  | `formal doctor` | Probe Z3, Lean, and `lake env lean` availability and versions |
245
312
  | `mutation doctor` | Probe language-aware local mutation engines and show setup recommendations |
246
313
  | `formal check <file> [--solver auto\|none\|z3\|lean]` | Check the explicit Boolean/conditional/numeric/temporal/transition model |
247
- | `model-correspondence validate` | Revalidate Formal JSON → generated trace → authoritative passing test evidence |
314
+ | `model-correspondence validate` | Revalidate Formal JSON → generated trace → authoritative passing test evidence (run `evidence refresh` first to generate its evidence file) |
248
315
  | `evidence refresh [--changed]` | Regenerate derived evidence through the same fail-closed gate pipeline |
249
316
  | `mutation validate` | Revalidate requirement-scoped schema-v1 killed-mutant evidence |
250
317
  | `mutation identity <REQ-ID> <TEST-ID> <sourcePath> <operator> <line> <column>` | Print the deterministic `MUT-*` identity a mutation report must declare |
@@ -256,7 +323,7 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
256
323
  | `attestation oidc-audience --key-id <id> [--public-key-file <pem>]` | Derive the GitHub custom audience that authorizes a signing key |
257
324
  | `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 |
258
325
  | `attestation verify` | Verify static-key or GitHub OIDC-authorized Ed25519 provenance |
259
- | `change-record <CHANGE-ID> <phase> --requirement <REQ-ID...>` | Record ordered artifact/TDD fingerprints for a staged change |
326
+ | `change-record <CHANGE-ID> <phase> --requirement <REQ-ID...>` | 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 |
260
327
  | `config lint` | Report configured commands whose `args` reference repository-relative paths that do not exist |
261
328
  | `config scaffold` | Propose native test-command entries for detected Go/Rust/Maven/Python/Node toolchains without writing `.musubix/config.json` |
262
329
  | `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 |
@@ -321,7 +388,12 @@ Depends-On: DES-AUTH-002
321
388
  ```
322
389
 
323
390
  Put these entries in their respective `requirements.md` / `design.md`; declare
324
- every dependency as another component. Each requirement has one controlled
391
+ every dependency as another component. A component that genuinely has no
392
+ architecturally significant decision may write `ADRs: none — <reason>` (a
393
+ concrete, non-placeholder reason) instead of a real ADR reference; a bare
394
+ `none`, an empty field, or a placeholder reason (`TODO`/`TBD`/`N/A`/`未定`)
395
+ still fails validation, now with `DES_ADR_EXEMPTION_REASON` when a "none"
396
+ marker is present without a usable reason. Each requirement has one controlled
325
397
  statement. Accepted priorities are `must` (default), `should`, `may`.
326
398
  Requirement types are `functional` (default) and `non-functional`.
327
399
  `Formal:` is optional strict single-line JSON. Supported kinds are `conditional`,
@@ -364,6 +436,19 @@ export function guard() { /* actual implementation */ }
364
436
  ```
365
437
 
366
438
  One block comment per entity; comma/space-separated targets. `@design` is optional.
439
+ **This doc comment and native test-report ID matching are two independent
440
+ requirements that must both be satisfied for `tdd red`/`tdd green` to succeed.**
441
+ The `@id TEST-*`/`@verifies REQ-*` comment only makes the test discoverable as a
442
+ `kind: 'test'` trace-graph node, so the CLI can resolve its requirement link.
443
+ Separately, the configured adapter (or `tddReport`) must match that same ID
444
+ inside the *executed* native test report, using its own adapter-specific
445
+ mechanism — see the adapter reference table below. A test with only the doc
446
+ comment but a report the adapter cannot match to that ID fails Red/Green
447
+ (the report never contains a recognized `TEST-*` entry); a test whose report
448
+ matches but lacks the doc comment fails earlier with `Annotated test ID not
449
+ found: <id>` (not present in the trace graph). Both failure modes look similar
450
+ but have different causes — check the doc comment first, then the adapter's
451
+ matching rule below.
367
452
  In PHP, use plain `/* ... */` blocks rather than `/** ... */` PHPDoc: PHPDoc reserves
368
453
  `@implements` for generic type declarations, so PHPStan/Psalm report `phpDoc.parseError`
369
454
  on requirement-ID lists inside doc comments. musubix3 reads either form.
@@ -444,6 +529,16 @@ Example `.musubix/config.json` (adapt command arguments to your own project):
444
529
 
445
530
  Config is validated strictly; misspelled keys, invalid bounds and duplicate
446
531
  commands fail closed. Globs support `*`, `**`, `?`; external imports use `npm:`.
532
+ A command may declare an optional `cwd` (a project-root-relative directory)
533
+ so it runs from a service subdirectory instead of the project root — useful
534
+ for a polyglot monorepo where a language's tooling expects to run from its
535
+ own package/module directory. `config lint` reports `CONFIG_CWD_INVALID` for
536
+ a `cwd` that escapes the project root or does not exist, and checks that
537
+ command's repository-relative path arguments (`CONFIG_ORPHANED_PATH`)
538
+ against its own `cwd` instead of the project root. Evidence and report paths
539
+ (`tddReport`/`testReport`/`mutationReport`, `.musubix/config.json` itself)
540
+ are always resolved from the project root regardless of `cwd`; only the
541
+ spawned process's own working directory changes.
447
542
  `qualityProfile` is `custom` by default. `minimal` preserves the core SDD gate,
448
543
  `recommended` also requires strict Code Graph, TDD and structured test
449
544
  identities, and `release` requires the complete formal, mutation, workflow,
@@ -488,6 +583,10 @@ Every requirement containing explicit `Formal:` JSON automatically requires
488
583
  `model-correspondence`: its current formal constraint and generated trace must
489
584
  lead to at least one authoritative `TEST-*` that passed in a fresh structured
490
585
  command report. Missing, changed, unlinked, or stale evidence fails closed.
586
+ `.musubix/evidence/model-correspondence.json` is only produced by
587
+ `evidence refresh`; running `model-correspondence validate` before that file
588
+ exists fails with `MODEL_CORRESPONDENCE_MISSING`, whose message and the
589
+ command's own `--help` output both name `evidence refresh` as the fix.
491
590
  Add `tdd` to require complete Red-Green cycles. Red must be an observed nonzero
492
591
  test result; Green/Refactor must pass with the same configured command and
493
592
  unchanged test file. Test names/output must contain their `TEST-*` ID.
@@ -510,6 +609,23 @@ skipped, failed, or errored test, even when its process exits zero; this prevent
510
609
  from silently passing without their dependencies. Optional command failures are
511
610
  nonblocking unless a constitution rule rejects the measured count. No configured
512
611
  commands is skipped, not passed.
612
+ **Adapter test-ID declaration reference** (each mechanism is distinct; see the
613
+ dual-requirement note above for how this relates to the `@id`/`@verifies` doc
614
+ comment):
615
+
616
+ | Adapter | ID-declaration mechanism | Worked example |
617
+ | --- | --- | --- |
618
+ | `vitest` / `jest` | ID as a substring anywhere in the test title | `it('TEST-APP-001 rejects empty input', () => { ... })` |
619
+ | `pytest` | ID in the underscore-form test function name | `def test_TEST_APP_001(): ...` |
620
+ | `go-test` | ID as the trailing suffix of the test/subtest name | `func TestTEST_APP_001(t *testing.T) { ... }` |
621
+ | `cargo` | ID as the trailing suffix of a Rust test identifier | `fn test_app_001() { ... }` |
622
+ | `junit` | Exact `@Tag("TEST-APP-001")` **plus** an ID-bearing method name or `@DisplayName` | `@Tag("TEST-APP-001") @Test void test() { ... }` |
623
+ | `dotnet` (xUnit) | ID inside `[Fact(DisplayName = "...")]` | `[Fact(DisplayName = "TEST-APP-001 rejects empty input")]` |
624
+
625
+ `junit` is the only adapter that requires a *separate* tag annotation in
626
+ addition to an ID-bearing name/`@DisplayName`; every other adapter matches the
627
+ ID directly from the test's own name/title string.
628
+
513
629
  TDD commands require either command-specific `tddArgs` plus a `tddReport`, or a
514
630
  built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, `junit`, or `dotnet` adapter.
515
631
  The `junit` adapter drives the Java JUnit Platform Console launcher, not arbitrary
@@ -189,10 +189,20 @@ export async function readAdapterOutput(invocation, absolutePath, stdout) {
189
189
  return null;
190
190
  return (await Promise.all(entries.map((entry) => readFile(entry, 'utf8')))).join('\n');
191
191
  }
192
+ /* @id CODE-ADAPTER-PATTERN-RECOGNITION-001
193
+ * @implements REQ-ADAPTER-PATTERN-RECOGNITION-001
194
+ * @design DES-ADAPTER-PATTERN-RECOGNITION-001
195
+ */
196
+ // Anchor the ID's trailing boundary on "not immediately followed by another
197
+ // digit" rather than a word-boundary: Go/Rust identifiers cannot contain any
198
+ // non-word character, so a word-boundary immediately after the digits can
199
+ // never occur when a descriptive suffix follows (e.g. "..._005AssignsX").
200
+ // The digit-run quantifier stays greedy, so a longer numeric ID (e.g. 0051)
201
+ // is still matched in full rather than being cut short.
192
202
  function idOf(value) {
193
203
  if (typeof value !== 'string')
194
204
  return null;
195
- const match = /(?:^|[^A-Za-z0-9])(TEST[-_](?!TEST[-_])[A-Z0-9_-]*\d{3,})\b/i.exec(value);
205
+ const match = /(?:^|[^A-Za-z0-9])(TEST[-_](?!TEST[-_])[A-Z0-9_-]*\d{3,})(?![0-9])/i.exec(value);
196
206
  return match?.[1]?.toUpperCase().replaceAll('_', '-') ?? null;
197
207
  }
198
208
  function status(value) {
@@ -310,7 +320,12 @@ function dotnetResults(text) {
310
320
  return tests;
311
321
  }
312
322
  export function normalizeAdapterReport(adapter, text, targetTestId) {
323
+ /* @id CODE-TDD-RED-COLLECTION-GUIDANCE-001
324
+ * @implements REQ-TDD-RED-COLLECTION-GUIDANCE-001
325
+ * @design DES-TDD-RED-COLLECTION-GUIDANCE-001
326
+ */
313
327
  const tests = [];
328
+ const suiteFailureMessages = [];
314
329
  if (adapter === 'vitest' || adapter === 'jest') {
315
330
  const value = JSON.parse(text);
316
331
  const suites = Array.isArray(value.testResults) ? value.testResults : [];
@@ -321,6 +336,11 @@ export function normalizeAdapterReport(adapter, text, targetTestId) {
321
336
  if (id)
322
337
  tests.push({ id, status: status(assertion.status) });
323
338
  }
339
+ if (!assertions.length) {
340
+ const failureMessage = suite.message ?? suite.failureMessage;
341
+ if (typeof failureMessage === 'string' && failureMessage.trim())
342
+ suiteFailureMessages.push(failureMessage.trim());
343
+ }
324
344
  }
325
345
  }
326
346
  else if (adapter === 'pytest') {
@@ -377,7 +397,10 @@ export function normalizeAdapterReport(adapter, text, targetTestId) {
377
397
  const guidance = adapter === 'pytest'
378
398
  ? ' Pytest node IDs must include the normalized TEST ID (for example test_TEST_APP_001), or configure a project-local musubix-json runner.'
379
399
  : '';
380
- throw new Error(`No annotated TEST-* identities were found in the ${adapter} report.${guidance}`);
400
+ const suiteGuidance = suiteFailureMessages.length
401
+ ? `\n${suiteFailureMessages.map((message) => `Suite failure: ${message}`).join('\n')}`
402
+ : '';
403
+ throw new Error(`No annotated TEST-* identities were found in the ${adapter} report.${guidance}${suiteGuidance}`);
381
404
  }
382
405
  return selected;
383
406
  }
@@ -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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"}