# Machine-local MCP wiring (absolute paths, restricted mode)
.mcp.json
eidolons.mcp.lock

# Eidolons scratch state
# .atlas/ is entirely generated scout state (symbol index, graph db, locks)
.atlas/
.eidolons/.context/
.eidolons/memories/

# Python
__pycache__/
*.py[cod]
.venv/
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
dist/
build/

# Magicite runtime state — the graph DB is a rebuildable index (CR-2).
# Set MAGICITE_COMMIT_DB=1 and remove these lines to track it instead.
skill-graph.db
skill-graph.db-wal
skill-graph.db-shm

# Ephemeral worktrees used for fail-before/pass-after proofs
.claude/worktrees/

# The three directories Config.ensure_dirs() creates at every `magicite serve`
# boot. Machine-local runtime state, not deliverables: approvals are pending
# proposals awaiting a local decision, and committing them would invite another
# machine to approve a proposal it never reviewed. The engram registry itself
# (.magicite/engrams/*.egr.md) IS tracked — it is the source of truth.
/.magicite/approvals/
/.magicite/runtime/
/.magicite/archive/
