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.
- package/.github/plugin/marketplace.json +2 -2
- package/.github/skills/sdd-change/SKILL.md +1 -0
- package/.github/skills/sdd-issue-report/SKILL.md +45 -0
- package/CHANGELOG.md +90 -0
- package/README-ja.md +73 -2
- package/README.md +103 -6
- package/dist/packages/analysis/src/adapters.js +11 -1
- package/dist/packages/analysis/src/adapters.js.map +1 -1
- package/dist/packages/analysis/src/change.d.ts +16 -0
- package/dist/packages/analysis/src/change.js +200 -52
- package/dist/packages/analysis/src/change.js.map +1 -1
- package/dist/packages/analysis/src/config.d.ts +7 -2
- package/dist/packages/analysis/src/config.js +50 -5
- package/dist/packages/analysis/src/config.js.map +1 -1
- package/dist/packages/analysis/src/files.d.ts +1 -0
- package/dist/packages/analysis/src/files.js +1 -1
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/gate.js +2 -2
- package/dist/packages/analysis/src/gate.js.map +1 -1
- package/dist/packages/analysis/src/tdd.d.ts +25 -1
- package/dist/packages/analysis/src/tdd.js +164 -17
- package/dist/packages/analysis/src/tdd.js.map +1 -1
- package/dist/packages/analysis/src/workflow.d.ts +1 -1
- package/dist/packages/analysis/src/workflow.js +80 -2
- package/dist/packages/analysis/src/workflow.js.map +1 -1
- package/dist/packages/cli/src/install.d.ts +1 -1
- package/dist/packages/cli/src/install.js +1 -1
- package/dist/packages/cli/src/install.js.map +1 -1
- package/dist/packages/cli/src/main.js +30 -10
- package/dist/packages/cli/src/main.js.map +1 -1
- package/dist/packages/domain/src/design.js +17 -3
- package/dist/packages/domain/src/design.js.map +1 -1
- package/dist/packages/domain/src/requirements.d.ts +1 -0
- package/dist/packages/domain/src/requirements.js +32 -2
- package/dist/packages/domain/src/requirements.js.map +1 -1
- package/package.json +1 -1
- 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.
|
|
6
|
+
"version": "0.1.12"
|
|
7
7
|
},
|
|
8
8
|
"plugins": [
|
|
9
9
|
{
|
|
10
10
|
"name": "musubix3",
|
|
11
11
|
"source": ".",
|
|
12
|
-
"version": "0.1.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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,})
|
|
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;
|