spec-runner 1.1.17 → 1.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/package.json +1 -1
  2. package/spec-runner/templates/.claude/agents/code-reviewer.md +2 -8
  3. package/spec-runner/templates/.claude/agents/design-reviewer.md +6 -12
  4. package/spec-runner/templates/.claude/agents/impact-analyzer.md +4 -9
  5. package/spec-runner/templates/.claude/agents/test-runner.md +6 -10
  6. package/spec-runner/templates/.claude/rules/coding.md +28 -79
  7. package/spec-runner/templates/.claude/rules/design-docs.md +18 -17
  8. package/spec-runner/templates/.claude/rules/harness-formats.md +4 -4
  9. package/spec-runner/templates/.claude/rules/sub-agent-delegation.md +1 -1
  10. package/spec-runner/templates/.claude/skills/architecture-definition/SKILL.md +3 -3
  11. package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +39 -13
  12. package/spec-runner/templates/.claude/skills/commit/SKILL.md +1 -1
  13. package/spec-runner/templates/.claude/skills/design-change/SKILL.md +18 -11
  14. package/spec-runner/templates/.claude/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +30 -37
  15. package/spec-runner/templates/.claude/skills/docs-driven-seed/SKILL.md +6 -9
  16. package/spec-runner/templates/.claude/skills/docs-driven-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253.md +1 -1
  17. package/spec-runner/templates/.claude/skills/existing-project-to-docs/SKILL.md +13 -6
  18. package/spec-runner/templates/.claude/skills/harness-engineering/SKILL.md +9 -11
  19. package/spec-runner/templates/.claude/skills/simple-seed/SKILL.md +7 -10
  20. package/spec-runner/templates/.claude/skills/simple-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260.md +33 -0
  21. package/spec-runner/templates/.claude/skills/simple-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247.md +15 -0
  22. package/spec-runner/templates/.claude/skills/test-driven-development/SKILL.md +20 -19
  23. package/spec-runner/templates/.github/agents/code-reviewer.agent.md +2 -8
  24. package/spec-runner/templates/.github/agents/design-reviewer.agent.md +6 -12
  25. package/spec-runner/templates/.github/agents/impact-analyzer.agent.md +4 -9
  26. package/spec-runner/templates/.github/agents/test-runner.agent.md +6 -10
  27. package/spec-runner/templates/.github/instructions/coding.instructions.md +27 -78
  28. package/spec-runner/templates/.github/instructions/design-docs.instructions.md +18 -17
  29. package/spec-runner/templates/.github/instructions/harness-formats.instructions.md +4 -4
  30. package/spec-runner/templates/.github/instructions/sub-agent-delegation.instructions.md +1 -1
  31. package/spec-runner/templates/.github/skills/architecture-definition/SKILL.md +3 -3
  32. package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +37 -11
  33. package/spec-runner/templates/.github/skills/commit/SKILL.md +1 -1
  34. package/spec-runner/templates/.github/skills/design-change/SKILL.md +18 -11
  35. package/spec-runner/templates/.github/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +30 -37
  36. package/spec-runner/templates/.github/skills/docs-driven-seed/SKILL.md +6 -9
  37. package/spec-runner/templates/.github/skills/docs-driven-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253.md +1 -1
  38. package/spec-runner/templates/.github/skills/existing-project-to-docs/SKILL.md +13 -6
  39. package/spec-runner/templates/.github/skills/harness-engineering/SKILL.md +10 -12
  40. package/spec-runner/templates/.github/skills/simple-seed/SKILL.md +7 -10
  41. package/spec-runner/templates/.github/skills/simple-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260.md +33 -0
  42. package/spec-runner/templates/.github/skills/simple-seed/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247.md +15 -0
  43. package/spec-runner/templates/.github/skills/test-driven-development/SKILL.md +20 -19
@@ -4,89 +4,44 @@ applyTo: "src/**,tests/**"
4
4
 
5
5
  # コーディング規約
6
6
 
7
+ > このファイルはテンプレートです。`architecture-skill-development` で言語・フレームワーク・プロジェクト構造に合わせて書き換えてください。
8
+
7
9
  ## 命名規則
8
10
 
11
+ > 以下の表をプロジェクトの言語・規約に合わせて書き換える。
12
+
9
13
  | 対象 | 規則 | 例 |
10
14
  |------|------|-----|
11
- | ファイル名 | snake_case | `domain.py`, `journal_search.py` |
12
- | クラス名 | PascalCase | `CheckExecution`, `AccountBalance` |
13
- | 関数・メソッド | snake_case | `aggregate_by_account()`, `determine_severity()` |
14
- | 変数 | snake_case | `journal_entries`, `diff_amount` |
15
- | 定数 | UPPER_SNAKE_CASE | `THRESHOLD_ERROR`, `_VALID_SEVERITIES` |
16
- | モジュール内部定数 | _UPPER_SNAKE_CASE(先頭アンダースコア) | `_THRESHOLD_WARNING` |
17
- | テストクラス | Test + PascalCase | `TestDetermineSeverity` |
18
- | テストメソッド | test_ + snake_case(日本語不可) | `test_empty_entries_raises` |
19
- | ディレクトリ | snake_case | `agents/reconciliation/`, `plugins/tools/` |
20
-
21
- ## コメント・docstring
15
+ | ファイル名 | `<規則>` | `<例>` |
16
+ | クラス名 | `<規則>` | `<例>` |
17
+ | 関数・メソッド | `<規則>` | `<例>` |
18
+ | 変数 | `<規則>` | `<例>` |
19
+ | 定数 | `<規則>` | `<例>` |
20
+ | テストクラス | `<規則>` | `<例>` |
21
+ | テストメソッド | `<規則>` | `<例>` |
22
+ | ディレクトリ | `<規則>` | `<例>` |
23
+
24
+ ## コメント
22
25
 
23
26
  - **言語**: 日本語
24
- - **docstring**: モジュール先頭に1行で概要を書く。関数・クラスには原則不要(名前で意図が伝わる場合)
25
27
  - **インラインコメント**: ビジネスロジックの「なぜ」を説明する場合のみ。処理内容の「何」は書かない
26
- - **変更履歴コメント禁止**: `# 新機能追加`, `# ここを修正`, `# v2 で変更` のような変更経緯はコードに書かない。git の commit message で管理する
28
+ - **変更履歴コメント禁止**: 変更経緯はコードに書かない。git の commit message で管理する
27
29
 
28
- ```python
29
- # 良い例
30
- # 貸方は負の値として扱う(借方 - 貸方 = 残高)
31
- balances[credit_key] = balances.get(credit_key, 0) - entry.credit_amount
32
- ```
30
+ ## 言語・型固有ルール
33
31
 
34
- ##
32
+ > このセクションを言語・フレームワークに合わせて書き換える。
35
33
 
36
- - Python 3.12+ のビルトイン型を使用(`list[str]`, `dict[str, int]`, `str | None`)
37
- - `typing` モジュールのインポートは不要(`List`, `Dict`, `Optional` は使わない)
38
- - dataclass の `frozen=True` を値オブジェクトに使用
34
+ `<your-language-and-type-rules>`
39
35
 
40
36
  ## テスト
41
37
 
42
- - テストファイルは実装と同じディレクトリ構造: `tests/agents/reconciliation/test_domain.py`
43
- - TDDサイクル: RED → GREEN → REFACTOR
38
+ - テストファイルは実装と同じディレクトリ構造を維持する(`tests/` 配下に `src/` と同じ構造)
39
+ - TDD サイクル: RED → GREEN → REFACTOR
44
40
 
45
41
  ### テストコメント規約
46
42
 
47
- - **docstring**: 全テストメソッドにテスト意図を日本語1行で書く(メソッド名の言い換えではなく「なぜそのテストが必要か」を書く)
48
- - **セクション区切り**: テストクラスが3つ以上あるファイルでは、クラス間に区切りコメントを入れる
49
-
50
- ```python
51
- # ============================================================
52
- # 重要度判定
53
- # ============================================================
54
- class TestDetermineSeverity:
55
- ```
56
-
57
- - **準備・実行・検証**: セットアップが5行以上のテストでは `# 準備` / `# 実行` / `# 検証` で構造を明示する。`—` で簡潔な意図を添える(推奨)
58
-
59
- ```python
60
- def test_full_flow(self):
61
- """集計→比較→分析の全フローが動作する"""
62
- # 準備 — 仕訳と調書に50K円の差異を作る
63
- agent = self._make_agent()
64
- entries = [_make_entry("売掛金", "売上高", 1_000_000)]
65
- worksheet = [_make_balance("worksheet", "売掛金", 950_000)]
66
-
67
- # 実行
68
- results = agent.run_check(entries, worksheet, [])
69
-
70
- # 検証 — 差異がある科目のみ返る
71
- assert len(results) == 1
72
- assert results[0].severity.value == "error"
73
- ```
74
-
75
- - **インラインコメント**: データ構造やモック応答の意図が分かりにくい箇所には積極的にコメントを付ける。特にリスト要素やside_effectの各要素には `# 計画`、`# 1パス目分析` のように役割を明示する
76
-
77
- ```python
78
- llm.chat.side_effect = [
79
- plan_json, # 計画
80
- _make_analysis_response(), # 1パス目分析
81
- investigation_needs, # 調査判断1: 追加調査必要
82
- _make_analysis_response(), # 再分析1
83
- # ここで上限到達 → ループ終了
84
- ]
85
-
86
- # 1回目: 途中で切れたJSON、2回目: リトライで正しいJSON
87
- truncated_json = '[{"account_name": "売掛金", ...'
88
- ```
89
-
43
+ - **意図の記述**: 全テストにテスト意図を日本語 1 行で書く(メソッド名の言い換えではなく「なぜそのテストが必要か」を書く)
44
+ - **準備・実行・検証**: セットアップが 5 行以上のテストでは `# 準備` / `# 実行` / `# 検証` で構造を明示する
90
45
  - **英語コメント禁止**: `Arrange` / `Act` / `Assert` 等の英語は使わない
91
46
 
92
47
  ## 後方互換ハックの禁止
@@ -94,23 +49,17 @@ truncated_json = '[{"account_name": "売掛金", ...'
94
49
  使われなくなったコードは完全に削除する。互換性維持のための温存は行わない。
95
50
 
96
51
  禁止パターン:
97
- - 未使用の引数・変数を `_` プレフィックスで残す(`_old_param`)
98
- - 削除した型・関数を `from x import Y` で再公開する
52
+ - 使われない引数・変数を残す
53
+ - 削除した型・関数を再公開する
99
54
  - `# removed`, `# deprecated`, `# 旧実装` コメントとともにコードを残す
100
55
  - 後方互換用のラッパー関数・エイリアスを追加する
101
56
 
102
57
  ## 検索ルール
103
58
 
104
59
  - コードの検索・置換は `src/` と `tests/` の両方を対象にする
105
- - 日本語のキーワード(後方互換、レガシー等)も検索対象に含める
106
60
 
107
61
  ## プロジェクト構造
108
62
 
109
- ```
110
- src/
111
- agents/{agent_name}/ # agent.py, domain.py, prompts.py, config.py
112
- plugins/tools/{tool}/ # tool.py
113
- plugins/skills/{skill}/ # skill.py
114
- web/ # FastAPI + HTMX
115
- tests/ # src/ と同じ構造
116
- ```
63
+ > `architecture.yaml` の `folder_structure` に合わせて書き換える。
64
+
65
+ `<your-project-structure>`
@@ -6,20 +6,21 @@ applyTo: "docs/**"
6
6
 
7
7
  ## フェーズ管理
8
8
 
9
- - **ユーザー承認なしにフェーズを進めない**
9
+ - ユーザー承認なしにフェーズを進めない
10
10
  - フェーズは必ず `要件定義 -> 概要設計 -> 詳細設計 -> TDD -> 実装` の順に進める
11
11
 
12
12
  ## テンプレート
13
13
 
14
- - **設計書は必ずテンプレートをコピーして生成する。独自にゼロから作成しない**
14
+ - 設計書は必ずテンプレートをコピーして生成する。独自にゼロから作成しない
15
15
  - 手順: テンプレートを読む → 出力先へコピーする → プレースホルダーを埋める
16
16
 
17
17
  ## frontmatter
18
18
 
19
- - **`docs/**` の全設計書に frontmatter を付ける**
19
+ - `docs/**` の全設計書に frontmatter を付ける
20
20
  - 正本の必須項目は `spec_runner.node_id` / `spec_runner.kind` / `spec_runner.depends_on` / `spec_runner.maps_to`
21
21
  - `depends_on` はまず文字列配列でよい。依存理由が必要な場合のみオブジェクト形式を使う
22
- - `maps_to` には見直し対象となる `src/` / `tests/` / IaC / 設定ファイルを列挙する。**必ず設定する(空にしない)**。ただし ADR は決定の記録であり実装トレーサビリティの連鎖に乗らないため `depends_on` / `maps_to` は不要。ADR の frontmatter は `node_id` と `kind` のみ
22
+ - `maps_to` には `src/` / `tests/` / IaC / 設定ファイルを列挙する。必ず設定する(空にしない)
23
+ - ADR は `node_id` と `kind` のみ。`depends_on` / `maps_to` は不要(決定の記録であり実装トレーサビリティに乗らない)
23
24
  - `modules` / `source_files` などの拡張項目を足す場合でも、`maps_to` と矛盾させない
24
25
 
25
26
  ```yaml
@@ -64,7 +65,7 @@ spec_runner:
64
65
 
65
66
  ## ADR
66
67
 
67
- - **ADR は提案時に必ず 3 案を比較してから採用案を決める。ドキュメントには採用案と採用理由のみ記録する**
68
+ - ADR は提案時に必ず 3 案を比較してから採用案を決める。ドキュメントには採用案と採用理由のみ記録する
68
69
  - ADR は `docs/02_概要設計/90_ADR/{対象}/` で管理する(`全体` / `ドメイン` / `UC` / `DB`)
69
70
  - ファイル名は `mmdd-{日本語タイトル}.md`。対象はフォルダで表す
70
71
  - ADR は理由の記録であり、詳細設計の代わりにしない
@@ -72,25 +73,25 @@ spec_runner:
72
73
 
73
74
  ## 文書品質
74
75
 
75
- - **docs にコードを書かない。コード片・DDL・クラス定義・プロンプト本文はすべて禁止。コードは `src/` / `tests/` に書く**
76
- - **概要設計では「何をするか」を書き、実装の詳細は持ち込まない**
77
- - **詳細設計ではドメインルール・UC の責務・入出力・判断条件・テスト観点を書く**
78
- - **`maps_to` を唯一の src 対応として使う。パス推定に頼らない**
79
- - **Markdown に HTML タグ(details, summary, br など)を使わない**
80
- - **設計書に絵文字を使わない**
81
- - **`概要.md` のような汎用的な名前のファイルは作らない。内容を具体的に示す名前(`要件定義.md`、`ユースケース一覧.md`、`システム全体俯瞰.md` など)を使う**
82
- - **「関連ドキュメント」セクションを設計書に作らない。依存関係は frontmatter の `depends_on` で管理する**
83
- - **「スケジュール」セクションを設計書に作らない。進捗管理は設計書の責務ではない**
76
+ - docs にコードを書かない(コード片・DDL・クラス定義・プロンプト本文)。コードは `src/` / `tests/` に書く
77
+ - 概要設計では「何をするか」を書く。実装の詳細は持ち込まない
78
+ - 詳細設計ではドメインルール・UC の責務・入出力・判断条件・テスト観点を書く
79
+ - `maps_to` を唯一の src 対応として使う。パス推定に頼らない
80
+ - Markdown に HTML タグ(details, summary, br など)を使わない
81
+ - 設計書に絵文字を使わない
82
+ - `概要.md` のような汎用的な名前は使わない(`要件定義.md`、`ユースケース一覧.md` のように内容を示す名前にする)
83
+ - 「関連ドキュメント」セクションを設計書に作らない。依存関係は frontmatter の `depends_on` で管理する
84
+ - 「スケジュール」セクションを設計書に作らない。進捗管理は設計書の責務ではない
84
85
 
85
86
  ## ドメインモデルとデータモデルの分離
86
87
 
87
- ドメインモデルとデータモデルは**別物**であり、置き場所も内容も分ける。
88
+ ドメインモデルとデータモデルは別物であり、置き場所も内容も分ける。
88
89
 
89
90
  | 種別 | 内容 | 置き場所 |
90
91
  |------|------|---------|
91
92
  | ドメインモデル | ビジネスルール・集約・値オブジェクト・不変条件 | `docs/03_詳細設計/01_ドメイン/` |
92
93
  | データモデル | DBスキーマ・テーブル定義・カラム定義・インデックス | `docs/03_詳細設計/03_DB・外部サービス/` |
93
94
 
94
- - **`01_ドメイン/` にDBスキーマ・テーブル定義・カラム定義を書かない**
95
- - **`03_DB・外部サービス/` にビジネスルール・ドメインロジックを書かない**
95
+ - `01_ドメイン/` に DB スキーマ・テーブル定義・カラム定義を書かない
96
+ - `03_DB・外部サービス/` にビジネスルール・ドメインロジックを書かない
96
97
  - 概要設計の `ドメインモデル.md` も同様。集約と境界コンテキストの概念図であり、永続化の構造ではない
@@ -56,7 +56,7 @@ description: このスキルの目的と使うタイミング(1〜2行)
56
56
 
57
57
  ## CLAUDE.md
58
58
 
59
- CLAUDE.md は**全会話で常にコンテキストに読み込まれる**。書くほどコストが増えるため、最小に保つ。
59
+ CLAUDE.md は全会話で常にコンテキストに読み込まれる。書くほどコストが増えるため、最小に保つ。
60
60
 
61
61
  ### 書いてよいもの
62
62
 
@@ -74,14 +74,14 @@ CLAUDE.md は**全会話で常にコンテキストに読み込まれる**。書
74
74
 
75
75
  ### 目安
76
76
 
77
- - 20行を超えたら見直しを検討する
77
+ - 20 行を超えたら見直しを検討する
78
78
  - 新しい内容を追加する前に「instructions / skills に移せないか」を先に考える
79
79
 
80
80
  ## 共通原則
81
81
 
82
- - **更新する連携先は `architecture.yaml` の `integrations` に従う**
82
+ - 更新する連携先は `architecture.yaml` の `integrations` に従う
83
83
  - `claude` のみ → `.claude/` だけ更新する。`.github/` を作成しない
84
84
  - `github` のみ → `.github/` だけ更新する。`.claude/` を作成しない
85
85
  - 両方 → `.claude/` と `.github/` を対で更新する
86
- - `description` は「何をするか」より「**いつ・なぜ使うか**」を優先して書く
86
+ - `description` は「何をするか」より「いつ・なぜ使うか」を優先して書く
87
87
  - 新規作成時は既存ファイルを参考にフォーマットを確認してから作る
@@ -4,7 +4,7 @@ applyTo: "**"
4
4
 
5
5
  # サブエージェント委任ルール
6
6
 
7
- **メインエージェントは判断・対話・ファイル編集に集中する。検証・調査・実行は積極的にサブエージェントへ委任する。**
7
+ メインエージェントは判断・対話・ファイル編集に集中する。検証・調査・実行は積極的にサブエージェントへ委任する。
8
8
 
9
9
  ## 委任する場面と委任先
10
10
 
@@ -67,7 +67,7 @@ Phase 5: architecture-skill-development へ自動移行
67
67
  2. 最低限、以下を構造化する
68
68
  - **integrations**: Phase 1 で確認した連携(`[claude]` / `[github]` / `[claude, github]`)
69
69
  - **style**: Phase 1 で選択したスタイル(`ddd` / `layered`)
70
- - **folder_structure**: Phase 2 で決定した構造
70
+ - **folder_structure**: Phase 2 で決定した構造(`src/` / `tests/` / `docs/` など)
71
71
  - domain_structure(style: ddd のときのみ)
72
72
  - runtime_units
73
73
  - design_policy
@@ -76,12 +76,12 @@ Phase 5: architecture-skill-development へ自動移行
76
76
 
77
77
  ## Phase 5: architecture-skill-development へ自動移行
78
78
 
79
- Phase 4 が承認されたら、**ユーザーにコマンドを打たせずに `architecture-skill-development` を続けて開始する**。
79
+ Phase 4 が承認されたら、ユーザーにコマンドを打たせずに `architecture-skill-development` を続けて開始する。
80
80
 
81
81
  1. `architecture-skill-development` に渡す前提(docs・architecture.yaml・確定済みフォルダ構造)を要約する
82
82
  2. project 専用 skill に切り出すべき反復フローを列挙する
83
83
  3. 確認なしに `architecture-skill-development` Phase 1 へ進む
84
- 4. **スキル整備完了後、プロジェクト専用スキルを使って概要設計へ進む**
84
+ 4. スキル整備完了後、プロジェクト専用スキルを使って概要設計へ進む
85
85
 
86
86
  ## 原則
87
87
 
@@ -34,7 +34,7 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
34
34
 
35
35
  ## Phase 3: skill / rule / template へ分解
36
36
 
37
- ファイルを作成する前に **`.github/instructions/harness-formats.instructions.md`** を読み、フォーマットを確認する。
37
+ ファイルを作成する前に `.github/instructions/harness-formats.instructions.md` を読み、フォーマットを確認する。
38
38
 
39
39
  1. 会話フローは skill にする
40
40
  2. 常時守る約束は rule にする
@@ -49,12 +49,12 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
49
49
  | `ddd` | `docs-driven-seed` | ドメイン層(集約・値オブジェクト)を持つ DDD 向けフロー |
50
50
  | `layered` | `simple-seed` | ドメイン層を持たない UC・サービス層中心のフロー |
51
51
 
52
- 選んだ seed の SKILL.md をコピーして、**このプロジェクトのアーキテクチャに合わせて書き換えた project 専用 skill を作る**ことを目的とする。
52
+ 選んだ seed の SKILL.md をコピーして、このプロジェクトのアーキテクチャに合わせて書き換えた project 専用 skill を作ることを目的とする。
53
53
 
54
54
  具体的には:
55
55
  - 選んだ seed の SKILL.md をコピーして、project 専用の開発 skill の土台にする
56
56
  - フェーズ構成・テンプレートパス・用語をこのプロジェクトの実態に合わせて書き換える
57
- - **Phase 1(要件定義)は architecture-definition で完了済みのため削除する**
57
+ - Phase 1(要件定義)は architecture-definition で完了済みのため削除する
58
58
  - 元の seed は書き換え完了後にアーカイブ候補とする(Phase 6 で提案する)
59
59
 
60
60
  4. ユーザーに確認・承認を得る
@@ -63,11 +63,13 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
63
63
 
64
64
  インストール時に配布された基盤 skill のプレースホルダーを、このプロジェクトの実態に書き換える。
65
65
 
66
+ > 以降の書き換えはすべて `architecture.yaml` の `integrations` に従う。`claude` のみなら `.claude/` だけ、`github` のみなら `.github/` だけ、両方なら対で更新する。
67
+
66
68
  ### test-driven-development の書き換え
67
69
 
68
70
  `architecture.yaml` の `testing_policy` と `language` を参照して、以下を実際の値に置き換える。
69
71
 
70
- 1. **テスト実行コマンド** `<your-test-command>` を実際のコマンドに書き換える
72
+ 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
71
73
 
72
74
  例:
73
75
  ```bash
@@ -81,14 +83,38 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
81
83
  docker compose run --rm test pytest --cov=. --cov-report=term-missing
82
84
  ```
83
85
 
84
- 2. **コード例** 言語・フレームワークに合わせて RED / GREEN の例を書き直す
86
+ 2. **コード例**: 言語・フレームワークに合わせて RED / GREEN の例を書き直す
85
87
 
86
- 3. **fixture / テストデータ** このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
88
+ 3. **fixture / テストデータ**: このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
87
89
 
88
- 4. **モックのルール** 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
90
+ 4. **モックのルール**: 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
89
91
 
90
92
  書き換えは `.claude/skills/test-driven-development/SKILL.md` と `.github/skills/test-driven-development/SKILL.md` の両方に反映する。
91
93
 
94
+ ### test-runner エージェントの書き換え
95
+
96
+ `architecture.yaml` の `testing_policy` を参照して、以下を実際の値に置き換える。
97
+
98
+ 1. **テスト実行コマンド**: `<your-test-command>` を実際のコマンドに書き換える
99
+ 2. **説明文**: 実行環境(Docker / ローカル など)が分かるよう補足する
100
+
101
+ ### 影響範囲チェックリストの書き換え
102
+
103
+ `.claude/skills/design-change/references/影響範囲チェックリスト.md` をプロジェクト固有の変更カテゴリとパスに合わせて書き換える。
104
+
105
+ 1. 変更カテゴリをプロジェクトの構成要素(モジュール・サービス・ドメインなど)に合わせて追加・削除する
106
+ 2. 詳細設計のパスを `architecture.yaml` の `folder_structure` に合わせて書き換える
107
+
108
+ ### coding.md の書き換え
109
+
110
+ `architecture.yaml` の `language` と `folder_structure` を参照して、以下を実際の値に置き換える。
111
+
112
+ 1. **命名規則**: 言語の慣習に合わせてテーブルの規則・例を書き換える
113
+ 2. **言語・型固有ルール**: `<your-language-and-type-rules>` を言語・フレームワークに合わせた具体的なルールに書き換える
114
+ 3. **プロジェクト構造**: `<your-project-structure>` を `folder_structure` の実際のディレクトリ構成に書き換える
115
+
116
+ 書き換えは `.claude/rules/coding.md` と `.github/instructions/coding.instructions.md` の両方に反映する。
117
+
92
118
  ### その他の基盤 skill
93
119
 
94
120
  同様のプレースホルダーや汎用記述が他の skill にあれば、同じ要領で書き換える。
@@ -102,8 +128,7 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
102
128
 
103
129
  ## Phase 6: セットアップ専用 skill のアーカイブ提案
104
130
 
105
- セットアップ時にしか使わない skill は、開発ループに入ると不要になる。
106
- **ユーザーの承認を得てから** 整理する。絶対に自動で削除・移動しない。
131
+ セットアップ時にしか使わない skill は、開発ループに入ると不要になる。ユーザーの承認を得てから整理する。絶対に自動で削除・移動しない。
107
132
 
108
133
  ### アーカイブ候補
109
134
 
@@ -111,7 +136,8 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
111
136
  |---|---|
112
137
  | `architecture-definition` | 新規プロジェクト初期化専用。アーキテクチャ確定後は不要 |
113
138
  | `existing-project-to-docs` | 既存プロジェクト取り込み専用。docs 生成後は不要 |
114
- | `docs-driven-seed` | Phase 3 で project 専用 skill の種として使い終えたら不要 |
139
+ | `docs-driven-seed` | Phase 3 で project 専用 skill の種として使い終えたら不要(`style: ddd` のとき)。ただし `templates/01_要件定義/` は `architecture-definition` が参照するため、`architecture-definition` も同時にアーカイブする場合のみ削除する |
140
+ | `simple-seed` | Phase 3 で project 専用 skill の種として使い終えたら不要(`style: layered` のとき) |
115
141
  | `architecture-skill-development`(このファイル自身) | project 専用 skill が安定したら不要。ただしアーキテクチャが大きく変わる場合は再利用する可能性があるため、削除ではなくアーカイブを推奨 |
116
142
 
117
143
  ### 手順
@@ -139,4 +165,4 @@ Phase 6: セットアップ専用 skill のアーカイブ提案
139
165
  - 固定の architecture pack を増やしすぎない
140
166
  - project 専用 skill を先に考える
141
167
  - docs と architecture contract の両方を入力にする
142
- - **skill の削除・移動はユーザー承認なしに行わない**
168
+ - skill の削除・移動はユーザー承認なしに行わない
@@ -13,7 +13,7 @@ description: 変更を Conventional Commits 形式でコミットする。
13
13
  2. `git log --oneline -10` で直近のコミット履歴を確認する
14
14
  3. 変更内容に基づいてコミットメッセージを生成する
15
15
  4. 未ステージの場合は適切なファイルを `git add` する
16
- 5. **機密情報チェック**: `git diff --cached` の内容を確認し、以下のパターンが含まれていないか検査する
16
+ 5. 機密情報チェック: `git diff --cached` の内容を確認し、以下のパターンが含まれていないか検査する
17
17
  - API キー、シークレットキー、パスワード、トークン、秘密鍵、接続文字列
18
18
  - `.env` ファイルの内容、認証情報ファイル(`credentials.json` 等)
19
19
  - 検出した場合はコミットを中止し、ユーザーに報告する
@@ -5,8 +5,7 @@ description: 既存機能の変更を docs 正本で進めるフローガイド
5
5
 
6
6
  # design-change
7
7
 
8
- 既存機能の変更・修正を設計書駆動で進めるフローガイド。
9
- **フェーズを必ず順番通りに進める。ユーザーの承認なしにフェーズを先に進めない。**
8
+ 既存機能の変更・修正を設計書駆動で進めるフローガイド。フェーズは順番通りに進める。ユーザーの承認なしに先へ進めない。
10
9
 
11
10
  影響範囲のチェックリストは `references/影響範囲チェックリスト.md` を参照する。
12
11
  ADR テンプレートは `templates/90_ADR/ADRテンプレート.md` を使用する。
@@ -37,7 +36,7 @@ Phase 6: TDD → 実装 → 検証
37
36
  ## Phase 2: ADR 作成(必要時)
38
37
 
39
38
  1. アーキテクチャ、責務境界、保存方式、外部 IF などの意思決定が必要か判定する
40
- 2. 必要な場合は **3 案を提示する**
39
+ 2. 必要な場合は 3 案を提示する
41
40
  3. 各案について概要・メリット・デメリット・適合性を示す
42
41
  4. ユーザーが案を決定する
43
42
  5. テンプレート `templates/90_ADR/ADRテンプレート.md` をコピーして生成する
@@ -63,9 +62,10 @@ Phase 6: TDD → 実装 → 検証
63
62
 
64
63
  ## Phase 4: 概要設計の修正
65
64
 
66
- 1. `ユースケース一覧.md` / `システム全体俯瞰.md` / `ドメインモデル.md` / ADR を必要順に修正する
67
- 2. 修正完了ごとにチェックリストを更新する
68
- 3. 全概要設計の修正完了後、ユーザーに確認・承認を得る
65
+ 1. `ユースケース一覧.md` / `システム全体俯瞰.md` / ADR を必要順に修正する
66
+ 2. `style: ddd` の場合: `ドメインモデル.md` も必要に応じて修正する
67
+ 3. 修正完了ごとにチェックリストを更新する
68
+ 4. 全概要設計の修正完了後、ユーザーに確認・承認を得る
69
69
 
70
70
  ### 修正時の注意
71
71
 
@@ -74,11 +74,18 @@ Phase 6: TDD → 実装 → 検証
74
74
 
75
75
  ## Phase 5: 詳細設計の修正
76
76
 
77
+ `style: ddd` の場合:
78
+
77
79
  1. `docs/03_詳細設計/01_ドメイン/**` のドメイン設計を修正する
78
80
  2. `docs/03_詳細設計/02_ユースケース/**` の UC 設計を修正する
79
81
  3. DB・外部サービスの変更がある場合は `docs/03_詳細設計/03_DB・外部サービス/**` を修正する
80
- 4. frontmatter の `depends_on` / `maps_to` を更新する
81
- 5. ユーザーに最終確認を得る
82
+
83
+ `style: layered` の場合:
84
+
85
+ 1. `docs/03_詳細設計/01_ユースケース/**` の UC 設計を修正する
86
+ 2. DB・外部サービスの変更がある場合は `docs/03_詳細設計/02_DB・外部サービス/**` を修正する
87
+
88
+ frontmatter の `depends_on` / `maps_to` を更新する。ユーザーに最終確認を得る。
82
89
 
83
90
  ## Phase 6: TDD → 実装 → 検証
84
91
 
@@ -91,6 +98,6 @@ Phase 6: TDD → 実装 → 検証
91
98
 
92
99
  ## 原則
93
100
 
94
- - **影響候補の洗い出しを ADR より先に行う**
95
- - **概要設計を先に直し、そのあと詳細設計を直す**
96
- - **frontmatter の更新を後回しにしない**
101
+ - 影響候補の洗い出しを ADR より先に行う
102
+ - 概要設計を先に直し、そのあと詳細設計を直す
103
+ - frontmatter の更新を後回しにしない
@@ -1,66 +1,59 @@
1
1
  # 影響範囲チェックリスト
2
2
 
3
- design-change の Phase 3(影響ドキュメントの特定)で参照する。
3
+ > このファイルはテンプレートです。`architecture-skill-development` でプロジェクトの変更カテゴリと詳細設計パスに合わせて書き換えてください。
4
+
5
+ design-change の Phase 3(影響ドキュメントの確定)で参照する。
4
6
  変更の種類に応じて、修正が必要なドキュメントを網羅的に特定する。
5
7
 
6
8
  ## 変更種別ごとのチェック項目
7
9
 
8
- ### エージェントの追加・変更・削除
10
+ ### ユースケース(UC)の追加・変更・削除
9
11
 
10
12
  | ドキュメント | パス | チェック |
11
13
  |------------|------|------|
12
- | ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | エージェントが担当する UC の追加・修正・削除を反映 |
13
- | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | エージェント構成・責務分割への影響 |
14
- | エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | オーケストレーション、利用プラグイン、I/O の変更 |
15
- | ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | エンティティ・値オブジェクト・不変条件の変更 |
16
- | プロンプト設計 | `docs/03_詳細設計/src/agents/{agent_name}/prompts.md` | プロンプト構成・指示内容の変更 |
17
- | 設定 | `docs/03_詳細設計/src/agents/{agent_name}/config.md` | 設定パラメータ・閾値の変更 |
14
+ | ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | UC の追加・修正・削除を反映 |
15
+ | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 責務分割・外部 IF への影響 |
16
+ | UC 詳細設計 | `docs/03_詳細設計/<UC詳細設計パス>/UC-{日本語名}.md` | シーケンス・入出力・判断条件の変更 |
17
+ | DB・外部サービス | `docs/03_詳細設計/<DB・外部サービスパス>/` | UC が利用するスキーマ・外部 IF への影響 |
18
18
 
19
- ### ドメインモデル(エンティティ・値オブジェクト)の変更
19
+ ### ドメイン設計の変更(style: ddd のみ)
20
20
 
21
21
  | ドキュメント | パス | チェック |
22
22
  |------------|------|------|
23
- | ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | フィールド・ルール・不変条件の変更 |
24
- | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 責務境界や共有概念への影響 |
25
- | プロンプト設計 | `docs/03_詳細設計/src/agents/{agent_name}/prompts.md` | ドメイン変更がプロンプトに影響する場合 |
26
- | データベース設計 | `docs/03_詳細設計/infrastructure/database.md` | テーブル構造・保存方針への影響 |
27
- | スキーマ定義 | `docs/03_詳細設計/infrastructure/schema.dbml` | カラム・型・制約の変更 |
28
- | スキル設計 | `docs/03_詳細設計/src/plugins/skills/{skill_name}/skill.md` | スキルの入出力・判定ロジックへの影響 |
29
- | ツール設計 | `docs/03_詳細設計/src/plugins/tools/{tool_name}/tool.md` | ツールの入出力への影響 |
23
+ | ドメインモデル | `docs/02_概要設計/ドメインモデル.md` | 集約・境界コンテキストへの影響 |
24
+ | ドメイン詳細設計 | `docs/03_詳細設計/<ドメイン詳細設計パス>/{ドメイン名}.md` | エンティティ・値オブジェクト・不変条件の変更 |
25
+ | UC 詳細設計 | `docs/03_詳細設計/<UC詳細設計パス>/UC-{日本語名}.md` | ドメイン変更が UC フローに影響する場合 |
26
+ | DB・外部サービス | `docs/03_詳細設計/<DB・外部サービスパス>/` | スキーマ・保存方針への影響 |
30
27
 
31
- ### プラグイン(スキル・ツール)の追加・変更・削除
28
+ ### DB・外部サービスの変更
32
29
 
33
30
  | ドキュメント | パス | チェック |
34
31
  |------------|------|------|
35
- | スキル設計 | `docs/03_詳細設計/src/plugins/skills/{skill_name}/skill.md` | スキルの追加・修正・削除 |
36
- | ツール設計 | `docs/03_詳細設計/src/plugins/tools/{tool_name}/tool.md` | ツールの追加・修正・削除 |
37
- | エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | 利用プラグイン一覧と呼び出し順の更新 |
38
- | ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | 対応する UC がある場合 |
39
- | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | プラグイン構成の変更が全体構造に影響する場合 |
32
+ | DB・外部サービス | `docs/03_詳細設計/<DB・外部サービスパス>/` | テーブル定義・外部 API 仕様の変更 |
33
+ | UC 詳細設計 | `docs/03_詳細設計/<UC詳細設計パス>/UC-{日本語名}.md` | 保存フロー・外部呼び出しへの影響 |
34
+ | ドメイン詳細設計 | `docs/03_詳細設計/<ドメイン詳細設計パス>/{ドメイン名}.md` | ドメインモデルへの影響(style: ddd のみ) |
40
35
 
41
- ### データベーススキーマの変更
36
+ ### アーキテクチャ・設計方針の変更
42
37
 
43
38
  | ドキュメント | パス | チェック |
44
39
  |------------|------|------|
45
- | データベース設計 | `docs/03_詳細設計/infrastructure/database.md` | テーブル定義・インデックス・リレーション |
46
- | スキーマ定義 | `docs/03_詳細設計/infrastructure/schema.dbml` | dbml ファイルの更新 |
47
- | ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | ドメインモデルへの影響 |
48
- | エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | 保存フローやトランザクションへの影響 |
40
+ | ADR | `docs/02_概要設計/90_ADR/全体/` | 横断的な決定を記録 |
41
+ | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 技術方針・全体構成の変更 |
42
+ | 要件定義 | `docs/01_要件定義/要件定義.md` | 要件レベルの変更がある場合 |
43
+ | 詳細設計一式 | `docs/03_詳細設計/**` | 方針変更の具体反映 |
49
44
 
50
- ### アーキテクチャ・設計方針の変更
45
+ ### 要件の変更
51
46
 
52
47
  | ドキュメント | パス | チェック |
53
48
  |------------|------|------|
54
- | ADR | `docs/02_概要設計/90_ADR/` | 横断的な決定 |
55
- | ADR(ドメインローカル) | `docs/02_概要設計/<ドメイン>/90_ADR/` | 特定ドメインの決定 |
56
- | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 技術方針・全体構成の変更 |
57
- | 要件定義 | `docs/01_要件定義/要件定義.md` | 要件レベルの変更がある場合 |
58
- | 詳細設計一式 | `docs/03_詳細設計/src/**` | 方針変更の具体反映 |
49
+ | 要件定義 | `docs/01_要件定義/要件定義.md` | 要件・スコープの変更 |
50
+ | ユビキタス言語辞書 | `docs/01_要件定義/ユビキタス言語辞書.md` | 用語の追加・変更 |
51
+ | ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | 要件変更に伴う UC の追加・削除 |
52
+ | システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | スコープ変更による構成への影響 |
59
53
 
60
54
  ## 二次影響の確認観点
61
55
 
62
- - **ユースケース一覧 ↔ エージェント設計**: 一覧に記載の UC がエージェントとプラグインでカバーされているか
63
- - **システム全体俯瞰 ↔ 詳細設計**: 責務分割が `docs/03_詳細設計/src/**` に落ちているか
64
- - **ドメイン設計 ↔ DBスキーマ**: ドメインのフィールドが DB カラムと対応しているか
65
- - **schema.dbml ↔ database.md**: dbml と設計書の内容が一致しているか
56
+ - **ユースケース一覧 ↔ 詳細設計**: 一覧に記載の UC が詳細設計でカバーされているか
57
+ - **システム全体俯瞰 ↔ 詳細設計**: 責務分割が詳細設計に落ちているか
58
+ - **ドメイン設計 ↔ DB スキーマ**: ドメインのフィールドが DB カラムと対応しているか(style: ddd のみ)
66
59
  - **frontmatter ↔ 実ファイル**: `depends_on` と `maps_to` が現状に追随しているか
@@ -5,10 +5,8 @@ description: UC/DDD 駆動の docs 正本開発フローの種。新規プロジ
5
5
 
6
6
  # docs-driven-seed
7
7
 
8
- **DDD(ドメイン駆動設計)を採用するプロジェクト向け**の docs 正本開発フロー参照実装(種)。
9
- `architecture.yaml` の `style: ddd` のときに使う。レイヤード / CRUD 中心のプロジェクトは `simple-seed` を使う。
10
-
11
- **このスキルをそのまま使い続けない。`architecture-skill-development` で自プロジェクト専用スキルに育てることを前提とする。**
8
+ > DDD を採用するプロジェクト向けの docs 正本開発フロー(種)。`architecture.yaml` の `style: ddd` で使う。レイヤード / CRUD 中心は `simple-seed` を使う。
9
+ > このスキルは種。`architecture-skill-development` でプロジェクト専用スキルに育てる。
12
10
 
13
11
  ## 全体フロー
14
12
 
@@ -65,7 +63,7 @@ docs/02_概要設計/
65
63
  ## Phase 3: ADR(必要時のみ)
66
64
 
67
65
  1. 設計判断が必要な場合だけ ADR を作る
68
- 2. **提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する**
66
+ 2. 提案時に必ず 3 案を比較する。ドキュメントには採用案と採用理由のみ記録する
69
67
  3. ファイル名は `mmdd-{日本語タイトル}.md`、配置先は対象フォルダ
70
68
 
71
69
  | 対象 | 配置先 |
@@ -79,7 +77,7 @@ docs/02_概要設計/
79
77
 
80
78
  ## Phase 4: 詳細設計
81
79
 
82
- **ドメイン → UC → DB・外部サービス の順に設計する。**
80
+ ドメイン → UC → DB・外部サービス の順に設計する。
83
81
 
84
82
  ### 4-1. ドメイン
85
83
 
@@ -122,6 +120,5 @@ docs/03_詳細設計/03_DB・外部サービス/
122
120
 
123
121
  ## 原則
124
122
 
125
- - **このスキルは種。`architecture-skill-development` でプロジェクト専用スキルに育てることを前提とする**
126
- - **ドメインを先に設計し、UC はドメインを参照する形で書く**
127
- - **`maps_to` は必ず設定する。パス推定に頼らない**
123
+ - ドメインを先に設計し、UC はドメインを参照する形で書く
124
+ - `maps_to` は必ず設定する。パス推定に頼らない
@@ -10,7 +10,7 @@ spec_runner:
10
10
 
11
11
  # ドメインモデル
12
12
 
13
- 集約と境界コンテキストの概念モデル。DBスキーマ・永続化の詳細はここに書かない。
13
+ 集約と境界コンテキストの概念モデル。DB スキーマ・永続化の詳細はここに書かない。
14
14
 
15
15
  ## 境界コンテキスト
16
16