musubix3 0.1.2 → 0.1.3
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-formal-codegraph/SKILL.md +6 -6
- package/.github/skills/sdd-implementation/SKILL.md +2 -2
- package/.github/skills/sdd-quality/SKILL.md +3 -3
- package/.github/skills/sdd-traceability/SKILL.md +6 -2
- package/CHANGELOG.md +24 -0
- package/README-ja.md +70 -24
- package/README.md +75 -27
- package/dist/packages/analysis/src/adapters.js +128 -5
- package/dist/packages/analysis/src/adapters.js.map +1 -1
- package/dist/packages/analysis/src/config.d.ts +1 -1
- package/dist/packages/analysis/src/config.js +3 -2
- package/dist/packages/analysis/src/config.js.map +1 -1
- package/dist/packages/analysis/src/files.js +13 -1
- package/dist/packages/analysis/src/files.js.map +1 -1
- package/dist/packages/analysis/src/graph.d.ts +1 -0
- package/dist/packages/analysis/src/graph.js +673 -10
- package/dist/packages/analysis/src/graph.js.map +1 -1
- package/dist/packages/analysis/src/model-correspondence.js +5 -5
- package/dist/packages/analysis/src/model-correspondence.js.map +1 -1
- package/dist/packages/analysis/src/mutation.d.ts +1 -1
- package/dist/packages/analysis/src/mutation.js +11 -2
- package/dist/packages/analysis/src/mutation.js.map +1 -1
- package/dist/packages/analysis/src/performance.js +3 -5
- package/dist/packages/analysis/src/performance.js.map +1 -1
- package/dist/packages/analysis/src/trace.js +60 -8
- package/dist/packages/analysis/src/trace.js.map +1 -1
- package/dist/packages/analysis/src/workflow.js +1 -1
- package/dist/packages/cli/src/main.js +1 -1
- package/dist/packages/domain/src/constitution.d.ts +1 -1
- package/dist/packages/domain/src/constitution.js +1 -0
- package/dist/packages/domain/src/constitution.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.3"
|
|
7
7
|
},
|
|
8
8
|
"plugins": [
|
|
9
9
|
{
|
|
10
10
|
"name": "musubix3",
|
|
11
11
|
"source": ".",
|
|
12
|
-
"version": "0.1.
|
|
12
|
+
"version": "0.1.3",
|
|
13
13
|
"description": "Evidence-driven SDD without duplicating native Copilot capabilities."
|
|
14
14
|
}
|
|
15
15
|
]
|
|
@@ -41,12 +41,12 @@ After the work, run `npx musubix3 workflow-record sdd-formal-codegraph complete
|
|
|
41
41
|
JS/TS imports, re-exports, literal require/dynamic imports, manifest
|
|
42
42
|
entrypoints and local cache-busting URL/templates with a static base are indexed.
|
|
43
43
|
Set `codeGraph.mode` to `strict` when unresolved computed `import()` or
|
|
44
|
-
`require()` calls
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
`require()` calls, including computed PHP include/require expressions, must
|
|
45
|
+
block graph gates; the compatible default warns.
|
|
46
|
+
Conservative native adapters index JS/TS, Rust, Python, Go, Java, Kotlin,
|
|
47
|
+
C/C++, Objective-C, C#/.NET, Ruby, PHP, Swift, Dart, Scala, Elixir, Haskell,
|
|
48
|
+
Lua, Zig, Solidity, R and Julia dependencies, declarations and direct calls.
|
|
49
|
+
Unrecognized extensions stay outside graph inputs.
|
|
50
50
|
Statically resolved cache-busting imports remain valid in strict mode.
|
|
51
51
|
Reflective behavior remains an explicit limitation.
|
|
52
52
|
4. Use native navigation and review to confirm conservative results; rebuild
|
|
@@ -18,8 +18,8 @@ After the work, run `npx musubix3 workflow-record sdd-implementation complete
|
|
|
18
18
|
implementation. Configure the selected command with `tddArgs` containing
|
|
19
19
|
`{testId}` or `{testPath}` and a `tddReport`, or use a built-in runner adapter.
|
|
20
20
|
Follow its native identity contract: pytest/Cargo use underscore names, Go
|
|
21
|
-
uses a `TEST-*` subtest,
|
|
22
|
-
|
|
21
|
+
uses a `TEST-*` subtest, JUnit uses an exact `@Tag("TEST-*")`, and xUnit uses
|
|
22
|
+
a `Fact` `DisplayName` containing the exact ID.
|
|
23
23
|
Run the repository formatter before recording Red. Formatting is part of the
|
|
24
24
|
test fingerprint: after Red, do not edit or reformat the authoritative test
|
|
25
25
|
until the matching Green has been recorded.
|
|
@@ -14,7 +14,7 @@ completed` exactly once.
|
|
|
14
14
|
explicit independent approval. Use only the exact `musubix3` CLI; never
|
|
15
15
|
substitute similarly named npm packages.
|
|
16
16
|
2. Configure real tests/build/typecheck commands and timeouts. Use an explicit
|
|
17
|
-
custom report or a built-in Vitest/Jest, pytest, Go test, Cargo or
|
|
17
|
+
custom report or a built-in Vitest/Jest, pytest, Go test, Cargo, JUnit or .NET
|
|
18
18
|
adapter. Require executable native adapter contracts in CI; JUnit targets use
|
|
19
19
|
an exact `@Tag("TEST-*")`, and pytest requires `pytest-json-report`. Review
|
|
20
20
|
`requiredChecks`, `qualityProfile`, coverage thresholds and architecture rules.
|
|
@@ -27,8 +27,8 @@ completed` exactly once.
|
|
|
27
27
|
`evidence refresh --json` runs the same fail-closed pipeline. If `input-stability` fails,
|
|
28
28
|
inspect its per-path added/modified/deleted diagnostics and stop generators
|
|
29
29
|
or formatters before rerunning. Standard dependency/build directories,
|
|
30
|
-
including manifest-scoped Cargo
|
|
31
|
-
or `venv` roots with a regular `pyvenv.cfg`, are excluded; arbitrary source
|
|
30
|
+
including manifest-scoped Cargo/Maven `target/`, .NET `bin`/`obj`, project-local
|
|
31
|
+
`.nuget/packages`, and `.venv` or `venv` roots with a regular `pyvenv.cfg`, are excluded; arbitrary source
|
|
32
32
|
directories and source-like generated inputs are not silently ignored.
|
|
33
33
|
Changed mode reports Git changes and dependent files but conservatively runs
|
|
34
34
|
all checks, including commands. It never treats unrun checks as successful.
|
|
@@ -10,8 +10,12 @@ After the work, run `npx musubix3 workflow-record sdd-traceability complete
|
|
|
10
10
|
--status completed` exactly once.
|
|
11
11
|
|
|
12
12
|
1. Run `npx musubix3 trace build`. It scans `.musubix` artifacts and comment
|
|
13
|
-
annotations in JS/TS, Rust, Python, Go,
|
|
14
|
-
|
|
13
|
+
annotations in every Code Graph language, including JS/TS, Rust, Python, Go,
|
|
14
|
+
JVM, C/C++, .NET, Ruby, PHP, Swift, Dart, BEAM, Haskell, Lua, Zig, Solidity,
|
|
15
|
+
R and Julia, then generates feature `trace.json` files plus an ignored cache.
|
|
16
|
+
Haskell `--`/`{- ... -}`, Lua `--`/`--[[ ... ]]`, and Visual Basic
|
|
17
|
+
apostrophe/XML-documentation comments are scanned without accepting string
|
|
18
|
+
literals as trace annotations.
|
|
15
19
|
2. Run `npx musubix3 trace check --strict --json`.
|
|
16
20
|
Distinguish malformed IDs, dangling endpoints, stale inputs, and missing
|
|
17
21
|
mandatory design/implementation/test coverage. Non-strict coverage warnings
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.1.3 - 2026-09-08
|
|
6
|
+
|
|
7
|
+
- Add a built-in `dotnet` test adapter with xUnit `DisplayName` targeting and
|
|
8
|
+
recursive TRX result normalization.
|
|
9
|
+
- Exclude manifest-scoped .NET `bin/` and `obj/` output plus the conventional
|
|
10
|
+
project-local `.nuget/packages/` cache from snapshots and Code Graph indexing.
|
|
11
|
+
- Exclude Gradle `.gradle/`, Dart `.dart_tool/`, SwiftPM `.build/`, Zig
|
|
12
|
+
`.zig-cache/`/`zig-out/`, and .NET `.dotnet/` CLI homes only when a nearby
|
|
13
|
+
ecosystem manifest identifies them as generated project state.
|
|
14
|
+
- Detect C#/.NET projects in `mutation doctor` and safely probe a pinned local
|
|
15
|
+
Stryker.NET tool manifest without installing or downloading tools.
|
|
16
|
+
- Add conservative Code Graph adapters for Kotlin, Ruby, Swift, Dart, Scala,
|
|
17
|
+
Elixir, Haskell, Lua, Zig, Solidity, Objective-C/Objective-C++, F# and
|
|
18
|
+
Visual Basic .NET, including local dependencies, declarations and direct calls.
|
|
19
|
+
- Add Haskell, Lua, and Visual Basic trace-comment extraction with string
|
|
20
|
+
masking, and expose annotated/executed test identity counts as constitution
|
|
21
|
+
metrics.
|
|
22
|
+
- Reduce native Code Graph false positives and improve Scala, Visual Basic,
|
|
23
|
+
Julia, PHP, Swift, Dart, Haskell, and Objective-C resolution precision.
|
|
24
|
+
- Normalize JUnit identities from `system-out` display names independently of
|
|
25
|
+
XML attribute order, and recognize nested F# `(* ... *)` trace comments.
|
|
26
|
+
- Validate large applications across all 23 supported language groups: 475
|
|
27
|
+
authored implementation files and 345 traced native tests, all gate-ready.
|
|
28
|
+
|
|
5
29
|
## 0.1.2 - 2026-09-07
|
|
6
30
|
|
|
7
31
|
- Exclude conventional `.venv` and `venv` Python environments identified by a
|
package/README-ja.md
CHANGED
|
@@ -1,34 +1,68 @@
|
|
|
1
1
|
# musubix3
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**最新リリース v0.1.3 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
|
|
4
4
|
|
|
5
5
|
[English](README.md)
|
|
6
6
|
|
|
7
7
|
[musubix2 から musubix3 で変わったこと](MUSUBIX2-TO-MUSUBIX3.md)
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
GitHub Copilotは、計画、コード生成、編集、テスト、レビューを実行できます。
|
|
10
|
+
musubix3は、その作業を本当に完了と判断するためのrepository-localな仕様と
|
|
11
|
+
決定的な証拠を追加します。
|
|
12
|
+
要求 → 憲章 → 設計・ADR → 実装 → 追跡可能性 → 品質根拠を、
|
|
13
|
+
8つのSkillsと検証CLIで接続します。
|
|
12
14
|
|
|
13
15
|
[musubix2](https://github.com/nahisaho/musubix2) の考え方を学び、3つの
|
|
14
16
|
ワークスペースで新規実装しています。成果物の互換性・移行機能はありません。
|
|
15
17
|
ID の接続や SAT 判定だけで、実装の正しさを保証するものではありません。
|
|
16
18
|
|
|
19
|
+
## GitHub Copilotだけでは足りない理由
|
|
20
|
+
|
|
21
|
+
Copilotは実装を担うエンジンです。要求を理解し、repositoryを調査し、計画を立て、
|
|
22
|
+
ファイルを編集し、toolを実行して結果を説明します。これは不可欠ですが、
|
|
23
|
+
会話が成功したことだけでは、次を継続的に証明できません。
|
|
24
|
+
|
|
25
|
+
- 実装した振る舞いが、明示的で測定可能な要求と一致しているか
|
|
26
|
+
- すべての要求が設計、コード、正本テストまで接続されているか
|
|
27
|
+
- テストを書き換えず、本当にRedが先に失敗してGreenが成功したか
|
|
28
|
+
- test、graph、formal、qualityの結果が現在のsourceに対して新鮮か
|
|
29
|
+
- 要求変更が影響する成果物へ正しい順序で伝播したか
|
|
30
|
+
- 最終gateを通すためにpolicyを弱めていないか
|
|
31
|
+
|
|
32
|
+
「テストは成功しました」「実装は完了しました」という会話上の報告は、
|
|
33
|
+
古くなる、範囲が不足する、repository外で失われる可能性があります。
|
|
34
|
+
推論と開発はCopilotへ任せたまま、musubix3が完了条件を永続化し、
|
|
35
|
+
機械検証できる形へ変換します。
|
|
36
|
+
|
|
37
|
+
| GitHub Copilotが提供するもの | musubix3が補完するもの |
|
|
38
|
+
|---|---|
|
|
39
|
+
| 計画、実装、refactor、tool実行 | 明示的な要求、設計判断、実装link、完了条件を要求するrepository-local SDD Skills |
|
|
40
|
+
| テスト生成とtest runner実行 | 構造化TEST ID、native report正規化、検証可能なRed/Green/Refactor証拠 |
|
|
41
|
+
| 変更内容の説明 | 要求 → 設計 → コード → テストの型付きtraceと双方向impact解析 |
|
|
42
|
+
| repository調査 | 決定的なCode Graph、未解決local dependency診断、architecture gate |
|
|
43
|
+
| 制約・不変条件の提案 | 任意のZ3/Lean整合性検査と、形式モデルから成功テストまでの対応検査 |
|
|
44
|
+
| session単位の完了報告 | freshness、fingerprint、input stability、保護されたpolicy baseline、attestation、fail-closedなready判定 |
|
|
45
|
+
|
|
46
|
+
musubix3はCopilotを置き換えず、別のcoding agentも追加しません。
|
|
47
|
+
SATだから実装が正しいとも主張しません。開発はCopilotが実行し、
|
|
48
|
+
musubix3は仕様を残し、証拠を検査し、古い・不完全な完了宣言を拒否して、
|
|
49
|
+
「なぜこの変更をreadyと判断できるのか」をreview可能な形でrepositoryへ残します。
|
|
50
|
+
|
|
17
51
|
## クイックスタート
|
|
18
52
|
|
|
19
53
|
対象プロジェクトで、公開済みパッケージを実行します。
|
|
20
54
|
|
|
21
55
|
```sh
|
|
22
|
-
npx musubix3@0.1.
|
|
23
|
-
npx musubix3@0.1.
|
|
24
|
-
npx musubix3@0.1.
|
|
56
|
+
npx musubix3@0.1.3 --version
|
|
57
|
+
npx musubix3@0.1.3 init --dry-run
|
|
58
|
+
npx musubix3@0.1.3 init
|
|
25
59
|
copilot
|
|
26
60
|
```
|
|
27
61
|
|
|
28
62
|
バージョンを固定してプロジェクトへインストールする場合は、次を実行します。
|
|
29
63
|
|
|
30
64
|
```sh
|
|
31
|
-
npm install --save-dev --save-exact musubix3@0.1.
|
|
65
|
+
npm install --save-dev --save-exact musubix3@0.1.3
|
|
32
66
|
npx --no-install musubix3 --version
|
|
33
67
|
npx --no-install musubix3 init --dry-run
|
|
34
68
|
npx --no-install musubix3 init
|
|
@@ -279,10 +313,12 @@ feature: auth
|
|
|
279
313
|
`ADRs` / `Depends-On`。ADR には背景・採用案・却下案・結果を記録します。
|
|
280
314
|
C4-like 図は明示した内容だけを描画し、完全な C4 モデルを推論しません。
|
|
281
315
|
|
|
282
|
-
JS/TS、Rust、Python、Go、Java/Kotlin、C/C++、C#、Ruby、PHP、Swift の
|
|
283
316
|
正本となるコード・テストに、エンティティごとに1つのコメントを追加します。
|
|
284
|
-
JS/TS
|
|
285
|
-
|
|
317
|
+
JS/TSはparser-awareなcomment位置を使い、Haskellは`--`と`{- ... -}`、
|
|
318
|
+
Luaは`--`と`--[[ ... ]]`、Visual Basicは`'''` XML documentを含む
|
|
319
|
+
apostrophe commentを扱います。これらは文字列中の記載をリンクとして扱いません。
|
|
320
|
+
その他の言語では対応する行commentまたはblock commentを使用します。
|
|
321
|
+
網羅率だけを満たす代理JS/TSファイルは作成しません。
|
|
286
322
|
|
|
287
323
|
```ts
|
|
288
324
|
/** @id CODE-AUTH-001
|
|
@@ -377,8 +413,10 @@ glob は `*` / `**` / `?` に対応し、外部依存は `npm:` 接頭辞で表
|
|
|
377
413
|
`tdd.redPreflightCommands`にはformatter等のplain command名を指定でき、
|
|
378
414
|
Redのtest fingerprintを取得する前に成功が必須です。
|
|
379
415
|
通常ファイルの`pyvenv.cfg`を含む`.venv`と`venv`はsnapshotと
|
|
380
|
-
Code Graph
|
|
381
|
-
|
|
416
|
+
Code Graphから除外されます。Gradle `.gradle/`、Dart `.dart_tool/`、
|
|
417
|
+
SwiftPM `.build/`、Zig `.zig-cache/`/`zig-out/`、.NET `.dotnet/`は、
|
|
418
|
+
親directoryに対応manifestがある場合だけ除外されます。同名の任意source
|
|
419
|
+
directoryは追跡対象のままです。
|
|
382
420
|
`codeGraph.mode` の既定値は `compatible` で、未解決の計算された
|
|
383
421
|
`import()` / `require()` は警告です。`strict` にするとグラフゲートを阻止する
|
|
384
422
|
エラーになります。信頼済みbaselineが `strict` の場合、`compatible` への
|
|
@@ -411,12 +449,14 @@ strict OIDC identity/key binding、必須コマンド名の最低条件です。
|
|
|
411
449
|
コマンド未設定は skipped です。
|
|
412
450
|
|
|
413
451
|
TDD用コマンドには明示的な`tddArgs`と`tddReport`、または組込みの
|
|
414
|
-
`vitest`、`jest`、`pytest`、`go-test`、`cargo`、`junit` adapterが必要です。
|
|
452
|
+
`vitest`、`jest`、`pytest`、`go-test`、`cargo`、`junit`、`dotnet` adapterが必要です。
|
|
415
453
|
明示設定を優先し、adapterは対象引数を導出してnative JSON/JSONL/XMLを正規化します。
|
|
416
454
|
Vitest/Jestの無関係なskipped結果は対象TDDから除外します。pytestにはJSON pluginと
|
|
417
455
|
`test_TEST_APP_001`形式、Goには`TEST-*`名のsubtest、Cargoには`test_app_001`形式、
|
|
418
|
-
JUnitには正確な`@Tag("TEST-APP-001")
|
|
419
|
-
|
|
456
|
+
JUnitには正確な`@Tag("TEST-APP-001")`と、IDを含むmethod名または`@DisplayName`を推奨します。
|
|
457
|
+
正規化処理はtestcase属性とJUnit Platformのdisplay-name出力の両方を読み取り、
|
|
458
|
+
xUnitには`[Fact(DisplayName = "TEST-APP-001 ...")]`が必要です。
|
|
459
|
+
それぞれXMLまたはTRX report directoryを読み取ります。各フェーズ前に旧レポートを削除し、
|
|
420
460
|
必要なreport親directoryを作成して、対象テストだけを含むfreshな `musubix-json` を要求します。Redは `failed`、
|
|
421
461
|
Green/Refactorは `passed` のみ有効で、`skipped`、`error`、未生成、不正形式は失敗です。
|
|
422
462
|
Green前にはテスト以外のプロジェクト入力が変更されている必要があります。
|
|
@@ -427,10 +467,11 @@ TDDと変更checkpointは共通の単調order ledgerを持ち、Red/Green境界
|
|
|
427
467
|
明示的なmigration診断で失敗します。欠落・並べ替え・改変・孤立レコードは
|
|
428
468
|
証拠を無効にします。
|
|
429
469
|
|
|
430
|
-
CIでは
|
|
470
|
+
CIではVitest、Jest、
|
|
431
471
|
`pytest-json-report`付きpytest、Go test、Cargo test、固定版JUnit Platform Consoleの
|
|
432
472
|
各fixtureに無関係な失敗テストを置き、生成selectorが対象IDだけを実行し、実際のnative
|
|
433
|
-
report
|
|
473
|
+
reportを正規化できることを検証します。.NET adapterは標準TRXを読み取り、
|
|
474
|
+
C#アプリ実験とunit contractで追加検証します。Jestは開発時依存だけであり、Python、
|
|
434
475
|
Go/Rust、Java/JUnitのtoolingはCIでのみ準備され、packageのruntime依存には含まれません。
|
|
435
476
|
|
|
436
477
|
変更checkpointは各変更要件にリンクした実装とCode Graph上の依存だけを指紋化するため、
|
|
@@ -482,7 +523,8 @@ terminal transcriptの古さと未来方向clock skewも制限します。
|
|
|
482
523
|
並行eventはtimestamp順で出力されない場合があるため、全体sortではなくtool/resultの
|
|
483
524
|
因果順序を検査します。
|
|
484
525
|
gate実行中に入力が変わった場合、`input-stability`は追加・変更・削除された各pathと
|
|
485
|
-
前後のSHA-256を報告します。Cargo/Mavenの標準`target
|
|
526
|
+
前後のSHA-256を報告します。Cargo/Mavenの標準`target/`、manifest直下の
|
|
527
|
+
.NET `bin/`と`obj/`、project-local `.nuget/packages/`は除外しますが、
|
|
486
528
|
source相当の生成入力はfail-closedのままです。組込みadapterは対象test選択とreport引数を
|
|
487
529
|
所有します。Cargo/Goの既存設定にある先頭`test`は安全に統合し、
|
|
488
530
|
`--json-report`など競合するreport引数は早期拒否します。
|
|
@@ -565,13 +607,17 @@ Ed25519鍵はmusubix3外で生成し、公開PEMだけを`attestation oidc-audie
|
|
|
565
607
|
シンボル影響は保守的な**ファイル単位**の逆依存になります。
|
|
566
608
|
非リテラル読み込みは既定では警告ですが、`codeGraph.mode: "strict"` では
|
|
567
609
|
グラフゲートを阻止します。未解決外部パッケージは警告、未解決ローカル参照はエラー。
|
|
568
|
-
Rust、Python、Go、Java、
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
610
|
+
bundler 独自解決とリフレクションは対象外です。Rust、Python、Go、Java、
|
|
611
|
+
Kotlin、C/C++、Objective-C/Objective-C++、C#、F#、Visual Basic .NET、
|
|
612
|
+
Ruby、PHP、Swift、Dart、Scala、Elixir、Haskell、Lua、Zig、Solidity、R、
|
|
613
|
+
Juliaはローカルimport/module/include/source、宣言、直接呼び出しを
|
|
614
|
+
保守的に解析します。その他の拡張子はグラフ入力に含めません。他言語用の
|
|
615
|
+
代理 JS/TS ファイルは作成しません。
|
|
573
616
|
build/cache/dependency と symlink は除外しますが、任意の `.gitignore` は
|
|
574
617
|
スキャンフィルターとして読みません。
|
|
618
|
+
- 残るarchitecture改善には、実測根拠を伴うstrict call-resolution ratio policyと、
|
|
619
|
+
より広いnative test-runner adapter対応があります。このreleaseでは推測的に
|
|
620
|
+
有効化しません。
|
|
575
621
|
- 検索は **TF-IDF/cosine** であり GraphRAG でも意味推論でもありません。
|
|
576
622
|
日本語は文字 bigram。Git 根拠は最大100コミット・各30ファイルで、共変更は相関、
|
|
577
623
|
著者別ディレクトリ件数は貢献の記録であって因果や専門性ではありません。
|
package/README.md
CHANGED
|
@@ -1,36 +1,70 @@
|
|
|
1
1
|
# musubix3
|
|
2
2
|
|
|
3
|
-
**Latest
|
|
3
|
+
**Latest release v0.1.3 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
|
|
4
4
|
|
|
5
5
|
[日本語](README-ja.md)
|
|
6
6
|
|
|
7
7
|
[What changed from musubix2 to musubix3 (Japanese)](MUSUBIX2-TO-MUSUBIX3.md)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
GitHub Copilot can plan, generate, edit, test, and review software. musubix3
|
|
10
|
+
adds the repository-local specifications and deterministic evidence needed to
|
|
11
|
+
decide whether that work is actually complete:
|
|
10
12
|
requirements → constitution → design/ADRs → implementation → traceability →
|
|
11
|
-
quality evidence.
|
|
12
|
-
local knowledge retrieval support the workflow.
|
|
13
|
+
quality evidence.
|
|
13
14
|
|
|
14
15
|
Learned from [musubix2](https://github.com/nahisaho/musubix2)'s concepts, rebuilt
|
|
15
16
|
cleanly in three workspaces. No artifact compatibility or migration is promised.
|
|
16
17
|
This repository does **not** guarantee correctness simply because IDs are linked
|
|
17
18
|
or requirements are satisfiable.
|
|
18
19
|
|
|
20
|
+
## Why GitHub Copilot alone is not enough
|
|
21
|
+
|
|
22
|
+
Copilot is the implementation engine. It understands a request, explores the
|
|
23
|
+
repository, proposes a plan, edits files, runs tools, and explains the result.
|
|
24
|
+
That is necessary, but a successful conversation is not durable proof that:
|
|
25
|
+
|
|
26
|
+
- the implemented behavior matches an explicit, measurable requirement;
|
|
27
|
+
- every requirement is connected to design, code, and an authoritative test;
|
|
28
|
+
- Red really failed before Green passed without the test being rewritten;
|
|
29
|
+
- test, graph, formal, and quality results still match the current source;
|
|
30
|
+
- a requirement change propagated through all affected artifacts in order;
|
|
31
|
+
- a policy was not weakened merely to make the final gate pass.
|
|
32
|
+
|
|
33
|
+
Conversation text such as “tests passed” or “implementation complete” is not
|
|
34
|
+
enough because it can become stale, omit scope, or disappear outside the
|
|
35
|
+
repository. Copilot should remain responsible for reasoning and development;
|
|
36
|
+
musubix3 makes the completion criteria persistent and machine-checkable.
|
|
37
|
+
|
|
38
|
+
| GitHub Copilot provides | musubix3 complements it with |
|
|
39
|
+
|---|---|
|
|
40
|
+
| Planning, coding, refactoring, and tool execution | Repository-local SDD Skills that require explicit requirements, design decisions, implementation links, and completion conditions |
|
|
41
|
+
| Test generation and runner execution | Structured TEST identities, native-report normalization, and verified Red/Green/Refactor evidence |
|
|
42
|
+
| Explanations of what changed | Typed requirement → design → code → test traceability and bidirectional impact analysis |
|
|
43
|
+
| Repository exploration | Deterministic Code Graph indexing, unresolved-local dependency diagnostics, and architecture gates |
|
|
44
|
+
| Suggestions for constraints and invariants | Optional Z3/Lean consistency checks and model-to-passing-test correspondence |
|
|
45
|
+
| A session-level completion report | Freshness, fingerprints, input-stability checks, protected policy baselines, attestations, and a fail-closed readiness gate |
|
|
46
|
+
|
|
47
|
+
musubix3 does **not** replace Copilot, add another coding agent, or claim that
|
|
48
|
+
formal satisfiability proves implementation correctness. Copilot performs the
|
|
49
|
+
development; musubix3 records the specification, checks the evidence, rejects
|
|
50
|
+
stale or incomplete claims, and leaves a reviewable answer to “why is this
|
|
51
|
+
change ready?”
|
|
52
|
+
|
|
19
53
|
## Quick start
|
|
20
54
|
|
|
21
55
|
Run the published package from the target project:
|
|
22
56
|
|
|
23
57
|
```sh
|
|
24
|
-
npx musubix3@0.1.
|
|
25
|
-
npx musubix3@0.1.
|
|
26
|
-
npx musubix3@0.1.
|
|
58
|
+
npx musubix3@0.1.3 --version
|
|
59
|
+
npx musubix3@0.1.3 init --dry-run
|
|
60
|
+
npx musubix3@0.1.3 init
|
|
27
61
|
copilot
|
|
28
62
|
```
|
|
29
63
|
|
|
30
64
|
For a reproducible project-local installation:
|
|
31
65
|
|
|
32
66
|
```sh
|
|
33
|
-
npm install --save-dev --save-exact musubix3@0.1.
|
|
67
|
+
npm install --save-dev --save-exact musubix3@0.1.3
|
|
34
68
|
npx --no-install musubix3 --version
|
|
35
69
|
npx --no-install musubix3 init --dry-run
|
|
36
70
|
npx --no-install musubix3 init
|
|
@@ -279,9 +313,11 @@ Where/While/When clauses. Japanese controlled forms are documented in
|
|
|
279
313
|
[README-ja.md](README-ja.md). These are syntax checks, not natural-language
|
|
280
314
|
understanding; arbitrary prose is deliberately rejected.
|
|
281
315
|
|
|
282
|
-
Source/test trace annotations are read from comments
|
|
283
|
-
|
|
284
|
-
|
|
316
|
+
Source/test trace annotations are read from language comments. JS/TS uses
|
|
317
|
+
parser-aware comment locations; Haskell supports `--` and `{- ... -}`, Lua
|
|
318
|
+
supports `--` and `--[[ ... ]]`, and Visual Basic supports apostrophe comments
|
|
319
|
+
including `'''` XML documentation. These scanners exclude string literals;
|
|
320
|
+
other languages require their supported line or block comments:
|
|
285
321
|
|
|
286
322
|
```ts
|
|
287
323
|
/** @id CODE-AUTH-001
|
|
@@ -380,7 +416,10 @@ Use `tdd.redPreflightCommands` to reference plain configured formatter commands;
|
|
|
380
416
|
they must pass before Red captures the authoritative test fingerprint.
|
|
381
417
|
Conventional `.venv` and `venv` Python environments containing a regular
|
|
382
418
|
`pyvenv.cfg` are excluded from source snapshots and Code Graph indexing.
|
|
383
|
-
|
|
419
|
+
Gradle `.gradle/`, Dart `.dart_tool/`, SwiftPM `.build/`, Zig
|
|
420
|
+
`.zig-cache/`/`zig-out/`, and .NET `.dotnet/` CLI homes are excluded only when
|
|
421
|
+
their parent contains the corresponding project manifest. Arbitrary same-named
|
|
422
|
+
source directories remain tracked.
|
|
384
423
|
`codeGraph.mode` defaults to `compatible`, where unresolved computed
|
|
385
424
|
`import()`/`require()` calls remain warnings. Set it to `strict` to make those
|
|
386
425
|
diagnostics gate-blocking errors. A trusted strict policy baseline prevents
|
|
@@ -416,15 +455,18 @@ failure or skip blocks readiness regardless of `requiredChecks.commands`.
|
|
|
416
455
|
Optional command failures are nonblocking unless a constitution rule rejects the
|
|
417
456
|
measured count. No configured commands is skipped, not passed.
|
|
418
457
|
TDD commands require either command-specific `tddArgs` plus a `tddReport`, or a
|
|
419
|
-
built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, or `
|
|
458
|
+
built-in `vitest`, `jest`, `pytest`, `go-test`, `cargo`, `junit`, or `dotnet` adapter.
|
|
420
459
|
Explicit custom configuration takes precedence. Adapters derive targeted
|
|
421
460
|
arguments and normalize native JSON/JSONL/XML into `musubix-json`. Vitest/Jest
|
|
422
461
|
reports may contain unrelated skipped tests; targeted TDD selects only the
|
|
423
462
|
requested ID. pytest requires the JSON-report plugin and underscore-form test
|
|
424
463
|
names such as `test_TEST_APP_001`. Go uses a `TEST-*` subtest name, Cargo uses a
|
|
425
|
-
Rust identifier such as `test_app_001`. JUnit methods
|
|
426
|
-
`@Tag("TEST-APP-001")
|
|
427
|
-
|
|
464
|
+
Rust identifier such as `test_app_001`. JUnit methods should carry an exact
|
|
465
|
+
`@Tag("TEST-APP-001")` and an ID-bearing method name or `@DisplayName`; the
|
|
466
|
+
normalizer reads both testcase attributes and JUnit Platform display-name output.
|
|
467
|
+
xUnit tests use
|
|
468
|
+
`[Fact(DisplayName = "TEST-APP-001 ...")]` so TRX preserves the identity.
|
|
469
|
+
Before each phase, musubix3 deletes
|
|
428
470
|
the previous report, creates any required report parent directory, and requires a fresh
|
|
429
471
|
`musubix-json` document containing exactly the selected test. Its status must be
|
|
430
472
|
`failed` during Red and `passed` during Green/Refactor; `skipped`, `error`,
|
|
@@ -437,9 +479,10 @@ informational. Legacy chronology without order evidence fails with an explicit
|
|
|
437
479
|
migration diagnostic. Missing, reordered, altered or orphaned records invalidate
|
|
438
480
|
the evidence.
|
|
439
481
|
|
|
440
|
-
CI executes isolated native contracts for
|
|
482
|
+
CI executes isolated native contracts for Vitest, Jest,
|
|
441
483
|
pytest with `pytest-json-report`, Go test, Cargo test, and the pinned JUnit
|
|
442
|
-
Platform Console.
|
|
484
|
+
Platform Console. The .NET adapter consumes standard TRX and is additionally
|
|
485
|
+
validated by unit contracts and the C# application experiment. Each fixture contains an unrelated failing test, proving that
|
|
443
486
|
the generated selector executes only the requested identity and that the real
|
|
444
487
|
native report normalizes correctly. Jest is development-only; the Python,
|
|
445
488
|
Go/Rust, and Java/JUnit tooling is provisioned only in CI and is not shipped as
|
|
@@ -510,8 +553,9 @@ Unrelated concurrent events may be emitted out of timestamp order, so strict mod
|
|
|
510
553
|
checks causal tool/result ordering rather than imposing a global timestamp sort.
|
|
511
554
|
If project inputs change while a gate is running, `input-stability` reports each
|
|
512
555
|
added, modified, or deleted path with before/after SHA-256 values. Standard
|
|
513
|
-
Cargo/Maven `target
|
|
514
|
-
|
|
556
|
+
Cargo/Maven `target/`, manifest-scoped .NET `bin/` and `obj/`, and project-local
|
|
557
|
+
`.nuget/packages/` output are excluded, but source-like generated inputs remain fail-closed.
|
|
558
|
+
Built-in adapters own their targeting and report arguments. A
|
|
515
559
|
legacy leading Cargo/Go `test` subcommand is merged safely; conflicting report
|
|
516
560
|
flags such as `--json-report` are rejected.
|
|
517
561
|
Changes during a gate fail input stability; later source/config changes make
|
|
@@ -608,14 +652,18 @@ transcript/session fields into the Ed25519 signature.
|
|
|
608
652
|
best-effort; symbol impact conservatively expands at **file** level. Nonliteral
|
|
609
653
|
loading is a compatibility warning unless `codeGraph.mode` is `strict`, when
|
|
610
654
|
it blocks graph gates; unresolved external packages remain warnings and
|
|
611
|
-
unresolved local imports are errors. Bundler-specific resolution
|
|
612
|
-
Rust, Python, Go, Java, C/C++,
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
655
|
+
unresolved local imports are errors. Bundler-specific resolution and
|
|
656
|
+
reflection remain out of scope. Rust, Python, Go, Java, Kotlin, C/C++,
|
|
657
|
+
Objective-C/Objective-C++, C#, F#, Visual Basic .NET, Ruby, PHP, Swift, Dart,
|
|
658
|
+
Scala, Elixir, Haskell, Lua, Zig, Solidity, R and Julia have conservative
|
|
659
|
+
native adapters for local imports/modules/includes, declarations and direct
|
|
660
|
+
calls. Other extensions are omitted from graph inputs. Ignored build/cache/dependency directories and
|
|
616
661
|
symlinks are not indexed; custom `.gitignore` rules are not a scan filter.
|
|
617
|
-
-
|
|
618
|
-
|
|
662
|
+
- Remaining architectural work includes evidence-backed strict call-resolution
|
|
663
|
+
ratio policy and broader native test-runner adapter coverage. Neither is
|
|
664
|
+
enabled speculatively by this release.
|
|
665
|
+
- Trace annotation comment syntax is documented above. Do not create JS/TS proxy
|
|
666
|
+
files for another language.
|
|
619
667
|
- Knowledge ranking is **TF-IDF/cosine, not GraphRAG** or semantic reasoning.
|
|
620
668
|
Japanese uses character bigrams. Git co-change and author-directory counts
|
|
621
669
|
cover at most 100 commits/30 files per commit; they indicate correlation and
|