# pint exceptions
Offline lint is `pint --offline lint rules/` with `policies/.pint.hcl`.
`--fail-on` stays at the default `bug`. A finding is listed here only when a check is disabled or a bug is accepted.
## alerts/for and alerts/comparison on Watchdog
`rules/alerts/meta.yml` disables `alerts/for` and `alerts/comparison` on the `Watchdog` rule.
Watchdog is a dead-man's switch (`vector(1)`). It is supposed to be firing whenever rule evaluation works. A `for` duration would delay that signal and could hide a stalled pipeline. `alerts/comparison` warns that the query always returns a sample; that is the point of the alert. Every other alert has `for` of at least 1 minute. That minimum is enforced by `tests/test_rules_policy.py`, not by a pint `alerts { range = "1m" }` block, because that block cannot express a single-rule exception on its own.
## promql/impossible on the latency threshold union
`rules/recording/red.yml` disables `promql/impossible` on `service:http_latency_p95_threshold_seconds:constant`.
The expression is three `label_replace(vector(...))` branches combined with `or`, each with a different `service` label. PromQL `or` keeps every non-matching label set, so all three thresholds are present. `promtool test rules` asserts the three samples. pint treats a non-empty left-hand side as dead code and would drop the other two services.
## amtool and active time intervals
Not a pint exception. Recorded here so the routing notes stay next to the policy files: `amtool config routes test` in Alertmanager v0.34.1 matches the routing tree only. It does not evaluate `active_time_intervals` or `mute_time_intervals`. A warning with `team=platform` therefore resolves to `slack-platform` in `amtool` even outside `business-hours`. `amtool check-config` still parses those intervals.