spec-runner 1.1.10 → 1.1.13
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/package.json +1 -2
- package/spec-runner/templates/.claude/agents/code-reviewer.md +6 -36
- package/spec-runner/templates/.claude/agents/design-reviewer.md +1 -1
- package/spec-runner/templates/.claude/agents/impact-analyzer.md +51 -0
- package/spec-runner/templates/.claude/agents/test-runner.md +1 -1
- package/spec-runner/templates/.claude/rules/design-docs.md +1 -1
- package/spec-runner/templates/.claude/rules/sub-agent-delegation.md +37 -0
- package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +11 -0
- package/spec-runner/templates/.claude/skills/design-change/SKILL.md +2 -2
- 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 +1 -1
- package/spec-runner/templates/.claude/skills/harness-engineering/SKILL.md +1 -0
- package/spec-runner/templates/.claude/skills/plugin-development/SKILL.md +1 -1
- 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 +1 -1
- package/spec-runner/templates/.github/agents/code-reviewer.agent.md +6 -36
- package/spec-runner/templates/.github/agents/design-reviewer.agent.md +1 -1
- package/spec-runner/templates/.github/agents/impact-analyzer.agent.md +51 -0
- package/spec-runner/templates/.github/agents/test-runner.agent.md +1 -1
- package/spec-runner/templates/.github/instructions/design-docs.instructions.md +1 -1
- package/spec-runner/templates/.github/instructions/sub-agent-delegation.instructions.md +37 -0
- package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +11 -0
- package/spec-runner/templates/.github/skills/design-change/SKILL.md +2 -2
- 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 +1 -1
- package/spec-runner/templates/.github/skills/harness-engineering/SKILL.md +1 -0
- package/spec-runner/templates/.github/skills/plugin-development/SKILL.md +1 -1
- 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 +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "spec-runner",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.13",
|
|
4
4
|
"description": "docs を正本にした開発運用ハーネスを Claude / Copilot に導入する",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
"rails",
|
|
21
21
|
"django",
|
|
22
22
|
"nextjs",
|
|
23
|
-
"spec-kit",
|
|
24
23
|
"docs-as-code",
|
|
25
24
|
"architecture-driven"
|
|
26
25
|
],
|
|
@@ -1,51 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
|
-
description:
|
|
3
|
+
description: 実装・修正が完了したときに自動で呼ぶ。変更ファイルをコーディング規約と照合し違反を報告する。修正はしない。
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# コーディング規約チェックエージェント
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
変更されたコードをコーディング規約と照合し、違反を報告する。
|
|
11
11
|
|
|
12
12
|
## 手順
|
|
13
13
|
|
|
14
14
|
1. `git diff --name-only` で変更ファイルを確認する(引数でファイルが指定された場合はそちらを使用)
|
|
15
|
-
2.
|
|
16
|
-
3.
|
|
17
|
-
4.
|
|
18
|
-
|
|
19
|
-
## チェック項目
|
|
20
|
-
|
|
21
|
-
### 命名規則
|
|
22
|
-
- ファイル名: snake_case
|
|
23
|
-
- クラス名: PascalCase
|
|
24
|
-
- 関数・メソッド: snake_case
|
|
25
|
-
- 変数: snake_case
|
|
26
|
-
- 定数: UPPER_SNAKE_CASE
|
|
27
|
-
- モジュール内部定数: _UPPER_SNAKE_CASE(先頭アンダースコア)
|
|
28
|
-
- テストクラス: Test + PascalCase
|
|
29
|
-
- テストメソッド: test_ + snake_case(日本語不可)
|
|
30
|
-
|
|
31
|
-
### 型ヒント
|
|
32
|
-
- Python 3.12+ のビルトイン型を使用(`list[str]`, `dict[str, int]`, `str | None`)
|
|
33
|
-
- `typing` モジュールの `List`, `Dict`, `Optional` を使っていないか
|
|
34
|
-
- 値オブジェクトに `frozen=True` の dataclass を使っているか
|
|
35
|
-
|
|
36
|
-
### コメント・docstring
|
|
37
|
-
- コメントが日本語であるか(英語コメント禁止)
|
|
38
|
-
- モジュール先頭に1行概要があるか
|
|
39
|
-
- 不要なdocstring(名前で意図が伝わる関数へのdocstring)がないか
|
|
40
|
-
|
|
41
|
-
### テストコメント
|
|
42
|
-
- 全テストメソッドにdocstring(テスト意図を日本語1行)があるか
|
|
43
|
-
- セットアップ5行以上のテストに `# 準備` / `# 実行` / `# 検証` があるか
|
|
44
|
-
- テストクラスが3つ以上のファイルにセクション区切り(`# ====`)があるか
|
|
45
|
-
|
|
46
|
-
### プロジェクト構造
|
|
47
|
-
- テストファイルが実装と同じディレクトリ構造にあるか
|
|
48
|
-
- `__init__.py` が存在するか
|
|
15
|
+
2. `.claude/rules/coding.md` を読み、チェック項目を把握する
|
|
16
|
+
3. 変更されたソースファイルを読み込む
|
|
17
|
+
4. チェック項目に照らして違反を検出する
|
|
18
|
+
5. 違反を報告する
|
|
49
19
|
|
|
50
20
|
## 報告フォーマット
|
|
51
21
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: impact-analyzer
|
|
3
|
+
description: design-change で影響範囲を調査するときに呼ぶ。変更対象の node_id またはファイルパスを受け取り、docs/ 全体の frontmatter を走査して depends_on / maps_to で連鎖する影響ファイルを一覧化する。
|
|
4
|
+
tools: Read, Grep, Glob
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 影響範囲分析エージェント
|
|
9
|
+
|
|
10
|
+
変更対象の docs ノードを起点に、frontmatter の `depends_on` / `maps_to` を辿って影響を受けるファイルを一覧化する。
|
|
11
|
+
|
|
12
|
+
## 入力
|
|
13
|
+
|
|
14
|
+
- 変更対象の `node_id`(例: `usecase.order_registration`)またはファイルパス
|
|
15
|
+
|
|
16
|
+
## 手順
|
|
17
|
+
|
|
18
|
+
1. `docs/` 配下の全 `.md` ファイルの frontmatter を読む
|
|
19
|
+
2. `depends_on` に入力の node_id を含むファイルを「直接影響」として収集する
|
|
20
|
+
3. 収集したファイルの node_id を起点に同じ検索を繰り返す(2階層まで)
|
|
21
|
+
4. `maps_to` に入力の node_id を含む `src/` / `tests/` ファイルを「実装影響」として収集する
|
|
22
|
+
5. 結果を一覧化する
|
|
23
|
+
|
|
24
|
+
## 報告フォーマット
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
## 影響範囲分析
|
|
28
|
+
|
|
29
|
+
### 起点
|
|
30
|
+
- node_id: {node_id}
|
|
31
|
+
- ファイル: {ファイルパス}
|
|
32
|
+
|
|
33
|
+
### 直接影響(depends_on で参照)
|
|
34
|
+
- [ファイルパス] — node_id: {node_id}, kind: {kind}
|
|
35
|
+
|
|
36
|
+
### 間接影響(2階層目)
|
|
37
|
+
- [ファイルパス] — node_id: {node_id}, kind: {kind}
|
|
38
|
+
|
|
39
|
+
### 実装影響(maps_to で対応)
|
|
40
|
+
- [src/ または tests/ のファイルパス]
|
|
41
|
+
|
|
42
|
+
### 影響なし(確認済みで変更不要)
|
|
43
|
+
- [ファイルパス] — 理由: {理由}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 注意事項
|
|
47
|
+
|
|
48
|
+
- 読み取り専用(ファイルの変更は行わない)
|
|
49
|
+
- 日本語で報告する
|
|
50
|
+
- frontmatter が存在しないファイルはスキップする
|
|
51
|
+
- 影響ファイルが多い場合は kind 別にグループ化する
|
|
@@ -44,7 +44,7 @@ spec_runner:
|
|
|
44
44
|
| `docs/01_要件定義` | 日本語 | `要件定義.md` |
|
|
45
45
|
| `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md` |
|
|
46
46
|
| `docs/02_概要設計/ユースケース` | `UC-{日本語名}.md` | `UC-差異一覧表示.md` |
|
|
47
|
-
| `docs/02_概要設計/90_ADR` | `
|
|
47
|
+
| `docs/02_概要設計/90_ADR` | `mmdd-{日本語タイトル}.md` | `0404-詳細設計をsrcミラーにする.md` |
|
|
48
48
|
| `docs/03_詳細設計/src/**` | `src/` に合わせた英語 `snake_case` | `agent.md`, `domain.md`, `skill.md` |
|
|
49
49
|
| `docs/03_詳細設計/infrastructure/**` | 対応先に合わせる。例外で置く場合も `maps_to` 必須 | `database.md`, `schema.dbml` |
|
|
50
50
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: メインエージェントがサブエージェントへ委任すべきタスクの指針
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# サブエージェント委任ルール
|
|
6
|
+
|
|
7
|
+
**メインエージェントは判断・対話・ファイル編集に集中する。検証・調査・実行は積極的にサブエージェントへ委任する。**
|
|
8
|
+
|
|
9
|
+
## 委任する場面と委任先
|
|
10
|
+
|
|
11
|
+
| 場面 | 委任先 | タイミング |
|
|
12
|
+
|------|--------|-----------|
|
|
13
|
+
| 設計書⇔実装の整合性確認 | `@design-reviewer` | 設計書を変更したとき、フェーズレビュー時 |
|
|
14
|
+
| コーディング規約チェック | `@code-reviewer` | 実装・修正が完了したとき |
|
|
15
|
+
| テスト実行+失敗分析 | `@test-runner` | 実装・修正が完了したとき |
|
|
16
|
+
| 変更の影響範囲調査 | `@impact-analyzer` | design-change で影響範囲を洗うとき |
|
|
17
|
+
|
|
18
|
+
## 並行起動
|
|
19
|
+
|
|
20
|
+
独立して動けるエージェントは同時に起動する。
|
|
21
|
+
|
|
22
|
+
例: 実装完了後 → `@test-runner` と `@code-reviewer` を**同時に**起動し、両方の結果を待ってからユーザーへ報告する。
|
|
23
|
+
|
|
24
|
+
## メインエージェントが自分でやること
|
|
25
|
+
|
|
26
|
+
サブエージェントは会話の文脈を持たない。以下はメインエージェントが担う:
|
|
27
|
+
|
|
28
|
+
- ユーザーとの対話・意思決定・承認の受け取り
|
|
29
|
+
- フェーズの進行管理・次のアクションの判断
|
|
30
|
+
- ファイルの作成・編集
|
|
31
|
+
- サブエージェントの結果を解釈してユーザーへ伝える
|
|
32
|
+
|
|
33
|
+
## 原則
|
|
34
|
+
|
|
35
|
+
- ファイルの検索・調査はスケールに関わらずサブエージェントに任せる(メインのコンテキスト節約)
|
|
36
|
+
- 検証タスクをメインエージェントが自分でやらない
|
|
37
|
+
- サブエージェントの報告はポイントを絞ってユーザーへ伝える(生の出力をそのまま貼らない)
|
|
@@ -117,6 +117,17 @@ Phase 7: セットアップ専用 skill のアーカイブ提案
|
|
|
117
117
|
1. 上記の候補をユーザーに提示し、整理してよいか確認する
|
|
118
118
|
2. 承認を得た skill を `.claude/skills/` と `.github/skills/` から削除する
|
|
119
119
|
3. 必要であれば削除前にバックアップ先をユーザーに伝える
|
|
120
|
+
4. `CLAUDE.md` を更新する
|
|
121
|
+
- 「初回自動起動」セクション(spec-runner インストール時に生成されたもの)を削除する
|
|
122
|
+
- 作成した project 専用 skill の名前と使いどころを記載する
|
|
123
|
+
- 例:
|
|
124
|
+
```markdown
|
|
125
|
+
## 開発ワークフロー
|
|
126
|
+
新機能を実装するときは `/feature-development` を使う。
|
|
127
|
+
既存機能を変更するときは `/design-change` を使う。
|
|
128
|
+
テストを書くときは `/test-driven-development` を使う。
|
|
129
|
+
```
|
|
130
|
+
- `.claude/` と `.github/` 両系で内容が変わる場合は、それぞれに反映する
|
|
120
131
|
|
|
121
132
|
## 原則
|
|
122
133
|
|
|
@@ -30,7 +30,7 @@ Phase 6: TDD → 実装 → 検証
|
|
|
30
30
|
- 影響を受ける機能カテゴリ
|
|
31
31
|
- 技術的・ビジネス的制約
|
|
32
32
|
2. 変更起点となる docs を特定する
|
|
33
|
-
3.
|
|
33
|
+
3. `@impact-analyzer` に委任して `depends_on` / `maps_to` を辿る影響ファイルを洗い出す
|
|
34
34
|
4. 変更が影響するドメインと成果物を一覧化する
|
|
35
35
|
5. ユーザーに確認・承認を得る
|
|
36
36
|
|
|
@@ -41,7 +41,7 @@ Phase 6: TDD → 実装 → 検証
|
|
|
41
41
|
3. 各案について概要・メリット・デメリット・適合性を示す
|
|
42
42
|
4. ユーザーが案を決定する
|
|
43
43
|
5. テンプレート `templates/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
44
|
-
6. ファイル名は `
|
|
44
|
+
6. ファイル名は `mmdd-{日本語タイトル}.md` 形式にする(例: `0404-キャッシュ戦略の変更.md`)
|
|
45
45
|
|
|
46
46
|
### ADR 配置ルール
|
|
47
47
|
|
|
@@ -82,7 +82,7 @@ docs/
|
|
|
82
82
|
1. 実装方針に意思決定が必要な場合だけ ADR を作る
|
|
83
83
|
2. **必ず 3 案を比較する**
|
|
84
84
|
3. テンプレート `templates/02_概要設計/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
85
|
-
4. 配置先は `docs/02_概要設計/90_ADR/
|
|
85
|
+
4. 配置先は `docs/02_概要設計/90_ADR/mmdd-{日本語タイトル}.md` を原則とする
|
|
86
86
|
5. 採用案を概要設計へ反映してから次へ進む
|
|
87
87
|
|
|
88
88
|
## Phase 4: 詳細設計
|
|
@@ -1,51 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
|
-
description:
|
|
3
|
+
description: 実装・修正が完了したときに自動で呼ぶ。変更ファイルをコーディング規約と照合し違反を報告する。修正はしない。
|
|
4
4
|
tools: Read, Grep, Glob, Bash
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# コーディング規約チェックエージェント
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
変更されたコードをコーディング規約と照合し、違反を報告する。
|
|
11
11
|
|
|
12
12
|
## 手順
|
|
13
13
|
|
|
14
14
|
1. `git diff --name-only` で変更ファイルを確認する(引数でファイルが指定された場合はそちらを使用)
|
|
15
|
-
2.
|
|
16
|
-
3.
|
|
17
|
-
4.
|
|
18
|
-
|
|
19
|
-
## チェック項目
|
|
20
|
-
|
|
21
|
-
### 命名規則
|
|
22
|
-
- ファイル名: snake_case
|
|
23
|
-
- クラス名: PascalCase
|
|
24
|
-
- 関数・メソッド: snake_case
|
|
25
|
-
- 変数: snake_case
|
|
26
|
-
- 定数: UPPER_SNAKE_CASE
|
|
27
|
-
- モジュール内部定数: _UPPER_SNAKE_CASE(先頭アンダースコア)
|
|
28
|
-
- テストクラス: Test + PascalCase
|
|
29
|
-
- テストメソッド: test_ + snake_case(日本語不可)
|
|
30
|
-
|
|
31
|
-
### 型ヒント
|
|
32
|
-
- Python 3.12+ のビルトイン型を使用(`list[str]`, `dict[str, int]`, `str | None`)
|
|
33
|
-
- `typing` モジュールの `List`, `Dict`, `Optional` を使っていないか
|
|
34
|
-
- 値オブジェクトに `frozen=True` の dataclass を使っているか
|
|
35
|
-
|
|
36
|
-
### コメント・docstring
|
|
37
|
-
- コメントが日本語であるか(英語コメント禁止)
|
|
38
|
-
- モジュール先頭に1行概要があるか
|
|
39
|
-
- 不要なdocstring(名前で意図が伝わる関数へのdocstring)がないか
|
|
40
|
-
|
|
41
|
-
### テストコメント
|
|
42
|
-
- 全テストメソッドにdocstring(テスト意図を日本語1行)があるか
|
|
43
|
-
- セットアップ5行以上のテストに `# 準備` / `# 実行` / `# 検証` があるか
|
|
44
|
-
- テストクラスが3つ以上のファイルにセクション区切り(`# ====`)があるか
|
|
45
|
-
|
|
46
|
-
### プロジェクト構造
|
|
47
|
-
- テストファイルが実装と同じディレクトリ構造にあるか
|
|
48
|
-
- `__init__.py` が存在するか
|
|
15
|
+
2. `.github/instructions/coding.instructions.md` を読み、チェック項目を把握する
|
|
16
|
+
3. 変更されたソースファイルを読み込む
|
|
17
|
+
4. チェック項目に照らして違反を検出する
|
|
18
|
+
5. 違反を報告する
|
|
49
19
|
|
|
50
20
|
## 報告フォーマット
|
|
51
21
|
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: impact-analyzer
|
|
3
|
+
description: design-change で影響範囲を調査するときに呼ぶ。変更対象の node_id またはファイルパスを受け取り、docs/ 全体の frontmatter を走査して depends_on / maps_to で連鎖する影響ファイルを一覧化する。
|
|
4
|
+
tools: Read, Grep, Glob
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 影響範囲分析エージェント
|
|
9
|
+
|
|
10
|
+
変更対象の docs ノードを起点に、frontmatter の `depends_on` / `maps_to` を辿って影響を受けるファイルを一覧化する。
|
|
11
|
+
|
|
12
|
+
## 入力
|
|
13
|
+
|
|
14
|
+
- 変更対象の `node_id`(例: `usecase.order_registration`)またはファイルパス
|
|
15
|
+
|
|
16
|
+
## 手順
|
|
17
|
+
|
|
18
|
+
1. `docs/` 配下の全 `.md` ファイルの frontmatter を読む
|
|
19
|
+
2. `depends_on` に入力の node_id を含むファイルを「直接影響」として収集する
|
|
20
|
+
3. 収集したファイルの node_id を起点に同じ検索を繰り返す(2階層まで)
|
|
21
|
+
4. `maps_to` に入力の node_id を含む `src/` / `tests/` ファイルを「実装影響」として収集する
|
|
22
|
+
5. 結果を一覧化する
|
|
23
|
+
|
|
24
|
+
## 報告フォーマット
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
## 影響範囲分析
|
|
28
|
+
|
|
29
|
+
### 起点
|
|
30
|
+
- node_id: {node_id}
|
|
31
|
+
- ファイル: {ファイルパス}
|
|
32
|
+
|
|
33
|
+
### 直接影響(depends_on で参照)
|
|
34
|
+
- [ファイルパス] — node_id: {node_id}, kind: {kind}
|
|
35
|
+
|
|
36
|
+
### 間接影響(2階層目)
|
|
37
|
+
- [ファイルパス] — node_id: {node_id}, kind: {kind}
|
|
38
|
+
|
|
39
|
+
### 実装影響(maps_to で対応)
|
|
40
|
+
- [src/ または tests/ のファイルパス]
|
|
41
|
+
|
|
42
|
+
### 影響なし(確認済みで変更不要)
|
|
43
|
+
- [ファイルパス] — 理由: {理由}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 注意事項
|
|
47
|
+
|
|
48
|
+
- 読み取り専用(ファイルの変更は行わない)
|
|
49
|
+
- 日本語で報告する
|
|
50
|
+
- frontmatter が存在しないファイルはスキップする
|
|
51
|
+
- 影響ファイルが多い場合は kind 別にグループ化する
|
|
@@ -43,7 +43,7 @@ spec_runner:
|
|
|
43
43
|
| `docs/01_要件定義` | 日本語 | `要件定義.md` |
|
|
44
44
|
| `docs/02_概要設計` | 日本語 | `ユースケース一覧.md`, `システム全体俯瞰.md` |
|
|
45
45
|
| `docs/02_概要設計/ユースケース` | `UC-{日本語名}.md` | `UC-差異一覧表示.md` |
|
|
46
|
-
| `docs/02_概要設計/90_ADR` | `
|
|
46
|
+
| `docs/02_概要設計/90_ADR` | `mmdd-{日本語タイトル}.md` | `0404-詳細設計をsrcミラーにする.md` |
|
|
47
47
|
| `docs/03_詳細設計/src/**` | `src/` に合わせた英語 `snake_case` | `agent.md`, `domain.md`, `skill.md` |
|
|
48
48
|
| `docs/03_詳細設計/infrastructure/**` | 対応先に合わせる。例外で置く場合も `maps_to` 必須 | `database.md`, `schema.dbml` |
|
|
49
49
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
applyTo: "**"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# サブエージェント委任ルール
|
|
6
|
+
|
|
7
|
+
**メインエージェントは判断・対話・ファイル編集に集中する。検証・調査・実行は積極的にサブエージェントへ委任する。**
|
|
8
|
+
|
|
9
|
+
## 委任する場面と委任先
|
|
10
|
+
|
|
11
|
+
| 場面 | 委任先 | タイミング |
|
|
12
|
+
|------|--------|-----------|
|
|
13
|
+
| 設計書⇔実装の整合性確認 | `@design-reviewer` | 設計書を変更したとき、フェーズレビュー時 |
|
|
14
|
+
| コーディング規約チェック | `@code-reviewer` | 実装・修正が完了したとき |
|
|
15
|
+
| テスト実行+失敗分析 | `@test-runner` | 実装・修正が完了したとき |
|
|
16
|
+
| 変更の影響範囲調査 | `@impact-analyzer` | design-change で影響範囲を洗うとき |
|
|
17
|
+
|
|
18
|
+
## 並行起動
|
|
19
|
+
|
|
20
|
+
独立して動けるエージェントは同時に起動する。
|
|
21
|
+
|
|
22
|
+
例: 実装完了後 → `@test-runner` と `@code-reviewer` を**同時に**起動し、両方の結果を待ってからユーザーへ報告する。
|
|
23
|
+
|
|
24
|
+
## メインエージェントが自分でやること
|
|
25
|
+
|
|
26
|
+
サブエージェントは会話の文脈を持たない。以下はメインエージェントが担う:
|
|
27
|
+
|
|
28
|
+
- ユーザーとの対話・意思決定・承認の受け取り
|
|
29
|
+
- フェーズの進行管理・次のアクションの判断
|
|
30
|
+
- ファイルの作成・編集
|
|
31
|
+
- サブエージェントの結果を解釈してユーザーへ伝える
|
|
32
|
+
|
|
33
|
+
## 原則
|
|
34
|
+
|
|
35
|
+
- ファイルの検索・調査はスケールに関わらずサブエージェントに任せる(メインのコンテキスト節約)
|
|
36
|
+
- 検証タスクをメインエージェントが自分でやらない
|
|
37
|
+
- サブエージェントの報告はポイントを絞ってユーザーへ伝える(生の出力をそのまま貼らない)
|
|
@@ -117,6 +117,17 @@ Phase 7: セットアップ専用 skill のアーカイブ提案
|
|
|
117
117
|
1. 上記の候補をユーザーに提示し、整理してよいか確認する
|
|
118
118
|
2. 承認を得た skill を `.claude/skills/` と `.github/skills/` から削除する
|
|
119
119
|
3. 必要であれば削除前にバックアップ先をユーザーに伝える
|
|
120
|
+
4. `CLAUDE.md` を更新する
|
|
121
|
+
- 「初回自動起動」セクション(spec-runner インストール時に生成されたもの)を削除する
|
|
122
|
+
- 作成した project 専用 skill の名前と使いどころを記載する
|
|
123
|
+
- 例:
|
|
124
|
+
```markdown
|
|
125
|
+
## 開発ワークフロー
|
|
126
|
+
新機能を実装するときは `/feature-development` を使う。
|
|
127
|
+
既存機能を変更するときは `/design-change` を使う。
|
|
128
|
+
テストを書くときは `/test-driven-development` を使う。
|
|
129
|
+
```
|
|
130
|
+
- `.claude/` と `.github/` 両系で内容が変わる場合は、それぞれに反映する
|
|
120
131
|
|
|
121
132
|
## 原則
|
|
122
133
|
|
|
@@ -30,7 +30,7 @@ Phase 6: TDD → 実装 → 検証
|
|
|
30
30
|
- 影響を受ける機能カテゴリ
|
|
31
31
|
- 技術的・ビジネス的制約
|
|
32
32
|
2. 変更起点となる docs を特定する
|
|
33
|
-
3.
|
|
33
|
+
3. `@impact-analyzer` に委任して `depends_on` / `maps_to` を辿る影響ファイルを洗い出す
|
|
34
34
|
4. 変更が影響するドメインと成果物を一覧化する
|
|
35
35
|
5. ユーザーに確認・承認を得る
|
|
36
36
|
|
|
@@ -41,7 +41,7 @@ Phase 6: TDD → 実装 → 検証
|
|
|
41
41
|
3. 各案について概要・メリット・デメリット・適合性を示す
|
|
42
42
|
4. ユーザーが案を決定する
|
|
43
43
|
5. テンプレート `templates/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
44
|
-
6. ファイル名は `
|
|
44
|
+
6. ファイル名は `mmdd-{日本語タイトル}.md` 形式にする(例: `0404-キャッシュ戦略の変更.md`)
|
|
45
45
|
|
|
46
46
|
### ADR 配置ルール
|
|
47
47
|
|
|
@@ -82,7 +82,7 @@ docs/
|
|
|
82
82
|
1. 実装方針に意思決定が必要な場合だけ ADR を作る
|
|
83
83
|
2. **必ず 3 案を比較する**
|
|
84
84
|
3. テンプレート `templates/02_概要設計/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
85
|
-
4. 配置先は `docs/02_概要設計/90_ADR/
|
|
85
|
+
4. 配置先は `docs/02_概要設計/90_ADR/mmdd-{日本語タイトル}.md` を原則とする
|
|
86
86
|
5. 採用案を概要設計へ反映してから次へ進む
|
|
87
87
|
|
|
88
88
|
## Phase 4: 詳細設計
|