# Python
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/

# Virtual environments
.venv/
venv/

# Editor / OS / agent
.claude/*
!.claude/memory/
.DS_Store

# Reference papers (not distributed with the tool)
papers/

# End-of-session handoff scratchpad — rewritten each session, survives compaction.
prompt.md

# Generated data from batch runs — never tracked (regenerable, and bulky).
data/

# namespace_cache.py prototype scratch cache (QUERY_CACHE_DIR demo target).
.nscache/

# Scratch file for commit message bodies (see .claude/memory)
.commit-msg

# Drafted issue replies, written to be pasted into GitHub and then deleted.
# Ignored so a `git add -A` cannot sweep one into a commit.
.issue-*.md

# Session scratch: probe output, timing logs, mutation harnesses, and the
# throwaway session roots / HEAD checkouts a corpus comparison needs.  Same
# reason as above — `git add -A` swept a scratch `.rootless/Bare.thy` into a
# commit once.  Scratch lives in the working tree (not /tmp, which is gated),
# so the working tree has to know to ignore it.
.scratch*
.headtree/
.rootless/
.batchroot/
.census-*
.compare*
.mutate*
.timing*
.repro*
.variants*
