Quality Tooling
Lint and typecheck
- Lint:
pnpm lint(Turbo, all workspaces). Auto-fix:pnpm lint:all:fix. Uses Biome (see Biome). - Typecheck:
pnpm typecheck(Turbo, all workspaces). TypeScript strict mode across the monorepo.
Tests
- Unit tests: From repo root,
pnpm test:allruns tests in all workspaces (Turbo; E2E package has notestscript so is skipped). From a workspace directory, runpnpm testto run that package's unit tests only. - E2E: Playwright in
@kartuli/e2e. Use root scriptspnpm c:e2e:game-client, etc., orpnpm e2ewithBASE_URLset. See E2E Hub and tools/e2e/README.md.
Lighthouse
- Local:
pnpm lighthouse(runslhci autorun). Used in CI for Next.js apps (staging and production) with assertions; reports and artifacts on failure. - CI: Staging (Next.js workflow) and production (game-client, backoffice-client) run Lighthouse after build/deploy.
Git hooks (Lefthook)
- Pre-commit: Lint (Turbo), conflict-marker check, large-file check in
src/. Configured in lefthook.yml. Installed viapnpm prepare(lefthook install).
Dependency updates
- Renovate: Config in renovate.json. Opens PRs for dependency updates; review and merge as usual.
@types/nodeis pinned to 24.x (allowedVersions<25) to match the Node 24 runtime.
Review and branch protection
- Branch protection: Pull requests and (optionally) required reviews before merging to
main. See GitHub Repo Management for CODEOWNERS and branch protection rules. - PR template: .github/pull_request_template.md guides reviewers.
References
- Root scripts — All root-level commands
- Staging pipelines — Where lint, typecheck, E2E, and Lighthouse run in CI
- Production pipelines — Where E2E and Lighthouse run in production