# web app (now under web/) — match anywhere so web/node_modules, web/.next, etc. are ignored
node_modules/
.next/
out/
/build
.DS_Store
.vscode/
*.pem
npm-debug.log*
.env*.local
.env
.env.*
!.env.example
.vercel
*.tsbuildinfo
next-env.d.ts
/.design_tmp

__pycache__/
*.pyc

# Calma run outputs
.claude/skills/calma/**/.calma/
*.pyc

# edges A1-CLI fixture: the engine run-dir + the compiled verify.yaml are regenerated per run
# (the committed fixture is just the notebook + gen_fixture.py + runs/oos/*.csv)
edges/tests/fixtures/targets/**/.calma/
edges/tests/fixtures/targets/**/verify.yaml

# regenerated cross-language fixture outputs (the entrypoint re-emits them)
.claude/skills/calma/assets/lang/*/runs/
# regenerated vendored-corpus outputs + restored dep venvs (the committed httpcache/snapshot stays)
.claude/skills/calma/assets/corpus/*/runs/
.claude/skills/calma/assets/corpus/**/.calma_venv/
.gstack/
# benchmark: regenerable per-case run outputs + calma state (gen.py + manifest.json are the source)
benchmark/cases/*/runs/
benchmark/cases/**/.calma/
# external-track run outputs (regenerable: gen.py copies data/ -> runs/)
benchmark/cases_external/*/runs/
graphify-out/

# rehearsal run outputs + scratch registry (regenerable via rehearsals/run_rehearsal.py)
rehearsals/registry-scratch/
rehearsals/repos/*/.calma/
rehearsals/repos/*/.calma_venv/
rehearsals/repos/*/runs/

# internal/dev docs — not shipped to skill/CLI users (kept locally)
docs/internal/
.claude/skills/calma/BUILD-NOTES.md
.claude/skills/calma/PLAN.md
# local-only doc-sync hook (config lives in gitignored settings.local.json)
.claude/hooks/

# agent-arm benchmark scratch + generated results (run benchmark/run_agent.py; real results can be force-added)
benchmark/**/.agent_work/
benchmark/results/agent.json
benchmark/results/agent_cross.json
benchmark/results/agent_excluded.json
benchmark/results/agent_transcripts/
# validity catalog: the case dirs are deterministically (re)generated + verified by validity_catalog.py;
# commit the script + REPORT.md + report.json, not the 60+ generated case dirs
benchmark/validity_catalog/cases/

# Python packaging build artifacts (WS-B)
/dist
*.egg-info
src/*.egg-info
