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
|
@@ -199,11 +199,7 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
199
199
|
All responses share `status` plus a `taskFileMechanisms` object when `task_file` is provided:
|
|
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
|
When `task_file` is not provided, set `"provided": false` and omit `executed`/`skipped`.
|
|
209
205
|
|
|
@@ -163,11 +163,7 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
163
163
|
All responses share `status` plus a `taskFileMechanisms` object when `task_file` is provided:
|
|
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
|
When `task_file` is not provided, set `"provided": false` and omit `executed`/`skipped`.
|
|
173
169
|
|
|
@@ -116,23 +116,12 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
116
116
|
"fileCount": 3,
|
|
117
117
|
"adrRequired": true,
|
|
118
118
|
"adrReason": "specific condition met, or null if not required",
|
|
119
|
-
"technicalConsiderations": {
|
|
120
|
-
"constraints": ["list"],
|
|
121
|
-
"risks": ["list"],
|
|
122
|
-
"dependencies": ["list"]
|
|
123
|
-
},
|
|
119
|
+
"technicalConsiderations": {"constraints": ["list"], "risks": ["list"], "dependencies": ["list"]},
|
|
124
120
|
"scopeDependencies": [
|
|
125
|
-
{
|
|
126
|
-
"question": "specific question that affects scale",
|
|
127
|
-
"impact": { "if_yes": "large", "if_no": "medium" }
|
|
128
|
-
}
|
|
121
|
+
{"question": "specific question that affects scale", "impact": {"if_yes": "large", "if_no": "medium"}}
|
|
129
122
|
],
|
|
130
123
|
"questions": [
|
|
131
|
-
{
|
|
132
|
-
"category": "boundary|existing_code|dependencies",
|
|
133
|
-
"question": "specific question",
|
|
134
|
-
"options": ["A", "B", "C"]
|
|
135
|
-
}
|
|
124
|
+
{"category": "boundary|existing_code|dependencies", "question": "specific question", "options": ["A", "B", "C"]}
|
|
136
125
|
]
|
|
137
126
|
}
|
|
138
127
|
```
|
|
@@ -59,24 +59,11 @@ Return structured JSON:
|
|
|
59
59
|
|
|
60
60
|
```json
|
|
61
61
|
{
|
|
62
|
-
"taskAnalysis": {
|
|
63
|
-
"taskType": "implementation|fix|refactoring|design|quality-improvement",
|
|
64
|
-
"essence": "Fundamental purpose", "estimatedFiles": 3, "scale": "small|medium|large",
|
|
65
|
-
"extractedTags": ["implementation", "testing", "security"]
|
|
66
|
-
},
|
|
62
|
+
"taskAnalysis": {"taskType": "implementation|fix|refactoring|design|quality-improvement", "essence": "Fundamental purpose", "estimatedFiles": 3, "scale": "small|medium|large", "extractedTags": ["implementation", "testing", "security"]},
|
|
67
63
|
"selectedSkills": [
|
|
68
|
-
{
|
|
69
|
-
"skill": "coding-standards",
|
|
70
|
-
"sections": [{"title": "Section Name", "content": "## Section content..."}],
|
|
71
|
-
"reason": "Why needed", "priority": "high"
|
|
72
|
-
}
|
|
64
|
+
{"skill": "coding-standards", "sections": [{"title": "Section Name", "content": "## Section content..."}], "reason": "Why needed", "priority": "high"}
|
|
73
65
|
],
|
|
74
|
-
"metaCognitiveGuidance": {
|
|
75
|
-
"taskEssence": "Understanding fundamental purpose, not surface work",
|
|
76
|
-
"pastFailures": ["error-fixing impulse", "large changes at once", "insufficient testing"],
|
|
77
|
-
"potentialPitfalls": ["No root cause analysis", "No phased approach", "No tests"],
|
|
78
|
-
"firstStep": {"action": "First action", "rationale": "Why first"}
|
|
79
|
-
},
|
|
66
|
+
"metaCognitiveGuidance": {"taskEssence": "Understanding fundamental purpose, not surface work", "pastFailures": ["error-fixing impulse", "large changes at once", "insufficient testing"], "potentialPitfalls": ["No root cause analysis", "No phased approach", "No tests"], "firstStep": {"action": "First action", "rationale": "Why first"}},
|
|
80
67
|
"metaCognitiveQuestions": ["Most important quality criterion?", "Past problems in similar tasks?", "Which part first?"],
|
|
81
68
|
"warningPatterns": [
|
|
82
69
|
{"pattern": "Large changes at once", "risk": "High complexity", "mitigation": "Split into phases"},
|
|
@@ -164,17 +164,8 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
164
164
|
"entryPoints": ["/path1", "/path2"],
|
|
165
165
|
"relatedFiles": ["src/feature/*"],
|
|
166
166
|
"dependencies": ["UNIT-002"],
|
|
167
|
-
"valueProfile": {
|
|
168
|
-
|
|
169
|
-
"userGoal": "What the user is trying to accomplish with this feature",
|
|
170
|
-
"valueCategory": "High-level capability this belongs to (e.g., 'Authentication', 'Content Management', 'Reporting')"
|
|
171
|
-
},
|
|
172
|
-
"technicalProfile": {
|
|
173
|
-
"primaryModules": ["src/<feature>/module-a.ts", "src/<feature>/module-b.ts"],
|
|
174
|
-
"publicInterfaces": ["ServiceA.operation()", "ModuleB.handle()"],
|
|
175
|
-
"dataFlowSummary": "Input source → core processing path → output destination",
|
|
176
|
-
"infrastructureDeps": ["external dependency list"]
|
|
177
|
-
},
|
|
167
|
+
"valueProfile": {"targetPersona": "Who this feature serves (e.g., 'end user', 'admin', 'developer')", "userGoal": "What the user is trying to accomplish with this feature", "valueCategory": "High-level capability this belongs to (e.g., 'Authentication', 'Content Management', 'Reporting')"},
|
|
168
|
+
"technicalProfile": {"primaryModules": ["src/<feature>/module-a.ts", "src/<feature>/module-b.ts"], "publicInterfaces": ["ServiceA.operation()", "ModuleB.handle()"], "dataFlowSummary": "Input source → core processing path → output destination", "infrastructureDeps": ["external dependency list"]},
|
|
178
169
|
"unitInventory": {
|
|
179
170
|
"routes": [
|
|
180
171
|
{"method": "POST", "path": "/api/auth/login", "handler": "AuthController.handleLogin", "file": "routes:15"}
|
|
@@ -189,28 +180,13 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
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": "Area name",
|
|
201
|
-
"reason": "Why uncertain",
|
|
202
|
-
"suggestedAction": "What to do"
|
|
203
|
-
}
|
|
186
|
+
{"area": "Area name", "reason": "Why uncertain", "suggestedAction": "What to do"}
|
|
204
187
|
],
|
|
205
188
|
"prdUnits": [
|
|
206
|
-
{
|
|
207
|
-
"id": "PRD-001",
|
|
208
|
-
"name": "PRD unit name (user-value level)",
|
|
209
|
-
"description": "What this capability delivers to the user",
|
|
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 unit name (user-value level)", "description": "What this capability delivers to the user", "sourceUnits": ["UNIT-001", "UNIT-003"], "combinedRelatedFiles": ["src/feature-a/*", "src/feature-b/*"], "combinedEntryPoints": ["/path1", "/path2", "/path3"]}
|
|
214
190
|
],
|
|
215
191
|
"limitations": ["What could not be discovered and why"]
|
|
216
192
|
}
|
|
@@ -100,22 +100,11 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
100
100
|
"summary": "[1-2 sentence summary]",
|
|
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": "[specific issue found]",
|
|
108
|
-
"rationale": "[category-specific, see Category-Specific Rationale]",
|
|
109
|
-
"suggestion": "[specific fix]"
|
|
110
|
-
}
|
|
103
|
+
{"category": "confirmed_risk|suspected_risk|defense_gap|hardening|policy", "confidence": "high|medium|low", "location": "[file:line]", "description": "[specific issue found]", "rationale": "[category-specific, see Category-Specific Rationale]", "suggestion": "[specific fix]"}
|
|
111
104
|
],
|
|
112
105
|
"notes": "[summary of hardening/policy findings for completion report, present when status is approved_with_notes]",
|
|
113
106
|
"requiredFixes": [
|
|
114
|
-
{
|
|
115
|
-
"location": "[file:line — parseable as file[:line] for Fix Mode allowed-list expansion]",
|
|
116
|
-
"issue": "[specific issue to fix — drawn from the corresponding finding]",
|
|
117
|
-
"fix": "[specific fix instruction]"
|
|
118
|
-
}
|
|
107
|
+
{"location": "[file:line — parseable as file[:line] for Fix Mode allowed-list expansion]", "issue": "[specific issue to fix — drawn from the corresponding finding]", "fix": "[specific fix instruction]"}
|
|
119
108
|
]
|
|
120
109
|
}
|
|
121
110
|
```
|
|
@@ -152,17 +152,14 @@ Return results as structured JSON:
|
|
|
152
152
|
{
|
|
153
153
|
"mode": "creation|modification",
|
|
154
154
|
"skillName": "...",
|
|
155
|
-
"frontmatter": {
|
|
156
|
-
"name": "...",
|
|
157
|
-
"description": "..."
|
|
158
|
-
},
|
|
155
|
+
"frontmatter": {"name": "...", "description": "..."},
|
|
159
156
|
"body": "full markdown content after frontmatter",
|
|
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 @@ Return results as structured JSON:
|
|
|
87
87
|
"grade": "A|B|C",
|
|
88
88
|
"summary": "1-2 sentence overall assessment",
|
|
89
89
|
"patternIssues": [
|
|
90
|
-
{
|
|
91
|
-
"pattern": "BP-XXX",
|
|
92
|
-
"severity": "P1|P2|P3",
|
|
93
|
-
"location": "section heading",
|
|
94
|
-
"original": "quoted text",
|
|
95
|
-
"suggestedFix": "replacement text"
|
|
96
|
-
}
|
|
90
|
+
{"pattern": "BP-XXX", "severity": "P1|P2|P3", "location": "section heading", "original": "quoted text", "suggestedFix": "replacement text"}
|
|
97
91
|
],
|
|
98
92
|
"patternExceptions": [
|
|
99
|
-
{
|
|
100
|
-
"pattern": "BP-XXX",
|
|
101
|
-
"location": "section heading",
|
|
102
|
-
"original": "quoted text",
|
|
103
|
-
"conditions": {
|
|
104
|
-
"singleStepDestruction": "true|false + evidence",
|
|
105
|
-
"callerCannotRecover": "true|false + evidence",
|
|
106
|
-
"operationalNotPolicy": "true|false + evidence",
|
|
107
|
-
"positiveFormBlursScope": "true|false + evidence"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
93
|
+
{"pattern": "BP-XXX", "location": "section heading", "original": "quoted text", "conditions": {"singleStepDestruction": "true|false + evidence", "callerCannotRecover": "true|false + evidence", "operationalNotPolicy": "true|false + evidence", "positiveFormBlursScope": "true|false + evidence"}}
|
|
110
94
|
],
|
|
111
95
|
"principlesEvaluation": [
|
|
112
|
-
{
|
|
113
|
-
"principle": "1: Context efficiency",
|
|
114
|
-
"status": "pass|partial|fail",
|
|
115
|
-
"detail": "explanation if not pass"
|
|
116
|
-
}
|
|
96
|
+
{"principle": "1: Context efficiency", "status": "pass|partial|fail", "detail": "explanation if not pass"}
|
|
117
97
|
],
|
|
118
|
-
"progressiveDisclosure": {
|
|
119
|
-
"tier1": "pass|fail (description quality)",
|
|
120
|
-
"tier2": "pass|fail (body structure)",
|
|
121
|
-
"tier3": "pass|fail (reference organization)",
|
|
122
|
-
"details": "specific issues if any"
|
|
123
|
-
},
|
|
98
|
+
"progressiveDisclosure": {"tier1": "pass|fail (description quality)", "tier2": "pass|fail (body structure)", "tier3": "pass|fail (reference organization)", "details": "specific issues if any"},
|
|
124
99
|
"crossSkillIssues": [
|
|
125
|
-
{
|
|
126
|
-
"overlappingSkill": "skill-name",
|
|
127
|
-
"description": "what overlaps",
|
|
128
|
-
"recommendation": "reference or deduplicate"
|
|
129
|
-
}
|
|
100
|
+
{"overlappingSkill": "skill-name", "description": "what overlaps", "recommendation": "reference or deduplicate"}
|
|
130
101
|
],
|
|
131
|
-
"balanceAssessment": {
|
|
132
|
-
|
|
133
|
-
"lostExpertise": "none|minor|major",
|
|
134
|
-
"clarityTradeOff": "none|minor|major",
|
|
135
|
-
"descriptionQuality": "pass|needs fix"
|
|
136
|
-
},
|
|
137
|
-
"actionItems": [
|
|
138
|
-
"Prioritized list of fixes (P1 first, then P2, then principles)"
|
|
139
|
-
]
|
|
102
|
+
"balanceAssessment": {"overOptimization": "none|minor|major", "lostExpertise": "none|minor|major", "clarityTradeOff": "none|minor|major", "descriptionQuality": "pass|needs fix"},
|
|
103
|
+
"actionItems": ["Prioritized list of fixes (P1 first, then P2, then principles)"]
|
|
140
104
|
}
|
|
141
105
|
```
|
|
142
106
|
|
|
@@ -73,6 +73,10 @@ Generate at least 3 solutions from the following perspectives:
|
|
|
73
73
|
| mitigation | Measures to reduce impact | Temporary measure while waiting for root fix |
|
|
74
74
|
| fundamental | Comprehensive fix including recurrence prevention | When similar problems have occurred repeatedly |
|
|
75
75
|
|
|
76
|
+
**Adjacent Case Coverage**:
|
|
77
|
+
- When the confirmed failure point concerns a `bug-fix`, `regression`, `state-change`, or `boundary-change` (the debugging flow carries no Change Category field, so judge these from the failure point itself), evaluate whether cases sharing the same path, contract, persisted state, or external boundary need the same fix
|
|
78
|
+
- Include those adjacent cases in the solution scope when they share the same class of defect; record in residualRisks why any are excluded
|
|
79
|
+
|
|
76
80
|
**Generated Solution Verification**:
|
|
77
81
|
- Check if project rules have applicable guidelines
|
|
78
82
|
- For areas without guidelines, research current best practices via WebSearch to verify solutions align with standard approaches
|
|
@@ -116,24 +120,10 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
116
120
|
},
|
|
117
121
|
"solutions": [
|
|
118
122
|
{
|
|
119
|
-
"id": "S1",
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"implementation": {
|
|
124
|
-
"approach": "Implementation approach description",
|
|
125
|
-
"affectedFiles": ["Files requiring changes"],
|
|
126
|
-
"dependencies": ["Affected dependencies"]
|
|
127
|
-
},
|
|
128
|
-
"tradeoffs": {
|
|
129
|
-
"cost": {"level": "low|medium|high", "details": "Details"},
|
|
130
|
-
"risk": {"level": "low|medium|high", "details": "Details"},
|
|
131
|
-
"scope": {"level": "low|medium|high", "details": "Details"},
|
|
132
|
-
"maintainability": {"level": "low|medium|high", "details": "Details"},
|
|
133
|
-
"certainty": {"level": "low|medium|high", "details": "Details"}
|
|
134
|
-
},
|
|
135
|
-
"pros": ["Advantages"],
|
|
136
|
-
"cons": ["Disadvantages"]
|
|
123
|
+
"id": "S1", "name": "Solution name", "type": "direct|workaround|mitigation|fundamental", "description": "Detailed solution description",
|
|
124
|
+
"implementation": {"approach": "Implementation approach description", "affectedFiles": ["Files requiring changes"], "dependencies": ["Affected dependencies"]},
|
|
125
|
+
"tradeoffs": {"cost": {"level": "low|medium|high", "details": "Details"}, "risk": {"level": "low|medium|high", "details": "Details"}, "scope": {"level": "low|medium|high", "details": "Details"}, "maintainability": {"level": "low|medium|high", "details": "Details"}, "certainty": {"level": "low|medium|high", "details": "Details"}},
|
|
126
|
+
"pros": ["Advantages"], "cons": ["Disadvantages"]
|
|
137
127
|
}
|
|
138
128
|
],
|
|
139
129
|
"recommendation": {
|
|
@@ -144,12 +134,7 @@ Final message: exactly one JSON object matching the schema below (begins with `{
|
|
|
144
134
|
},
|
|
145
135
|
"implementationPlan": {
|
|
146
136
|
"steps": [
|
|
147
|
-
{
|
|
148
|
-
"order": 1,
|
|
149
|
-
"action": "Specific action",
|
|
150
|
-
"verification": "How to verify this step",
|
|
151
|
-
"rollback": "Rollback procedure if problems occur"
|
|
152
|
-
}
|
|
137
|
+
{"order": 1, "action": "Specific action", "verification": "How to verify this step", "rollback": "Rollback procedure if problems occur"}
|
|
153
138
|
],
|
|
154
139
|
"criticalPoints": ["Points requiring special attention"]
|
|
155
140
|
},
|
|
@@ -79,13 +79,13 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
79
79
|
|
|
80
80
|
4. **Task File Generation**
|
|
81
81
|
|
|
82
|
-
Naming follows the layer routing convention in subagents-orchestration-guide "Layer-Aware Agent Routing". The bare `{plan-name}-task-*.md` form
|
|
82
|
+
Naming follows the layer routing convention in subagents-orchestration-guide "Layer-Aware Agent Routing". The bare `{plan-name}-task-*.md` form is reserved for backend and must NOT be used for frontend tasks.
|
|
83
83
|
|
|
84
|
-
| Plan classification | Task filename |
|
|
85
|
-
|
|
86
|
-
| Single-layer **backend** | `{plan-name}-task-{number}.md` (preferred) OR `{plan-name}-backend-task-{number}.md` |
|
|
87
|
-
| Single-layer **frontend** | `{plan-name}-frontend-task-{number}.md` (REQUIRED — bare `*-task-*` form is reserved for backend) |
|
|
88
|
-
| Multi-layer (spans backend + frontend) | `{plan-name}-backend-task-{number}.md` AND `{plan-name}-frontend-task-{number}.md` (one file per layer per task slice) |
|
|
84
|
+
| Plan classification | Task filename |
|
|
85
|
+
|---------------------|---------------|
|
|
86
|
+
| Single-layer **backend** | `{plan-name}-task-{number}.md` (preferred) OR `{plan-name}-backend-task-{number}.md` |
|
|
87
|
+
| Single-layer **frontend** | `{plan-name}-frontend-task-{number}.md` (REQUIRED — bare `*-task-*` form is reserved for backend) |
|
|
88
|
+
| Multi-layer (spans backend + frontend) | `{plan-name}-backend-task-{number}.md` AND `{plan-name}-frontend-task-{number}.md` (one file per layer per task slice) |
|
|
89
89
|
|
|
90
90
|
Layer is determined from the task's Target files paths (refer to project structure defined in technical-spec skill).
|
|
91
91
|
|
|
@@ -102,6 +102,7 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
102
102
|
- Task overview
|
|
103
103
|
- Target files
|
|
104
104
|
- **Investigation Targets** (what the executor must read and understand before implementing)
|
|
105
|
+
- **Change Category** (when the task is a bug fix / regression / state-change / boundary-change — see Change Category Classification below)
|
|
105
106
|
- Concrete implementation steps
|
|
106
107
|
- **Quality Assurance Mechanisms** (derived from work plan header — see Quality Assurance Mechanism Propagation below)
|
|
107
108
|
- **Operation Verification Methods** (derived from Verification Strategy in work plan)
|
|
@@ -119,7 +120,7 @@ Decompose tasks based on implementation strategy patterns determined in implemen
|
|
|
119
120
|
| Frontend integration / fixture-e2e test | UI Spec component section including the State x Display Matrix and Interaction Definition tables, the implemented component code, fixture data files |
|
|
120
121
|
| Test implementation | Test skeleton comments/annotations, the target code being tested, actual API/auth flows |
|
|
121
122
|
| E2E environment setup | Current environment config (startup scripts, docker-compose or equivalent), seed scripts, existing fixture patterns, application auth flow |
|
|
122
|
-
| Cross-package boundary implementation |
|
|
123
|
+
| Cross-package boundary implementation | The Connection Map owner file path(s) on both sides of the boundary, plus the contract definition file between them (the expected signal and any serialized format/parse rule are recorded in the task's Boundary Context note, not as Investigation Targets) |
|
|
123
124
|
| Bug fix / refactor | The affected code paths, related test coverage, error reproduction context |
|
|
124
125
|
| Behavior replacement / rewrite | The existing implementation being replaced, its observable outputs, Design Doc Verification Strategy section |
|
|
125
126
|
| Task constrained by an ADR (work plan's ADR Bindings table covers this task) | The ADR file with section hint matching the row's `Source Section` value (e.g., `(§ Decision)` or `(§ Implementation Guidance)`) for each binding row covering this task |
|
|
@@ -182,7 +183,7 @@ When the work plan contains a Connection Map table, propagate boundary context t
|
|
|
182
183
|
|
|
183
184
|
1. **Lookup by task ID**: For each row in the Connection Map, locate the task(s) listed in the "Covered By Task(s)" column
|
|
184
185
|
2. **Append to Investigation Targets**: Add the boundary's owner module file paths on both sides to each matched task's Investigation Targets
|
|
185
|
-
3. **Add a "Boundary Context" note in the task body**: Record the boundary identifier and expected signal verbatim from the Connection Map row, so the executor knows what observable evidence the implementation must produce
|
|
186
|
+
3. **Add a "Boundary Context" note in the task body**: Record the boundary identifier and expected signal verbatim from the Connection Map row, so the executor knows what observable evidence the implementation must produce. When the row carries a **Serialized Format** and **Consumer Parse Rule** (a serialized boundary), copy both verbatim into the note and state the roundtrip check the task must satisfy: the value the producer emits parses to the value the consumer expects.
|
|
186
187
|
4. **Skip when not provided**: If the work plan has no Connection Map, skip this propagation step
|
|
187
188
|
|
|
188
189
|
## ADR Binding Propagation
|
|
@@ -205,6 +206,19 @@ When the work plan contains an ADR Bindings table, propagate each binding decisi
|
|
|
205
206
|
When the decision cannot be verified by file:line or command alone, the predicate may rely on reasoned judgment, but it must remain Y/N-answerable
|
|
206
207
|
4. **Apply only when provided**: Run this propagation only when the work plan contains an ADR Bindings table
|
|
207
208
|
|
|
209
|
+
## Reference Contract Propagation
|
|
210
|
+
|
|
211
|
+
When the work plan contains a **Reference Contract Values** table, propagate each binding observable value to the task(s) it covers, so the executor is checked against the exact value rather than a back-pointer it must re-derive:
|
|
212
|
+
|
|
213
|
+
1. **Lookup by task ID**: For each row, locate the task(s) listed in "Covered By Task(s)"
|
|
214
|
+
2. **Append to Investigation Targets**: Add the row's `Design Doc (§ Section)` to each matched task (deduplicate against Design Traceability Propagation entries)
|
|
215
|
+
3. **Add a Reference Contracts table row to the task**: For each matched row, add one row to the task's Reference Contracts table:
|
|
216
|
+
- **Source**: the `Design Doc (§ Section)` value
|
|
217
|
+
- **Contract Type**: copy the `Contract Type` value verbatim (structure-order / derived-display / state-lifecycle-negative)
|
|
218
|
+
- **Required Observable Value**: copy the value **verbatim** from the work plan row, preserving its exact wording and detail
|
|
219
|
+
- **Compliance Check**: write a Y/N-answerable positive predicate stating the final implementation reproduces the value (e.g., "the listed fields render in the specified order"; "the label shows the looked-up name in place of the raw code"; "the persisted state is applied only when the restore signal is present")
|
|
220
|
+
4. **Apply only when provided**: Run this propagation only when the work plan contains a Reference Contract Values table. Serialized boundaries are propagated by Connection Map Propagation above, not here.
|
|
221
|
+
|
|
208
222
|
## Design Traceability Propagation
|
|
209
223
|
|
|
210
224
|
When the work plan contains a Design-to-Plan Traceability table, propagate the matching DD section to each task:
|
|
@@ -222,6 +236,21 @@ When the work plan header includes a Quality Assurance Mechanisms table, propaga
|
|
|
222
236
|
3. **Include all if coverage is unspecified**: If a mechanism has no specific file coverage (applies project-wide), include it in every task
|
|
223
237
|
4. **Omit when no match**: If no mechanisms match a task's target files, omit the "Quality Assurance Mechanisms" section from that task
|
|
224
238
|
|
|
239
|
+
## Change Category Classification
|
|
240
|
+
|
|
241
|
+
When a task corrects observed behavior or alters how state or a boundary behaves, classify it so the executor and downstream reviewers run a scoped adjacent-case sweep from the field value, rather than re-inferring the task's intent:
|
|
242
|
+
|
|
243
|
+
1. **Classify from the work plan and Design Doc**. A task can match more than one category (e.g., a regression fix that changes a persisted-state boundary); record every value that applies:
|
|
244
|
+
- `bug-fix`: corrects observed incorrect behavior
|
|
245
|
+
- `regression`: restores behavior a prior change broke
|
|
246
|
+
- `state-change`: alters how state is written, transitioned, or persisted
|
|
247
|
+
- `boundary-change`: changes a published or consumed contract at an external, cross-package, or persisted boundary
|
|
248
|
+
2. **Populate the task's `Change Category` field** with all matched values, comma-separated (see task template).
|
|
249
|
+
3. **Extend Investigation Targets with the adjacent cases**. For every matched category, add the files sharing the same path, contract, persisted state, or external boundary as the change — including the owner module on both sides of an affected boundary — so the executor can sweep them for the same class of defect. Union the targets across all matched categories.
|
|
250
|
+
4. **Apply only on a match**. Purely additive, config, or scaffolding tasks default to no `Change Category` field and skip this propagation.
|
|
251
|
+
|
|
252
|
+
This is distinct from per-AC boundary-path proof (which proves a boundary path *within* an AC): Change Category drives a sweep of cases that sit *outside* the task's ACs but share its path, contract, state, or boundary.
|
|
253
|
+
|
|
225
254
|
## Task File Template
|
|
226
255
|
|
|
227
256
|
See task template in documentation-criteria skill for details.
|
|
@@ -359,6 +388,8 @@ Please execute decomposed tasks according to the order.
|
|
|
359
388
|
- [ ] Implementation efficiency and rework prevention (pre-identification of common processing, clarification of impact scope)
|
|
360
389
|
- [ ] Investigation Targets specified for every task (specific file paths, not vague categories)
|
|
361
390
|
- [ ] Proof Obligations recorded for each claim-implementing task (primary failure mode + boundary to exercise)
|
|
391
|
+
- [ ] Change Category set for bug-fix / regression / state-change / boundary-change tasks, with adjacent path/boundary owners added to Investigation Targets
|
|
392
|
+
- [ ] Reference Contract Values rows propagated to matching tasks as Reference Contracts, value copied verbatim (when work plan has the table)
|
|
362
393
|
- [ ] Quality Assurance Mechanisms from work plan header propagated to relevant tasks
|
|
363
394
|
|
|
364
395
|
## Task Design Principles
|
|
@@ -183,6 +183,17 @@ This gate runs only when the task file's "Investigation Targets" section lists a
|
|
|
183
183
|
2. **Investigate existing implementations**: Search for similar components/hooks in same domain/responsibility
|
|
184
184
|
3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above
|
|
185
185
|
|
|
186
|
+
#### Adjacent Case Sweep (Required when the task file has a `Change Category` field set to one or more of `bug-fix`, `regression`, `state-change`, `boundary-change`)
|
|
187
|
+
|
|
188
|
+
Runs after Pre-implementation Verification, before the Binding Decision Check. This step fires on the field value the task decomposition wrote — read the field value and treat it as authoritative for whether the sweep applies.
|
|
189
|
+
|
|
190
|
+
1. From the Investigation Targets (the decomposition already extended them with the adjacent files), identify the cases sharing the same path, contract, persisted state, or external boundary as the change — fallback rendering, stale state, retries, and external calls related to the change.
|
|
191
|
+
2. Check each for the same class of defect this task corrects.
|
|
192
|
+
3. Disposition each residual by scope:
|
|
193
|
+
- **Within Target Files scope** → fold the residual into this task's failing tests and implementation.
|
|
194
|
+
- **A confirmed out-of-scope sibling that needs the same fix** → raise the `out_of_scope_file` escalation (the standard path for a file outside Target Files), letting the user expand Target Files or split off a follow-up task. This routes a confirmed adjacent defect to an explicit decision.
|
|
195
|
+
- **A related residual not confirmed to need the same fix** → record it in the task file's Investigation Notes so the downstream review's adjacent-case check verifies it against the implementation.
|
|
196
|
+
|
|
186
197
|
#### Binding Decision Check (Required when the task file has a Binding Decisions section)
|
|
187
198
|
|
|
188
199
|
This check runs after Pre-implementation Verification and before the TDD cycle. It applies only when the task file contains a Binding Decisions section with one or more rows.
|
|
@@ -195,6 +206,18 @@ This check runs after Pre-implementation Verification and before the TDD cycle.
|
|
|
195
206
|
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "binding_decision_violation"` with `phase: "pre_implementation"` (see the Escalation Response table). `N` represents a planned violation
|
|
196
207
|
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every row (including Unknown rows deferred from this step) against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
197
208
|
|
|
209
|
+
#### Reference Contract Check (Required when the task file has a Reference Contracts section)
|
|
210
|
+
|
|
211
|
+
Runs after Pre-implementation Verification, alongside the Binding Decision Check.
|
|
212
|
+
|
|
213
|
+
1. Confirm each Source in the Reference Contracts table has been read (Sources are listed in Investigation Targets and were read at Step 2)
|
|
214
|
+
2. Record the planned approach in Investigation Notes — one sentence per row stating how the implementation reproduces the Required Observable Value
|
|
215
|
+
3. Evaluate each row's Compliance Check against the planned approach. Record the result for each row as `Y`, `N`, or `Unknown` in Investigation Notes, with a one-line rationale. Use `Unknown` only when the planned approach has no decision yet on the predicate's subject
|
|
216
|
+
4. Per row, branch on the evaluation:
|
|
217
|
+
- `Y`: proceed
|
|
218
|
+
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "design_compliance_violation"`, populated per the Escalation Response table — `details.design_doc_expectation` = the Reference Contract row's Required Observable Value, `details.actual_situation` = the planned approach, and `details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` per the table. `N` represents a planned violation
|
|
219
|
+
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every deferred row against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
220
|
+
|
|
198
221
|
#### Reference Representativeness (Applied During Implementation)
|
|
199
222
|
|
|
200
223
|
A per-adoption check applied each time a pattern, hook, or library is referenced. Apply coding-standards "Reference Representativeness" at the point of adoption:
|
|
@@ -278,20 +301,8 @@ Report in the following JSON format upon task completion (**without executing qu
|
|
|
278
301
|
"testsAdded": ["src/components/Button/Button.test.tsx"],
|
|
279
302
|
"requiresTestReview": false,
|
|
280
303
|
"newTestsPassed": true,
|
|
281
|
-
"progressUpdated": {
|
|
282
|
-
|
|
283
|
-
"workPlan": "Relevant sections updated",
|
|
284
|
-
"designDoc": "Progress section updated or N/A"
|
|
285
|
-
},
|
|
286
|
-
"runnableCheck": {
|
|
287
|
-
"level": "L1: Unit test (React Testing Library) / L2: Integration test / L3: E2E test",
|
|
288
|
-
"executed": true,
|
|
289
|
-
"command": "test -- Button.test.tsx",
|
|
290
|
-
"result": "passed / failed / skipped",
|
|
291
|
-
"substance": "substantive | non_substantive | null (non-test verification)",
|
|
292
|
-
"substanceIssue": "null when substantive or non-test; cause and location when non_substantive",
|
|
293
|
-
"reason": "Test execution reason/verification content"
|
|
294
|
-
},
|
|
304
|
+
"progressUpdated": {"taskFile": "5/8 items completed", "workPlan": "Relevant sections updated", "designDoc": "Progress section updated or N/A"},
|
|
305
|
+
"runnableCheck": {"level": "L1: Unit test (React Testing Library) / L2: Integration test / L3: E2E test", "executed": true, "command": "test -- Button.test.tsx", "result": "passed / failed / skipped", "substance": "substantive | non_substantive | null (non-test verification)", "substanceIssue": "null when substantive or non-test; cause and location when non_substantive", "reason": "Test execution reason/verification content"},
|
|
295
306
|
"readyForQualityCheck": true,
|
|
296
307
|
"nextActions": "Overall quality verification by quality assurance process"
|
|
297
308
|
}
|
|
@@ -334,11 +345,7 @@ Minimal example (out_of_scope_file):
|
|
|
334
345
|
"reason": "Out of scope file",
|
|
335
346
|
"taskName": "[task name]",
|
|
336
347
|
"escalation_type": "out_of_scope_file",
|
|
337
|
-
"details": {
|
|
338
|
-
"file_path": "[path attempted]",
|
|
339
|
-
"allowed_list": ["[union of Target Files, task file, work plan, Provides]"],
|
|
340
|
-
"modification_reason": "[why modification was attempted]"
|
|
341
|
-
},
|
|
348
|
+
"details": {"file_path": "[path attempted]", "allowed_list": ["[union of Target Files, task file, work plan, Provides]"], "modification_reason": "[why modification was attempted]"},
|
|
342
349
|
"user_decision_required": true,
|
|
343
350
|
"suggested_options": ["Add to Target files and retry", "Split into separate task", "Reconsider approach"]
|
|
344
351
|
}
|
|
@@ -352,7 +359,9 @@ This gate runs immediately before producing the final JSON response.
|
|
|
352
359
|
☐ Fix Mode: every `requiredFixes` / `incompleteImplementations` item is addressed in `changeSummary` or escalated
|
|
353
360
|
☐ Implementation is consistent with the Investigation Notes recorded at Step 2 (when Investigation Targets were present)
|
|
354
361
|
☐ Every Binding Decisions Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Binding Decisions section). Re-evaluate here even when the pre-implementation check passed, because the implementation may have diverged from the planned approach
|
|
362
|
+
☐ Every Reference Contracts Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Reference Contracts section). Re-evaluate here even when the pre-implementation check passed
|
|
363
|
+
☐ A test exercises the roundtrip — the value the producer emits parses to the value the consumer expects (when the task has a Boundary Context with a roundtrip check from the work plan's Connection Map)
|
|
355
364
|
☐ When test evidence is cited (the task ran tests), `runnableCheck.substance` and `runnableCheck.substanceIssue` are populated per the field spec
|
|
356
365
|
☐ Final response is a single JSON with `status: "completed"` or `status: "escalation_needed"` and matches the schema in Structured Response Specification
|
|
357
366
|
|
|
358
|
-
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`.
|
|
367
|
+
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`. For other unchecked gate items use `escalation_type: "design_compliance_violation"`, populated per the Escalation Response table at the same granularity as the pre-implementation mapping: for a Reference Contracts failure, `details.design_doc_expectation` = the Required Observable Value and `details.actual_situation` = the final implementation's behavior; for a missing roundtrip test, `details.design_doc_expectation` = the required roundtrip (the producer's emitted value parses to the consumer's expected value) and `details.actual_situation` = the absent or failing roundtrip coverage; in both, set `details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` per the table.
|
|
@@ -183,6 +183,17 @@ This gate runs only when the task file's "Investigation Targets" section lists a
|
|
|
183
183
|
2. **Investigate existing implementations**: Search for similar functions in same domain/responsibility
|
|
184
184
|
3. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above
|
|
185
185
|
|
|
186
|
+
#### Adjacent Case Sweep (Required when the task file has a `Change Category` field set to one or more of `bug-fix`, `regression`, `state-change`, `boundary-change`)
|
|
187
|
+
|
|
188
|
+
Runs after Pre-implementation Verification, before the Binding Decision Check. This step fires on the field value the task decomposition wrote — read the field value and treat it as authoritative for whether the sweep applies.
|
|
189
|
+
|
|
190
|
+
1. From the Investigation Targets (the decomposition already extended them with the adjacent files), identify the cases sharing the same path, contract, persisted state, or external boundary as the change — fallback behavior, stale state, retries, and external calls related to the change.
|
|
191
|
+
2. Check each for the same class of defect this task corrects.
|
|
192
|
+
3. Disposition each residual by scope:
|
|
193
|
+
- **Within Target Files scope** → fold the residual into this task's failing tests and implementation.
|
|
194
|
+
- **A confirmed out-of-scope sibling that needs the same fix** → raise the `out_of_scope_file` escalation (the standard path for a file outside Target Files), letting the user expand Target Files or split off a follow-up task. This routes a confirmed adjacent defect to an explicit decision.
|
|
195
|
+
- **A related residual not confirmed to need the same fix** → record it in the task file's Investigation Notes so the downstream review's adjacent-case check verifies it against the implementation.
|
|
196
|
+
|
|
186
197
|
#### Binding Decision Check (Required when the task file has a Binding Decisions section)
|
|
187
198
|
|
|
188
199
|
This check runs after Pre-implementation Verification and before the TDD cycle. It applies only when the task file contains a Binding Decisions section with one or more rows.
|
|
@@ -195,6 +206,18 @@ This check runs after Pre-implementation Verification and before the TDD cycle.
|
|
|
195
206
|
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "binding_decision_violation"` with `phase: "pre_implementation"` (see the Escalation Response table). `N` represents a planned violation
|
|
196
207
|
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every row (including Unknown rows deferred from this step) against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
197
208
|
|
|
209
|
+
#### Reference Contract Check (Required when the task file has a Reference Contracts section)
|
|
210
|
+
|
|
211
|
+
Runs after Pre-implementation Verification, alongside the Binding Decision Check.
|
|
212
|
+
|
|
213
|
+
1. Confirm each Source in the Reference Contracts table has been read (Sources are listed in Investigation Targets and were read at Step 2)
|
|
214
|
+
2. Record the planned approach in Investigation Notes — one sentence per row stating how the implementation reproduces the Required Observable Value
|
|
215
|
+
3. Evaluate each row's Compliance Check against the planned approach. Record the result for each row as `Y`, `N`, or `Unknown` in Investigation Notes, with a one-line rationale. Use `Unknown` only when the planned approach has no decision yet on the predicate's subject
|
|
216
|
+
4. Per row, branch on the evaluation:
|
|
217
|
+
- `Y`: proceed
|
|
218
|
+
- `N`: stop implementation and produce the final response with `status: "escalation_needed"` and `escalation_type: "design_compliance_violation"`, populated per the Escalation Response table — `details.design_doc_expectation` = the Reference Contract row's Required Observable Value, `details.actual_situation` = the planned approach, and `details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` per the table. `N` represents a planned violation
|
|
219
|
+
- `Unknown`: mark the row as deferred in Investigation Notes and proceed to the TDD cycle. The Exit Gate re-evaluates every deferred row against the final implementation and escalates if any remains `N` or `Unknown` at that point
|
|
220
|
+
|
|
198
221
|
#### Reference Representativeness (Applied During Implementation)
|
|
199
222
|
|
|
200
223
|
A per-adoption check applied each time a pattern or dependency is referenced. Apply coding-standards "Reference Representativeness" at the point of adoption:
|
|
@@ -281,20 +304,8 @@ Report in the following JSON format upon task completion (**without executing qu
|
|
|
281
304
|
"testsAdded": ["created/test/file/path"],
|
|
282
305
|
"requiresTestReview": true,
|
|
283
306
|
"newTestsPassed": true,
|
|
284
|
-
"progressUpdated": {
|
|
285
|
-
|
|
286
|
-
"workPlan": "Relevant sections updated",
|
|
287
|
-
"designDoc": "Progress section updated or N/A"
|
|
288
|
-
},
|
|
289
|
-
"runnableCheck": {
|
|
290
|
-
"level": "L1: Unit test / L2: Integration test / L3: E2E test",
|
|
291
|
-
"executed": true,
|
|
292
|
-
"command": "Executed test command",
|
|
293
|
-
"result": "passed / failed / skipped",
|
|
294
|
-
"substance": "substantive | non_substantive | null (non-test verification)",
|
|
295
|
-
"substanceIssue": "null when substantive or non-test; cause and location when non_substantive",
|
|
296
|
-
"reason": "Test execution reason/verification content"
|
|
297
|
-
},
|
|
307
|
+
"progressUpdated": {"taskFile": "5/8 items completed", "workPlan": "Relevant sections updated", "designDoc": "Progress section updated or N/A"},
|
|
308
|
+
"runnableCheck": {"level": "L1: Unit test / L2: Integration test / L3: E2E test", "executed": true, "command": "Executed test command", "result": "passed / failed / skipped", "substance": "substantive | non_substantive | null (non-test verification)", "substanceIssue": "null when substantive or non-test; cause and location when non_substantive", "reason": "Test execution reason/verification content"},
|
|
298
309
|
"readyForQualityCheck": true,
|
|
299
310
|
"nextActions": "Overall quality verification by quality assurance process"
|
|
300
311
|
}
|
|
@@ -337,11 +348,7 @@ Minimal example (out_of_scope_file):
|
|
|
337
348
|
"reason": "Out of scope file",
|
|
338
349
|
"taskName": "[task name]",
|
|
339
350
|
"escalation_type": "out_of_scope_file",
|
|
340
|
-
"details": {
|
|
341
|
-
"file_path": "[path attempted]",
|
|
342
|
-
"allowed_list": ["[union of Target Files, task file, work plan, Provides]"],
|
|
343
|
-
"modification_reason": "[why modification was attempted]"
|
|
344
|
-
},
|
|
351
|
+
"details": {"file_path": "[path attempted]", "allowed_list": ["[union of Target Files, task file, work plan, Provides]"], "modification_reason": "[why modification was attempted]"},
|
|
345
352
|
"user_decision_required": true,
|
|
346
353
|
"suggested_options": ["Add to Target files and retry", "Split into separate task", "Reconsider approach"]
|
|
347
354
|
}
|
|
@@ -355,7 +362,9 @@ This gate runs immediately before producing the final JSON response.
|
|
|
355
362
|
☐ Fix Mode: every `requiredFixes` / `incompleteImplementations` item is addressed in `changeSummary` or escalated
|
|
356
363
|
☐ Implementation is consistent with the Investigation Notes recorded at Step 2 (when Investigation Targets were present)
|
|
357
364
|
☐ Every Binding Decisions Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Binding Decisions section). Re-evaluate here even when the pre-implementation check passed, because the implementation may have diverged from the planned approach
|
|
365
|
+
☐ Every Reference Contracts Compliance Check evaluates to `Y` against the final implementation, with evidence recorded in Investigation Notes (when the task file has a Reference Contracts section). Re-evaluate here even when the pre-implementation check passed
|
|
366
|
+
☐ A test exercises the roundtrip — the value the producer emits parses to the value the consumer expects (when the task has a Boundary Context with a roundtrip check from the work plan's Connection Map)
|
|
358
367
|
☐ When test evidence is cited (the task ran tests), `runnableCheck.substance` and `runnableCheck.substanceIssue` are populated per the field spec
|
|
359
368
|
☐ Final response is a single JSON with `status: "completed"` or `status: "escalation_needed"` and matches the schema in Structured Response Specification
|
|
360
369
|
|
|
361
|
-
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`.
|
|
370
|
+
**ENFORCEMENT**: When any gate item is unchecked, produce the final response in the JSON format defined in Structured Response Specification with `status: "escalation_needed"`. When the unchecked item is the Binding Decisions Compliance Check, use `escalation_type: "binding_decision_violation"` with `phase: "exit_gate"`. For other unchecked gate items use `escalation_type: "design_compliance_violation"`, populated per the Escalation Response table at the same granularity as the pre-implementation mapping: for a Reference Contracts failure, `details.design_doc_expectation` = the Required Observable Value and `details.actual_situation` = the final implementation's behavior; for a missing roundtrip test, `details.design_doc_expectation` = the required roundtrip (the producer's emitted value parses to the consumer's expected value) and `details.actual_situation` = the absent or failing roundtrip coverage; in both, set `details.why_cannot_implement` / `details.attempted_approaches[]` / `claude_recommendation` per the table.
|