.DS_Store
*.log
node_modules/
.env*
.worktrees/
plans/
todos/
/docs/
!plugins/*/docs/
WARP.md

# Python bytecode
__pycache__/
*.pyc
*.pyo

# Local Flow / Ralph artifacts (generated by /flow-next:setup and /flow-next:ralph-init)
.flow/.checkpoint-*.json
.flow/receipts/
.flow/tmp/
scripts/ralph/
.claude/

# fn-43 v1.0 migration transients (flowctl migrate-rename + banner)
.flow/.backup-pre-1.0/
.flow/.banner-acknowledged
.flow/.migrating
.flow/.migration-manifest

# clawpatch feature-map state (fn-50). The /flow-next:map skill writes a
# self-contained .clawpatch/.gitignore (`*` + `!.gitignore`) for user repos,
# but its `!.gitignore` negation leaves that one file trackable — and our
# `work` skill stages with `git add -A`. Ignore the whole dir at repo root so
# our own dogfood map (local-only, regenerable via /flow-next:map --source
# agent) never gets staged into the plugin repo.
.clawpatch/
