# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Distribution / packaging
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
ENV/

# Testing & coverage
.pytest_cache/
.coverage
htmlcov/

# Mypy & Ruff
.mypy_cache/
.ruff_cache/

# Datasets & local outputs
datasets/
*.jsonl
.scratch_build/

# Secrets
# Local publishing credentials. See docs/PUBLISHING.md. CI uses PyPI Trusted
# Publishing (OIDC) and needs no token, so this file is for local/manual uploads only.
pypi-creds.env
*.env
.env
.env.*
!*.env.example

# Installed skills
# `npx skills add` copies the canonical skills/ folder into the agents' directories and
# symlinks the rest, so every one of these is a build artifact. skills/ is the source of
# truth and IS committed. `skills-lock.json` is deliberately NOT committed: it is a lock for
# a project that *consumes* skills, and this repository publishes rather than consumes any.
# Committing it here would be circular (source ".") and would invalidate on every edit to
# skills/, making `skills check` report a permanent phantom update against itself.
skills-lock.json
.agents/skills/
.claude/skills/
.codex/skills/
.cursor/skills/
.pi/skills/
.continue/skills/
.opencode/skills/
.windsurf/skills/
