When to suppress
Confirmed false positive
The finding doesn’t reflect a real problem in your repo — Charter’s detection doesn’t apply to your specific setup.
Accepted risk with justification
The risk is real but intentionally accepted, documented, and has an owner and a time horizon.
Genuine issue not yet addressed
Don’t suppress findings you just haven’t gotten around to fixing. Fix them, or leave them in the active findings list until you do.
Score inflation
Don’t suppress to hit a threshold. A suppressed finding still represents real repo state — suppressions don’t make problems go away.
1
Run the suppression command
The standard suppression path is a time-bounded waiver:
2
Review what was written
charter suppress appends an entry to .charter-suppress.yml:3
Re-scan to confirm
AE-CC-001 should no longer appear in the active findings list. It will appear in the “suppressed” section of the scan output instead, so it’s still visible.Expiry values
A permanent suppression with an approver looks like this in
.charter-suppress.yml:
Inline suppression
For single-line, line-anchored findings in source files, you can suppress inline instead of writing to.charter-suppress.yml:
Inline suppression syntax
Inline suppression syntax
Place the directive on the same line as the triggering content, using the file’s native comment syntax:Supported comment forms:
#, //, <!-- -->Inline suppression limits
Inline suppression limits
Inline suppression does not work for:
- file-level findings (no single line to anchor to)
- strict JSON configs like
.mcp.json(no comment syntax) - multi-line findings
.charter-suppress.yml as the primary suppression path.Governance rules Charter enforces
Charter audits every suppression on each scan:
A high suppression rate (
AE-SUPPRESS-003) is informational — it tells you the repo may be muting more than it’s fixing. For why suppressions are governed this way and how they affect the score, see Suppression Governance.
Good suppression hygiene
- Prefer a real fix when the repo state is genuinely wrong
- Use finite
--expireswindows rather thanpermanent - Write reasons that explain the decision, not just
"false positive" - Add
--approverfor any long-lived accepted risk - Review
.charter-suppress.ymlperiodically — don’t let it grow silently
Next steps
Suppression Governance
Why suppressions are audited and how they change the score.
AE-SUPPRESS-002
The approver requirement for permanent waivers.
charter suppress
Every flag the suppress command accepts.
Use charter fix Safely
Prefer a real fix over a suppression when one is available.