# Claude Code (creative process, plans, memory)
.claude/

# Private development context (public version is CLAUDE.public.md)
CLAUDE.md

# Internal dev state, business docs, strategic docs
/tasks/
docs/threat-model.md
docs/quality-scorecard.md
docs/PRD.md
ARCHITECTURE.md

# Hypothesis property-based testing
.hypothesis/

# Test pollution: when a unit test passes a unittest.mock.MagicMock
# where the production code expects a Path (e.g. ``vault_dir``), Python
# coerces ``Path(MagicMock())`` to a real filesystem directory named
# after the mock's repr — typically ``MagicMock/mock.<attr>/<id>/...``.
# Some sub-paths under this tree (e.g. stable-prefix cache writes from
# Agent.initialize() on a mocked vault) get persisted as real files
# at repo root. Add to ``.gitignore`` so the daily ``git status`` is
# clean. The deeper fix — make tests use ``tmp_path`` for vault_dir
# OR have production code reject non-Path inputs — is tracked as a
# follow-up (Rule 23 in CLAUDE.md).
MagicMock/

# Playwright UI e2e artifacts (re-generated on every run)
/test-results/
/playwright-report/
/playwright/.cache/

# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
.venv/
.env

# Node
node_modules/
ui/dist/

# Demos (large video files)
demos/

# OS
.DS_Store
Thumbs.db

# IDE
.idea/
.vscode/
*.swp

# Database (user data, never committed)
*.db
*.db-journal
