spec-runner 1.1.7 → 1.1.8

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 (92) hide show
  1. package/README.md +51 -80
  2. package/bin/spec-runner-installer.js +401 -0
  3. package/install.sh +1 -1
  4. package/package.json +7 -6
  5. package/spec-runner/templates/.claude/agents/code-reviewer.md +69 -0
  6. package/spec-runner/templates/.claude/agents/design-reviewer.md +65 -0
  7. package/spec-runner/templates/.claude/agents/test-runner.md +34 -0
  8. package/spec-runner/templates/.claude/rules/coding.md +106 -0
  9. package/spec-runner/templates/.claude/rules/design-docs.md +63 -0
  10. package/spec-runner/templates/.claude/skills/architecture-definition/SKILL.md +60 -0
  11. package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +126 -0
  12. package/spec-runner/templates/.claude/skills/commit/SKILL.md +83 -0
  13. package/spec-runner/templates/.claude/skills/design-change/SKILL.md +94 -0
  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 +66 -0
  15. package/spec-runner/templates/.claude/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
  16. package/spec-runner/templates/.claude/skills/existing-project-to-docs/SKILL.md +57 -0
  17. package/spec-runner/templates/.claude/skills/harness-engineering/SKILL.md +100 -0
  18. package/spec-runner/templates/.claude/skills/plugin-development/SKILL.md +173 -0
  19. package/spec-runner/templates/.claude/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +88 -0
  20. package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
  21. package/spec-runner/templates/.claude/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +80 -0
  22. package/spec-runner/templates/.claude/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +57 -0
  23. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +53 -0
  24. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +54 -0
  25. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +25 -0
  26. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +28 -0
  27. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +56 -0
  28. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +47 -0
  29. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +67 -0
  30. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +72 -0
  31. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +53 -0
  32. package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +51 -0
  33. package/spec-runner/templates/.claude/skills/test-driven-development/SKILL.md +211 -0
  34. package/spec-runner/templates/.github/agents/code-reviewer.agent.md +69 -0
  35. package/spec-runner/templates/.github/agents/design-reviewer.agent.md +65 -0
  36. package/spec-runner/templates/.github/agents/test-runner.agent.md +34 -0
  37. package/spec-runner/templates/.github/instructions/coding.instructions.md +105 -0
  38. package/spec-runner/templates/.github/instructions/design-docs.instructions.md +62 -0
  39. package/spec-runner/templates/.github/skills/architecture-definition/SKILL.md +60 -0
  40. package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +126 -0
  41. package/spec-runner/templates/.github/skills/commit/SKILL.md +83 -0
  42. package/spec-runner/templates/.github/skills/design-change/SKILL.md +94 -0
  43. 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 +66 -0
  44. package/spec-runner/templates/.github/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
  45. package/spec-runner/templates/.github/skills/existing-project-to-docs/SKILL.md +57 -0
  46. package/spec-runner/templates/.github/skills/harness-engineering/SKILL.md +100 -0
  47. package/spec-runner/templates/.github/skills/plugin-development/SKILL.md +173 -0
  48. package/spec-runner/templates/.github/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +88 -0
  49. package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
  50. package/spec-runner/templates/.github/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +80 -0
  51. package/spec-runner/templates/.github/skills/plugin-development/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/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +57 -0
  52. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +53 -0
  53. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +54 -0
  54. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +25 -0
  55. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +28 -0
  56. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +56 -0
  57. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +47 -0
  58. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +67 -0
  59. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +72 -0
  60. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +53 -0
  61. package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +51 -0
  62. package/spec-runner/templates/.github/skills/test-driven-development/SKILL.md +211 -0
  63. package/bin/spec-runner.js +0 -270
  64. package/docs/flow.md +0 -72
  65. package/templates/.spec-runner/project.json.example +0 -27
  66. package/templates/.spec-runner/scripts/check.sh +0 -390
  67. package/templates/.spec-runner/scripts/spec-runner-core.sh +0 -289
  68. package/templates/.spec-runner/scripts/uc-next-start.sh +0 -161
  69. package/templates/.spec-runner/spec-runner.sh +0 -29
  70. package/templates/.spec-runner/steps/steps.json +0 -96
  71. package/templates/.spec-runner/steps//343/203/206/343/202/271/343/203/210/350/250/255/350/250/210.md +0 -58
  72. package/templates/.spec-runner/steps//343/203/211/343/203/241/343/202/244/343/203/263/350/250/255/350/250/210.md +0 -52
  73. package/templates/.spec-runner/steps//344/273/225/346/247/230/347/255/226/345/256/232.md +0 -210
  74. package/templates/.spec-runner/steps//345/210/206/346/236/220.md +0 -106
  75. package/templates/.spec-runner/steps//345/256/237/350/243/205.md +0 -80
  76. package/templates/.spec-runner/steps//345/256/237/350/243/205/350/250/210/347/224/273.md +0 -96
  77. package/templates/.spec-runner/steps//346/206/262/347/253/240.md +0 -95
  78. package/templates/.spec-runner/steps//346/233/226/346/230/247/343/201/225/350/247/243/346/266/210.md +0 -110
  79. package/templates/.spec-runner/templates/UC-N-MMDD-/345/210/244/346/226/255/350/250/230/351/214/262/343/203/206/343/203/263/343/203/227/343/203/254.md +0 -33
  80. package/templates/.spec-runner/templates/UC-N-/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/345/220/215.md +0 -26
  81. package/templates/.spec-runner/templates/phase-locks.json +0 -49
  82. package/templates/.spec-runner/templates//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253.md +0 -21
  83. package/templates/.spec-runner/templates//343/203/246/343/203/223/343/202/255/343/202/277/343/202/271/350/250/200/350/252/236/350/276/236/346/233/270.md +0 -16
  84. package/templates/.spec-runner/templates//346/206/262/347/253/240.md +0 -51
  85. package/templates/.spec-runner/templates//351/233/206/347/264/204.md +0 -46
  86. package/templates/mkdocs-scaffold/docs/index.md +0 -32
  87. package/templates/mkdocs-scaffold/mkdocs.yml +0 -16
  88. package/templates/mkdocs-scaffold/requirements-docs.txt +0 -2
  89. package/templates/skills/uc-k1-work-card-init/SKILL.md +0 -76
  90. package/templates/skills/uc-k2-pre-commit-check/SKILL.md +0 -57
  91. package/templates/skills/uc-k3-spec-impl-diff-review/SKILL.md +0 -57
  92. package/templates/spec-runner-command.md +0 -51
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: design-reviewer
3
+ description: 設計書(docs/)と実装コード(src/)の整合性をチェックする。設計書と実装の乖離が心配なときに使用する。
4
+ tools: Read, Grep, Glob
5
+ model: sonnet
6
+ ---
7
+
8
+ # 設計書⇔実装 整合性チェックエージェント
9
+
10
+ docs/ 配下の設計書と src/ 配下の実装コードを突合し、乖離を報告する。
11
+
12
+ ## 手順
13
+
14
+ 1. docs/ 配下の設計書ファイルを一覧取得する
15
+ 2. 各設計書の frontmatter を読み、`spec_runner.node_id` / `kind` / `depends_on` / `maps_to` を確認する
16
+ 3. `docs/02_概要設計/**` は上位設計として扱い、ユースケース・責務・外部 IF・非機能方針が実装に反映されているか確認する
17
+ 4. `docs/03_詳細設計/src/**` は `maps_to` で対応先コードを特定し、責務・入出力・判断条件・テスト観点を比較する
18
+ 5. `docs/03_詳細設計/infrastructure/**` などの例外文書も `maps_to` を起点に IaC / 設定 / DB 定義と比較する
19
+ 6. 乖離を報告する
20
+
21
+ ## チェック項目
22
+
23
+ ### frontmatter
24
+
25
+ - **必須項目**: `node_id` / `kind` / `depends_on` / `maps_to` が存在するか
26
+ - **依存整合**: `depends_on` の参照先が実在するか。依存の向きが明らかに逆転していないか
27
+ - **対応整合**: `maps_to` の実ファイルが存在するか。変更対象が漏れていないか
28
+
29
+ ### 概要設計
30
+
31
+ - **ユースケース整合**: `ユースケース一覧.md` と個別 UC が実装のエンドポイント・コマンド・画面遷移と一致しているか
32
+ - **全体俯瞰**: `システム全体俯瞰.md` の責務分割・連携フロー・外部 IF が実装構造と一致しているか
33
+ - **ADR 反映**: `docs/02_概要設計/90_ADR/**` の採用方針が概要設計・詳細設計に反映されているか
34
+
35
+ ### 詳細設計
36
+
37
+ - **責務整合**: `docs/03_詳細設計/src/**` の責務記述が対応コードの責務と一致しているか
38
+ - **入出力整合**: 関数シグネチャ、設定値、エラー処理、外部依存の扱いが設計どおりか
39
+ - **テスト整合**: `maps_to` に含まれる `tests/**` が設計上の主要シナリオをカバーしているか
40
+ - **不足 / 過剰**: 設計書にあるがコードにない、またはコードにあるが設計書にない要素があるか
41
+
42
+ ## 報告フォーマット
43
+
44
+ ```
45
+ ## 整合性チェック結果
46
+
47
+ ### frontmatterの問題
48
+ - [ファイル]: [問題内容]
49
+
50
+ ### 一致(問題なし)
51
+ - [ファイルペアの一覧]
52
+
53
+ ### 乖離あり
54
+ #### [設計書ファイル] ⇔ [実装ファイル]
55
+ - 種別: 不足 / 過剰 / 変更
56
+ - 内容: [具体的な差分の説明]
57
+ - 推奨対応: 設計書を更新 / 実装を修正
58
+ ```
59
+
60
+ ## 注意事項
61
+
62
+ - 読み取り専用(コードや設計書の変更は行わない)
63
+ - 日本語で報告する
64
+ - ADR はコードと 1 対 1 の突合対象ではないが、配置先と反映有無は確認する
65
+ - hard code のパス推定より frontmatter の `maps_to` を優先する
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: test-runner
3
+ description: コード変更後にテストを実行し、失敗時は原因分析まで行う。コード修正・機能追加の後に使用する。
4
+ tools: Read, Grep, Glob, Bash
5
+ model: sonnet
6
+ ---
7
+
8
+ # テスト実行エージェント
9
+
10
+ テストをDocker環境で実行し、結果を分析する。
11
+
12
+ ## 手順
13
+
14
+ 1. `git diff --name-only` で変更ファイルを確認する
15
+ 2. 変更ファイルに対応するテストファイルを特定する(`tests/` 配下の同構造)
16
+ 3. テストを実行する:
17
+ - 対象テストが明確な場合: `docker compose run --rm test pytest tests/path/to/test_file.py -v`
18
+ - 全体実行が必要な場合: `docker compose run --rm test pytest -v`
19
+ 4. 結果を分析する
20
+
21
+ ## 失敗時の分析
22
+
23
+ テストが失敗した場合、以下を報告する:
24
+
25
+ - **失敗したテスト**: テスト名とファイルパス
26
+ - **エラー内容**: アサーションエラーやスタックトレースの要約
27
+ - **原因の推定**: 変更内容との関連性を分析
28
+ - **修正案**: 具体的なコード修正の提案(コード例を含める)
29
+
30
+ ## 注意事項
31
+
32
+ - テスト実行は必ず `docker compose run --rm test pytest` で行う
33
+ - コードの修正は行わない(分析と提案のみ)
34
+ - 日本語で報告する
@@ -0,0 +1,106 @@
1
+ ---
2
+ description: コーディング規約(命名規則・型・コメント・テスト構成)
3
+ paths: ["src/**", "tests/**"]
4
+ ---
5
+
6
+ # コーディング規約
7
+
8
+ ## 命名規則
9
+
10
+ | 対象 | 規則 | 例 |
11
+ |------|------|-----|
12
+ | ファイル名 | snake_case | `domain.py`, `journal_search.py` |
13
+ | クラス名 | PascalCase | `CheckExecution`, `AccountBalance` |
14
+ | 関数・メソッド | snake_case | `aggregate_by_account()`, `determine_severity()` |
15
+ | 変数 | snake_case | `journal_entries`, `diff_amount` |
16
+ | 定数 | UPPER_SNAKE_CASE | `THRESHOLD_ERROR`, `_VALID_SEVERITIES` |
17
+ | モジュール内部定数 | _UPPER_SNAKE_CASE(先頭アンダースコア) | `_THRESHOLD_WARNING` |
18
+ | テストクラス | Test + PascalCase | `TestDetermineSeverity` |
19
+ | テストメソッド | test_ + snake_case(日本語不可) | `test_empty_entries_raises` |
20
+ | ディレクトリ | snake_case | `agents/reconciliation/`, `plugins/tools/` |
21
+
22
+ ## コメント・docstring
23
+
24
+ - **言語**: 日本語
25
+ - **docstring**: モジュール先頭に1行で概要を書く。関数・クラスには原則不要(名前で意図が伝わる場合)
26
+ - **インラインコメント**: ビジネスロジックの「なぜ」を説明する場合のみ。処理内容の「何」は書かない
27
+
28
+ ```python
29
+ # 良い例
30
+ # 貸方は負の値として扱う(借方 - 貸方 = 残高)
31
+ balances[credit_key] = balances.get(credit_key, 0) - entry.credit_amount
32
+ ```
33
+
34
+ ## 型
35
+
36
+ - Python 3.12+ のビルトイン型を使用(`list[str]`, `dict[str, int]`, `str | None`)
37
+ - `typing` モジュールのインポートは不要(`List`, `Dict`, `Optional` は使わない)
38
+ - dataclass の `frozen=True` を値オブジェクトに使用
39
+
40
+ ## テスト
41
+
42
+ - テストファイルは実装と同じディレクトリ構造: `tests/agents/reconciliation/test_domain.py`
43
+ - TDDサイクル: RED → GREEN → REFACTOR
44
+
45
+ ### テストコメント規約
46
+
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
+
90
+ - **英語コメント禁止**: `Arrange` / `Act` / `Assert` 等の英語は使わない
91
+
92
+ ## 検索ルール
93
+
94
+ - コードの検索・置換は `src/` と `tests/` の両方を対象にする
95
+ - 日本語のキーワード(後方互換、レガシー等)も検索対象に含める
96
+
97
+ ## プロジェクト構造
98
+
99
+ ```
100
+ src/
101
+ agents/{agent_name}/ # agent.py, domain.py, prompts.py, config.py
102
+ plugins/tools/{tool}/ # tool.py
103
+ plugins/skills/{skill}/ # skill.py
104
+ web/ # FastAPI + HTMX
105
+ tests/ # src/ と同じ構造
106
+ ```
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: 設計書共通ルール(frontmatter・命名規則・ADR・文書品質)
3
+ paths: ["docs/**"]
4
+ ---
5
+
6
+ # 設計書共通ルール
7
+
8
+ ## フェーズ管理
9
+
10
+ - **ユーザー承認なしにフェーズを進めない**
11
+ - フェーズは必ず `要件定義 -> 概要設計 -> 詳細設計 -> TDD -> 実装` の順に進める
12
+
13
+ ## テンプレート
14
+
15
+ - **設計書は必ずテンプレートをコピーして生成する。独自にゼロから作成しない**
16
+ - 手順: テンプレートを読む → 出力先へコピーする → プレースホルダーを埋める
17
+
18
+ ## frontmatter
19
+
20
+ - **`docs/**` の全設計書に frontmatter を付ける**
21
+ - 正本の必須項目は `spec_runner.node_id` / `spec_runner.kind` / `spec_runner.depends_on` / `spec_runner.maps_to`
22
+ - `depends_on` はまず文字列配列でよい。依存理由が必要な場合のみオブジェクト形式を使う
23
+ - `maps_to` には見直し対象となる `src/` / `tests/` / IaC / 設定ファイルを列挙する
24
+ - `modules` / `source_files` などの拡張項目を足す場合でも、`maps_to` と矛盾させない
25
+
26
+ ```yaml
27
+ ---
28
+ spec_runner:
29
+ node_id: detail.src.agents.reconciliation.agent
30
+ kind: detailed_design
31
+ depends_on:
32
+ - overview.system_context
33
+ - use_case.reconciliation.list
34
+ maps_to:
35
+ - src/agents/reconciliation/agent.py
36
+ - tests/agents/reconciliation/test_agent.py
37
+ ---
38
+ ```
39
+
40
+ ## 命名規則
41
+
42
+ | 対象 | 規則 | 例 |
43
+ |------|------|-----|
44
+ | `docs/01_要件定義` | 日本語 | `要件定義.md` |
45
+ | `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md` |
46
+ | `docs/02_概要設計/ユースケース` | `UC-{日本語名}.md` | `UC-差異一覧表示.md` |
47
+ | `docs/02_概要設計/90_ADR` | `ADR-0001-{slug}.md` | `ADR-0001-detailed-design-mirrors-src.md` |
48
+ | `docs/03_詳細設計/src/**` | `src/` に合わせた英語 `snake_case` | `agent.md`, `domain.md`, `skill.md` |
49
+ | `docs/03_詳細設計/infrastructure/**` | 対応先に合わせる。例外で置く場合も `maps_to` 必須 | `database.md`, `schema.dbml` |
50
+
51
+ ## ADR
52
+
53
+ - **ADR は必ず 3 案を比較してから採用案を決める**
54
+ - ADR は原則 `docs/02_概要設計/90_ADR/` に置く
55
+ - ドメインローカル ADR が必要な場合だけ `docs/02_概要設計/<ドメイン>/90_ADR/` を使う
56
+ - ADR は理由の記録であり、詳細設計の代わりにしない
57
+
58
+ ## 文書品質
59
+
60
+ - **概要設計では「何をするか」を書き、コード片・DDL・クラス定義は持ち込まない**
61
+ - **詳細設計では `src/` に対応する責務・入出力・判断条件・テスト観点を書く**
62
+ - **`docs/03_詳細設計` は原則 `src/` ミラーにする。例外文書は `maps_to` で根拠を残す**
63
+ - **Markdown に HTML タグ(details, summary, br など)を使わない**
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: architecture-definition
3
+ description: 新規プロジェクトで docs と `.spec-runner/architecture/architecture.yaml` を立ち上げるための初期化フロー。
4
+ ---
5
+
6
+ # architecture-definition
7
+
8
+ 新規プロジェクト向けの初期化フロー。
9
+ 要件定義から概要設計、architecture contract の作成までを先に固め、その後に project 専用 skill の開発へ渡す。
10
+
11
+ ## 全体フロー
12
+
13
+ ```
14
+ Phase 1: 要件整理
15
+ Phase 2: 概要設計の骨格作成
16
+ Phase 3: アーキテクチャ判断の明文化
17
+ Phase 4: architecture contract 作成
18
+ Phase 5: 次の skill へ引き渡し
19
+ ```
20
+
21
+ ## Phase 1: 要件整理
22
+
23
+ 1. ユーザーから背景、提供価値、制約、スコープ外を確認する
24
+ 2. `docs/01_要件定義/要件定義.md` を作る
25
+ 3. frontmatter を付ける
26
+ 4. ユーザーに確認・承認を得る
27
+
28
+ ## Phase 2: 概要設計の骨格作成
29
+
30
+ 1. `docs/02_概要設計/ユースケース一覧.md` を作る
31
+ 2. `docs/02_概要設計/システム全体俯瞰.md` を作る
32
+ 3. 必要に応じて `ユースケース/`、`外部IF一覧.md`、`非機能・運用方針.md` を追加する
33
+ 4. ユーザーに確認・承認を得る
34
+
35
+ ## Phase 3: アーキテクチャ判断の明文化
36
+
37
+ 1. ドメイン分割、責務境界、実装単位、インフラ方針を整理する
38
+ 2. 必要なら `docs/02_概要設計/90_ADR/` に ADR を作る
39
+ 3. ユーザーに確認・承認を得る
40
+
41
+ ## Phase 4: architecture contract 作成
42
+
43
+ 1. `.spec-runner/architecture/architecture.yaml` を作る
44
+ 2. 最低限、以下を構造化する
45
+ - domain_structure
46
+ - runtime_units
47
+ - design_policy
48
+ - testing_policy
49
+ 3. ユーザーに確認・承認を得る
50
+
51
+ ## Phase 5: 次の skill へ引き渡し
52
+
53
+ 1. `architecture-skill-development` に渡す前提を整理する
54
+ 2. project 専用 skill に切り出すべき反復フローを列挙する
55
+
56
+ ## 原則
57
+
58
+ - docs を先に作る
59
+ - `.spec-runner/` は補助情報として扱う
60
+ - project 専用 skill を作る前にアーキテクチャを固める
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: architecture-skill-development
3
+ description: architecture contract と docs を読み、プロジェクト専用の skill / rule / template を育てるフロー。
4
+ ---
5
+
6
+ # architecture-skill-development
7
+
8
+ `architecture-definition` または `existing-project-to-docs` の後に使う。
9
+ 決まったアーキテクチャから、そのプロジェクト専用の skill / rule / template を作る。
10
+
11
+ ## 全体フロー
12
+
13
+ ```
14
+ Phase 1: 入力の確認
15
+ Phase 2: 反復フローの抽出
16
+ Phase 3: skill / rule / template へ分解
17
+ Phase 4: 基盤 skill のプロジェクト固有化
18
+ Phase 5: Claude / Copilot テンプレートへ反映
19
+ Phase 6: 一貫性の検証
20
+ Phase 7: セットアップ専用 skill のアーカイブ提案
21
+ ```
22
+
23
+ ## Phase 1: 入力の確認
24
+
25
+ 1. `docs/01_要件定義/**`, `docs/02_概要設計/**`, `docs/03_詳細設計/**` を読む
26
+ 2. `.spec-runner/architecture/architecture.yaml` を読む
27
+ 3. 固定化すべき判断と project 固有判断を切り分ける
28
+
29
+ ## Phase 2: 反復フローの抽出
30
+
31
+ 1. よく繰り返す作業を抽出する
32
+ 2. どこにユーザー承認が必要かを決める
33
+ 3. 影響調査や TDD など共通 skill をどうつなぐか決める
34
+ 4. ユーザーに確認・承認を得る
35
+
36
+ ## Phase 3: skill / rule / template へ分解
37
+
38
+ 1. 会話フローは skill にする
39
+ 2. 常時守る約束は rule にする
40
+ 3. 毎回コピーする設計書は template にする
41
+
42
+ ### plugin-development を種として使う
43
+
44
+ 新規開発フローの skill を作る場合は、`plugin-development` を種として使う。
45
+ `plugin-development` はプラグイン型アーキテクチャ向けの reference workflow であり、
46
+ そのまま使うのではなく、**このプロジェクトのアーキテクチャに合わせて書き換えた project 専用 skill を作る**ことを目的とする。
47
+
48
+ 具体的には:
49
+ - `.claude/skills/plugin-development/SKILL.md` をコピーして、project 専用の開発 skill の土台にする
50
+ - フェーズ構成・テンプレートパス・用語をこのプロジェクトの実態に合わせて書き換える
51
+ - 元の `plugin-development` は書き換え完了後にアーカイブ候補とする(Phase 7 で提案する)
52
+
53
+ ユーザーに確認・承認を得る
54
+
55
+ ## Phase 4: 基盤 skill のプロジェクト固有化
56
+
57
+ インストール時に配布された基盤 skill のプレースホルダーを、このプロジェクトの実態に書き換える。
58
+
59
+ ### test-driven-development の書き換え
60
+
61
+ `architecture.yaml` の `testing_policy` と `language` を参照して、以下を実際の値に置き換える。
62
+
63
+ 1. **テスト実行コマンド** — `<your-test-command>` を実際のコマンドに書き換える
64
+
65
+ 例:
66
+ ```bash
67
+ # 全テスト
68
+ docker compose run --rm test pytest
69
+
70
+ # 特定ファイル
71
+ docker compose run --rm test pytest tests/path/to/test_file.py
72
+
73
+ # カバレッジ計測
74
+ docker compose run --rm test pytest --cov=. --cov-report=term-missing
75
+ ```
76
+
77
+ 2. **コード例** — 言語・フレームワークに合わせて RED / GREEN の例を書き直す
78
+
79
+ 3. **fixture / テストデータ** — このプロジェクトの実際のクラス名・DB 接続方法・ヘルパ関数パターンを記述する
80
+
81
+ 4. **モックのルール** — 使用する外部サービスとモック手段(ライブラリ名など)を具体化する
82
+
83
+ 書き換えは `.claude/skills/test-driven-development/SKILL.md` と `.github/skills/test-driven-development/SKILL.md` の両方に反映する。
84
+
85
+ ### その他の基盤 skill
86
+
87
+ 同様のプレースホルダーや汎用記述が他の skill にあれば、同じ要領で書き換える。
88
+
89
+ ユーザーに確認・承認を得る
90
+
91
+ ## Phase 5: Claude / Copilot テンプレートへ反映
92
+
93
+ 1. `.claude/` と `.github/` の両方へ反映する
94
+ 2. path や naming がずれないよう対応ファイルを揃える
95
+
96
+ ## Phase 6: 一貫性の検証
97
+
98
+ 1. 既存 skill / rule / agent と矛盾しないか確認する
99
+ 2. `harness-engineering` が必要な改善点を洗い出す
100
+
101
+ ## Phase 7: セットアップ専用 skill のアーカイブ提案
102
+
103
+ セットアップ時にしか使わない skill は、開発ループに入ると不要になる。
104
+ **ユーザーの承認を得てから** 整理する。絶対に自動で削除・移動しない。
105
+
106
+ ### アーカイブ候補
107
+
108
+ | skill | 理由 |
109
+ |---|---|
110
+ | `architecture-definition` | 新規プロジェクト初期化専用。アーキテクチャ確定後は不要 |
111
+ | `existing-project-to-docs` | 既存プロジェクト取り込み専用。docs 生成後は不要 |
112
+ | `plugin-development` | Phase 3 で project 専用 skill の種として使い終えたら不要 |
113
+ | `architecture-skill-development`(このファイル自身) | project 専用 skill が安定したら不要。ただしアーキテクチャが大きく変わる場合は再利用する可能性があるため、削除ではなくアーカイブを推奨 |
114
+
115
+ ### 手順
116
+
117
+ 1. 上記の候補をユーザーに提示し、整理してよいか確認する
118
+ 2. 承認を得た skill を `.claude/skills/` と `.github/skills/` から削除する
119
+ 3. 必要であれば削除前にバックアップ先をユーザーに伝える
120
+
121
+ ## 原則
122
+
123
+ - 固定の architecture pack を増やしすぎない
124
+ - project 専用 skill を先に考える
125
+ - docs と architecture contract の両方を入力にする
126
+ - **skill の削除・移動はユーザー承認なしに行わない**
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: commit
3
+ description: 変更を Conventional Commits 形式でコミットする。
4
+ ---
5
+
6
+ # commit
7
+
8
+ 変更を Conventional Commits 形式でコミットする。
9
+
10
+ ## 手順
11
+
12
+ 1. `git status` と `git diff --cached`(ステージ済み)または `git diff`(未ステージ)で変更内容を確認する
13
+ 2. `git log --oneline -10` で直近のコミット履歴を確認する
14
+ 3. 変更内容に基づいてコミットメッセージを生成する
15
+ 4. 未ステージの場合は適切なファイルを `git add` する
16
+ 5. **機密情報チェック**: `git diff --cached` の内容を確認し、以下のパターンが含まれていないか検査する
17
+ - API キー、シークレットキー、パスワード、トークン、秘密鍵、接続文字列
18
+ - `.env` ファイルの内容、認証情報ファイル(`credentials.json` 等)
19
+ - 検出した場合はコミットを中止し、ユーザーに報告する
20
+ 6. コミットを実行する
21
+
22
+ ## コミットメッセージ形式
23
+
24
+ ```
25
+ <type>: <summary>
26
+
27
+ <body(任意)>
28
+ ```
29
+
30
+ ### type(必須)
31
+
32
+ | type | 用途 |
33
+ |------|------|
34
+ | `feat` | 新機能・新規ファイル追加 |
35
+ | `fix` | バグ修正 |
36
+ | `docs` | ドキュメントのみの変更 |
37
+ | `refactor` | リファクタリング(機能変更なし) |
38
+ | `test` | テストの追加・修正 |
39
+ | `chore` | ビルド・設定・CI 等の変更 |
40
+ | `style` | フォーマット・命名変更(動作変更なし) |
41
+
42
+ ### summary(必須)
43
+
44
+ - 日本語で書く
45
+ - 末尾に句点(。)をつけない
46
+ - 命令形ではなく体言止め or 「〜を追加」「〜を修正」形式
47
+ - 50 文字以内を目安
48
+
49
+ ### body(任意)
50
+
51
+ - 変更が大きい場合のみ記載
52
+ - 「なぜ」この変更をしたかを書く(「何を」は diff で分かる)
53
+ - チーム運用で必要な場合のみ `Co-Authored-By` を追加する
54
+
55
+ ## 例
56
+
57
+ ```
58
+ feat: 突合チェックエージェントを追加
59
+ ```
60
+
61
+ ```
62
+ docs: 要件定義・概要設計を追加
63
+ ```
64
+
65
+ ```
66
+ chore: Docker 構成を追加
67
+ ```
68
+
69
+ ```
70
+ feat: スキル 4 種とツール 3 種を追加
71
+
72
+ 売掛金・役員報酬・汎用残高・租税公課チェックスキル、
73
+ 科目別集計・仕訳検索・3 ソース比較ツール
74
+ ```
75
+
76
+ ```
77
+ fix: 科目名正規化で建設業科目が漏れていた問題を修正
78
+ ```
79
+
80
+ ## 原則
81
+
82
+ - `git add .` や `git add -A` は使わない(ファイル名を明示する)
83
+ - 1 コミットに複数の論理的変更を混ぜない
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: design-change
3
+ description: 既存機能の変更を docs 正本で進めるフローガイド。軽い影響調査、ADR、概要設計、詳細設計、TDD を順に進める。
4
+ ---
5
+
6
+ # design-change
7
+
8
+ 既存機能の変更・修正を設計書駆動で進めるフローガイド。
9
+ **フェーズを必ず順番通りに進める。ユーザーの承認なしにフェーズを先に進めない。**
10
+
11
+ 影響範囲のチェックリストは `references/影響範囲チェックリスト.md` を参照する。
12
+ ADR テンプレートは `templates/90_ADR/ADRテンプレート.md` を使用する。
13
+
14
+ ## 全体フロー
15
+
16
+ ```
17
+ Phase 1: 変更要求の整理と軽い影響調査
18
+ Phase 2: ADR 作成(必要時)
19
+ Phase 3: 影響ドキュメントの確定
20
+ Phase 4: 概要設計の修正
21
+ Phase 5: 詳細設計の修正
22
+ Phase 6: TDD → 実装 → 検証
23
+ ```
24
+
25
+ ## Phase 1: 変更要求の整理と軽い影響調査
26
+
27
+ 1. 以下をユーザーにヒアリングする
28
+ - 変更の背景・課題
29
+ - 変更の目的・期待する結果
30
+ - 影響を受ける機能カテゴリ
31
+ - 技術的・ビジネス的制約
32
+ 2. 変更起点となる docs を特定する
33
+ 3. frontmatter の `depends_on` / `maps_to` を使って影響候補を軽く洗う
34
+ 4. 変更が影響するドメインと成果物を一覧化する
35
+ 5. ユーザーに確認・承認を得る
36
+
37
+ ## Phase 2: ADR 作成(必要時)
38
+
39
+ 1. アーキテクチャ、責務境界、保存方式、外部 IF などの意思決定が必要か判定する
40
+ 2. 必要な場合は **3 案を提示する**
41
+ 3. 各案について概要・メリット・デメリット・適合性を示す
42
+ 4. ユーザーが案を決定する
43
+ 5. テンプレート `templates/90_ADR/ADRテンプレート.md` をコピーして生成する
44
+ 6. ファイル名は `ADR-0001-{slug}.md` 形式にする
45
+
46
+ ### ADR 配置ルール
47
+
48
+ | 変更スコープ | 配置先 |
49
+ |------------|--------|
50
+ | 横断的な決定 | `docs/02_概要設計/90_ADR/` |
51
+ | 特定ドメイン寄りの決定 | `docs/02_概要設計/<ドメイン>/90_ADR/` |
52
+
53
+ MVP では `docs/02_概要設計/90_ADR/` に集約する。
54
+
55
+ ## Phase 3: 影響ドキュメントの確定
56
+
57
+ 1. `references/影響範囲チェックリスト.md` を読み、変更に応じた影響ドキュメントを網羅的に洗い出す
58
+ 2. frontmatter の `depends_on` / `maps_to` を使って候補を絞る
59
+ 3. 修正が必要なファイルをチェックリスト形式で提示する
60
+ 4. `@design-reviewer` エージェントに委任して、現時点の設計書⇔実装の乖離も合わせて確認する
61
+ 5. ユーザーに確認・承認を得る
62
+
63
+ ## Phase 4: 概要設計の修正
64
+
65
+ 1. `ユースケース一覧.md` / `システム全体俯瞰.md` / UC 個別文書 / ADR を必要順に修正する
66
+ 2. 修正完了ごとにチェックリストを更新する
67
+ 3. 全概要設計の修正完了後、ユーザーに確認・承認を得る
68
+
69
+ ### 修正時の注意
70
+
71
+ - 変更理由は ADR または本文で追えるようにする
72
+ - 概要設計では「何をするか」に留める
73
+
74
+ ## Phase 5: 詳細設計の修正
75
+
76
+ 1. `docs/03_詳細設計/src/**` を `src/` ミラーで修正する
77
+ 2. 補助設計が必要な場合だけ `docs/03_詳細設計/infrastructure/**` を修正する
78
+ 3. frontmatter の `depends_on` / `maps_to` を更新する
79
+ 4. ユーザーに最終確認を得る
80
+
81
+ ## Phase 6: TDD → 実装 → 検証
82
+
83
+ 設計書修正が承認されたら `test-driven-development` スキルへ移行する。
84
+
85
+ ### 実装完了後のレビュー
86
+
87
+ - `@design-reviewer` — frontmatter と `maps_to` を起点に設計書⇔実装の整合性チェック
88
+ - `@code-reviewer` — コーディング規約への適合チェック
89
+
90
+ ## 原則
91
+
92
+ - **影響候補の洗い出しを ADR より先に行う**
93
+ - **概要設計を先に直し、そのあと詳細設計を直す**
94
+ - **frontmatter の更新を後回しにしない**