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

# Virtual environments
.venv/
venv/
env/
# CLI subcommand tests (AJ-36) live under tests/cli/env/ and are tracked.
!tests/cli/env/

# Note: uv.lock IS committed — only the venv and caches are ignored.

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

# Type checkers / linters
.mypy_cache/
.dmypy.json
.pyre/
.pytype/
.ruff_cache/

# IDEs
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Environment
.env
.env.local
.env.*.local
!.env.example

# Misc
*.log

# Docs build output (AJ-47) — mkdocs writes the rendered site here when
# you run `uv run mkdocs build`. Deployed to GitHub Pages from CI.
/site/

# Internal artifacts — drafts, comms, release playbooks. Tracked locally
# by the maintainer (and shared out of band) but never committed: nothing
# under int/ should leak to the public repo or GitHub Pages.
/int/

# AI coding tools — local-only, never committed.
# The repository must not contain AI prompts, agent configs, or assistant
# instructions. These files may exist on contributors' machines but are
# excluded from version control.

# Claude Code
CLAUDE.md
.claude/

# Cursor
.cursor/
.cursorrules
.cursorignore

# GitHub Copilot
.github/copilot-instructions.md

# Aider
.aider*

# Continue.dev
.continue/

# Codeium / Windsurf
.codeium/
.windsurfrules

# Gemini Code Assist
GEMINI.md
.gemini/

# Generic agent runners
# Note: AGENTS.md (industry-standard, tool-agnostic) IS committed — see repo root.
.agents/
