# Environment
.env

# 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/
.astro/
.vite/

# IDE
.idea/
.vscode/
*.swp

# Test
test-results/
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/

# 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
# 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
