Skip to content

compliance_summary.md says verify-audit exits 0 or 1 for any failure (stale; tamper is exit 6) (CR-MISC-005) #454

Open

Description

@cemililik

Wave 1 · theme D1-8: Docs describing features that do not exist (doc side of code findings) · highest severity High · 1 finding(s) · effort trivial

Summary

An operator configures CI from compliance_summary.md and alarms only on exit 1, so a real tamper (exit 6) is not handled as documented there.

Primary finding

CR-MISC-005 — compliance_summary.md says verify-audit exits 0 or 1 for any failure (stale; tamper is exit 6)

severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end · already tracked: KNOWN-OPEN C31-EXIT-CODE-PROSE (OPS-24) — docs/roadmap/phase-16-trust-surface-hardening.md:196-197,782-785

What happens. docs/reference/compliance_summary.md:240-245 says verify-audit 'exits 0 (valid) or 1 (any failure — parse error, HMAC mismatch, manifest divergence, file not found, option error)'. This contradicts the shipped contract (exit 6 for chain/HMAC/manifest failures, exit 2 for I/O; _verify_audit.py:109-149; verify-audit.md:121-130) and CLAUDE.md's rule to wire alarms to 6. A reader of this reference page would alarm on 1 and treat 6 as unexpected.

Where.

Evidence.

  • Dynamic runs show exit 6 for HMAC mismatch and manifest mismatch (audit_repro.py), whereas compliance_summary.md:241-243 lists those under exit 1.

Recommended fix. Update the line (and the TR mirror) to the 0/1/2/6 table from verify-audit.md.

Acceptance criteria

  • A regression test reproduces the failure scenario and asserts the corrected behaviour.
  • Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
  • Every finding in this issue is resolved or explicitly closed with a reason.

Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: dev-toolingCode area: dev-toolingbacklog: knownAlready tracked in docs/roadmapblockedWaits for another issue (see Blocked by); set and removed automatically, never by handbugSomething isn't workingseverity: highWrong behaviour or a false claim users rely onsource: review-2026-10Found by the October 2026 code and documentation reviewwave: 1Roadmap wave 1: high severity, small effort

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions