Description
AGENTS.md (Surfaces and the boundary between them, line 7-9) says Prometheus /metrics is the sole metrics surface and that OpenTelemetry is ‘neither … a metrics mirror’. But src/meraki_dashboard_exporter/core/otel_metrics.py is an opt-in bridge (otel.metrics.enabled, off by default) that pushes snapshots of the Prometheus registry over OTLP (module docstring lines 12-22). An agent following AGENTS.md literally could remove or refuse to extend the bridge; one reading the code could treat AGENTS.md as stale. Found while curating the Groma architecture map. Decide which is intended and make the rule and the code agree.
Acceptance Criteria
- #1 AGENTS.md states whether the opt-in OTLP metrics bridge is a sanctioned exception to the sole-metrics-surface rule, and under what conditions
- #2 If the bridge is not sanctioned, a follow-up task to remove it exists
Definition of Done
- #1 just check (ruff format –check, ruff check, mypy, generated-doc drift, offline API conformance, and the marker-filtered pytest run with the 80% coverage floor — this is exactly what the CI
testjob runs) - #2 just gen, when metrics, config, endpoints, collectors, the settings schema or the chart config changed —
just checkincludes the drift gate and CI fails the build on it - #3 Grafana queries in grafana/dashboards/*.json and grafana/alerts/ updated, if a metric or label name changed