CLAUDE.md · diff
git:20261027.130d068 to git:20261028.03017e5
4 added, 0 removed. Audit A to A.
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project
Next.js 16 (App Router) + React 19 + TypeScript single-page tip calculator, used as course material for "Claude Code: AI Crash Course for Developers". Commits are named after course lessons (e.g. `S05. L10. ...`), so keep each change self-contained.
## Commands
```bash
npm run dev # Next.js dev server at http://localhost:5173
npm run build # next build (includes type-check)
npm start # serve the production build at http://localhost:5173
npm run lint # eslint .
npm test # vitest in watch mode
npm run test:run # vitest once
npm run verify # end-to-end tests (Playwright)
npx playwright test tests/x/y.spec.ts
# Single file / single test
npx vitest run src/utils/validation.spec.ts
npx vitest run -t "test name substring"
```
The page lives in `src/app/page.tsx` (client component) with `src/app/layout.tsx` as root layout; shared code is imported via the `@/` alias (`src/*`). Vitest (`vitest.config.mts`) runs in jsdom with `globals: true`; `src/vitest.setup.ts` registers `@testing-library/jest-dom` matchers. Tests are colocated as `*.spec.ts(x)` next to their source.
## Rules in `.claude/rules/`
- `structure.md`: where new and moved files go.
- `performance.md`: how pages load fast (streaming, lists in batches, few data requests, caching, media) and how to measure it (loads when working in `app/` or `lib/`). Measure every change to a page.
- `tests.md`: unit and end-to-end test conventions (loads when working on test files).
- `feature-workflow.md`: the steps for building a user-facing feature.
## Documentation
- **`docs/`** holds the spec for each feature (`01`–`14`) and `00-architecture.md` with the shared plan (implementation order and older plans written before the switch to TMDB lists). Read the matching doc before building a feature; it is the spec step 1 of `feature-workflow.md` starts from.
+ ## Commits
+
+ Before every commit, use the `committing-with-commitlint` skill.
+