codex-workflows 0.6.8 → 0.7.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 (41) 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/SKILL.md +1 -1
  5. package/.agents/skills/documentation-criteria/references/design-template.md +16 -5
  6. package/.agents/skills/documentation-criteria/references/plan-template.md +19 -5
  7. package/.agents/skills/documentation-criteria/references/task-template.md +19 -1
  8. package/.agents/skills/recipe-build/SKILL.md +1 -1
  9. package/.agents/skills/recipe-front-build/SKILL.md +1 -1
  10. package/.agents/skills/recipe-front-plan/SKILL.md +1 -1
  11. package/.agents/skills/recipe-fullstack-build/SKILL.md +1 -1
  12. package/.agents/skills/recipe-plan/SKILL.md +1 -1
  13. package/.agents/skills/recipe-prepare-implementation/SKILL.md +2 -1
  14. package/.agents/skills/subagents-orchestration-guide/SKILL.md +2 -2
  15. package/.agents/skills/subagents-orchestration-guide/references/monorepo-flow.md +1 -1
  16. package/.agents/skills/testing/SKILL.md +5 -5
  17. package/.agents/skills/testing/references/typescript.md +2 -6
  18. package/.codex/agents/acceptance-test-generator.toml +2 -44
  19. package/.codex/agents/code-reviewer.toml +12 -57
  20. package/.codex/agents/code-verifier.toml +1 -47
  21. package/.codex/agents/codebase-analyzer.toml +1 -106
  22. package/.codex/agents/design-sync.toml +2 -64
  23. package/.codex/agents/document-reviewer.toml +8 -81
  24. package/.codex/agents/integration-test-reviewer.toml +1 -26
  25. package/.codex/agents/investigator.toml +1 -73
  26. package/.codex/agents/quality-fixer-frontend.toml +4 -105
  27. package/.codex/agents/quality-fixer.toml +4 -122
  28. package/.codex/agents/requirement-analyzer.toml +1 -29
  29. package/.codex/agents/rule-advisor.toml +1 -79
  30. package/.codex/agents/scope-discoverer.toml +1 -70
  31. package/.codex/agents/security-reviewer.toml +1 -19
  32. package/.codex/agents/solver.toml +5 -54
  33. package/.codex/agents/task-decomposer.toml +47 -4
  34. package/.codex/agents/task-executor-frontend.toml +37 -144
  35. package/.codex/agents/task-executor.toml +37 -144
  36. package/.codex/agents/technical-designer-frontend.toml +8 -0
  37. package/.codex/agents/technical-designer.toml +10 -1
  38. package/.codex/agents/ui-analyzer.toml +1 -157
  39. package/.codex/agents/verifier.toml +2 -65
  40. package/.codex/agents/work-planner.toml +30 -9
  41. package/package.json +1 -1
@@ -158,53 +158,7 @@ Return the JSON result as the final response. See Output Format for the schema.
158
158
  ### Essential Output (default)
159
159
 
160
160
  ```json
161
- {
162
- "summary": {
163
- "docType": "prd|design-doc",
164
- "documentPath": "/path/to/document.md",
165
- "verifiableClaimCount": 24,
166
- "matchCount": 20,
167
- "consistencyScore": 85,
168
- "status": "consistent|mostly_consistent|needs_review|inconsistent"
169
- },
170
- "claimCoverage": {
171
- "sectionsAnalyzed": 8,
172
- "sectionsWithClaims": 7,
173
- "sectionsWithZeroClaims": ["Appendix"]
174
- },
175
- "discrepancies": [
176
- {
177
- "id": "D001",
178
- "status": "drift|gap|conflict",
179
- "severity": "critical|major|minor",
180
- "claim": "Brief claim description",
181
- "documentLocation": "PRD.md:45",
182
- "codeLocation": "src/auth.ts:120",
183
- "evidence": "Observed implementation or enumeration result",
184
- "classification": "What was found"
185
- }
186
- ],
187
- "reverseCoverage": {
188
- "routesInCode": 6,
189
- "routesDocumented": 5,
190
- "undocumentedRoutes": ["POST /admin/reindex (src/routes/admin.ts:42)"],
191
- "testFilesFound": 4,
192
- "testFilesDocumented": 2,
193
- "exportsInCode": 12,
194
- "exportsDocumented": 10,
195
- "undocumentedExports": ["rebuildSearchIndex (src/search/index.ts:18)"],
196
- "dataOperationsInCode": 3,
197
- "dataOperationsDocumented": 2,
198
- "undocumentedDataOperations": ["userRepository.saveUser (src/user/repository.ts:41)"],
199
- "testBoundariesSectionPresent": true
200
- },
201
- "coverage": {
202
- "documented": ["Feature areas with documentation"],
203
- "undocumented": ["Code features lacking documentation"],
204
- "unimplemented": ["Documented specs not yet implemented"]
205
- },
206
- "limitations": ["What could not be verified and why"]
207
- }
161
+ {"summary":{"docType":"prd|design-doc","documentPath":"/path/to/document.md","verifiableClaimCount":24,"matchCount":20,"consistencyScore":85,"status":"consistent|mostly_consistent|needs_review|inconsistent"},"claimCoverage":{"sectionsAnalyzed":8,"sectionsWithClaims":7,"sectionsWithZeroClaims":["Appendix"]},"discrepancies":[{"id":"D001","status":"drift|gap|conflict","severity":"critical|major|minor","claim":"Brief claim description","documentLocation":"PRD.md:45","codeLocation":"src/auth.ts:120","evidence":"Observed implementation or enumeration result","classification":"What was found"}],"reverseCoverage":{"routesInCode":6,"routesDocumented":5,"undocumentedRoutes":["POST /admin/reindex (src/routes/admin.ts:42)"],"testFilesFound":4,"testFilesDocumented":2,"exportsInCode":12,"exportsDocumented":10,"undocumentedExports":["rebuildSearchIndex (src/search/index.ts:18)"],"dataOperationsInCode":3,"dataOperationsDocumented":2,"undocumentedDataOperations":["userRepository.saveUser (src/user/repository.ts:41)"],"testBoundariesSectionPresent":true},"coverage":{"documented":["Feature areas with documentation"],"undocumented":["Code features lacking documentation"],"unimplemented":["Documented specs not yet implemented"]},"limitations":["What could not be verified and why"]}
208
162
  ```
209
163
 
210
164
  ### Extended Output (verbose: true)
@@ -129,112 +129,7 @@ Return the JSON result as the final response.
129
129
  ## Output Format
130
130
 
131
131
  ```json
132
- {
133
- "analysisScope": {
134
- "filesAnalyzed": ["path/to/file"],
135
- "tracedDependencies": ["path/to/dependency"],
136
- "categoriesDetected": ["data_layer", "validation"]
137
- },
138
- "existingElements": [
139
- {
140
- "category": "function|class|type|interface|component|hook|configuration|constant",
141
- "name": "ElementName",
142
- "filePath": "path/to/file:line",
143
- "signature": "Exact or brief signature",
144
- "usedBy": ["path/to/consumer"]
145
- }
146
- ],
147
- "dataModel": {
148
- "detected": true,
149
- "schemas": [
150
- {
151
- "name": "table_or_model",
152
- "definitionPath": "path/to/file:line",
153
- "fields": [
154
- {
155
- "name": "field_name",
156
- "type": "field_type",
157
- "constraints": ["NOT NULL", "UNIQUE"]
158
- }
159
- ],
160
- "relationships": ["references other_table via foreign_key"]
161
- }
162
- ],
163
- "accessPatterns": [
164
- {
165
- "operation": "read|write|aggregate|join|delete",
166
- "location": "path/to/file:line",
167
- "targetSchema": "table_or_model",
168
- "description": "Observed access pattern"
169
- }
170
- ],
171
- "migrationFiles": ["path/to/migration"]
172
- },
173
- "dataTransformationPipelines": [
174
- {
175
- "entryPoint": "functionOrMethodName (path/to/file:line)",
176
- "steps": [
177
- {
178
- "order": 1,
179
- "method": "functionOrMethodName (path/to/file:line)",
180
- "input": "Input data or format at this step",
181
- "output": "Output data or format at this step",
182
- "externalLookups": ["Config.KEY lookup", "Reference table mapping"],
183
- "transformation": "What changed and why it matters"
184
- }
185
- ],
186
- "intermediateFormats": ["Intermediate representation if applicable"],
187
- "finalOutput": "Final output shape or observable value"
188
- }
189
- ],
190
- "entryPointInventory": [
191
- {
192
- "entryPoint": "functionOrMethodName (path/to/file:line)",
193
- "classification": "change-relevant|non-relevant",
194
- "inputShape": "Input type or shape",
195
- "outputShape": "Output type or shape"
196
- }
197
- ],
198
- "constraints": [
199
- {
200
- "type": "validation|business_rule|configuration|assumption",
201
- "description": "Observed constraint",
202
- "location": "path/to/file:line",
203
- "impact": "Why design should respect it"
204
- }
205
- ],
206
- "qualityAssurance": {
207
- "mechanisms": [
208
- {
209
- "tool": "Tool or check name",
210
- "enforces": "What quality aspect it enforces",
211
- "configLocation": "path/to/config:line",
212
- "coveredFiles": ["affected files or directories covered by this mechanism"],
213
- "type": "linter|static_analysis|schema_validator|domain_specific|ci_check"
214
- }
215
- ],
216
- "domainConstraints": [
217
- {
218
- "constraint": "Description of the domain-specific constraint",
219
- "source": "path/to/config-or-ci:line",
220
- "affectedFiles": ["files subject to this constraint"]
221
- }
222
- ]
223
- },
224
- "focusAreas": [
225
- {
226
- "area": "Area name",
227
- "reason": "Why this area deserves attention",
228
- "relatedFiles": ["path/to/file"],
229
- "risk": "What could break if the design overlooks it"
230
- }
231
- ],
232
- "testCoverage": {
233
- "testedElements": ["element name"],
234
- "untestedElements": ["element name"]
235
- },
236
- "limitations": ["What could not be fully traced and why"]
237
- }
132
+ {"analysisScope":{"filesAnalyzed":["path/to/file"],"tracedDependencies":["path/to/dependency"],"categoriesDetected":["data_layer","validation"]},"existingElements":[{"category":"function|class|type|interface|component|hook|configuration|constant","name":"ElementName","filePath":"path/to/file:line","signature":"Exact or brief signature","usedBy":["path/to/consumer"]}],"dataModel":{"detected":true,"schemas":[{"name":"table_or_model","definitionPath":"path/to/file:line","fields":[{"name":"field_name","type":"field_type","constraints":["NOT NULL","UNIQUE"]}],"relationships":["references other_table via foreign_key"]}],"accessPatterns":[{"operation":"read|write|aggregate|join|delete","location":"path/to/file:line","targetSchema":"table_or_model","description":"Observed access pattern"}],"migrationFiles":["path/to/migration"]},"dataTransformationPipelines":[{"entryPoint":"functionOrMethodName (path/to/file:line)","steps":[{"order":1,"method":"functionOrMethodName (path/to/file:line)","input":"Input data or format at this step","output":"Output data or format at this step","externalLookups":["Config.KEY lookup","Reference table mapping"],"transformation":"What changed and why it matters"}],"intermediateFormats":["Intermediate representation if applicable"],"finalOutput":"Final output shape or observable value"}],"entryPointInventory":[{"entryPoint":"functionOrMethodName (path/to/file:line)","classification":"change-relevant|non-relevant","inputShape":"Input type or shape","outputShape":"Output type or shape"}],"constraints":[{"type":"validation|business_rule|configuration|assumption","description":"Observed constraint","location":"path/to/file:line","impact":"Why design should respect it"}],"qualityAssurance":{"mechanisms":[{"tool":"Tool or check name","enforces":"What quality aspect it enforces","configLocation":"path/to/config:line","coveredFiles":["affected files or directories covered by this mechanism"],"type":"linter|static_analysis|schema_validator|domain_specific|ci_check"}],"domainConstraints":[{"constraint":"Description of the domain-specific constraint","source":"path/to/config-or-ci:line","affectedFiles":["files subject to this constraint"]}]},"focusAreas":[{"area":"Area name","reason":"Why this area deserves attention","relatedFiles":["path/to/file"],"risk":"What could break if the design overlooks it"}],"testCoverage":{"testedElements":["element name"],"untestedElements":["element name"]},"limitations":["What could not be fully traced and why"]}
238
133
  ```
239
134
 
240
135
  ## Completion Criteria
@@ -228,57 +228,7 @@ Severity Assessment:
228
228
  ### Output Format [JSON MANDATORY]
229
229
 
230
230
  ```json
231
- {
232
- "metadata": {
233
- "review_type": "design-sync",
234
- "source_design": "[source Design Doc path]",
235
- "analyzed_docs": 3,
236
- "analysis_date": "[execution datetime]"
237
- },
238
- "summary": {
239
- "total_conflicts": 2,
240
- "critical": 1,
241
- "high": 1,
242
- "medium": 0,
243
- "confirmed_conflicts": 1,
244
- "candidate_conflicts": 1,
245
- "sync_status": "CONFLICTS_FOUND"
246
- },
247
- "confirmed_conflicts": [
248
- {
249
- "id": "CONFLICT-001",
250
- "severity": "critical",
251
- "confidence": "high",
252
- "match_basis": "exact_string",
253
- "type": "Type definition mismatch",
254
- "source_file": "[source file]",
255
- "source_location": "[section/line]",
256
- "source_value": "[content in source file]",
257
- "target_file": "[file with conflict]",
258
- "target_location": "[section/line]",
259
- "target_value": "[conflicting content]",
260
- "recommendation": "[Recommend unifying to source file's value]"
261
- }
262
- ],
263
- "candidate_conflicts": [
264
- {
265
- "id": "CANDIDATE-001",
266
- "severity": "high",
267
- "confidence": "medium",
268
- "match_basis": "same_ac_slot",
269
- "type": "Acceptance criteria conflict",
270
- "source_file": "[source file]",
271
- "source_location": "[section/line]",
272
- "source_value": "[content in source file]",
273
- "target_file": "[file with conflict]",
274
- "target_location": "[section/line]",
275
- "target_value": "[conflicting content]",
276
- "reason": "[structural evidence linking the items]",
277
- "recommendation": "[Recommend reviewing whether these describe the same design slot]"
278
- }
279
- ],
280
- "no_conflicts_docs": ["[filename1]", "[filename2]"]
281
- }
231
+ {"metadata":{"review_type":"design-sync","source_design":"[source Design Doc path]","analyzed_docs":3,"analysis_date":"[execution datetime]"},"summary":{"total_conflicts":2,"critical":1,"high":1,"medium":0,"confirmed_conflicts":1,"candidate_conflicts":1,"sync_status":"CONFLICTS_FOUND"},"confirmed_conflicts":[{"id":"CONFLICT-001","severity":"critical","confidence":"high","match_basis":"exact_string","type":"Type definition mismatch","source_file":"[source file]","source_location":"[section/line]","source_value":"[content in source file]","target_file":"[file with conflict]","target_location":"[section/line]","target_value":"[conflicting content]","recommendation":"[Recommend unifying to source file's value]"}],"candidate_conflicts":[{"id":"CANDIDATE-001","severity":"high","confidence":"medium","match_basis":"same_ac_slot","type":"Acceptance criteria conflict","source_file":"[source file]","source_location":"[section/line]","source_value":"[content in source file]","target_file":"[file with conflict]","target_location":"[section/line]","target_value":"[conflicting content]","reason":"[structural evidence linking the items]","recommendation":"[Recommend reviewing whether these describe the same design slot]"}],"no_conflicts_docs":["[filename1]","[filename2]"]}
282
232
  ```
283
233
 
284
234
  `total_conflicts` MUST equal `confirmed_conflicts + candidate_conflicts`.
@@ -290,19 +240,7 @@ When no conflicts: `"sync_status": "NO_CONFLICTS"`, `"confirmed_conflicts": []`,
290
240
  When fewer than 2 Design Docs exist, return immediately:
291
241
 
292
242
  ```json
293
- {
294
- "metadata": {
295
- "review_type": "design-sync",
296
- "source_design": "[provided path]",
297
- "analyzed_docs": 1
298
- },
299
- "summary": {
300
- "sync_status": "SKIPPED",
301
- "reason": "fewer_than_2_design_docs"
302
- },
303
- "confirmed_conflicts": [],
304
- "candidate_conflicts": []
305
- }
243
+ {"metadata":{"review_type":"design-sync","source_design":"[provided path]","analyzed_docs":1},"summary":{"sync_status":"SKIPPED","reason":"fewer_than_2_design_docs"},"confirmed_conflicts":[],"candidate_conflicts":[]}
306
244
  ```
307
245
 
308
246
  ENFORCEMENT: sync_status MUST be one of: CONFLICTS_FOUND | NO_CONFLICTS | SKIPPED. These three values are the complete vocabulary.
@@ -84,7 +84,7 @@ Skill Status:
84
84
  - When `codebase_analysis` is provided, use `analysisScope`, `existingElements`, `constraints`, `qualityAssurance`, `focusAreas`, and `limitations` as source evidence for scope, feasibility, and completeness checks
85
85
  - When `ui_analysis` is provided, use `componentStructure`, `propsPatterns`, `cssLayout`, `stateDisplay`, `displayConditions`, `accessibility`, and `candidateWriteSet` as source evidence for UI scope, feasibility, and completeness checks
86
86
  - When `code_verification` is provided, use its discrepancies and reverse coverage as pre-verified evidence during review
87
- - For WorkPlan: confirm the plan carries the artifacts the semantic gate is judged against: WorkPlan Review, Review Scope, Design-to-Plan Traceability, Verification Strategy summary, Proof Strategy, Failure Mode Checklist, and Quality Assurance Mechanisms. Read the referenced Design Doc(s), UI Spec, ADRs, and test skeletons when listed so coverage can be checked against source artifacts.
87
+ - For WorkPlan: confirm the plan carries the artifacts the semantic gate is judged against: WorkPlan Review, Review Scope, Design-to-Plan Traceability, Reference Contract Values when binding observable values apply, Verification Strategy summary, Proof Strategy, Failure Mode Checklist, and Quality Assurance Mechanisms. Read the referenced Design Doc(s), including `Observable Contract Values` tables when present, UI Spec, ADRs, and test skeletons when listed so coverage can be checked against source artifacts.
88
88
 
89
89
  ### Step 2: Target Document Collection
90
90
  - Load document specified by target
@@ -134,11 +134,13 @@ For WorkPlan, additionally verify:
134
134
  - **Output comparison check**: When the Design Doc changes existing observable behavior, an external contract, or a persisted data shape, verify that a concrete output comparison method is defined with identical input, expected output fields or format, and diff method. When upstream analysis includes `dataTransformationPipelines`, each listed step must be mapped to the comparison that verifies it; steps excluded because data passes through unchanged must include rationale. Missing mappings or rationale → `important` issue (category: `completeness`)
135
135
  - **Minimal Surface Alternatives check**: Applies when the Design Doc proposes new in-scope elements as defined by coding-rules "Minimum Surface Terms". Reverse-engineer/as-is Design Docs are exempt. Missing or empty section when the trigger fires → `critical` issue (category: `completeness`). For each entry verify: (1) Step 1 lists at least one AC ID or accepted technical constraint from the Design Doc or referenced UI Spec; speculative-only linkage → `critical` issue (category: `compliance`). (2) Steps 2-3 include at least one subtractive alternative such as derive, compute on demand, keep at caller, reuse existing, or do not introduce new state/mode/abstraction; missing subtractive alternative → `important` issue (category: `compliance`). (3) Step 4 selects the smallest alternative or names a current requirement smaller alternatives fail to satisfy; primary rationale based on coding-rules subjective-only rationales → `critical` issue (category: `compliance`). (4) Step 5 records rejected alternatives with brief rationale; missing rejected alternatives log → `important` issue (category: `completeness`)
136
136
  - **WorkPlan semantic gate**:
137
- - Coverage is checked where each item lives in the plan: each acceptance criterion is covered by a task whose Completion Criteria or Proof Obligations reference the AC ID or claim identifier; each data contract, state transition, boundary, prerequisite, and protected scope item has a Design-to-Plan Traceability row mapped to a task or an explicit out-of-scope entry. Missing coverage is a `critical` issue (category: `completeness`).
137
+ - Coverage is checked where each item lives in the plan: each acceptance criterion is covered by a task whose Completion Criteria or Proof Obligations reference the AC ID or claim identifier; each data contract, state transition, boundary, prerequisite, and protected scope item has a Design-to-Plan Traceability row mapped to a task or an explicit out-of-scope entry; each non-serialized binding observable Design Doc value is copied into Reference Contract Values when applicable; each serialized binding value is recorded in Connection Map with concrete Serialized Format and Consumer Parse Rule. Missing coverage is a `critical` issue (category: `completeness`).
138
138
  - Distinguish the cause for an uncovered acceptance criterion: when the source Design Doc supports it but no task maps to it, classify as a plan omission (`critical`, fixable by re-planning); when the source document or inputs give it no basis, classify as `rejected` because re-planning cannot invent the missing source requirement.
139
139
  - Early verification must sit in an early phase rather than only the final phase. Deferral to final phase without rationale is an `important` issue (category: `consistency`).
140
140
  - Each cross-boundary, public-boundary, browser-boundary, or persisted-state change names a task that verifies it through the real boundary. Missing real-boundary coverage is an `important` issue (category: `completeness`).
141
- - Each traceability table present (Design-to-Plan, UI Spec Component, Connection Map, ADR Bindings) is filled to the granularity needed to resolve the target task. Under-specified rows are `important` issues (category: `completeness`).
141
+ - Each traceability table present (Design-to-Plan, Reference Contract Values, UI Spec Component, Connection Map, ADR Bindings) is filled to the granularity needed to resolve the target task. Under-specified rows are `important` issues (category: `completeness`).
142
+ - Reference Contract Values uses explicit `covered` or `gap` status. A `covered` row without task IDs, or a `gap` row without Notes explaining the gap and user-confirmation handling, is an `important` issue (category: `completeness`).
143
+ - Binding observable values are carried with content fidelity: for each Design Doc observable contract that encodes a non-serialized binding value (column/field/label set and order, derived-display rule, or state-lifecycle negative), the plan's Reference Contract Values table carries the value verbatim from the Design Doc and maps it to a covering task. A non-serialized value reduced to a label, summarized, or absent while the Design Doc specifies it is a content-fidelity gap: `critical` issue (category: `completeness`). When the value is serialized across a boundary, verify it is recorded in Connection Map instead; missing concrete Serialized Format or Consumer Parse Rule for that serialized value is a `critical` issue (category: `completeness`).
142
144
  - The Failure Mode Checklist covers applicable domain-independent categories: same-value, no-op, empty input, invalid option, missing config, unavailable boundary, shared-state dependency, rollback-only visibility. Missing applicable categories are `recommended` issues (category: `completeness`).
143
145
  - Verdict mapping: any WorkPlan semantic-gate `critical` issue forces `needs_revision`, except a coverage gap traceable to missing or contradictory source documents or inputs forces `rejected`. Important-only issues may return `approved_with_conditions`, but orchestration must route WorkPlan conditions back through work-planner update before batch approval or task decomposition.
144
146
  - **Undetermined items review** [MANDATORY]: Every TBD, unknown, or open item MUST include: (1) **owner** — who resolves it, (2) **due** — when it gets resolved (which phase or milestone), (3) **next-phase handling** — how the next phase treats this gap. Missing any of these three → `important` issue
@@ -186,73 +188,13 @@ Complete all items before proceeding to output.
186
188
  ### Comprehensive Review Mode
187
189
 
188
190
  ```json
189
- {
190
- "metadata": {
191
- "review_mode": "comprehensive",
192
- "doc_type": "DesignDoc",
193
- "target_path": "/path/to/document.md"
194
- },
195
- "scores": {
196
- "consistency": 85,
197
- "completeness": 80,
198
- "rule_compliance": 90,
199
- "clarity": 75
200
- },
201
- "gate0": {
202
- "status": "pass|fail",
203
- "missing_elements": []
204
- },
205
- "verdict": {
206
- "decision": "approved_with_conditions",
207
- "conditions": [
208
- "Resolve FileUtil discrepancy",
209
- "Add missing test files"
210
- ]
211
- },
212
- "issues": [
213
- {
214
- "id": "I001",
215
- "severity": "critical",
216
- "category": "implementation",
217
- "location": "Section 3.2",
218
- "description": "FileUtil method mismatch",
219
- "suggestion": "Update document to reflect actual FileUtil usage"
220
- }
221
- ],
222
- "recommendations": [
223
- "Priority fixes before approval",
224
- "Documentation alignment with implementation"
225
- ],
226
- "prior_context_check": {
227
- "items_received": 0,
228
- "resolved": 0,
229
- "partially_resolved": 0,
230
- "unresolved": 0,
231
- "items": []
232
- }
233
- }
191
+ {"metadata":{"review_mode":"comprehensive","doc_type":"DesignDoc","target_path":"/path/to/document.md"},"scores":{"consistency":85,"completeness":80,"rule_compliance":90,"clarity":75},"gate0":{"status":"pass|fail","missing_elements":[]},"verdict":{"decision":"approved_with_conditions","conditions":["Resolve FileUtil discrepancy","Add missing test files"]},"issues":[{"id":"I001","severity":"critical","category":"implementation","location":"Section 3.2","description":"FileUtil method mismatch","suggestion":"Update document to reflect actual FileUtil usage"}],"recommendations":["Priority fixes before approval","Documentation alignment with implementation"],"prior_context_check":{"items_received":0,"resolved":0,"partially_resolved":0,"unresolved":0,"items":[]}}
234
192
  ```
235
193
 
236
194
  ### Perspective-specific Mode
237
195
 
238
196
  ```json
239
- {
240
- "metadata": {
241
- "review_mode": "perspective",
242
- "focus": "implementation",
243
- "doc_type": "DesignDoc",
244
- "target_path": "/path/to/document.md"
245
- },
246
- "analysis": {
247
- "summary": "Analysis results description",
248
- "scores": {}
249
- },
250
- "issues": [],
251
- "checklist": [
252
- {"item": "Check item description", "status": "pass|fail|na"}
253
- ],
254
- "recommendations": []
255
- }
197
+ {"metadata":{"review_mode":"perspective","focus":"implementation","doc_type":"DesignDoc","target_path":"/path/to/document.md"},"analysis":{"summary":"Analysis results description","scores":{}},"issues":[],"checklist":[{"item":"Check item description","status":"pass|fail|na"}],"recommendations":[]}
256
198
  ```
257
199
 
258
200
  ### Prior Context Check
@@ -260,22 +202,7 @@ Complete all items before proceeding to output.
260
202
  Include in output when `prior_context_count > 0`:
261
203
 
262
204
  ```json
263
- {
264
- "prior_context_check": {
265
- "items_received": 3,
266
- "resolved": 2,
267
- "partially_resolved": 1,
268
- "unresolved": 0,
269
- "items": [
270
- {
271
- "id": "D001",
272
- "status": "resolved",
273
- "location": "Section 3.2",
274
- "evidence": "Code now matches documentation"
275
- }
276
- ]
277
- }
278
- }
205
+ {"prior_context_check":{"items_received":3,"resolved":2,"partially_resolved":1,"unresolved":0,"items":[{"id":"D001","status":"resolved","location":"Section 3.2","evidence":"Code now matches documentation"}]}}
279
206
  ```
280
207
 
281
208
  ## Review Checklist (for Comprehensive Mode)
@@ -100,32 +100,7 @@ Return the JSON result as the final response. See Output Format for the schema.
100
100
  ## Output Format
101
101
 
102
102
  ```json
103
- {
104
- "status": "approved|needs_revision|blocked",
105
- "testFile": "[path]",
106
- "verdict": {
107
- "decision": "approved|needs_revision|blocked",
108
- "summary": "[1-2 sentence summary]"
109
- },
110
- "testsReviewed": 5,
111
- "passedTests": 3,
112
- "failedTests": 2,
113
- "qualityIssues": [
114
- {
115
- "testName": "[test name]",
116
- "issueType": "skeleton_mismatch|aaa_violation|independence_violation|mock_boundary|proof_insufficient|readability",
117
- "severity": "high|medium|low",
118
- "description": "[specific issue]",
119
- "skeletonExpected": "[what skeleton specified]",
120
- "actualImplementation": "[what was found]",
121
- "suggestion": "[specific fix]"
122
- }
123
- ],
124
- "requiredFixes": [
125
- "[specific fix 1]",
126
- "[specific fix 2]"
127
- ]
128
- }
103
+ {"status":"approved|needs_revision|blocked","testFile":"[path]","verdict":{"decision":"approved|needs_revision|blocked","summary":"[1-2 sentence summary]"},"testsReviewed":5,"passedTests":3,"failedTests":2,"qualityIssues":[{"testName":"[test name]","issueType":"skeleton_mismatch|aaa_violation|independence_violation|mock_boundary|proof_insufficient|readability","severity":"high|medium|low","description":"[specific issue]","skeletonExpected":"[what skeleton specified]","actualImplementation":"[what was found]","suggestion":"[specific fix]"}],"requiredFixes":["[specific fix 1]","[specific fix 2]"]}
129
104
  ```
130
105
 
131
106
  ## Status Determination
@@ -119,79 +119,7 @@ Return the JSON result as the final response. See Output Format for the schema.
119
119
  **JSON format is mandatory.**
120
120
 
121
121
  ```json
122
- {
123
- "problemSummary": {
124
- "phenomenon": "Objective description of observed phenomenon",
125
- "context": "Occurrence conditions, environment, timing",
126
- "scope": "Impact range"
127
- },
128
- "investigationSources": [
129
- {
130
- "type": "code|history|dependency|config|document|external",
131
- "location": "Location investigated",
132
- "findings": "Facts discovered (without interpretation)"
133
- }
134
- ],
135
- "externalResearch": [
136
- {
137
- "query": "Search query used",
138
- "source": "Information source",
139
- "findings": "Related information discovered",
140
- "relevance": "Relevance to this problem"
141
- }
142
- ],
143
- "pathMap": {
144
- "entryPoint": "First relevant execution entry",
145
- "nodes": [
146
- {
147
- "id": "N1",
148
- "stage": "route_entry|service_entry|validation|persistence_read|persistence_write|external_call|render|other",
149
- "component": "Component or file path",
150
- "description": "Role on the execution path",
151
- "status": "observed|inferred|unverified"
152
- }
153
- ]
154
- },
155
- "failurePoints": [
156
- {
157
- "id": "FP1",
158
- "nodeId": "N1",
159
- "description": "Specific failure point description",
160
- "causeCategory": "typo|logic_error|missing_constraint|design_gap|external_factor",
161
- "causalChain": ["Phenomenon", "→ Direct cause", "→ Root cause"],
162
- "supportingEvidence": [
163
- {"evidence": "Evidence", "source": "Source", "strength": "direct|indirect|circumstantial"}
164
- ],
165
- "contradictingEvidence": [
166
- {"evidence": "Counter-evidence", "source": "Source", "impact": "Impact on this failure point"}
167
- ],
168
- "unexploredAspects": ["Unverified aspects"]
169
- }
170
- ],
171
- "comparisonAnalysis": {
172
- "normalImplementation": "Path to working implementation (null if not found)",
173
- "failingImplementation": "Path to problematic implementation",
174
- "keyDifferences": ["Differences"]
175
- },
176
- "impactAnalysis": {
177
- "causeCategory": "typo|logic_error|missing_constraint|design_gap|external_factor",
178
- "impactScope": ["Affected file paths"],
179
- "recurrenceRisk": "low|medium|high",
180
- "riskRationale": "Rationale for risk determination"
181
- },
182
- "unexploredAreas": [
183
- {"area": "Unexplored area", "reason": "Reason could not investigate", "potentialRelevance": "Relevance"}
184
- ],
185
- "failurePointRelationships": [
186
- {
187
- "from": "FP1",
188
- "to": "FP2",
189
- "relationship": "independent|upstream_of|downstream_of|amplifies|same_boundary"
190
- }
191
- ],
192
- "factualObservations": ["Objective facts observed regardless of failure-point classification"],
193
- "investigationLimitations": ["Limitations and constraints of this investigation"]
194
- }
122
+ {"problemSummary":{"phenomenon":"Objective description of observed phenomenon","context":"Occurrence conditions, environment, timing","scope":"Impact range"},"investigationSources":[{"type":"code|history|dependency|config|document|external","location":"Location investigated","findings":"Facts discovered (without interpretation)"}],"externalResearch":[{"query":"Search query used","source":"Information source","findings":"Related information discovered","relevance":"Relevance to this problem"}],"pathMap":{"entryPoint":"First relevant execution entry","nodes":[{"id":"N1","stage":"route_entry|service_entry|validation|persistence_read|persistence_write|external_call|render|other","component":"Component or file path","description":"Role on the execution path","status":"observed|inferred|unverified"}]},"failurePoints":[{"id":"FP1","nodeId":"N1","description":"Specific failure point description","causeCategory":"typo|logic_error|missing_constraint|design_gap|external_factor","causalChain":["Phenomenon","→ Direct cause","→ Root cause"],"supportingEvidence":[{"evidence":"Evidence","source":"Source","strength":"direct|indirect|circumstantial"}],"contradictingEvidence":[{"evidence":"Counter-evidence","source":"Source","impact":"Impact on this failure point"}],"unexploredAspects":["Unverified aspects"]}],"comparisonAnalysis":{"normalImplementation":"Path to working implementation (null if not found)","failingImplementation":"Path to problematic implementation","keyDifferences":["Differences"]},"impactAnalysis":{"causeCategory":"typo|logic_error|missing_constraint|design_gap|external_factor","impactScope":["Affected file paths"],"recurrenceRisk":"low|medium|high","riskRationale":"Rationale for risk determination"},"unexploredAreas":[{"area":"Unexplored area","reason":"Reason could not investigate","potentialRelevance":"Relevance"}],"failurePointRelationships":[{"from":"FP1","to":"FP2","relationship":"independent|upstream_of|downstream_of|amplifies|same_boundary"}],"factualObservations":["Objective facts observed regardless of failure-point classification"],"investigationLimitations":["Limitations and constraints of this investigation"]}
195
123
  ```
196
124
 
197
125
  ## Completion Criteria
@@ -185,123 +185,22 @@ Before setting status to blocked, confirm specifications in this order:
185
185
 
186
186
  **When incomplete implementation is detected**:
187
187
  ```json
188
- {
189
- "status": "stub_detected",
190
- "summary": "Incomplete frontend implementation detected in changed code before quality checks.",
191
- "stubFindings": [
192
- {
193
- "file": "src/components/CheckoutButton.tsx",
194
- "indicator": "placeholder handler",
195
- "details": "onClick handler still contains placeholder logic for required submission flow"
196
- }
197
- ],
198
- "nextActions": "Return to task-executor-frontend and complete the implementation before re-running quality-fixer-frontend."
199
- }
188
+ {"status":"stub_detected","summary":"Incomplete frontend implementation detected in changed code before quality checks.","stubFindings":[{"file":"src/components/CheckoutButton.tsx","indicator":"placeholder handler","details":"onClick handler still contains placeholder logic for required submission flow"}],"nextActions":"Return to task-executor-frontend and complete the implementation before re-running quality-fixer-frontend."}
200
189
  ```
201
190
 
202
191
  **When quality check succeeds**:
203
192
  ```json
204
- {
205
- "status": "approved",
206
- "summary": "Overall frontend quality check completed. All checks passed.",
207
- "checksPerformed": {
208
- "lint_format": {
209
- "status": "passed",
210
- "commands": ["<detected-lint-command>"],
211
- "autoFixed": true
212
- },
213
- "typescript": {
214
- "status": "passed",
215
- "commands": ["<detected-build-command>"]
216
- },
217
- "tests": {
218
- "status": "passed",
219
- "commands": ["<detected-test-command>"],
220
- "testsRun": 42,
221
- "testsPassed": 42,
222
- "coverage": "85%"
223
- }
224
- },
225
- "fixesApplied": [
226
- {
227
- "type": "auto",
228
- "category": "format",
229
- "description": "Auto-fixed indentation and semicolons",
230
- "filesCount": 5
231
- },
232
- {
233
- "type": "manual",
234
- "category": "type",
235
- "description": "Replaced any type with unknown + type guards",
236
- "filesCount": 3
237
- }
238
- ],
239
- "taskFileMechanisms": {
240
- "provided": true,
241
- "executed": ["mechanism names that were found and executed"],
242
- "skipped": [
243
- {
244
- "mechanism": "mechanism name",
245
- "reason": "tool not found / config not found / not executable"
246
- }
247
- ]
248
- },
249
- "metrics": {
250
- "totalErrors": 0,
251
- "totalWarnings": 0,
252
- "executionTime": "3m 30s"
253
- },
254
- "nextActions": "Ready to commit"
255
- }
193
+ {"status":"approved","summary":"Overall frontend quality check completed. All checks passed.","checksPerformed":{"lint_format":{"status":"passed","commands":["<detected-lint-command>"],"autoFixed":true},"typescript":{"status":"passed","commands":["<detected-build-command>"]},"tests":{"status":"passed","commands":["<detected-test-command>"],"testsRun":42,"testsPassed":42,"coverage":"85%"}},"fixesApplied":[{"type":"auto","category":"format","description":"Auto-fixed indentation and semicolons","filesCount":5},{"type":"manual","category":"type","description":"Replaced any type with unknown + type guards","filesCount":3}],"taskFileMechanisms":{"provided":true,"executed":["mechanism names that were found and executed"],"skipped":[{"mechanism":"mechanism name","reason":"tool not found / config not found / not executable"}]},"metrics":{"totalErrors":0,"totalWarnings":0,"executionTime":"3m 30s"},"nextActions":"Ready to commit"}
256
194
  ```
257
195
 
258
196
  **blocked response format (specification conflict)**:
259
197
  ```json
260
- {
261
- "status": "blocked",
262
- "reason": "Cannot determine due to unclear specification",
263
- "blockingIssues": [{
264
- "type": "ux_specification_conflict",
265
- "details": "Test expectation and implementation contradict on user interaction behavior",
266
- "test_expects": "Button disabled on form error",
267
- "implementation_behavior": "Button enabled, shows error on click",
268
- "why_cannot_judge": "Correct UX specification unknown"
269
- }],
270
- "attemptedFixes": [
271
- "Fix attempt 1: Tried aligning test to implementation",
272
- "Fix attempt 2: Tried aligning implementation to test",
273
- "Fix attempt 3: Tried inferring specification from Design Doc"
274
- ],
275
- "taskFileMechanisms": {
276
- "provided": true,
277
- "executed": ["mechanisms executed before blocking"],
278
- "skipped": [{ "mechanism": "mechanism name", "reason": "tool not found / config not found / not executable" }]
279
- },
280
- "needsUserDecision": "Please confirm the correct button disabled behavior"
281
- }
198
+ {"status":"blocked","reason":"Cannot determine due to unclear specification","blockingIssues":[{"type":"ux_specification_conflict","details":"Test expectation and implementation contradict on user interaction behavior","test_expects":"Button disabled on form error","implementation_behavior":"Button enabled, shows error on click","why_cannot_judge":"Correct UX specification unknown"}],"attemptedFixes":["Fix attempt 1: Tried aligning test to implementation","Fix attempt 2: Tried aligning implementation to test","Fix attempt 3: Tried inferring specification from Design Doc"],"taskFileMechanisms":{"provided":true,"executed":["mechanisms executed before blocking"],"skipped":[{"mechanism":"mechanism name","reason":"tool not found / config not found / not executable"}]},"needsUserDecision":"Please confirm the correct button disabled behavior"}
282
199
  ```
283
200
 
284
201
  **blocked response format (missing prerequisites)**:
285
202
  ```json
286
- {
287
- "status": "blocked",
288
- "reason": "Execution prerequisites not met",
289
- "missingPrerequisites": [
290
- {
291
- "type": "browser_runtime",
292
- "description": "Playwright browsers are not installed for E2E execution",
293
- "affectedChecks": ["test:e2e"],
294
- "resolutionSteps": ["Install the required browser runtime", "Re-run the E2E check command"]
295
- }
296
- ],
297
- "taskFileMechanisms": {
298
- "provided": true,
299
- "executed": ["mechanisms executed before blocking"],
300
- "skipped": [{ "mechanism": "mechanism name", "reason": "tool not found / config not found / not executable" }]
301
- },
302
- "checksSkipped": 1,
303
- "checksPassedWithoutPrerequisites": 2
304
- }
203
+ {"status":"blocked","reason":"Execution prerequisites not met","missingPrerequisites":[{"type":"browser_runtime","description":"Playwright browsers are not installed for E2E execution","affectedChecks":["test:e2e"],"resolutionSteps":["Install the required browser runtime","Re-run the E2E check command"]}],"taskFileMechanisms":{"provided":true,"executed":["mechanisms executed before blocking"],"skipped":[{"mechanism":"mechanism name","reason":"tool not found / config not found / not executable"}]},"checksSkipped":1,"checksPassedWithoutPrerequisites":2}
305
204
  ```
306
205
 
307
206
  Allowed `type` values: `seed_data`, `library`, `environment_variable`, `running_service`, `browser_runtime`, `external_dependency`, `other`