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.
Files changed (94) hide show
  1. package/.claude/agents-en/acceptance-test-generator.md +8 -32
  2. package/.claude/agents-en/code-reviewer.md +24 -25
  3. package/.claude/agents-en/code-verifier.md +3 -32
  4. package/.claude/agents-en/codebase-analyzer.md +11 -79
  5. package/.claude/agents-en/document-reviewer.md +12 -58
  6. package/.claude/agents-en/integration-test-reviewer.md +6 -37
  7. package/.claude/agents-en/investigator.md +6 -59
  8. package/.claude/agents-en/quality-fixer-frontend.md +1 -5
  9. package/.claude/agents-en/quality-fixer.md +1 -5
  10. package/.claude/agents-en/requirement-analyzer.md +3 -14
  11. package/.claude/agents-en/rule-advisor.md +3 -16
  12. package/.claude/agents-en/scope-discoverer.md +5 -29
  13. package/.claude/agents-en/security-reviewer.md +2 -13
  14. package/.claude/agents-en/skill-creator.md +3 -6
  15. package/.claude/agents-en/skill-reviewer.md +7 -43
  16. package/.claude/agents-en/solver.md +9 -24
  17. package/.claude/agents-en/task-decomposer.md +39 -8
  18. package/.claude/agents-en/task-executor-frontend.md +29 -20
  19. package/.claude/agents-en/task-executor.md +29 -20
  20. package/.claude/agents-en/technical-designer-frontend.md +7 -12
  21. package/.claude/agents-en/technical-designer.md +4 -11
  22. package/.claude/agents-en/ui-analyzer.md +16 -115
  23. package/.claude/agents-en/ui-spec-designer.md +3 -3
  24. package/.claude/agents-en/verifier.md +9 -53
  25. package/.claude/agents-en/work-planner.md +27 -22
  26. package/.claude/agents-ja/acceptance-test-generator.md +10 -34
  27. package/.claude/agents-ja/code-reviewer.md +24 -25
  28. package/.claude/agents-ja/code-verifier.md +5 -34
  29. package/.claude/agents-ja/codebase-analyzer.md +11 -79
  30. package/.claude/agents-ja/document-reviewer.md +16 -62
  31. package/.claude/agents-ja/integration-test-reviewer.md +6 -37
  32. package/.claude/agents-ja/investigator.md +6 -59
  33. package/.claude/agents-ja/prd-creator.md +3 -3
  34. package/.claude/agents-ja/quality-fixer-frontend.md +2 -6
  35. package/.claude/agents-ja/quality-fixer.md +2 -6
  36. package/.claude/agents-ja/requirement-analyzer.md +3 -14
  37. package/.claude/agents-ja/rule-advisor.md +4 -17
  38. package/.claude/agents-ja/scope-discoverer.md +5 -29
  39. package/.claude/agents-ja/security-reviewer.md +3 -14
  40. package/.claude/agents-ja/skill-creator.md +3 -6
  41. package/.claude/agents-ja/skill-reviewer.md +7 -43
  42. package/.claude/agents-ja/solver.md +11 -26
  43. package/.claude/agents-ja/task-decomposer.md +40 -9
  44. package/.claude/agents-ja/task-executor-frontend.md +29 -20
  45. package/.claude/agents-ja/task-executor.md +29 -20
  46. package/.claude/agents-ja/technical-designer-frontend.md +8 -13
  47. package/.claude/agents-ja/technical-designer.md +5 -12
  48. package/.claude/agents-ja/ui-analyzer.md +17 -116
  49. package/.claude/agents-ja/ui-spec-designer.md +7 -7
  50. package/.claude/agents-ja/verifier.md +9 -53
  51. package/.claude/agents-ja/work-planner.md +51 -51
  52. package/.claude/commands-ja/build.md +1 -1
  53. package/.claude/commands-ja/design.md +1 -1
  54. package/.claude/commands-ja/diagnose.md +1 -1
  55. package/.claude/commands-ja/front-build.md +1 -1
  56. package/.claude/commands-ja/front-design.md +3 -3
  57. package/.claude/commands-ja/front-plan.md +2 -2
  58. package/.claude/commands-ja/implement.md +1 -1
  59. package/.claude/commands-ja/plan.md +2 -2
  60. package/.claude/commands-ja/prepare-implementation.md +4 -4
  61. package/.claude/commands-ja/reverse-engineer.md +1 -1
  62. package/.claude/commands-ja/review.md +1 -1
  63. package/.claude/commands-ja/task.md +2 -2
  64. package/.claude/commands-ja/update-doc.md +1 -1
  65. package/.claude/skills-en/documentation-criteria/references/design-template.md +5 -1
  66. package/.claude/skills-en/documentation-criteria/references/plan-template.md +17 -7
  67. package/.claude/skills-en/documentation-criteria/references/task-template.md +18 -0
  68. package/.claude/skills-en/documentation-criteria/references/ui-spec-template.md +1 -1
  69. package/.claude/skills-en/frontend-technical-spec/SKILL.md +4 -8
  70. package/.claude/skills-en/frontend-typescript-rules/SKILL.md +4 -2
  71. package/.claude/skills-en/frontend-typescript-testing/SKILL.md +5 -11
  72. package/.claude/skills-en/frontend-typescript-testing/references/e2e.md +1 -1
  73. package/.claude/skills-en/technical-spec/SKILL.md +4 -3
  74. package/.claude/skills-en/typescript-testing/SKILL.md +4 -4
  75. package/.claude/skills-ja/coding-standards/SKILL.md +4 -4
  76. package/.claude/skills-ja/coding-standards/references/security-checks.md +1 -1
  77. package/.claude/skills-ja/documentation-criteria/SKILL.md +1 -1
  78. package/.claude/skills-ja/documentation-criteria/references/design-template.md +10 -6
  79. package/.claude/skills-ja/documentation-criteria/references/plan-template.md +18 -8
  80. package/.claude/skills-ja/documentation-criteria/references/task-template.md +18 -0
  81. package/.claude/skills-ja/documentation-criteria/references/ui-spec-template.md +3 -3
  82. package/.claude/skills-ja/frontend-technical-spec/SKILL.md +4 -8
  83. package/.claude/skills-ja/frontend-typescript-rules/SKILL.md +5 -3
  84. package/.claude/skills-ja/frontend-typescript-testing/SKILL.md +5 -11
  85. package/.claude/skills-ja/frontend-typescript-testing/references/e2e.md +2 -2
  86. package/.claude/skills-ja/implementation-approach/SKILL.md +1 -1
  87. package/.claude/skills-ja/integration-e2e-testing/SKILL.md +1 -1
  88. package/.claude/skills-ja/integration-e2e-testing/references/e2e-environment-prerequisites.md +1 -1
  89. package/.claude/skills-ja/project-context/references/template.md +2 -2
  90. package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +3 -3
  91. package/.claude/skills-ja/technical-spec/SKILL.md +4 -3
  92. package/.claude/skills-ja/typescript-testing/SKILL.md +4 -4
  93. package/CHANGELOG.md +19 -0
  94. 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
- "targetPersona": "Who this feature serves (e.g., 'end user', 'admin', 'developer')",
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
- { "filename": "...", "content": "..." }
158
+ {"filename": "...", "content": "..."}
162
159
  ],
163
160
  "optimizationReport": {
164
161
  "issuesFound": [
165
- { "pattern": "BP-XXX", "severity": "P1/P2/P3", "location": "...", "transform": "..." }
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
- "overOptimization": "none|minor|major",
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
- "name": "Solution name",
121
- "type": "direct|workaround|mitigation|fundamental",
122
- "description": "Detailed solution description",
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 routes exclusively to `task-executor` (backend) and must NOT be used for frontend tasks.
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 | Routes to |
85
- |---------------------|---------------|-----------|
86
- | Single-layer **backend** | `{plan-name}-task-{number}.md` (preferred) OR `{plan-name}-backend-task-{number}.md` | `task-executor` + `quality-fixer` |
87
- | Single-layer **frontend** | `{plan-name}-frontend-task-{number}.md` (REQUIRED — bare `*-task-*` form is reserved for backend) | `task-executor-frontend` + `quality-fixer-frontend` |
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) | per filename layer segment |
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 | Both sides of the boundary as listed in the work plan's Connection Map (owner modules and expected signal), the contract definition between them |
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
- "taskFile": "5/8 items completed",
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
- "taskFile": "5/8 items completed",
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.