wip: project setup paused pre-Phase-1 (0/5 phases)

This commit is contained in:
Lucas Berger
2026-06-03 16:35:19 -04:00
parent ac82d32a36
commit 31c78965a7
2 changed files with 128 additions and 0 deletions
+86
View File
@@ -0,0 +1,86 @@
---
context: default
phase: none (pre-Phase-1 — project initialized, planning not started)
task: 0
total_tasks: 5
status: paused
last_updated: 2026-06-03T20:34:20.534Z
---
<current_state>
`/gsd-new-project` ran to completion. FamilySync is fully initialized: PROJECT.md, config.json,
research (STACK/FEATURES/ARCHITECTURE/PITFALLS/SUMMARY), REQUIREMENTS.md (20 v1 reqs), and an
approved 5-phase ROADMAP.md (MVP mode) are all written and committed. Working tree is clean.
No phase/plan/task work has started yet. The immediate next step is `/gsd-discuss-phase 1`.
</current_state>
<completed_work>
- PROJECT.md written + committed (ad2aad8)
- config.json: interactive mode, standard granularity, parallel, balanced (Sonnet) models,
research + plan-check + verifier + drift-guard all on (1ce0348)
- Domain research: 4 parallel researchers + synthesis (0f79277)
- REQUIREMENTS.md: 20 v1 requirements — AUTH-01..03, CAL-01..08, LIST-01..04, NOTIF-01..03, PWA-01..02 (a20afd4)
- ROADMAP.md + STATE.md: 5 phases, 20/20 coverage; CLAUDE.md generated (ac82d32)
</completed_work>
<remaining_work>
5 phases, none started:
1. Foundation + Broker Spike — AUTH-01/02/03, CAL-01, CAL-08
2. Calendar Display — CAL-02, CAL-03
3. Event Write-Back + PWA Install — CAL-04/05/06/07, PWA-01/02
4. Shared Lists + Live Sync — LIST-01/02/03/04
5. Web Push Notifications — NOTIF-01/02/03
</remaining_work>
<decisions_made>
- **Fastmail calendars are CalDAV-only** — JMAP-for-calendars is not available (pending RFC 8984).
Broker authenticates with a Fastmail **app password**, NOT an API token (tokens are JMAP-only).
This resolves the long-open JMAP-vs-CalDAV question.
- **Stack:** Hono + Drizzle (mysql2/MariaDB) + tsdav + ical.js + rrule + vite-plugin-pwa +
web-push + @hono/oidc-auth; SSE (+ optional Redis) for live list sync.
- **CAL-08 personal-calendar overlay is spike-gated in Phase 1** with a shared-family-only fallback.
- v1 scope: all 4 calendar views; recurring create+display only (single-instance edit -> v1.x);
all 3 push types (event reminder, list-change, event-change).
- **Vertical MVP** structure (each phase = end-to-end user capability).
- Authelia already deployed + both members have accounts -> Phase 1 auth is OIDC-client
integration only.
</decisions_made>
<blockers>
- None blocking. One important open question (see Pre-Execution / human actions): where the wife's
personal calendar actually lives (Fastmail vs iCloud) — determines whether CAL-08 is achievable.
</blockers>
## Required Reading (in order)
1. `.planning/ROADMAP.md` — the 5-phase plan and per-phase success criteria
2. `.planning/research/SUMMARY.md` — cross-cutting findings; read before Phase 1 planning
3. `.planning/research/PITFALLS.md` — phase-mapped risks (CalDAV RRULE/ETag, iOS Web Push, Authelia, Pangolin)
4. `.planning/REQUIREMENTS.md` — 20 v1 requirements + traceability
5. `.planning/PROJECT.md` — project context, constraints, open questions
6. `.planning/notes/familysync-architecture.md` — reasoning behind dropped options (Baikal/Vikunja)
## Critical Anti-Patterns (do NOT repeat these)
- ANTI-PATTERN: Assuming JMAP for calendar read/write → it does not exist on Fastmail. Use CalDAV (tsdav) only.
- ANTI-PATTERN: Building calendar UI before proving the personal-calendar share works → Phase 1 spike gates CAL-08 first.
- ANTI-PATTERN: Treating iOS Web Push as working from a Safari tab → it requires an installed (Add-to-Home-Screen) PWA; the guided install UX is load-bearing, not optional.
## Infrastructure State
- Unraid + Docker Compose host; Authelia deployed (both members have accounts); Pangolin/Newt tunnel for public access (no open ports); MariaDB available, Redis available, no PostgreSQL.
- Nothing for FamilySync deployed yet — greenfield repo, only `.planning/` + generated CLAUDE.md exist.
## Pre-Execution Critique Required
- Before/at Phase 1: confirm where the wife's PERSONAL calendar lives (Fastmail vs iCloud). If iCloud, CAL-08 (personal overlay) is unreachable via the Fastmail broker and degrades to shared-only (v1.x). This is the Phase 1 go/no-go spike.
<context>
This is a clean handoff right after project setup — no mid-task state to untangle. The roadmap is
approved as-is. The one piece of judgment to carry forward is the CAL-08 risk: front-loaded into
Phase 1 deliberately. Knowing the wife's calendar location before planning Phase 1 would sharpen it.
</context>
<next_action>
Start with: `/gsd-discuss-phase 1` — and open by confirming where the wife's personal calendar
lives, since it drives the CAL-08 go/no-go spike.
</next_action>