.env
.env.*
!.env.example
*.swp
notes
node_modules/
dist/
.turbo/
coverage/
.dev-storage/
test-output/
*.tsbuildinfo
__pycache__/
.venv/
*.egg-info/
*.pyc

# MCP registry Ed25519 private key material (never commit)
ops/listings/.secrets/

# Real, non-anonymised HOA documents Matt supplied. Never commit.
ops/usecases/hoa/Recent HOA Docs/
ops/usecases/hoa/Recent\ HOA\ Docs/

# Rendered email previews (pnpm --filter @galley/api email:preview). Regenerated on demand.
apps/api/.email-preview/

# ops/render/sync_secrets.py: redeploys owed after a stopped run, and the lock
# that keeps two runs apart. Service names only; kept in the main checkout.
ops/render/.sync-secrets*

# Agent worktrees (Agent tool isolation: "worktree"). Each is a full checkout
# with its own node_modules; three were committed by accident on 2026-09-21.
.claude/worktrees/

# The MCP registry publisher binary, fetched per machine (19 MB, not ours to vendor).
.mcp-publisher
.mcp-publish.sh

# send_partners.py's --canary log: a one-off diagnostic, not the reviewed
# ledger (ops/marketing/partners-sent.jsonl stays committed).
ops/marketing/partners-canary.jsonl

# translate-strings.mjs: every model response, keyed by its request, so a re-run pays only for what changed.
packages/templates/.translate-cache/
