# ── Python ─────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# ── Virtual environments ───────────────────────────────────────────
.venv/
venv/
env/
ENV/
.python-version

# ── Test / type / lint caches ──────────────────────────────────────
.pytest_cache/
.hypothesis/
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
.tox/
.nox/

# ── Node (oracle side only — the port itself ships zero JS) ────────
# tests/original/ is the vendored, hash-pinned fuse.js checkout: its
# sources are committed, but never its installed deps or build output.
node_modules/
package-lock.json
tests/original/node_modules/
tests/original/dist/
tests/original/coverage/
tests/original/.vitest/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# ── Editors / OS ───────────────────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
Thumbs.db
desktop.ini

# The playground wheel is a build artifact: `just playground` builds it for
# local preview and the Pages workflow builds it for deployment, so what the
# site serves is always the source at that commit. Never commit the binary.
docs/*.whl

# Submission deck — uploaded to Google Slides, not part of the artifact.
*.pptx

# ── Scratch ────────────────────────────────────────────────────────
scratch/
tmp/
*.log
!fuzz/log.txt

# Working porting log — status tracking, not a deliverable. Anything a judge
# needs to read lives in README.md or DECISIONS.md.
LOG.md
CLAUDE.md
DETAILS.md


# Working Docs
PRESENTATION.md


# Release notes
RELEASING.md