Initial scaffold: tooling, plan, task briefs

- 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).
This commit is contained in:
ginnoir
2026-05-06 00:05:50 -05:00
commit b89690a9f2
40 changed files with 2282 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
# 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`](../../CLAUDE.md) — do not restate the stack or architecture there.
## How to use a brief
1. Read `/CLAUDE.md` first.
2. Read the task file end-to-end.
3. Stop when **all** acceptance criteria pass. Do not bolt on extra scope.
4. 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](01-repo-init.md)
- [02 — Next.js app skeleton](02-nextjs-skeleton.md)
- [03 — Drizzle + Postgres setup](03-drizzle-postgres.md)
- [04 — Module loader & registry](04-module-loader.md)
- [05 — Compose stack & Caddy](05-compose-caddy.md)
- [06 — Authentik install + OIDC integration](06-authentik-oidc.md)
- [07 — Household seeding & session](07-household-seed.md)
### Phase 2 — Core modules
- [10 — Calendar module](10-calendar-module.md)
- [11 — Lists module (shopping + task)](11-lists-module.md)
- [12 — Notes module](12-notes-module.md)
### Phase 3 — Dashboard & UX
- [20 — Dashboard composition](20-dashboard.md)
- [21 — Quick-add registry](21-quick-add.md)
- [22 — Activity log](22-activity-log.md)
### Phase 4 — Sharing
- [30 — Share-link service](30-share-links.md)
- [31 — Public share viewer (`/s/<token>`)](31-share-viewer.md)
### Phase 5 — Notifications & reminders
- [40 — Web Push (VAPID)](40-web-push.md)
- [41 — Reminders engine](41-reminders.md)
- [42 — Notification bus + ntfy adapter](42-notification-bus.md)
### Phase 6 — PWA polish
- [50 — Manifest, icons, install prompt](50-pwa-shell.md)
- [51 — Offline shell + service worker caching](51-offline.md)
### Phase 7 — Hardening
- [60 — Postgres backups (pg_dump cron)](60-backups.md)
- [61 — Rate limiting on share links](61-rate-limit.md)
- [62 — Structured logging](62-logging.md)