# Both spellings. The trailing slash matches a DIRECTORY only, so a
# `node_modules` SYMLINK slipped past it and was committed on the site
# branch (2026-10-21) — pointing at an absolute path on one Mac, which is
# the one thing §16 says source must never contain.
node_modules/
node_modules
.next/
.env
.env.local
# Root-anchored: an unanchored `media/` here would also match src/media/ and
# src/app/media/ (source, not the cache directory) and silently drop them
# from version control. Same reasoning applies to the rest of these.
/data/
/mail/
/media/
/backups/
/logs/

# Parser fixtures are real retailer emails. Kept locally, not committed —
# see CLAUDE.md §9. This is what removes redaction from the critical path.
fixtures/
*.db
*.db-wal
*.db-shm
*.eml
*.eml.gz
.DS_Store
*.tsbuildinfo

next-env.d.ts

# Personal Claude Code overrides (the project settings ARE committed)
.claude/settings.local.json
dist/
.claude/worktrees/

# Generated by `npm run legal` from src/legal/text.ts — read and edit,
# but the module is the source of truth, not these.
legal-drafts/
