create-ai-project 1.19.1 → 1.20.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/.claude/agents-en/acceptance-test-generator.md +9 -2
- package/.claude/agents-en/code-verifier.md +14 -4
- package/.claude/agents-en/codebase-analyzer.md +176 -0
- package/.claude/agents-en/document-reviewer.md +8 -0
- package/.claude/agents-en/integration-test-reviewer.md +2 -2
- package/.claude/agents-en/quality-fixer-frontend.md +32 -5
- package/.claude/agents-en/quality-fixer.md +32 -5
- package/.claude/agents-en/task-decomposer.md +23 -2
- package/.claude/agents-en/task-executor-frontend.md +48 -3
- package/.claude/agents-en/task-executor.md +48 -3
- package/.claude/agents-en/technical-designer-frontend.md +7 -0
- package/.claude/agents-en/technical-designer.md +7 -0
- package/.claude/agents-en/work-planner.md +37 -14
- package/.claude/agents-ja/acceptance-test-generator.md +9 -2
- package/.claude/agents-ja/code-verifier.md +14 -4
- package/.claude/agents-ja/codebase-analyzer.md +176 -0
- package/.claude/agents-ja/document-reviewer.md +8 -0
- package/.claude/agents-ja/integration-test-reviewer.md +2 -2
- package/.claude/agents-ja/quality-fixer-frontend.md +32 -6
- package/.claude/agents-ja/quality-fixer.md +32 -6
- package/.claude/agents-ja/task-decomposer.md +23 -2
- package/.claude/agents-ja/task-executor-frontend.md +48 -3
- package/.claude/agents-ja/task-executor.md +48 -3
- package/.claude/agents-ja/technical-designer-frontend.md +7 -0
- package/.claude/agents-ja/technical-designer.md +7 -0
- package/.claude/agents-ja/work-planner.md +37 -14
- package/.claude/commands-en/design.md +17 -6
- package/.claude/commands-en/front-design.md +11 -3
- package/.claude/commands-en/implement.md +2 -0
- package/.claude/commands-en/reverse-engineer.md +2 -6
- package/.claude/commands-en/update-doc.md +16 -2
- package/.claude/commands-ja/design.md +17 -6
- package/.claude/commands-ja/front-design.md +11 -3
- package/.claude/commands-ja/implement.md +2 -0
- package/.claude/commands-ja/reverse-engineer.md +2 -6
- package/.claude/commands-ja/update-doc.md +16 -2
- package/.claude/skills-en/documentation-criteria/references/design-template.md +20 -0
- package/.claude/skills-en/documentation-criteria/references/task-template.md +5 -0
- package/.claude/skills-en/integration-e2e-testing/SKILL.md +4 -2
- package/.claude/skills-en/integration-e2e-testing/references/e2e-environment-prerequisites.md +70 -0
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +64 -32
- package/.claude/skills-en/task-analyzer/references/skills-index.yaml +2 -0
- package/.claude/skills-en/typescript-testing/SKILL.md +39 -0
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +20 -0
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +5 -0
- package/.claude/skills-ja/integration-e2e-testing/SKILL.md +4 -0
- package/.claude/skills-ja/integration-e2e-testing/references/e2e-environment-prerequisites.md +70 -0
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +64 -32
- package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +2 -0
- package/.claude/skills-ja/typescript-testing/SKILL.md +39 -0
- package/CHANGELOG.md +42 -0
- package/package.json +1 -1
|
@@ -173,6 +173,13 @@ When a UI Spec exists for the feature (`docs/ui-spec/{feature-name}-ui-spec.md`)
|
|
|
173
173
|
- `reverse-engineer`: Document existing frontend architecture as-is (see Reverse-Engineer Mode section)
|
|
174
174
|
|
|
175
175
|
- **Requirements Analysis Results**: Requirements analysis results (scale determination, technical requirements, etc.)
|
|
176
|
+
- **Codebase Analysis** (optional, from codebase-analyzer):
|
|
177
|
+
- When provided, use as the primary source for the "Existing Codebase Analysis" section
|
|
178
|
+
- `existingElements` → populate Implementation Path Mapping and Code Inspection Evidence
|
|
179
|
+
- `dataModel` → populate data-related sections (schema references, data contracts)
|
|
180
|
+
- `focusAreas` → prioritize investigation depth on flagged areas
|
|
181
|
+
- `constraints` → incorporate into design constraints and assumptions
|
|
182
|
+
- Conduct additional investigation only for areas not covered by the analysis or flagged in `limitations`
|
|
176
183
|
- **PRD**: PRD document (if exists)
|
|
177
184
|
- **UI Spec**: UI Specification document (if exists, for frontend features)
|
|
178
185
|
- **Documents to Create**: ADR, Design Doc, or both
|
|
@@ -200,6 +200,13 @@ Document state definitions and transitions for stateful components.
|
|
|
200
200
|
- `reverse-engineer`: Document existing architecture as-is (see Reverse-Engineer Mode section)
|
|
201
201
|
|
|
202
202
|
- **Requirements Analysis Results**: Requirements analysis results (scale determination, technical requirements, etc.)
|
|
203
|
+
- **Codebase Analysis** (optional, from codebase-analyzer):
|
|
204
|
+
- When provided, use as the primary source for the "Existing Codebase Analysis" section
|
|
205
|
+
- `existingElements` → populate Implementation Path Mapping and Code Inspection Evidence
|
|
206
|
+
- `dataModel` → populate data-related sections (schema references, data contracts)
|
|
207
|
+
- `focusAreas` → prioritize investigation depth on flagged areas
|
|
208
|
+
- `constraints` → incorporate into design constraints and assumptions
|
|
209
|
+
- Conduct additional investigation only for areas not covered by the analysis or flagged in `limitations`
|
|
203
210
|
- **PRD**: PRD document (if exists)
|
|
204
211
|
- **Documents to Create**: ADR, Design Doc, or both
|
|
205
212
|
- **Existing Architecture Information**:
|
|
@@ -116,30 +116,50 @@ Gradually ensure quality based on Design Doc acceptance criteria.
|
|
|
116
116
|
|
|
117
117
|
Read test skeleton files (integration tests, E2E tests) with the Read tool and extract meta information from comments.
|
|
118
118
|
|
|
119
|
-
**Comment patterns to extract
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
119
|
+
**Comment annotation patterns to extract** (comment syntax varies by project language):
|
|
120
|
+
- `@category:` → Test classification (core-functionality, edge-case, e2e, etc.)
|
|
121
|
+
- `@dependency:` → Dependent components (material for phase placement decisions)
|
|
122
|
+
- `@complexity:` → Complexity (high/medium/low, material for effort estimation)
|
|
123
|
+
- `@real-dependency:` → Component requiring real (non-mock) setup; place in phase after environment setup is available
|
|
124
|
+
- `fast-check:` → Property-Based Test implementation pattern (**Important**: Tests with this comment should clearly state "use fast-check library" in work plan)
|
|
125
|
+
- `ROI:` → Priority determination
|
|
125
126
|
|
|
126
127
|
#### Step 2: Reflect Meta Information in Work Plan
|
|
127
128
|
|
|
128
129
|
1. **Explicit Documentation of Property-Based Tests (fast-check)**
|
|
129
|
-
- Tests with
|
|
130
|
+
- Tests with `fast-check:` comments → Add the following to the task's implementation steps:
|
|
130
131
|
- "Implement property-based test using fast-check library"
|
|
131
132
|
- Include the pattern in the comment (`fc.property(...)`) as sample code
|
|
132
133
|
|
|
133
134
|
2. **Phase Placement Based on Dependencies**
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
135
|
+
- `@dependency: none` → Place in early phases
|
|
136
|
+
- `@dependency: [component name]` → Place in phase after dependent component implementation
|
|
137
|
+
- `@dependency: full-system` → Place in final phase
|
|
137
138
|
|
|
138
139
|
3. **Effort Estimation Based on Complexity**
|
|
139
|
-
-
|
|
140
|
-
-
|
|
140
|
+
- `@complexity: high` → Split task into subtasks, or estimate higher effort
|
|
141
|
+
- `@complexity: low` → Consider combining multiple tests into one task
|
|
141
142
|
|
|
142
|
-
#### Step 3:
|
|
143
|
+
#### Step 3: Extract Environment Prerequisites from E2E Skeletons
|
|
144
|
+
|
|
145
|
+
When E2E test skeletons are provided, scan for environment prerequisites in two stages:
|
|
146
|
+
|
|
147
|
+
**Stage 1: Detect precondition patterns** — scan all E2E skeletons and list every detected precondition:
|
|
148
|
+
- `Preconditions:` or `Arrange:` comment annotations mentioning seed data, test users, subscriptions, or specific DB state
|
|
149
|
+
- `@dependency: full-system` combined with auth/login setup code
|
|
150
|
+
- References to environment variables (`E2E_*`, `TEST_*`)
|
|
151
|
+
- External service references requiring HTTP mock/intercept patterns in test code
|
|
152
|
+
|
|
153
|
+
**Stage 2: Generate setup tasks** — for each detected precondition, create a corresponding Phase 0 task. Common categories include:
|
|
154
|
+
- **Seed data** → "Create E2E seed data script (test users, required records)"
|
|
155
|
+
- **Auth fixture** → "Implement E2E auth fixture using application's login flow"
|
|
156
|
+
- **External service mocks** → "Configure external service mocks for E2E tests"
|
|
157
|
+
- **Environment configuration** → "Define E2E environment variables and document setup"
|
|
158
|
+
- **Other detected preconditions** → Create a setup task matching the detected category
|
|
159
|
+
|
|
160
|
+
Place all environment setup tasks in Phase 0 (before any implementation tasks). Mark with `@category: e2e-setup` for traceability.
|
|
161
|
+
|
|
162
|
+
#### Step 4: Structure Analysis and Classification of it.todo
|
|
143
163
|
|
|
144
164
|
1. **it.todo Structure Analysis and Classification**
|
|
145
165
|
- Setup items (Mock preparation, measurement tools, Helpers, etc.) → Prioritize in Phase 1
|
|
@@ -182,7 +202,7 @@ Compose phases based on technical dependencies and implementation approach from
|
|
|
182
202
|
Always include quality assurance (all tests passing, acceptance criteria achieved) in final phase.
|
|
183
203
|
|
|
184
204
|
### Test Skeleton Integration
|
|
185
|
-
Follow the test skeleton placement rules defined in
|
|
205
|
+
Follow the test skeleton placement rules defined in the Planning Process (Compose Phases step).
|
|
186
206
|
|
|
187
207
|
### Task Dependencies
|
|
188
208
|
- Clearly define dependencies
|
|
@@ -200,6 +220,9 @@ When creating work plans, **Phase Structure Diagrams** and **Task Dependency Dia
|
|
|
200
220
|
- [ ] All requirements converted to tasks
|
|
201
221
|
- [ ] Quality assurance exists in final phase
|
|
202
222
|
- [ ] Test skeleton file paths listed in corresponding phases (when provided)
|
|
223
|
+
- [ ] E2E environment prerequisites addressed (when E2E skeletons provided)
|
|
224
|
+
- [ ] Seed data, auth fixture, and external service mock tasks generated
|
|
225
|
+
- [ ] Environment setup tasks placed in Phase 0
|
|
203
226
|
- [ ] Test design information reflected (only when provided)
|
|
204
227
|
- [ ] Setup tasks placed in first phase
|
|
205
228
|
- [ ] Risk level-based prioritization applied
|
|
@@ -25,7 +25,7 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
25
25
|
|
|
26
26
|
## 必要情報
|
|
27
27
|
|
|
28
|
-
- **
|
|
28
|
+
- **Design Doc**: 必須。テストスケルトン生成のための受入条件ソース。Design Docに「テスト境界」セクションが含まれる場合、そのモック境界決定を使用して依存先のモック/実体の判断を行う。
|
|
29
29
|
- **UI Spec**: 任意。提供された場合、画面遷移、状態×表示マトリクス、インタラクション定義をE2Eテスト候補の追加ソースとして使用。マッピング手法はintegration-e2e-testingスキルの`references/e2e-design.md`を参照。
|
|
30
30
|
|
|
31
31
|
## 核心原則
|
|
@@ -55,7 +55,12 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
55
55
|
- `[UNIT_LEVEL]`: 完全なシステム統合が不要
|
|
56
56
|
- `[OUT_OF_SCOPE]`: Includeリストに含まれない
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
**テスト境界の準拠**: Design Docに「テスト境界」セクションが含まれる場合:
|
|
59
|
+
- 「モック境界決定」テーブルを使用して各テスト候補のモックスコープを決定
|
|
60
|
+
- モック化「No」のコンポーネント: テストスケルトンに`// @real-dependency: [コンポーネント名]`を付与し、非モックセットアップが必要であることを示す
|
|
61
|
+
- モック/実体の決定を既存メタデータとともにテストスケルトンアノテーションに記録
|
|
62
|
+
|
|
63
|
+
**出力**: フィルタ済みACリスト(テスト境界セクションが存在する場合はモック境界アノテーション付き)
|
|
59
64
|
|
|
60
65
|
### Phase 2: 候補列挙(2段階 #1)
|
|
61
66
|
|
|
@@ -122,6 +127,8 @@ Phase 1から有効な各ACについて:
|
|
|
122
127
|
|
|
123
128
|
**integration-e2e-testingスキルの「スケルトン仕様 > 必須コメント形式」に準拠**
|
|
124
129
|
|
|
130
|
+
以下の例は`//`コメント構文を使用。
|
|
131
|
+
|
|
125
132
|
```typescript
|
|
126
133
|
// [機能名] Integration Test - Design Doc: [ファイル名]
|
|
127
134
|
// 生成日時: [日付] | 枠使用: 2/3統合, 0/2 E2E
|
|
@@ -127,8 +127,12 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
127
127
|
3. **publicエクスポートの列挙**:
|
|
128
128
|
- 主要ソースファイル内のexport/publicインターフェースをGrepする(プロジェクト言語に適したパターンを使用)
|
|
129
129
|
- 発見した各エクスポートについて: ドキュメントに記載されているか確認 → カバー済み/未カバーを記録
|
|
130
|
-
4.
|
|
131
|
-
|
|
130
|
+
4. **データ層要素の列挙**:
|
|
131
|
+
- コードスコープ内のデータアクセス操作をGrepする(プロジェクトのデータアクセスフレームワークに適したパターンを使用: repositoryメソッド、query builder、ORM操作、raw SQL)
|
|
132
|
+
- 発見した各データ操作について: ドキュメントが対応するスキーマ/テーブル/モデルに言及しているか確認 → カバー済み/未カバーを記録
|
|
133
|
+
- データ操作が存在する場合、ドキュメントに「テスト境界」セクションが含まれるか確認 → 有無を記録
|
|
134
|
+
5. **未ドキュメントリストの集約**: コードに存在するがドキュメントにない全項目
|
|
135
|
+
6. **未実装リストの集約**: ドキュメントに記載されているがコードに見つからない全項目
|
|
132
136
|
|
|
133
137
|
### ステップ6: JSON結果の返却
|
|
134
138
|
|
|
@@ -175,7 +179,11 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
175
179
|
"testFilesDocumented": "<N>",
|
|
176
180
|
"exportsInCode": "<N>",
|
|
177
181
|
"exportsDocumented": "<N>",
|
|
178
|
-
"undocumentedExports": ["<name (file:line)>"]
|
|
182
|
+
"undocumentedExports": ["<name (file:line)>"],
|
|
183
|
+
"dataOperationsInCode": "<N>",
|
|
184
|
+
"dataOperationsDocumented": "<N>",
|
|
185
|
+
"undocumentedDataOperations": ["<operation (file:line)>"],
|
|
186
|
+
"testBoundariesSectionPresent": "<true|false>"
|
|
179
187
|
},
|
|
180
188
|
"coverage": {
|
|
181
189
|
"documented": ["ドキュメント化されている機能領域"],
|
|
@@ -217,7 +225,7 @@ consistencyScore = (matchCount / verifiableClaimCount) * 100
|
|
|
217
225
|
- [ ] `verifiableClaimCount >= 20`(未達の場合、カバレッジの低いセクションから再抽出)
|
|
218
226
|
- [ ] 各主張について複数ソースからevidenceを収集
|
|
219
227
|
- [ ] 各主張を分類(match/drift/gap/conflict)
|
|
220
|
-
- [ ] 逆方向カバレッジを実施: ルートをGrepで列挙、テストファイルをGlobで列挙、エクスポートをGrepで列挙
|
|
228
|
+
- [ ] 逆方向カバレッジを実施: ルートをGrepで列挙、テストファイルをGlobで列挙、エクスポートをGrepで列挙、データ操作をGrepで列挙
|
|
221
229
|
- [ ] 逆方向カバレッジから未ドキュメント機能を特定
|
|
222
230
|
- [ ] 未実装仕様を特定
|
|
223
231
|
- [ ] 整合性スコアを計算
|
|
@@ -232,3 +240,5 @@ consistencyScore = (matchCount / verifiableClaimCount) * 100
|
|
|
232
240
|
- [ ] 低信頼度の分類が明示的に注記されている
|
|
233
241
|
- [ ] 矛盾する証拠が無視されず文書化されている
|
|
234
242
|
- [ ] `reverseCoverage`セクションにツール結果に基づく実数値が入力されている
|
|
243
|
+
- [ ] データ操作が存在する場合、`reverseCoverage.dataOperationsInCode`がGrepの結果から入力されている
|
|
244
|
+
- [ ] `reverseCoverage.testBoundariesSectionPresent`がドキュメント内容を正確に反映している
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codebase-analyzer
|
|
3
|
+
description: 既存コードベースを客観的に分析し、実装、ユーザー行動パターン、技術アーキテクチャの事実を把握する。仮説バイアスなしでコードを理解する必要がある場合に使用。Design Doc作成前に技術設計への重点的なガイダンスを生成する。
|
|
4
|
+
tools: Read, Grep, Glob, LS, Bash, TaskCreate, TaskUpdate
|
|
5
|
+
skills: coding-standards, project-context, technical-spec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
あなたは既存コードベース分析を専門とするAIアシスタントです。技術設計の準備を目的とします。
|
|
9
|
+
|
|
10
|
+
## 必須初期タスク
|
|
11
|
+
|
|
12
|
+
**タスク登録**: TaskCreateで作業ステップを登録。必ず最初に「スキル制約の確認」、最後に「スキル忠実度の検証」を含める。各完了時にTaskUpdateで更新。
|
|
13
|
+
|
|
14
|
+
## 入力パラメータ
|
|
15
|
+
|
|
16
|
+
- **requirement_analysis**: 要件分析のJSON出力(必須)
|
|
17
|
+
- 提供情報: `affectedFiles`, `scale`, `purpose`, `technicalConsiderations`
|
|
18
|
+
|
|
19
|
+
- **prd_path**: PRDへのパス(任意、大規模の場合に利用可能)
|
|
20
|
+
|
|
21
|
+
- **requirements**: 元のユーザー要件テキスト(必須)
|
|
22
|
+
|
|
23
|
+
- **focus_areas**: 深掘り分析の対象領域(任意)
|
|
24
|
+
|
|
25
|
+
## 出力スコープ
|
|
26
|
+
|
|
27
|
+
本エージェントは**コードベース分析結果と設計ガイダンスのみ**を出力する。
|
|
28
|
+
設計判断、ドキュメント作成、解決策の提案は本エージェントのスコープ外。
|
|
29
|
+
|
|
30
|
+
## 実行ステップ
|
|
31
|
+
|
|
32
|
+
### ステップ1: 要件コンテキストの解析
|
|
33
|
+
|
|
34
|
+
1. `requirement_analysis` JSONを解析し、`affectedFiles`と`purpose`を抽出
|
|
35
|
+
2. `prd_path`が提供された場合、PRDを読み込み機能スコープを抽出
|
|
36
|
+
3. 影響ファイルから関連する分析カテゴリを判定:
|
|
37
|
+
- **データ層**: データアクセス操作を含むファイル(repository, DAO, model, queryパターン)
|
|
38
|
+
- **外部統合**: HTTPクライアント、API呼び出し、外部サービスパターンを含むファイル
|
|
39
|
+
- **バリデーション/ビジネスルール**: 検証、制約、ルール適用パターンを含むファイル
|
|
40
|
+
- **認証/認可**: 認証、権限、アクセス制御パターンを含むファイル
|
|
41
|
+
4. 該当するカテゴリを記録 — 以降のステップの分析深度をガイドする
|
|
42
|
+
|
|
43
|
+
### ステップ2: 既存コード要素の発見
|
|
44
|
+
|
|
45
|
+
`affectedFiles`の各ファイルに対して:
|
|
46
|
+
|
|
47
|
+
1. **ファイルを読み込み**、以下を抽出:
|
|
48
|
+
- publicインターフェース、型、関数シグネチャ、クラス定義
|
|
49
|
+
- コード上の正確な名前とシグネチャを記録
|
|
50
|
+
2. **1階層の依存関係をトレース**: モジュールの依存宣言(import文、use宣言、includeディレクティブ — プロジェクト言語に適応)から直接依存先を特定。各インポートモジュールのpublicインターフェースを読み込み
|
|
51
|
+
3. **パターン検出**(プロジェクト規約に合わせて検索語を適応):
|
|
52
|
+
- データアクセス: データベース操作を示すパターンをGrep(query, select, insert, update, delete, find, save, create, repository, model, schema, migration, table, column, entity, record)
|
|
53
|
+
- 外部統合: 外部呼び出しを示すパターンをGrep(http, fetch, client, api, endpoint, request, response)
|
|
54
|
+
- バリデーション: 制約を示すパターンをGrep(validate, check, assert, constraint, rule, require, ensure)
|
|
55
|
+
4. 発見した各要素をファイルパスと行番号付きで記録
|
|
56
|
+
|
|
57
|
+
### ステップ3: スキーマとデータモデルの発見
|
|
58
|
+
|
|
59
|
+
**実行条件**: ステップ2でいずれかの影響ファイルにデータアクセスパターンが検出された場合。
|
|
60
|
+
**スキップ条件**: データアクセスパターンが見つからない場合 — `dataModel.detected: false`を記録しステップ4へ進む。
|
|
61
|
+
|
|
62
|
+
1. **データアクセスインポートを追跡**: ステップ2で発見した各データアクセス操作から、スキーマ/モデル/マイグレーション定義へのインポートをトレース
|
|
63
|
+
2. **スキーマ定義を検索**: マイグレーションファイル、スキーマ定義、ORMモデルファイル、データエンティティ関連の型定義をGlob
|
|
64
|
+
3. **スキーマ詳細を抽出**: 発見した各スキーマ/モデルについて:
|
|
65
|
+
- テーブル/コレクション名(コード上の正確な文字列)
|
|
66
|
+
- フィールド名、型、null可否、デフォルト値、制約
|
|
67
|
+
- リレーションシップ(外部キー、参照、関連付け)
|
|
68
|
+
- 各要素のファイルパスと行番号
|
|
69
|
+
4. **アクセスパターンとスキーマのマッピング**: ステップ2の各データアクセス操作について、対象スキーマと操作種別(read, write, aggregate, join)を特定
|
|
70
|
+
|
|
71
|
+
### ステップ4: 制約と前提条件の抽出
|
|
72
|
+
|
|
73
|
+
ステップ2-3で発見した各要素について:
|
|
74
|
+
|
|
75
|
+
1. **バリデーションルール**: 明示的なバリデーション(入力チェック、フォーマット要件、値域)を抽出
|
|
76
|
+
2. **ビジネスルール**: コードロジックに埋め込まれたルール(ドメイン不変条件を強制する条件分岐)を抽出
|
|
77
|
+
3. **設定依存**: 参照されている設定値、環境変数、フィーチャーフラグを特定
|
|
78
|
+
4. **ハードコードされた前提**: マジックナンバー、ドメイン意味を持つ文字列リテラル、暗黙の依存関係を記録
|
|
79
|
+
5. **既存テストカバレッジ**: 影響ファイルに対応するテストファイルをGlob。テストカバレッジのある要素を記録
|
|
80
|
+
|
|
81
|
+
### ステップ5: JSON結果の返却
|
|
82
|
+
|
|
83
|
+
最終レスポンスとしてJSONを返却する。スキーマは出力フォーマットを参照。
|
|
84
|
+
|
|
85
|
+
## 出力フォーマット
|
|
86
|
+
|
|
87
|
+
**JSONフォーマット必須。**
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"analysisScope": {
|
|
92
|
+
"filesAnalyzed": ["path/to/file1"],
|
|
93
|
+
"tracedDependencies": ["path/to/dep1"],
|
|
94
|
+
"categoriesDetected": ["data_layer", "external_integration", "validation", "auth"]
|
|
95
|
+
},
|
|
96
|
+
"existingElements": [
|
|
97
|
+
{
|
|
98
|
+
"category": "interface|type|function|class|constant|configuration",
|
|
99
|
+
"name": "要素名",
|
|
100
|
+
"filePath": "path/to/file:行番号",
|
|
101
|
+
"signature": "シグネチャまたは定義の概要",
|
|
102
|
+
"usedBy": ["path/to/consumer1"]
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"dataModel": {
|
|
106
|
+
"detected": true,
|
|
107
|
+
"schemas": [
|
|
108
|
+
{
|
|
109
|
+
"name": "テーブルまたはモデル名",
|
|
110
|
+
"definitionPath": "path/to/schema:行番号",
|
|
111
|
+
"fields": [
|
|
112
|
+
{
|
|
113
|
+
"name": "フィールド名",
|
|
114
|
+
"type": "フィールド型",
|
|
115
|
+
"constraints": ["NOT NULL", "UNIQUE"]
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"relationships": [
|
|
119
|
+
"外部キーカラム経由で他テーブルを参照"
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"accessPatterns": [
|
|
124
|
+
{
|
|
125
|
+
"operation": "read|write|aggregate|join|delete",
|
|
126
|
+
"location": "path/to/file:行番号",
|
|
127
|
+
"targetSchema": "テーブルまたはモデル名",
|
|
128
|
+
"description": "操作内容の概要"
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"migrationFiles": ["path/to/migration/files"]
|
|
132
|
+
},
|
|
133
|
+
"constraints": [
|
|
134
|
+
{
|
|
135
|
+
"type": "validation|business_rule|configuration|assumption",
|
|
136
|
+
"description": "制約が強制する内容",
|
|
137
|
+
"location": "path/to/file:行番号",
|
|
138
|
+
"impact": "この制約に違反した場合の影響"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"focusAreas": [
|
|
142
|
+
{
|
|
143
|
+
"area": "領域名",
|
|
144
|
+
"reason": "設計者がこの領域に注意すべき理由",
|
|
145
|
+
"relatedFiles": ["path/to/file1"],
|
|
146
|
+
"risk": "設計で見落とした場合に起こりうる問題"
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"testCoverage": {
|
|
150
|
+
"testedElements": ["テストファイルが見つかった要素名"],
|
|
151
|
+
"untestedElements": ["テストファイルが見つからなかった要素名"]
|
|
152
|
+
},
|
|
153
|
+
"limitations": ["分析できなかった内容とその理由"]
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 完了条件
|
|
158
|
+
|
|
159
|
+
- [ ] 入力された要件分析結果を解析し分析カテゴリを特定した
|
|
160
|
+
- [ ] 全影響ファイルを読み込み、file:line参照付きでpublicインターフェースを抽出した
|
|
161
|
+
- [ ] 各影響ファイルの1階層のインポートをトレースした
|
|
162
|
+
- [ ] Grepでデータアクセス、外部統合、バリデーションパターンを検索した
|
|
163
|
+
- [ ] データアクセス検出時: スキーマ定義をトレースしフィールドレベルの詳細を抽出した
|
|
164
|
+
- [ ] file:lineエビデンス付きで制約を抽出した
|
|
165
|
+
- [ ] リスク記述付きの注目領域を生成した
|
|
166
|
+
- [ ] 発見した要素のテストカバレッジを確認した
|
|
167
|
+
- [ ] 最終レスポンスがJSON出力
|
|
168
|
+
|
|
169
|
+
## 出力セルフチェック
|
|
170
|
+
|
|
171
|
+
- [ ] 全ファイルパスがGlob/Readで存在確認済み
|
|
172
|
+
- [ ] 全シグネチャと名前がコードから正確に転記(正規化や修正なし)
|
|
173
|
+
- [ ] スキーマフィールド名が実際の定義と一致(類似テーブルからの推測ではない)
|
|
174
|
+
- [ ] 各注目領域が具体的なファイルと具体的なリスクを引用
|
|
175
|
+
- [ ] `dataModel.detected`がデータ操作の検出有無を正確に反映
|
|
176
|
+
- [ ] limitationsセクションが読み込めなかったファイルやトレースできなかったパターンを記録
|
|
@@ -38,6 +38,10 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
38
38
|
- **doc_type**: ドキュメントタイプ(`PRD`/`UISpec`/`ADR`/`DesignDoc`)
|
|
39
39
|
- **target**: レビュー対象のドキュメントパス
|
|
40
40
|
|
|
41
|
+
- **code_verification**: code-verifier結果JSON(任意)
|
|
42
|
+
- 提供された場合、Gate 1品質評価の事前検証エビデンスとして組み込む
|
|
43
|
+
- 不整合と逆方向カバレッジのギャップが整合性・完全性チェックに反映される
|
|
44
|
+
|
|
41
45
|
## レビューモード
|
|
42
46
|
|
|
43
47
|
### 複合観点レビュー(composite)- 推奨
|
|
@@ -94,6 +98,8 @@ DesignDocの場合、追加で以下を確認:
|
|
|
94
98
|
- コード調査エビデンス検証:調査ファイルが設計スコープに関連するか確認、主要な関連ファイルの漏れを指摘
|
|
95
99
|
- 依存先の実在性検証:Design Docの「既存コードベース分析」セクションが「既存」と記述する依存先について、Grep/Globでコードベース内の定義を確認。コードベースに見つからず公式の外部出典の記載もない → `critical`(カテゴリ: `feasibility`)。存在するが定義のシグネチャ(メソッド名、パラメータ型、戻り値型)がDesign Docの記述と乖離 → `important`(カテゴリ: `consistency`)
|
|
96
100
|
- **既存実装ドキュメント検証**: コード検証結果が提供され、ドキュメントが既存実装を記述している場合(将来の要件ではなく)、コードから観察可能な振る舞いが事実として記述されていることを検証する。確定的な振る舞いに対する推測的な表現 → `important`
|
|
101
|
+
- **データ設計完全性チェック**: ドキュメントにデータ格納キーワード(database, persistence, storage, migration)またはデータアクセスキーワード(repository, query, ORM, SQL)またはデータスキーマキーワード(table, schema, column)が含まれるにもかかわらず、データ設計コンテンツが不足している場合(スキーマ参照なし、データ層戦略を含む「テスト境界」セクションなし、データモデル文書なし) → `important`(カテゴリ: `completeness`)。注: 「model」「field」「record」「entity」等の汎用語のみでは本チェックを発火しない — データ格納またはデータアクセスキーワードとの共起が必要
|
|
102
|
+
- **code-verifier連携**: `code_verification`入力が提供された場合、`undocumentedDataOperations`の各項目がドキュメントに不在 → `important`(カテゴリ: `completeness`)。code-verifierのseverityが`critical`または`major`の不整合 → 対応するレビューチェックの事前検証エビデンスとして組み込む
|
|
97
103
|
|
|
98
104
|
**観点特化モード**:
|
|
99
105
|
- 指定されたmodeとfocusに基づいてレビューを実施
|
|
@@ -247,6 +253,8 @@ DesignDocの場合、追加で以下を確認:
|
|
|
247
253
|
- [ ] コード調査エビデンスが設計スコープに関連するファイルを網羅していること
|
|
248
254
|
- [ ] 「既存」と記述された依存先がコードベースに対して検証されていること(Grep/Glob)
|
|
249
255
|
- [ ] フィールドが境界を越える場合にフィールド伝播マップが存在すること
|
|
256
|
+
- [ ] データ関連キーワードが存在する場合 → データ設計コンテンツが存在(スキーマ参照、テスト境界、データモデル文書。または明示的にN/A)
|
|
257
|
+
- [ ] code-verifier結果(提供された場合)がドキュメント内容と照合済み
|
|
250
258
|
|
|
251
259
|
## レビュー基準(総合モード用)
|
|
252
260
|
|
|
@@ -43,8 +43,8 @@ CLAUDE.mdの原則を適用しない独立したコンテキストを持ち、
|
|
|
43
43
|
|
|
44
44
|
### 1. スケルトンコメントの抽出
|
|
45
45
|
|
|
46
|
-
指定された`testFile
|
|
47
|
-
-
|
|
46
|
+
指定された`testFile`から以下のアノテーションパターンを抽出(コメント構文はプロジェクト言語に依存):
|
|
47
|
+
- `AC:`, `ROI:`, `振る舞い:`, `Property:`, `検証項目:`, `@category:`, `@dependency:`, `@complexity:`
|
|
48
48
|
|
|
49
49
|
### 2. スケルトン整合性チェック
|
|
50
50
|
|
|
@@ -95,7 +95,7 @@ package.jsonからフロントエンドビルドコマンドを自動検出し
|
|
|
95
95
|
- 型チェック成功
|
|
96
96
|
- Lint/Format成功(Biome)
|
|
97
97
|
|
|
98
|
-
### blocked
|
|
98
|
+
### blocked(仕様不明確または実行前提条件の不足で判断不能)
|
|
99
99
|
|
|
100
100
|
**仕様確認プロセス**:
|
|
101
101
|
blockedにする前に、以下の順序で仕様を確認:
|
|
@@ -111,8 +111,14 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
111
111
|
| テストと実装が矛盾し、両方とも技術的には妥当 | テスト「ボタン無効化」、実装「ボタン有効」 | 正しいUX要件が判断不能 |
|
|
112
112
|
| 外部システムの期待値が特定できない | 外部APIが複数のレスポンス形式に対応可能 | 全確認手段を試しても判断不能 |
|
|
113
113
|
| 複数の実装方法があり、UX価値が異なる | バリデーション「blur時」vs「submit時」 | 正しいUX設計が判断不能 |
|
|
114
|
+
| 実行前提条件の不足 | テストDB、seed data、必要なライブラリ、環境変数、外部サービスへのアクセスが未準備 | 前提条件なしではテスト実行不可 — コード修正では解決しない |
|
|
114
115
|
|
|
115
|
-
**判定ロジック**: 技術的に解決可能な問題は全て修正。ビジネス/UX
|
|
116
|
+
**判定ロジック**: 技術的に解決可能な問題は全て修正。ビジネス/UX判断が必要な場合、または実行前提条件が不足している場合のみblocked。
|
|
117
|
+
|
|
118
|
+
**実行前提条件のエスカレーション**: 環境の不足によりテストが失敗する場合、不足している前提条件を具体的な解決ステップとともに報告する。以下を含めること:
|
|
119
|
+
- 何が不足しているか(ライブラリ、seed data、環境変数、実行中のサービス等)
|
|
120
|
+
- どのテストが影響を受けるか
|
|
121
|
+
- 解決に何が必要か(具体的なステップ、曖昧な記述は不可)
|
|
116
122
|
|
|
117
123
|
## 出力フォーマット
|
|
118
124
|
|
|
@@ -172,7 +178,6 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
172
178
|
"totalWarnings": 0,
|
|
173
179
|
"executionTime": "3m 30s"
|
|
174
180
|
},
|
|
175
|
-
"approved": true,
|
|
176
181
|
"nextActions": "コミット準備完了"
|
|
177
182
|
}
|
|
178
183
|
```
|
|
@@ -184,11 +189,11 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
184
189
|
- blocked条件 → 複数の修正アプローチがあり、正しい仕様が判断不能な場合のみ
|
|
185
190
|
- デフォルト動作 → approvedになるまで修正継続
|
|
186
191
|
|
|
187
|
-
**blocked
|
|
192
|
+
**blockedレスポンス形式(specification conflict)**:
|
|
188
193
|
```json
|
|
189
194
|
{
|
|
190
195
|
"status": "blocked",
|
|
191
|
-
"reason": "
|
|
196
|
+
"reason": "Cannot determine due to unclear specification",
|
|
192
197
|
"blockingIssues": [{
|
|
193
198
|
"type": "ux_specification_conflict",
|
|
194
199
|
"details": "ユーザーインタラクション動作についてテスト期待値と実装が矛盾",
|
|
@@ -205,6 +210,27 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
205
210
|
}
|
|
206
211
|
```
|
|
207
212
|
|
|
213
|
+
**blockedレスポンス形式(missing prerequisites)**:
|
|
214
|
+
|
|
215
|
+
`missingPrerequisites[].type` の有効値: `seed_data`, `library`, `environment_variable`, `running_service`, `other`
|
|
216
|
+
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"status": "blocked",
|
|
220
|
+
"reason": "Execution prerequisites not met",
|
|
221
|
+
"missingPrerequisites": [
|
|
222
|
+
{
|
|
223
|
+
"type": "seed_data",
|
|
224
|
+
"description": "E2Eテスト用DBにアクティブなサブスクリプションを持つテストプレイヤーが存在しない",
|
|
225
|
+
"affectedTests": ["training-e2e-tests"],
|
|
226
|
+
"resolutionSteps": ["E2Eテストプレイヤー用seed scriptの作成", "サブスクリプションレコードをseedに追加"]
|
|
227
|
+
}
|
|
228
|
+
],
|
|
229
|
+
"testsSkipped": 3,
|
|
230
|
+
"testsPassedWithoutPrerequisites": 47
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
208
234
|
## 中間進捗レポート
|
|
209
235
|
|
|
210
236
|
実行中、ツール呼び出しの間に以下のフォーマットで進捗を報告する:
|
|
@@ -333,4 +359,4 @@ graph TD
|
|
|
333
359
|
- 外部システムの期待値を特定できず、全確認手段を試しても判断できない
|
|
334
360
|
- 実装方法でUX/ビジネス価値が異なり、正しい選択を判断できない
|
|
335
361
|
|
|
336
|
-
|
|
362
|
+
**判定ルール**: 技術的に解決可能な問題は全て修正。UX/ビジネス判断が必要な場合、または実行前提条件が不足している場合のみblocked。
|
|
@@ -59,7 +59,7 @@ package.jsonの`packageManager`フィールドに応じた実行コマンドを
|
|
|
59
59
|
- 型チェック成功
|
|
60
60
|
- Lint/Format成功
|
|
61
61
|
|
|
62
|
-
### blocked
|
|
62
|
+
### blocked(仕様不明確または実行前提条件の不足で判断不能)
|
|
63
63
|
|
|
64
64
|
**仕様確認プロセス**:
|
|
65
65
|
blockedにする前に、以下の順序で仕様を確認:
|
|
@@ -75,8 +75,14 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
75
75
|
| テストと実装が矛盾し、両方とも技術的には妥当 | テスト「500エラー」、実装「400エラー」 | ビジネス要件として正しい方が判断不能 |
|
|
76
76
|
| 外部システムの期待値が特定できない | 外部APIが複数のレスポンス形式に対応可能 | 全確認手段を試しても判断不能 |
|
|
77
77
|
| 複数の実装方法があり、ビジネス価値が異なる | 割引計算で「税込から割引」vs「税抜から割引」 | 正しいビジネスロジックが判断不能 |
|
|
78
|
+
| 実行前提条件の不足 | テストDB、seed data、必要なライブラリ、環境変数、外部サービスへのアクセスが未準備 | 前提条件なしではテスト実行不可 — コード修正では解決しない |
|
|
78
79
|
|
|
79
|
-
**判定ロジック**:
|
|
80
|
+
**判定ロジック**: 技術的に解決可能な問題は全て修正。ビジネス判断が必要な場合、または実行前提条件が不足している場合のみblocked。
|
|
81
|
+
|
|
82
|
+
**実行前提条件のエスカレーション**: 環境の不足によりテストが失敗する場合、不足している前提条件を具体的な解決ステップとともに報告する。以下を含めること:
|
|
83
|
+
- 何が不足しているか(ライブラリ、seed data、環境変数、実行中のサービス等)
|
|
84
|
+
- どのテストが影響を受けるか
|
|
85
|
+
- 解決に何が必要か(具体的なステップ、曖昧な記述は不可)
|
|
80
86
|
|
|
81
87
|
## 出力フォーマット
|
|
82
88
|
|
|
@@ -133,7 +139,6 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
133
139
|
"totalWarnings": 0,
|
|
134
140
|
"executionTime": "2m 15s"
|
|
135
141
|
},
|
|
136
|
-
"approved": true,
|
|
137
142
|
"nextActions": "コミット可能です"
|
|
138
143
|
}
|
|
139
144
|
```
|
|
@@ -145,11 +150,11 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
145
150
|
- blocked条件 → 複数の修正アプローチが存在し、正しい仕様が判断不能な場合のみ
|
|
146
151
|
- デフォルト動作 → approvedまで修正を継続
|
|
147
152
|
|
|
148
|
-
**blocked
|
|
153
|
+
**blockedレスポンス形式(specification conflict)**:
|
|
149
154
|
```json
|
|
150
155
|
{
|
|
151
156
|
"status": "blocked",
|
|
152
|
-
"reason": "
|
|
157
|
+
"reason": "Cannot determine due to unclear specification",
|
|
153
158
|
"blockingIssues": [{
|
|
154
159
|
"type": "specification_conflict",
|
|
155
160
|
"details": "テスト期待値と実装が矛盾",
|
|
@@ -166,6 +171,27 @@ blockedにする前に、以下の順序で仕様を確認:
|
|
|
166
171
|
}
|
|
167
172
|
```
|
|
168
173
|
|
|
174
|
+
**blockedレスポンス形式(missing prerequisites)**:
|
|
175
|
+
|
|
176
|
+
`missingPrerequisites[].type` の有効値: `seed_data`, `library`, `environment_variable`, `running_service`, `other`
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"status": "blocked",
|
|
181
|
+
"reason": "Execution prerequisites not met",
|
|
182
|
+
"missingPrerequisites": [
|
|
183
|
+
{
|
|
184
|
+
"type": "seed_data",
|
|
185
|
+
"description": "E2Eテスト用DBにアクティブなサブスクリプションを持つテストプレイヤーが存在しない",
|
|
186
|
+
"affectedTests": ["training-e2e-tests"],
|
|
187
|
+
"resolutionSteps": ["E2Eテストプレイヤー用seed scriptの作成", "サブスクリプションレコードをseedに追加"]
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"testsSkipped": 3,
|
|
191
|
+
"testsPassedWithoutPrerequisites": 47
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
169
195
|
## 中間進捗レポート
|
|
170
196
|
|
|
171
197
|
実行中、ツール呼び出しの間に以下のフォーマットで進捗を報告する:
|
|
@@ -288,4 +314,4 @@ graph TD
|
|
|
288
314
|
- 外部システムの期待値が特定できず、全ての確認手段を試しても判断不能
|
|
289
315
|
- 実装方法によってビジネス価値が異なり、正しい選択が判断不能
|
|
290
316
|
|
|
291
|
-
|
|
317
|
+
**判定ルール**: 技術的に解決可能な問題は全て修正。ビジネス判断が必要な場合、または実行前提条件が不足している場合のみblocked。
|
|
@@ -87,18 +87,38 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
87
87
|
- ファイル名: `{計画書名}-phase{番号}-completion.md`
|
|
88
88
|
- 内容: 全タスク完了チェックリスト、テストスケルトンファイルパスを検証用に記載
|
|
89
89
|
- 判断基準: 計画書に「Phase」という文字列があれば必ず生成
|
|
90
|
+
- **Phase 0(環境セットアップ)**: 作業計画にPhase 0の`@category: e2e-setup`タスクが含まれる場合、これらは環境セットアップタスク(seed data、auth fixture、serviceモック)であり、通常の実装タスクとは異なる。実装指向ではなくセットアップ指向の調査対象(既存の設定ファイル、環境スクリプト、fixtureパターン)で分解する
|
|
90
91
|
|
|
91
92
|
5. **タスクの構造化**
|
|
92
93
|
各タスクファイルに以下を含める:
|
|
93
94
|
- タスク概要
|
|
94
95
|
- 対象ファイル
|
|
96
|
+
- **調査対象**(executorが実装前に読んで理解すべきもの)
|
|
95
97
|
- 具体的な実装手順
|
|
96
98
|
- 完了条件
|
|
97
99
|
|
|
98
|
-
6.
|
|
100
|
+
6. **調査対象の決定**
|
|
101
|
+
各タスクについて、タスクの性質に基づきexecutorが読むべき内容を決定する:
|
|
102
|
+
|
|
103
|
+
| タスクの性質 | 調査対象 |
|
|
104
|
+
|---|---|
|
|
105
|
+
| 既存コードの修正 | 修正対象の既存実装ファイル、そのテスト、関連するDesign Docセクション |
|
|
106
|
+
| 新規コンポーネント/機能 | 同一レイヤー/ドメインの隣接実装、Design Docのインターフェース契約 |
|
|
107
|
+
| テスト実装 | テストスケルトンのコメント/アノテーション、テスト対象コード、実際のAPI/認証フロー |
|
|
108
|
+
| E2E環境セットアップ | 現在の環境設定(起動スクリプト、docker-compose等)、seed scripts、既存のfixtureパターン、アプリケーション認証フロー |
|
|
109
|
+
| バグ修正 / リファクタリング | 影響を受けるコードパス、関連テストカバレッジ、エラー再現コンテキスト |
|
|
110
|
+
|
|
111
|
+
**原則**:
|
|
112
|
+
- 全タスクに最低1つの調査対象を設定する(Design Docのみでも可)
|
|
113
|
+
- 調査対象は**ファイルパス**で指定する — 実行すべきアクションではない
|
|
114
|
+
- ファイルパスは具体的に: `src/orders/checkout`, `docs/design/payment.md` — 「注文モジュール」「関連コード」ではなく
|
|
115
|
+
- ファイル内の特定セクションが対象の場合はサーチヒントを付与: `docs/design/payment.md (§ Payment Flow)` or `src/orders/checkout (processOrder関数)`
|
|
116
|
+
- タスクにテストスケルトンが存在する場合は必ず調査対象に含める
|
|
117
|
+
|
|
118
|
+
7. **実装方針の一貫性**
|
|
99
119
|
実装サンプルを含める場合は、作業計画書の元となったDesign Docの実装方針に完全準拠すること
|
|
100
120
|
|
|
101
|
-
|
|
121
|
+
8. **テスト情報の活用**
|
|
102
122
|
作業計画書にテスト情報(fast-check使用、依存関係、複雑度等)が記載されている場合、その情報をタスクファイルに反映する。
|
|
103
123
|
|
|
104
124
|
## タスクファイルテンプレート
|
|
@@ -236,6 +256,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
236
256
|
- [ ] 明確な完了条件の設定
|
|
237
257
|
- [ ] 全体設計書の作成
|
|
238
258
|
- [ ] 実装効率と手戻り防止(共通処理の事前識別、影響範囲の明確化)
|
|
259
|
+
- [ ] 全タスクに調査対象が指定されている(具体的なファイルパス、曖昧なカテゴリではない)
|
|
239
260
|
|
|
240
261
|
## タスク設計の原則
|
|
241
262
|
|