# Shepherd namespace ignore rules, written by `shepherd init`.
#
# The rule is narrow on purpose: ignore only state that is MACHINE-LOCAL and
# regenerable, and track everything that is EVIDENCE.
#
# Run artifacts are the audit trail. `shepherd candidate` verifies custody by
# asking Git what the tree contains, so an ignored `runs/` directory makes
# foreign evidence invisible and a revocation check pass vacuously. Ignoring
# them does not tidy the repository, it disarms the guard. Anything under
# `runs/` therefore stays tracked.
#
# Retired namespace roots are deliberately NOT ignored either: if
# `{cache,logs,memory,tmp}` returns under `.shepherd/`, it must show up in
# `git status` and be refused by the layout gate rather than hidden here.
#
# `.artifacts/` is NOT one of those. It is the project-level home for generated
# output that has no natural default -- rendered docs, the attestation ledger,
# incidental binaries -- and it lives outside `.shepherd/`, so nothing here
# governs it.
# ----- registry -----
# SQLite and its sidecars. Regenerated by `shepherd init` from tracked state,
# machine-local, and binary.
shepherd.db
shepherd.db-journal
shepherd.db-wal
shepherd.db-shm
# ----- locks -----
# Held only for the life of a process on one machine.
*.lock
shepherd.lock
# ----- session identity -----
# One file per root session on this machine, naming a session id that means
# nothing anywhere else. Never shared, never replayed.
.root-session.*.json
runs/.root-session.*
runs/*/dispatch/.root-session.*
# ----- operator-local configuration -----
# The layered loader reads this above `shepherd.toml`; it is the operator's own
# overrides and not project policy.
shepherd.local.toml