node_modules/
.next/
dist/
out/
*.tsbuildinfo
.env
.env.local
.venv/
__pycache__/
*.pyc
.pytest_cache/
.ruff_cache/
# derived index + models — rebuildable from the vault, never committed
.cortex/
/data/
models/
corpus/
vault/outputs/*
!vault/outputs/.gitkeep
vault/_inbox/*
!vault/_inbox/.gitkeep
# audio/video are never committed; the transcript is the artifact
*.mp4
*.mp3
*.m4a
*.wav
*.mov
.DS_Store

# test vault — a throwaway duplicate of SecondBrain, safe to write to
testvault/

# generated per-vault mapping — build artifact, points at a local path
vault.adoption.yaml

# eval gate: frozen corpus snapshot (real vault content) + its own index
eval/snapshot/
eval/.index/

# The operator's own config, generated by the starter and cloud kits from the
# committed .example files. These carry a vault path, a name and a timezone —
# machine-specific by definition, and never the same for two people.
/cortex.yaml
/vault.adoption.yaml
/vault.adoption.cloud.yaml
# Installed by packages/cloud-kit/install.sh, not authored at the root.
/Dockerfile
/fly.toml
/.dockerignore
/docker/
