- Create BusinessReport.tsx with 6 sections:
1. Executive Summary (health score, rating, momentum)
2. Risk Scorecard (indicators with colors/trends)
3. Critical Issues (evidence, solutions, timelines)
4. Strengths to Protect (quotes, leverage actions)
5. Action Matrix (effort/impact quadrants)
6. 90-Day Tracking (KPI targets table)
- Update types.ts with new interfaces:
- SynthesisV2 for new report format
- LegacySynthesis for backwards compatibility
- Type guard isSynthesisV2() for runtime detection
- Update ReportTab to auto-detect synthesis version
- Update AnalystReport, ReviewIQDashboard, StoryView
for backwards compatibility with union type
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed outer button to div with role="button" to avoid HTML validation
error of nested buttons (translate button inside complaint card).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Frontend:
- Add Synthesis type with action plan, insights, annotations
- ExecutiveSummary: Accept synthesis prop for AI narrative
- SentimentPie: Accept insight prop for contextual explanation
- IntensityHeatmap: Accept insight + highlightDomain props
- TimelineChart: Accept insight + annotations props
- All components gracefully degrade when synthesis is null
Backend:
- Add Stage 4: Synthesize for generating AI narratives
- Gathers context from classified spans
- Generates executive narrative, section insights, action plan
- Produces timeline annotations and marketing angles
- Stores synthesis in pipeline.executions table
Components show AI insights with purple gradient styling when available,
fall back to existing behavior when synthesis is not yet generated.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add 2x2 matrix visualization (Quick Wins, Critical, Strategic, Nice to Have)
- Position items based on frequency/effort coordinates with dots and leader lines
- Add L-shaped axes with arrows showing Frequency (X) and Effort (Y) directions
- Include unified coordinate grid overlay across all quadrants
- Add clickable subcode labels with hover effects
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>