Skip to content

SOP-017 — Audit rules for conflict, one-home, and dead references

Guide

SOP-017 — Audit rules for conflict, one-home, and dead references

SOP · owner: Rules & Governance (Golden Rule). Layer: SOP/Runbook (docs/canon.md). The standing integrity check on the rule set: no two rules contradict, every governance fact has one home, and every GR-# referenced elsewhere resolves to a real entry (the Phase 0 F1/F2 failure mode).

Interface Contract

  • Inputs: rule set + governance references ← from self (audit pass) · trigger: “review requested”
  • Outputs: rule-conflict / one-home defect list → to Principal · trigger: “review requested”
  • Outputs: reconciled rule (GR-#) → to all agents · trigger: “rule approved”
  • Handoff trigger (in): a scheduled audit cadence is reached, or a new rule is added that may conflict
  • Handoff trigger (out): defects are either fixed via SOP-015 or recorded with a disposition; the rule set reads conflict-free
  • Definition of Done before handoff:
    • [ ] Every GR-# checked for contradiction with every other (no two rules conflict)
    • [ ] Every governance fact single-homed (no rule restated across CLAUDE.md / CONTRIBUTING.md / policy)
    • [ ] Every GR-N reference outside CLAUDE.md §Golden Rules resolves to a real entry or is marked illustrative
    • [ ] GR-# numbering is contiguous and no retired number is reused
    • [ ] Defects fixed (via SOP-015) or recorded with a disposition

The audit is self-triggered (Inputs ← from self) on a cadence, so its in-edge is intra-agent and does not create a cross-agent dependency. Any fix routes through SOP-015 (explicit approval, GR-3) before "rule approved" is emitted; the defect list to the Principal reuses the registered "review requested" phrase.

Purpose

Keep the rule set sharp and trustworthy: catch contradictions, duplicated/multi-homed governance facts, and dead GR-# references before they mislead an agent who follows a rule literally. This is the second-line check on the work SOP-015 produces.

When to use

On a periodic cadence (align with the canon staleness sweep / wave checkpoint), and opportunistically whenever a new rule is added or a governance reference is noticed that may not resolve.

Flow

flowchart LR
  S["Scan CLAUDE.md +<br/>CONTRIBUTING.md"] --> X["Cross-check for<br/>conflict + duplication"]
  X --> G["Grep GR-# refs<br/>across repo"]
  G --> F{"Defects?"}
  F -->|yes| Fix["Fix via SOP-015 /<br/>record disposition"]
  F -->|no| OK["Rule set clean"]
  Fix --> OK
  classDef s fill:#1d4ed8,color:#fff,stroke:#1e3a8a
  classDef d fill:#0f766e,color:#fff,stroke:#134e4a
  class S,X,G,Fix,OK s
  class F d

Text fallback: scan CLAUDE.md and CONTRIBUTING.md → cross-check every rule against every other for contradiction and duplication → grep for GR-# references across the repo and confirm each resolves → if there are defects, fix them via SOP-015 or record a disposition; otherwise the rule set is clean.

Steps

  1. Scan the homes. Read all GR-# in CLAUDE.md and all conventions in CONTRIBUTING.md.
  2. Conflict check. Compare each rule against the others for direct contradiction or scope overlap. Name any conflict; do not silently override — propose reconciliation and escalate ownership overlaps to canon RACI / the Principal.
  3. One-home check. Confirm no rule is restated across CLAUDE.md, CONTRIBUTING.md, and hr/policies/ (CONTRIBUTING.md “one home per decision”). A rule that serves both audiences must be stated once and cross-referenced.
  4. Dead-reference check. Grep GR-[0-9] (and GR-*) across the repo; confirm each reference outside the rules home resolves to a real entry or is explicitly marked illustrative (Phase 0 F1: the GR-8 example in the #governance contract).
  5. Numbering check. Confirm IDs are contiguous and no retired number is reused (Phase 0 F2: candidate “GR-7” shipped as a different rule).
  6. Dispose defects. Fix via SOP-015 (with approval) or record a disposition with a one-line reason. Capture any learning.

Roles / approvers

Run by Golden Rule. Fixes that change a rule are approved by the Principal (via SOP-015). Cross-cutting defects (e.g. a reference owned by another unit) are flagged to that unit’s Director / the COO cross-cutting log.

Guardrails

  • Do not edit another unit’s doc to fix a dead reference — flag it to the owner (e.g. the #governance contract is Operations-owned).
  • Do not renumber existing rules to close a gap; numbering is positional and stable references depend on it.
  • No rule change without explicit approval (GR-3) — the audit finds defects; the fix goes through SOP-015.

See also: SOP-015 (rule co-creation) · SOP-016 (decision reconciliation) · CONTRIBUTING.md (one home per decision; ID scheme) · docs/units/rules-governance/charter.md.