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

# Virtual environments
venv/
.venv/
.uv/

# Type checking / linting caches
.mypy_cache/
.ruff_cache/
.pytest_cache/

# Environment
.env
.env.local
.env.*.local

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

# macOS
.DS_Store

# Ferry output (migration results)
ferry-output/

# Claude Code (all internal tooling)
.claude/
.claude-session-lock
CLAUDE.md
claude_log/
.mcp.json

# Cross-platform agent compatibility (generated by scripts/agent-compat/install-local.mjs)
AGENTS.md
.codex/
.vibe/
.agents/

# Git worktrees — an unignored worktree dir commits an entire second checkout
.worktrees/

# Internal design docs (kept locally, not in public repo)
docs/plans/
docs/architecture/
docs/superpowers/
# Subagent-driven-development workspace: ledgers, briefs, per-task reports.
# Scratch for one branch's build, never part of the product.
.superpowers/
docs/discord-ferry-claude-code-brief.md

# MkDocs build output
site/

# PyInstaller (keep ferry.spec — our build config)
*.spec
!ferry.spec

# NiceGUI runtime storage (see .claude/rules/security.md — user-scoped GUI settings,
# never tokens, but it is runtime state and must not be committed).
.nicegui/

# Cosmic Ray mutation session: a resumable artifact, not a result
mutation-session.sqlite
mutation-session.sqlite-*
