# Keep the BuildKit build context small and free of secrets / scratch. # Mirrors `.gitignore` for the files that matter, with a few additions # (planning scratch, e2e storage state) that aren't in version control # but live in the working tree. # Local environment files. The image reads its runtime config from the # compose `environment:` block at boot — `.env` should never ship. .env .env.* .env.example .env.production.example # Version control + CI metadata. .git .github .gitignore .gitleaks.toml # Build / install output that gets regenerated inside the builder stage. node_modules .next out dist coverage test-results playwright-report playwright/.cache playwright.config.ts vitest.config.mts vitest.integration.config.mts vitest.mutation.config.mts # The unit setup imports tests/ (excluded above); the image never runs it and # the build's type check must not see a half-present test harness. vitest.setup.ts stryker.config.mjs stryker.floors.json tests tests/ e2e e2e/ e2e-results .eslintcache eslint-plugins eslint-plugins/ knip.json # Generated local cache files *.tsbuildinfo next-env.d.ts public/sw-version.js # Captures from local debugging sessions. *.har *.heapsnapshot # Editor / agent worktrees + caches. .claude .worktrees .cursor .aider* .vscode .idea .DS_Store *.swp *.swo # Logs / Debug *.log npm-debug.log* yarn-debug.log* yarn-error.log* .pnpm-debug.log* # Docker compose / local ops files docker-compose*.yml compose*.yml Dockerfile .dockerignore # Documentation not needed for runtime image README.md CHANGELOG.md CLAUDE.md CONTRIBUTING.md CONTRIBUTING-AI.md CODE_OF_CONDUCT.md SECURITY.md # LICENSE / LICENSE.md are deliberately NOT ignored: the PolyForm # Noncommercial 1.0.0 notice terms require the licence text (or its URL) # to ship with every copy of the software, so it ships inside the image. AGENTS.md .planning docs docs/*.md docs/**/*.md