Skip to main content
charter suppress writes a suppression entry to .charter-suppress.yml. Use it when a finding is a confirmed false positive or an accepted risk that still needs an audit trail. Suppressed findings disappear from the active score and are listed separately in scan output.

Usage

charter suppress AE-CC-001 \
  --reason "Claude config lives in the infra repo" \
  --expires 90d
charter suppress dry run output

What Gets Written

charter suppress updates .charter-suppress.yml in the target repository. Each entry records:
suppressions:
  - rule: AE-CC-001
    reason: "Claude config lives in the infra repo"
    expires: "2026-09-07"
    added: "2026-06-09"
For a permanent suppression with an approver:
suppressions:
  - rule: AE-TEST-001
    reason: "Backend-only repo; no test framework applies"
    expires: permanent
    approver: "@tashfiqul"
    added: "2026-06-09"
Permanent suppressions (no --expires, or --expires permanent) require an --approver field. Without it, AE-SUPPRESS-002 fires as a High finding on every subsequent scan.

Flags

--reason
string
required
Human-readable explanation of why this finding is acceptable. Required — a suppression without a reason triggers AE-SUPPRESS-001.
--expires
string
Time-to-live for the suppression. Accepts a duration (30d, 90d, 1y), an ISO date (2026-12-31), or permanent. Defaults to 90d.
--approver
string
Approver handle. Required for permanent suppressions — without it, AE-SUPPRESS-002 fires as a High finding.
--path
string
Explicit repository root. Defaults to the current working directory.
--dry-run
boolean
Print the suppression entry that would be written without modifying .charter-suppress.yml.

Governance Rules

Three governance rules run on every charter doctor scan to keep the suppression file honest:AE-SUPPRESS-001 (Medium) — fires if any suppression entry is missing a reason field. Every suppression must carry a human-readable justification.AE-SUPPRESS-002 (High) — fires if any permanent suppression has no approver field. Permanent waivers require an explicit owner on record.AE-SUPPRESS-003 (Informational) — fires when the suppression rate across the repository is high. This is a signal-only finding and does not deduct from the score. It surfaces when a large proportion of findings are suppressed rather than fixed.These rules cannot themselves be suppressed without triggering further governance findings.