# macOS
.DS_Store

# Python / uv
__pycache__/
*.pyc
.venv/
.venv-fuzz/          # pinned-3.13 atheris env for `poe fuzz` (kept out of the FT .venv)
.venv-cx/            # pinned-3.13 CrossHair env for `poe crosshair` (z3 C-ext, no free-threading)
.venv-pyspy/         # pinned-3.13 env for `poe stress-pyspy` (py-spy can't introspect 3.14t)
*.egg-info/

# atheris/libFuzzer crash + timeout repro artifacts (add real ones as regression goldens, don't commit blobs)
crash-*
timeout-*
oom-*
overlay/tools/fuzz/corpus/

# tooling caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.coverage

# build artifacts
dist/
build/
*.whl

# release scratch: curated changelog entry for the in-progress release (release.py prepare); its
# content is folded into CHANGELOG.md, not committed itself
/RELEASE_NOTES.md

# render / test scratch
out.png
*.out.png

# generated ranking + dict outputs
saitenka-dicts/
*.anki2

# frequency dictionaries — user-supplied, never committed (see tools/freq/README.md)
tools/freq/*.zip

# local planning scratch — the published artifacts are CHANGELOG.md + ROADMAP.md (+ issues)
vibe/

# repowise local index/wiki (generated by `repowise init`; its .repowise/.env may hold API keys)
.repowise/
# repowise also self-installs editor integration wherever it's run from — local machine config,
# not project source. Scoped to overlay/ (root /.claude/ below serves a different purpose: the
# repo-local skills symlink).
overlay/.claude/
overlay/.mcp.json
overlay/.vscode/

# Claude Code: entirely local (settings + an optional .claude/skills -> ../.agents/skills symlink). Never committed.
/.claude/
