Description
Generated rather than hand-edited so a panel cannot query a metric that does not exist. The generator validates against the Metric constants in internal/attr, which is why that package is the single source of truth.
Acceptance Criteria
- #1 Every panel query resolves to a declared Metric constant; dashboard-check fails on any difference
- #2 Panels cover turns, latency with the duration_source split made visible, tokens, cost, tool outcomes and exit codes, agent topology, compaction and rate limits
- #3 Claude-only and Codex-only panels are labelled as such rather than showing an empty graph
- #4 Self-observability has its own row: ingest lag, checkpoint age, unhandled record types, drift findings
- #5 The dashboard is pushed with an explicit gcx context and the stack is confirmed with Rob before publication
Definition of Done
- #1 just check passes: fmt-check, lint, build, test-short, probe-ci, dashboard-check and docs-links all clean