Build a unified dashboard that aggregates all quality signals — market prices, debate
outcomes, gate results, usage metrics — into a single view of system-wide artifact quality
health. This is the Senate's primary instrument for quality governance oversight.
challenged state)GET /senate/quality-dashboard — HTML page with all 6 sectionsGET /api/quality-dashboard — JSON endpoint for programmatic accessexch-qm-01-MEXT — Market prices for all typesexch-qm-03-LIFE — Lifecycle states for overviewexch-qm-05-GATE — Gate results for gate performance sectionagr-ad-02-EVAC — Evidence profiles for usage sectionGET /senate/quality-dashboard and GET /api/quality-dashboard do not exist on the current branch, while adjacent pages /senate/artifact-quality, /senate/quality-gates, /senate/epistemic-health, and /senate/analytics provide reusable patterns and partial signal coverage.artifacts (~48k rows), markets (~835), quality_gate_results (~5.8k), artifact_debates (~238), governance_decisions (~4.3k), price_history (~78k), and site_pageviews (~688k).GET /api/quality-dashboard and GET /senate/quality-dashboard in api.py, reusing existing artifact drill-down links (/artifact/{id} and artifact evidence APIs) and inline SVG rendering consistent with other Senate dashboards.scidex/senate/quality_dashboard.py to aggregate lifecycle, market, debate, gate, usage, and governance signals into one payload, render inline-SVG Senate HTML, and export per-section CSV snapshots.GET /api/quality-dashboard with format=json|csv and section-based CSV export, plus GET /senate/quality-dashboard with 5-minute auto-refresh and artifact drill-down links to /artifact/{id}.tests/test_quality_dashboard.py; local verification: pytest -q tests/test_quality_dashboard.py → 3 passed.git fetch origin main && git rebase origin/main), but this sandbox blocks writes to the worktree gitdir (FETCH_HEAD read-only). Code was verified against the current checked-out branch state instead.origin/main (3322cf42c) cleanly; all 4 tests pass.{
"requirements": {
"coding": 7,
"reasoning": 6
}
}