# External projects for evaluation (not part of Durin)
/vendor/

# Working / process docs (plans, specs, research, qa, archived design docs).
# Not part of the published repo — see CLAUDE.md. History stays in git log.
/.workdocs/
# Guard: docs/superpowers/ is a working-artifact path — must never be committed.
docs/superpowers/

# LoCoMo / memory benchmark run artifacts (regenerated by scripts/benchmark/locomo_run.py)
bench-results/

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg-info/
.Python
env/
venv/
.venv/
# Build artifacts (sdist + wheel produced by `python -m build`)
/dist/
/build/

# Node / WebUI
node_modules
webui/dist/
# Webui bundle — built into the package tree by hatch_build.py at
# wheel-build time; never committed.
durin/web/dist/

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

# OS
.DS_Store
Thumbs.db

# Tools
.claude
.superpowers
.pytest_cache
.coverage

# Runtime state (not source)
/logs/
/sessions/
/memory/
/plans/
gold.*.json
*.run*.json
*.pilot_*.json

# Eval run artifacts (dumped to root by swebench_eval.py)
/durin-*.json

# Workspace runtime files (generated by agent sessions)
/AGENTS.md
/HEARTBEAT.md
/SOUL.md
/TOOLS.md
/USER.md
/MEMORY.md
# Exercism dataset (clone only)
scripts/hypothesis_test/exercism_python/
scripts/hypothesis_test/v9_runs/

# Playwright MCP debugging artifacts
.playwright-mcp/
# Stray verification screenshots dropped at the repo root during live QA.
# Real assets live under webui/ and docs/ and are unaffected by the root scope.
/*.png

# Test-mock leak guard: a test that mocks a path object and lets a real
# cross_process_lock run writes a file named after the mock's repr (e.g.
# "<MagicMock ...>.lock") into the CWD. Never let one get swept into a commit.
*MagicMock*

# Stray `go build` output when built from bridge/ directly.
bridge/bridge
