node_modules/
.env
# This repo is npm-canonical: only package-lock.json is tracked. A stray
# pnpm-lock.yaml from a local `pnpm install` would diverge from CI's npm
# install and silently feed mismatched dependencies into local dev.
pnpm-lock.yaml
memory/
workspace/
.evolver/
assets/gep/candidates.jsonl
assets/gep/external_candidates.jsonl
assets/gep/failed_capsules.json
assets/gep/genes.jsonl
assets/gep/capsules.json
assets/gep/capsules.jsonl
assets/gep/a2a/
dist-public/
dist-binaries/
.binary-stage/

# Docker / vibe testing
test/tmp/
.docker-test-state/

# Local identity persistence (device + node)
.evomap_device_id
.evomap_node_id
skills/
logs/

# Local triage notes (per-machine, never shipped to public or commits)
TRIAGE.md

# Cooperative-yield lock (created by users / release tooling to make the
# evolver --loop daemon stand down for a cycle). See src/evolve/guards.js.
# Always per-machine, never committed.
.evolver.lock
.claude-worktrees/
# Internal Claude working documents — contain local paths and audit notes not
# intended for the public repo. Prefix matches the project convention in CLAUDE.md.
claude-*.md

# Singleton pid file written by `--loop` daemon to enforce one-instance-per-repo.
# Per-machine, always recreated on launch.
evolver.pid
