LINT.SUPPRESSION_TOOL_RULE_UNDESCRIBED — a suppression names a tool rule this build does not describe
- Category: safety
- Level: 0
- Stability: stable
- Suites: lint
A suppression names an id inside an external tool's namespace — SQUAWK. or PGLS. — that this
build's rule map does not describe. It is accepted. This notice says so.
Why it is accepted
The tools move on their own schedule. A rule your installed binary emits today may have no row in the map that shipped with this package, and refusing the suppression would make you wait for a release here before you could silence a finding you have already decided about.
The only lever that existed before was suppression.allow_undetermined: ['tool_rule_unmapped'],
which frees the entire bucket of unmapped tool findings — including the locking rules the tool
is installed for. That is not a choice anybody should have to make to silence one line.
Why it is not accepted silently
The refusal this replaces exists against the most expensive misconfiguration there is: a typo that leaves the rule firing while you believe it is off. A tool namespace is exactly where a typo is likeliest, because the ids are somebody else's and nothing here can check their spelling.
So this is the third state — not valid, not refused, but accepted and named. It fires on every run and deterministically: it needs no run that would have produced the finding, which makes it a stronger safety net than an "this ignore never matched" report could be.
What to do about it
Nothing, if the id is right. The notice will keep appearing, and that is the honest state: this build cannot confirm the rule exists.
If findings you expected to disappear are still there, check the spelling against the tool, not
against this package's documentation — they can differ. Squawk, for one, documents
prefer-timestamptz and prints prefer-timestamp-tz.
Which ids this covers
The prefixes are derived from the adapters the drivers ship, never from a written list. A list would be right the day it was written and blind the day a driver package brought a third tool — and it would fail in the direction that reads as a typo, sending somebody to hunt a misspelling instead of a missing entry.
Not a rule, and it says so
This is a runner notice: no rule produced it, and none could, because it describes the project's configuration rather than a statement. It carries an id, a message prefix and this documentation URL exactly like a rule's finding, because a reader should not have to know the difference to act on it.
Sources
- The tools' own finding-id prefixes, read from
Driver::tools(). - The shipped rule map, which is what "describes" means here.