codex-workflows 0.6.7 → 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.
- package/.agents/skills/ai-development-guide/SKILL.md +5 -3
- package/.agents/skills/ai-development-guide/references/frontend.md +11 -19
- package/.agents/skills/coding-rules/references/typescript.md +17 -12
- package/.agents/skills/documentation-criteria/references/plan-template.md +1 -1
- package/.agents/skills/documentation-criteria/references/task-template.md +8 -0
- package/.agents/skills/integration-e2e-testing/SKILL.md +1 -1
- package/.agents/skills/recipe-build/SKILL.md +10 -3
- package/.agents/skills/recipe-front-build/SKILL.md +10 -3
- package/.agents/skills/recipe-fullstack-build/SKILL.md +10 -3
- package/.agents/skills/recipe-fullstack-implement/SKILL.md +1 -1
- package/.agents/skills/recipe-prepare-implementation/SKILL.md +1 -0
- package/.agents/skills/subagents-orchestration-guide/SKILL.md +9 -6
- package/.agents/skills/task-analyzer/references/skills-index.yaml +1 -1
- package/.agents/skills/testing/SKILL.md +5 -5
- package/.agents/skills/testing/references/typescript.md +2 -6
- package/.codex/agents/acceptance-test-generator.toml +61 -96
- package/.codex/agents/code-reviewer.toml +4 -57
- package/.codex/agents/code-verifier.toml +1 -47
- package/.codex/agents/codebase-analyzer.toml +1 -106
- package/.codex/agents/design-sync.toml +2 -64
- package/.codex/agents/document-reviewer.toml +3 -78
- package/.codex/agents/integration-test-reviewer.toml +1 -26
- package/.codex/agents/investigator.toml +1 -73
- package/.codex/agents/quality-fixer-frontend.toml +4 -105
- package/.codex/agents/quality-fixer.toml +4 -122
- package/.codex/agents/requirement-analyzer.toml +1 -29
- package/.codex/agents/rule-advisor.toml +1 -79
- package/.codex/agents/scope-discoverer.toml +1 -70
- package/.codex/agents/security-reviewer.toml +1 -19
- package/.codex/agents/solver.toml +5 -54
- package/.codex/agents/task-decomposer.toml +18 -0
- package/.codex/agents/task-executor-frontend.toml +16 -142
- package/.codex/agents/task-executor.toml +16 -142
- package/.codex/agents/ui-analyzer.toml +1 -157
- package/.codex/agents/verifier.toml +2 -65
- package/package.json +1 -1
|
@@ -78,6 +78,7 @@ For each acceptance criterion extracted in Step 1:
|
|
|
78
78
|
- For behavior-changing ACs, confirm the evidence covers main and boundary paths. Where a distinct branch, state, input class, lifecycle step, or fallback governs the behavior, verify it is exercised. Compare source/referenced behavior and implemented behavior at the same granularity; an unsupported change in a boundary dimension is a `dd_violation`.
|
|
79
79
|
- Confirm the implementation keeps the core mechanism the AC, Design Doc, or referenced materials require. A simpler substitute that passes tests but drops the required mechanism is a `dd_violation`.
|
|
80
80
|
- For changes to persisted, shared, or externally observable state, identify the publication boundary where the new state becomes observable to another process, component, user, or later step. State that is observable as complete while still partial, uninitialized, stale, or rollback-only (written as a rollback/compensation path rather than committed usable state) is a `reliability` finding.
|
|
81
|
+
- When the reviewed task has `Change Category` set to `bug-fix`, `regression`, `state-change`, or `boundary-change`, check cases sharing its path, contract, persisted state, or external boundary. A sibling case still carrying the same class of defect is an `adjacent_residual` finding.
|
|
81
82
|
|
|
82
83
|
#### 2-2. Identifier Verification
|
|
83
84
|
For each identifier specification extracted in Step 1:
|
|
@@ -134,12 +135,14 @@ Classify each quality finding into one of:
|
|
|
134
135
|
- `maintainability`: code structure impedes change or comprehension
|
|
135
136
|
- `reliability`: missing safeguards could cause runtime failure
|
|
136
137
|
- `coverage_gap`: acceptance criteria lack meaningful test verification
|
|
138
|
+
- `adjacent_residual`: a case sharing the change's path, contract, persisted state, or external boundary still carries the same class of defect
|
|
137
139
|
|
|
138
140
|
Each finding MUST include a rationale:
|
|
139
141
|
- `dd_violation`: what the Design Doc says vs what code does
|
|
140
142
|
- `maintainability`: the concrete maintenance or comprehension risk
|
|
141
143
|
- `reliability`: the failure scenario and triggering conditions
|
|
142
144
|
- `coverage_gap`: the untested AC and why coverage matters
|
|
145
|
+
- `adjacent_residual`: which adjacent case shares the path, contract, persisted state, or external boundary and how it still exhibits the defect class
|
|
143
146
|
|
|
144
147
|
### 4. Check Architecture Compliance
|
|
145
148
|
Verify against the Design Doc architecture:
|
|
@@ -161,63 +164,7 @@ Return the JSON result as the final response. See Output Format for the schema.
|
|
|
161
164
|
## Output Format
|
|
162
165
|
|
|
163
166
|
```json
|
|
164
|
-
{
|
|
165
|
-
"complianceRate": "[X]%",
|
|
166
|
-
"identifierMatchRate": "[X]%",
|
|
167
|
-
"verdict": "[pass/needs-improvement/needs-redesign]",
|
|
168
|
-
|
|
169
|
-
"acceptanceCriteria": [
|
|
170
|
-
{
|
|
171
|
-
"item": "[acceptance criteria name]",
|
|
172
|
-
"status": "fulfilled|partially_fulfilled|unfulfilled",
|
|
173
|
-
"confidence": "high|medium|low",
|
|
174
|
-
"location": "[file:line, if implemented]",
|
|
175
|
-
"evidence": ["[source1: file:line]", "[source2: test file:line]"],
|
|
176
|
-
"gap": "[what is missing or deviating, if not fully fulfilled]",
|
|
177
|
-
"suggestion": "[specific fix, if not fully fulfilled]"
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
|
|
181
|
-
"identifierVerification": [
|
|
182
|
-
{
|
|
183
|
-
"identifier": "[identifier name]",
|
|
184
|
-
"designDocValue": "[value specified in Design Doc]",
|
|
185
|
-
"codeValue": "[value found in code, or 'not found']",
|
|
186
|
-
"location": "[file:line]",
|
|
187
|
-
"confidence": "high|medium|low",
|
|
188
|
-
"evidence": ["[source1: file:line]", "[source2: config file:line]"],
|
|
189
|
-
"match": false
|
|
190
|
-
}
|
|
191
|
-
],
|
|
192
|
-
|
|
193
|
-
"qualityFindings": [
|
|
194
|
-
{
|
|
195
|
-
"category": "dd_violation|maintainability|reliability|coverage_gap",
|
|
196
|
-
"location": "[filename:function or file:line]",
|
|
197
|
-
"description": "[specific issue]",
|
|
198
|
-
"rationale": "[why this matters]",
|
|
199
|
-
"suggestion": "[specific improvement]"
|
|
200
|
-
}
|
|
201
|
-
],
|
|
202
|
-
|
|
203
|
-
"summary": {
|
|
204
|
-
"acsTotal": 0,
|
|
205
|
-
"acsFulfilled": 0,
|
|
206
|
-
"acsPartial": 0,
|
|
207
|
-
"acsUnfulfilled": 0,
|
|
208
|
-
"identifiersTotal": 0,
|
|
209
|
-
"identifiersMatched": 0,
|
|
210
|
-
"lowConfidenceItems": 0,
|
|
211
|
-
"findingsByCategory": {
|
|
212
|
-
"dd_violation": 0,
|
|
213
|
-
"maintainability": 0,
|
|
214
|
-
"reliability": 0,
|
|
215
|
-
"coverage_gap": 0
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
|
|
219
|
-
"nextAction": "[highest priority action needed]"
|
|
220
|
-
}
|
|
167
|
+
{"complianceRate":"[X]%","identifierMatchRate":"[X]%","verdict":"[pass/needs-improvement/needs-redesign]","acceptanceCriteria":[{"item":"[acceptance criteria name]","status":"fulfilled|partially_fulfilled|unfulfilled","confidence":"high|medium|low","location":"[file:line, if implemented]","evidence":["[source1: file:line]","[source2: test file:line]"],"gap":"[what is missing or deviating, if not fully fulfilled]","suggestion":"[specific fix, if not fully fulfilled]"}],"identifierVerification":[{"identifier":"[identifier name]","designDocValue":"[value specified in Design Doc]","codeValue":"[value found in code, or 'not found']","location":"[file:line]","confidence":"high|medium|low","evidence":["[source1: file:line]","[source2: config file:line]"],"match":false}],"qualityFindings":[{"category":"dd_violation|maintainability|reliability|coverage_gap|adjacent_residual","location":"[filename:function or file:line]","description":"[specific issue]","rationale":"[why this matters]","suggestion":"[specific improvement]"}],"summary":{"acsTotal":0,"acsFulfilled":0,"acsPartial":0,"acsUnfulfilled":0,"identifiersTotal":0,"identifiersMatched":0,"lowConfidenceItems":0,"findingsByCategory":{"dd_violation":0,"maintainability":0,"reliability":0,"coverage_gap":0,"adjacent_residual":0}},"nextAction":"[highest priority action needed]"}
|
|
221
168
|
```
|
|
222
169
|
|
|
223
170
|
`identifierVerification` MUST include mismatches only. Use `summary.identifiersTotal` and `summary.identifiersMatched` for overall counts.
|
|
@@ -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.
|
|
@@ -186,73 +186,13 @@ Complete all items before proceeding to output.
|
|
|
186
186
|
### Comprehensive Review Mode
|
|
187
187
|
|
|
188
188
|
```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
|
-
}
|
|
189
|
+
{"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
190
|
```
|
|
235
191
|
|
|
236
192
|
### Perspective-specific Mode
|
|
237
193
|
|
|
238
194
|
```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
|
-
}
|
|
195
|
+
{"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
196
|
```
|
|
257
197
|
|
|
258
198
|
### Prior Context Check
|
|
@@ -260,22 +200,7 @@ Complete all items before proceeding to output.
|
|
|
260
200
|
Include in output when `prior_context_count > 0`:
|
|
261
201
|
|
|
262
202
|
```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
|
-
}
|
|
203
|
+
{"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
204
|
```
|
|
280
205
|
|
|
281
206
|
## 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
|