codex-workflows 0.6.8 → 0.6.9

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 (28) hide show
  1. package/.agents/skills/ai-development-guide/SKILL.md +5 -3
  2. package/.agents/skills/ai-development-guide/references/frontend.md +11 -19
  3. package/.agents/skills/coding-rules/references/typescript.md +17 -12
  4. package/.agents/skills/documentation-criteria/references/plan-template.md +1 -1
  5. package/.agents/skills/documentation-criteria/references/task-template.md +8 -0
  6. package/.agents/skills/testing/SKILL.md +5 -5
  7. package/.agents/skills/testing/references/typescript.md +2 -6
  8. package/.codex/agents/acceptance-test-generator.toml +2 -44
  9. package/.codex/agents/code-reviewer.toml +4 -57
  10. package/.codex/agents/code-verifier.toml +1 -47
  11. package/.codex/agents/codebase-analyzer.toml +1 -106
  12. package/.codex/agents/design-sync.toml +2 -64
  13. package/.codex/agents/document-reviewer.toml +3 -78
  14. package/.codex/agents/integration-test-reviewer.toml +1 -26
  15. package/.codex/agents/investigator.toml +1 -73
  16. package/.codex/agents/quality-fixer-frontend.toml +4 -105
  17. package/.codex/agents/quality-fixer.toml +4 -122
  18. package/.codex/agents/requirement-analyzer.toml +1 -29
  19. package/.codex/agents/rule-advisor.toml +1 -79
  20. package/.codex/agents/scope-discoverer.toml +1 -70
  21. package/.codex/agents/security-reviewer.toml +1 -19
  22. package/.codex/agents/solver.toml +5 -54
  23. package/.codex/agents/task-decomposer.toml +18 -0
  24. package/.codex/agents/task-executor-frontend.toml +16 -142
  25. package/.codex/agents/task-executor.toml +16 -142
  26. package/.codex/agents/ui-analyzer.toml +1 -157
  27. package/.codex/agents/verifier.toml +2 -65
  28. package/package.json +1 -1
@@ -162,76 +162,7 @@ Note: These signals are informational only during steps 1-6. Keep all discovered
162
162
  ### Essential Output
163
163
 
164
164
  ```json
165
- {
166
- "targetPath": "/path/to/project",
167
- "referenceArchitecture": "layered|mvc|clean|hexagonal|none",
168
- "existingPrd": "path or null",
169
- "saturationReached": true,
170
- "discoveredUnits": [
171
- {
172
- "id": "UNIT-001",
173
- "name": "Unit Name",
174
- "description": "Brief description",
175
- "confidence": "high|medium|low",
176
- "triangulationStrength": "strong|moderate|weak",
177
- "sourceCount": 3,
178
- "entryPoints": ["/path1", "/path2"],
179
- "relatedFiles": ["src/feature/*"],
180
- "dependencies": ["UNIT-002"],
181
- "valueProfile": {
182
- "targetPersona": "Who this feature serves (e.g., 'end user', 'admin', 'developer')",
183
- "userGoal": "What the user is trying to accomplish with this feature",
184
- "valueCategory": "High-level capability this belongs to (e.g., 'Authentication', 'Content Management', 'Reporting')",
185
- "groupingKey": {
186
- "targetPersona": "end-user",
187
- "userGoal": "sign-in",
188
- "valueCategory": "authentication"
189
- }
190
- },
191
- "technicalProfile": {
192
- "primaryModules": ["src/auth/service.ts", "src/auth/controller.ts"],
193
- "publicInterfaces": ["AuthService.login()", "AuthController.handleLogin()"],
194
- "dataFlowSummary": "Request → Controller → Service → Repository → DB",
195
- "infrastructureDeps": ["database", "redis-cache"]
196
- },
197
- "unitInventory": {
198
- "routes": ["POST /login -> AuthController.handleLogin (src/auth/controller.ts:24)"],
199
- "testFiles": ["src/auth/service.test.ts"],
200
- "publicExports": ["AuthService (src/auth/service.ts:10)"]
201
- }
202
- }
203
- ],
204
- "relationships": [
205
- {
206
- "from": "UNIT-001",
207
- "to": "UNIT-002",
208
- "type": "depends_on|extends|shares_data"
209
- }
210
- ],
211
- "uncertainAreas": [
212
- {
213
- "area": "Area name",
214
- "reason": "Why uncertain",
215
- "suggestedAction": "What to do"
216
- }
217
- ],
218
- "prdUnits": [
219
- {
220
- "id": "PRD-001",
221
- "name": "PRD unit name (user-value level)",
222
- "description": "What this capability delivers to the user",
223
- "groupingKey": {
224
- "targetPersona": "end-user",
225
- "userGoal": "sign-in",
226
- "valueCategory": "authentication"
227
- },
228
- "sourceUnits": ["UNIT-001", "UNIT-003"],
229
- "combinedRelatedFiles": ["src/feature-a/*", "src/feature-b/*"],
230
- "combinedEntryPoints": ["/path1", "/path2", "/path3"]
231
- }
232
- ],
233
- "limitations": ["What could not be discovered and why"]
234
- }
165
+ {"targetPath":"/path/to/project","referenceArchitecture":"layered|mvc|clean|hexagonal|none","existingPrd":"path or null","saturationReached":true,"discoveredUnits":[{"id":"UNIT-001","name":"Unit Name","description":"Brief description","confidence":"high|medium|low","triangulationStrength":"strong|moderate|weak","sourceCount":3,"entryPoints":["/path1","/path2"],"relatedFiles":["src/feature/*"],"dependencies":["UNIT-002"],"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')","groupingKey":{"targetPersona":"end-user","userGoal":"sign-in","valueCategory":"authentication"}},"technicalProfile":{"primaryModules":["src/auth/service.ts","src/auth/controller.ts"],"publicInterfaces":["AuthService.login()","AuthController.handleLogin()"],"dataFlowSummary":"Request → Controller → Service → Repository → DB","infrastructureDeps":["database","redis-cache"]},"unitInventory":{"routes":["POST /login -> AuthController.handleLogin (src/auth/controller.ts:24)"],"testFiles":["src/auth/service.test.ts"],"publicExports":["AuthService (src/auth/service.ts:10)"]}}],"relationships":[{"from":"UNIT-001","to":"UNIT-002","type":"depends_on|extends|shares_data"}],"uncertainAreas":[{"area":"Area name","reason":"Why uncertain","suggestedAction":"What to do"}],"prdUnits":[{"id":"PRD-001","name":"PRD unit name (user-value level)","description":"What this capability delivers to the user","groupingKey":{"targetPersona":"end-user","userGoal":"sign-in","valueCategory":"authentication"},"sourceUnits":["UNIT-001","UNIT-003"],"combinedRelatedFiles":["src/feature-a/*","src/feature-b/*"],"combinedEntryPoints":["/path1","/path2","/path3"]}],"limitations":["What could not be discovered and why"]}
235
166
  ```
236
167
 
237
168
  ## Completion Criteria
@@ -107,25 +107,7 @@ Return the JSON result as the final response. See Output Format for the schema.
107
107
  ## Output Format
108
108
 
109
109
  ```json
110
- {
111
- "status": "approved|approved_with_notes|needs_revision|blocked",
112
- "summary": "[1-2 sentence summary]",
113
- "filesReviewed": 5,
114
- "findings": [
115
- {
116
- "category": "confirmed_risk|defense_gap|hardening|policy",
117
- "confidence": "high|medium|low",
118
- "location": "[file:line]",
119
- "description": "[specific issue found]",
120
- "rationale": "[category-specific, see Category-Specific Rationale]",
121
- "suggestion": "[specific fix]"
122
- }
123
- ],
124
- "notes": "[summary of hardening/policy findings for completion report, present when status is approved_with_notes]",
125
- "requiredFixes": [
126
- "[specific fix 1 — only confirmed_risk and qualifying defense_gap items]"
127
- ]
128
- }
110
+ {"status":"approved|approved_with_notes|needs_revision|blocked","summary":"[1-2 sentence summary]","filesReviewed":5,"findings":[{"category":"confirmed_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]"}],"notes":"[summary of hardening/policy findings for completion report, present when status is approved_with_notes]","requiredFixes":["[specific fix 1 — only confirmed_risk and qualifying defense_gap items]"]}
129
111
  ```
130
112
 
131
113
  ## Status Determination
@@ -92,6 +92,10 @@ Generate at least 3 solutions from the following perspectives:
92
92
  | mitigation | Measures to reduce impact | Temporary measure while waiting for root fix |
93
93
  | fundamental | Comprehensive fix including recurrence prevention | When similar problems have occurred repeatedly |
94
94
 
95
+ **Adjacent Case Coverage**:
96
+ - When the investigated incident is a bug or regression, or when a confirmed failure point affects a state transition, persisted state, or external boundary, evaluate cases sharing the same path, contract, persisted state, or external boundary for the same class of defect.
97
+ - Include adjacent cases in the solution scope when they share the defect class. Record why any are excluded in `uncertaintyHandling.residualRisks`.
98
+
95
99
  **Generated Solution Verification**:
96
100
  - Check if project rules have applicable guidelines
97
101
  - For areas without guidelines, research current best practices via web search to verify solutions align with standard approaches
@@ -126,60 +130,7 @@ Return the JSON result as the final response. See Output Format for the schema.
126
130
  ## Output Format
127
131
 
128
132
  ```json
129
- {
130
- "inputSummary": {
131
- "identifiedFailurePoints": [
132
- {"failurePointId": "FP1", "description": "Failure point description", "status": "confirmed|probable|possible"}
133
- ],
134
- "failurePointRelationships": [
135
- {"from": "FP1", "to": "FP2", "relationship": "independent|upstream_of|downstream_of|amplifies|same_boundary"}
136
- ],
137
- "coverageAssessment": "sufficient|partial|insufficient"
138
- },
139
- "solutions": [
140
- {
141
- "id": "S1",
142
- "name": "Solution name",
143
- "type": "direct|workaround|mitigation|fundamental",
144
- "description": "Detailed solution description",
145
- "implementation": {
146
- "approach": "Implementation approach description",
147
- "affectedFiles": ["Files requiring changes"],
148
- "dependencies": ["Affected dependencies"]
149
- },
150
- "tradeoffs": {
151
- "cost": {"level": "low|medium|high", "details": "Details"},
152
- "risk": {"level": "low|medium|high", "details": "Details"},
153
- "scope": {"level": "low|medium|high", "details": "Details"},
154
- "maintainability": {"level": "low|medium|high", "details": "Details"},
155
- "certainty": {"level": "low|medium|high", "details": "Details"}
156
- },
157
- "pros": ["Advantages"],
158
- "cons": ["Disadvantages"]
159
- }
160
- ],
161
- "recommendation": {
162
- "selectedSolutionId": "S1",
163
- "rationale": "Detailed selection rationale",
164
- "alternativeIfRejected": "Alternative solution ID if recommendation rejected",
165
- "conditions": "Conditions under which this recommendation is appropriate"
166
- },
167
- "implementationPlan": {
168
- "steps": [
169
- {
170
- "order": 1,
171
- "action": "Specific action",
172
- "verification": "How to verify this step",
173
- "rollback": "Rollback procedure if problems occur"
174
- }
175
- ],
176
- "criticalPoints": ["Points requiring special attention"]
177
- },
178
- "uncertaintyHandling": {
179
- "residualRisks": ["Risks that may remain after resolution"],
180
- "monitoringPlan": "Monitoring plan after resolution"
181
- }
182
- }
133
+ {"inputSummary":{"identifiedFailurePoints":[{"failurePointId":"FP1","description":"Failure point description","status":"confirmed|probable|possible"}],"failurePointRelationships":[{"from":"FP1","to":"FP2","relationship":"independent|upstream_of|downstream_of|amplifies|same_boundary"}],"coverageAssessment":"sufficient|partial|insufficient"},"solutions":[{"id":"S1","name":"Solution name","type":"direct|workaround|mitigation|fundamental","description":"Detailed solution description","implementation":{"approach":"Implementation approach description","affectedFiles":["Files requiring changes"],"dependencies":["Affected dependencies"]},"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"}},"pros":["Advantages"],"cons":["Disadvantages"]}],"recommendation":{"selectedSolutionId":"S1","rationale":"Detailed selection rationale","alternativeIfRejected":"Alternative solution ID if recommendation rejected","conditions":"Conditions under which this recommendation is appropriate"},"implementationPlan":{"steps":[{"order":1,"action":"Specific action","verification":"How to verify this step","rollback":"Rollback procedure if problems occur"}],"criticalPoints":["Points requiring special attention"]},"uncertaintyHandling":{"residualRisks":["Risks that may remain after resolution"],"monitoringPlan":"Monitoring plan after resolution"}}
183
134
  ```
184
135
 
185
136
  ## Completion Criteria
@@ -121,6 +121,7 @@ Decompose tasks based on implementation strategy patterns determined in implemen
121
121
  - Task overview
122
122
  - Target files
123
123
  - Investigation Targets
124
+ - Change Category when the task is a bug fix, regression, state-change, or boundary-change
124
125
  - Investigation Notes
125
126
  - Concrete implementation steps
126
127
  - Operation Verification Methods
@@ -164,6 +165,18 @@ Decompose tasks based on implementation strategy patterns determined in implemen
164
165
  9. **Propagate Proof Obligations**
165
166
  When the work plan or referenced test skeletons include Primary failure mode or Proof obligation annotations, copy the applicable obligations into each generated task that implements or verifies the claim. If no skeleton exists, derive the primary failure mode from the acceptance criterion and Verification Strategy. Each obligation must state the AC ID or claim identifier, claim, failure mode, boundary to exercise, state assertion expectation, permitted mock boundary rationale, and residual uncertainty if any.
166
167
 
168
+ 10. **Classify Change Category for Adjacent Case Sweep**
169
+ When a task corrects observed behavior or changes a path, contract, persisted state, or external boundary, classify it so executors and reviewers can run a scoped adjacent-case sweep from a concrete field instead of re-inferring intent.
170
+
171
+ - `bug-fix`: corrects observed incorrect behavior
172
+ - `regression`: restores behavior a prior change broke
173
+ - `state-change`: changes how state is written, transitioned, or persisted
174
+ - `boundary-change`: changes a published or consumed contract at an external, cross-package, or persisted boundary
175
+
176
+ A task can match more than one category. Populate the task's `Change Category` field with every matched value, comma-separated.
177
+
178
+ For every matched category, extend Investigation Targets with 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. Union targets across all matched categories. Omit `Change Category` only when the task neither corrects observed behavior nor changes a path, contract, persisted state, or external boundary. Additive, config-only, and scaffolding work is not exempt when it changes one of those dimensions.
179
+
167
180
  ## Verification Strategy Propagation
168
181
 
169
182
  Verification Strategy defines what correctness means at design time. L1/L2/L3 (from implementation-approach) define task-level verification depth at execution time. Use both.
@@ -250,6 +263,10 @@ When the work plan includes a `Connection Map` section:
250
263
  3. For tasks on one side of a boundary, include an Operation Verification Method that observes the expected signal from the other side.
251
264
  4. Propagate only boundary rows explicitly mapped in the work plan.
252
265
 
266
+ ## Change Category Classification
267
+
268
+ This is distinct from per-AC boundary-path proof. Proof obligations prove the boundary path within an acceptance criterion; Change Category drives a sweep of cases outside the task's explicit ACs that share its path, contract, persisted state, or external boundary. Use Step 10 as the single procedural source for classification and Investigation Target extension.
269
+
253
270
  ## Task File Template
254
271
 
255
272
  See task template in documentation-criteria skill for details.
@@ -349,6 +366,7 @@ Please execute decomposed tasks according to the order.
349
366
  - [ ] Impact scope and boundaries definition for each task
350
367
  - [ ] Appropriate granularity (1-5 files/task)
351
368
  - [ ] Investigation Targets specified for every task
369
+ - [ ] Change Category set for bug-fix, regression, state-change, or boundary-change tasks, with adjacent path/boundary owners added to Investigation Targets
352
370
  - [ ] Quality Assurance Mechanisms propagated to relevant tasks when present in the plan header
353
371
  - [ ] ADR Bindings rows propagated to relevant tasks when present in the work plan
354
372
  - [ ] ADR source includes section hint
@@ -156,6 +156,15 @@ When the task file, Dependencies, or Investigation Targets reference `docs/proje
156
156
  3. **Cross-check against Investigation Notes**: Ensure planned implementation is consistent with the observations recorded in the task file
157
157
  4. **Execute determination**: Determine continue/escalation per "Mandatory Judgment Criteria" above
158
158
 
159
+ #### 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`)
160
+
161
+ Run this check after Pre-implementation Verification and before the Binding Decision Check. Treat the task file's field value as authoritative for whether the sweep applies.
162
+
163
+ 1. From Investigation Targets, identify cases sharing the same path, contract, persisted state, or external boundary as the change, including related fallback rendering, stale state, retries, and external calls.
164
+ 2. Check each adjacent case for the same class of defect this task corrects.
165
+ 3. Fold adjacent residuals within Target Files into this task's behavior coverage and implementation.
166
+ 4. Record residuals outside Target Files in Investigation Notes so downstream review can detect them.
167
+
159
168
  #### Binding Decision Check (Required when the task file has a Binding Decisions section)
160
169
 
161
170
  Run this check after Pre-implementation Verification and before behavior-first implementation when the task file contains a Binding Decisions section with one or more rows.
@@ -223,29 +232,7 @@ Return one of the following as the final response (see Structured Response Speci
223
232
  Report in the following JSON format upon task completion (**without executing quality checks or commits**, delegating to quality assurance process):
224
233
 
225
234
  ```json
226
- {
227
- "status": "completed",
228
- "taskName": "[Exact name of executed task]",
229
- "changeSummary": "[Specific summary of React component implementation/changes]",
230
- "filesModified": ["src/components/Button/Button.tsx", "src/components/Button/index.ts"],
231
- "testsAdded": ["src/components/Button/Button.test.tsx"],
232
- "requiresTestReview": false,
233
- "newTestsPassed": true,
234
- "progressUpdated": {
235
- "taskFile": "5/8 items completed",
236
- "workPlan": "Relevant sections updated",
237
- "designDoc": "Progress section updated or N/A"
238
- },
239
- "runnableCheck": {
240
- "level": "L1: Unit test (React Testing Library) / L2: Integration test / L3: E2E test",
241
- "executed": true,
242
- "command": "test -- Button.test.tsx",
243
- "result": "passed / failed / skipped",
244
- "reason": "Test execution reason/verification content"
245
- },
246
- "readyForQualityCheck": true,
247
- "nextActions": "Overall quality verification by quality assurance process"
248
- }
235
+ {"status":"completed","taskName":"[Exact name of executed task]","changeSummary":"[Specific summary of React component implementation/changes]","filesModified":["src/components/Button/Button.tsx","src/components/Button/index.ts"],"testsAdded":["src/components/Button/Button.test.tsx"],"requiresTestReview":false,"newTestsPassed":true,"progressUpdated":{"taskFile":"5/8 items completed","workPlan":"Relevant sections updated","designDoc":"Progress section updated or N/A"},"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","reason":"Test execution reason/verification content"},"readyForQualityCheck":true,"nextActions":"Overall quality verification by quality assurance process"}
249
236
  ```
250
237
 
251
238
  ### 2. Escalation Response
@@ -258,139 +245,35 @@ For task/AC/UI Spec/reference core-mechanism sources, set `details.design_doc_ex
258
245
  For core-mechanism violations, put the substitute in `details.actual_situation`, the behavior change in `details.why_cannot_implement`, and the unblock condition in `recommendation`.
259
246
 
260
247
  ```json
261
- {
262
- "status": "escalation_needed",
263
- "reason": "Design Doc deviation",
264
- "taskName": "[Task name being executed]",
265
- "details": {
266
- "design_doc_expectation": "[Exact quote from relevant Design Doc section]",
267
- "actual_situation": "[Details of situation actually encountered]",
268
- "why_cannot_implement": "[Technical reason why cannot implement per Design Doc]",
269
- "attempted_approaches": ["List of solution methods considered for trial"]
270
- },
271
- "escalation_type": "design_compliance_violation",
272
- "user_decision_required": true,
273
- "suggested_options": [
274
- "Modify Design Doc to match reality",
275
- "Implement missing components first",
276
- "Reconsider requirements and change implementation approach"
277
- ],
278
- "recommendation": "[Specific proposal for most appropriate solution direction]"
279
- }
248
+ {"status":"escalation_needed","reason":"Design Doc deviation","taskName":"[Task name being executed]","details":{"design_doc_expectation":"[Exact quote from relevant Design Doc section]","actual_situation":"[Details of situation actually encountered]","why_cannot_implement":"[Technical reason why cannot implement per Design Doc]","attempted_approaches":["List of solution methods considered for trial"]},"escalation_type":"design_compliance_violation","user_decision_required":true,"suggested_options":["Modify Design Doc to match reality","Implement missing components first","Reconsider requirements and change implementation approach"],"recommendation":"[Specific proposal for most appropriate solution direction]"}
280
249
  ```
281
250
 
282
251
  #### 2-2. Similar Component Discovery Escalation
283
252
  When discovering similar components/hooks during existing code investigation, escalate in following JSON format:
284
253
 
285
254
  ```json
286
- {
287
- "status": "escalation_needed",
288
- "reason": "Similar component/hook discovered",
289
- "taskName": "[Task name being executed]",
290
- "similar_components": [
291
- {
292
- "file_path": "src/components/ExistingButton/ExistingButton.tsx",
293
- "component_name": "ExistingButton",
294
- "similarity_reason": "Same UI pattern, same Props structure",
295
- "code_snippet": "[Excerpt of relevant component code]",
296
- "technical_debt_assessment": "high/medium/low/unknown"
297
- }
298
- ],
299
- "search_details": {
300
- "keywords_used": ["component keywords", "feature keywords"],
301
- "files_searched": 15,
302
- "matches_found": 3
303
- },
304
- "escalation_type": "similar_component_found",
305
- "user_decision_required": true,
306
- "suggested_options": [
307
- "Extend and use existing component",
308
- "Refactor existing component then use",
309
- "New implementation as technical debt (create ADR)",
310
- "New implementation (clarify differentiation from existing)"
311
- ],
312
- "recommendation": "[Recommended approach based on existing component analysis]"
313
- }
255
+ {"status":"escalation_needed","reason":"Similar component/hook discovered","taskName":"[Task name being executed]","similar_components":[{"file_path":"src/components/ExistingButton/ExistingButton.tsx","component_name":"ExistingButton","similarity_reason":"Same UI pattern, same Props structure","code_snippet":"[Excerpt of relevant component code]","technical_debt_assessment":"high/medium/low/unknown"}],"search_details":{"keywords_used":["component keywords","feature keywords"],"files_searched":15,"matches_found":3},"escalation_type":"similar_component_found","user_decision_required":true,"suggested_options":["Extend and use existing component","Refactor existing component then use","New implementation as technical debt (create ADR)","New implementation (clarify differentiation from existing)"],"recommendation":"[Recommended approach based on existing component analysis]"}
314
256
  ```
315
257
 
316
258
  #### 2-3. Investigation Target Not Found Escalation
317
259
  When an Investigation Target file does not exist or the path is stale, escalate in following JSON format:
318
260
 
319
261
  ```json
320
- {
321
- "status": "escalation_needed",
322
- "reason": "Investigation target not found",
323
- "taskName": "[Task name being executed]",
324
- "escalation_type": "investigation_target_not_found",
325
- "missingTargets": [
326
- {
327
- "path": "[path specified in task file]",
328
- "searchHint": "[section/function hint if provided, or null]",
329
- "searchAttempts": ["Checked path directly", "Searched nearby files with similar names", "Reviewed task dependencies for renamed or moved files"]
330
- }
331
- ],
332
- "user_decision_required": true,
333
- "suggested_options": [
334
- "Provide the correct file path",
335
- "Remove this Investigation Target and proceed",
336
- "Update the task file with current paths"
337
- ],
338
- "recommendation": "[Recommended next step based on what was found]"
339
- }
262
+ {"status":"escalation_needed","reason":"Investigation target not found","taskName":"[Task name being executed]","escalation_type":"investigation_target_not_found","missingTargets":[{"path":"[path specified in task file]","searchHint":"[section/function hint if provided, or null]","searchAttempts":["Checked path directly","Searched nearby files with similar names","Reviewed task dependencies for renamed or moved files"]}],"user_decision_required":true,"suggested_options":["Provide the correct file path","Remove this Investigation Target and proceed","Update the task file with current paths"],"recommendation":"[Recommended next step based on what was found]"}
340
263
  ```
341
264
 
342
265
  #### 2-4. Dependency Version Uncertain Escalation
343
266
  When repository-wide verification is insufficient to determine the appropriate dependency version, escalate in following JSON format:
344
267
 
345
268
  ```json
346
- {
347
- "status": "escalation_needed",
348
- "reason": "Dependency version uncertain",
349
- "taskName": "[Task name being executed]",
350
- "escalation_type": "dependency_version_uncertain",
351
- "dependency": {
352
- "name": "[dependency name]",
353
- "versionsFound": ["list of versions found in repository"],
354
- "filesChecked": ["file paths where the dependency usage was found"],
355
- "ambiguityReason": "[why repository state alone is insufficient]"
356
- },
357
- "user_decision_required": true,
358
- "suggested_options": [
359
- "Use the majority version already in the repository",
360
- "Use a different version with explicit rationale",
361
- "Research the latest stable version and decide after review"
362
- ]
363
- }
269
+ {"status":"escalation_needed","reason":"Dependency version uncertain","taskName":"[Task name being executed]","escalation_type":"dependency_version_uncertain","dependency":{"name":"[dependency name]","versionsFound":["list of versions found in repository"],"filesChecked":["file paths where the dependency usage was found"],"ambiguityReason":"[why repository state alone is insufficient]"},"user_decision_required":true,"suggested_options":["Use the majority version already in the repository","Use a different version with explicit rationale","Research the latest stable version and decide after review"]}
364
270
  ```
365
271
 
366
272
  #### 2-5. Binding Decision Violation Escalation
367
273
  When one or more Compliance Checks in the task's Binding Decisions section evaluate to `N` during pre-implementation, or to `N` or `Unknown` during completion, escalate in following JSON format:
368
274
 
369
275
  ```json
370
- {
371
- "status": "escalation_needed",
372
- "reason": "Binding decision violation",
373
- "taskName": "[Task name being executed]",
374
- "escalation_type": "binding_decision_violation",
375
- "phase": "pre_implementation | completion_gate",
376
- "implementationApproach": "[1-2 sentence summary of the planned or final implementation approach]",
377
- "failures": [
378
- {
379
- "source": "[ADR file path with section hint, copied from Source column]",
380
- "axis": "[Axis value copied from the Axis column]",
381
- "decision": "[Decision text copied from Decision column]",
382
- "complianceCheck": "[Compliance Check predicate copied from Compliance Check column]",
383
- "evaluation": "N | Unknown",
384
- "rationale": "[One line explaining why the implementation does not satisfy the check, or why it cannot be evaluated]"
385
- }
386
- ],
387
- "user_decision_required": true,
388
- "suggested_options": [
389
- "Adjust the implementation plan to satisfy the binding decision",
390
- "Update the ADR, then update the work plan ADR Bindings and task Binding Decisions",
391
- "Provide additional context that resolves the Unknown evaluation"
392
- ]
393
- }
276
+ {"status":"escalation_needed","reason":"Binding decision violation","taskName":"[Task name being executed]","escalation_type":"binding_decision_violation","phase":"pre_implementation | completion_gate","implementationApproach":"[1-2 sentence summary of the planned or final implementation approach]","failures":[{"source":"[ADR file path with section hint, copied from Source column]","axis":"[Axis value copied from the Axis column]","decision":"[Decision text copied from Decision column]","complianceCheck":"[Compliance Check predicate copied from Compliance Check column]","evaluation":"N | Unknown","rationale":"[One line explaining why the implementation does not satisfy the check, or why it cannot be evaluated]"}],"user_decision_required":true,"suggested_options":["Adjust the implementation plan to satisfy the binding decision","Update the ADR, then update the work plan ADR Bindings and task Binding Decisions","Provide additional context that resolves the Unknown evaluation"]}
394
277
  ```
395
278
 
396
279
  #### 2-6. Test Environment Not Ready Escalation
@@ -398,16 +281,7 @@ When one or more Compliance Checks in the task's Binding Decisions section evalu
398
281
  Triggered when the Test Environment Check finds the project-configured test toolchain unavailable or unrunnable.
399
282
 
400
283
  ```json
401
- {
402
- "status": "escalation_needed",
403
- "reason": "Test environment not ready",
404
- "taskName": "[Task name]",
405
- "escalation_type": "test_environment_not_ready",
406
- "missingComponent": "test runner | RTL setup | browser runtime | fixtures | mock server | setup file | other",
407
- "description": "[why the missing component blocks tests]",
408
- "user_decision_required": true,
409
- "suggested_options": ["Install or configure the missing component, then re-run the task", "Reassign the task once the environment is ready"]
410
- }
284
+ {"status":"escalation_needed","reason":"Test environment not ready","taskName":"[Task name]","escalation_type":"test_environment_not_ready","missingComponent":"test runner | RTL setup | browser runtime | fixtures | mock server | setup file | other","description":"[why the missing component blocks tests]","user_decision_required":true,"suggested_options":["Install or configure the missing component, then re-run the task","Reassign the task once the environment is ready"]}
411
285
  ```
412
286
 
413
287
  ## Scope Boundary (delegate to orchestrator)