# deps
node_modules/
.pnpm-store/

# build
dist/
.next/
out/
.turbo/
.vercel/
*.tsbuildinfo

# env
.env
.env.*
!.env.example
!*.example
.dev.vars
.wrangler/

# secrets that travel with the .env cascade but are never committed
# (e.g. the Sign in with Apple .p8 private key — see secrets/README or lib/auth.ts)
secrets/
*.p8

# misc
.DS_Store
*.log
coverage/
.idea/
.vscode/*
!.vscode/extensions.json

# OpenNext build output
.open-next/

# editor/python noise
*.swp
__pycache__/

# Claude Code scheduler runtime lock (machine-local, never commit)
scheduled_tasks.lock
.claude/scheduled_tasks.lock
.old-env/

# local prod backups (email/calendar migration 2026-07-03) — never commit
/backup/

# research scratch — machine-local instance-id markers, peek scripts, env captures
/.*_iid
/peek.sh
# ARC-AGI-3 game downloads. These belong to the model service and live in
# services/model/environment_files/ (ignored there too) — a copy at the REPO ROOT only ever appears
# when the harness is run from the wrong cwd, and one did: a stray tu93/ sat here duplicating the
# submodule's copy, differing solely in date_downloaded. Deleted 2026-08-13; the rule stays so the
# next wrong-cwd run cannot quietly repopulate the index.
/environment_files/

# staged asset-library manifests — regenerable output of scripts/stage-{editor,public}-library.mjs
scratch/editor-library/
scratch/public-library/

# Stager RUN ARTIFACTS — `--results` output, one per invocation. Not source: a machine that ran
# the stager should not be able to commit its log by accident.
*.results.json
