{ "schema_version": 1, "rules": [ { "glob": "autoresearch/classic-*/", "lifetime": "temporary", "retain_recent": 3, "max_age_days": 30, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "calibration pass #1 (lifecycle-aware-doc-hygiene); narrowed from autoresearch/*/ 2026-07-15", "note": "Autoresearch run directories are disposable run output; keep the 3 newest, age out the rest. Narrowed to conventional prefixes so autoresearch/ can hold keep-worthy content." }, { "glob": "autoresearch/improve-*/", "lifetime": "temporary", "retain_recent": 3, "max_age_days": 30, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "calibration pass #1 (lifecycle-aware-doc-hygiene); narrowed from autoresearch/*/ 2026-07-15", "note": "Autoresearch run directories are disposable run output; keep the 3 newest, age out the rest. Narrowed to conventional prefixes so autoresearch/ can hold keep-worthy content." }, { "glob": "docs/orchestration-audit/factsheets/*.md", "lifetime": "temporary", "retain_recent": 10, "max_age_days": 90, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "calibration pass #1 (lifecycle-aware-doc-hygiene)", "note": "Regenerable precompute for the orchestration IRL audit; the audit skill rebuilds them on each run." }, { "glob": "plugins/*/.pytest_cache/", "lifetime": "temporary", "retain_recent": 0, "max_age_days": 7, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "calibration pass #1 (lifecycle-aware-doc-hygiene)", "note": "Regenerable pytest cache. Judge noted a .gitignore entry may be preferable long-term." }, { "glob": "openspec/specs/**", "lifetime": "keep", "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "conversation 2026-07-15 (openspec lifecycle rules)", "note": "Live OpenSpec capability specs — source of truth future changes diff against; never age out." }, { "glob": "plugins/*/openspec/specs/**", "lifetime": "keep", "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "conversation 2026-07-15 (openspec lifecycle rules)", "note": "Live OpenSpec capability specs — source of truth future changes diff against; never age out." }, { "glob": "openspec/changes/archive/*/", "lifetime": "temporary", "retain_recent": 3, "max_age_days": 90, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "conversation 2026-07-15 (openspec lifecycle rules)", "note": "Archived change dirs are redundant once synced into specs/ and stay recoverable from git history; age out after a quarter." }, { "glob": "plugins/*/openspec/changes/archive/*/", "lifetime": "temporary", "retain_recent": 3, "max_age_days": 90, "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "conversation 2026-07-15 (openspec lifecycle rules)", "note": "Archived change dirs are redundant once synced into specs/ and stay recoverable from git history; age out after a quarter." }, { "glob": "plugins/*/HANDOFF-*.md", "lifetime": "delete-once-served", "served_when": "The handoff it describes has been picked up and its follow-on work completed in a later session.", "confirmed_by": "human", "confirmed_on": "2026-07-15", "source": "calibration pass #1 (lifecycle-aware-doc-hygiene)", "note": "Classifier-judged served_when — always confirm-tier by ADR-0039; never auto-deleted." } ] }