spec-runner 1.1.18 → 1.3.0

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/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  # spec-runner
2
2
 
3
- `spec-runner` は、`docs/` を正本にして開発を進める運用ハーネスを、**Claude Code(`.claude/`)** と **GitHub Copilot(`.github/`)** に導入するインストーラ。
3
+ AI は設計を飛ばして実装に走る。`docs/` があっても読まないし、仕様が曖昧なまま動くコードを返す。
4
4
 
5
- 主線は `要件定義 -> 概要設計 -> 詳細設計 -> TDD -> 実装`。rules / agents / skills はその流れを安定運用するために配る。
5
+ `spec-runner` はそれを防ぐ。**`docs/` を正本にした開発フロー**を AI に守らせるための rules / agents / skills を、**Claude Code(`.claude/`)** と **GitHub Copilot(`.github/`)** にインストーラ一発で配る。
6
+
7
+ フローは `要件定義 → 概要設計 → 詳細設計 → TDD → 実装`。AI はこの順序で docs を読み書きしながら進み、設計なしに実装フェーズへ進めない。
8
+
9
+ インストール後は `architecture-skill-development` を使ってプロジェクトのアーキテクチャを定義し、そこから **プロジェクト専用 skill** を生やす。汎用 skill はその土台にすぎない。
6
10
 
7
11
  ## インストール
8
12
 
@@ -42,15 +46,22 @@ curl -sSL https://raw.githubusercontent.com/TEEE88/spec-runner/main/install.sh |
42
46
 
43
47
  ### 同梱するベース skill
44
48
 
49
+ **セットアップ用**(プロジェクト初期に使い、完了後はアーカイブする)
50
+
45
51
  - `architecture-definition`: 新規プロジェクトで docs と architecture contract を起こす
46
52
  - `existing-project-to-docs`: 既存コードから docs の draft と構造化情報を起こす
47
53
  - `architecture-skill-development`: architecture contract から project 専用 skill を育てる
48
- - `plugin-development`: プラグイン型アーキテクチャ向けの reference workflow
49
- - `design-change`: 変更要求に対して影響調査 -> ADR -> 設計修正 -> TDD で進める
54
+ - `docs-driven-seed`: DDD 向けの project 専用 skill の種(`style: ddd` のとき)
55
+ - `simple-seed`: レイヤードアーキテクチャ向けの project 専用 skill の種(`style: layered` のとき)
56
+
57
+ **開発ループ用**(日常的に使う)
58
+
59
+ - `design-change`: 変更要求に対して影響調査 → ADR → 設計修正 → TDD で進める
50
60
  - `test-driven-development`: アプリケーションコード向けの TDD を徹底する
51
61
  - `harness-engineering`: rules / agents / skills / templates 自体を改善する
62
+ - `commit`: コミットメッセージの生成とコミット実行
52
63
 
53
- `docs/` や `.spec-runner/` の中身は、導入後にこれらの skill を使ってプロジェクトごとに作る。
64
+ `docs/` の中身は、導入後にこれらの skill を使ってプロジェクトごとに作る。
54
65
 
55
66
  ## 推奨フロー
56
67
 
@@ -87,13 +98,9 @@ SPEC_RUNNER_FORCE=1 npx spec-runner
87
98
  - `spec-runner/templates/.claude/`
88
99
  - `spec-runner/templates/.github/`
89
100
 
90
- ### 構想メモ
91
-
92
- - `docs/ハーネスエンジニアリング構想.md`
93
-
94
101
  ## バージョン運用ルール
95
102
 
96
- - このリポジトリでは **コミットごとに `package.json` の `version` を更新**する
103
+ - **開発のたびに `package.json` の `version` を更新してからコミットする**
97
104
  - バージョンは原則 SemVer に従い、迷う場合はパッチを 1 つ上げる
98
105
 
99
106
  ## ライセンス
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-runner",
3
- "version": "1.1.18",
3
+ "version": "1.3.0",
4
4
  "description": "docs を正本にした開発運用ハーネスを Claude / Copilot に導入する",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -15,9 +15,10 @@ model: sonnet
15
15
 
16
16
  1. `git diff --name-only` で変更ファイルを確認する
17
17
  2. 変更ファイルに対応するテストファイルを特定する(`tests/` 配下の同構造)
18
- 3. テストを実行する:
19
- - 対象テストが明確な場合: `<your-test-command> <test-file> -v`
20
- - 全体実行が必要な場合: `<your-test-command> -v`
18
+ 3. `.claude/rules/testing.md` を読んでテスト実行コマンドを確認する
19
+ 4. テストを実行する:
20
+ - 対象テストが明確な場合: テストコマンド + `<test-file> -v`
21
+ - 全体実行が必要な場合: 全テストコマンド + `-v`
21
22
  4. 結果を分析する
22
23
 
23
24
  ## 失敗時の分析
@@ -24,10 +24,22 @@ paths: ["src/**", "tests/**"]
24
24
 
25
25
  ## コメント
26
26
 
27
+ ### 原則(全プロジェクト共通)
28
+
27
29
  - **言語**: 日本語
28
- - **インラインコメント**: ビジネスロジックの「なぜ」を説明する場合のみ。処理内容の「何」は書かない
29
30
  - **変更履歴コメント禁止**: 変更経緯はコードに書かない。git の commit message で管理する
30
31
 
32
+ ### プロジェクト固有の決定事項
33
+
34
+ > `architecture-skill-development` で以下をチームで合意し、`<...>` を書き換える。
35
+
36
+ - **インラインコメント(なぜ)**: `<ビジネスロジックの判断理由は必ず書く / 任意>`
37
+ - **処理ブロックのコメント(何)**: `<禁止(命名で表現する) / 複雑なフローに限り許可>`
38
+ - **ファイル / モジュールレベルのコメント**: `<必須 / 任意 / 不要>`
39
+ - **関数・クラスの docコメント**: `<常に必須 / 公開 API のみ / 複雑なものだけ / 不要>`
40
+ - **TODO / FIXME マーカー**: `<許可する(課題管理ツールの番号を添える) / 禁止>`
41
+ - **セクション区切りコメント**: `<許可する場合はフォーマットを記載 / 禁止>`
42
+
31
43
  ## 言語・型固有ルール
32
44
 
33
45
  > このセクションを言語・フレームワークに合わせて書き換える。
@@ -45,10 +45,10 @@ spec_runner:
45
45
  |------|-------------|-----|
46
46
  | 要件定義 | `requirement.{名前}` | `requirement.要件定義` |
47
47
  | システム全体俯瞰 | `overview.system_context` | — |
48
- | ドメインモデル | `overview.domain_model` | — |
48
+ | ドメインモデル(style: ddd のみ) | `overview.domain_model` | — |
49
49
  | ユースケース一覧 | `overview.use_case_list` | — |
50
50
  | ADR | `overview.adr.{slug}` | `overview.adr.0404-ドメイン-注文集約` |
51
- | ドメイン詳細設計 | `detail.domain.{ドメイン名}` | `detail.domain.注文` |
51
+ | ドメイン詳細設計(style: ddd のみ) | `detail.domain.{ドメイン名}` | `detail.domain.注文` |
52
52
  | UC 詳細設計 | `detail.usecase.{UC名}` | `detail.usecase.注文確定` |
53
53
  | DB・外部サービス | `detail.db.{名前}` | `detail.db.スキーマ定義` |
54
54
 
@@ -57,12 +57,13 @@ spec_runner:
57
57
  | 対象 | 規則 | 例 |
58
58
  |------|------|-----|
59
59
  | `docs/01_要件定義` | 日本語 | `要件定義.md`, `ユビキタス言語辞書.md` |
60
- | `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md`, `ドメインモデル.md` |
60
+ | `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md` |
61
+ | `docs/02_概要設計`(style: ddd のみ) | 日本語 | `ドメインモデル.md` |
61
62
  | `docs/02_概要設計/90_ADR/{対象}/` | `mmdd-{日本語タイトル}.md` | `0404-注文集約の設計.md` |
62
63
  | `{対象}` の選択肢 | `全体` / `ドメイン` / `UC` / `DB` | — |
63
- | `docs/03_詳細設計/01_ドメイン` | 日本語 | `注文.md`, `在庫.md` |
64
- | `docs/03_詳細設計/02_ユースケース` | `UC-{日本語名}.md` | `UC-注文確定.md` |
65
- | `docs/03_詳細設計/03_DB・外部サービス` | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
64
+ | `docs/03_詳細設計/01_ドメイン`(style: ddd のみ) | 日本語 | `注文.md`, `在庫.md` |
65
+ | `docs/03_詳細設計/02_ユースケース`(style: ddd) / `01_ユースケース`(style: layered) | `UC-{日本語名}.md` | `UC-注文確定.md` |
66
+ | `docs/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
66
67
 
67
68
  ## ADR
68
69
 
@@ -84,7 +85,7 @@ spec_runner:
84
85
  - 「関連ドキュメント」セクションを設計書に作らない。依存関係は frontmatter の `depends_on` で管理する
85
86
  - 「スケジュール」セクションを設計書に作らない。進捗管理は設計書の責務ではない
86
87
 
87
- ## ドメインモデルとデータモデルの分離
88
+ ## ドメインモデルとデータモデルの分離(style: ddd のみ)
88
89
 
89
90
  ドメインモデルとデータモデルは別物であり、置き場所も内容も分ける。
90
91
 
@@ -0,0 +1,39 @@
1
+ ---
2
+ description: テスト実行コマンドと種別構成。test-driven-development スキルと test-runner エージェントの両方がここを参照する。
3
+ paths: ["src/**", "tests/**"]
4
+ ---
5
+
6
+ # テスト実行コマンド
7
+
8
+ > このファイルは `architecture-skill-development` でプロジェクト固有のコマンドに書き換えてください。
9
+
10
+ ## 実行コマンド
11
+
12
+ ```bash
13
+ # 単体テスト(高速・毎回実行)
14
+ <your-unit-test-command>
15
+
16
+ # 結合テスト
17
+ <your-integration-test-command>
18
+
19
+ # E2E テスト
20
+ <your-e2e-test-command>
21
+
22
+ # 全テスト
23
+ <your-all-test-command>
24
+
25
+ # 特定ファイル
26
+ <your-test-command> <test-file>
27
+
28
+ # カバレッジ計測
29
+ <your-test-command> --coverage
30
+ ```
31
+
32
+ ## テスト構成
33
+
34
+ ```
35
+ tests/
36
+ unit/ # 単体テスト(src/ と同じ構造を鏡写し)
37
+ integration/ # 結合テスト
38
+ e2e/ # E2E テスト
39
+ ```
@@ -65,11 +65,11 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
65
65
 
66
66
  > 以降の書き換えはすべて `architecture.yaml` の `integrations` に従う。`claude` のみなら `.claude/` だけ、`github` のみなら `.github/` だけ、両方なら対で更新する。
67
67
 
68
- ### test-driven-development の書き換え
68
+ ### testing.md の書き換え
69
69
 
70
- `architecture.yaml` の `testing_policy` と `language` を参照して、以下を実際の値に置き換える。
70
+ `rules/testing.md`(GitHub Copilot は `instructions/testing.instructions.md`)はテスト実行コマンドの単一ソースとして `test-driven-development` スキルと `test-runner` エージェントの両方から参照される。`architecture.yaml` の `testing_policy` を参照して書き換える。
71
71
 
72
- 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
72
+ 1. **テスト実行コマンド**: `<your-unit-test-command>` / `<your-integration-test-command>` 等を実際のコマンドに書き換える
73
73
 
74
74
  例:
75
75
  ```bash
@@ -83,20 +83,19 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
83
83
  docker compose run --rm test pytest --cov=. --cov-report=term-missing
84
84
  ```
85
85
 
86
- 2. **コード例**: 言語・フレームワークに合わせて RED / GREEN の例を書き直す
87
-
88
- 3. **fixture / テストデータ**: このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
89
-
90
- 4. **モックのルール**: 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
86
+ 2. **テスト構成**: `tests/` のディレクトリ構成が実態と異なる場合は書き換える
91
87
 
92
88
  上記の `integrations` ルールに従って反映する。
93
89
 
94
- ### test-runner エージェントの書き換え
90
+ ### test-driven-development の書き換え(テストコマンド以外)
95
91
 
96
- `architecture.yaml` の `testing_policy` を参照して、以下を実際の値に置き換える。
92
+ `architecture.yaml` の `language` を参照して、以下を実際の値に置き換える。
97
93
 
98
- 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
99
- 2. **説明文**: 実行環境(Docker / ローカル など)が分かるよう補足する
94
+ 1. **コード例**: 言語・フレームワークに合わせて RED / GREEN の例を書き直す
95
+ 2. **fixture / テストデータ**: このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
96
+ 3. **モックのルール**: 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
97
+
98
+ 上記の `integrations` ルールに従って反映する。
100
99
 
101
100
  ### 影響範囲チェックリストの書き換え
102
101
 
@@ -110,8 +109,10 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
110
109
  `architecture.yaml` の `language` と `folder_structure` を参照して、以下を実際の値に置き換える。
111
110
 
112
111
  1. **命名規則**: 言語の慣習に合わせてテーブルの規則・例を書き換える
113
- 2. **言語・型固有ルール**: `<your-language-and-type-rules>` を言語・フレームワークに合わせた具体的なルールに書き換える
114
- 3. **プロジェクト構造**: `<your-project-structure>` を `folder_structure` の実際のディレクトリ構成に書き換える
112
+ 2. **コメント規約**: `## コメント` の「プロジェクト固有の決定事項」をユーザーと合意してから書き換える
113
+ - インラインコメント(なぜ)・処理ブロック(何)・docコメント・TODO/FIXME・セクション区切りの各方針を決定する
114
+ 3. **言語・型固有ルール**: `<your-language-and-type-rules>` を言語・フレームワークに合わせた具体的なルールに書き換える
115
+ 4. **プロジェクト構造**: `<your-project-structure>` を `folder_structure` の実際のディレクトリ構成に書き換える
115
116
 
116
117
  上記の `integrations` ルールに従って反映する。
117
118
 
@@ -148,6 +149,7 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
148
149
  4. `.spec-runner/` の不要ファイルも整理する
149
150
  - `intake/current-system-inventory.md` — docs に昇格済みなら削除してよい
150
151
  - `architecture/architecture.yaml` — project 専用 skill が完成し、参照不要になったら削除してよい
152
+ - `scripts/scan.js` — **削除しない**。`@impact-analyzer` が常時依存しているため
151
153
  5. `CLAUDE.md` を更新する
152
154
  - 「初回自動起動」セクション(spec-runner インストール時に生成されたもの)を削除する
153
155
  - 作成した project 専用 skill の名前と使いどころを記載する
@@ -95,28 +95,7 @@ description: 新機能実装やバグ修正を行う際、実装コードを書
95
95
 
96
96
  ## テスト実行コマンド
97
97
 
98
- > このスキルはテンプレートとして配布されます。
99
- > `architecture-skill-development` を使ってプロジェクト固有のコマンドに書き換えてください。
100
-
101
- ```bash
102
- # 単体テスト(高速・毎回実行)
103
- <your-unit-test-command>
104
-
105
- # 結合テスト
106
- <your-integration-test-command>
107
-
108
- # E2E テスト
109
- <your-e2e-test-command>
110
-
111
- # 全テスト
112
- <your-test-command>
113
-
114
- # 特定ファイル
115
- <your-test-command> <test-file>
116
-
117
- # カバレッジ計測
118
- <your-test-command> --coverage
119
- ```
98
+ `.claude/rules/testing.md` に記載されたコマンドを使う。
120
99
 
121
100
  ## Red-Green-Refactor
122
101
 
@@ -15,9 +15,10 @@ model: sonnet
15
15
 
16
16
  1. `git diff --name-only` で変更ファイルを確認する
17
17
  2. 変更ファイルに対応するテストファイルを特定する(`tests/` 配下の同構造)
18
- 3. テストを実行する:
19
- - 対象テストが明確な場合: `<your-test-command> <test-file> -v`
20
- - 全体実行が必要な場合: `<your-test-command> -v`
18
+ 3. `.github/instructions/testing.instructions.md` を読んでテスト実行コマンドを確認する
19
+ 4. テストを実行する:
20
+ - 対象テストが明確な場合: テストコマンド + `<test-file> -v`
21
+ - 全体実行が必要な場合: 全テストコマンド + `-v`
21
22
  4. 結果を分析する
22
23
 
23
24
  ## 失敗時の分析
@@ -23,10 +23,22 @@ applyTo: "src/**,tests/**"
23
23
 
24
24
  ## コメント
25
25
 
26
+ ### 原則(全プロジェクト共通)
27
+
26
28
  - **言語**: 日本語
27
- - **インラインコメント**: ビジネスロジックの「なぜ」を説明する場合のみ。処理内容の「何」は書かない
28
29
  - **変更履歴コメント禁止**: 変更経緯はコードに書かない。git の commit message で管理する
29
30
 
31
+ ### プロジェクト固有の決定事項
32
+
33
+ > `architecture-skill-development` で以下をチームで合意し、`<...>` を書き換える。
34
+
35
+ - **インラインコメント(なぜ)**: `<ビジネスロジックの判断理由は必ず書く / 任意>`
36
+ - **処理ブロックのコメント(何)**: `<禁止(命名で表現する) / 複雑なフローに限り許可>`
37
+ - **ファイル / モジュールレベルのコメント**: `<必須 / 任意 / 不要>`
38
+ - **関数・クラスの docコメント**: `<常に必須 / 公開 API のみ / 複雑なものだけ / 不要>`
39
+ - **TODO / FIXME マーカー**: `<許可する(課題管理ツールの番号を添える) / 禁止>`
40
+ - **セクション区切りコメント**: `<許可する場合はフォーマットを記載 / 禁止>`
41
+
30
42
  ## 言語・型固有ルール
31
43
 
32
44
  > このセクションを言語・フレームワークに合わせて書き換える。
@@ -44,10 +44,10 @@ spec_runner:
44
44
  |------|-------------|-----|
45
45
  | 要件定義 | `requirement.{名前}` | `requirement.要件定義` |
46
46
  | システム全体俯瞰 | `overview.system_context` | — |
47
- | ドメインモデル | `overview.domain_model` | — |
47
+ | ドメインモデル(style: ddd のみ) | `overview.domain_model` | — |
48
48
  | ユースケース一覧 | `overview.use_case_list` | — |
49
49
  | ADR | `overview.adr.{slug}` | `overview.adr.0404-ドメイン-注文集約` |
50
- | ドメイン詳細設計 | `detail.domain.{ドメイン名}` | `detail.domain.注文` |
50
+ | ドメイン詳細設計(style: ddd のみ) | `detail.domain.{ドメイン名}` | `detail.domain.注文` |
51
51
  | UC 詳細設計 | `detail.usecase.{UC名}` | `detail.usecase.注文確定` |
52
52
  | DB・外部サービス | `detail.db.{名前}` | `detail.db.スキーマ定義` |
53
53
 
@@ -56,12 +56,13 @@ spec_runner:
56
56
  | 対象 | 規則 | 例 |
57
57
  |------|------|-----|
58
58
  | `docs/01_要件定義` | 日本語 | `要件定義.md`, `ユビキタス言語辞書.md` |
59
- | `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md`, `ドメインモデル.md` |
59
+ | `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md` |
60
+ | `docs/02_概要設計`(style: ddd のみ) | 日本語 | `ドメインモデル.md` |
60
61
  | `docs/02_概要設計/90_ADR/{対象}/` | `mmdd-{日本語タイトル}.md` | `0404-注文集約の設計.md` |
61
62
  | `{対象}` の選択肢 | `全体` / `ドメイン` / `UC` / `DB` | — |
62
- | `docs/03_詳細設計/01_ドメイン` | 日本語 | `注文.md`, `在庫.md` |
63
- | `docs/03_詳細設計/02_ユースケース` | `UC-{日本語名}.md` | `UC-注文確定.md` |
64
- | `docs/03_詳細設計/03_DB・外部サービス` | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
63
+ | `docs/03_詳細設計/01_ドメイン`(style: ddd のみ) | 日本語 | `注文.md`, `在庫.md` |
64
+ | `docs/03_詳細設計/02_ユースケース`(style: ddd) / `01_ユースケース`(style: layered) | `UC-{日本語名}.md` | `UC-注文確定.md` |
65
+ | `docs/03_詳細設計/03_DB・外部サービス`(style: ddd) / `02_DB・外部サービス`(style: layered) | 日本語 | `スキーマ定義.dbml`, `外部サービス.md` |
65
66
 
66
67
  ## ADR
67
68
 
@@ -83,7 +84,7 @@ spec_runner:
83
84
  - 「関連ドキュメント」セクションを設計書に作らない。依存関係は frontmatter の `depends_on` で管理する
84
85
  - 「スケジュール」セクションを設計書に作らない。進捗管理は設計書の責務ではない
85
86
 
86
- ## ドメインモデルとデータモデルの分離
87
+ ## ドメインモデルとデータモデルの分離(style: ddd のみ)
87
88
 
88
89
  ドメインモデルとデータモデルは別物であり、置き場所も内容も分ける。
89
90
 
@@ -0,0 +1,38 @@
1
+ ---
2
+ applyTo: "src/**,tests/**"
3
+ ---
4
+
5
+ # テスト実行コマンド
6
+
7
+ > このファイルは `architecture-skill-development` でプロジェクト固有のコマンドに書き換えてください。
8
+
9
+ ## 実行コマンド
10
+
11
+ ```bash
12
+ # 単体テスト(高速・毎回実行)
13
+ <your-unit-test-command>
14
+
15
+ # 結合テスト
16
+ <your-integration-test-command>
17
+
18
+ # E2E テスト
19
+ <your-e2e-test-command>
20
+
21
+ # 全テスト
22
+ <your-all-test-command>
23
+
24
+ # 特定ファイル
25
+ <your-test-command> <test-file>
26
+
27
+ # カバレッジ計測
28
+ <your-test-command> --coverage
29
+ ```
30
+
31
+ ## テスト構成
32
+
33
+ ```
34
+ tests/
35
+ unit/ # 単体テスト(src/ と同じ構造を鏡写し)
36
+ integration/ # 結合テスト
37
+ e2e/ # E2E テスト
38
+ ```
@@ -65,11 +65,11 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
65
65
 
66
66
  > 以降の書き換えはすべて `architecture.yaml` の `integrations` に従う。`claude` のみなら `.claude/` だけ、`github` のみなら `.github/` だけ、両方なら対で更新する。
67
67
 
68
- ### test-driven-development の書き換え
68
+ ### testing.md の書き換え
69
69
 
70
- `architecture.yaml` の `testing_policy` と `language` を参照して、以下を実際の値に置き換える。
70
+ `instructions/testing.instructions.md` はテスト実行コマンドの単一ソースとして `test-driven-development` スキルと `test-runner` エージェントの両方から参照される。`architecture.yaml` の `testing_policy` を参照して書き換える。
71
71
 
72
- 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
72
+ 1. **テスト実行コマンド**: `<your-unit-test-command>` / `<your-integration-test-command>` 等を実際のコマンドに書き換える
73
73
 
74
74
  例:
75
75
  ```bash
@@ -83,20 +83,19 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
83
83
  docker compose run --rm test pytest --cov=. --cov-report=term-missing
84
84
  ```
85
85
 
86
- 2. **コード例**: 言語・フレームワークに合わせて RED / GREEN の例を書き直す
86
+ 2. **テスト構成**: `tests/` のディレクトリ構成が実態と異なる場合は書き換える
87
87
 
88
- 3. **fixture / テストデータ**: このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
88
+ 上記の `integrations` ルールに従って反映する。
89
89
 
90
- 4. **モックのルール**: 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
90
+ ### test-driven-development の書き換え(テストコマンド以外)
91
91
 
92
- 書き換えは `.claude/skills/test-driven-development/SKILL.md` `.github/skills/test-driven-development/SKILL.md` の両方に反映する。
92
+ `architecture.yaml` `language` を参照して、以下を実際の値に置き換える。
93
93
 
94
- ### test-runner エージェントの書き換え
94
+ 1. **コード例**: 言語・フレームワークに合わせて RED / GREEN の例を書き直す
95
+ 2. **fixture / テストデータ**: このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
96
+ 3. **モックのルール**: 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
95
97
 
96
- `architecture.yaml` `testing_policy` を参照して、以下を実際の値に置き換える。
97
-
98
- 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
99
- 2. **説明文**: 実行環境(Docker / ローカル など)が分かるよう補足する
98
+ 上記の `integrations` ルールに従って反映する。
100
99
 
101
100
  ### 影響範囲チェックリストの書き換え
102
101
 
@@ -110,10 +109,12 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
110
109
  `architecture.yaml` の `language` と `folder_structure` を参照して、以下を実際の値に置き換える。
111
110
 
112
111
  1. **命名規則**: 言語の慣習に合わせてテーブルの規則・例を書き換える
113
- 2. **言語・型固有ルール**: `<your-language-and-type-rules>` を言語・フレームワークに合わせた具体的なルールに書き換える
114
- 3. **プロジェクト構造**: `<your-project-structure>` を `folder_structure` の実際のディレクトリ構成に書き換える
112
+ 2. **コメント規約**: `## コメント` の「プロジェクト固有の決定事項」をユーザーと合意してから書き換える
113
+ - インラインコメント(なぜ)・処理ブロック(何)・docコメント・TODO/FIXME・セクション区切りの各方針を決定する
114
+ 3. **言語・型固有ルール**: `<your-language-and-type-rules>` を言語・フレームワークに合わせた具体的なルールに書き換える
115
+ 4. **プロジェクト構造**: `<your-project-structure>` を `folder_structure` の実際のディレクトリ構成に書き換える
115
116
 
116
- 書き換えは `.claude/rules/coding.md` と `.github/instructions/coding.instructions.md` の両方に反映する。
117
+ 上記の `integrations` ルールに従って反映する。
117
118
 
118
119
  ### その他の基盤 skill
119
120
 
@@ -143,11 +144,12 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
143
144
  ### 手順
144
145
 
145
146
  1. 上記の候補をユーザーに提示し、整理してよいか確認する
146
- 2. 承認を得た skill `.claude/skills/` `.github/skills/` から削除する
147
+ 2. 承認を得た skill を削除する(`integrations` に従い `.claude/skills/` / `.github/skills/` の該当するほうを削除する)
147
148
  3. 必要であれば削除前にバックアップ先をユーザーに伝える
148
149
  4. `.spec-runner/` の不要ファイルも整理する
149
150
  - `intake/current-system-inventory.md` — docs に昇格済みなら削除してよい
150
151
  - `architecture/architecture.yaml` — project 専用 skill が完成し、参照不要になったら削除してよい
152
+ - `scripts/scan.js` — **削除しない**。`@impact-analyzer` が常時依存しているため
151
153
  5. `CLAUDE.md` を更新する
152
154
  - 「初回自動起動」セクション(spec-runner インストール時に生成されたもの)を削除する
153
155
  - 作成した project 専用 skill の名前と使いどころを記載する
@@ -95,28 +95,7 @@ description: 新機能実装やバグ修正を行う際、実装コードを書
95
95
 
96
96
  ## テスト実行コマンド
97
97
 
98
- > このスキルはテンプレートとして配布されます。
99
- > `architecture-skill-development` を使ってプロジェクト固有のコマンドに書き換えてください。
100
-
101
- ```bash
102
- # 単体テスト(高速・毎回実行)
103
- <your-unit-test-command>
104
-
105
- # 結合テスト
106
- <your-integration-test-command>
107
-
108
- # E2E テスト
109
- <your-e2e-test-command>
110
-
111
- # 全テスト
112
- <your-test-command>
113
-
114
- # 特定ファイル
115
- <your-test-command> <test-file>
116
-
117
- # カバレッジ計測
118
- <your-test-command> --coverage
119
- ```
98
+ `.github/instructions/testing.instructions.md` に記載されたコマンドを使う。
120
99
 
121
100
  ## Red-Green-Refactor
122
101