Skip to main content
Conformance is detection only, and flags never block on their own. But the moment something downstream consumes the verdict — a build receipt, a CI step — you need to acknowledge a flag and proceed without it resurfacing forever. That is what ignores are for. The model is see it, decide, move ahead. An acknowledgement is a reasoned, attributed override, never a silent mute. The flag stays on the record and remains visible under --show-ignored. It stops counting toward the exit code. There are three layers, in increasing durability.

Ad hoc: this run only

Suppress a specific flag, or a whole rule, for a single invocation. Nothing is persisted.
This affects this run’s report and exit code only. Use it to confirm a fix moves the verdict, or to triage interactively.
The ids are copyable straight from the report. Both the human view and --json print the full flag id.

Durable allowlist: committed next to the package

For acceptances you want to keep, add a conformance-ignore.yaml beside the package, or point at one with --ignore-file <path>. Each entry records what, why, who, and when.
conformance-ignore.yaml
An entry matches a flag when (rule, target, violation_class) reproduces that flag’s id. An allowlist entry is precise: it suppresses exactly the one structural flag it names, not a category. Because the allowlist lives next to the package and is committed, the acknowledgement travels with the agent and is reviewable in a pull request.

Baseline: accept the status quo in bulk

When you adopt conformance on an existing package you may start with many flags. --write-baseline snapshots all current flags into the allowlist at once, so only new drift surfaces afterward.
It writes one entry per flag — rule, target, and violation class, stamped with your username and the current time, with no expiry — then exits without running the verdict. Re-baselining is complete and idempotent; it never drops prior acknowledgements.

Ignores can’t rot silently

Acknowledgements are time-boxed. An allowlist entry with an expires date at or before today stops suppressing, so the flag resurfaces. This forces a periodic re-decision rather than letting a suppression become a permanent blind spot. Leave expires off for an indefinite acceptance.

Seeing what’s suppressed

--show-ignored adds an ignored: section to the report, and populates the ignored array in --json, so you can audit every active acknowledgement.
Suppressed flags are listed but excluded from the summary counts and the exit code. That is what lets you move ahead green while the acknowledgement stays on record.
In the current release the default allowlist is the author-committed file next to the package, trusted as reviewed acceptance. For untrusted third-party packages, keep acknowledgements in a reviewed repository path so a package can’t silently self-suppress.

See also