Roadmap & Remaining Tasks¶
This checklist tracks what is complete and what remains to finalize dev-health-ops.
Completed¶
- [x] Core Git + PR Metrics: Commit size, churn, PR cycle/pickup/review times, review load, PR size stats.
- [x] Work Item Flow Metrics: Cycle/lead time p50/p90, WIP count/age, flow efficiency, state duration + avg WIP.
- [x] Quality + Risk Metrics: Defect introduction rate, WIP congestion, rework churn ratio, single-owner file ratio proxy.
- [x] DORA Metrics: MTTR, change failure rate, deployment/incident daily rollups.
- [x] Wellbeing Signals: After-hours and weekend commit ratios; weekend active users (derived from user activity).
- [x] Connectors + Pipelines: GitHub/GitLab CI/CD + deployments + incidents ingestion; async batch helpers.
- [x] Storage + Schema: ClickHouse migrations and sink support for new metrics tables/columns.
- [x] SQLite test cleanup: Dispose SQLAlchemyStore engines to avoid aiosqlite event-loop teardown warnings.
- [x] CLI Controls: Dedicated
sync cicd,sync deployments, andsync incidentstargets. - [x] Complexity Metrics (Batch): Radon-based cyclomatic complexity scanning with DB-driven batch mode (
-s "*"). - [x] Unified Complexity Snapshot Loading:
metrics dailyloads complexity snapshots via storage abstraction (get_complexity_snapshots). - [x] Investment Area Classification: Automated work item and churn classification based on configurable rules.
- [x] Work Item Sync Command: Dedicated
sync work-itemsflow to fetch provider work items separately frommetrics daily. - [x] Work Item Auth Override:
sync work-items --authcan override GitHub/GitLab tokens for provider sync. - [x] Synthetic fixtures: CI/CD + deployments + incidents with metrics rollups for ClickHouse.
- [x] IC Metrics + Landscape: Identity resolution, unified UserMetricsDailyRecord, and landscape rolling stats (Churn/Cycle/WIP vs Throughput).
- [x] Grafana Dev Health Panels: Panel plugin with Developer Landscape, Hotspot Explorer, and Investment Flow views.
- [x] Dev Health panel theming: Plugin-local Grafana theme with a custom visualization palette.
- [x] Dev Health panel selector: Panel settings dropdown to switch between Developer Landscape, Hotspot Explorer, and Investment Flow.
- [x] Grafana Panel ClickHouse Contracts: Stats schema views for landscape, hotspot, and investment flow panels (use
WITH ... ASaliasing). - [x] Dashboard team filter normalization: Include legacy NULL/empty team IDs in Grafana ClickHouse queries via
ifNull(nullIf(team_id, ''), 'unassigned'). - [x] Investment metrics NULL team IDs:
investment_metrics_daily.team_idstores NULL for unassigned; investment flow view casts viatoNullable(team_id). - [x] Hotspot Explorer formatting: Use table format and order by day to keep Grafana sorting valid.
- [x] Hotspot ownership concentration: Derive ownership concentration from git blame line shares.
- [x] Synthetic blame coverage: Expand fixture file set to improve hotspot ownership coverage.
- [x] Blame-only sync: Add
cli.py sync blame --provider <local|github|gitlab>for targeted blame backfill. - [x] Backfill commit caps: GitHub/GitLab
--date/--backfillruns default to unlimited commits unless explicitly capped. - [x] Hotspot Explorer frame binding: Prefer facts frames via
churn_loc_30dto keep drivers/trends rendering. - [x] IC Drilldown churn vs throughput: Add identity-filtered churn vs throughput panel.
Remaining¶
Data + Fixtures¶
- [x] Fixtures validation: Added Phase 2 metrics checks to
run_fixtures_validation()- validates cycle_time_hours, flow_efficiency, predictability_score, wip_congestion_ratio, and new_items_count. (#267)
Dashboards¶
- [x] Dashboards for CI/CD, deployments, incidents (panels for success rate, duration, deploy counts, MTTR).
- [x] Investment Areas team filter: use regex
match(...)filters for the team variable in ClickHouse queries. - [x] Work tracking dashboards audit: Validated filters and table joins - all use correct
match()regex patterns withifNull(nullIf(team_id, ''), 'unassigned')normalization. No problematic joins; dashboards use pre-aggregated tables. (#266) - [ ] Fix dashboard templating filters: Ensure variable regex and
match(...)filters do not return empty results. (#264)
Metrics Enhancements¶
- [x] Bus factor (true): Top contributors accounting for >50% of churn (Bus Factor) and Gini coefficient (Knowledge Distribution).
- [x] Predictability index: Completion Rate (items completed / (completed + wip)).
- [ ] Capacity planning: Forecast completion using historical throughput. (#269)
- [x] Identity Linking: Parse commit messages, PR bodies, and branch names for issue refs (Jira keys, #123). Creates direct issue→commit and issue→PR edges. (#268)
- [ ] Work Item Repo Filtering by Tags/Settings: Allow
sync work-itemsto filter repos usingrepos.tagsorrepos.settings(beyond name glob). (#270)
API Enhancements¶
- [x] GraphQL Work Graph API: Add resolvers and types for work_graph_edges traversal queries. (#265, PR #273)
Frontend (dev-health-web)¶
- [ ] Work Graph GraphQL types: Add query definitions and TypeScript types for workGraphEdges API. (dev-health-web#89)
- [ ] Related Entities - Issue page: Show linked PRs, blocking issues on issue detail page. (dev-health-web#90)
- [ ] Related Entities - PR page: Show linked issues and commits on PR detail page. (dev-health-web#91)
- [ ] Work Graph Explorer: Interactive graph visualization for entity relationships. (dev-health-web#92)
Testing + Docs¶
- [x] Tests for new sinks columns (ClickHouse + SQLite write paths for Phase 2 + wellbeing).
- [x] Docs refresh: Usage examples for new CLI flags and fixture generation steps.