create-ai-project 1.23.4 → 1.24.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 +8 -32
- package/.claude/agents-en/code-reviewer.md +24 -25
- package/.claude/agents-en/code-verifier.md +3 -32
- package/.claude/agents-en/codebase-analyzer.md +11 -79
- package/.claude/agents-en/document-reviewer.md +12 -58
- package/.claude/agents-en/integration-test-reviewer.md +6 -37
- package/.claude/agents-en/investigator.md +6 -59
- package/.claude/agents-en/quality-fixer-frontend.md +1 -5
- package/.claude/agents-en/quality-fixer.md +1 -5
- package/.claude/agents-en/requirement-analyzer.md +3 -14
- package/.claude/agents-en/rule-advisor.md +3 -16
- package/.claude/agents-en/scope-discoverer.md +5 -29
- package/.claude/agents-en/security-reviewer.md +2 -13
- package/.claude/agents-en/skill-creator.md +3 -6
- package/.claude/agents-en/skill-reviewer.md +7 -43
- package/.claude/agents-en/solver.md +9 -24
- package/.claude/agents-en/task-decomposer.md +39 -8
- package/.claude/agents-en/task-executor-frontend.md +29 -20
- package/.claude/agents-en/task-executor.md +29 -20
- package/.claude/agents-en/technical-designer-frontend.md +7 -12
- package/.claude/agents-en/technical-designer.md +4 -11
- package/.claude/agents-en/ui-analyzer.md +16 -115
- package/.claude/agents-en/ui-spec-designer.md +3 -3
- package/.claude/agents-en/verifier.md +9 -53
- package/.claude/agents-en/work-planner.md +27 -22
- package/.claude/agents-ja/acceptance-test-generator.md +10 -34
- package/.claude/agents-ja/code-reviewer.md +24 -25
- package/.claude/agents-ja/code-verifier.md +5 -34
- package/.claude/agents-ja/codebase-analyzer.md +11 -79
- package/.claude/agents-ja/document-reviewer.md +16 -62
- package/.claude/agents-ja/integration-test-reviewer.md +6 -37
- package/.claude/agents-ja/investigator.md +6 -59
- package/.claude/agents-ja/prd-creator.md +3 -3
- package/.claude/agents-ja/quality-fixer-frontend.md +2 -6
- package/.claude/agents-ja/quality-fixer.md +2 -6
- package/.claude/agents-ja/requirement-analyzer.md +3 -14
- package/.claude/agents-ja/rule-advisor.md +4 -17
- package/.claude/agents-ja/scope-discoverer.md +5 -29
- package/.claude/agents-ja/security-reviewer.md +3 -14
- package/.claude/agents-ja/skill-creator.md +3 -6
- package/.claude/agents-ja/skill-reviewer.md +7 -43
- package/.claude/agents-ja/solver.md +11 -26
- package/.claude/agents-ja/task-decomposer.md +40 -9
- package/.claude/agents-ja/task-executor-frontend.md +29 -20
- package/.claude/agents-ja/task-executor.md +29 -20
- package/.claude/agents-ja/technical-designer-frontend.md +8 -13
- package/.claude/agents-ja/technical-designer.md +5 -12
- package/.claude/agents-ja/ui-analyzer.md +17 -116
- package/.claude/agents-ja/ui-spec-designer.md +7 -7
- package/.claude/agents-ja/verifier.md +9 -53
- package/.claude/agents-ja/work-planner.md +51 -51
- package/.claude/commands-ja/build.md +1 -1
- package/.claude/commands-ja/design.md +1 -1
- package/.claude/commands-ja/diagnose.md +1 -1
- package/.claude/commands-ja/front-build.md +1 -1
- package/.claude/commands-ja/front-design.md +3 -3
- package/.claude/commands-ja/front-plan.md +2 -2
- package/.claude/commands-ja/implement.md +1 -1
- package/.claude/commands-ja/plan.md +2 -2
- package/.claude/commands-ja/prepare-implementation.md +4 -4
- package/.claude/commands-ja/reverse-engineer.md +1 -1
- package/.claude/commands-ja/review.md +1 -1
- package/.claude/commands-ja/task.md +2 -2
- package/.claude/commands-ja/update-doc.md +1 -1
- package/.claude/skills-en/documentation-criteria/references/design-template.md +5 -1
- package/.claude/skills-en/documentation-criteria/references/plan-template.md +17 -7
- package/.claude/skills-en/documentation-criteria/references/task-template.md +18 -0
- package/.claude/skills-en/documentation-criteria/references/ui-spec-template.md +1 -1
- package/.claude/skills-en/frontend-technical-spec/SKILL.md +4 -8
- package/.claude/skills-en/frontend-typescript-rules/SKILL.md +4 -2
- package/.claude/skills-en/frontend-typescript-testing/SKILL.md +5 -11
- package/.claude/skills-en/frontend-typescript-testing/references/e2e.md +1 -1
- package/.claude/skills-en/technical-spec/SKILL.md +4 -3
- package/.claude/skills-en/typescript-testing/SKILL.md +4 -4
- package/.claude/skills-ja/coding-standards/SKILL.md +4 -4
- package/.claude/skills-ja/coding-standards/references/security-checks.md +1 -1
- package/.claude/skills-ja/documentation-criteria/SKILL.md +1 -1
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +10 -6
- package/.claude/skills-ja/documentation-criteria/references/plan-template.md +18 -8
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +18 -0
- package/.claude/skills-ja/documentation-criteria/references/ui-spec-template.md +3 -3
- package/.claude/skills-ja/frontend-technical-spec/SKILL.md +4 -8
- package/.claude/skills-ja/frontend-typescript-rules/SKILL.md +5 -3
- package/.claude/skills-ja/frontend-typescript-testing/SKILL.md +5 -11
- package/.claude/skills-ja/frontend-typescript-testing/references/e2e.md +2 -2
- package/.claude/skills-ja/implementation-approach/SKILL.md +1 -1
- package/.claude/skills-ja/integration-e2e-testing/SKILL.md +1 -1
- package/.claude/skills-ja/integration-e2e-testing/references/e2e-environment-prerequisites.md +1 -1
- package/.claude/skills-ja/project-context/references/template.md +2 -2
- package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +3 -3
- package/.claude/skills-ja/technical-spec/SKILL.md +4 -3
- package/.claude/skills-ja/typescript-testing/SKILL.md +4 -4
- package/CHANGELOG.md +19 -0
- package/package.json +1 -1
|
@@ -119,74 +119,21 @@ skills: project-context, technical-spec, coding-standards
|
|
|
119
119
|
|
|
120
120
|
```json
|
|
121
121
|
{
|
|
122
|
-
"problemSummary": {
|
|
123
|
-
"phenomenon": "観察された現象の客観的記述",
|
|
124
|
-
"context": "発生条件、環境、タイミング",
|
|
125
|
-
"scope": "影響範囲"
|
|
126
|
-
},
|
|
122
|
+
"problemSummary": {"phenomenon": "観察された現象の客観的記述", "context": "発生条件、環境、タイミング", "scope": "影響範囲"},
|
|
127
123
|
"investigationSources": [
|
|
128
|
-
{
|
|
129
|
-
"type": "code|history|dependency|config|document|external",
|
|
130
|
-
"location": "調査した場所",
|
|
131
|
-
"findings": "発見した事実(解釈を含めない)"
|
|
132
|
-
}
|
|
124
|
+
{"type": "code|history|dependency|config|document|external", "location": "調査した場所", "findings": "発見した事実(解釈を含めない)"}
|
|
133
125
|
],
|
|
134
126
|
"externalResearch": [
|
|
135
|
-
{
|
|
136
|
-
"query": "検索したクエリ",
|
|
137
|
-
"source": "情報源",
|
|
138
|
-
"findings": "発見した関連情報",
|
|
139
|
-
"relevance": "この問題との関連性"
|
|
140
|
-
}
|
|
127
|
+
{"query": "検索したクエリ", "source": "情報源", "findings": "発見した関連情報", "relevance": "この問題との関連性"}
|
|
141
128
|
],
|
|
142
129
|
"pathMap": [
|
|
143
|
-
{
|
|
144
|
-
"symptomId": "S1",
|
|
145
|
-
"symptom": "観察された症状の記述",
|
|
146
|
-
"trigger": "この症状を引き起こすトリガー",
|
|
147
|
-
"paths": [
|
|
148
|
-
{
|
|
149
|
-
"pathId": "S1-P1",
|
|
150
|
-
"description": "パスの説明(例: メインのデータ取得パス)",
|
|
151
|
-
"nodes": [
|
|
152
|
-
{
|
|
153
|
-
"nodeId": "S1-P1-N1",
|
|
154
|
-
"location": "file:line",
|
|
155
|
-
"description": "このノードが行うこと"
|
|
156
|
-
}
|
|
157
|
-
]
|
|
158
|
-
}
|
|
159
|
-
]
|
|
160
|
-
}
|
|
130
|
+
{"symptomId": "S1", "symptom": "観察された症状の記述", "trigger": "この症状を引き起こすトリガー", "paths": [{"pathId": "S1-P1", "description": "パスの説明(例: メインのデータ取得パス)", "nodes": [{"nodeId": "S1-P1-N1", "location": "file:line", "description": "このノードが行うこと"}]}]}
|
|
161
131
|
],
|
|
162
132
|
"failurePoints": [
|
|
163
|
-
{
|
|
164
|
-
"id": "FP1",
|
|
165
|
-
"nodeId": "S1-P1-N1",
|
|
166
|
-
"symptomId": "S1",
|
|
167
|
-
"description": "障害の内容",
|
|
168
|
-
"causeCategory": "typo|logic_error|missing_constraint|design_gap|external_factor",
|
|
169
|
-
"location": "file:line",
|
|
170
|
-
"upstreamDependency": "このノードが依存しているもの",
|
|
171
|
-
"symptomExplained": "この障害が観察された症状にどうつながるか",
|
|
172
|
-
"causalChain": ["観察された障害", "→ 直接原因", "→ 根本原因(停止条件)"],
|
|
173
|
-
"checkStatus": "supported|weakened|blocked|not_reached",
|
|
174
|
-
"evidence": [
|
|
175
|
-
{"type": "supporting|contradicting", "detail": "証拠の詳細", "source": "情報源の場所", "strength": "direct|indirect|circumstantial"}
|
|
176
|
-
],
|
|
177
|
-
"comparisonAnalysis": {
|
|
178
|
-
"normalImplementation": "正常動作する実装のパス(見つからない場合はnull)",
|
|
179
|
-
"keyDifferences": ["差分"]
|
|
180
|
-
}
|
|
181
|
-
}
|
|
133
|
+
{"id": "FP1", "nodeId": "S1-P1-N1", "symptomId": "S1", "description": "障害の内容", "causeCategory": "typo|logic_error|missing_constraint|design_gap|external_factor", "location": "file:line", "upstreamDependency": "このノードが依存しているもの", "symptomExplained": "この障害が観察された症状にどうつながるか", "causalChain": ["観察された障害", "→ 直接原因", "→ 根本原因(停止条件)"], "checkStatus": "supported|weakened|blocked|not_reached", "evidence": [{"type": "supporting|contradicting", "detail": "証拠の詳細", "source": "情報源の場所", "strength": "direct|indirect|circumstantial"}], "comparisonAnalysis": {"normalImplementation": "正常動作する実装のパス(見つからない場合はnull)", "keyDifferences": ["差分"]}}
|
|
182
134
|
],
|
|
183
135
|
"impactAnalysis": [
|
|
184
|
-
{
|
|
185
|
-
"failurePointId": "FP1",
|
|
186
|
-
"impactScope": ["影響を受けるファイルパス"],
|
|
187
|
-
"recurrenceRisk": "low|medium|high",
|
|
188
|
-
"riskRationale": "リスク判定の根拠"
|
|
189
|
-
}
|
|
136
|
+
{"failurePointId": "FP1", "impactScope": ["影響を受けるファイルパス"], "recurrenceRisk": "low|medium|high", "riskRationale": "リスク判定の根拠"}
|
|
190
137
|
],
|
|
191
138
|
"unexploredAreas": [
|
|
192
139
|
{"area": "未探索領域", "reason": "調査できなかった理由", "potentialRelevance": "関連性"}
|
|
@@ -63,7 +63,7 @@ skills: documentation-criteria, project-context, technical-spec
|
|
|
63
63
|
## PRD出力形式
|
|
64
64
|
|
|
65
65
|
### 対話モードの場合
|
|
66
|
-
|
|
66
|
+
以下の構造化された形式で出力する。
|
|
67
67
|
|
|
68
68
|
1. **現在の理解**
|
|
69
69
|
- 要件の本質的な目的を1-2文で要約
|
|
@@ -175,7 +175,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
|
|
|
175
175
|
|
|
176
176
|
### リバースPRD実行方針
|
|
177
177
|
|
|
178
|
-
**記述基準**: コードがsingle source of truth(SSoT)
|
|
178
|
+
**記述基準**: コードがsingle source of truth(SSoT)である。観察可能な振る舞いを断定形で記述する。振る舞いが不明な場合はコードをさらに調査して確認する。コードだけでは判断できない場合(例: 設計選択の背後にあるビジネス意図)にのみ「未確定事項」に分類する。
|
|
179
179
|
|
|
180
180
|
**コード原文の正確な転記**: 識別子、URL、パラメータ名、フィールド名、コンポーネント名、文字列リテラルは、コードに記載されている通りに正確にコピーすること。コードにタイポがある場合は、仕様書には実際の識別子をそのまま記載し、タイポはKnown Issuesに別途記録する。
|
|
181
181
|
|
|
@@ -193,7 +193,7 @@ PRD作成時は**ユーザージャーニー図**と**スコープ境界図**を
|
|
|
193
193
|
- Unverifiedな主張は「未確定事項」にのみ記載
|
|
194
194
|
- Inferredな主張には明示的な根拠を記載
|
|
195
195
|
- コア要件ではVerifiedな主張を優先
|
|
196
|
-
- Inferred
|
|
196
|
+
- Inferredに分類する前に、関連コードを読んで検証を試みる。コードがアクセス不能または曖昧であることを確認した場合にのみInferredに分類する
|
|
197
197
|
|
|
198
198
|
### リバースPRD調査プロトコル
|
|
199
199
|
|
|
@@ -7,7 +7,7 @@ skills: frontend-typescript-rules, frontend-typescript-testing, frontend-technic
|
|
|
7
7
|
|
|
8
8
|
あなたはフロントエンドReactプロジェクトの品質保証専門のAIアシスタントです。
|
|
9
9
|
|
|
10
|
-
品質チェックを実行し、全チェックがエラー0
|
|
10
|
+
品質チェックを実行し、全チェックがエラー0で完了した状態を提供する。
|
|
11
11
|
|
|
12
12
|
## 主な責務
|
|
13
13
|
|
|
@@ -199,11 +199,7 @@ package.json からフロントエンドビルドコマンドを自動検出し
|
|
|
199
199
|
全レスポンスは `status` を共有し、`task_file` 提供時には `taskFileMechanisms` オブジェクトを含める:
|
|
200
200
|
|
|
201
201
|
```json
|
|
202
|
-
"taskFileMechanisms": {
|
|
203
|
-
"provided": true,
|
|
204
|
-
"executed": ["mechanism names that were found and executed"],
|
|
205
|
-
"skipped": [{"mechanism": "mechanism name", "reason": "tool not found | config not found | not executable"}]
|
|
206
|
-
}
|
|
202
|
+
"taskFileMechanisms": {"provided": true, "executed": ["mechanism names that were found and executed"], "skipped": [{"mechanism": "mechanism name", "reason": "tool not found | config not found | not executable"}]}
|
|
207
203
|
```
|
|
208
204
|
`task_file` が指定されなかった場合は `"provided": false` とし、`executed`/`skipped` は省略。
|
|
209
205
|
|
|
@@ -7,7 +7,7 @@ skills: typescript-rules, typescript-testing, technical-spec, coding-standards,
|
|
|
7
7
|
|
|
8
8
|
あなたはTypeScriptプロジェクトの品質保証専門のAIアシスタントです。
|
|
9
9
|
|
|
10
|
-
品質チェックを実行し、全Phaseがエラー0
|
|
10
|
+
品質チェックを実行し、全Phaseがエラー0で完了した状態を提供する。
|
|
11
11
|
|
|
12
12
|
## 主な責務
|
|
13
13
|
|
|
@@ -163,11 +163,7 @@ coding-standardsおよびtypescript-testingスキルに従って修正を適用
|
|
|
163
163
|
全レスポンスは `status` を共有し、`task_file` 提供時には `taskFileMechanisms` オブジェクトを含める:
|
|
164
164
|
|
|
165
165
|
```json
|
|
166
|
-
"taskFileMechanisms": {
|
|
167
|
-
"provided": true,
|
|
168
|
-
"executed": ["mechanism names that were found and executed"],
|
|
169
|
-
"skipped": [{"mechanism": "mechanism name", "reason": "tool not found | config not found | not executable"}]
|
|
170
|
-
}
|
|
166
|
+
"taskFileMechanisms": {"provided": true, "executed": ["mechanism names that were found and executed"], "skipped": [{"mechanism": "mechanism name", "reason": "tool not found | config not found | not executable"}]}
|
|
171
167
|
```
|
|
172
168
|
`task_file` が指定されなかった場合は `"provided": false` とし、`executed`/`skipped` は省略。
|
|
173
169
|
|
|
@@ -116,23 +116,12 @@ ADR作成条件の詳細はdocumentation-criteriaスキルに準拠。
|
|
|
116
116
|
"fileCount": 3,
|
|
117
117
|
"adrRequired": true,
|
|
118
118
|
"adrReason": "該当する条件、または不要な場合はnull",
|
|
119
|
-
"technicalConsiderations": {
|
|
120
|
-
"constraints": ["リスト"],
|
|
121
|
-
"risks": ["リスト"],
|
|
122
|
-
"dependencies": ["リスト"]
|
|
123
|
-
},
|
|
119
|
+
"technicalConsiderations": {"constraints": ["リスト"], "risks": ["リスト"], "dependencies": ["リスト"]},
|
|
124
120
|
"scopeDependencies": [
|
|
125
|
-
{
|
|
126
|
-
"question": "規模に影響する具体的な質問",
|
|
127
|
-
"impact": { "if_yes": "large", "if_no": "medium" }
|
|
128
|
-
}
|
|
121
|
+
{"question": "規模に影響する具体的な質問", "impact": {"if_yes": "large", "if_no": "medium"}}
|
|
129
122
|
],
|
|
130
123
|
"questions": [
|
|
131
|
-
{
|
|
132
|
-
"category": "boundary|existing_code|dependencies",
|
|
133
|
-
"question": "具体的な質問",
|
|
134
|
-
"options": ["A", "B", "C"]
|
|
135
|
-
}
|
|
124
|
+
{"category": "boundary|existing_code|dependencies", "question": "具体的な質問", "options": ["A", "B", "C"]}
|
|
136
125
|
]
|
|
137
126
|
}
|
|
138
127
|
```
|
|
@@ -5,7 +5,7 @@ tools: Read, Grep, LS
|
|
|
5
5
|
skills: task-analyzer
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
あなたはルール選択専門のAIアシスタントです。メタ認知的アプローチでタスクの性質を分析し、AI
|
|
8
|
+
あなたはルール選択専門のAIアシスタントです。メタ認知的アプローチでタスクの性質を分析し、AIの実行精度を最大化するための包括的で構造化されたスキル内容を返却する。
|
|
9
9
|
|
|
10
10
|
## 作業フロー
|
|
11
11
|
|
|
@@ -59,24 +59,11 @@ task-analyzerスキル(frontmatterで自動読み込み)が提供するも
|
|
|
59
59
|
|
|
60
60
|
```json
|
|
61
61
|
{
|
|
62
|
-
"taskAnalysis": {
|
|
63
|
-
"taskType": "実装|修正|リファクタリング|設計|品質改善",
|
|
64
|
-
"essence": "根本目的", "estimatedFiles": 3, "scale": "small|medium|large",
|
|
65
|
-
"extractedTags": ["implementation", "testing", "security"]
|
|
66
|
-
},
|
|
62
|
+
"taskAnalysis": {"taskType": "実装|修正|リファクタリング|設計|品質改善", "essence": "根本目的", "estimatedFiles": 3, "scale": "small|medium|large", "extractedTags": ["implementation", "testing", "security"]},
|
|
67
63
|
"selectedSkills": [
|
|
68
|
-
{
|
|
69
|
-
"skill": "coding-standards",
|
|
70
|
-
"sections": [{"title": "セクション名", "content": "## セクション内容..."}],
|
|
71
|
-
"reason": "必要な理由", "priority": "high"
|
|
72
|
-
}
|
|
64
|
+
{"skill": "coding-standards", "sections": [{"title": "セクション名", "content": "## セクション内容..."}], "reason": "必要な理由", "priority": "high"}
|
|
73
65
|
],
|
|
74
|
-
"metaCognitiveGuidance": {
|
|
75
|
-
"taskEssence": "表面作業でなく根本目的の理解",
|
|
76
|
-
"pastFailures": ["エラー修正衝動", "一度に大変更", "テスト不足"],
|
|
77
|
-
"potentialPitfalls": ["根本原因分析なし", "段階的アプローチなし", "テストなし"],
|
|
78
|
-
"firstStep": {"action": "最初のアクション", "rationale": "なぜ最初か"}
|
|
79
|
-
},
|
|
66
|
+
"metaCognitiveGuidance": {"taskEssence": "表面作業でなく根本目的の理解", "pastFailures": ["エラー修正衝動", "一度に大変更", "テスト不足"], "potentialPitfalls": ["根本原因分析なし", "段階的アプローチなし", "テストなし"], "firstStep": {"action": "最初のアクション", "rationale": "なぜ最初か"}},
|
|
80
67
|
"metaCognitiveQuestions": ["最重要品質基準は?", "類似タスクでの過去の問題は?", "どこから着手?"],
|
|
81
68
|
"warningPatterns": [
|
|
82
69
|
{"pattern": "一度に大変更", "risk": "高複雑性", "mitigation": "フェーズ分割"},
|
|
@@ -164,17 +164,8 @@ skills: documentation-criteria, coding-standards, technical-spec, implementation
|
|
|
164
164
|
"entryPoints": ["/path1", "/path2"],
|
|
165
165
|
"relatedFiles": ["src/feature/*"],
|
|
166
166
|
"dependencies": ["UNIT-002"],
|
|
167
|
-
"valueProfile": {
|
|
168
|
-
|
|
169
|
-
"userGoal": "この機能でユーザーが達成したいこと",
|
|
170
|
-
"valueCategory": "属する上位機能(例: '認証', 'コンテンツ管理', 'レポーティング')"
|
|
171
|
-
},
|
|
172
|
-
"technicalProfile": {
|
|
173
|
-
"primaryModules": ["src/<feature>/module-a.ts", "src/<feature>/module-b.ts"],
|
|
174
|
-
"publicInterfaces": ["ServiceA.operation()", "ModuleB.handle()"],
|
|
175
|
-
"dataFlowSummary": "入力元 → 主要処理経路 → 出力先",
|
|
176
|
-
"infrastructureDeps": ["外部依存リスト"]
|
|
177
|
-
},
|
|
167
|
+
"valueProfile": {"targetPersona": "この機能が誰向けか(例: 'エンドユーザー', '管理者', '開発者')", "userGoal": "この機能でユーザーが達成したいこと", "valueCategory": "属する上位機能(例: '認証', 'コンテンツ管理', 'レポーティング')"},
|
|
168
|
+
"technicalProfile": {"primaryModules": ["src/<feature>/module-a.ts", "src/<feature>/module-b.ts"], "publicInterfaces": ["ServiceA.operation()", "ModuleB.handle()"], "dataFlowSummary": "入力元 → 主要処理経路 → 出力先", "infrastructureDeps": ["外部依存リスト"]},
|
|
178
169
|
"unitInventory": {
|
|
179
170
|
"routes": [
|
|
180
171
|
{"method": "POST", "path": "/api/auth/login", "handler": "AuthController.handleLogin", "file": "routes:15"}
|
|
@@ -189,28 +180,13 @@ skills: documentation-criteria, coding-standards, technical-spec, implementation
|
|
|
189
180
|
}
|
|
190
181
|
],
|
|
191
182
|
"relationships": [
|
|
192
|
-
{
|
|
193
|
-
"from": "UNIT-001",
|
|
194
|
-
"to": "UNIT-002",
|
|
195
|
-
"type": "depends_on|extends|shares_data"
|
|
196
|
-
}
|
|
183
|
+
{"from": "UNIT-001", "to": "UNIT-002", "type": "depends_on|extends|shares_data"}
|
|
197
184
|
],
|
|
198
185
|
"uncertainAreas": [
|
|
199
|
-
{
|
|
200
|
-
"area": "領域名",
|
|
201
|
-
"reason": "不確実な理由",
|
|
202
|
-
"suggestedAction": "推奨アクション"
|
|
203
|
-
}
|
|
186
|
+
{"area": "領域名", "reason": "不確実な理由", "suggestedAction": "推奨アクション"}
|
|
204
187
|
],
|
|
205
188
|
"prdUnits": [
|
|
206
|
-
{
|
|
207
|
-
"id": "PRD-001",
|
|
208
|
-
"name": "PRDユニット名(ユーザー価値レベル)",
|
|
209
|
-
"description": "この機能がユーザーに提供する価値",
|
|
210
|
-
"sourceUnits": ["UNIT-001", "UNIT-003"],
|
|
211
|
-
"combinedRelatedFiles": ["src/feature-a/*", "src/feature-b/*"],
|
|
212
|
-
"combinedEntryPoints": ["/path1", "/path2", "/path3"]
|
|
213
|
-
}
|
|
189
|
+
{"id": "PRD-001", "name": "PRDユニット名(ユーザー価値レベル)", "description": "この機能がユーザーに提供する価値", "sourceUnits": ["UNIT-001", "UNIT-003"], "combinedRelatedFiles": ["src/feature-a/*", "src/feature-b/*"], "combinedEntryPoints": ["/path1", "/path2", "/path3"]}
|
|
214
190
|
],
|
|
215
191
|
"limitations": ["発見できなかった内容とその理由"]
|
|
216
192
|
}
|
|
@@ -100,22 +100,11 @@ coding-standardsのSecurity Principlesの各原則に対して実装を検証:
|
|
|
100
100
|
"summary": "[1-2文の要約]",
|
|
101
101
|
"filesReviewed": 5,
|
|
102
102
|
"findings": [
|
|
103
|
-
{
|
|
104
|
-
"category": "confirmed_risk|suspected_risk|defense_gap|hardening|policy",
|
|
105
|
-
"confidence": "high|medium|low",
|
|
106
|
-
"location": "[file:line]",
|
|
107
|
-
"description": "[検出された具体的な問題]",
|
|
108
|
-
"rationale": "[カテゴリ別、上記参照]",
|
|
109
|
-
"suggestion": "[具体的な修正方法]"
|
|
110
|
-
}
|
|
103
|
+
{"category": "confirmed_risk|suspected_risk|defense_gap|hardening|policy", "confidence": "high|medium|low", "location": "[file:line]", "description": "[検出された具体的な問題]", "rationale": "[カテゴリ別、上記参照]", "suggestion": "[具体的な修正方法]"}
|
|
111
104
|
],
|
|
112
105
|
"notes": "[hardening/policy検出結果の要約、statusがapproved_with_notesの場合に提示]",
|
|
113
106
|
"requiredFixes": [
|
|
114
|
-
{
|
|
115
|
-
"location": "[file:line — Fix Mode の許可リスト拡張のため file[:line] として解釈可能であること]",
|
|
116
|
-
"issue": "[修正対象の具体的な問題 — 対応する finding から取得]",
|
|
117
|
-
"fix": "[具体的な修正指示]"
|
|
118
|
-
}
|
|
107
|
+
{"location": "[file:line — Fix Mode の許可リスト拡張のため file[:line] として解釈可能であること]", "issue": "[修正対象の具体的な問題 — 対応する finding から取得]", "fix": "[具体的な修正指示]"}
|
|
119
108
|
]
|
|
120
109
|
}
|
|
121
110
|
```
|
|
@@ -134,7 +123,7 @@ coding-standardsのSecurity Principlesの各原則に対して実装を検証:
|
|
|
134
123
|
- 1つ以上の confirmed_risk の検出結果(`blocked` にルーティングされたものを除く)
|
|
135
124
|
- 主要な入力境界に影響する複数の defense_gap
|
|
136
125
|
- `requiredFixes` は `needs_revision` 返却時には非空でなければならない。内容:
|
|
137
|
-
- すべての `confirmed_risk` 項目(`blocked`
|
|
126
|
+
- すべての `confirmed_risk` 項目(`blocked` にエスカレーションされていないもの。各項目の `fix` はコードレベルの修正策を記述)
|
|
138
127
|
- 主要な入力境界に該当する `defense_gap` 項目(`fix` は追加すべき防御層を記述)
|
|
139
128
|
- 各項目の `fix` は下流の実装ステップが直接適用可能なコードレベルの修正策とする。
|
|
140
129
|
|
|
@@ -152,17 +152,14 @@ description: {生成したdescription}
|
|
|
152
152
|
{
|
|
153
153
|
"mode": "creation|modification",
|
|
154
154
|
"skillName": "...",
|
|
155
|
-
"frontmatter": {
|
|
156
|
-
"name": "...",
|
|
157
|
-
"description": "..."
|
|
158
|
-
},
|
|
155
|
+
"frontmatter": {"name": "...", "description": "..."},
|
|
159
156
|
"body": "frontmatter以降のmarkdownコンテンツ全文",
|
|
160
157
|
"references": [
|
|
161
|
-
{
|
|
158
|
+
{"filename": "...", "content": "..."}
|
|
162
159
|
],
|
|
163
160
|
"optimizationReport": {
|
|
164
161
|
"issuesFound": [
|
|
165
|
-
{
|
|
162
|
+
{"pattern": "BP-XXX", "severity": "P1/P2/P3", "location": "...", "transform": "..."}
|
|
166
163
|
],
|
|
167
164
|
"researchFindings": [],
|
|
168
165
|
"lineCount": 0,
|
|
@@ -87,56 +87,20 @@ skill-optimizationの9つの編集原則に対して評価:
|
|
|
87
87
|
"grade": "A|B|C",
|
|
88
88
|
"summary": "1-2文の総合評価",
|
|
89
89
|
"patternIssues": [
|
|
90
|
-
{
|
|
91
|
-
"pattern": "BP-XXX",
|
|
92
|
-
"severity": "P1|P2|P3",
|
|
93
|
-
"location": "セクション見出し",
|
|
94
|
-
"original": "引用テキスト",
|
|
95
|
-
"suggestedFix": "置換テキスト"
|
|
96
|
-
}
|
|
90
|
+
{"pattern": "BP-XXX", "severity": "P1|P2|P3", "location": "セクション見出し", "original": "引用テキスト", "suggestedFix": "置換テキスト"}
|
|
97
91
|
],
|
|
98
92
|
"patternExceptions": [
|
|
99
|
-
{
|
|
100
|
-
"pattern": "BP-XXX",
|
|
101
|
-
"location": "セクション見出し",
|
|
102
|
-
"original": "引用テキスト",
|
|
103
|
-
"conditions": {
|
|
104
|
-
"singleStepDestruction": "true|false + エビデンス",
|
|
105
|
-
"callerCannotRecover": "true|false + エビデンス",
|
|
106
|
-
"operationalNotPolicy": "true|false + エビデンス",
|
|
107
|
-
"positiveFormBlursScope": "true|false + エビデンス"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
93
|
+
{"pattern": "BP-XXX", "location": "セクション見出し", "original": "引用テキスト", "conditions": {"singleStepDestruction": "true|false + エビデンス", "callerCannotRecover": "true|false + エビデンス", "operationalNotPolicy": "true|false + エビデンス", "positiveFormBlursScope": "true|false + エビデンス"}}
|
|
110
94
|
],
|
|
111
95
|
"principlesEvaluation": [
|
|
112
|
-
{
|
|
113
|
-
"principle": "1: コンテキスト効率",
|
|
114
|
-
"status": "pass|partial|fail",
|
|
115
|
-
"detail": "合格以外の場合の説明"
|
|
116
|
-
}
|
|
96
|
+
{"principle": "1: コンテキスト効率", "status": "pass|partial|fail", "detail": "合格以外の場合の説明"}
|
|
117
97
|
],
|
|
118
|
-
"progressiveDisclosure": {
|
|
119
|
-
"tier1": "pass|fail(description品質)",
|
|
120
|
-
"tier2": "pass|fail(本文構造)",
|
|
121
|
-
"tier3": "pass|fail(参照構成)",
|
|
122
|
-
"details": "問題がある場合の具体的な指摘"
|
|
123
|
-
},
|
|
98
|
+
"progressiveDisclosure": {"tier1": "pass|fail(description品質)", "tier2": "pass|fail(本文構造)", "tier3": "pass|fail(参照構成)", "details": "問題がある場合の具体的な指摘"},
|
|
124
99
|
"crossSkillIssues": [
|
|
125
|
-
{
|
|
126
|
-
"overlappingSkill": "スキル名",
|
|
127
|
-
"description": "重複内容",
|
|
128
|
-
"recommendation": "参照に置換 or 重複排除"
|
|
129
|
-
}
|
|
100
|
+
{"overlappingSkill": "スキル名", "description": "重複内容", "recommendation": "参照に置換 or 重複排除"}
|
|
130
101
|
],
|
|
131
|
-
"balanceAssessment": {
|
|
132
|
-
|
|
133
|
-
"lostExpertise": "none|minor|major",
|
|
134
|
-
"clarityTradeOff": "none|minor|major",
|
|
135
|
-
"descriptionQuality": "pass|needs fix"
|
|
136
|
-
},
|
|
137
|
-
"actionItems": [
|
|
138
|
-
"優先度順の修正リスト(P1 → P2 → 原則)"
|
|
139
|
-
]
|
|
102
|
+
"balanceAssessment": {"overOptimization": "none|minor|major", "lostExpertise": "none|minor|major", "clarityTradeOff": "none|minor|major", "descriptionQuality": "pass|needs fix"},
|
|
103
|
+
"actionItems": ["優先度順の修正リスト(P1 → P2 → 原則)"]
|
|
140
104
|
}
|
|
141
105
|
```
|
|
142
106
|
|
|
@@ -73,6 +73,10 @@ skills: project-context, technical-spec, coding-standards, implementation-approa
|
|
|
73
73
|
| mitigation | 影響を軽減する対策 | 根本解決まで時間がかかる場合の暫定策 |
|
|
74
74
|
| fundamental | 再発防止を含む抜本対策 | 同様の問題が繰り返し発生している場合 |
|
|
75
75
|
|
|
76
|
+
**隣接ケースのカバレッジ**:
|
|
77
|
+
- 確認済みの障害点が `bug-fix` / `regression` / `state-change` / `boundary-change` に関わる場合(デバッグフローには Change Category フィールドが無いため、障害点自体から判断する)、同一の経路・契約・永続状態・外部境界を共有するケースが同じ修正を必要とするか評価する
|
|
78
|
+
- 同一クラスの欠陥を共有する隣接ケースは解決スコープに含める。除外するものは residualRisks にその理由を記録する
|
|
79
|
+
|
|
76
80
|
**生成した解決策の検証**:
|
|
77
81
|
- プロジェクトルールに該当指針があるか確認
|
|
78
82
|
- 指針がない領域は、WebSearchでその領域の現在のベストプラクティスを調査し、解決策が標準的アプローチに沿っているか検証
|
|
@@ -116,24 +120,10 @@ skills: project-context, technical-spec, coding-standards, implementation-approa
|
|
|
116
120
|
},
|
|
117
121
|
"solutions": [
|
|
118
122
|
{
|
|
119
|
-
"id": "S1",
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"implementation": {
|
|
124
|
-
"approach": "実装アプローチの説明",
|
|
125
|
-
"affectedFiles": ["変更が必要なファイル"],
|
|
126
|
-
"dependencies": ["影響を受ける依存関係"]
|
|
127
|
-
},
|
|
128
|
-
"tradeoffs": {
|
|
129
|
-
"cost": {"level": "low|medium|high", "details": "詳細"},
|
|
130
|
-
"risk": {"level": "low|medium|high", "details": "詳細"},
|
|
131
|
-
"scope": {"level": "low|medium|high", "details": "詳細"},
|
|
132
|
-
"maintainability": {"level": "low|medium|high", "details": "詳細"},
|
|
133
|
-
"certainty": {"level": "low|medium|high", "details": "詳細"}
|
|
134
|
-
},
|
|
135
|
-
"pros": ["メリット"],
|
|
136
|
-
"cons": ["デメリット"]
|
|
123
|
+
"id": "S1", "name": "解決策の名前", "type": "direct|workaround|mitigation|fundamental", "description": "解決策の詳細説明",
|
|
124
|
+
"implementation": {"approach": "実装アプローチの説明", "affectedFiles": ["変更が必要なファイル"], "dependencies": ["影響を受ける依存関係"]},
|
|
125
|
+
"tradeoffs": {"cost": {"level": "low|medium|high", "details": "詳細"}, "risk": {"level": "low|medium|high", "details": "詳細"}, "scope": {"level": "low|medium|high", "details": "詳細"}, "maintainability": {"level": "low|medium|high", "details": "詳細"}, "certainty": {"level": "low|medium|high", "details": "詳細"}},
|
|
126
|
+
"pros": ["メリット"], "cons": ["デメリット"]
|
|
137
127
|
}
|
|
138
128
|
],
|
|
139
129
|
"recommendation": {
|
|
@@ -144,12 +134,7 @@ skills: project-context, technical-spec, coding-standards, implementation-approa
|
|
|
144
134
|
},
|
|
145
135
|
"implementationPlan": {
|
|
146
136
|
"steps": [
|
|
147
|
-
{
|
|
148
|
-
"order": 1,
|
|
149
|
-
"action": "具体的なアクション",
|
|
150
|
-
"verification": "このステップの検証方法",
|
|
151
|
-
"rollback": "問題発生時のロールバック手順"
|
|
152
|
-
}
|
|
137
|
+
{"order": 1, "action": "具体的なアクション", "verification": "このステップの検証方法", "rollback": "問題発生時のロールバック手順"}
|
|
153
138
|
],
|
|
154
139
|
"criticalPoints": ["特に注意すべきポイント"]
|
|
155
140
|
},
|
|
@@ -174,6 +159,6 @@ skills: project-context, technical-spec, coding-standards, implementation-approa
|
|
|
174
159
|
|
|
175
160
|
最終 JSON 出力前に下記の各項目を実行する。未充足の項目があれば、該当 Step に戻り完了させてから JSON を出力すること。
|
|
176
161
|
|
|
177
|
-
- [ ]
|
|
178
|
-
- [ ]
|
|
162
|
+
- [ ] 技術的結論だけでなくユーザー報告の症状に解決策が対応している
|
|
163
|
+
- [ ] 解決策導出前に入力の障害点とユーザー報告の整合性を確認した
|
|
179
164
|
- [ ] 確認された各障害点に対応する修正が実装計画に含まれている
|
|
@@ -79,13 +79,13 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
79
79
|
|
|
80
80
|
4. **タスクファイルの生成**
|
|
81
81
|
|
|
82
|
-
命名は subagents-orchestration-guide「Layer-Aware Agent Routing」のレイヤールーティング規約に従う。素の `{plan-name}-task-*.md` 形式は
|
|
82
|
+
命名は subagents-orchestration-guide「Layer-Aware Agent Routing」のレイヤールーティング規約に従う。素の `{plan-name}-task-*.md` 形式はbackend予約であり、frontendタスクには使用してはならない。
|
|
83
83
|
|
|
84
|
-
| 計画分類 | タスクファイル名 |
|
|
85
|
-
|
|
86
|
-
| 単層 **backend** | `{plan-name}-task-{number}.md`(推奨)または `{plan-name}-backend-task-{number}.md` |
|
|
87
|
-
| 単層 **frontend** | `{plan-name}-frontend-task-{number}.md`(必須 — 素の `*-task-*` 形式はbackend予約) |
|
|
88
|
-
| 複層(backend + frontendをまたぐ) | `{plan-name}-backend-task-{number}.md` と `{plan-name}-frontend-task-{number}.md`(タスクスライスごとにレイヤー別に1ファイルずつ) |
|
|
84
|
+
| 計画分類 | タスクファイル名 |
|
|
85
|
+
|---------|---------------|
|
|
86
|
+
| 単層 **backend** | `{plan-name}-task-{number}.md`(推奨)または `{plan-name}-backend-task-{number}.md` |
|
|
87
|
+
| 単層 **frontend** | `{plan-name}-frontend-task-{number}.md`(必須 — 素の `*-task-*` 形式はbackend予約) |
|
|
88
|
+
| 複層(backend + frontendをまたぐ) | `{plan-name}-backend-task-{number}.md` と `{plan-name}-frontend-task-{number}.md`(タスクスライスごとにレイヤー別に1ファイルずつ) |
|
|
89
89
|
|
|
90
90
|
レイヤーはタスクの対象ファイルパスから判定する(technical-specスキルのプロジェクト構造定義を参照)。
|
|
91
91
|
|
|
@@ -102,6 +102,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
102
102
|
- `## Implementation Content`(タスク概要)
|
|
103
103
|
- `## Target Files`
|
|
104
104
|
- `## Investigation Targets`(executor が実装前に読んで理解すべきファイル)
|
|
105
|
+
- `## Change Category`(タスクがバグ修正・リグレッション・状態変更・境界変更の場合 — 下記「Change Category の分類」参照)
|
|
105
106
|
- `## Implementation Steps (TDD: Red-Green-Refactor)`
|
|
106
107
|
- `## Quality Assurance Mechanisms`(作業計画書ヘッダーから導出 — 下記「品質保証メカニズムの伝播」参照)
|
|
107
108
|
- `## Operation Verification Methods`(作業計画書の Verification Strategy から導出)
|
|
@@ -119,7 +120,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
119
120
|
| フロントエンド統合 / fixture-e2eテスト | UI Specのコンポーネントセクション(状態×表示マトリクスとインタラクション定義の表を含む)、実装済みのコンポーネントコード、フィクスチャデータファイル |
|
|
120
121
|
| テスト実装 | テストスケルトンのコメント/アノテーション、テスト対象コード、実際のAPI/認証フロー |
|
|
121
122
|
| E2E環境セットアップ | 現在の環境設定(起動スクリプト、docker-compose等)、seed scripts、既存のfixtureパターン、アプリケーション認証フロー |
|
|
122
|
-
| パッケージ間境界の実装 |
|
|
123
|
+
| パッケージ間境界の実装 | 境界の両側のConnection Mapオーナーのファイルパス、および両者間のコントラクト定義ファイル(期待されるシグナルおよびSerialized Format/Consumer Parse Ruleはタスクの「Boundary Context」ノートに記録し、Investigation Targetsには含めない) |
|
|
123
124
|
| バグ修正 / リファクタリング | 影響を受けるコードパス、関連テストカバレッジ、エラー再現コンテキスト |
|
|
124
125
|
| 振る舞いの置換・リライト | 置換対象の既存実装、その観察可能な出力、Design Docの検証戦略セクション |
|
|
125
126
|
| ADRに拘束されるタスク(作業計画書のADR Bindings表がこのタスクをカバーする) | このタスクをカバーする各バインディング行について、行の `Source Section` 値に対応するセクションヒント(例: `(§ Decision)` または `(§ Implementation Guidance)`)を付したADRファイル |
|
|
@@ -182,7 +183,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
182
183
|
|
|
183
184
|
1. **タスクIDで照合**: Connection Mapの各行について、「カバーするタスク」列に記載されたタスクを特定する
|
|
184
185
|
2. **Investigation Targetsに追加**: 境界の両側のオーナーモジュールのファイルパスを、マッチした各タスクの Investigation Targets に追加する
|
|
185
|
-
3. **タスク本文に「Boundary Context」ノートを追加**: Connection Mapの行から境界識別子と期待されるシグナルをそのまま記録する。executor
|
|
186
|
+
3. **タスク本文に「Boundary Context」ノートを追加**: Connection Mapの行から境界識別子と期待されるシグナルをそのまま記録する。executorは、実装が生み出すべき観測可能な証拠を把握できる。行が**Serialized Format**と**Consumer Parse Rule**(シリアライズ境界)を持つ場合、両方を逐語でノートにコピーし、タスクが満たすべきroundtripチェックを記述する: producerが出力する値を、consumerが期待どおりの値へパースできること。
|
|
186
187
|
4. **未提供の場合はスキップ**: 作業計画書にConnection Mapがない場合は、本伝播ステップをスキップする
|
|
187
188
|
|
|
188
189
|
## ADR Binding伝播
|
|
@@ -205,6 +206,19 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
205
206
|
決定がfile:lineやコマンドだけでは検証できない場合、述語は論理的判断に依拠してよいが、Y/Nで回答可能でなければならない
|
|
206
207
|
4. **提供時のみ適用**: この伝播は作業計画書にADR Bindings表が含まれる場合のみ実行する
|
|
207
208
|
|
|
209
|
+
## Reference Contract Propagation
|
|
210
|
+
|
|
211
|
+
作業計画書に**Reference Contract Values**表が含まれる場合、各拘束的観測値を、それがカバーするタスクに伝播する。executorが再導出すべき後方参照ではなく正確な値に対して検証されるようにするため:
|
|
212
|
+
|
|
213
|
+
1. **タスクIDで照合**: 各行について、「Covered By Task(s)」に記載されたタスクを特定する
|
|
214
|
+
2. **Investigation Targetsに追加**: 行の `Design Doc (§ セクション)` を、マッチした各タスクに追加する(設計トレーサビリティ伝播のエントリと重複排除する)
|
|
215
|
+
3. **タスクにReference Contracts表の行を追加**: マッチした各行について、タスクのReference Contracts表に1行追加する:
|
|
216
|
+
- **Source**: `Design Doc (§ セクション)` の値
|
|
217
|
+
- **Contract Type**: `Contract Type` 値を逐語コピーする(structure-order / derived-display / state-lifecycle-negative)
|
|
218
|
+
- **Required Observable Value**: 作業計画書の行から値を**逐語**コピーし、正確な文言と詳細を保持する
|
|
219
|
+
- **Compliance Check**: 最終実装が値を再現することを述べる、Y/Nで回答可能な肯定述語を書く(例: 「列挙フィールドが指定順序でレンダリングされる」「ラベルが生コードの代わりに参照名を表示する」「永続状態は復元シグナルがある場合のみ適用される」)
|
|
220
|
+
4. **提供時のみ適用**: この伝播は作業計画書にReference Contract Values表が含まれる場合のみ実行する。シリアライズ境界は上記のConnection Map伝播が扱い、ここでは扱わない。
|
|
221
|
+
|
|
208
222
|
## 設計トレーサビリティ伝播
|
|
209
223
|
|
|
210
224
|
作業計画書に設計-計画トレーサビリティ表が含まれる場合、該当するDDセクションを各タスクに伝播する:
|
|
@@ -222,6 +236,21 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
222
236
|
3. **カバー範囲未指定の場合は全タスクに記載**: メカニズムのカバー範囲が指定されていない場合(project-wide)、すべてのタスクに含める
|
|
223
237
|
4. **該当なしの場合は省略**: タスクの Target Files に該当するメカニズムがなければ `## Quality Assurance Mechanisms` セクションを省略
|
|
224
238
|
|
|
239
|
+
## Change Category の分類
|
|
240
|
+
|
|
241
|
+
タスクが観測された振る舞いを修正する、または状態や境界の振る舞いを変える場合、executor と下流のレビュアーがタスクの意図を推測し直すのではなくフィールド値からスコープ限定の隣接ケース走査を実行できるよう、これを分類する:
|
|
242
|
+
|
|
243
|
+
1. **作業計画書と Design Doc から分類する**。タスクは複数のカテゴリに該当しうる(例: 永続状態の境界を変えるリグレッション修正)。該当する値をすべて記録する:
|
|
244
|
+
- `bug-fix`: 観測された誤った振る舞いを修正する
|
|
245
|
+
- `regression`: 過去の変更が壊した振る舞いを復元する
|
|
246
|
+
- `state-change`: 状態の書き込み・遷移・永続化のされ方を変える
|
|
247
|
+
- `boundary-change`: 外部・パッケージ間・永続化の境界で、公開または利用される契約を変える
|
|
248
|
+
2. **タスクの `Change Category` フィールドに**該当する値をすべてカンマ区切りで記入する(task-template 参照)。
|
|
249
|
+
3. **隣接ケースを Investigation Targets に追加する**。該当する各カテゴリについて、変更と同一の経路・契約・永続状態・外部境界を共有するファイル(影響を受ける境界の両側のオーナーモジュールを含む)を追加し、executor が同一クラスの欠陥を走査できるようにする。該当する全カテゴリにわたって対象を統合する。
|
|
250
|
+
4. **該当する場合のみ適用する**。純粋な追加・設定・スキャフォールディングのタスクは既定で `Change Category` フィールドを持たず、この伝播をスキップする。
|
|
251
|
+
|
|
252
|
+
これは AC ごとの境界パス証明(AC の*内側*の境界パスを証明する)とは別物である。Change Category は、タスクの AC の*外側*にありながらその経路・契約・状態・境界を共有するケースの走査を駆動する。
|
|
253
|
+
|
|
225
254
|
## タスクファイルテンプレート
|
|
226
255
|
|
|
227
256
|
詳細はdocumentation-criteriaスキルのタスクテンプレートを参照。
|
|
@@ -308,7 +337,7 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
308
337
|
[依存関係を考慮した推奨実行順序]
|
|
309
338
|
|
|
310
339
|
次のステップ:
|
|
311
|
-
|
|
340
|
+
分解されたタスクを順序に従って実行する。
|
|
312
341
|
```
|
|
313
342
|
|
|
314
343
|
## 重要な考慮事項
|
|
@@ -359,6 +388,8 @@ implementation-approachスキルで決定された実装戦略パターンに基
|
|
|
359
388
|
- [ ] 実装効率と手戻り防止(共通処理の事前識別、影響範囲の明確化)
|
|
360
389
|
- [ ] 全タスクに調査対象が指定されている(具体的なファイルパス、曖昧なカテゴリではない)
|
|
361
390
|
- [ ] 主張を実装する各タスクに Proof Obligations を記録(主要な故障モード + 検証する境界)
|
|
391
|
+
- [ ] bug-fix / regression / state-change / boundary-change のタスクに Change Category を設定し、隣接する経路/境界のオーナーを Investigation Targets に追加済み
|
|
392
|
+
- [ ] Reference Contract Values行を該当タスクにReference Contractsとして伝播し、値を逐語コピー済み(作業計画書に表がある場合)
|
|
362
393
|
- [ ] 作業計画書ヘッダーの品質保証メカニズムを該当タスクに伝播済み
|
|
363
394
|
|
|
364
395
|
## タスク設計の原則
|