Skip to content

Reference: violation format ​

mimus check --format json (and mimus report --format json) emit a JSON array of violations — the contract anything consuming mimus output (reconcile, CI annotations, dashboards) should code against.

Shape ​

json
[
  {
    "claim": {
      "kind": "path",
      "text": "crates/old-crate/src/lib.rs",
      "source": "docs/guide.md",
      "line": 17
    },
    "evidence": "./crates/old-crate/src/lib.rs does not exist",
    "fix": "remove the reference, or restore the file",
    "severity": "error"
  }
]

Fields ​

fieldmeaning
claim.kindpath command symbol count link behavior
claim.textthe claim as written in the source
claim.sourcefile the claim was extracted from
claim.line1-based line number
evidencewhat reality says instead — the proof
fixsuggested correction, or null
severityerror (gates check) | warn (report only)

Human format ​

Default output is one line per violation:

docs/guide.md:17 [error] `crates/old-crate/src/lib.rs` — ./crates/old-crate/src/lib.rs does not exist
N violation(s)

source:line [severity] claim — evidence — stable enough to grep, intended for terminals not parsers.

Exit codes ​

codemeaning
0clean — or report, which never gates
1error-severity violation(s), or usage failure

audit always exits 0 — its scores are report-tier.

What is silence, not a violation ​

mimus's rule is evidence-or-silence: a claim a checker cannot prove false emits nothing. Concretely, none of these produce a violation:

  • /leading-slash spans — read as URL routes or host-absolute paths, never repo-relative claims
  • a/b-shaped misses (application/pdf, tools/list) — two lowercase-word segments read as MIME types / RPC methods
  • VAR=value env assignments, ...-/brace-/<>-template spans, bare extensions (.md), serial placeholders (adr-mkt-0N.md)
  • ~- and $-prefixed paths, and globs verified by expansion
  • command claims whose binary is declared in [check].binaries, or all command claims under --no-cmd

Tuning and suppression ​

  • [check].kinds / [check].ignore_prefixes / base_dirs — see config
  • <!-- mimus-ignore --> — alone on a line, suppresses the next line's claims; inline, suppresses its own line. <!-- mimus-ignore-file --> skips the whole file.
  • the cmd checker probes the machine's PATH — results vary across machines by design (missing binary = warn, never error). Declare prerequisites in [check].binaries, or run check --no-cmd.