musubix3 0.1.10 → 0.1.12

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 (37) 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 +90 -0
  5. package/README-ja.md +73 -2
  6. package/README.md +103 -6
  7. package/dist/packages/analysis/src/adapters.js +11 -1
  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/tdd.d.ts +25 -1
  21. package/dist/packages/analysis/src/tdd.js +164 -17
  22. package/dist/packages/analysis/src/tdd.js.map +1 -1
  23. package/dist/packages/analysis/src/workflow.d.ts +1 -1
  24. package/dist/packages/analysis/src/workflow.js +80 -2
  25. package/dist/packages/analysis/src/workflow.js.map +1 -1
  26. package/dist/packages/cli/src/install.d.ts +1 -1
  27. package/dist/packages/cli/src/install.js +1 -1
  28. package/dist/packages/cli/src/install.js.map +1 -1
  29. package/dist/packages/cli/src/main.js +30 -10
  30. package/dist/packages/cli/src/main.js.map +1 -1
  31. package/dist/packages/domain/src/design.js +17 -3
  32. package/dist/packages/domain/src/design.js.map +1 -1
  33. package/dist/packages/domain/src/requirements.d.ts +1 -0
  34. package/dist/packages/domain/src/requirements.js +32 -2
  35. package/dist/packages/domain/src/requirements.js.map +1 -1
  36. package/package.json +1 -1
  37. 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.10"
6
+ "version": "0.1.12"
7
7
  },
8
8
  "plugins": [
9
9
  {
10
10
  "name": "musubix3",
11
11
  "source": ".",
12
- "version": "0.1.10",
12
+ "version": "0.1.12",
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,96 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.1.12 - 2026-09-10
6
+
7
+ Fixes for every issue found while running real multi-language, large-scale
8
+ trial projects against musubix3@0.1.11, all filed and fixed since that
9
+ release (GitHub Issues #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13,
10
+ #14).
11
+
12
+ - TDD superseded-cycle scoping (#11): a recorded Red-Green cycle superseded
13
+ by a later, fully valid cycle for the same test ID no longer raises
14
+ `TDD_RED_MISSING`/`TDD_GREEN_MISSING`/`TDD_LEGACY_OR_UNSCOPED_EVIDENCE`.
15
+ - Per-requirement change batches (#12): `change-record`'s red/implementation/
16
+ green phases can be recorded once per non-empty subset of a change's
17
+ requirement IDs, enabling an interleaved per-requirement TDD loop across a
18
+ multi-requirement change; recording the full requirement set at once
19
+ remains fully compatible with previously recorded evidence.
20
+ - Scope Green/Refactor cycle matching by requirement ID and validate before
21
+ order-log append (#14).
22
+ - More specific EARS/requirement-ID validation diagnostics: mixed clause
23
+ forms, missing subject, and other classification failures now name the
24
+ actual problem instead of a generic message; the `REQ_ID` diagnostic
25
+ states the expected `REQ-<FEATURE>-<digits>` pattern (#2, #3, #4).
26
+ - Fix adapter test-ID recognition for Go/Rust-style names with a digit run
27
+ followed by a descriptive suffix, and stop `config lint` from flagging a
28
+ `go test ./...` package wildcard as a missing repository-relative path
29
+ (#7, #9).
30
+ - Add an optional `cwd` field to a configured command in
31
+ `.musubix/config.json`, so `gate`/`tdd red`/`tdd green`/`tdd refactor`
32
+ run that command (including its Red preflight phase) from a
33
+ project-root-relative subdirectory instead of always the project root.
34
+ Supports polyglot monorepos with per-service toolchains. `config lint`
35
+ reports a new `CONFIG_CWD_INVALID` diagnostic for a `cwd` that escapes
36
+ the project root or does not exist, and scopes its `CONFIG_ORPHANED_PATH`
37
+ argument check to that command's own `cwd`. Evidence/report paths and
38
+ `.musubix/config.json` itself are unaffected and stay project-root
39
+ relative (#6).
40
+ - `design validate` accepts an explicit `ADRs: none — <reason>` marker
41
+ (case-insensitive, hyphen/en dash/em dash/colon separator) as satisfying
42
+ the ADR requirement for a component with no architecturally significant
43
+ decision, as long as the reason is concrete (not empty, not a
44
+ `TODO`/`TBD`/`N/A`/`未定` placeholder). A bare `none` or a placeholder
45
+ reason is now reported as `DES_ADR_EXEMPTION_REASON` instead of `DES_ADR`,
46
+ so authors are told to justify the exemption rather than to add an ADR.
47
+ An empty field, or a field with only unknown ADR references, still fails
48
+ exactly as before (#5).
49
+ - Document the recommended practice for a requirement that a correct,
50
+ general implementation already satisfies as a side effect of another
51
+ requirement: temporarily and locally narrow the shared implementation to
52
+ observe a genuine failing test, record `tdd red`, then restore the
53
+ implementation and record `tdd green`. No `--already-satisfied-by`-style
54
+ bypass was added: a human declaration that a requirement is "already
55
+ satisfied elsewhere" is not measured evidence (#13).
56
+ - Document the two independent requirements for `tdd`'s test-ID discovery
57
+ (a `@verifies`/`@id`-style doc-comment link from source to the
58
+ requirement, and a structured test-runner report identifying the test by
59
+ ID) next to the existing worked example, and add a per-adapter reference
60
+ table (vitest/jest/pytest/go-test/cargo/junit/dotnet) with the exact
61
+ declaration each adapter expects. Expand the `tdd` command's CLI help
62
+ text to summarize the same dual requirement (#8, #10).
63
+ - Add the `sdd-issue-report` skill for recording a discovered defect as a
64
+ GitHub Issue with reproduction evidence, and register it in the packaged
65
+ skill list (it was initially missing from `plugin-install`/`pack:check`,
66
+ so it did not install with the package until this release).
67
+
68
+ ## 0.1.11 - 2026-09-10
69
+
70
+ - `workflow-verify`/`verifyWorkflowLogFile` now accept one or more Copilot
71
+ CLI transcript files in compatible mode, reconciling Skill declarations
72
+ recorded across multiple sessions (a `workflow.json` can accumulate
73
+ declarations over a repository's whole lifetime, spanning many distinct
74
+ sessions). Files are ordered by earliest event timestamp; a `toolCallId`
75
+ appearing in more than one file is rejected. `--strict`/`--session-id`
76
+ still require exactly one file. Single-file calls are byte-identical to
77
+ before.
78
+ - Wire `tests/p3-workflow-provenance.test.ts` into structured test
79
+ commands so `TEST-WORKFLOW-SHUTDOWN-001` is reported as passed by
80
+ `gate`'s test-identities check.
81
+
82
+ Known open debt shipped with this release (see Issue #1, closed by explicit
83
+ user decision):
84
+ - `TEST-CLI-WORKFLOW-UX-001`..`005` carry a cosmetic `TDD_TEST_STALE`
85
+ fingerprint drift from their original v0.1.9 authoring session; the
86
+ underlying tests still pass and are not behaviorally stale.
87
+ - `CHANGE-0005`/`CHANGE-0006` cannot complete `change-record` chronology
88
+ validation: their phases were recorded after all real work was already
89
+ done, and the append-only order ledger cannot accept phase records
90
+ retroactively. Both are documented in their respective change files.
91
+
92
+ `gate.ready` is `false` for these known, non-functional reasons; release
93
+ proceeds by explicit user decision.
94
+
5
95
  ## 0.1.10 - 2026-09-09
6
96
 
7
97
  - Accept the current GitHub Copilot CLI terminal format in strict workflow
package/README-ja.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **最新リリース v0.1.10 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
3
+ **最新リリース v0.1.12 · 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.10 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
3
+ **Latest release v0.1.12 · 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,38 @@ 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
+
215
256
  ## Command reference
216
257
 
217
258
  All analysis commands accept `--root <directory>` and `--json`. Files resolve
@@ -252,11 +293,11 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
252
293
  | `tdd red\|green\|refactor <TEST-ID> --requirement <REQ-ID> --command <name>` | Execute and record a verified TDD phase |
253
294
  | `workflow-record <skill> <phase> --status <status>` | Record a compact self-reported workflow declaration |
254
295
  | `workflow-sanitize <copilot.jsonl> <output-file> [--session-id <uuid>]` | Remove messages and non-Skill tool data before review or strict verification |
255
- | `workflow-verify <copilot.jsonl> [--strict] [--session-id <uuid>]` | Reconcile Skill events; optionally require a complete successful session transcript |
296
+ | `workflow-verify <copilot.jsonl...> [--strict] [--session-id <uuid>]` | Reconcile Skill events; compatible mode accepts multiple transcript files (concatenated in chronological session order) so declarations whose invocation occurred in an earlier Copilot CLI session can be reconciled; `--strict`/`--session-id` still require exactly one file |
256
297
  | `attestation oidc-audience --key-id <id> [--public-key-file <pem>]` | Derive the GitHub custom audience that authorizes a signing key |
257
298
  | `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
299
  | `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 |
300
+ | `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
301
  | `config lint` | Report configured commands whose `args` reference repository-relative paths that do not exist |
261
302
  | `config scaffold` | Propose native test-command entries for detected Go/Rust/Maven/Python/Node toolchains without writing `.musubix/config.json` |
262
303
  | `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 +362,12 @@ Depends-On: DES-AUTH-002
321
362
  ```
322
363
 
323
364
  Put these entries in their respective `requirements.md` / `design.md`; declare
324
- every dependency as another component. Each requirement has one controlled
365
+ every dependency as another component. A component that genuinely has no
366
+ architecturally significant decision may write `ADRs: none — <reason>` (a
367
+ concrete, non-placeholder reason) instead of a real ADR reference; a bare
368
+ `none`, an empty field, or a placeholder reason (`TODO`/`TBD`/`N/A`/`未定`)
369
+ still fails validation, now with `DES_ADR_EXEMPTION_REASON` when a "none"
370
+ marker is present without a usable reason. Each requirement has one controlled
325
371
  statement. Accepted priorities are `must` (default), `should`, `may`.
326
372
  Requirement types are `functional` (default) and `non-functional`.
327
373
  `Formal:` is optional strict single-line JSON. Supported kinds are `conditional`,
@@ -364,6 +410,19 @@ export function guard() { /* actual implementation */ }
364
410
  ```
365
411
 
366
412
  One block comment per entity; comma/space-separated targets. `@design` is optional.
413
+ **This doc comment and native test-report ID matching are two independent
414
+ requirements that must both be satisfied for `tdd red`/`tdd green` to succeed.**
415
+ The `@id TEST-*`/`@verifies REQ-*` comment only makes the test discoverable as a
416
+ `kind: 'test'` trace-graph node, so the CLI can resolve its requirement link.
417
+ Separately, the configured adapter (or `tddReport`) must match that same ID
418
+ inside the *executed* native test report, using its own adapter-specific
419
+ mechanism — see the adapter reference table below. A test with only the doc
420
+ comment but a report the adapter cannot match to that ID fails Red/Green
421
+ (the report never contains a recognized `TEST-*` entry); a test whose report
422
+ matches but lacks the doc comment fails earlier with `Annotated test ID not
423
+ found: <id>` (not present in the trace graph). Both failure modes look similar
424
+ but have different causes — check the doc comment first, then the adapter's
425
+ matching rule below.
367
426
  In PHP, use plain `/* ... */` blocks rather than `/** ... */` PHPDoc: PHPDoc reserves
368
427
  `@implements` for generic type declarations, so PHPStan/Psalm report `phpDoc.parseError`
369
428
  on requirement-ID lists inside doc comments. musubix3 reads either form.
@@ -444,6 +503,16 @@ Example `.musubix/config.json` (adapt command arguments to your own project):
444
503
 
445
504
  Config is validated strictly; misspelled keys, invalid bounds and duplicate
446
505
  commands fail closed. Globs support `*`, `**`, `?`; external imports use `npm:`.
506
+ A command may declare an optional `cwd` (a project-root-relative directory)
507
+ so it runs from a service subdirectory instead of the project root — useful
508
+ for a polyglot monorepo where a language's tooling expects to run from its
509
+ own package/module directory. `config lint` reports `CONFIG_CWD_INVALID` for
510
+ a `cwd` that escapes the project root or does not exist, and checks that
511
+ command's repository-relative path arguments (`CONFIG_ORPHANED_PATH`)
512
+ against its own `cwd` instead of the project root. Evidence and report paths
513
+ (`tddReport`/`testReport`/`mutationReport`, `.musubix/config.json` itself)
514
+ are always resolved from the project root regardless of `cwd`; only the
515
+ spawned process's own working directory changes.
447
516
  `qualityProfile` is `custom` by default. `minimal` preserves the core SDD gate,
448
517
  `recommended` also requires strict Code Graph, TDD and structured test
449
518
  identities, and `release` requires the complete formal, mutation, workflow,
@@ -510,6 +579,23 @@ skipped, failed, or errored test, even when its process exits zero; this prevent
510
579
  from silently passing without their dependencies. Optional command failures are
511
580
  nonblocking unless a constitution rule rejects the measured count. No configured
512
581
  commands is skipped, not passed.
582
+ **Adapter test-ID declaration reference** (each mechanism is distinct; see the
583
+ dual-requirement note above for how this relates to the `@id`/`@verifies` doc
584
+ comment):
585
+
586
+ | Adapter | ID-declaration mechanism | Worked example |
587
+ | --- | --- | --- |
588
+ | `vitest` / `jest` | ID as a substring anywhere in the test title | `it('TEST-APP-001 rejects empty input', () => { ... })` |
589
+ | `pytest` | ID in the underscore-form test function name | `def test_TEST_APP_001(): ...` |
590
+ | `go-test` | ID as the trailing suffix of the test/subtest name | `func TestTEST_APP_001(t *testing.T) { ... }` |
591
+ | `cargo` | ID as the trailing suffix of a Rust test identifier | `fn test_app_001() { ... }` |
592
+ | `junit` | Exact `@Tag("TEST-APP-001")` **plus** an ID-bearing method name or `@DisplayName` | `@Tag("TEST-APP-001") @Test void test() { ... }` |
593
+ | `dotnet` (xUnit) | ID inside `[Fact(DisplayName = "...")]` | `[Fact(DisplayName = "TEST-APP-001 rejects empty input")]` |
594
+
595
+ `junit` is the only adapter that requires a *separate* tag annotation in
596
+ addition to an ID-bearing name/`@DisplayName`; every other adapter matches the
597
+ ID directly from the test's own name/title string.
598
+
513
599
  TDD commands require either command-specific `tddArgs` plus a `tddReport`, or a
514
600
  built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, `junit`, or `dotnet` adapter.
515
601
  The `junit` adapter drives the Java JUnit Platform Console launcher, not arbitrary
@@ -629,7 +715,18 @@ event. Supported terminal formats are `result` with `exitCode: 0`, or the curren
629
715
  Copilot CLI lifecycle format with one session UUID and a final
630
716
  `session.shutdown` whose `data.shutdownType` is `routine`. Mixed terminal
631
717
  formats, multiple session identities, abnormal shutdowns, and trailing events
632
- fail closed.
718
+ fail closed. Compatible mode alone accepts more than one transcript path;
719
+ supplied files are concatenated in ascending order of each file's earliest
720
+ event timestamp (not command-line order), while each file's own internal
721
+ event order is preserved untouched — this lets declarations whose invocation
722
+ occurred in an earlier Copilot CLI session be reconciled by additionally
723
+ supplying that session's transcript file. A `toolCallId` that appears as a
724
+ tool start in more than one supplied file is rejected. Copilot CLI writes each
725
+ session's JSONL transcript to
726
+ `~/.copilot/session-state/<sessionId>/events.jsonl`; this path is an internal
727
+ detail of the installed Copilot CLI version, not a musubix3-owned contract, so
728
+ confirm it against your installed version rather than assuming it is stable
729
+ across releases.
633
730
  The terminal `sessionId`, exit code, event count, terminal timestamp, raw source
634
731
  hash and canonical transcript hash are persisted. `workflow.expectedSessionId`
635
732
  or `--session-id` rejects substitution with a different caller-declared session.
@@ -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) {
@@ -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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"}
@@ -19,10 +19,17 @@ export interface ChangePhaseEvidence {
19
19
  recordedAt: string;
20
20
  fingerprints: ChangeFingerprints;
21
21
  }
22
+ export interface ChangeTddBatch {
23
+ requirementIds: string[];
24
+ red?: ChangePhaseEvidence;
25
+ implementation?: ChangePhaseEvidence;
26
+ green?: ChangePhaseEvidence;
27
+ }
22
28
  export interface ChangeRecord {
23
29
  changeId: string;
24
30
  requirementIds: string[];
25
31
  phases: Partial<Record<ChangePhase, ChangePhaseEvidence>>;
32
+ tddBatches?: ChangeTddBatch[];
26
33
  }
27
34
  export interface ChangeEvidence {
28
35
  schemaVersion: 1;
@@ -37,7 +44,16 @@ export interface ChangeCompleteness {
37
44
  valid: boolean;
38
45
  }
39
46
  export declare function loadChangeEvidence(root: string): Promise<ChangeEvidence | null>;
47
+ /** @id CODE-CHANGE-REQUIREMENT-BATCHES-001
48
+ * @implements REQ-CHANGE-REQUIREMENT-BATCHES-001 REQ-CHANGE-REQUIREMENT-BATCHES-003 REQ-CHANGE-REQUIREMENT-BATCHES-004
49
+ * @design DES-CHANGE-REQUIREMENT-BATCHES-001
50
+ */
51
+ export declare function effectiveBatches(change: ChangeRecord): ChangeTddBatch[];
40
52
  export declare function recordChangePhase(root: string, changeId: string, phase: ChangePhase, requirementIds: string[]): Promise<ChangeEvidence>;
53
+ /** @id CODE-CHANGE-REQUIREMENT-BATCHES-002
54
+ * @implements REQ-CHANGE-REQUIREMENT-BATCHES-005
55
+ * @design DES-CHANGE-REQUIREMENT-BATCHES-002
56
+ */
41
57
  export declare function validateChangeEvidence(root: string): Promise<{
42
58
  present: boolean;
43
59
  valid: boolean;