musubix3 0.1.13 → 0.1.15

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.
@@ -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.13"
6
+ "version": "0.1.15"
7
7
  },
8
8
  "plugins": [
9
9
  {
10
10
  "name": "musubix3",
11
11
  "source": ".",
12
- "version": "0.1.13",
12
+ "version": "0.1.15",
13
13
  "description": "Evidence-driven SDD without duplicating native Copilot capabilities."
14
14
  }
15
15
  ]
@@ -9,6 +9,7 @@ description: "Use as the MANDATORY first Skill for requests to develop, build, c
9
9
  */
10
10
  Mandatory entrypoint: every new natural-language development request is a new change, even in an existing Copilot session; never reuse prior requirements, approvals, TDD, or change evidence unless the user explicitly names the existing change ID and asks to continue it. never start implementation before validating requirements/design; skip only for verified approved artifacts of that explicitly continued change.
11
11
  Never infer approval; show `approval prepare <stage>` and record only its reviewed hash with `approval record <stage> --approver <name> --artifact-sha256 <hash> --confirm`.
12
+ Whenever an AI deliverable is documentation (requirements, design, ADRs, the CHANGE document, or release/quality evidence), run Copilot's native `rubber-duck` review agent on it before that phase's human approval, fixing every issue and re-reviewing until none remain.
12
13
  Follow the user's input language. Use native Copilot planning, editing, research, review, security review and subagents.
13
14
  Record exactly one final invocation outcome with `npx musubix3 workflow-record sdd-change complete --status <status>`; `change-record` separately proves phases.
14
15
  Run `workflow-sanitize <copilot.jsonl> <safe.jsonl>` before review, then
@@ -38,11 +39,10 @@ Persisted monotonic order, not wall-clock time, proves these phase boundaries.
38
39
  2. For a bug where implementation violates an existing requirement, keep that
39
40
  requirement and record that no specification change is needed. Never rewrite
40
41
  a requirement merely to make incorrect behavior appear compliant.
41
- 3. Update design responsibilities/interfaces/constraints/links and ADRs for real decisions.
42
- 4. Run requirements, constitution and design validation. Stop on invalid
43
- artifacts instead of continuing with unapproved assumptions.
44
- 5. Stop before design for explicit current `requirements` approval; stop before
45
- Red/implementation for explicit current `design` approval. Changes re-open approval.
42
+ 3. Run requirements and constitution validation; stop on invalid artifacts
43
+ instead of continuing with unapproved assumptions.
44
+ 4. Run a `rubber-duck` review (Copilot's native review agent) of `requirements.md`, fixing every issue and re-reviewing until none remain, then stop for explicit current `requirements` approval before design. An edit to `requirements.md` re-opens approval and requires re-review.
45
+ 5. Update design responsibilities/interfaces/constraints/links and ADRs, run design validation, then run the same rubber-duck review/fix loop on `design.md`/ADRs before stopping for explicit current `design` approval before Red/implementation. An edit re-opens approval and requires re-review.
46
46
  ## 3. Implement and prove coverage / 実装と網羅性
47
47
  1. For observable behavior changes and defect fixes, write the smallest meaningful
48
48
  test first. Include its `TEST-*` ID in the test name/output and link it to the
@@ -70,8 +70,6 @@ Documentation/prototypes may omit TDD only when policy allows; record the reason
70
70
  A required `formal` check enforces modeled fraction and configured solver.
71
71
  3. Run `gate --changed --json` and `status --json`. Repair failures, dangling
72
72
  links and stale evidence; never weaken requirements or policy to obtain green.
73
- 4. Treat the first otherwise-passing gate as the release candidate. Before any
74
- release operation, prepare/show its exact hash, ask one human approve/reject
75
- question and wait; record only that hash, then rerun gate/status.
73
+ 4. Treat the first otherwise-passing gate as the release candidate. Run a `rubber-duck` review of the release/quality evidence summary and the CHANGE document; fix every reported issue and re-review until zero issues remain. Before any release operation, prepare/show its exact hash, ask one human approve/reject question and wait; record only that hash, then rerun gate/status.
76
74
  5. Complete only when required checks pass and `status.gate.ready` is true;
77
75
  otherwise report blockers. One-phase work must state downstream work.
@@ -25,8 +25,12 @@ completed` exactly once.
25
25
  5. Run `npx musubix3 trace build` then `npx musubix3 trace check`.
26
26
  Do not hand-edit `trace.json`. Ask native review to inspect coupling and
27
27
  coverage; use `sdd-formal-codegraph` for compiler-based impact checks.
28
- 6. Before implementation or Red, run `approval prepare design`, show its exact
28
+ 6. Before requesting human approval, run Copilot's native `rubber-duck`
29
+ review agent on `design.md` and any related ADRs. Fix every reported
30
+ issue, then re-run the review. Repeat fix-then-review until the review
31
+ reports zero remaining issues; only then proceed to step 7.
32
+ 7. Before implementation or Red, run `approval prepare design`, show its exact
29
33
  artifacts/hash, ask one explicit approve/reject question, then wait. On approval
30
34
  only, record that hash with `approval record design --approver <name>
31
35
  --artifact-sha256 <hash> --confirm`; rejection or changes require renewed review.
32
- 7. Hand off responsibilities, interfaces, constraints and IDs to implementation.
36
+ 8. Hand off responsibilities, interfaces, constraints and IDs to implementation.
@@ -71,8 +71,5 @@ completed` exactly once.
71
71
  check all configured claims; offline strict verification fails closed.
72
72
  Ensure the baseline protects CI-required mode, strict OIDC and key binding.
73
73
  Never store a private key or overstate OIDC as proof of arbitrary runner work.
74
- 7. After required non-approval checks pass, run `approval prepare release`, show
75
- its exact hash and residual risks, ask one approve/reject question, then wait.
76
- On approval only record that hash with `approval record release --approver
77
- <name> --artifact-sha256 <hash> --confirm`; rejection stops. Rerun gate/status;
78
- stale approval blocks commit/push/publish/deploy; no resident watcher or REPL.
74
+ 7. Before requesting human approval, run Copilot's native `rubber-duck` review agent on the release evidence summary and the CHANGE document; fix every reported issue, then re-run the review, repeating until it reports zero remaining issues.
75
+ 8. After required non-approval checks pass, run `approval prepare release`, show its exact hash and residual risks, ask one approve/reject question, then wait. On approval only record that hash with `approval record release --approver <name> --artifact-sha256 <hash> --confirm`; rejection stops. Rerun gate/status; stale approval blocks commit/push/publish/deploy; no resident watcher or REPL.
@@ -50,10 +50,15 @@ After the work, run `npx musubix3 workflow-record sdd-requirements complete
50
50
  5. Validate with `npx musubix3 requirements validate <file> --json` and
51
51
  `npx musubix3 constitution validate --json`. Rules use `PRINC-001`, `RULE-001`,
52
52
  a supported `Metric:` and numeric `Limit:`. Validation is not execution evidence.
53
- 6. Validation is not human approval. Before design, run `approval prepare
53
+ 6. Before requesting human approval, run Copilot's native `rubber-duck`
54
+ review agent on `requirements.md`. Fix every reported issue, then re-run
55
+ the review. Repeat fix-then-review until the review reports zero
56
+ remaining issues; only then proceed to step 7. Do not request human
57
+ approval while rubber-duck findings remain open.
58
+ 7. Validation is not human approval. Before design, run `approval prepare
54
59
  requirements`, show its exact artifacts/hash, ask one explicit approve/reject
55
60
  question, then wait. On approval only, record that hash with `approval record
56
61
  requirements --approver <name> --artifact-sha256 <hash> --confirm`; rejection
57
62
  or any intervening artifact change stops and requires renewed review.
58
- 7. Hand off confirmed IDs and unresolved assumptions to `sdd-design`; use native
63
+ 8. Hand off confirmed IDs and unresolved assumptions to `sdd-design`; use native
59
64
  review for semantic completeness, not merely syntactic conformance.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,51 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.1.15 - 2026-09-11
4
+
5
+ Documentation/workflow update: AI-generated documentation deliverables now go
6
+ through a mandatory rubber-duck review/fix loop before human approval.
7
+
8
+ - `sdd-requirements`, `sdd-design`, `sdd-quality`, and `sdd-change` now
9
+ require a `rubber-duck` review of any AI-generated documentation artifact
10
+ (requirements.md, design.md/ADRs, the CHANGE document, and release/quality
11
+ evidence summaries) before the corresponding human approval step
12
+ (`requirements`, `design`, or `release`). Every reported issue must be
13
+ fixed and the artifact re-reviewed; only once the review reports zero
14
+ remaining issues may human review/approval be requested.
15
+ - Documented the same review/fix loop in the Workflow section of
16
+ README.md/README-ja.md.
17
+ - No CLI, schema, or validation behavior changed. Apart from the package
18
+ version metadata bump (`package.json`/`package-lock.json`), this release
19
+ only updates the bundled `.github/skills/sdd-*` guidance and documentation.
20
+
21
+ ## 0.1.14 - 2026-09-11
22
+
23
+ Fix for one issue (#17) found while running musubix3@0.1.13 against a large
24
+ real-world project (500k+ files), plus a new `upgrade` command.
25
+
26
+ - `EMFILE: too many open files` crash on large projects during `init` and
27
+ `knowledge build` (#17): `files.ts#snapshot()`, all per-language loaders in
28
+ `graph.ts`, and `knowledge.ts#buildKnowledge()`'s Markdown scan now read
29
+ files through a bounded-concurrency helper (limit 256) instead of issuing
30
+ one `Promise.all(paths.map(readFile))` per project. Verified with a
31
+ synthetic 1500-file project under `ulimit -n 300`: the old code crashed
32
+ with the exact reported error; the fixed code succeeds.
33
+ - Added a new `musubix3 upgrade [--dry-run]` command that refreshes only
34
+ the bundled `.github/skills/sdd-*` files to match the installed package
35
+ version. Unlike `init --force`, it never touches `.musubix/config.json`,
36
+ `policy-baseline.json`, `constitution.md`, ADRs, feature artifacts,
37
+ evidence, or `.gitignore`. Documented as the recommended upgrade path in
38
+ README.md/README-ja.md, alongside the existing `copilot plugin update`/
39
+ `copilot plugin marketplace update` routes for the native plugin and
40
+ marketplace install methods.
41
+
42
+ Known open debt shipped with this release (unchanged since v0.1.9, see
43
+ closed Issue #1):
44
+ - `TDD_TEST_STALE` on `TEST-CLI-WORKFLOW-UX-001..005` (cosmetic fingerprint
45
+ drift; underlying tests still pass and are not stale in behavior).
46
+ - `CHANGE-0005`/`CHANGE-0006` change-record chronology gap.
47
+ - Stale `release` approval stage (expected until the next explicit release
48
+ approval is recorded).
4
49
 
5
50
  ## 0.1.13 - 2026-09-11
6
51
 
package/README-ja.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **最新リリース v0.1.13 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
3
+ **最新リリース v0.1.14 · GitHub Copilot CLI 専用 · Node.js ≥20 · TypeScript · MIT**
4
4
 
5
5
  [English](README.md)
6
6
 
@@ -51,6 +51,26 @@ repositoryへ残します。
51
51
 
52
52
  ## クイックスタート
53
53
 
54
+ Skills をプロジェクトへ読み込む方法は2種類あり、プロジェクトごとに
55
+ どちらか1つだけを選んでください(両方は行わないでください)。
56
+
57
+ - **`npm install`(本節の内容、推奨)**: `musubix3` をプロジェクトの dev
58
+ dependency として追加し、`npx musubix3 init` で Skills を
59
+ `.github/skills/` へコピーし、雛形の `.musubix/` 成果物を作成します。
60
+ バージョンと更新はプロジェクトの `package.json`/lockfile で管理します
61
+ (`npm install ...@latest` + `npx musubix3 upgrade`。
62
+ [アップグレード](#アップグレード)参照)。Skills と雛形SDDファイルが
63
+ リポジトリ自体にコミットされるため、各コントリビューターやCIが個別に
64
+ プラグインをインストールしなくても同一の再現可能な環境になる点で推奨です。
65
+ - **`copilot plugin install`**(ネイティブプラグイン/マーケットプレイス
66
+ 経由): Copilot CLI 自体のプラグイン管理機能へ musubix3 を直接登録します。
67
+ プロジェクトへ npm dependency は追加されず、`.github/skills/` への
68
+ ファイルコピーも行われません。更新は `copilot plugin update musubix3`
69
+ (またはマーケットプレイス版)で行います。具体的なコマンドは
70
+ [配布・インストール](#配布インストール)を参照してください。
71
+
72
+ 以降はnpmインストール経由の手順です。
73
+
54
74
  再現可能なproject-local環境として、exact versionを導入します。
55
75
 
56
76
  ```sh
@@ -94,26 +114,86 @@ Copilot の内部設定、MCP、LSP、hooks、既存のプロジェクト指示
94
114
  **雛形はリリース可能な状態ではありません。** 実際の要求に置き換え、実装とテストを
95
115
  行い、検証コマンドを設定してから品質ゲートを実行してください。
96
116
 
117
+ ## アップグレード
118
+
119
+ `upgrade` は 0.1.14 以降で利用可能です(0.1.13 以前には
120
+ 存在しません。`npm view musubix3 versions` で確認してください)。
121
+
122
+ npm でインストールした場合(`init`/リポジトリローカル Skills):
123
+
124
+ ```sh
125
+ npm install --save-dev --save-exact musubix3@latest
126
+ npx --no-install musubix3 upgrade --dry-run
127
+ npx --no-install musubix3 upgrade
128
+ ```
129
+
130
+ `upgrade` は、インストール済みパッケージの内容と異なる同梱の
131
+ `.github/skills/sdd-*` ファイルだけを更新します。`.musubix/config.json`、
132
+ `.musubix/policy-baseline.json`、`.musubix/constitution.md`、ADR、各機能の
133
+ 成果物、エビデンス、`.gitignore` は作成・置換・削除しません。これらは
134
+ 自分でカスタマイズしたまま維持されます。冪等なコマンドで、インストール済み
135
+ パッケージのSkillファイルと比較するため、新しい `musubix3` を導入していない
136
+ 状態で再実行するとすべてのSkillファイルが `unchanged` と報告されます。
137
+ `init` と同様、まず `--dry-run` で確認してください。
138
+
139
+ より広範囲に同梱・管理対象パスを置換したい場合は引き続き `init --force`
140
+ も利用できますが(`.musubix/config.json`、`constitution.md`、雛形機能の
141
+ `requirements.md`/`design.md` を含む)、これらのファイルをカスタマイズ済みの
142
+ 場合はその内容を上書きしてしまうため、通常のバージョンアップでは
143
+ `upgrade` の使用を推奨します。
144
+
145
+ ネイティブプラグイン経由の場合:
146
+
147
+ ```sh
148
+ copilot plugin update musubix3
149
+ ```
150
+
151
+ ネイティブマーケットプレイス経由の場合:
152
+
153
+ ```sh
154
+ copilot plugin marketplace update musubix3-marketplace
155
+ copilot plugin update musubix3
156
+ ```
157
+
158
+ これらは Copilot 自体のプラグイン管理機能に委譲され、`plugin.json` や
159
+ マーケットプレイスカタログを再取得します。`.musubix/` には一切触れません
160
+ (`.musubix/` の成果物を管理するのは npm インストール経由の `upgrade` のみです)。
161
+ npm インストール経由の場合は `upgrade` の使用を推奨します。
162
+
97
163
  ## 配布・インストール
98
164
 
99
165
  同名 Skill の重複を避け、以下の読み込み方法から1つ選んでください。
100
166
 
101
167
  ### ネイティブプラグイン
102
168
 
169
+ どちらか一方だけを実行してください(両方は不要です):
170
+
171
+ ```sh
172
+ copilot plugin install ./musubix3 # ローカルクローンから(その親ディレクトリで実行)
173
+ ```
174
+
103
175
  ```sh
104
- copilot plugin install ./musubix3
105
- copilot plugin install nahisaho/musubix3
176
+ copilot plugin install nahisaho/musubix3 # 公開GitHubリポジトリから(ローカルクローン不要)
106
177
  ```
107
178
 
108
179
  リポジトリ直下の `plugin.json` が唯一のプラグイン定義元であり、
109
180
  `.github/skills/` を参照します。Git からのプラグイン導入だけでは npm エンジンの
110
181
  依存解決・ビルドは行われません。CLI は別途ビルド、または npm で導入してください。
111
182
 
112
- `npx musubix3 plugin-install` は `copilot plugin install <package-root>` を実行する
113
- だけで、Copilot 内部を編集しません。永続的なローカルパスには
114
- `npm install --save-dev --save-exact musubix3@latest` と
115
- `npx --no-install musubix3 plugin-install` を推奨します。
116
- 一時的な npx キャッシュのパスに依存しないでください。
183
+ 同じ `copilot plugin install` を実行する第三の方法として、一時的な npx
184
+ キャッシュではなく永続的なローカルパスを使いたい場合は、上記2つのコマンドの
185
+ **代わりに**(両方ではなく)次を実行します:
186
+
187
+ ```sh
188
+ npm install --save-dev --save-exact musubix3@latest
189
+ npx --no-install musubix3 plugin-install
190
+ ```
191
+
192
+ `plugin-install` は `copilot plugin install <package-root>` を実行するだけで
193
+ Copilot 内部を編集せず、[クイックスタート](#クイックスタート)のnpmインストール経由の
194
+ Skillコピールートとは無関係です(`init` は実行されず、`.github/skills/` へ
195
+ ファイルはコピーされません)。同一プロジェクトで `npx musubix3 init` と
196
+ 一緒に実行しないでください。
117
197
 
118
198
  ### ネイティブマーケットプレイス
119
199
 
@@ -168,17 +248,25 @@ Copilot の提案を記号的検査で制約する構成であり、独自の「
168
248
  要求を確定しません。
169
249
 
170
250
  1. ネイティブ計画・調査で意図と測定可能な受入条件を明確化。
171
- 2. `change-record CHANGE-ID impact` を記録して要求を編集・検証し、
172
- `requirements` checkpoint後、設計前にartifact-boundな人間の
173
- `requirements`承認を明示的に記録。
174
- 3. コンポーネントとADRを更新して `design` checkpointを記録し、
175
- 実装前にartifact-boundな人間の`design`承認を明示的に記録。
251
+ 2. `change-record CHANGE-ID impact` を記録して要求を編集・検証し、要求文書の
252
+ `rubber-duck`レビューを実施して指摘事項をすべて修正(指摘がゼロになるまで
253
+ レビュー・修正を繰り返す)、`requirements` checkpoint後、設計前に
254
+ artifact-boundな人間の`requirements`承認を明示的に記録。
255
+ 3. コンポーネントとADRを更新し、設計文書・ADRの`rubber-duck`レビューを実施して
256
+ 指摘事項をすべて修正(指摘がゼロになるまで繰り返す)、`design` checkpoint
257
+ を記録し、実装前にartifact-boundな人間の`design`承認を明示的に記録。
176
258
  4. 注釈付きテストを作成し、構造化結果を伴う `tdd red` と変更の `red` を記録。
177
259
  5. 最小実装後に `implementation`、成功する `tdd green`、変更の `green` を記録。
178
260
  6. 注釈とグラフを更新して変更影響・網羅性を確認。
179
- 7. 実コマンドで候補品質ゲートを実行。承認以外の必須checkがすべて合格した後、
180
- 人間が`release`承認を記録してgate/statusを再実行し、その後だけ
181
- commit・push・publish・deployへ進む。検証結果や自然言語から承認を推測しない。
261
+ 7. 実コマンドで候補品質ゲートを実行。リリース・品質エビデンス要約の
262
+ `rubber-duck`レビューを実施して指摘事項をすべて修正(指摘がゼロになるまで
263
+ 繰り返す)。承認以外の必須checkがすべて合格した後、人間が`release`承認を
264
+ 記録してgate/statusを再実行し、その後だけcommit・push・publish・deployへ
265
+ 進む。検証結果や自然言語から承認を推測しない。
266
+
267
+ AIが生成した文書成果物(要求、設計、ADR、CHANGE文書、リリース・品質エビデンス
268
+ 要約)は、対応する人間承認を依頼する**前**に、指摘事項がゼロになるまでこの
269
+ `rubber-duck`レビュー・修正ループを実施する。
182
270
 
183
271
  ```sh
184
272
  npx musubix3 requirements validate .musubix/features/example/requirements.md --json
@@ -245,6 +333,7 @@ npx musubix3 tdd green TEST-EXAMPLE-002 --requirement REQ-EXAMPLE-002 --command
245
333
  | コマンド | 動作 |
246
334
  |---|---|
247
335
  | `init [--dry-run] [--force] [--feature slug]` | 既存ファイル保持の配置。`install` は別名 |
336
+ | `upgrade [--dry-run]` | 同梱Skillファイルのみ更新。config・constitution・機能成果物には触れない |
248
337
  | `plugin-install` | ネイティブ Copilot インストーラーを呼び出す |
249
338
  | `requirements validate <file>` | ID・優先度・EARS 形式検査 |
250
339
  | `constitution validate [file]` | 版・原則・測定可能な規則の定義検査 |
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # musubix3
2
2
 
3
- **Latest release v0.1.13 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
3
+ **Latest release v0.1.14 · GitHub Copilot CLI only · Node.js ≥20 · TypeScript · MIT**
4
4
 
5
5
  [日本語](README-ja.md)
6
6
 
@@ -52,6 +52,27 @@ does this repository's configured policy consider the change ready?”
52
52
 
53
53
  ## Quick start
54
54
 
55
+ There are two ways to load musubix3's skills into a project — pick exactly
56
+ one per project, never both:
57
+
58
+ - **`npm install` (this section, recommended)**: add `musubix3` as a project
59
+ dev dependency, then run `npx musubix3 init` to copy the skills into
60
+ `.github/skills/` and scaffold starter `.musubix/` artifacts. Version and
61
+ upgrades are tracked in your project's `package.json`/lockfile
62
+ (`npm install ...@latest` + `npx musubix3 upgrade`); see
63
+ [Upgrade](#upgrade). Recommended because the skills and starter SDD
64
+ artifacts are committed to the repository itself, so every contributor and
65
+ CI job gets the same reproducible setup without each of them running a
66
+ separate plugin install.
67
+ - **`copilot plugin install`** (native plugin/marketplace route): register
68
+ musubix3 directly with Copilot CLI's own plugin manager — no npm
69
+ dependency is added to the project, and no files are copied into
70
+ `.github/skills/`. Upgraded with `copilot plugin update musubix3` (or the
71
+ marketplace equivalent). See
72
+ [Distribution options](#distribution-options) for the exact commands.
73
+
74
+ The rest of this section documents the npm install route.
75
+
55
76
  For a reproducible project-local installation:
56
77
 
57
78
  ```sh
@@ -97,15 +118,65 @@ targets and paths escaping the project are refused.
97
118
  The starter is deliberately **not release-ready**: replace its example, implement
98
119
  and test it, and configure real check commands before expecting the gate to pass.
99
120
 
121
+ ## Upgrade
122
+
123
+ `upgrade` is available starting with 0.1.14 (not in 0.1.13 or earlier — check
124
+ with `npm view musubix3 versions`).
125
+
126
+ For the npm-installed route (`init`/repository-local skills):
127
+
128
+ ```sh
129
+ npm install --save-dev --save-exact musubix3@latest
130
+ npx --no-install musubix3 upgrade --dry-run
131
+ npx --no-install musubix3 upgrade
132
+ ```
133
+
134
+ `upgrade` refreshes only the bundled `.github/skills/sdd-*` files that differ
135
+ from the installed package version. It never creates, replaces, or deletes
136
+ `.musubix/config.json`, `.musubix/policy-baseline.json`,
137
+ `.musubix/constitution.md`, ADRs, feature artifacts, evidence, or
138
+ `.gitignore` — those are yours to keep customizing. It is idempotent: it
139
+ compares against the currently installed package's skill files, so running it
140
+ again without first installing a newer `musubix3` version reports every skill
141
+ file as `unchanged`. Review `--dry-run` first, same as `init`.
142
+
143
+ `init --force` remains available for replacing bundled/managed paths more
144
+ broadly (including `.musubix/config.json`, `constitution.md`, and the
145
+ starter feature's `requirements.md`/`design.md`), but it overwrites
146
+ customized content in those files, so prefer `upgrade` for routine version
147
+ bumps.
148
+
149
+ For the native plugin route:
150
+
151
+ ```sh
152
+ copilot plugin update musubix3
153
+ ```
154
+
155
+ For the native marketplace route:
156
+
157
+ ```sh
158
+ copilot plugin marketplace update musubix3-marketplace
159
+ copilot plugin update musubix3
160
+ ```
161
+
162
+ These delegate to Copilot's own plugin manager, which re-fetches
163
+ `plugin.json`/the marketplace catalog; they do not touch `.musubix/` at all
164
+ (only the npm-installed route manages `.musubix/` artifacts).
165
+
100
166
  ## Distribution options
101
167
 
102
168
  Choose one skill-loading route to avoid duplicate skill names.
103
169
 
104
170
  ### Native plugin (direct)
105
171
 
172
+ Pick exactly one of the following (not both):
173
+
174
+ ```sh
175
+ copilot plugin install ./musubix3 # local clone, from its parent directory
176
+ ```
177
+
106
178
  ```sh
107
- copilot plugin install ./musubix3 # built/local clone, from its parent
108
- copilot plugin install nahisaho/musubix3 # published GitHub repository
179
+ copilot plugin install nahisaho/musubix3 # published GitHub repository, no local clone needed
109
180
  ```
110
181
 
111
182
  `plugin.json` at the repository root is the source of truth and references
@@ -113,11 +184,20 @@ copilot plugin install nahisaho/musubix3 # published GitHub repository
113
184
  services. Git installs do not compile/install the npm engine: build the clone or
114
185
  install the npm package separately when running `npx musubix3` commands.
115
186
 
116
- From an installed npm package, `npx musubix3 plugin-install` delegates directly to
117
- `copilot plugin install <absolute-package-root>`. It does not edit Copilot
118
- internals. For a durable local plugin path, prefer
119
- `npm install --save-dev --save-exact musubix3@latest`
120
- and `npx --no-install musubix3 plugin-install` over an ephemeral npx cache.
187
+ There is a third way to run the same `copilot plugin install`, useful only if
188
+ you want a durable local path instead of an ephemeral npx cache — do this
189
+ **instead of**, not in addition to, the two commands above:
190
+
191
+ ```sh
192
+ npm install --save-dev --save-exact musubix3@latest
193
+ npx --no-install musubix3 plugin-install
194
+ ```
195
+
196
+ `plugin-install` only calls `copilot plugin install <absolute-package-root>`
197
+ for you; it does not edit Copilot internals, and it is unrelated to the
198
+ npm-installed skill-copy route in [Quick start](#quick-start) — it never runs
199
+ `init` and never copies files into `.github/skills/`. Do not run both this and
200
+ `npx musubix3 init` in the same project.
121
201
 
122
202
  ### Native marketplace
123
203
 
@@ -172,11 +252,15 @@ question at a time and waits for the answer; it does not batch questions or
172
252
  finalize requirements while blockers remain.
173
253
 
174
254
  1. Use native planning/research to establish intent and measurable acceptance.
175
- 2. Record `change-record CHANGE-ID impact`, edit/validate requirements, record
176
- the `requirements` checkpoint, then obtain explicit artifact-bound human
177
- `requirements` approval before design.
178
- 3. Design explicit components, record trade-offs in ADRs, record `design`, then
179
- obtain explicit artifact-bound human `design` approval before implementation.
255
+ 2. Record `change-record CHANGE-ID impact`, edit/validate requirements, run a
256
+ `rubber-duck` review of the requirements document and fix every finding
257
+ (repeat review/fix until zero issues remain), record the `requirements`
258
+ checkpoint, then obtain explicit artifact-bound human `requirements`
259
+ approval before design.
260
+ 3. Design explicit components, record trade-offs in ADRs, run a `rubber-duck`
261
+ review of the design document/ADRs and fix every finding (repeat until zero
262
+ issues remain), record `design`, then obtain explicit artifact-bound human
263
+ `design` approval before implementation.
180
264
  4. Write an annotated behavior test, record a structured failing `tdd red`, then
181
265
  record the change `red` checkpoint.
182
266
  5. Implement the minimum change, record `implementation`, run passing `tdd green`,
@@ -186,10 +270,17 @@ finalize requirements while blockers remain.
186
270
  Red-Implementation-Green loop before moving to the next, instead of
187
271
  completing every requirement's Red before any Implementation.
188
272
  6. Add trace annotations, build graphs, inspect impact and fix missing coverage.
189
- 7. Configure real checks and run the candidate `gate --changed`. After every
190
- required non-approval check passes, obtain explicit human `release` approval,
273
+ 7. Configure real checks and run the candidate `gate --changed`. Run a
274
+ `rubber-duck` review of the release/quality evidence summary and fix every
275
+ finding (repeat until zero issues remain). After every required
276
+ non-approval check passes, obtain explicit human `release` approval,
191
277
  rerun the gate/status, and only then commit, push, publish, or deploy.
192
278
 
279
+ Any AI-generated documentation deliverable (requirements, design, ADRs, the
280
+ CHANGE document, or release/quality evidence summaries) goes through this
281
+ `rubber-duck` review/fix loop until zero issues remain **before** the
282
+ corresponding human approval step is requested.
283
+
193
284
  ```sh
194
285
  npx musubix3 requirements validate .musubix/features/example/requirements.md --json
195
286
  npx musubix3 constitution validate --json
@@ -290,6 +381,7 @@ validation/gate or requested solver failure, **2** usage, I/O or malformed confi
290
381
  | Command | Behavior |
291
382
  |---|---|
292
383
  | `init [--dry-run] [--force] [--feature slug]` | Preserve-first skills/artifacts installation; `install` alias |
384
+ | `upgrade [--dry-run]` | Refresh bundled skill files only; never touches config, constitution, or feature artifacts |
293
385
  | `plugin-install` | Invoke native Copilot installer (no internal config edits) |
294
386
  | `requirements validate <file>` | IDs, priorities, declared/detected EARS pattern |
295
387
  | `constitution validate [file]` | Versioned principles and measurable rule definitions |
@@ -17,4 +17,10 @@ export declare function isTraceSource(path: string): boolean;
17
17
  export declare function isSkillSource(path: string): boolean;
18
18
  export declare function isArtifact(path: string): boolean;
19
19
  export declare function evidenceInputPaths(paths: string[]): string[];
20
+ export declare const FILE_READ_CONCURRENCY = 256;
21
+ /** @id CODE-BOUNDED-FILE-READ-CONCURRENCY-001
22
+ * @implements REQ-BOUNDED-FILE-READ-CONCURRENCY-001 REQ-BOUNDED-FILE-READ-CONCURRENCY-002
23
+ * @design DES-BOUNDED-FILE-READ-CONCURRENCY-001
24
+ */
25
+ export declare function mapWithConcurrency<T, R>(items: T[], limit: number, worker: (item: T, index: number) => Promise<R>): Promise<R[]>;
20
26
  export declare function snapshot(root: string, paths: string[]): Promise<Record<string, string>>;
@@ -153,8 +153,29 @@ export function evidenceInputPaths(paths) {
153
153
  && !/^\.github\/skills\//.test(path)
154
154
  && !/(?:^|\/)(?:logs?|session-logs)\//.test(path));
155
155
  }
156
+ // Fixed pool size chosen to stay comfortably under common OS file-descriptor
157
+ // limits (commonly 1024 on Linux/WSL) even on projects with large,
158
+ // unexcluded vendored source trees (ADR-0018).
159
+ export const FILE_READ_CONCURRENCY = 256;
160
+ /** @id CODE-BOUNDED-FILE-READ-CONCURRENCY-001
161
+ * @implements REQ-BOUNDED-FILE-READ-CONCURRENCY-001 REQ-BOUNDED-FILE-READ-CONCURRENCY-002
162
+ * @design DES-BOUNDED-FILE-READ-CONCURRENCY-001
163
+ */
164
+ export async function mapWithConcurrency(items, limit, worker) {
165
+ const results = new Array(items.length);
166
+ let cursor = 0;
167
+ async function run() {
168
+ while (cursor < items.length) {
169
+ const index = cursor;
170
+ cursor += 1;
171
+ results[index] = await worker(items[index], index);
172
+ }
173
+ }
174
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, run));
175
+ return results;
176
+ }
156
177
  export async function snapshot(root, paths) {
157
- const entries = await Promise.all(paths.map(async (path) => [path, digest(await readFile(await safePath(root, path)))]));
178
+ const entries = await mapWithConcurrency(paths, FILE_READ_CONCURRENCY, async (path) => [path, digest(await readFile(await safePath(root, path)))]);
158
179
  return Object.fromEntries(entries);
159
180
  }
160
181
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../packages/analysis/src/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../packages/analysis/src/files.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,10 @@ export interface CodeGraph {
38
38
  fingerprints: Record<string, string>;
39
39
  }
40
40
  export declare function graphInputs(root: string): Promise<string[]>;
41
+ /** @id CODE-BOUNDED-FILE-READ-CONCURRENCY-002
42
+ * @implements REQ-BOUNDED-FILE-READ-CONCURRENCY-002
43
+ * @design DES-BOUNDED-FILE-READ-CONCURRENCY-002
44
+ */
41
45
  export declare function indexGraph(root: string, persist?: boolean): Promise<CodeGraph>;
42
46
  export declare function loadGraph(root: string): Promise<CodeGraph>;
43
47
  export declare function graphImpact(graph: CodeGraph, query: string): {