# dependencies /node_modules /.pnp .pnp.* .yarn/* !.yarn/patches !.yarn/plugins !.yarn/releases !.yarn/versions # testing /coverage # HAR captures from production debugging (may contain auth headers/cookies) *.har # playwright e2e /test-results /playwright-report /playwright-json /playwright/.cache /e2e/setup/storageState*.json # next.js /.next/ /out/ # production /build # misc .DS_Store *.pem # debug npm-debug.log* yarn-debug.log* yarn-error.log* .pnpm-debug.log* # env files .env .env.local .env.*.local # typescript *.tsbuildinfo next-env.d.ts # prisma generated — ignore the whole path so a stray symlink at # `src/generated` (e.g. from a worktree) can never be committed /src/generated # v1.4.43 QoL (L3) — generated at build time by # scripts/generate-sw-version.mjs; loaded by public/sw.js to key # the cache-version baseline. /public/sw-version.js /public/i18n/ # In-browser OCR engine and language data, copied from node_modules by # scripts/stage-tesseract-assets.mjs at prebuild/predev. /public/tesseract/ # v1.4.27 B3 — MaxMind GeoLite2 databases are fetched at build time # via `scripts/fetch-geolite2.sh`. Too large for git; license key # required. The folder + a `.gitkeep` are tracked so the Dockerfile # COPY target always exists. /assets/geolite2/*.mmdb # Local workspace files, never committed /docs/superpowers/ .claude/ .cursor/ .codex/ .aider* # Planning scratch — all internal per-release reports, QA findings, ad-hoc # backlog, and the iOS coordination channel. These are internal working # notes; everything user-facing lives in the public surfaces (README, # CHANGELOG, docs/). Kept on disk for the working session, never tracked. /.planning/ # Docs scratch — temporary spec drafts that live in the repo only # while a release is in flight. /docs/ios/ # Per-release internal forensic notes — retained locally for # traceability across releases but not part of the public docs surface. /docs/audit/ # Local screenshot/audit harnesses (repo-root for module resolution; never committed) .audit-*.mjs # Isolated development worktrees. `/.wt-*/` is the convention actually in use; # each one is a full copy of the tree with its own node_modules, so leaving it # untracked-but-visible means one `git add -A` commits the repository eleven # times over. The same two names are excluded from eslint and vitest, for the # same reason in a different tool. /.wt-*/ /.worktrees/ # Mutation testing (stryker.config.mjs): reports and the sandbox copy. /reports/mutation /.stryker-tmp