# Environment
.env

# Terraform local state
.terraform/
*.tfstate
*.tfstate.*
*.tfplan
crash.log

# Go
packages/api/tmp/
packages/api/bin/
packages/api/api
packages/api/web-public/
packages/cli/tmp/
packages/cli/bin/
packages/worker/worker
packages/worker/tmp/
packages/analytics/tmp/
packages/analytics/bin/

# Go compiled binaries (from `go build`)
packages/*/seed
packages/*/generate-*
packages/*/whop-sync

# Node & Build
node_modules/
dist/
packages/chrome-extension/release/
.astro/
.vite/

# IDE
.idea/
.vscode/
*.swp

# Test
test-results/
playwright-report/
packages/web/e2e/.auth/

# OS
.DS_Store
Thumbs.db
Screenshot*
ChatGPT*
discord-logo-*.png
packages/api/api
packages/cli/web-previews/
.planning/
.ralph/
docs/superpowers/
.impeccable/

# Recipe runtime state — `pipe2 recipe run --capture-to <dir>` writes
# step artifacts + state.json under <dir>/. Defaults to ./reel-out in
# dance-reel smoke tests, so the dir lands at the repo root or inside
# the CLI package depending on where the user ran from. Always
# disposable — never committed.
reel-out/
packages/pipe2-cli/reel-out/

# Cookbook recipe drafts — outline JSON for recipes not yet implemented
# as Go packages. Scratch planning files, not shipped content; the web
# cookbook loader skips them. Kept local, never committed.
packages/pipe2-cli/cookbook/_drafts/

# graphify knowledge graph — graph.json and manifest.json ARE committed via LFS;
# see .gitattributes. The rest are not:
# `cache/` is a ~20MB local extraction cache keyed to this checkout, and the
# `.graphify_*` dotfiles pin a machine-specific Python interpreter and scan root.
# Both regenerate on first run.
graphify-out/cache/
graphify-out/.graphify_*
graphify-out/cost.json
# Dated snapshot dirs (graphify-out/2026-07-27/, ...) are point-in-time copies
# of the live graph. The LFS rules in .gitattributes match the TOP-LEVEL paths
# only, so a `git add -A` commits the snapshot's 14MB graph.json as a RAW blob —
# ~390k lines that make the PR diff unfetchable. The tracked top-level
# graph.json IS the graph; snapshots are local history.
graphify-out/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/
# graph.html is no longer committed: the graph outgrew graphify's 5000-node HTML
# viz limit (10822 nodes), so `graphify update .` cannot regenerate it and simply
# drops the file — leaving a frozen artifact that silently drifts from graph.json.
# To view it locally: GRAPHIFY_VIZ_NODE_LIMIT=20000 graphify cluster-only .
graphify-out/graph.html
# dated per-run graph snapshots (only the base graph.json/GRAPH_REPORT/manifest are tracked)
graphify-out/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/
.artifacts/imagegen/
design/
