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

# Type checking / linting
.mypy_cache/
.ruff_cache/
.pyright/
.pytype/

# Testing
.pytest_cache/
.coverage
coverage.xml
htmlcov/
*.cover

# Jupyter
.ipynb_checkpoints/
*.ipynb_checkpoints

# uv
.python-version
# NOTE: uv.lock is deliberately COMMITTED (not ignored). See AGENTS.md — the
# cadquery-ocp / cadquery-ocp-novtk conflict is silent, so the resolution must
# be pinned and reviewable.

# Environment
.env
.env.local

# OS
.DS_Store
Thumbs.db

# Personal scratch (never committed)
working/

# Generated by `partspec check` next to a contract
outputs/

# Eval scratch: run output and the artifacts partspec writes next to a case.
# The cited baseline lives in evals/baseline-*/ and IS tracked.
evals/results/
evals/cases/*/outputs/

# notes/ is TRACKED (analysis the tracker cites — see notes/README.md; #51).
# These entries within it are not. Comments on their own lines: gitignore has
# no trailing-comment syntax, and a pattern with a trailing "# ..." matches
# nothing — silently, which is this project's least favourite adverb.
# Vendored reference clones, each carrying its own .git:
notes/upstream/
# Raw audit transcript and output; the tracked synthesis is the artifact:
notes/audit-journal.jsonl
notes/audit-run1-raw.json
# Tracker snapshots, regenerable with `gh issue list`:
notes/issues-snapshot-*
notes/issues-final-*
