# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging (root-level build artifacts only -- these names are
# anchored so they cannot shadow real packages, e.g. xnatctl/services/downloads/)
.Python
/build/
/develop-eggs/
/dist/
/downloads/
/eggs/
/.eggs/
/lib/
/lib64/
/parts/
/sdist/
/var/
/wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
*.manifest

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Environments
.env
.env.*
!.env.example
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# IDE
.idea/
.vscode/
*.swp
*.swo
*~

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# ruff
.ruff_cache/

# OS
.DS_Store
Thumbs.db

# Docs build
docs/_build/
docs/plans/
docs/features/

# Project specific
*.log
.sessions/

CLAUDE.md
AGENTS.md
.claude/
.agents/
.agents
*.local.*

# Git worktrees
.worktrees/
worktrees/
.harness/

# Internal decision records (never re-add)
docs/adr/

# Generated per-run TLS test fixture (docker-compose.integration.yml)
docker/integration/tls-scp/certs/

# Dryduck run logs and fan-out worktrees (disposable; changes/ is NOT ignored
# -- its planning artifacts are committed as the acceptance record)
.dryduck/
