# secrets — never commit
# (gitignore does NOT support inline comments — keep comments on their own line)
.env
.env.*
# allow the committed example (placeholders only)
!.env.example
# local RFC 3161 timestamp-authority private key + cert
.vault_tsa/
# local-first sqlite tier dir — holds claims.db/audit.db AND the file-backed keystore
# (raw KEKs + addr_key); committing it would defeat crypto-shred. Never track.
.vault/

# macOS
.DS_Store

# python
.venv/
__pycache__/
*.pyc
*.egg-info/
.pytest_cache/

# node / ts sdk
node_modules/
dist/
*.tsbuildinfo

# harness — reference clone (study only, never tracked)
ECC-reference/

# ADR-0054 Phase 3 — the COMPOSED harness catalog. Root {agents,commands,skills} carry the vault OVERLAY
# (committed real files/dirs: the crown-jewel specialist agents, the product skills, /bench + /diagrams —
# ALL allow-listed below) UNIONED at `make harness-install` with per-entry SYMLINKS into the pinned
# `harness/` submodule's generics. A symlink into the submodule is a REGENERATED artifact, never vault
# content — so ignore everything under these three dirs EXCEPT the allow-listed overlay. The overlay is
# the ADR-0054 stay-list (deliberate + rare); adding a NEW overlay agent/command/skill needs its own `!`
# line here, or git will ignore it. (Already-tracked overlay files stay tracked; `/dir/*` never untracks.)
/agents/*
!/agents/audit-crypto-reviewer.md
!/agents/bitemporal-store-reviewer.md
!/agents/conflict-engine-specialist.md
!/agents/core-engineer.md
!/agents/eval-guardian.md
!/agents/gtm-engineer.md
!/agents/gtm-marketing.md
!/agents/gtm-sales.md
!/agents/security-program-lead.md
/commands/*
!/commands/bench.md
!/commands/diagrams.md
/skills/*
!/skills/audit-crypto/
!/skills/bitemporal-modeling/
!/skills/conflict-engine/
!/skills/eval-harness/
!/skills/gtm-playbook/
!/skills/security-program/
!/skills/security-review/

# harness runtime artifacts (generated by hooks; never tracked)
.claude/state/
.claude/metrics/
.claude/sessions/
# learned instincts are runtime/personal — keep the drop-zone (README) but ignore its contents
.claude/homunculus/instincts/learned/*
!.claude/homunculus/instincts/learned/README.md
# auto-captured gotcha ledger (machine-written, secret-scrubbed; runtime only)
.claude/homunculus/gotchas.jsonl
# curation marker for the learn-nudge trigger (machine-local "curated up to here")
.claude/homunculus/.curation_state.json
# recall-view inactivity-decay usage sidecar (machine-local {instinct_id: last_used}; never product data)
.claude/homunculus/.instinct_usage.json
# human-gated promotion proposals + decisions (runtime/personal — keep the README drop-zone)
.claude/homunculus/instincts/promotions/*
!.claude/homunculus/instincts/promotions/README.md
# opt-in FTS5 cross-session recall index (runtime, scrubbed snippets; never product data)
.claude/homunculus/sessions.db
# once-per-session markers for the learn-nudge forcing gate (runtime, timestamp-only, per-session)
.claude/homunculus/forced/
# operational incident records (runtime, scrubbed/content-free — keep the README)
docs/runbooks/incidents/INC-*.md
.vault_tlog/

# personal Claude Code settings (machine-local)
.claude/settings.local.json
.claude/launch.json

# tooling caches
.hypothesis/

# internal PM research — never commit (competitive analysis, vision gap docs)
docs/COMPETITORS.md
docs/VISION_GAPS.md
paramind-next/
