node_modules/
dist/
*.tsbuildinfo
.worktrees/
.superpowers/
coverage/
**/__pycache__/
packages/.remember/
packages/.claude/
# Changelog radar cursor (local state)
.changelog-radar-cursor

# Internal planning docs — NEVER commit these
docs/superpowers/
docs/plans/
docs/specs/

# fix-drift.ts workflow artifacts (regenerated each run; uploaded via fix-drift.yml)
# The workflow writes these to $RUNNER_TEMP (outside the checkout) so the
# drift-success predicate's `git status` scan never sees them; this glob is
# belt-and-suspenders for local runs and covers the post-fix / pinned variants.
# Anchored to the repo root deliberately: these are root-CWD local-run artifacts,
# not a name to suppress at any depth (an unanchored glob would silently hide a
# fixture such as src/__tests__/fixtures/drift-report-*.json).
/claude-code-output.log
/drift-report*.json

# Adopter state checked out from the orphan adoption-data branch by
# .github/workflows/update-adoption-wall.yml. Never committed to main.
#
# The name "adoption-data" is spelled in three places that cannot import from
# each other: here, STATE_BRANCH in scripts/update-adoption-wall.ts, and the
# STATE_BRANCH env in that workflow. The workflow's "Guard adoption-data naming"
# step fails the run if the three disagree, so a rename that misses one is
# caught before it can commit weekly state data into main's history.
/adoption-data/
