{
  "schema_version": 1,
  "rules": [
    {
      "glob": "graphify-out/**",
      "confirmed_by": "human",
      "confirmed_on": "2026-07-14",
      "source": "lifecycle-spec #43",
      "note": "IGNORE surface: disposable/rebuildable Graphify graph output, never walked (distinct from lifetime keep, which is walked and reported)."
    },
    {
      "glob": ".dochygiene/**",
      "confirmed_by": "human",
      "confirmed_on": "2026-07-14",
      "source": "lifecycle-spec #43",
      "note": "IGNORE surface: legacy pre-ADR-0027 state directory, never walked. .cc-os/** (the current state dir) is already covered by scanner.py's pre-existing hardcoded self-exclusion (design.md §7 state-dir wrinkle)."
    },
    {
      "glob": "**/extracted.md",
      "lifetime": "keep",
      "confirmed_by": "human",
      "confirmed_on": "2026-07-15",
      "source": "map #49 ticket #57 (extract-index convention)",
      "note": "Per-directory extract index: pointer lines left behind by :clean's extract-then-delete op for vault extractions. The self-describing filename lets one global keep rule protect every project's index; the index can never become a deletion candidate."
    }
  ]
}
