3.8 KiB
3.8 KiB
| name | description |
|---|---|
| step-05-consolidate-findings | Merge and deduplicate findings from both review phases |
Step 5: Consolidate Findings
Goal: Merge findings from adversarial review (Phase 1) and context-aware review (Phase 2), deduplicate, and present unified findings table.
AVAILABLE STATE
From previous steps:
{story_path},{story_key}{asymmetric_findings}- Findings from Phase 1 (step 2 - adversarial review){context_aware_findings}- Findings from Phase 2 (step 4 - context-aware review)
STATE VARIABLE (capture now)
{consolidated_findings}- Merged, deduplicated findings
EXECUTION SEQUENCE
1. Merge All Findings
Combine both finding lists:
all_findings = {context_aware_findings} + {asymmetric_findings}
2. Deduplicate Findings
Identify duplicates (same underlying issue found by both phases):
Duplicate Detection Criteria:
- Same file + same line range
- Same issue type (e.g., both about error handling in same function)
- Overlapping descriptions
Resolution Rule:
Keep the MORE DETAILED version:
- If context-aware finding has AC reference → keep that
- If adversarial finding has better technical detail → keep that
- When in doubt, keep context-aware (has more context)
Note which findings were merged (for transparency in the summary).
3. Normalize Severity
Apply consistent severity scale (Critical, High, Medium, Low).
4. Filter Noise
Review adversarial findings marked as Noise:
- If clearly false positive (e.g., style preference, not actual issue) → exclude
- If questionable → keep with Undecided validity
- If context reveals it's actually valid → upgrade to Real
Do NOT filter:
- Any Critical or High severity
- Any context-aware findings (they have story context)
5. Sort and Number Findings
Sort by severity (Critical → High → Medium → Low), then assign IDs: F1, F2, F3, etc.
Build {consolidated_findings}:
| ID | Severity | Source | Description | Location |
|----|----------|--------|-------------|----------|
| F1 | Critical | task-audit | Task 3 marked [x] but not implemented | src/auth.ts |
| F2 | High | ac-validation | AC2 partially implemented | src/api/*.ts |
| F3 | High | adversarial | Missing error handling in API calls | src/api/client.ts:45 |
| F4 | Medium | git-discrepancy | File changed but not in story | src/utils.ts |
| F5 | Low | adversarial | Magic number should be constant | src/config.ts:12 |
6. Present Consolidated Findings
**Consolidated Code Review Findings**
**Story:** {story_key}
**Summary:**
- Total findings: {count}
- Critical: {count}
- High: {count}
- Medium: {count}
- Low: {count}
**Deduplication:** {merged_count} duplicate findings merged
---
## Findings by Severity
### Critical (Must Fix)
{list critical findings with full details}
### High (Should Fix)
{list high findings with full details}
### Medium (Consider Fixing)
{list medium findings}
### Low (Nice to Fix)
{list low findings}
---
**Phase Sources:**
- Adversarial (Phase 1): {count} findings
- Context-Aware (Phase 2): {count} findings
NEXT STEP DIRECTIVE
CRITICAL: When this step completes, explicitly state:
"NEXT: Loading step-06-resolve-and-update.md"
SUCCESS METRICS
- All findings merged from both phases
- Duplicates identified and resolved (kept more detailed)
- Severity normalized consistently
- Noise filtered appropriately (but not excessively)
- Consolidated table created
{consolidated_findings}populated- Summary presented to user
- Explicit NEXT directive provided
FAILURE MODES
- Missing findings from either phase
- Not detecting duplicates (double-counting issues)
- Inconsistent severity assignment
- Filtering real issues as noise
- Not storing consolidated findings
- No explicit NEXT directive at step completion