- pnpm 10 workspace + TypeScript strict + ESLint flat + Prettier - CLAUDE.md as canonical brief - docs/tasks/ — 22 task briefs broken out by phase for sub-sessions - docs/decisions/ — ADR scaffold Implements task 01 (repo-init).
Task briefs
Each file here is a self-contained brief for a sub-session (typically Sonnet) to execute one chunk of work. Briefs assume the executor has read /CLAUDE.md — do not restate the stack or architecture there.
How to use a brief
- Read
/CLAUDE.mdfirst. - Read the task file end-to-end.
- Stop when all acceptance criteria pass. Do not bolt on extra scope.
- If a brief turns out to be wrong, update the brief in the same commit as the code.
Brief format
Every task file has these sections:
- Goal — one sentence.
- Why — what this unlocks; how it fits the larger plan.
- Depends on — task numbers that must be done first.
- Scope — bullet list of what to build.
- Out of scope — explicit non-goals to prevent drift.
- Acceptance criteria — checkable list. Done = all checked.
- Notes — gotchas, recommended libs, sketches.
Phase index
Phase 1 — Scaffold
- 01 — Repo init & tooling
- 02 — Next.js app skeleton
- 03 — Drizzle + Postgres setup
- 04 — Module loader & registry
- 05 — Compose stack & Caddy
- 06 — Authentik install + OIDC integration
- 07 — Household seeding & session