create-ai-project 1.20.2 → 1.20.4
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/.claude/agents-en/acceptance-test-generator.md +3 -2
- package/.claude/agents-en/code-reviewer.md +133 -25
- package/.claude/agents-en/codebase-analyzer.md +35 -9
- package/.claude/agents-en/design-sync.md +5 -6
- package/.claude/agents-en/document-reviewer.md +2 -0
- package/.claude/agents-en/integration-test-reviewer.md +2 -2
- package/.claude/agents-en/prd-creator.md +2 -4
- package/.claude/agents-en/quality-fixer-frontend.md +1 -1
- package/.claude/agents-en/quality-fixer.md +1 -1
- package/.claude/agents-en/requirement-analyzer.md +7 -7
- package/.claude/agents-en/scope-discoverer.md +2 -2
- package/.claude/agents-en/solver.md +1 -2
- package/.claude/agents-en/task-decomposer.md +2 -2
- package/.claude/agents-en/task-executor-frontend.md +1 -1
- package/.claude/agents-en/task-executor.md +1 -1
- package/.claude/agents-en/technical-designer-frontend.md +5 -5
- package/.claude/agents-en/technical-designer.md +7 -4
- package/.claude/agents-en/ui-spec-designer.md +1 -1
- package/.claude/agents-en/work-planner.md +1 -1
- package/.claude/agents-ja/acceptance-test-generator.md +3 -2
- package/.claude/agents-ja/code-reviewer.md +133 -25
- package/.claude/agents-ja/codebase-analyzer.md +35 -9
- package/.claude/agents-ja/design-sync.md +5 -5
- package/.claude/agents-ja/document-reviewer.md +2 -0
- package/.claude/agents-ja/integration-test-reviewer.md +2 -2
- package/.claude/agents-ja/prd-creator.md +2 -4
- package/.claude/agents-ja/quality-fixer-frontend.md +1 -1
- package/.claude/agents-ja/quality-fixer.md +1 -1
- package/.claude/agents-ja/requirement-analyzer.md +7 -7
- package/.claude/agents-ja/scope-discoverer.md +2 -2
- package/.claude/agents-ja/solver.md +1 -2
- package/.claude/agents-ja/task-decomposer.md +2 -2
- package/.claude/agents-ja/task-executor-frontend.md +1 -1
- package/.claude/agents-ja/task-executor.md +1 -1
- package/.claude/agents-ja/technical-designer-frontend.md +5 -5
- package/.claude/agents-ja/technical-designer.md +7 -4
- package/.claude/agents-ja/ui-spec-designer.md +1 -1
- package/.claude/agents-ja/work-planner.md +1 -1
- package/.claude/commands-en/build.md +17 -8
- package/.claude/commands-en/front-build.md +25 -41
- package/.claude/commands-en/front-design.md +49 -17
- package/.claude/commands-en/front-plan.md +17 -10
- package/.claude/commands-en/front-review.md +37 -33
- package/.claude/commands-en/review.md +10 -5
- package/.claude/commands-ja/build.md +17 -8
- package/.claude/commands-ja/front-build.md +25 -41
- package/.claude/commands-ja/front-design.md +48 -18
- package/.claude/commands-ja/front-plan.md +22 -15
- package/.claude/commands-ja/front-review.md +37 -33
- package/.claude/commands-ja/review.md +10 -5
- package/.claude/skills-en/coding-standards/references/security-checks.md +4 -2
- package/.claude/skills-en/documentation-criteria/SKILL.md +8 -28
- package/.claude/skills-en/documentation-criteria/references/adr-template.md +5 -1
- package/.claude/skills-en/documentation-criteria/references/design-template.md +18 -8
- package/.claude/skills-en/documentation-criteria/references/plan-template.md +11 -6
- package/.claude/skills-en/documentation-criteria/references/prd-template.md +32 -10
- package/.claude/skills-en/documentation-criteria/references/task-template.md +2 -2
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +21 -38
- package/.claude/skills-en/task-analyzer/references/skills-index.yaml +0 -2
- package/.claude/skills-ja/coding-standards/references/security-checks.md +4 -2
- package/.claude/skills-ja/documentation-criteria/SKILL.md +8 -29
- package/.claude/skills-ja/documentation-criteria/references/adr-template.md +5 -1
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +18 -2
- package/.claude/skills-ja/documentation-criteria/references/plan-template.md +11 -6
- package/.claude/skills-ja/documentation-criteria/references/prd-template.md +32 -10
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +2 -2
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +21 -36
- package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +0 -2
- package/CHANGELOG.md +57 -0
- package/README.ja.md +51 -30
- package/README.md +58 -34
- package/docs/guides/en/skills-editing-guide.md +10 -0
- package/docs/guides/ja/skills-editing-guide.md +12 -2
- package/package.json +1 -1
|
@@ -80,7 +80,7 @@ Execute file output immediately (considered approved at execution).
|
|
|
80
80
|
1. **Executable Granularity**: Each task as logical 1-commit unit, clear completion criteria, explicit dependencies
|
|
81
81
|
2. **Built-in Quality**: Simultaneous test implementation, quality checks in each phase
|
|
82
82
|
3. **Risk Management**: List risks and countermeasures in advance, define detection methods
|
|
83
|
-
4. **Ensure Flexibility**: Prioritize essential purpose,
|
|
83
|
+
4. **Ensure Flexibility**: Prioritize essential purpose, include only information required for task execution and verification
|
|
84
84
|
5. **Design Doc Compliance**: All task completion criteria derived from Design Doc specifications
|
|
85
85
|
6. **Implementation Pattern Consistency**: When including implementation samples, MUST ensure strict compliance with Design Doc implementation approach
|
|
86
86
|
|
|
@@ -210,7 +210,8 @@ it.todo('[AC番号]-property: [不変条件を自然言語で記述]')
|
|
|
210
210
|
## 制約と品質基準
|
|
211
211
|
|
|
212
212
|
**必須準拠事項**:
|
|
213
|
-
- `it.todo
|
|
213
|
+
- `it.todo`スケルトンのみ出力: 各スケルトン内にコメントとして検証観点、期待結果、合格基準を記述。
|
|
214
|
+
実装コード、アサーション(`expect`)、モックセットアップは含めない — 下流エージェント(work-planner, integration-test-reviewer)が`it.todo`の有無でフェーズ配置やレビュー判定を行うため。
|
|
214
215
|
- 各テストの検証観点、期待結果、合格基準を明確に記述
|
|
215
216
|
- コメントに元のAC文を保持(トレーサビリティ確保)
|
|
216
217
|
- テスト上限設定内に収める;重要テストに上限超過の場合は報告
|
|
@@ -241,7 +242,7 @@ it.todo('[AC番号]-property: [不変条件を自然言語で記述]')
|
|
|
241
242
|
- フレームワーク/言語: 既存テストファイルから自動検出
|
|
242
243
|
- 配置: `**/*.{test,spec}.{ts,js}`パターンでGlobを使用してテストディレクトリを特定
|
|
243
244
|
- 命名: 既存のファイル命名規則に従う
|
|
244
|
-
- 出力: `it.todo
|
|
245
|
+
- 出力: `it.todo`スケルトンのみ(境界は制約セクション参照)
|
|
245
246
|
|
|
246
247
|
**ファイル操作**:
|
|
247
248
|
- 既存ファイル: 末尾に追記、重複を防止(Grepでチェック)
|
|
@@ -45,42 +45,106 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
45
45
|
## 検証プロセス
|
|
46
46
|
|
|
47
47
|
### 1. 基準の読み込み
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
Design Docを**全文**読み込み、以下を抽出:
|
|
49
50
|
- 機能要件と受入条件(各ACを個別にリスト)
|
|
50
51
|
- アーキテクチャ設計とデータフロー
|
|
52
|
+
- インターフェース契約(関数シグネチャ、APIエンドポイント、データ構造)
|
|
53
|
+
- 識別子仕様(リソース名、エンドポイントパス、設定キー、エラーコード、スキーマ/モデル名)
|
|
51
54
|
- エラーハンドリング方針
|
|
52
55
|
- 非機能要件
|
|
53
56
|
|
|
54
|
-
### 2.
|
|
57
|
+
### 2. 実装とDesign Docのマッピング
|
|
58
|
+
|
|
59
|
+
#### 2-1. 受入条件の検証
|
|
60
|
+
|
|
55
61
|
Step 1で抽出した各受入条件について:
|
|
56
62
|
- 実装ファイル内で対応するコードを検索
|
|
57
63
|
- ステータスを判定: fulfilled / partially fulfilled / unfulfilled
|
|
58
64
|
- ファイルパスと関連コード箇所を記録
|
|
59
65
|
- Design Doc仕様からの逸脱を記録
|
|
60
66
|
|
|
67
|
+
#### 2-2. 識別子の検証
|
|
68
|
+
|
|
69
|
+
Step 1で抽出した各識別子仕様(リソース名、エンドポイントパス、設定キー、エラーコード、スキーマ/モデル名)について:
|
|
70
|
+
1. 実装ファイル内で完全一致文字列をGrepで検索
|
|
71
|
+
2. コード内の識別子をDesign Doc仕様と比較
|
|
72
|
+
3. 不一致を検出(スペルミス、異なる命名、参照の欠落)
|
|
73
|
+
4. 記録: `{ identifier, designDocValue, codeValue, location, match: true|false }`
|
|
74
|
+
|
|
75
|
+
#### 2-3. エビデンス収集
|
|
76
|
+
|
|
77
|
+
各ACおよび識別子検証について:
|
|
78
|
+
1. **一次**: Read/Grepで直接的な実装を発見
|
|
79
|
+
2. **二次**: テストファイルで期待される振る舞いを確認
|
|
80
|
+
3. **三次**: 設定ファイルと型定義を確認
|
|
81
|
+
|
|
82
|
+
エビデンス数に基づき信頼度を割り当て:
|
|
83
|
+
- **high**: 3つ以上のソースが一致
|
|
84
|
+
- **medium**: 2つのソースが一致
|
|
85
|
+
- **low**: 1つのソースのみ(実装は存在するがテストや型による裏付けなし)
|
|
86
|
+
|
|
61
87
|
### 3. コード品質の評価
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
88
|
+
|
|
89
|
+
各実装ファイルをcoding-standardsスキルに照らして評価:
|
|
90
|
+
|
|
91
|
+
#### 3-1. 構造品質
|
|
92
|
+
各関数/メソッドについてcoding-standardsスキル(単一責任、関数設計)に照らして確認:
|
|
93
|
+
- 関数の長さ — Readツールで行数を計測
|
|
94
|
+
- ネストの深さ — Read出力でインデントレベルを計測
|
|
95
|
+
- 単一責任の遵守 — 関数が複数の異なる関心事を扱っていないか確認
|
|
96
|
+
|
|
97
|
+
#### 3-2. エラーハンドリング
|
|
98
|
+
- エラーハンドリングパターン(try/catch、エラー返却、Result型 — プロジェクト言語に適応)をGrepで検索
|
|
99
|
+
- 各エントリポイント: エラーケースが処理されており、黙殺されていないことを検証
|
|
100
|
+
- エラーレスポンスが内部詳細を漏洩していないことを確認
|
|
101
|
+
|
|
102
|
+
#### 3-3. 受入条件のテストカバレッジ
|
|
103
|
+
- fulfilledと判定した各AC: Glob/Grepで対応するテストケースを検索
|
|
104
|
+
- テストカバレッジのあるACとないACを記録
|
|
105
|
+
|
|
106
|
+
#### 検出事項の分類
|
|
107
|
+
|
|
108
|
+
各品質検出事項を以下のいずれかに分類:
|
|
109
|
+
|
|
110
|
+
| カテゴリ | 定義 | 例 |
|
|
111
|
+
|----------|------|-----|
|
|
112
|
+
| **dd_violation** | 実装がDesign Doc仕様と矛盾または逸脱 | 識別子の不一致、指定された振る舞いの欠落、データフローの誤り |
|
|
113
|
+
| **maintainability** | コード構造が将来の変更や理解を妨げる | 長い関数、深いネスト、複数の責務、不明瞭な命名 |
|
|
114
|
+
| **reliability** | 実行時障害を引き起こし得る安全策の欠如 | 未処理のエラーパス、境界での検証漏れ、黙殺されるエラー |
|
|
115
|
+
| **coverage_gap** | 受入条件に対応するテスト検証が存在しない | コードでは充足されているがテストで検証されていないAC |
|
|
116
|
+
|
|
117
|
+
各検出事項に`rationale`フィールドを含めること:
|
|
118
|
+
|
|
119
|
+
| カテゴリ | rationaleの記載内容 |
|
|
120
|
+
|----------|---------------------|
|
|
121
|
+
| **dd_violation** | Design Docの仕様とコードの実装の差異を正確な参照とともに |
|
|
122
|
+
| **maintainability** | どのような保守・理解上のリスクが生じるか |
|
|
123
|
+
| **reliability** | どのような障害シナリオが保護されておらず、どの条件で発生し得るか |
|
|
124
|
+
| **coverage_gap** | どのACがテストされておらず、なぜこのケースでテストカバレッジが重要か |
|
|
69
125
|
|
|
70
126
|
### 4. アーキテクチャ準拠の確認
|
|
127
|
+
|
|
71
128
|
Design Docのアーキテクチャに対して検証:
|
|
72
129
|
- コンポーネントの依存関係が設計と一致
|
|
73
130
|
- データフローが文書化されたパスに従っている
|
|
74
131
|
- 責務が適切に分離されている
|
|
75
132
|
- 不必要な重複実装がない(coding-standardsスキルのパターン5)
|
|
76
|
-
- 既存コードベース分析セクションに類似機能調査結果が記載されている
|
|
77
133
|
|
|
78
|
-
### 5.
|
|
79
|
-
|
|
80
|
-
|
|
134
|
+
### 5. 準拠率の算出と統合
|
|
135
|
+
|
|
136
|
+
#### 準拠率
|
|
137
|
+
- 準拠率 = (fulfilled AC + 0.5 × partially fulfilled AC) / 全AC × 100
|
|
138
|
+
- 識別子一致率 = 一致した識別子 / 全識別子仕様 × 100
|
|
139
|
+
|
|
140
|
+
#### 統合
|
|
141
|
+
- 全ACのステータスを信頼度付きで集約
|
|
142
|
+
- 全識別子検証結果を集約
|
|
143
|
+
- 全品質検出事項をカテゴリとrationaleとともに集約
|
|
81
144
|
- 準拠率に基づいてverdictを判定
|
|
82
145
|
|
|
83
146
|
### 6. JSON結果の返却
|
|
147
|
+
|
|
84
148
|
最終レスポンスとしてJSONを返却する。スキーマは出力形式を参照。
|
|
85
149
|
|
|
86
150
|
## 出力形式
|
|
@@ -88,27 +152,58 @@ Design Docのアーキテクチャに対して検証:
|
|
|
88
152
|
```json
|
|
89
153
|
{
|
|
90
154
|
"complianceRate": "[X]%",
|
|
155
|
+
"identifierMatchRate": "[X]%",
|
|
91
156
|
"verdict": "[pass/needs-improvement/needs-redesign]",
|
|
92
157
|
|
|
93
158
|
"acceptanceCriteria": [
|
|
94
159
|
{
|
|
95
160
|
"item": "[AC名]",
|
|
96
161
|
"status": "fulfilled|partially_fulfilled|unfulfilled",
|
|
162
|
+
"confidence": "high|medium|low",
|
|
97
163
|
"location": "[file:line、実装済みの場合]",
|
|
164
|
+
"evidence": ["[source1: file:line]", "[source2: test file:line]"],
|
|
165
|
+
"evidence_source": "[ステータス判定に使用したツール名と結果。例: 'Grep found handler at src/api.ts:42']",
|
|
98
166
|
"gap": "[不足または逸脱している内容、完全充足でない場合]",
|
|
99
167
|
"suggestion": "[具体的な修正方法、完全充足でない場合]"
|
|
100
168
|
}
|
|
101
169
|
],
|
|
102
170
|
|
|
103
|
-
"
|
|
171
|
+
"identifierVerification": [
|
|
104
172
|
{
|
|
105
|
-
"
|
|
106
|
-
"
|
|
173
|
+
"identifier": "[識別子名]",
|
|
174
|
+
"designDocValue": "[Design Docで指定された値]",
|
|
175
|
+
"codeValue": "[コード内の値、または 'not found']",
|
|
176
|
+
"location": "[file:line]",
|
|
177
|
+
"match": true
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
|
|
181
|
+
"qualityFindings": [
|
|
182
|
+
{
|
|
183
|
+
"category": "dd_violation|maintainability|reliability|coverage_gap",
|
|
184
|
+
"location": "[file:line or file:function]",
|
|
185
|
+
"description": "[検出された具体的な問題]",
|
|
186
|
+
"rationale": "[カテゴリ固有、検出事項の分類を参照]",
|
|
187
|
+
"evidence_source": "[ツール名と結果。例: 'Read confirmed 85-line function at src/service.ts:10-95']",
|
|
107
188
|
"suggestion": "[具体的な改善案]"
|
|
108
189
|
}
|
|
109
190
|
],
|
|
110
191
|
|
|
111
|
-
"
|
|
192
|
+
"summary": {
|
|
193
|
+
"acsTotal": 0,
|
|
194
|
+
"acsFulfilled": 0,
|
|
195
|
+
"acsPartial": 0,
|
|
196
|
+
"acsUnfulfilled": 0,
|
|
197
|
+
"identifiersTotal": 0,
|
|
198
|
+
"identifiersMatched": 0,
|
|
199
|
+
"lowConfidenceItems": 0,
|
|
200
|
+
"findingsByCategory": {
|
|
201
|
+
"dd_violation": 0,
|
|
202
|
+
"maintainability": 0,
|
|
203
|
+
"reliability": 0,
|
|
204
|
+
"coverage_gap": 0
|
|
205
|
+
}
|
|
206
|
+
}
|
|
112
207
|
}
|
|
113
208
|
```
|
|
114
209
|
|
|
@@ -118,31 +213,44 @@ Design Docのアーキテクチャに対して検証:
|
|
|
118
213
|
- **70-89%**: needs-improvement — 重要な実装漏れあり
|
|
119
214
|
- **70%未満**: needs-redesign — 大幅な修正が必要
|
|
120
215
|
|
|
216
|
+
識別子の不一致が1件でもある場合、verdictを自動的に1段階引き下げる(例: pass → needs-improvement)。
|
|
217
|
+
|
|
121
218
|
## レビューの原則
|
|
122
219
|
|
|
123
220
|
1. **客観性の維持**
|
|
124
221
|
- 実装者のコンテキストに依存しない評価
|
|
125
222
|
- Design Docを唯一の真実として判定
|
|
126
223
|
|
|
127
|
-
2.
|
|
128
|
-
-
|
|
129
|
-
-
|
|
224
|
+
2. **エビデンスに基づく判断**
|
|
225
|
+
- 全ての検出事項に具体的なfile:line箇所を記載
|
|
226
|
+
- 全てのステータス判定にツール名と結果を含める(例: "Grep found X at file:line", "Read confirmed function signature at file:line")
|
|
227
|
+
- 信頼度lowの判定は明示的に記載
|
|
130
228
|
|
|
131
229
|
3. **定量的評価**
|
|
132
230
|
- 可能な限り数値化
|
|
133
231
|
- 主観を排除した判定
|
|
134
232
|
|
|
135
|
-
4.
|
|
136
|
-
-
|
|
137
|
-
-
|
|
233
|
+
4. **建設的フィードバック**
|
|
234
|
+
- 問題の指摘だけでなく解決策を提示
|
|
235
|
+
- カテゴリ分類により優先順位を明確化
|
|
138
236
|
|
|
139
237
|
## 完了条件
|
|
140
238
|
|
|
141
|
-
- [ ] すべてのAC
|
|
142
|
-
- [ ]
|
|
239
|
+
- [ ] すべてのACを信頼度付きで個別に評価
|
|
240
|
+
- [ ] すべての識別子仕様を実装コードに対して検証
|
|
241
|
+
- [ ] 品質検出事項をカテゴリとrationaleで分類
|
|
242
|
+
- [ ] 準拠率と識別子一致率を算出
|
|
143
243
|
- [ ] verdictを判定
|
|
144
244
|
- [ ] 最終レスポンスがJSONであること
|
|
145
245
|
|
|
246
|
+
## 出力セルフチェック
|
|
247
|
+
|
|
248
|
+
- [ ] すべてのACステータス判定にツール名と結果をエビデンスソースとして記載
|
|
249
|
+
- [ ] 識別子比較はDesign Docとコードの完全一致文字列を使用
|
|
250
|
+
- [ ] 信頼度lowの項目が全て明示的に記載
|
|
251
|
+
- [ ] 各品質検出事項にカテゴリ固有のrationaleを含む
|
|
252
|
+
- [ ] 全ての検出事項にfile:lineの参照を含む
|
|
253
|
+
|
|
146
254
|
## エスカレーション基準
|
|
147
255
|
|
|
148
256
|
以下の場合、上位レビューを推奨:
|
|
@@ -44,15 +44,19 @@ skills: coding-standards, project-context, technical-spec
|
|
|
44
44
|
|
|
45
45
|
`affectedFiles`の各ファイルに対して:
|
|
46
46
|
|
|
47
|
-
1.
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
3.
|
|
47
|
+
1. **ファイルを全文読み込み**、全可視性レベル(public, private, internal — 用語はプロジェクト言語に適応)のインターフェース、型、関数シグネチャ、クラス定義、メソッド定義をすべて抽出する。コード上の正確な名前、可視性、シグネチャを記録
|
|
48
|
+
2. **コールチェーンのトレース**(可視性の用語はプロジェクト言語に適応 — 例: public/private, exported/unexported, pub/pub(crate)):
|
|
49
|
+
- 同一モジュール内の関数/メソッド: チェーンが終端するまで(return、外部への委譲、リーフ到達)すべての呼び出しを再帰的にたどる。チェーンが10個を超えるユニークな関数にまたがる場合、トレース済み部分を記録し残りを`limitations`に記載
|
|
50
|
+
- 外部依存(インポートされたモジュール、他パッケージ): publicインターフェースのみ読み込み(シグネチャ、コントラクト)。統合ポイントとして記録するが、外部モジュール内部へのトレースは行わない
|
|
51
|
+
3. **データ変換パイプラインの検出**: 要件に関連するエントリポイント(`affectedFiles`と`purpose`で特定されたもの)を優先する。モジュール外部から入力を受け取る各該当エントリポイント(APIハンドラー、他モジュールから呼び出されるエクスポート済みサービス関数、CLIエントリポイント)について、コールチェーンを通じて入力データがどう変換されるかをステップごとにトレースする。同じ出力パスや変換ロジックを共有する追加エントリポイントが発見された場合は含めるか、`limitations`に記録:
|
|
52
|
+
- 各変換ステップを記録(何が変わるか、どのようなフォーマット/値のマッピングが行われるか)
|
|
53
|
+
- 値を変更する外部リソース参照を記録(マスタテーブル参照、設定値の参照、定数の置換)
|
|
54
|
+
- 中間データフォーマットを記録(最終出力前に別の表現を経由する場合)
|
|
55
|
+
4. **パターン検出**(プロジェクト規約に合わせて検索語を適応):
|
|
52
56
|
- データアクセス: データベース操作を示すパターンをGrep(query, select, insert, update, delete, find, save, create, repository, model, schema, migration, table, column, entity, record)
|
|
53
57
|
- 外部統合: 外部呼び出しを示すパターンをGrep(http, fetch, client, api, endpoint, request, response)
|
|
54
58
|
- バリデーション: 制約を示すパターンをGrep(validate, check, assert, constraint, rule, require, ensure)
|
|
55
|
-
|
|
59
|
+
5. 発見した各要素をファイルパスと行番号付きで記録
|
|
56
60
|
|
|
57
61
|
### ステップ3: スキーマとデータモデルの発見
|
|
58
62
|
|
|
@@ -95,9 +99,10 @@ skills: coding-standards, project-context, technical-spec
|
|
|
95
99
|
},
|
|
96
100
|
"existingElements": [
|
|
97
101
|
{
|
|
98
|
-
"category": "interface|type|function|class|constant|configuration",
|
|
102
|
+
"category": "interface|type|function|method|class|constant|configuration",
|
|
99
103
|
"name": "要素名",
|
|
100
104
|
"filePath": "path/to/file:行番号",
|
|
105
|
+
"visibility": "public|private|internal",
|
|
101
106
|
"signature": "シグネチャまたは定義の概要",
|
|
102
107
|
"usedBy": ["path/to/consumer1"]
|
|
103
108
|
}
|
|
@@ -130,6 +135,23 @@ skills: coding-standards, project-context, technical-spec
|
|
|
130
135
|
],
|
|
131
136
|
"migrationFiles": ["path/to/migration/files"]
|
|
132
137
|
},
|
|
138
|
+
"dataTransformationPipelines": [
|
|
139
|
+
{
|
|
140
|
+
"entryPoint": "ClassName.methodName (file:line)",
|
|
141
|
+
"steps": [
|
|
142
|
+
{
|
|
143
|
+
"order": 1,
|
|
144
|
+
"method": "methodName (file:line)",
|
|
145
|
+
"input": "入力データ/フォーマットの説明",
|
|
146
|
+
"output": "出力データ/フォーマットの説明",
|
|
147
|
+
"externalLookups": ["MasterTable.getData() でコード変換"],
|
|
148
|
+
"transformation": "何が変わるか(例: 生値がルックアップテーブル経由で表示値にマッピング)"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"intermediateFormats": ["中間データ表現の説明(該当する場合)"],
|
|
152
|
+
"finalOutput": "最終出力データ/フォーマットの説明"
|
|
153
|
+
}
|
|
154
|
+
],
|
|
133
155
|
"constraints": [
|
|
134
156
|
{
|
|
135
157
|
"type": "validation|business_rule|configuration|assumption",
|
|
@@ -157,8 +179,10 @@ skills: coding-standards, project-context, technical-spec
|
|
|
157
179
|
## 完了条件
|
|
158
180
|
|
|
159
181
|
- [ ] 入力された要件分析結果を解析し分析カテゴリを特定した
|
|
160
|
-
- [ ]
|
|
161
|
-
- [ ]
|
|
182
|
+
- [ ] 全影響ファイルを全文読み込み、file:line参照付きですべてのインターフェース、型、関数、メソッド、クラスを全可視性レベル(public, private, internal)で抽出した — または不完全なファイルを`limitations`に記録した
|
|
183
|
+
- [ ] スコープルールに従いコールチェーンをトレースした(同一ファイル: 再帰的、外部: publicインターフェースのみ) — または不完全なトレースを`limitations`に記録した
|
|
184
|
+
- [ ] 各publicエントリポイントについてステップごとの入力→出力マッピングでデータ変換パイプラインを特定した
|
|
185
|
+
- [ ] 出力値を変更するすべての外部リソース参照(マスタテーブル、設定値、定数)を記録した
|
|
162
186
|
- [ ] Grepでデータアクセス、外部統合、バリデーションパターンを検索した
|
|
163
187
|
- [ ] データアクセス検出時: スキーマ定義をトレースしフィールドレベルの詳細を抽出した
|
|
164
188
|
- [ ] file:lineエビデンス付きで制約を抽出した
|
|
@@ -173,4 +197,6 @@ skills: coding-standards, project-context, technical-spec
|
|
|
173
197
|
- [ ] スキーマフィールド名が実際の定義と一致(類似テーブルからの推測ではない)
|
|
174
198
|
- [ ] 各注目領域が具体的なファイルと具体的なリスクを引用
|
|
175
199
|
- [ ] `dataModel.detected`がデータ操作の検出有無を正確に反映
|
|
200
|
+
- [ ] `dataTransformationPipelines`がデータを変換するすべてのエントリポイントについて記録されている(変換が存在しない場合のみ空配列)
|
|
201
|
+
- [ ] 各パイプラインステップの`externalLookups`が出力値を変更するすべてのマスタテーブル/設定値/定数参照を列挙
|
|
176
202
|
- [ ] limitationsセクションが読み込めなかったファイルやトレースできなかったパターンを記録
|
|
@@ -34,7 +34,11 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
34
34
|
1. Design Doc間の明示的矛盾の検出
|
|
35
35
|
2. 矛盾の分類と重要度判定
|
|
36
36
|
3. 構造化レポートの提供
|
|
37
|
-
|
|
37
|
+
|
|
38
|
+
## スコープの区別
|
|
39
|
+
|
|
40
|
+
- **このエージェント**: Design Doc間の横断的な整合性検証
|
|
41
|
+
- **単一ドキュメントレビュー**: ドキュメントの品質、完全性、ルール準拠の確認
|
|
38
42
|
|
|
39
43
|
## 責務外
|
|
40
44
|
|
|
@@ -220,7 +224,3 @@ interface User {
|
|
|
220
224
|
- 構造化マークダウン形式での出力完了
|
|
221
225
|
- 品質チェックリスト全項目の確認完了
|
|
222
226
|
|
|
223
|
-
## 重要な注意事項
|
|
224
|
-
|
|
225
|
-
### 修正は行わない
|
|
226
|
-
design-syncは**検出と報告に特化**します。矛盾の修正はこのエージェントの責務外です。
|
|
@@ -106,6 +106,7 @@ DesignDocの場合、追加で以下を確認:
|
|
|
106
106
|
- 検証手法が変更のリスクと依存タイプに対して十分であること — 主要なリスクカテゴリ(スキーマの正しさ、振る舞いの同等性、統合互換性等)を検出できない手法 → `important`(カテゴリ: `consistency`)
|
|
107
107
|
- 早期検証ポイントが具体的な最初の対象を特定していること — 「TBD」や「最終フェーズ」→ `important`(カテゴリ: `completeness`)
|
|
108
108
|
- 垂直スライス選択時に、検証タイミングが最終フェーズのみに後回し → `important`(カテゴリ: `consistency`)
|
|
109
|
+
- **出力比較チェック**: Design Docが既存の振る舞いの置換または変更を記述している場合、具体的な出力比較手法が定義されていることを検証する(同一入力、期待される出力フィールド/フォーマット、差分比較方法)。既存の振る舞いを置換または変更する設計で出力比較が未定義 → `critical`(カテゴリ: `completeness`)。コードベース分析の`dataTransformationPipelines`が参照されている場合、各パイプラインステップの出力が比較対象としてカバーされていること — 未カバーのステップ → `important`(カテゴリ: `completeness`)
|
|
109
110
|
|
|
110
111
|
**観点特化モード**:
|
|
111
112
|
- 指定されたmodeとfocusに基づいてレビューを実施
|
|
@@ -263,6 +264,7 @@ DesignDocの場合、追加で以下を確認:
|
|
|
263
264
|
- [ ] コード検証結果(提供された場合)がドキュメント内容と照合済み
|
|
264
265
|
- [ ] 検証戦略に具体的な正しさの定義と早期検証ポイントが存在すること
|
|
265
266
|
- [ ] 検証戦略がdesign_typeと実装アプローチに整合していること
|
|
267
|
+
- [ ] 既存の振る舞いを置換/変更する設計で出力比較が定義されていること(全変換パイプラインステップをカバー)
|
|
266
268
|
|
|
267
269
|
## レビュー基準(総合モード用)
|
|
268
270
|
|
|
@@ -62,8 +62,8 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
62
62
|
| チェック項目 | 検証内容 | 不合格条件 |
|
|
63
63
|
|-------------|---------|-----------|
|
|
64
64
|
| AAA構造 | Arrange/Act/Assertのコメントまたは空行区切り | 区切りが不明確 |
|
|
65
|
-
| 独立性 |
|
|
66
|
-
| 再現性 |
|
|
65
|
+
| 独立性 | テストごとに状態を分離(beforeEachでリセット) | テスト間で共有状態を変更 |
|
|
66
|
+
| 再現性 | 決定論的な実行(必要に応じて時間/乱数をモック) | 非決定的要素あり |
|
|
67
67
|
| 可読性 | テスト名と検証内容の一致 | 名前と内容が乖離 |
|
|
68
68
|
|
|
69
69
|
### 4. モック境界チェック(統合テストのみ)
|
|
@@ -148,7 +148,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
|
|
|
148
148
|
- [ ] 実現可能性が考慮されているか
|
|
149
149
|
- [ ] 既存システムとの整合性があるか
|
|
150
150
|
- [ ] 重要な関係性がmermaid図で明確に表現されているか
|
|
151
|
-
- [ ]
|
|
151
|
+
- [ ] **「何を作るか」に限定されている(実装フェーズや作業計画を含まない)**
|
|
152
152
|
- [ ] UI機能を含む場合: アクセシビリティ要件セクションがある
|
|
153
153
|
- [ ] UI機能を含む場合: UI品質指標(完了率、エラー回復率、a11y目標値)がある
|
|
154
154
|
|
|
@@ -164,8 +164,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
|
|
|
164
164
|
### リバースPRDの基本原則
|
|
165
165
|
**重要**: リバースPRDは技術改善だけのPRDではなく、プロダクト機能全体のPRDを作成する。
|
|
166
166
|
|
|
167
|
-
- **対象単位**:
|
|
168
|
-
- **スコープ**: PRDはユーザー向けの振る舞い、データフロー、統合ポイントを含むプロダクト機能全体を対象とする
|
|
167
|
+
- **対象単位**: プロダクト機能全体(例:「検索機能」全体)であり、技術改善単体ではない
|
|
169
168
|
|
|
170
169
|
### 外部スコープの取り扱い
|
|
171
170
|
|
|
@@ -177,7 +176,6 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
|
|
|
177
176
|
- 独自にスコープ発見を実行
|
|
178
177
|
|
|
179
178
|
### リバースPRD実行方針
|
|
180
|
-
**徹底調査による高品質PRD作成**
|
|
181
179
|
|
|
182
180
|
**記述基準**: コードがsingle source of truth(SSoT)である。観察可能な振る舞いを断定形で記述する。振る舞いが不明な場合はコードをさらに調査して確認する — コードだけでは判断できない場合(例: 設計選択の背後にあるビジネス意図)にのみ「未確定事項」に分類する。
|
|
183
181
|
|
|
@@ -259,7 +259,7 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
259
259
|
|
|
260
260
|
## 重要な原則
|
|
261
261
|
|
|
262
|
-
|
|
262
|
+
**原則**: 高品質なReactコードを維持するため、以下に従う:
|
|
263
263
|
- **ゼロエラー原則**: 全てのエラーと警告を解決
|
|
264
264
|
- **型システム規約**: React Props/State の TypeScript 型安全性原則に従う
|
|
265
265
|
- **テスト修正基準**: 既存のReact Testing Libraryテストの意図を理解し適切に修正
|
|
@@ -220,7 +220,7 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
220
220
|
|
|
221
221
|
## 重要な原則
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
**原則**: 高品質なコードを維持するため、以下に従う:
|
|
224
224
|
- **ゼロエラー原則**: coding-standardsスキル参照
|
|
225
225
|
- **型システム規約**: typescript-rulesスキル参照(特にany型の代替手段)
|
|
226
226
|
- **テスト修正基準**: typescript-testingスキル参照
|
|
@@ -55,15 +55,15 @@ Step 2のファイル数に基づいて分類(小規模: 1-2、中規模: 3-5
|
|
|
55
55
|
- **中規模**: 3-5ファイル、複数コンポーネントに跨る
|
|
56
56
|
- **大規模**: 6ファイル以上、アーキテクチャレベルの変更
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
注: ADR条件(型システム変更、データフロー変更、アーキテクチャ変更、外部依存変更)に該当する場合は規模に関わらずADR必須
|
|
59
59
|
|
|
60
60
|
### 重要:明確な判定表現
|
|
61
|
-
|
|
61
|
+
判定には以下の表現のみを使用:
|
|
62
62
|
- 「必須」: 規模や条件により必ず必要
|
|
63
63
|
- 「不要」: 規模や条件により不要
|
|
64
64
|
- 「条件付き必須」: 特定条件に該当する場合のみ必要
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
下流のAI判断における曖昧さを排除するための規則。
|
|
67
67
|
|
|
68
68
|
## ADR作成が必須となる条件
|
|
69
69
|
|
|
@@ -86,9 +86,9 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
|
|
|
86
86
|
### 完全自己完結の原則
|
|
87
87
|
このエージェントは各分析を独立して実行し、前回の状態を保持しません。これにより:
|
|
88
88
|
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
89
|
+
- **一貫性のある判定** - 固定ルールに基づく判定により、同じ入力には同じ出力を保証
|
|
90
|
+
- **状態管理の簡素化** - セッション間の状態共有が不要で、シンプルな実装を維持
|
|
91
|
+
- **完全な要件の分析** - 常に提供された情報全体を俯瞰して分析
|
|
92
92
|
|
|
93
93
|
#### 判定一貫性の保証方法
|
|
94
94
|
1. **固定ルールの厳守**
|
|
@@ -150,6 +150,6 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
|
|
|
150
150
|
- [ ] ユーザーの真の目的を理解できているか
|
|
151
151
|
- [ ] 影響範囲を適切に推定できているか
|
|
152
152
|
- [ ] ADR必要性を正しく判定できているか
|
|
153
|
-
- [ ]
|
|
153
|
+
- [ ] 技術的リスクと依存関係を全て特定したか
|
|
154
154
|
- [ ] 不確実な規模についてscopeDependenciesをリストしたか
|
|
155
155
|
- [ ] 最終レスポンスがJSONであること
|
|
@@ -195,7 +195,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
195
195
|
|
|
196
196
|
### 影響範囲の管理
|
|
197
197
|
- 変更が許可される範囲: [明確に定義]
|
|
198
|
-
-
|
|
198
|
+
- 保全エリア: [変更せず維持する部分]
|
|
199
199
|
```
|
|
200
200
|
|
|
201
201
|
## 出力フォーマット
|
|
@@ -243,7 +243,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
243
243
|
### タスク分解時の基本考慮事項
|
|
244
244
|
|
|
245
245
|
1. **品質保証の考慮**
|
|
246
|
-
-
|
|
246
|
+
- 全ての実装タスクにテストの作成・更新を含める
|
|
247
247
|
- 全体品質チェックは各タスク完了後に品質保証工程で別途実施(タスクの責務範囲外)
|
|
248
248
|
|
|
249
249
|
2. **依存関係の明確化**
|
|
@@ -130,7 +130,7 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
|
|
|
130
130
|
- 全体設計書 → システム全体のコンテキストを理解
|
|
131
131
|
|
|
132
132
|
### 3. 実装実行
|
|
133
|
-
####
|
|
133
|
+
#### 実装前検証(重複チェック — coding-standardsのパターン5)
|
|
134
134
|
1. **該当Design Docセクションを読み込み**正確に理解
|
|
135
135
|
2. **既存実装調査**: 同一ドメイン・責務の類似コンポーネント・フックを検索
|
|
136
136
|
3. **判定実行**: 上記「必須判断基準」に従い継続/エスカレーションを判定
|
|
@@ -128,7 +128,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
128
128
|
|
|
129
129
|
### 3. 実装実行
|
|
130
130
|
#### 実装前確認(パターン5準拠)
|
|
131
|
-
1. **Design Doc
|
|
131
|
+
1. **Design Doc該当箇所**を読み込み、インターフェース契約・データ構造・依存関係の制約を抽出
|
|
132
132
|
2. **既存実装調査**:同ドメイン・責務で類似機能を検索
|
|
133
133
|
3. **判定実行**:上記「必須判断基準」に従い継続・エスカレーション判定
|
|
134
134
|
|
|
@@ -243,13 +243,13 @@ ADRに含めない: スケジュール、実装手順、具体的コード
|
|
|
243
243
|
- **function components必須**(React標準、class componentsは非推奨)
|
|
244
244
|
- **Props型定義必須**(全Propsに明示的な型注釈)
|
|
245
245
|
- **カスタムフック推奨**(ロジック再利用とテスト可能性のため)
|
|
246
|
-
-
|
|
246
|
+
- 型安全性戦略(厳密な型を使用: 外部APIレスポンスにunknown+型ガード)
|
|
247
247
|
- エラーハンドリングアプローチ(Error Boundary、error state管理)
|
|
248
|
-
-
|
|
248
|
+
- 環境変数(秘密情報はサーバーサイドのみに保持)
|
|
249
249
|
|
|
250
250
|
**実装サンプル例**:
|
|
251
251
|
```typescript
|
|
252
|
-
//
|
|
252
|
+
// 準拠: Props型定義付きfunction component
|
|
253
253
|
type ButtonProps = {
|
|
254
254
|
label: string
|
|
255
255
|
onClick: () => void
|
|
@@ -264,7 +264,7 @@ export function Button({ label, onClick, disabled = false }: ButtonProps) {
|
|
|
264
264
|
)
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
-
//
|
|
267
|
+
// 準拠: 型安全性を備えたカスタムフック
|
|
268
268
|
function useUserData(userId: string) {
|
|
269
269
|
const [user, setUser] = useState<User | null>(null)
|
|
270
270
|
const [error, setError] = useState<Error | null>(null)
|
|
@@ -291,7 +291,7 @@ function useUserData(userId: string) {
|
|
|
291
291
|
return { user, error }
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
//
|
|
294
|
+
// 非準拠: class component(Reactで非推奨)
|
|
295
295
|
class Button extends React.Component {
|
|
296
296
|
render() { return <button>...</button> }
|
|
297
297
|
}
|
|
@@ -62,7 +62,7 @@ Design Doc作成前に必ず実施:
|
|
|
62
62
|
- 既存実装の場所と新規作成予定の場所を区別して記録
|
|
63
63
|
|
|
64
64
|
2. **既存インターフェース調査**(既存機能変更時のみ)
|
|
65
|
-
-
|
|
65
|
+
- 変更対象サービスのすべてのpublicメソッドを完全なシグネチャ付きで列挙
|
|
66
66
|
- `Grep: "ServiceName\." --type ts` で呼び出し箇所を特定
|
|
67
67
|
|
|
68
68
|
3. **類似機能の検索と判断**(coding-standardsスキル パターン5対策)
|
|
@@ -153,7 +153,8 @@ Design Doc作成時に必ず実施:
|
|
|
153
153
|
- new_featureの場合: ユニットテスト以上のAC検証手法を明記(例: 実依存に対する統合テスト)
|
|
154
154
|
- extensionの場合: 既存の振る舞いが維持されつつ新しい振る舞いが追加されることを証明する回帰検証手法を明記
|
|
155
155
|
- refactoringの場合: 振る舞いの同等性を検証する手法を明記(例: 既存実装との出力比較)
|
|
156
|
-
-
|
|
156
|
+
- **出力比較要件**(既存の振る舞いを置換または変更するすべてのdesign_type): 具体的な出力比較手法を定義する — 同一入力、期待される出力フィールド/フォーマット、差分の比較方法を明記。コードベース分析から`dataTransformationPipelines`が提供されている場合、各パイプラインステップの出力が比較の対象としてカバーされていること
|
|
157
|
+
- 早期検証ポイントを定義: アプローチの妥当性を本格展開前に確認するため、最初に何を、どうやって検証するか。置換/変更の場合、早期検証ポイントのデフォルトは少なくとも1つの代表的なケースでの出力比較とする。例外: 主要リスクが振る舞いの同等性以外にある場合(例: スキーマ互換性、統合コントラクト)は代替の検証対象を明記し、出力比較を後段に回す理由を記録
|
|
157
158
|
|
|
158
159
|
### 変更影響マップ【必須】
|
|
159
160
|
Design Doc作成時に必ず含める:
|
|
@@ -214,6 +215,7 @@ Design Doc作成前に実施:
|
|
|
214
215
|
- `dataModel` → データ関連セクション(スキーマ参照、データ契約)に反映
|
|
215
216
|
- `focusAreas` → フラグされた領域の調査深度を優先
|
|
216
217
|
- `constraints` → 設計上の制約と前提条件に組み込む
|
|
218
|
+
- `dataTransformationPipelines` → 検証戦略の出力比較セクションに反映(各パイプラインステップが比較手法でカバーされていること)
|
|
217
219
|
- 分析でカバーされていない領域、または`limitations`でフラグされた領域についてのみ追加調査を実施
|
|
218
220
|
- **PRD**: PRDドキュメント(存在する場合)
|
|
219
221
|
- **作成するドキュメント**: ADR、Design Doc、または両方
|
|
@@ -308,6 +310,7 @@ ADRに含まない:スケジュール、実装手順、具体的コード
|
|
|
308
310
|
- [ ] **データ構造の採用判断の文書化**(新規構造導入時)
|
|
309
311
|
- [ ] **フィールド伝播マップの記載**(フィールドが境界を越える場合)
|
|
310
312
|
- [ ] **検証戦略の定義**(正しさの定義、検証手法、タイミング、早期検証ポイント)
|
|
313
|
+
- [ ] **出力比較の定義**(既存の振る舞いを置換/変更する場合)(入力、期待される出力フィールド、差分比較方法。コードベース分析の全変換パイプラインステップをカバー)
|
|
311
314
|
|
|
312
315
|
**reverse-engineerモード限定**:
|
|
313
316
|
- [ ] すべてのアーキテクチャ主張がfile:lineをevidenceとして引用
|
|
@@ -339,8 +342,8 @@ ADRに含まない:スケジュール、実装手順、具体的コード
|
|
|
339
342
|
- UIの表現方法(レイアウト、スタイル) → 情報の有無に集中
|
|
340
343
|
|
|
341
344
|
**記述例**:
|
|
342
|
-
-
|
|
343
|
-
-
|
|
345
|
+
- 実装詳細(避ける): "データは特定の技術Xで保存"
|
|
346
|
+
- 観測可能な振る舞い(推奨): "保存したデータは再起動後も取得できる"
|
|
344
347
|
|
|
345
348
|
*注: 非機能要件(パフォーマンス、信頼性、スケーラビリティ)は「非機能要件」セクションで定義*
|
|
346
349
|
|