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

# Distribution / packaging
*.egg-info/
*.egg
dist/
build/
.eggs/

# Virtualenvs
.venv/
venv/

# Tooling caches
.mypy_cache/
.pytest_cache/
.ruff_cache/

# Test / coverage artifacts
.coverage
coverage.xml
coverage.json
htmlcov/

# MkDocs build output
site/

# Vale-synced style packages (downloaded by `vale sync`). Custom config
# (vocabularies, ini overrides) under .vale/styles/config/ stays
# versioned — sync never touches that subtree.
.vale/styles/*
!.vale/styles/config/

# Local environment
.env
.env.local

# --- Development / ecosystem ignores (don't ship)
.mcpregistry_*
.worktrees/
docs/superpowers/
# Provider-neutral contributor skills are tracked under .agents/.
.agents/*
!.agents/skills/
# Everything under .claude/ is local EXCEPT skills/ — that subtree holds
# symlinks into .agents/skills/, template-owned on copier update.
.claude/*
!.claude/skills/
# No trailing slash: `.mcp.json/` would match a *directory* of that name and
# leave the actual file tracked.
.mcp.json
.repowise/

# Editor-local config. Deliberately just this one — a contributor's choice of
# editor is theirs, and this list is not meant to grow into a catalogue of
# every IDE. `.vscode/` earns its place because it is the common case and
# because several tools (repowise among them) write into it unprompted, so it
# reappears in `git status` for contributors who never opted in. A team that
# does want to share workspace settings can track a specific file with
# `git add -f .vscode/settings.json`.
.vscode/
