yodogawa 2.2.0 → 2.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/CHANGELOG.md +6 -0
- package/README.md +17 -6
- package/package.json +1 -1
- package/skills/a-006-review-requirements-domain/SKILL.md +44 -31
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +35 -40
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +34 -26
- package/skills/a-015-review-design/SKILL.md +15 -11
- package/skills/a-015-review-design/examples/review-report-template.md +17 -29
- package/skills/a-015-review-design/reference/consistency-checks.md +4 -2
- package/skills/b-003-create-task-research/SKILL.md +2 -0
- package/skills/b-005-review-task/SKILL.md +40 -24
- package/skills/b-005-review-task/examples/review-report-template.md +25 -35
- package/skills/b-005-review-task/reference/assessment-criteria.md +8 -8
- package/skills/b-005-review-task/reference/consistency-checks.md +70 -11
- package/skills/d-001-review-retrospective/SKILL.md +93 -0
- package/skills/d-001-review-retrospective/examples/retrospective-report-template.md +50 -0
- package/skills/d-001-review-retrospective/reference/friction-point-mapping.md +30 -0
- package/templates/LESSONS.md +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
フォーマットは [Keep a Changelog](https://keepachangelog.com/ja/1.0.0/) に基づいており、
|
|
6
6
|
このプロジェクトは [Semantic Versioning](https://semver.org/lang/ja/spec/v2.0.0.html) に準拠しています。
|
|
7
7
|
|
|
8
|
+
## [2.3.0] - 2026-07-04
|
|
9
|
+
|
|
10
|
+
### 追加
|
|
11
|
+
|
|
12
|
+
- **メタ振り返りスキル `d-001-review-retrospective` の新設**: A〜Cシリーズ(または1タスク分のb/cサイクル)完了後に、成果物ドキュメント(`c-implementation.md` の振り返り・`b-research.md` のベストプラクティス・`TASK-REVIEW-REPORT.md`)から摩擦点を収集し、対象 SKILL.md への修正案を diff 形式で提示(チャット+`RETROSPECTIVE-REPORT.md` へ永続化。適用はユーザー承認制で SKILL.md 自体は編集しない)する新フェーズ `d-NNN`(メタ/横断)の最初のスキルを追加しました(#62)。汎用的な学びは `docs/LESSONS.md`(新設テンプレート `templates/LESSONS.md`)に追記専用ログとして蓄積し、`b-003-create-task-research` が次タスクの調査時に参照する導線を追加しています。蓄積先を Issue 記載の `docs/project/LESSONS.md` ではなく `docs/project/` の外に置くのは、`yodogawa doctor` の `id-trace`/`placeholder` が `docs/project/` 配下を無条件に走査し、過去タスクの ID 言及を trace 切れとして誤検知しうるためです。あわせて `d-NNN` 対応のためリポジトリ整合性チェック(`scripts/repo-check.mjs`)のスキルコード正規表現を拡張し、README のスキル数記載を実数へ訂正しました。
|
|
13
|
+
|
|
8
14
|
## [2.2.0] - 2026-07-03
|
|
9
15
|
|
|
10
16
|
### 追加
|
package/README.md
CHANGED
|
@@ -111,12 +111,13 @@ Why? ─── What? ─── How?
|
|
|
111
111
|
| 📚 ドキュメントがすぐ陳腐化する | C-002で実装後にドキュメントを自動更新 |
|
|
112
112
|
| 🐛 設計と実装が乖離する | B-005レビュー & A-015設計レビューで整合性をチェック |
|
|
113
113
|
| 🤖 AIに何を頼めばいいか分からない | 事前定義されたワークフローに従うだけ |
|
|
114
|
+
| 🔁 スキルの品質改善が属人化・散発的になる | D-001が実行後の振り返りをSKILL.md修正案に還元 |
|
|
114
115
|
|
|
115
116
|
---
|
|
116
117
|
|
|
117
118
|
## スキル一覧
|
|
118
119
|
|
|
119
|
-
開発ライフサイクルに沿って、**
|
|
120
|
+
開発ライフサイクルに沿って、**4つのシリーズ**を提供しています。
|
|
120
121
|
|
|
121
122
|
### A-Series:プロジェクト設計
|
|
122
123
|
|
|
@@ -175,6 +176,16 @@ Why? ─── What? ─── How?
|
|
|
175
176
|
|
|
176
177
|
---
|
|
177
178
|
|
|
179
|
+
### D-Series:メタ/横断
|
|
180
|
+
|
|
181
|
+
> A〜Cシリーズ(または1タスク分のb/cサイクル)完了後の振り返りに使用
|
|
182
|
+
|
|
183
|
+
| # | コマンド | 名前 | 説明 |
|
|
184
|
+
| :-: | :------- | :---------------------- | :------------------------------------------------------------------------- |
|
|
185
|
+
| 1 | `/d-001` | **Review Retrospective** | 成果物ドキュメントから摩擦点を収集し、SKILL.md修正案の提示とLESSONS.md記録を行う |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
178
189
|
## 導入
|
|
179
190
|
|
|
180
191
|
> ℹ️ 再インストールは既存の `skills/` / `templates/`(方法1・方法3)にマージされます(同名ファイルは上書き、不足ファイルは追加)。スキルの**リネーム・削除を反映するには**、再実行前に対象の `.claude/skills/`・`.claude/templates/`(その他 IDE は `.agents/...`)を手動で削除してください。方法2(Plugin)はファイルをコピーしないため対象外です。
|
|
@@ -221,7 +232,7 @@ Claude Code から直接マーケットプレイスを追加してインスト
|
|
|
221
232
|
|
|
222
233
|
### `yodogawa doctor` — ドキュメントの健全性検査
|
|
223
234
|
|
|
224
|
-
`docs/project/` のトレーサビリティと構造をスクリプトで決定的に検査します。レビュー系スキル(`/a-006` / `/a-015` / `/b-005
|
|
235
|
+
`docs/project/` のトレーサビリティと構造をスクリプトで決定的に検査します。レビュー系スキル(`/a-006` / `/a-015` / `/b-005`)が自然言語で指示していた機械的な検査(存在確認・trace切れ・リンク切れ)をスクリプト実行結果の転記に置き換えます。ただし `/b-005` は対象が `docs/tasks/` のため `links` チェックのみが対象で、他の観点はエージェントの読解判断に基づきます。
|
|
225
236
|
|
|
226
237
|
```bash
|
|
227
238
|
yodogawa doctor # カレントディレクトリを検査(人間可読)
|
|
@@ -331,10 +342,10 @@ description: プロジェクトのドキュメントディレクトリ構造を
|
|
|
331
342
|
|
|
332
343
|
スキルの中核は `name` / `description` と Markdown 本文ですが、各スキルの frontmatter には Claude Code 向けの拡張フィールドも含まれます。これらは Claude Code で機能し、他 IDE(Cursor / Codex / Antigravity)での扱いは各 IDE の仕様に依存します(本プロジェクトでは未検証)。
|
|
333
344
|
|
|
334
|
-
- **`disable-model-invocation`**: AIエージェントによる自動呼び出しを無効化(前述)。全
|
|
335
|
-
- **`allowed-tools`**: スキルに必要な最小限のツール権限を明示。
|
|
336
|
-
- **`argument-hint`**: コマンド引数のヒント(例 `[task-id]`)。引数を取る B/C 系の
|
|
337
|
-
- **`context: fork`**: Claude Code でレビュー系スキル(`a-006` / `a-015` / `b-005`)を別コンテキストで実行させる指定。メインの作業文脈を汚さずに整合性チェックを行うために採用。
|
|
345
|
+
- **`disable-model-invocation`**: AIエージェントによる自動呼び出しを無効化(前述)。全 25 スキルに設定。
|
|
346
|
+
- **`allowed-tools`**: スキルに必要な最小限のツール権限を明示。25 スキル中 24(`c-001-implement-task` のみ未指定)。
|
|
347
|
+
- **`argument-hint`**: コマンド引数のヒント(例 `[task-id]`)。引数を取る B/C/D 系の 8 スキルに設定。
|
|
348
|
+
- **`context: fork`**: Claude Code でレビュー系スキル(`a-006` / `a-015` / `b-005` / `d-001`)を別コンテキストで実行させる指定。メインの作業文脈を汚さずに整合性チェックを行うために採用。
|
|
338
349
|
|
|
339
350
|
### テンプレートは記入欄中心、詳細は reference
|
|
340
351
|
|
package/package.json
CHANGED
|
@@ -28,53 +28,66 @@ allowed-tools: Read, Grep, Glob, Write, Bash
|
|
|
28
28
|
|
|
29
29
|
## 手順
|
|
30
30
|
|
|
31
|
-
### 1.
|
|
31
|
+
### 1. doctor によるドキュメント健全性検査
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
|
|
34
|
+
npx -y yodogawa doctor --json
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
出力される JSON(`{version, ok, summary, checks[], findings[]}`)をそのまま読み込む。**この段階で `ls` や `grep` を再実装しない。** exit code 1(Error あり)は正常系であり、JSON は必ず stdout に出力される。
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
- `findings` のうち `check: "structure"` かつ `file` が `01-requirements/`・`02-behavior/`・`03-domain/` 配下のものを確認する。必須ファイル・見出しの欠落があれば、対応する `/a-002`, `/a-002a`, `/a-002b`, `/a-003`, `/a-004` スキルの実行を促し、手順2には進まない。
|
|
40
|
+
- `04-design/` 配下に関する `structure` の finding(未着手フェーズ)はこのスキルの対象外なので無視する。
|
|
41
|
+
- `id-trace` / `placeholder` の findings は手順2で観点別に振り分ける(対応表は [reference/consistency-checks.md](reference/consistency-checks.md#doctor-findings-の観点マッピング))。
|
|
42
|
+
- doctor が実行できない場合(未導入・実行失敗)のみ、代替として `ls -l docs/project/01-requirements/*.md docs/project/02-behavior/*.md docs/project/03-domain/*.md` を実行する。
|
|
40
43
|
|
|
41
|
-
|
|
44
|
+
### 2. 一貫性チェックの実行(観点別 PASS/FAIL + 根拠引用)
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
|
|
46
|
+
以下の 7 観点を **PASS / FAIL** で判定する(判定ルール: 観点内に Error 相当の指摘が1件以上あれば FAIL、Warning 相当のみなら PASS+注記)。詳細な観点・doctor対応関係は [reference/consistency-checks.md](reference/consistency-checks.md) を参照。
|
|
47
|
+
|
|
48
|
+
> **エージェントの役割範囲**
|
|
49
|
+
>
|
|
50
|
+
> - **doctor 対応観点**: エージェントの役割は doctor の出力(JSON)の解釈と修正提案に限定する。`ls`/`grep`/`jq` 等で同じ検査を再実装しない。
|
|
51
|
+
> - **doctor 非対応観点**: エージェントの役割は「読解判断+証拠引用」である。Read/Grep/Glob を自由に使って該当ドキュメントを確認し、判定には必ず file:line の引用を伴わせる。
|
|
52
|
+
|
|
53
|
+
- **2.1 ユーザーストーリー ↔ シナリオ**(一部 doctor 対応): US-XXX に対応する SC-XXX の存在、価値と結果の整合
|
|
54
|
+
- **2.2 MVP スコープ/実装済み機能 ↔ シナリオ**(doctor 対応): Must 機能/リグレッション用のカバレッジ
|
|
55
|
+
- **2.3 クリティカル制約 ↔ スコープ/ドメイン**(doctor 非対応): Product Brief のクリティカル制約(法務・セキュリティ・期限・予算等)が MVP スコープ判断・ドメインモデルに反映されているか(初期フェーズでは定量 NFR ではなく制約を確認。詳細 NFR は a-014 の責務)
|
|
56
|
+
- **2.4 Core Scenario ↔ Domain Sketch**(doctor 非対応): アクター・中核エンティティ・重要ビジネスルールの対応(Full DDD 採用時は Command / Event / Actor の対応も)
|
|
57
|
+
- **2.5 ユビキタス言語**(doctor 非対応): 主要要素の登録、禁止用語の検出
|
|
58
|
+
- **2.6 目的との整合性**(doctor 非対応): Product Brief の価値提案と Domain Sketch の中核エンティティ(Full DDD 採用時は Core Domain)の一致、および**目的 ↔ 成功指標**の整合・成功指標の計測可能性
|
|
59
|
+
- **2.7 MVP 正当化 / 過剰作り込み(YAGNI)**(大半が doctor 非対応): 各 Must が課題/ペルソナ/指標/仮説に trace するか、Out of Scope と矛盾しないか、安い代替手段で済むものが Must になっていないか
|
|
60
|
+
|
|
61
|
+
`placeholder` の finding はどの観点にも一対一対応しないため、判断材料としてのみ使う(必要なら該当観点のコメント欄に file:line 付きで補足する)。
|
|
50
62
|
|
|
51
63
|
### 3. PM Gate 判定(Go / Go with caveats / No-Go)
|
|
52
64
|
|
|
53
|
-
|
|
65
|
+
観点別 PASS/FAIL 表から次の規則で機械的に導出する(恣意的な総合判断をしない):
|
|
54
66
|
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
- [ ] ステークホルダー・決裁者・関心事が明確である
|
|
60
|
-
- [ ] クリティカル制約が MVP 判断に反映されている
|
|
61
|
-
- [ ] 未決事項が実装開始を妨げないレベルまで減っている
|
|
67
|
+
- **クリティカル観点**: 2.3(クリティカル制約)/ 2.4(Core Scenario↔Domain Sketch)/ 2.7(MVP正当化)
|
|
68
|
+
- **No-Go**: クリティカル観点のいずれかが FAIL、または FAIL の観点数が3以上
|
|
69
|
+
- **Go with caveats**: FAIL が1〜2件あるが、すべて非クリティカル観点(2.1/2.2/2.5/2.6)
|
|
70
|
+
- **Go**: 全観点 PASS(コメント欄の Warning 注記は着手を妨げない)
|
|
62
71
|
|
|
63
|
-
|
|
72
|
+
補助チェックリスト(各項目は対応する観点番号の FAIL/PASS を根拠として引用する):
|
|
64
73
|
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
74
|
+
- [ ] 検証する仮説が 1〜3 個に絞れている(→ 2.7)
|
|
75
|
+
- [ ] すべての Must 機能が 課題 / ペルソナ / 成功指標 / 検証仮説 のいずれかに紐づいている(→ 2.7)
|
|
76
|
+
- [ ] Not Now / Won't が明示され、理由が書かれている(→ 2.7)
|
|
77
|
+
- [ ] 手作業・既存ツール・外部サービスで代替できるものを Must にしていない(→ 2.7)
|
|
78
|
+
- [ ] ステークホルダー・決裁者・関心事が明確である(→ 2.6)
|
|
79
|
+
- [ ] クリティカル制約が MVP 判断に反映されている(→ 2.3)
|
|
80
|
+
- [ ] 未決事項が実装開始を妨げないレベルまで減っている(→ 全観点)
|
|
68
81
|
|
|
69
82
|
### 4. レビュー結果レポートの作成
|
|
70
83
|
|
|
71
|
-
|
|
84
|
+
観点別 PASS/FAIL の結果と PM Gate 判定をまとめ、`docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` を作成する。フォーマットは [examples/review-report-template.md](examples/review-report-template.md#レポートフォーマット) を参照。
|
|
72
85
|
|
|
73
86
|
必須セクション:
|
|
74
87
|
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
- PM Gate 判定(Go / Go with caveats / No-Go
|
|
88
|
+
- サマリー(観点別 PASS/FAIL の件数。doctor summary の errors/warnings を参考値として併記)
|
|
89
|
+
- 詳細(7 観点ごとの PASS/FAIL・根拠(file:line引用)・コメント。2.7 では**過剰作り込み候補**を明示)
|
|
90
|
+
- PM Gate 判定(Go / Go with caveats / No-Go と、観点別表からの導出根拠)
|
|
78
91
|
- 推奨アクション(修正すべきタスクとスキル参照)
|
|
79
92
|
|
|
80
93
|
### 5. ステークホルダー要約 / AI コンテキストの生成
|
|
@@ -103,7 +116,7 @@ git commit -m "docs: PM Gate レビュー(要約・AI コンテキスト含む
|
|
|
103
116
|
## 完了条件
|
|
104
117
|
|
|
105
118
|
- `docs/project/REVIEW-REPORT-YYYYMMDDHHMMSS.md` が作成され、7 観点の結果と PM Gate 判定(Go / Go with caveats / No-Go)が記録されている。
|
|
106
|
-
-
|
|
119
|
+
- 全ドキュメント間の整合性がチェックされ、観点ごとの判定(PASS/FAIL)と根拠(file:line引用)が記録されている。doctor対応観点はfindingsの転記、非対応観点は読解判断+引用になっている。
|
|
107
120
|
- 各 Must 機能の MVP 正当化が検査され、trace しない機能が**過剰作り込み候補**としてフラグされている。
|
|
108
121
|
- `docs/project/STAKEHOLDER-SUMMARY.md` と `docs/project/AI_CONTEXT.md` が生成され、`AI_CONTEXT.md` に「作らないもの(must NOT build)」が明記されている。
|
|
109
122
|
- 具体的な修正アクションが提案されている。
|
|
@@ -116,7 +129,7 @@ git commit -m "docs: PM Gate レビュー(要約・AI コンテキスト含む
|
|
|
116
129
|
|
|
117
130
|
## 参考
|
|
118
131
|
|
|
119
|
-
- [examples/review-report-template.md](examples/review-report-template.md) —
|
|
120
|
-
- [reference/consistency-checks.md](reference/consistency-checks.md) — 7 観点(MVP 正当化/YAGNI 含む)の詳細なチェック項目、grep
|
|
132
|
+
- [examples/review-report-template.md](examples/review-report-template.md) — レビュー結果レポートのフォーマット例、PASS/FAIL判定ルール、PM Gate 判定の使い方
|
|
133
|
+
- [reference/consistency-checks.md](reference/consistency-checks.md) — doctor findingsの観点マッピング、7 観点(MVP 正当化/YAGNI 含む)の詳細なチェック項目、doctor非対応観点のgrep補助例、エスカレーション基準
|
|
121
134
|
- [../../templates/project/STAKEHOLDER-SUMMARY.md](../../templates/project/STAKEHOLDER-SUMMARY.md) — ステークホルダー向け統合1枚もののテンプレート
|
|
122
135
|
- [../../templates/project/AI_CONTEXT.md](../../templates/project/AI_CONTEXT.md) — AI 実装用の圧縮コンテキストのテンプレート
|
|
@@ -8,68 +8,63 @@ SKILL.md 手順4 で作成する `docs/project/REVIEW-REPORT-*.md` のフォー
|
|
|
8
8
|
# ドキュメント一貫性レビュー結果
|
|
9
9
|
|
|
10
10
|
**実施日**: YYYY-MM-DD
|
|
11
|
+
**doctor**: `yodogawa doctor --json` 実行結果 summary = errors: 2, warnings: 3
|
|
11
12
|
|
|
12
13
|
## サマリー
|
|
13
14
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Error: X 項目
|
|
15
|
+
- 観点別判定: PASS 6 / FAIL 1(全7観点)
|
|
16
|
+
- PM Gate 判定: Go with caveats
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 詳細(観点別 PASS/FAIL)
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
| 観点 | 判定 | 根拠(file:line) | コメント |
|
|
21
|
+
|:--|:--:|:--|:--|
|
|
22
|
+
| 2.1 ユーザーストーリー ↔ シナリオ | FAIL | `docs/project/01-requirements/05-user-stories.md:18`: 「ペルソナ: P-999」 | US-005 が参照する P-999 が product-brief 未定義(doctor id-trace error)。逆方向coverage・「価値」↔「Then」整合は未確認(doctor非対応部分) |
|
|
23
|
+
| 2.2 MVP スコープ ↔ シナリオ | PASS | `docs/project/02-behavior/01-core-scenarios.md:40`: 「## CS-003 決済」 | 全 Must がシナリオでカバー済み(doctor id-trace: FN未参照Warningなし) |
|
|
24
|
+
| 2.3 クリティカル制約 ↔ スコープ/ドメイン | PASS | `docs/project/01-requirements/01-product-brief.md:23`: 「社内SSO必須」 | MVP Scope・ドメインに反映確認済み(Read手動確認、doctor非対応) |
|
|
25
|
+
| 2.4 Core Scenario ↔ Domain Sketch | PASS | `docs/project/02-behavior/01-core-scenarios.md:52`: 「在庫を引き当てる」 | Domain Sketch の重要ビジネスルールに対応記述あり(Read手動確認、doctor非対応) |
|
|
26
|
+
| 2.5 ユビキタス言語 | PASS | `docs/project/03-domain/02-ubiquitous-language.md:9`: 「ShippingAddress」 | 用語登録済み。禁止用語なし(Read手動確認、doctor非対応) |
|
|
27
|
+
| 2.6 目的との整合性 | PASS | `docs/project/01-requirements/01-product-brief.md:30`: 「North Star: 週次アクティブ率」 | 価値提案と成功指標は整合(Read手動確認、doctor非対応) |
|
|
28
|
+
| 2.7 MVP正当化/過剰作り込み | PASS | `docs/project/01-requirements/02-mvp-scope.md:15`: 「実績バッジ→Not Now」 | 全MustがProduct Briefの課題/指標/仮説にtrace済み(Read手動確認)。注記(Warning): 孤児ペルソナ `01-product-brief.md:8` P-004 が `05-user-stories.md` から未参照(doctor id-trace warning)。過剰ペルソナの可能性、次回改訂で確認 |
|
|
21
29
|
|
|
22
|
-
|
|
23
|
-
- OK: 優先度 High のストーリーはすべてカバーされています。
|
|
24
|
-
|
|
25
|
-
### 2. MVP スコープ・クリティカル制約
|
|
26
|
-
|
|
27
|
-
- **Warning**: 実装済み機能「決済」のシナリオが不足しています。
|
|
28
|
-
- OK: Product Brief のクリティカル制約「社内 SSO 必須」が MVP スコープ・ドメインに反映されています。
|
|
29
|
-
|
|
30
|
-
### 3. シナリオ ↔ ドメインモデル
|
|
31
|
-
|
|
32
|
-
- **Warning**: シナリオ SC-003 の Command「在庫を引き当てる」がドメインモデルに未定義です。
|
|
33
|
-
|
|
34
|
-
### 4. ユビキタス言語
|
|
35
|
-
|
|
36
|
-
- **Error**: 用語「ShippingAddress」がユビキタス言語一覧にありません。
|
|
37
|
-
- **Warning**: 禁止用語「User Data」が `01-domain-sketch.md` で使用されています。
|
|
38
|
-
|
|
39
|
-
### 5. MVP 正当化 / 過剰作り込み(YAGNI)
|
|
30
|
+
## PM Gate 判定
|
|
40
31
|
|
|
41
|
-
|
|
42
|
-
- OK: その他の Must はすべて検証仮説・成功指標に紐づいています。
|
|
43
|
-
- OK: Out of Scope(Won't)と矛盾する実装記述はありません。
|
|
32
|
+
観点別 PASS/FAIL 表から次の規則で導出する(恣意的な総合判断をしない)。
|
|
44
33
|
|
|
45
|
-
|
|
34
|
+
- クリティカル観点(2.3/2.4/2.7)はすべて PASS
|
|
35
|
+
- FAIL は 2.1(非クリティカル)の1件のみ → 「Go with caveats」の条件(FAIL1〜2件、すべて非クリティカル)に合致
|
|
46
36
|
|
|
47
37
|
**判定**: Go with caveats
|
|
48
38
|
|
|
49
|
-
**根拠**:
|
|
39
|
+
**根拠**: FAIL = 2.1(1件、非クリティカル)。クリティカル観点(2.3/2.4/2.7)はすべて PASS。
|
|
40
|
+
|
|
41
|
+
**caveat**:
|
|
42
|
+
1. 2.1: US-005 のペルソナ参照修正を条件に着手可
|
|
50
43
|
|
|
51
44
|
## 推奨アクション
|
|
52
45
|
|
|
53
|
-
1. `
|
|
54
|
-
2.
|
|
55
|
-
3. `01-domain-sketch.md` の「User Data」を「User Profile」に修正する。
|
|
46
|
+
1. `docs/project/01-requirements/05-user-stories.md` の US-005 ペルソナ参照を修正する。
|
|
47
|
+
2. (Warning注記)孤児ペルソナ P-004 がスコープ漏れか過剰ペルソナか、次回改訂で確認する。
|
|
56
48
|
```
|
|
57
49
|
|
|
58
|
-
##
|
|
50
|
+
## 判定ルールの使い方
|
|
59
51
|
|
|
60
|
-
|
|
|
52
|
+
| 判定 | 意味 | 根拠列の要件 |
|
|
61
53
|
|:--|:--|:--|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
54
|
+
| PASS | 観点内に Error 相当の指摘が無い | Warning相当の注記があれば file:line 付きでコメント欄に残す(消さない) |
|
|
55
|
+
| FAIL | 観点内に Error 相当の指摘が1件以上 | 根拠列に file:line と該当行の引用が1件以上必須 |
|
|
56
|
+
|
|
57
|
+
doctor findingsを転記する場合も、`message`をそのままコピペせず、file:lineをReadで開いて実際の行を引用する(詳細は[reference/consistency-checks.md](../reference/consistency-checks.md#doctor-findings-の観点マッピング))。
|
|
65
58
|
|
|
66
59
|
## PM Gate 判定の使い方
|
|
67
60
|
|
|
68
|
-
|
|
61
|
+
観点別 PASS/FAIL 表からの機械的導出規則(SKILL.md 手順3参照):
|
|
62
|
+
|
|
63
|
+
| 判定 | 導出条件 | 次のアクション |
|
|
69
64
|
|:--|:--|:--|
|
|
70
|
-
| Go |
|
|
71
|
-
| Go with caveats |
|
|
72
|
-
| No-Go |
|
|
65
|
+
| Go | 全観点 PASS | `AI_CONTEXT.md` を実装エージェントへ渡す |
|
|
66
|
+
| Go with caveats | FAILが1〜2件、すべて非クリティカル観点(2.1/2.2/2.5/2.6) | caveat を明記し、合意の上で着手 |
|
|
67
|
+
| No-Go | クリティカル観点(2.3/2.4/2.7)がFAIL、またはFAIL総数3以上 | 実装前に該当ドキュメントを修正し再レビュー |
|
|
73
68
|
|
|
74
69
|
## コミットメッセージ例
|
|
75
70
|
|
|
@@ -1,46 +1,50 @@
|
|
|
1
1
|
# 一貫性チェック項目詳細
|
|
2
2
|
|
|
3
|
-
SKILL.md 手順2
|
|
3
|
+
SKILL.md 手順2 で実施する各チェック項目の詳細。doctor が機械的に検出する部分は findings の転記、doctor 非対応の意味内容の判断は Read/Grep による手動確認+file:line 引用の組み合わせで検証する。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## doctor findings の観点マッピング
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **整合性**: ストーリーの「価値」と Core Scenario の「結果(Then)」が一致しているか。
|
|
7
|
+
`yodogawa doctor --json`(手順1)の `findings[]` は `docs/project` 配下のみを検査対象とし、`{check, severity, file, line, message}` を返す。以下の対応表に従い、該当する観点へ**そのまま転記**する(grep での再実装はしない)。file:line は Read で開いて実際の行を引用すること(message は合成文のため、原文の引用を別途添える)。
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
| doctor check | finding 条件 | severity | 対応観点 | 備考 |
|
|
10
|
+
|---|---|---|---|---|
|
|
11
|
+
| `id-trace` | `id` が `US-` の finding(trace切れ) | error | 2.1 | US 側の片方向 trace 切れのみ検出。逆方向(Core Scenario→US の対応漏れ)とストーリーの「価値」↔シナリオ「Then」の整合は非対応(Read で確認) |
|
|
12
|
+
| `id-trace` | `id` が `P-` の finding(trace切れ) | error | 2.1(役割↔ペルソナ) | `05-user-stories.md` が参照する未定義ペルソナ |
|
|
13
|
+
| `id-trace` | `id` が `P-` の finding(孤児=`05-user-stories.md`から未参照) | warning | 2.7(傍証) | 孤児ペルソナの検出のみ。Must の trace 判断そのものの代替にはならない |
|
|
14
|
+
| `id-trace` | `id` が `FN-` の finding(trace切れ) | error | 2.2 | |
|
|
15
|
+
| `id-trace` | `id` が `FN-` の finding(`02-behavior/01-core-scenarios.md` から未参照) | warning | 2.2 | Must機能のシナリオカバレッジ。doctor が最も強くカバーする部分 |
|
|
16
|
+
| `structure` | `file` が `01-requirements/`〜`03-domain/` 配下 | error/warning | 手順1(前提) | 観点表には含めない。存在確認・必須見出しの欠落シグナル |
|
|
17
|
+
| `placeholder` | 同上 | warning | 参考情報 | どの観点にも一対一対応しない。未記入セクションの兆候として補足に使う程度 |
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
**doctor が対応しない観点(2.3〜2.6、2.7の大半)は、上記マッピングに現れない。エージェントが Read/Grep で内容を確認し、判定には file:line の引用を必須とする。**
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
- **逆方向(任意)**: どの US からも参照されない主要ペルソナがあれば、スコープ漏れか過剰ペルソナのどちらかとして確認する。
|
|
21
|
+
## 2.1 ユーザーストーリー ↔ Core Scenario
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
- **カバレッジ**: MVP Scope の Must 機能に対応する Core Scenario(Day 1 Happy Path)が存在するか。User Story は要約 AC、Core Scenario は実行時の主要行動という SSoT の住み分けを保つ(全 US を逐一シナリオ化しない)。doctor 非対応(上記マッピング表参照)。Read で `05-user-stories.md` と `02-behavior/01-core-scenarios.md` を確認する。
|
|
24
|
+
- **整合性**: ストーリーの「価値」と Core Scenario の「結果(Then)」が一致しているか。doctor 非対応。
|
|
25
|
+
|
|
26
|
+
### ユーザーストーリーの役割 ↔ ペルソナ(trace)
|
|
27
|
+
|
|
28
|
+
- **役割が宙に浮かない**: `05-user-stories.md` の各ストーリーの「ペルソナ」列が、`01-product-brief.md` のペルソナ表で定義済みの ID(P-XXX)を参照しているか。**未定義のペルソナを参照する US はフラグ**する(役割の trace 切れ)。doctor の `id-trace`(P族 trace切れ、上記マッピング表)をそのまま転記する。
|
|
29
|
+
- **逆方向(任意)**: どの US からも参照されない主要ペルソナがあれば、スコープ漏れか過剰ペルソナのどちらかとして確認する。doctor の `id-trace`(P族 孤児、severity=warning)で検出できる。
|
|
28
30
|
|
|
29
31
|
## 2.2 MVP スコープ・実装済み機能 ↔ シナリオ
|
|
30
32
|
|
|
31
|
-
- **MVP スコープ**: `02-mvp-scope.md` の Must 機能にシナリオが存在するか。
|
|
32
|
-
- **実装済み機能**: `06-features-implemented.md`(existing
|
|
33
|
-
- **Parking Lot**: `03-parking-lot.md` は backlog のためシナリオ必須ではない(MVP 昇格時に MVP スコープ側で扱う)。
|
|
33
|
+
- **MVP スコープ**: `02-mvp-scope.md` の Must 機能にシナリオが存在するか。doctor の `id-trace`(FN族、上記マッピング表)がそのまま使える。
|
|
34
|
+
- **実装済み機能**: `06-features-implemented.md`(existing モード)の機能にリグレッション用シナリオが存在するか。同じく FN 族で検出される。
|
|
35
|
+
- **Parking Lot**: `03-parking-lot.md` は backlog のためシナリオ必須ではない(MVP 昇格時に MVP スコープ側で扱う)。doctor 非対応(この除外判断自体は Read で確認)。
|
|
34
36
|
|
|
35
37
|
## 2.3 クリティカル制約 ↔ スコープ/ドメイン
|
|
36
38
|
|
|
37
|
-
初期フェーズでは定量 NFR ではなく、Product Brief の「クリティカル制約」を確認する(詳細な定量 NFR は設計フェーズ `/a-014-define-infrastructure`
|
|
39
|
+
初期フェーズでは定量 NFR ではなく、Product Brief の「クリティカル制約」を確認する(詳細な定量 NFR は設計フェーズ `/a-014-define-infrastructure` の責務)。**doctor 非対応。** doctor は制約の「反映」という意味内容を判断できないため、Read で確認し file:line を引用する。
|
|
38
40
|
|
|
39
41
|
- **制約の反映**: `01-product-brief.md` のクリティカル制約(法務・セキュリティ・期限・予算・外部 API 等)が `02-mvp-scope.md` の Must 判断やドメインモデルに反映されているか。
|
|
40
42
|
- **セキュリティ・権限**: 制約に挙げた認証・権限要件が Policy や Guard としてドメインモデルに含まれているか。
|
|
41
43
|
|
|
42
44
|
## 2.4 Core Scenario ↔ Domain Sketch
|
|
43
45
|
|
|
46
|
+
**doctor 非対応。** Core Scenario ↔ Domain Sketch の対応関係を機械検査する ID 族は存在しない。Read で確認し file:line を引用する。
|
|
47
|
+
|
|
44
48
|
- **アクター**: Core Scenario のアクターが Domain Sketch の「アクター / 外部システム」に存在するか。
|
|
45
49
|
- **中核エンティティ**: Core Scenario が扱う対象が Domain Sketch の「中核エンティティ」に定義されているか。
|
|
46
50
|
- **重要ルール**: Critical Failure を防ぐルールが「重要なビジネスルール」に反映されているか。
|
|
@@ -48,8 +52,10 @@ comm -23 \
|
|
|
48
52
|
|
|
49
53
|
## 2.5 ユビキタス言語の遵守
|
|
50
54
|
|
|
55
|
+
**doctor 非対応。**
|
|
56
|
+
|
|
51
57
|
- **用語定義**: Domain Sketch の主要用語・中核エンティティ(Full DDD 採用時は Aggregate / Command / Event)がユビキタス言語一覧にあるか。
|
|
52
|
-
- **禁止用語**: 各ドキュメントに禁止用語(Data, Process, Manager
|
|
58
|
+
- **禁止用語**: 各ドキュメントに禁止用語(Data, Process, Manager 等)が使われていないか。**用語の意味判断は doctor では担保できないため、以下の grep は補助検索として引き続き手動実行する(doctor で代替できない)。**
|
|
53
59
|
|
|
54
60
|
```bash
|
|
55
61
|
# 禁止用語の簡易検索
|
|
@@ -60,6 +66,8 @@ grep -rn "Manager" docs/project/03-domain/ || echo "No 'Manager' found"
|
|
|
60
66
|
|
|
61
67
|
## 2.6 目的との整合性
|
|
62
68
|
|
|
69
|
+
**doctor 非対応。**
|
|
70
|
+
|
|
63
71
|
- Product Brief(`01-product-brief.md`)の「価値提案 / 差別化」が Domain Sketch の「中核エンティティ」「重要なビジネスルール」に反映されているか。
|
|
64
72
|
- **価値提案の充足**: 「価値提案 / 差別化」のバリュープロポジション(1文)と差別化ポイント(Why us)が埋まり、Why us が「現在の代替手段・競合スキャン」表の各「弱み」と対応づいているか(漠然と「使いやすい」で済ませていないか)。
|
|
65
73
|
- **目的 ↔ 成功指標**: Product Brief の成功指標(North Star / KPI / Guardrail)が「価値提案 / 解く課題」と整合しているか(目的と無関係な指標を測っていないか)。
|
|
@@ -68,10 +76,10 @@ grep -rn "Manager" docs/project/03-domain/ || echo "No 'Manager' found"
|
|
|
68
76
|
|
|
69
77
|
## 2.7 MVP 正当化 / 過剰作り込み(YAGNI / PM Gate)
|
|
70
78
|
|
|
71
|
-
|
|
79
|
+
「要らないものを作らない」を守るためのスコープ妥当性検査。**大半が doctor 非対応。** 孤児ペルソナ(doctor `id-trace` P族 warning、上記マッピング表)は過剰作り込みの傍証になるが、Must の trace 判断そのものの代替にはならない。以下は Read で確認し file:line を引用する。
|
|
72
80
|
|
|
73
81
|
- **Must の trace**: `02-mvp-scope.md` の各 Must 機能が、Product Brief の 課題 / ターゲット(ペルソナ)/ 成功指標 / 検証仮説 のいずれかに紐づくか。**いずれにも trace しない Must は過剰作り込み候補としてフラグ**する。
|
|
74
|
-
- **Out of Scope の矛盾**: `02-mvp-scope.md` の Won't / Out of Scope に挙げた機能が、他ドキュメント(シナリオ・ドメインモデル・`05-user-stories.md`)で実装対象として記述されていないか。
|
|
82
|
+
- **Out of Scope の矛盾**: `02-mvp-scope.md` の Won't / Out of Scope に挙げた機能が、他ドキュメント(シナリオ・ドメインモデル・`05-user-stories.md`)で実装対象として記述されていないか。doctor では代替できないため、以下の grep は補助検索として引き続き手動実行する。
|
|
75
83
|
- **安い代替手段**: 手作業・既存ツール・外部サービスで足りるものが Must になっていないか(`02-mvp-scope.md` の「より安い代替手段」列を確認)。
|
|
76
84
|
- **仮説の数**: 検証する仮説が 1〜3 個に絞れているか(多すぎる=MVP が過大)。
|
|
77
85
|
|
|
@@ -29,17 +29,19 @@ allowed-tools: Read, Grep, Glob, Write, Bash
|
|
|
29
29
|
|
|
30
30
|
## 手順
|
|
31
31
|
|
|
32
|
-
### 1.
|
|
32
|
+
### 1. doctor によるドキュメント健全性検査
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
|
|
35
|
+
npx -y yodogawa doctor --json
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
`findings` から `check: "structure"` かつ `file` が `docs/project/04-design/` で始まる項目を確認し、必須ファイル・見出しの欠落があれば対応するスキル(a-007〜a-014)の実行を促す。**`id-trace` は 04-design 配下を対象にした ID 体系を持たないため、5観点すべてに直接的な機械判定は無い**(`bin/lib/project-spec.js` の `ID_FAMILIES` に 04-design 向けの族が定義されていないため)。`placeholder`/`links` の finding は前提整合性の補助シグナルとして使う(未記入セクション・リンク切れの有無)。doctor が実行できない場合のみ、代替として `ls -l docs/project/04-design/*.md` を実行する。
|
|
39
39
|
|
|
40
|
-
### 2.
|
|
40
|
+
### 2. 一貫性チェックの実行(観点別 PASS/FAIL + 根拠引用)
|
|
41
41
|
|
|
42
|
-
以下の 5
|
|
42
|
+
以下の 5 観点を **PASS / FAIL** で判定する(判定ルール: 観点内に Error 相当の指摘が1件以上あれば FAIL、Warning 相当のみなら PASS+注記)。**doctor の id-trace は 04-design を検査対象にしないため、2.1〜2.5 のすべてがエージェント自身の Read/Grep による判断**になる。各判定には file:line の引用を必須とする(詳細は [reference/consistency-checks.md](reference/consistency-checks.md))。
|
|
43
|
+
|
|
44
|
+
> **エージェントの役割範囲**: doctor が既に検査済みの機械的観点(手順1の存在確認)は再実装しない。一方、この手順2の5観点はすべて doctor 非対応の意味判断であり、役割は「読解判断+証拠引用」である。Read/Grep/Glob を自由に使ってよい(むしろ必須)。判断した結果は必ず file:line の引用を伴わせる。
|
|
43
45
|
|
|
44
46
|
- **2.1 テックスタック ↔ アーキテクチャ**: 選定技術の反映、ADR の記録
|
|
45
47
|
- **2.2 データモデル ↔ ドメインモデル**: Aggregate のカバレッジ、用語統一
|
|
@@ -47,14 +49,16 @@ ls -l docs/project/04-design/*.md
|
|
|
47
49
|
- **2.4 画面設計 ↔ API 仕様**: 必要なエンドポイントのカバレッジ、状態対応
|
|
48
50
|
- **2.5 インフラ ↔ アーキテクチャ**: 構成の網羅、非機能要件の反映
|
|
49
51
|
|
|
52
|
+
`structure`/`placeholder`/`links` の finding は各観点に一対一対応しないため、判断材料としてのみ利用する。
|
|
53
|
+
|
|
50
54
|
### 3. レビュー結果レポートの作成
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
観点別 PASS/FAIL の結果をまとめ、`docs/project/DESIGN-REVIEW-REPORT-YYYYMMDDHHMMSS.md` を作成する。フォーマットは [examples/review-report-template.md](examples/review-report-template.md#レポートフォーマット) を参照。
|
|
53
57
|
|
|
54
58
|
必須セクション:
|
|
55
59
|
|
|
56
|
-
-
|
|
57
|
-
- 詳細(上記 5
|
|
60
|
+
- サマリー(観点別 PASS/FAIL の件数)
|
|
61
|
+
- 詳細(上記 5 観点ごとの PASS/FAIL・根拠(file:line引用)・コメント)
|
|
58
62
|
- 推奨アクション(修正すべきタスクとスキル参照)
|
|
59
63
|
|
|
60
64
|
### 4. 結果の報告と修正提案
|
|
@@ -73,7 +77,7 @@ git commit -m "docs: 設計整合性レビューレポートの作成"
|
|
|
73
77
|
## 完了条件
|
|
74
78
|
|
|
75
79
|
- `docs/project/DESIGN-REVIEW-REPORT-YYYYMMDDHHMMSS.md` が作成されている。
|
|
76
|
-
-
|
|
80
|
+
- 全設計ドキュメント間の整合性がチェックされ、観点ごとの判定(PASS/FAIL)と根拠(file:line引用)が記録されている。
|
|
77
81
|
- 具体的な修正アクションが提案されている。
|
|
78
82
|
|
|
79
83
|
## エスカレーション
|
|
@@ -84,5 +88,5 @@ git commit -m "docs: 設計整合性レビューレポートの作成"
|
|
|
84
88
|
|
|
85
89
|
## 参考
|
|
86
90
|
|
|
87
|
-
- [examples/review-report-template.md](examples/review-report-template.md) —
|
|
88
|
-
- [reference/consistency-checks.md](reference/consistency-checks.md) — 5
|
|
91
|
+
- [examples/review-report-template.md](examples/review-report-template.md) — レビュー結果レポートのフォーマット例、PASS/FAIL判定ルール
|
|
92
|
+
- [reference/consistency-checks.md](reference/consistency-checks.md) — 5 観点の詳細なチェック項目(すべてdoctor非対応)、grep補助例、エスカレーション基準
|
|
@@ -8,49 +8,37 @@ SKILL.md 手順3 で作成する `docs/project/DESIGN-REVIEW-REPORT-*.md` のフ
|
|
|
8
8
|
# 設計ドキュメント一貫性レビュー結果
|
|
9
9
|
|
|
10
10
|
**実施日**: YYYY-MM-DD
|
|
11
|
+
**doctor**: `structure` 検査のみ利用(04-design配下の存在確認)。`id-trace` は 04-design 非対応のため5観点はすべてRead手動確認。
|
|
11
12
|
|
|
12
13
|
## サマリー
|
|
13
14
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Error: X 項目
|
|
15
|
+
- 観点別判定: PASS 3 / FAIL 2(全5観点)
|
|
16
|
+
- 総合: FAIL(FAIL観点: 2.2, 2.4)
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## 詳細(観点別 PASS/FAIL)
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
### 3. API 仕様 ↔ データモデル
|
|
29
|
-
|
|
30
|
-
- **Warning**: API レスポンスのフィールド `user_rank` がデータモデルにありません。
|
|
31
|
-
|
|
32
|
-
### 4. 画面設計 ↔ API 仕様
|
|
33
|
-
|
|
34
|
-
- **Error**: 「注文履歴画面」に必要な `GET /api/orders/history` が定義されていません。
|
|
35
|
-
|
|
36
|
-
### 5. インフラ ↔ アーキテクチャ
|
|
37
|
-
|
|
38
|
-
- OK: 冗長化構成はアーキテクチャの可用性要件を満たしています。
|
|
20
|
+
| 観点 | 判定 | 根拠(file:line) | コメント |
|
|
21
|
+
|:--|:--:|:--|:--|
|
|
22
|
+
| 2.1 テックスタック ↔ アーキテクチャ | PASS | `docs/project/04-design/07-architecture.md:14`: 「PostgreSQL, Redis」 | tech-stackの選定技術がarchitecture図に反映(Read手動確認) |
|
|
23
|
+
| 2.2 データモデル ↔ ドメインモデル | FAIL | `docs/project/03-domain/01-domain-sketch.md:20`: 「中核エンティティ: Order」 | Aggregate「Order」に対応するテーブル定義が `05-data-model.md` に無い |
|
|
24
|
+
| 2.3 API仕様 ↔ データモデル | PASS | `docs/project/04-design/06-api-spec.md:33`: 「user_rank」 | データモデルの派生フィールドとして明示あり |
|
|
25
|
+
| 2.4 画面設計 ↔ API仕様 | FAIL | `docs/project/04-design/03-screen-design.md:41`: 「注文履歴画面」 | `GET /api/orders/history` が定義されていない |
|
|
26
|
+
| 2.5 インフラ ↔ アーキテクチャ | PASS | `docs/project/04-design/08-infrastructure.md:10`: 「Multi-AZ構成」 | 可用性要件を満たす |
|
|
39
27
|
|
|
40
28
|
## 推奨アクション
|
|
41
29
|
|
|
42
30
|
1. `/a-011-define-data-model` で `orders` テーブルを定義する。
|
|
43
31
|
2. `/a-012-define-api-spec` で `GET /api/orders/history` を追加する。
|
|
44
|
-
3. `/a-011-define-data-model` で `user_rank` のカラム追加を検討する。
|
|
45
32
|
```
|
|
46
33
|
|
|
47
|
-
##
|
|
34
|
+
## 判定ルールの使い方
|
|
48
35
|
|
|
49
|
-
|
|
|
36
|
+
| 判定 | 意味 | 根拠列の要件 |
|
|
50
37
|
|:--|:--|:--|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
38
|
+
| PASS | 観点内に Error 相当の指摘が無い | Warning相当の注記があれば file:line 付きでコメント欄に残す(消さない) |
|
|
39
|
+
| FAIL | 観点内に Error 相当の指摘が1件以上 | 根拠列に file:line と該当行の引用が1件以上必須 |
|
|
40
|
+
|
|
41
|
+
5観点すべてdoctor非対応のため、判定は必ずRead/Grepによる手動確認+file:line引用で行う([reference/consistency-checks.md](../reference/consistency-checks.md)参照)。
|
|
54
42
|
|
|
55
43
|
## コミットメッセージ例
|
|
56
44
|
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
# 設計ドキュメント間の一貫性チェック項目
|
|
2
2
|
|
|
3
|
-
SKILL.md 手順2 で実施する 5
|
|
3
|
+
SKILL.md 手順2 で実施する 5 観点の詳細。**5観点すべて doctor 非対応**(`bin/lib/project-spec.js` の `ID_FAMILIES` に 04-design 向けの ID 族が定義されていないため、`id-trace` は 04-design 配下を検査対象にしない)。手順1の doctor 呼び出しは `structure` チェックによる存在確認・必須見出し確認にのみ使う。5観点はすべて Read/Grep による手動確認+file:line引用で判定する。
|
|
4
4
|
|
|
5
5
|
## 2.1 テックスタック ↔ アーキテクチャ
|
|
6
6
|
|
|
7
7
|
- **整合性**: `01-tech-stack.md` で選定された技術がアーキテクチャ図(`07-architecture.md`)のコンポーネントと一致しているか。
|
|
8
8
|
- **ADR**: 重要な技術選定理由が ADR として記録されているか。
|
|
9
9
|
|
|
10
|
+
以下の grep は固定語リストによる補助検索であり、判定の代わりにはならない(新しい技術選定が語彙に含まれず検出漏れになりうる)。判定は必ず Read で該当箇所を確認し file:line を引用して行う。
|
|
11
|
+
|
|
10
12
|
```bash
|
|
11
|
-
# tech-stack で挙がった技術が architecture
|
|
13
|
+
# tech-stack で挙がった技術が architecture に登場するか(補助検索)
|
|
12
14
|
grep -oE "PostgreSQL|Redis|NestJS|Next.js" docs/project/04-design/01-tech-stack.md | sort -u
|
|
13
15
|
grep -oE "PostgreSQL|Redis|NestJS|Next.js" docs/project/04-design/07-architecture.md | sort -u
|
|
14
16
|
```
|
|
@@ -19,6 +19,7 @@ argument-hint: "[task-id]"
|
|
|
19
19
|
- `CreateTaskDefinition (b-002)` が完了し、`a-definition.md` に目的・変更内容が記載されている。
|
|
20
20
|
- タスクディレクトリ: `docs/tasks/task{ID}-{SLUG}/`
|
|
21
21
|
- テンプレート: `../../templates/tasks/task-template/b-research.md`(スキル配置ディレクトリ起点の相対参照)
|
|
22
|
+
- `docs/LESSONS.md` があれば参照する(`d-001-review-retrospective` が過去タスクの振り返りから蓄積する汎用的な学び。無ければスキップ)。
|
|
22
23
|
|
|
23
24
|
## 手順
|
|
24
25
|
|
|
@@ -49,6 +50,7 @@ ls -d docs/tasks/task*
|
|
|
49
50
|
|
|
50
51
|
### 4. ベストプラクティス・外部情報の調査
|
|
51
52
|
|
|
53
|
+
- `docs/LESSONS.md` が存在すれば読み、過去タスクの摩擦点・ベストプラクティスを踏まえる(無ければスキップ)。
|
|
52
54
|
- 公式ドキュメント、信頼できる記事、社内ナレッジを確認し、採用すべきパターン/アンチパターンを整理。
|
|
53
55
|
- 調査内容(タイトル、要点、URL)を記録。例)フォームバリデーション、非同期通信、セキュリティガイドライン。
|
|
54
56
|
|
|
@@ -32,14 +32,27 @@ ls -d docs/tasks/task*
|
|
|
32
32
|
|
|
33
33
|
- レビュー対象のタスクIDとスラッグを特定。
|
|
34
34
|
- 不足ドキュメントがあれば該当スキル(b-002/b-003/b-004)に差し戻す。
|
|
35
|
+
- **注記**: この存在確認は doctor では代替できない。`yodogawa doctor` の `structure`/`id-trace`/`placeholder` は `docs/project/` 固定で `docs/tasks/` を検査対象にしないため、ここは従来どおり `ls`/`Glob` で確認する。
|
|
35
36
|
|
|
36
|
-
### 2.
|
|
37
|
+
### 2. 前提整合性の自動検査(doctor links のみ)
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx -y yodogawa doctor --json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`findings` のうち `check: "links"` かつ `file` が `docs/tasks/task{ID}-{SLUG}/` で始まる項目のみを確認する(`links` は `docs/` 全体を検査対象にする唯一のチェックのため、docs/tasks 内の相対リンク切れはここで拾える)。**`structure`/`id-trace`/`placeholder` の finding はこのタスクディレクトリに関係しないため無視する。** リンク切れがあれば前提整合性 FAIL としてレポートの「前提整合性」節に記録する(手順4の観点別 PASS/FAIL とは別枠)。doctor が実行できない場合は前提整合性の確認を省略してよい。
|
|
44
|
+
|
|
45
|
+
### 3. 各ドキュメントの読み込み
|
|
37
46
|
|
|
38
47
|
- `a-definition.md`: 目的/ユーザーストーリー/変更内容/受け入れ基準
|
|
39
48
|
- `b-research.md`: ベストプラクティス/再利用コード/技術選定/リスク
|
|
40
49
|
- `c-implementation.md`: フェーズ/ステップ/成果物/テスト計画
|
|
41
50
|
|
|
42
|
-
###
|
|
51
|
+
### 4. 一貫性チェック(観点別 PASS/FAIL + 根拠引用)
|
|
52
|
+
|
|
53
|
+
以下の 6 観点は**すべて doctor 非対応**(`structure`/`id-trace`/`placeholder` が `docs/tasks/` を検査対象にしないため)。エージェントが `a-definition.md` / `b-research.md` / `c-implementation.md` を Read して判断し、判定には file:line の引用を必須とする(判定ルール: 観点内に Error 相当の指摘が1件以上あれば FAIL、Warning 相当のみなら PASS+注記)。
|
|
54
|
+
|
|
55
|
+
> **エージェントの役割範囲**: 手順2の doctor links チェックは出力の解釈と修正提案に限定する(再実装しない)。この手順4の6観点はすべて doctor 非対応の意味判断であり、役割は「読解判断+証拠引用」である。
|
|
43
56
|
|
|
44
57
|
| # | 観点 | チェック内容 |
|
|
45
58
|
|---|------|--------------|
|
|
@@ -50,11 +63,9 @@ ls -d docs/tasks/task*
|
|
|
50
63
|
|5|実装計画の完全性|フェーズ順序・ステップ粒度・テスト計画が適切か|
|
|
51
64
|
|6|タスク全体の実現性|目的/スコープ/依存関係/期間が妥当か|
|
|
52
65
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
各観点のチェックリスト・検出すべき問題パターンは [reference/consistency-checks.md](reference/consistency-checks.md) を参照。
|
|
66
|
+
各観点は **PASS / FAIL** で判定し、根拠(file:line引用)を必ず添える。各観点のチェックリスト・検出すべき問題パターンは [reference/consistency-checks.md](reference/consistency-checks.md) を参照。
|
|
56
67
|
|
|
57
|
-
###
|
|
68
|
+
### 5. レポート作成
|
|
58
69
|
|
|
59
70
|
`docs/tasks/task{ID}-{SLUG}/TASK-REVIEW-REPORT.md` に以下を記入(詳細版テンプレートは [examples/review-report-template.md](examples/review-report-template.md) を参照):
|
|
60
71
|
|
|
@@ -62,16 +73,21 @@ ls -d docs/tasks/task*
|
|
|
62
73
|
# タスクレビュー結果: task{ID}-{SLUG}
|
|
63
74
|
**実施日**: YYYY-MM-DD
|
|
64
75
|
|
|
65
|
-
##
|
|
66
|
-
-
|
|
67
|
-
- 実装開始可否: [可 / 要修正]
|
|
76
|
+
## 前提整合性(doctor links)
|
|
77
|
+
- docs/tasks 内リンク: [PASS/FAIL] – 根拠(file:line)
|
|
68
78
|
|
|
69
|
-
##
|
|
70
|
-
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
## 判定
|
|
80
|
+
- 実装開始可否: [PASS / FAIL]
|
|
81
|
+
|
|
82
|
+
## 詳細(観点別 PASS/FAIL)
|
|
83
|
+
| # | 観点 | 判定 | 根拠(file:line) | コメント |
|
|
84
|
+
|--:|:--|:--:|:--|:--|
|
|
85
|
+
|1|定義 ↔ 実装(変更内容)| [PASS/FAIL] | ... | ... |
|
|
86
|
+
|2|定義 ↔ 実装(ユーザーストーリー)| ... | ... | ... |
|
|
87
|
+
|3|定義 ↔ 実装(受け入れ基準)| ... | ... | ... |
|
|
88
|
+
|4|リサーチ ↔ 実装| ... | ... | ... |
|
|
89
|
+
|5|実装計画の完全性| ... | ... | ... |
|
|
90
|
+
|6|タスク全体の実現性| ... | ... | ... |
|
|
75
91
|
|
|
76
92
|
## 修正が必要な項目
|
|
77
93
|
1. **カテゴリ**: ...
|
|
@@ -83,13 +99,13 @@ ls -d docs/tasks/task*
|
|
|
83
99
|
- 推奨事項:
|
|
84
100
|
```
|
|
85
101
|
|
|
86
|
-
###
|
|
102
|
+
### 6. 実装開始可否の判定とユーザー報告
|
|
87
103
|
|
|
88
|
-
-
|
|
89
|
-
- ユーザーに
|
|
104
|
+
- 実装開始可否(PASS/FAIL)をレポートに明記する(全6観点PASSならPASS、1つでもFAILならFAILの単純AND判定)。
|
|
105
|
+
- ユーザーに FAILした観点と根拠(file:line)を報告し、次のアクションを案内する。
|
|
90
106
|
- 判定基準・修正ガイダンス・ベストプラクティスは [reference/assessment-criteria.md](reference/assessment-criteria.md) を参照。
|
|
91
107
|
|
|
92
|
-
###
|
|
108
|
+
### 7. Git への追加(任意)
|
|
93
109
|
|
|
94
110
|
```bash
|
|
95
111
|
git add docs/tasks/task{ID}-{SLUG}/TASK-REVIEW-REPORT.md
|
|
@@ -98,13 +114,13 @@ git commit -m "docs(task): レビューレポート作成 task{ID}"
|
|
|
98
114
|
|
|
99
115
|
## 完了条件
|
|
100
116
|
|
|
101
|
-
-
|
|
117
|
+
- 全観点に対して PASS/FAIL 判定と根拠(file:line引用)が記載されている。
|
|
102
118
|
- 修正事項がカテゴリ別・優先度付きで整理されている。
|
|
103
|
-
-
|
|
119
|
+
- 実装開始可否(PASS/FAIL)が明記され、関係者に共有済み。
|
|
104
120
|
|
|
105
121
|
## エスカレーション
|
|
106
122
|
|
|
107
|
-
- **
|
|
123
|
+
- **FAILした観点が複数(目安3件以上)**: 「致命的な不整合が複数あります。タスクドキュメント全体の再検討が必要です。」
|
|
108
124
|
- **目的未達**: 「現在の実装計画では目的を達成できません。定義や計画を更新してください。」
|
|
109
125
|
- **リスク未対策**: 「リサーチで検出されたリスクが計画に反映されていません。対策を追加してください。」
|
|
110
126
|
- **テスト不足**: 「テスト計画が不十分です。ユニット/統合/E2Eを補完してください。」
|
|
@@ -112,6 +128,6 @@ git commit -m "docs(task): レビューレポート作成 task{ID}"
|
|
|
112
128
|
|
|
113
129
|
## 参考
|
|
114
130
|
|
|
115
|
-
- [reference/consistency-checks.md](reference/consistency-checks.md) —
|
|
116
|
-
- [reference/assessment-criteria.md](reference/assessment-criteria.md) —
|
|
131
|
+
- [reference/consistency-checks.md](reference/consistency-checks.md) — 一貫性チェックの詳細項目(6観点すべてdoctor非対応)
|
|
132
|
+
- [reference/assessment-criteria.md](reference/assessment-criteria.md) — PASS/FAIL判定基準・修正ガイダンス・ベストプラクティス・タスクライフサイクル
|
|
117
133
|
- [examples/review-report-template.md](examples/review-report-template.md) — 詳細レポートテンプレート
|
|
@@ -1,62 +1,52 @@
|
|
|
1
1
|
# レビューレポート詳細テンプレート
|
|
2
2
|
|
|
3
|
-
SKILL.md 手順
|
|
3
|
+
SKILL.md 手順5「レポート作成」で利用する詳細版テンプレート。簡易版は SKILL.md 本体にある。
|
|
4
4
|
|
|
5
5
|
## 詳細テンプレート
|
|
6
6
|
|
|
7
7
|
```markdown
|
|
8
8
|
# タスクレビュー結果: task{ID}-{SLUG}
|
|
9
|
-
**実施日**: YYYY-MM-DD
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
- 総合評価: [OK / Conditional OK / NG]
|
|
13
|
-
- 実装開始可否: [可 / 要修正]
|
|
10
|
+
**実施日**: YYYY-MM-DD
|
|
14
11
|
|
|
15
|
-
##
|
|
16
|
-
1. **定義 ↔ 実装**:
|
|
17
|
-
- 画面変更は全てステップに含まれています。
|
|
18
|
-
- **Error**: APIエンドポイント `POST /api/verify` の実装ステップが漏れています。
|
|
12
|
+
## 前提整合性(doctor links)
|
|
19
13
|
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
| 項目 | 判定 | 根拠(file:line) |
|
|
15
|
+
|:--|:--:|:--|
|
|
16
|
+
| docs/tasks 内リンク | PASS | 該当ファイルへのリンク切れなし(`yodogawa doctor --json` の `links` finding に該当なし) |
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
- ステップの粒度は適切です。
|
|
18
|
+
## 判定
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
1. `c-implementation.md` にAPI実装ステップを追加する。
|
|
28
|
-
2. メール送信処理を非同期キューに入れる設計を計画に追加する。
|
|
20
|
+
- 実装開始可否: FAIL
|
|
29
21
|
|
|
30
|
-
##
|
|
31
|
-
- フェーズ分割妥当性: [評価]
|
|
32
|
-
- ステップ粒度: [評価]
|
|
33
|
-
- テスト計画包括性: [評価]
|
|
34
|
-
- 検出された問題: X件
|
|
22
|
+
## 詳細(観点別 PASS/FAIL)
|
|
35
23
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
24
|
+
| # | 観点 | 判定 | 根拠(file:line) | コメント |
|
|
25
|
+
|--:|:--|:--:|:--|:--|
|
|
26
|
+
|1|定義 ↔ 実装(変更内容)| FAIL | `docs/tasks/task000003-auth-login/a-definition.md:22`: 「POST /api/verify」 | 対応する実装ステップが c-implementation.md に無い |
|
|
27
|
+
|2|定義 ↔ 実装(ユーザーストーリー)| PASS | `docs/tasks/task000003-auth-login/c-implementation.md:10`: 「Step2: ログイン画面実装」 | 全USに対応ステップあり |
|
|
28
|
+
|3|定義 ↔ 実装(受け入れ基準)| PASS | `docs/tasks/task000003-auth-login/a-definition.md:40`: 「- [ ] 3回失敗でロック」 | 対応ステップで実現される |
|
|
29
|
+
|4|リサーチ ↔ 実装| FAIL | `docs/tasks/task000003-auth-login/b-research.md:18`: 「メール送信遅延リスク」 | 対策がc-implementation.mdに見当たらない |
|
|
30
|
+
|5|実装計画の完全性| PASS | `docs/tasks/task000003-auth-login/c-implementation.md:5`: 「Phase1完了条件: ...」 | フェーズ完了条件明記 |
|
|
31
|
+
|6|タスク全体の実現性| PASS | `docs/tasks/task000003-auth-login/a-definition.md:5`: 「目的: ログイン簡素化」 | 実装計画と整合 |
|
|
41
32
|
|
|
42
|
-
##
|
|
33
|
+
## 修正が必要な項目
|
|
43
34
|
|
|
44
|
-
1.
|
|
45
|
-
2.
|
|
46
|
-
3. [余裕があれば修正する項目]
|
|
35
|
+
1. **APIエンドポイント漏れ**: `POST /api/verify` の実装ステップを `c-implementation.md` に追加する。
|
|
36
|
+
2. **リスク対策未反映**: メール送信を非同期キュー化する設計を計画に追加する。
|
|
47
37
|
|
|
48
|
-
##
|
|
38
|
+
## 所見
|
|
49
39
|
|
|
50
40
|
### 強み
|
|
51
|
-
|
|
41
|
+
(このタスクドキュメントの優れている点)
|
|
52
42
|
|
|
53
43
|
### 改善点
|
|
54
|
-
|
|
44
|
+
(改善すべき点、懸念事項)
|
|
55
45
|
|
|
56
46
|
### 推奨事項
|
|
57
|
-
|
|
47
|
+
(実装開始前に対応すべき事項)
|
|
58
48
|
|
|
59
49
|
## 備考
|
|
60
50
|
|
|
61
|
-
|
|
51
|
+
(追加のコメント、質問事項など)
|
|
62
52
|
```
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
SKILL.md 手順5「実装開始可否の判定」で参照する基準とアクション。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 実装開始可否の基準
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
7
|
+
観点別 PASS/FAIL 表(6項目、SKILL.md手順4)から機械的に導出する(総合スコアや段階評価による恣意的な判断をしない)。
|
|
8
|
+
|
|
9
|
+
- **PASS(実装開始可)**: 全6観点が PASS(各観点にError相当の指摘が0件)。Warning相当の注記が残っていても着手を妨げない。
|
|
10
|
+
- **FAIL(要修正)**: 1観点以上が FAIL(Error相当の指摘が1件以上)。該当観点の指摘を解消してから再レビューする。
|
|
11
11
|
|
|
12
12
|
## 推奨アクション
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
14
|
+
- 実装開始可否が「PASS」の場合:「実装開始可能です。`/c-001-implement-task` を実行してください。」
|
|
15
|
+
- 実装開始可否が「FAIL」の場合:「以下のFAIL観点を修正後、再レビューしてください:」(FAILの観点と根拠(file:line)を列挙)
|
|
16
|
+
- FAILした観点が複数(目安3件以上)の場合:「タスクドキュメント全体の見直しが必要です。チームでレビュー会議を実施することを推奨します。」
|
|
17
17
|
|
|
18
18
|
## 修正ガイダンス
|
|
19
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 一貫性チェックの詳細項目
|
|
2
2
|
|
|
3
|
-
SKILL.md 手順
|
|
3
|
+
SKILL.md 手順4「一貫性チェック」で参照する詳細項目。**6観点すべて doctor 非対応**(`structure`/`id-trace`/`placeholder` は `docs/project` 固定で `docs/tasks/` を検査対象にしない。唯一 `links` が `docs/` 全体を検査するが、相対リンク切れの検出に限られ意味的整合性は見ない)。すべて `a-definition.md` / `b-research.md` / `c-implementation.md` を Read して判断し、判定には file:line の引用を必須とする。番号は SKILL.md 手順4の観点表(1〜6)に対応する。
|
|
4
4
|
|
|
5
5
|
## チェック1: タスク定義 ↔ 実装計画(変更内容のカバレッジ)
|
|
6
6
|
|
|
@@ -54,16 +54,75 @@ SKILL.md 手順3「一貫性チェック」で参照する詳細項目。
|
|
|
54
54
|
|
|
55
55
|
- ❌ **Error**: ユーザーストーリーに対応する実装ステップがない
|
|
56
56
|
|
|
57
|
-
## チェック3:
|
|
57
|
+
## チェック3: タスク定義 ↔ 実装計画(受け入れ基準のカバレッジ)
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
- ステップ粒度: [評価]
|
|
61
|
-
- テスト計画包括性: [評価]
|
|
62
|
-
- 検出された問題: X件
|
|
59
|
+
### 3.1. 受け入れ基準と実装ステップの対応
|
|
63
60
|
|
|
64
|
-
|
|
61
|
+
- タスク定義(a-definition.md)の受け入れ基準一覧を抽出
|
|
62
|
+
- 各受け入れ基準を満たす実装ステップ(またはテスト計画)が c-implementation.md に存在するか確認
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
64
|
+
**チェック項目**:
|
|
65
|
+
|
|
66
|
+
- [ ] すべての受け入れ基準に対応する実装ステップ・テストが存在する
|
|
67
|
+
- [ ] 受け入れ基準が「誰が読んでも同じ判定になる」具体性を持つ(例: 「正しく動作する」のような検証不能な表現でない)
|
|
68
|
+
|
|
69
|
+
**検出すべき問題**:
|
|
70
|
+
|
|
71
|
+
- ❌ **Error**: 受け入れ基準に対応する実装ステップ・テストが c-implementation.md に無い
|
|
72
|
+
- ⚠️ **Warning**: 受け入れ基準の表現が曖昧で検証方法が定まらない
|
|
73
|
+
|
|
74
|
+
## チェック4: リサーチ ↔ 実装計画
|
|
75
|
+
|
|
76
|
+
### 4.1. 技術選定・リスク対策の反映
|
|
77
|
+
|
|
78
|
+
- リサーチ(b-research.md)の技術選定が実装計画(c-implementation.md)のステップに反映されているか確認
|
|
79
|
+
- リサーチで挙げたリスクへの対策が実装計画に含まれているか確認
|
|
80
|
+
|
|
81
|
+
**チェック項目**:
|
|
82
|
+
|
|
83
|
+
- [ ] 選定技術が実装計画のステップと矛盾しない
|
|
84
|
+
- [ ] リサーチで指摘したリスクごとに、対応する対策・ステップが実装計画にある
|
|
85
|
+
|
|
86
|
+
**検出すべき問題**:
|
|
87
|
+
|
|
88
|
+
- ❌ **Error**: b-research.md の技術選定と c-implementation.md の記述が矛盾する
|
|
89
|
+
- ⚠️ **Warning**: リサーチで挙げたリスクへの対策が実装計画に見当たらない
|
|
90
|
+
|
|
91
|
+
## チェック5: 実装計画の完全性
|
|
92
|
+
|
|
93
|
+
### 5.1. フェーズ・ステップ・テスト計画の妥当性
|
|
94
|
+
|
|
95
|
+
- フェーズ分割: 各フェーズに目的・完了条件が明記され、後続フェーズが依存する成果物が先行フェーズで作られているか確認
|
|
96
|
+
- ステップ粒度: 1ステップが数時間規模に収まる具体性か(オープンエンドな粗いステップが無いか)確認
|
|
97
|
+
- テスト計画: 各受け入れ基準に対応するテスト(ユニット/統合/E2E)が計画されているか確認
|
|
98
|
+
|
|
99
|
+
**チェック項目**:
|
|
100
|
+
|
|
101
|
+
- [ ] 各フェーズに完了条件が明記されている
|
|
102
|
+
- [ ] 後続フェーズが依存する成果物が先行フェーズのステップに含まれる
|
|
103
|
+
- [ ] ステップ粒度が実装可能な単位に分割されている
|
|
104
|
+
- [ ] 受け入れ基準を網羅するテスト計画がある
|
|
105
|
+
|
|
106
|
+
**検出すべき問題**:
|
|
107
|
+
|
|
108
|
+
- ❌ **Error**: フェーズの完了条件が無い、または後続フェーズが依存する成果物がどのフェーズにも存在しない
|
|
109
|
+
- ⚠️ **Warning**: ステップ粒度が大きすぎる(分割検討)、テスト計画が受け入れ基準の一部を欠く
|
|
110
|
+
|
|
111
|
+
## チェック6: タスク全体の実現可能性
|
|
112
|
+
|
|
113
|
+
### 6.1. 目的・スコープ・依存関係の整合性
|
|
114
|
+
|
|
115
|
+
- 目的との整合性: a-definition.md の目的と c-implementation.md の成果物が一致するか確認
|
|
116
|
+
- スコープの適切性: 変更内容がタスクとして妥当な粒度か(分割すべき規模でないか)確認
|
|
117
|
+
- 依存関係の明示: 他タスク・外部チーム・環境変数等への依存が明記されているか確認
|
|
118
|
+
|
|
119
|
+
**チェック項目**:
|
|
120
|
+
|
|
121
|
+
- [ ] a-definition.md の目的と実装計画の成果物が一致する
|
|
122
|
+
- [ ] スコープが単一タスクとして妥当な粒度である
|
|
123
|
+
- [ ] 他タスク・外部要因への依存が明記されている
|
|
124
|
+
|
|
125
|
+
**検出すべき問題**:
|
|
126
|
+
|
|
127
|
+
- ❌ **Error**: 目的と実装計画が矛盾する、または必須の依存関係が未記載
|
|
128
|
+
- ⚠️ **Warning**: スコープが広すぎる(タスク分割を検討)
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: d-001-review-retrospective
|
|
3
|
+
description: A〜Cシリーズ(または1タスク分のb/cサイクル)完了後、成果物ドキュメント(振り返り・ベストプラクティス・レビューレポート)から摩擦点を収集し、対象SKILL.mdへの修正案をdiff形式で提示、docs/LESSONS.mdに汎用的な学びを記録する。A〜Cシリーズ完了後の振り返りタイミングで使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[task-id ...]"
|
|
6
|
+
context: fork
|
|
7
|
+
allowed-tools: Read, Grep, Glob, Write, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ReviewRetrospective (d-001)
|
|
11
|
+
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
14
|
+
- A〜Cシリーズ(または1タスク分のb/cサイクル)の実行経験から摩擦点(詰まった・脱線した・手戻りした箇所)を成果物ドキュメントから収集する。
|
|
15
|
+
- 摩擦点をスキル・手順単位にマッピングし、対象 SKILL.md への具体的な修正案を diff 形式で提示する(適用はユーザー承認制。SKILL.md自体は編集しない)。
|
|
16
|
+
- 汎用的な学びを `docs/LESSONS.md` に追記し、次のタスクのリサーチ(`b-003`)が参照できるようにする。
|
|
17
|
+
|
|
18
|
+
## 前提
|
|
19
|
+
|
|
20
|
+
- 対象タスクの成果物ドキュメント(`a-definition.md` / `b-research.md` / `c-implementation.md`)が `docs/tasks/task{ID}-{SLUG}/` に存在すること。特に `c-implementation.md` の `## 振り返り` セクションが記入済みであること。
|
|
21
|
+
- `b-005-review-task` を実施済みなら `docs/tasks/task{ID}-{SLUG}/TASK-REVIEW-REPORT.md` も入力として使う(無ければスキップ)。
|
|
22
|
+
- 修正案の永続化先: `docs/tasks/task{ID}-{SLUG}/RETROSPECTIVE-REPORT.md`
|
|
23
|
+
- 汎用的な学びの蓄積先: `docs/LESSONS.md`(無ければこのスキルが `../../templates/LESSONS.md` から新規作成——スキル配置ディレクトリ起点の相対参照)
|
|
24
|
+
- **注記**: `docs/LESSONS.md` は意図的に `docs/project/` の外に置く。`yodogawa doctor` の `id-trace`/`placeholder` は `docs/project/` 配下を無条件に走査し、`US-`/`FN-` 等のID風文字列を trace 切れとして誤検知しうるため(過去タスクで言及したIDが後日リナンバー・削除されると発生する)。
|
|
25
|
+
|
|
26
|
+
## 手順
|
|
27
|
+
|
|
28
|
+
`$ARGUMENTS` に1つ以上の `task{ID}-{SLUG}` があればそれを対象にする。未指定ならユーザーに対象範囲(直近のA〜Cシリーズ全体 or 特定タスク群)を確認する。
|
|
29
|
+
|
|
30
|
+
### 1. 対象タスクの成果物収集
|
|
31
|
+
|
|
32
|
+
対象タスクごとに:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
ls -d docs/tasks/task*
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
- `c-implementation.md` の `## 振り返り` セクション(うまくいったこと/改善すべきこと/次のタスクへのフィードバック)を Read。
|
|
39
|
+
- `b-research.md` の `## 実装時に発見したベストプラクティス` `## 技術的リスクの結果` を Read。
|
|
40
|
+
- `TASK-REVIEW-REPORT.md` があれば `## 所見` の改善点・推奨事項を Read。
|
|
41
|
+
|
|
42
|
+
未記入・未存在なら該当タスクをスキップし、理由を記録する。
|
|
43
|
+
|
|
44
|
+
### 2. 摩擦点の抽出とスキル・手順へのマッピング
|
|
45
|
+
|
|
46
|
+
収集した記述から摩擦点候補を洗い出し、原因となったスキル・手順を Read/Grep で特定する(例:「b-003の手順4で外部調査に時間がかかった」→ `skills/b-003-create-task-research/SKILL.md` の該当手順)。
|
|
47
|
+
分類基準・マッピング方法の詳細は [reference/friction-point-mapping.md](reference/friction-point-mapping.md) を参照。
|
|
48
|
+
|
|
49
|
+
### 3. 対象 SKILL.md への修正案の作成
|
|
50
|
+
|
|
51
|
+
対象 SKILL.md を Read し、摩擦点を解消する具体的な修正案を diff 形式(`-`/`+` 行)で作成する。**SKILL.mdファイル自体は編集しない**(Writeツールはこの手順では使わない。適用要否はユーザーが判断する)。
|
|
52
|
+
|
|
53
|
+
### 4. レポート作成
|
|
54
|
+
|
|
55
|
+
`docs/tasks/task{ID}-{SLUG}/RETROSPECTIVE-REPORT.md` に摩擦点一覧・SKILL.md修正案(diff)を記入する(詳細版テンプレートは [examples/retrospective-report-template.md](examples/retrospective-report-template.md) を参照)。複数タスクを対象にした場合は1レポートに集約する。
|
|
56
|
+
|
|
57
|
+
### 5. LESSONS.md への記録
|
|
58
|
+
|
|
59
|
+
個別スキルへの修正提案にとどまらない汎用的な学び(複数スキルに共通するパターン、プロジェクト固有の注意点等)を抽出する。
|
|
60
|
+
`docs/LESSONS.md` を Read し、同一 task-id の見出し(`### YYYY-MM-DD — task{ID}: ...`)が既に無いか Grep で確認する。既にあればスキップして重複を報告する。無ければ末尾に新規エントリを追記する(Write)。
|
|
61
|
+
|
|
62
|
+
### 6. レポート出力
|
|
63
|
+
|
|
64
|
+
チャットに以下を出力する:
|
|
65
|
+
|
|
66
|
+
- 摩擦点一覧(タスクID・該当スキル・根拠file:line)
|
|
67
|
+
- 対象SKILL.mdごとの修正案(diff形式。手順4で保存したレポートへのパスも明記)
|
|
68
|
+
- LESSONS.mdへの追記内容のサマリ(スキップした場合はその旨)
|
|
69
|
+
|
|
70
|
+
### 7. Git への追加(任意)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
git add docs/tasks/task{ID}-{SLUG}/RETROSPECTIVE-REPORT.md docs/LESSONS.md
|
|
74
|
+
git commit -m "docs(retrospective): 振り返りレポート作成 task{ID}"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 完了条件
|
|
78
|
+
|
|
79
|
+
- 対象タスクの成果物ドキュメントを全て読み込んでいる(未記入タスクはスキップ理由を記録)。
|
|
80
|
+
- 摩擦点ごとに file:line の根拠付きで SKILL.md 修正案(diff形式)が提示されている(チャット+`RETROSPECTIVE-REPORT.md`)。
|
|
81
|
+
- `docs/LESSONS.md` への追記が完了している(新規作成含む。重複時はスキップ)。
|
|
82
|
+
- **SKILL.md自体は書き換えられていない**(提示のみ)。
|
|
83
|
+
|
|
84
|
+
## エスカレーション
|
|
85
|
+
|
|
86
|
+
- **成果物ドキュメントが不十分**: 「振り返りセクションが記入されていません。`c-002-update-documentation` で振り返りを記入してから再実行してください。」
|
|
87
|
+
- **摩擦点が見つからない**: 「今回の対象タスクでは明確な摩擦点が見つかりませんでした。」と報告して終了する(無理に指摘を作らない)。
|
|
88
|
+
- **修正案が複数スキルにまたがる/大規模**: 優先度(頻度・影響度)を付けて提示し、一度に大量の変更を提案しない。
|
|
89
|
+
|
|
90
|
+
## 参考
|
|
91
|
+
|
|
92
|
+
- [reference/friction-point-mapping.md](reference/friction-point-mapping.md) — 摩擦点の分類基準・スキル手順へのマッピング方法
|
|
93
|
+
- [examples/retrospective-report-template.md](examples/retrospective-report-template.md) — RETROSPECTIVE-REPORT.md詳細テンプレート
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# 振り返りレポート詳細テンプレート
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順4「レポート作成」で利用する詳細版テンプレート。
|
|
4
|
+
|
|
5
|
+
## 詳細テンプレート
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# 振り返りレポート: task{ID}-{SLUG}(複数タスク対象時は対象一覧を記載)
|
|
9
|
+
|
|
10
|
+
**実施日**: YYYY-MM-DD
|
|
11
|
+
**対象タスク**: task000003-auth-login, task000004-password-reset
|
|
12
|
+
|
|
13
|
+
## 摩擦点一覧
|
|
14
|
+
|
|
15
|
+
| # | 分類 | タスクID | 該当スキル | 根拠(file:line) | 優先度 |
|
|
16
|
+
|--:|:--|:--|:--|:--|:--:|
|
|
17
|
+
|1|手戻り|task000003-auth-login|`b-004-create-task-implementation`|`docs/tasks/task000003-auth-login/c-implementation.md:88`: 「テスト計画に異常系が無く後から追加した」|高|
|
|
18
|
+
|2|詰まり|task000004-password-reset|`b-003-create-task-research`|`docs/tasks/task000004-password-reset/b-research.md:12`: 「外部APIのレート制限調査に時間がかかった」|中|
|
|
19
|
+
|
|
20
|
+
## 対象SKILL.mdごとの修正案(diff形式)
|
|
21
|
+
|
|
22
|
+
### `skills/b-004-create-task-implementation/SKILL.md`
|
|
23
|
+
|
|
24
|
+
理由: 摩擦点#1(テスト計画に「正常系/異常系」の観点が明記されておらず、異常系テストの記載漏れが手戻りの原因になった。b-002の受け入れ基準策定(正常系/異常系/性能/セキュリティの観点を明記)と対称的な記述にする)
|
|
25
|
+
|
|
26
|
+
\`\`\`diff
|
|
27
|
+
### 4. テスト計画
|
|
28
|
+
|
|
29
|
+
-フェーズ/ステップ単位で必要なテスト(ユニット、API、UI、E2E、負荷)とカバレッジ目標、検証コマンド(`npm test`, `playwright test` 等)を記載。例は [examples/phase-step-template.md](examples/phase-step-template.md#テスト計画の記載例) を参照。
|
|
30
|
+
+フェーズ/ステップ単位で必要なテスト(ユニット、API、UI、E2E、負荷)を**正常系/異常系**の観点で記載し、カバレッジ目標、検証コマンド(`npm test`, `playwright test` 等)を記載。例は [examples/phase-step-template.md](examples/phase-step-template.md#テスト計画の記載例) を参照。
|
|
31
|
+
\`\`\`
|
|
32
|
+
|
|
33
|
+
**適用要否はユーザー判断**(このレポートは提案のみ。SKILL.mdは編集していない)。
|
|
34
|
+
|
|
35
|
+
## docs/LESSONS.md への追記内容
|
|
36
|
+
|
|
37
|
+
- 追記した: `### YYYY-MM-DD — task000003-auth-login: テスト計画に異常系観点の明記が無く手戻りが発生`
|
|
38
|
+
- スキップした(重複): なし
|
|
39
|
+
|
|
40
|
+
## 所見
|
|
41
|
+
|
|
42
|
+
### 強み
|
|
43
|
+
(今回のA〜Cサイクルで機能した点)
|
|
44
|
+
|
|
45
|
+
### 改善点
|
|
46
|
+
(今回検出できなかった摩擦点、次回のretrospectiveで補強すべき観点)
|
|
47
|
+
|
|
48
|
+
### 推奨事項
|
|
49
|
+
(優先度「高」の修正案から着手することを推奨、等)
|
|
50
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 摩擦点の分類基準・スキル手順へのマッピング方法
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順2「摩擦点の抽出とスキル・手順へのマッピング」で参照する詳細ガイド。
|
|
4
|
+
|
|
5
|
+
## 摩擦点の分類
|
|
6
|
+
|
|
7
|
+
収集した記述(`## 振り返り` / ベストプラクティス / レビューレポートの所見)から、以下のパターンに該当する記述を摩擦点候補として拾う。
|
|
8
|
+
|
|
9
|
+
| 分類 | 典型的な記述例 | 想定される原因 |
|
|
10
|
+
|------|----------------|----------------|
|
|
11
|
+
| 詰まり | 「〜の判断基準が分からず手が止まった」「〜の手順の意図が不明瞭だった」 | 対象スキルの手順説明・判定基準の記述不足 |
|
|
12
|
+
| 脱線 | 「〜を調査するはずが別の作業に時間を使った」「スコープ外の作業をしてしまった」 | 対象スキルの前提・スコープ境界の記述不足 |
|
|
13
|
+
| 手戻り | 「後になって〜が抜けていることに気づき修正した」「〜のチェックが漏れていた」 | 対象スキルの完了条件・チェックリストの不足 |
|
|
14
|
+
| 誤解 | 「〜だと思っていたが実際は違った」 | 対象スキルの用語・説明の曖昧さ |
|
|
15
|
+
|
|
16
|
+
一般的な感想・個別タスク固有の詳細(例: 特定のライブラリのバージョン問題)は摩擦点として扱わない(スキル定義の改善につながらないため)。
|
|
17
|
+
|
|
18
|
+
## スキル・手順へのマッピング
|
|
19
|
+
|
|
20
|
+
1. 摩擦点の記述から、関連するフェーズ(A/B/C/D)とスキル名を推測する(例:「実装計画の粒度」→ `b-004-create-task-implementation`)。
|
|
21
|
+
2. 該当する `skills/{code}/SKILL.md` を Read し、`## 手順` 内で摩擦点に対応する箇所を Grep(見出し番号・キーワード検索)で特定する。
|
|
22
|
+
3. 特定できない場合(複数スキルにまたがる、または既存スキルのどこにも対応しない)は、レポートの「マッピング不能」欄に記録し、無理に1箇所へ押し込めない。
|
|
23
|
+
|
|
24
|
+
## 修正案の優先度付け
|
|
25
|
+
|
|
26
|
+
- **高**: 複数タスクで同じ摩擦点が繰り返し報告されている(`docs/LESSONS.md` の既存エントリと突き合わせて確認)。
|
|
27
|
+
- **中**: 単一タスックだが Error 相当(作業がやり直しになった・成果物に不整合が生じた)。
|
|
28
|
+
- **低**: 単一タスクの Warning 相当(読みにくかった・迷ったが自己解決できた)。
|
|
29
|
+
|
|
30
|
+
優先度「高」「中」の摩擦点のみ SKILL.md 修正案として提示する。「低」は `docs/LESSONS.md` への記録にとどめ、SKILL.md 修正案は作らない(頻度の低い指摘でスキルを肥大化させない)。
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Lessons Learned
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何のドキュメントか: A〜Cシリーズ運用で得られた汎用的な学び(複数タスク・複数スキルに共通するパターン)を蓄積する追記専用ログ。
|
|
5
|
+
d-001(Review Retrospective)が振り返り実行のたびに末尾へ1エントリ追記する。b-003(Task Research)が次タスクの調査時に参照する。
|
|
6
|
+
|
|
7
|
+
原則:
|
|
8
|
+
- 個別タスク固有の詳細は書かない(それは各タスクの c-implementation.md / RETROSPECTIVE-REPORT.md に残る)。ここは「次のタスクでも使える」学びだけを書く。
|
|
9
|
+
- 追記は末尾に時系列で積む。既存エントリは編集・削除しない(監査性を優先)。
|
|
10
|
+
- docs/project/ の外に置く(yodogawa doctor の id-trace/placeholder は docs/project/ 配下のみを検査するため、意図的に対象外にしている)。
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
## 学びの記録
|
|
14
|
+
|
|
15
|
+
<!-- d-001 が振り返りのたびに1エントリを追記する。見出しは `### YYYY-MM-DD — task{ID}: <一言タイトル>` 形式。 -->
|