# Python
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/

# Environment
.env
.env.*
.venv/
.orchestrator/

# OS
.DS_Store

# IDE
.idea/
.vscode/

# Claude Code plugin cache
.claude/

# Node (commitlint only)
node_modules/

# Runtime state — only config.json and channels.json are shipped
state/*.jsonl
state/*.json
!state/config.json
!state/channels.json
state/delivery/
state/knowledge-maps/
state/session-*
state/research-contexts/

# Evidence — generated search results (keep .gitkeep for directory structure)
evidence/*.jsonl
evidence/*.json
evidence/*.md
evidence/comparison/

# Delivery — generated reports
delivery/*.md
delivery/*.html

# Internal dev artifacts — never tracked, never published
docs/exec-plans/
docs/plans/
docs/proposals/
docs/spikes/
docs/channel-hunt/
HANDOFF.md
experience/
*.private.md
*.handoff.md

# Test artifacts
.pytest_cache/
.ruff_cache/
tests/integration/reports/
tests/integration/tmp/
tests/integration/sessions/
tests/perf/channel_wall_time_last.json

# E2B per-run artifacts (transient per-task stdout/stderr logs); master reports live in docs/validation/
reports/

# Autosearch runtime state (cookies, caches) — never versioned
.autosearch/
