# CataForge-managed local state under .cataforge/ — regenerated per
# deploy/upgrade and never committed. Without this rule a downstream project
# running `git add -A` would commit rollback snapshots and deploy bookkeeping.
.backups/
.deploy-state
.deploy-manifest.json
.scaffold-manifest.json
.instruction-hashes.json
.mcp-state/
**/__pycache__/

# KG physical store is a disposable per-clone cache (binary RocksDB), ignored
# wholesale under every context.mode. The durable artifact is text: graph mode
# rebuilds the store from an NQuads snapshot (`cataforge kg rollback`); markdown
# mode has no graph backend. Snapshots (kg/snapshots/*.nq + *.meta.json) are
# text, diffable, and stay tracked.
kg/store/

# Runtime state written by the unattended building-loop. Disposable per-run;
# the durable audit trail is the tracked docs/EVENT-LOG.jsonl. Leading slash
# anchors to this .cataforge/ dir so only .cataforge/state/ is ignored.
/state/

# code-review complexity ratchet baseline, refreshed on every scan. Per-clone
# generated state, never committed — a committed CRLF baseline would ship in the
# wheel and make every downstream `upgrade apply` report false drift.
/baselines/
