# Secrets and local configuration -- NEVER in git
.env
*.env
!*.env.example
*.key
*.pem
secrets/

# Claude Code: per-machine preferences. The shared settings.json IS committed.
.claude/settings.local.json

# An MCP client's server list names a vault by absolute path, which is this machine's business
# and not the repository's. `hvk mcp` needs no configuration of its own.
.mcp.json

# The index and anything else derived at runtime: rebuildable, so never versioned (ADR-0002)
*.sqlite
*.sqlite3
*.db

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

# Test vaults: the synthetic ones ARE versioned; Obsidian's own state and trash are not
test-vaults/**/.obsidian/workspace*
test-vaults/**/.trash/

# Operating systems and editors
.DS_Store
Thumbs.db
*.swp

# Internal working documents: the implementation plans and the agent's guide. They stay on
# the author's machine -- they are written in Spanish, for one reader, and record judgements
# and the order decisions were actually taken in. What they decided lives in docs/adr/.
/.plans/
/CLAUDE.md
