Description
Both CLIs already export their own OTLP to the same collector. Emitting a second series with the same meaning under a different name produces a dashboard that adds them together and is wrong in a way nobody notices.
Native telemetry starts when it is switched on; the transcripts are retroactive. The overlap window is the risk.
Acceptance Criteria
- #1 docs/signals.md overlap table is verified against what the clients actually emit, live, not against documentation
- #2 No instrument duplicates a native series with the same semantics; where overlap is unavoidable the authoritative series is named in the doc
- #3 codingagent.backfill marks output from a ranged backfill run
- #4 A dashboard note states which series to prefer for cost, tokens and lines of code
- #5 The reconciliation is repeated for Codex’s own [otel] event stream, not only Claude Code’s
Definition of Done
- #1 just check passes: fmt-check, lint, build, test-short, probe-ci, dashboard-check and docs-links all clean