Skip to content
This repository was archived by the owner on Jun 18, 2026. It is now read-only.

Commit 017fd9e

Browse files
catlog22claude
andcommitted
feat: add findings-to-recommendations traceability in analyze-with-file
Add Phase 4 Step 2 "Findings Coverage Matrix" to ensure all actionable findings from analysis rounds are mapped to a disposition (recommendation, absorbed, deferred, or informational) before consolidation. This prevents the issue where rich analysis discovers many actionable points but only a subset makes it into final recommendations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8cfc711 commit 017fd9e

1 file changed

Lines changed: 33 additions & 8 deletions

File tree

.claude/commands/workflow/analyze-with-file.md

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -459,27 +459,50 @@ const priorContext = `
459459
- **Gate**: ❌ Missed items must be either (a) addressed in additional round or (b) confirmed deferred by user
460460
- Add `intent_coverage[]` to conclusions.json
461461
462-
2. **Consolidate Insights**:
462+
2. **Findings-to-Recommendations Traceability** (MANDATORY before consolidation):
463+
- **Collect ALL actionable findings** from every round: key findings with actionable implications, technical solutions (proposed/validated), identified gaps (API-frontend gaps, missing features, design issues), corrected assumptions that imply fixes
464+
- **Map each finding → disposition**:
465+
| Disposition | Meaning |
466+
|-------------|---------|
467+
| `recommendation` | Converted to a numbered recommendation |
468+
| `absorbed` | Covered by another recommendation (specify which) |
469+
| `deferred` | Explicitly out-of-scope with reason |
470+
| `informational` | Pure insight, no action needed |
471+
- **Findings Coverage Matrix** (append to discussion.md):
472+
```markdown
473+
### Findings Coverage Matrix
474+
| # | Finding (Round) | Disposition | Target |
475+
|---|----------------|-------------|--------|
476+
| 1 | [finding summary] (R1) | recommendation | Rec #1 |
477+
| 2 | [finding summary] (R2) | absorbed | → Rec #1 |
478+
| 3 | [finding summary] (R2) | deferred | Reason: [why] |
479+
| 4 | [finding summary] (R1) | informational | — |
480+
```
481+
- **Gate**: Findings with `disposition = null` (unmapped) MUST be either assigned a disposition or added as new recommendations. Do NOT proceed to step 3 with unmapped findings.
482+
- Add `findings_coverage[]` to conclusions.json
483+
484+
3. **Consolidate Insights**:
463485
- Compile Decision Trail from all phases
464486
- Key conclusions with evidence + confidence (high/medium/low)
465-
- Recommendations with rationale + priority (high/medium/low) — **merge validated `technical_solutions[]` from explorations.json as high-priority recommendations**
466-
- **Solution Readiness Gate**: For each recommendation, check if all key choices are resolved. Flag `ambiguity_resolved: false` on any recommendation that still contains unresolved alternatives. Present unresolved items to user before proceeding to Step 3.
487+
- Recommendations with rationale + priority (high/medium/low) — **merge validated `technical_solutions[]` from explorations.json as high-priority recommendations** — **ensure all `disposition = recommendation` findings from step 2 are represented**
488+
- **Solution Readiness Gate**: For each recommendation, check if all key choices are resolved. Flag `ambiguity_resolved: false` on any recommendation that still contains unresolved alternatives. Present unresolved items to user before proceeding to Step 4.
467489
- Open questions, follow-up suggestions
468490
- Decision summary linking conclusions back to decisions
469491
- Write to conclusions.json
470492
471-
3. **Final discussion.md Update**:
493+
4. **Final discussion.md Update**:
472494
- **Conclusions**: Summary, ranked key conclusions, prioritized recommendations, remaining questions
473495
- **Current Understanding (Final)**: What established, what clarified/corrected, key insights
474496
- **Decision Trail**: Critical decisions, direction changes timeline, trade-offs
497+
- **Findings Coverage Matrix**: From step 2 (already appended)
475498
- Session statistics: rounds, duration, sources, artifacts, decision count
476499
477-
4. **Display Conclusions Summary** — Present to user:
500+
5. **Display Conclusions Summary** — Present to user:
478501
- **Analysis Report**: summary, key conclusions (numbered, with confidence), recommendations (numbered, with priority + rationale + steps)
479502
- Open questions if any
480503
- Link to full report: `{sessionFolder}/discussion.md`
481504
482-
5. **Interactive Recommendation Review** (skip in auto mode):
505+
6. **Interactive Recommendation Review** (skip in auto mode):
483506
484507
Present all recommendations, then batch-confirm via **single AskUserQuestion call** (up to 4 questions):
485508
@@ -500,7 +523,7 @@ const priorContext = `
500523
- Accepted: N items | Modified: N items | Rejected: N items
501524
- Only accepted/modified recommendations proceed to next step
502525
503-
6. **MANDATORY GATE: Next Step Selection** — workflow MUST NOT end without executing this step.
526+
7. **MANDATORY GATE: Next Step Selection** — workflow MUST NOT end without executing this step.
504527
505528
**TodoWrite**: Update `phase-4` -> `"completed"`, `next-step` -> `"in_progress"`
506529
@@ -656,6 +679,7 @@ ${implScope.map((item, i) => `${i+1}. **${item.objective}** [${item.priority}]
656679
- `decision_trail[]`: {round, decision, context, options_considered, chosen, rejected_reasons, reason, impact}
657680
- `narrative_trail[]`: {round, starting_point, key_progress, hypothesis_impact, updated_understanding, remaining_questions}
658681
- `intent_coverage[]`: {intent, status, where_addressed, notes}
682+
- `findings_coverage[]`: {finding, round, disposition: recommendation|absorbed|deferred|informational, target, reason}
659683
660684
</schemas>
661685
@@ -689,7 +713,8 @@ ${implScope.map((item, i) => `${i+1}. **${item.objective}** [${item.priority}]
689713
- [ ] Intent Drift Check performed each round >= 2
690714
- [ ] All decisions recorded per Decision Recording Protocol
691715
- [ ] Intent Coverage Matrix verified in Phase 4
692-
- [ ] conclusions.json created with key_conclusions, recommendations, decision_trail
716+
- [ ] Findings Coverage Matrix completed — all actionable findings mapped to disposition (recommendation/absorbed/deferred/informational)
717+
- [ ] conclusions.json created with key_conclusions, recommendations, decision_trail, findings_coverage
693718
- [ ] discussion.md finalized with conclusions, Decision Trail, session statistics
694719
- [ ] Recommendation review completed (non-auto mode)
695720
- [ ] Next Step terminal gate executed — `next-step` todo is `"completed"`

0 commit comments

Comments
 (0)