Skip to content

Audit the .kanon-lint-ignore suppression inventory (159 entries, 154 self-attested) #705

Description

@forkwright

Finding

Harmonia carries 159 lint suppressions in .kanon-lint-ignore (plus a handful of inline kanon:ignore). Only 5 carry a tracking-issue reference; 154 stand on permanent WHY justifications that have never been independently audited against the code they cover. PHILOSOPHY §4: a suppression is a violation at the highest severity — the WHY blocks are the only thing between this file and silent drift, and several entries have already been found stale in practice (four no-op entries removed in the lint-debt drain PR, including one per-crate file whose suppressed field had been deleted months earlier).

Evidence

  • .kanon-lint-ignore: 159 entries. By rule: RUST/as-cast 28, RUST/primitive-for-domain-id 22, RUST/plain-string-secret 12, RUST/indexing-slicing 11, WRITING/ai-trope 9, RUST/string-slice 5, RUST/blocking-in-async 4, STORAGE/no-migration-checksum 3, others smaller.
  • Concentrations: akouo-core DSP/decode (as-cast, indexing — plausibly genuine), syndesmos/horismos config structs (primitive-for-domain-id, plain-string-secret — wire/protocol-shaped, plausibly genuine), but each is currently self-attested.

Why this matters

Self-attested suppressions are exactly the class "a measure shown to the maker stops measuring" covers. The July audit campaign burned the open-issue backlog to zero-suppression-tolerance in new code; the standing inventory predates that bar.

Desired correction

An adversarial per-entry audit (the kanon audit engine is the right runner): for each entry, verify the WHY against the current code — keep (genuine permanent justification), fix the code and drop the entry, or convert to a tracked issue with a non-size defer rationale. Expected survivors: the DSP/codec cast classes. Expected casualties: anything justified by a shape the code no longer has.

Done when: every entry is either independently verified, removed with its code fixed, or carries a live tracking issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTechnical debt and cleanup

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions