feat(#453): Quality & Risk Index — Aggregated Risk Score + Complexity Index (closes epic #450)#465
Conversation
… Complexity Index Server-side (state/quality-risk.js), computed from a run's REAL artifacts + events, the qualitative counterpart to cost/coverage telemetry: - Aggregated Risk Score (0-100) — builder risks weighted by severity, DISCOUNTED when mitigated (accepted != mitigated), plus guardrail blocks (accepted overrides weigh less than hard blocks) and validator hard-blocks; rolled into ONE index, not a bare count. - Complexity Index (0-100) — from files touched, builder-task breadth, and executed-command count (#452 execution evidence) — never self-report. - Cost-to-Value — cumulative cost vs proof coverage (never /0). - Execution posture — container-verified vs unverified (#452 signal). Transparent documented v1 weights. HONEST NULLS: unknown when a source is absent, a real 0 when contracts exist but nothing is flagged. BI only — never blocks a gate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- index.js: attach buildQualityRiskProjection after readiness (reads coverage from it), carried forward to overview. - overview.js: embed qualityRisk in the Overview projection output. - command-center.js: a dedicated 'Quality & Risk' card (Risk Score + Complexity Index with band colors, severity/mitigation/block chips, execution posture, cost-to-value), honest '—/unknown' when a source is absent; injected once via the established ensureCommandWavePanels pattern. - styles.js: card styles (band-colored score tiles, tone chips). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
|
Warning Review limit reached
Next review available in: 44 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughAdds server-side Quality & Risk scoring for risk, complexity, execution posture, and cost-to-value, wires it into dashboard state, and renders the resulting data in a styled Command Center panel with null-safe placeholders. ChangesQuality Risk Index
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant Dashboard
participant buildFullState
participant buildQualityRiskProjection
participant CommandCenter
Dashboard->>buildFullState: construct dashboard state
buildFullState->>buildQualityRiskProjection: compute qualityRisk
buildFullState-->>CommandCenter: provide overview.qualityRisk
CommandCenter->>CommandCenter: render Quality & Risk card
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…age) Brief doc comments on bandFor / clampScore / collectRisks / focusRun to satisfy the docstring-coverage advisory; no behavior change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
#453 — Quality & Risk Index: Aggregated Risk Score + Complexity Index (closes #453, completes epic #450)
Telemetry was financially instrumented but qualitatively blind — the Hub could say "green, cost $X" but not "green, but complexity spiked and two high-severity risks were accepted." This adds the qualitative counterpart, computed server-side from the run's real artifacts + events, with honest nulls.
What ships
critical 25 / high 12 / medium 5 / low 2), discounted when mitigated (an accepted risk is NOT mitigated — it keeps full weight), plus guardrail blocks (accepted overrides weigh less than hard blocks) and validator hard-blocks. One index, not a bare count.Honest by contract (the acceptance criteria)
state/quality-risk.js) — no second brain in the client.unknownwhen a source stage is absent; a genuine 0 (contracts present, nothing flagged) is a real, reportable score, distinct from unknown.Design decisions (your sign-off this session)
Verification
git diff --checkclean.tests/quality-risk-453.test.js: severity/mitigation normalization, weighted score + mitigation discount, guardrail/validator contributions, 100-cap, real-0 vs honest-null, complexity roll-up, execution posture, cost-to-value (incl. no /0), and the projection's focus-run/coverage/cost wiring.This closes epic #450 (Path to Autonomy)
With #451 (critique loop), #452 (Transient Sandbox trilogy), and now #453, the autonomy program is complete: untrusted code runs confined → the gate uses the real exit code → the Critic learns from real logs → and the Hub now reports real risk & complexity, not just cost.
Closes #453
Summary by CodeRabbit
New Features
Bug Fixes