boas.dev Scheduling Suite — Product-Ship Roadmap

GitHub Project #26 · ship whole products in order · Calendar first · draft pending athena · metis 2026-06-21
Operating principle. The suite ships as discrete working products, one finished before the next — not cross-cutting layers (operator ruling 2026-06-21). Launch = live + E2E-verified, not merged-and-claimed. Dates are dependency-ordered proposals (P11).

Ship order

#ProductOne-lineStateEpic
1Canonical Calendar Appone place to see/control all events; bookings auto-appear; ICS subscribe~85% — verify+close#70
2Meet (rooms + invitee/dashboard)book → invited → join → manage → post-meeting hubmostly live#41
3Proposals & Negotiationsend booking proposals; accept/decline/counter/rescheduleF1/F12 live, rest open#74
4CRM (Client Pipeline)bookings auto-enrich contacts/orgs/dealsShape-4 locked#43
5Transcription Engineconsented transcripts on /m/research-stage#110
Cross-cutting, threaded in (not standalone): Mercury email delivery (#42) · Auth pivot (#97) · Foundation infra meet auto-deploy #132 + wrong-project key #133 — both pulled forward into Calendar.

PRODUCT 1 — Canonical Calendar App

Epic #70 rescope "Forward Scheduling & Canonical Calendar" → "Canonical Calendar App (v1)". Design of record: 2026-06-11-pantheon-calendar-design.md.
Definition of done: operator opens pantheon.boas.dev/calendar, sees all events from every source (month/week/day), creates/edits/drag-reschedules, subscribes via ICS, and cal.boas.dev bookings auto-appear. events is the canonical SSOT. Every input stream proven E2E.

Components — build state (ground-truthed 2026-06-21)

LIVEevents SSOT — DDL, RFC-5545, booking trigger, RLS grantsproteus 20260611_events_calendar.sql
LIVEHub Calendar VIEW — month/week/day, create/edit/drag, kind picker, rrule presets, meet-link, ICS panel_K4120S/pantheon CalendarPage.tsx
LIVEHub backend /api/events (GET/POST/PATCH/DELETE), tier auto-detectroutes/events.ts (tier:"live" 06-11)
LIVEICS feed out — /api/cal/<token>.ics, TRANSP map, tombstonesmeet-boas-dev; EVENTS_RO_KEY wired
BUILTsched-mcp — 6 tools, PostgREST two-header, rrule expand41 unit tests pass; live E2E pending

Data streams INTO events (the SSOT)

SourceWrite pathStatus
cal.combooking → CF shield → n8n → meetings → DB trigger → eventsLIVE (re-confirm post-shield = the one open proof)
sessionsched-mcp schedule_create (any Claude session)E2E PENDING → flips 79ca3cd2 wired
hubHub UI create → POST /api/eventsLIVE but #115 no idempotency (dup rows)
mercurymercury → events (DDL allows source=mercury)UNVERIFIED — no path confirmed. v1 or v2?
OUT: ICS feed (Fastmail/Apple) · Hub view · meet /m/,/me read events

Remaining tasks to DoD

#TaskOwnerIssue
1sched-mcp live E2E round-trip (create→list→update→delete) → flip 79ca3cd2 wired — proves session streammetis#62
2events dedup idempotency on Hub create path (kill dup rows)metis/apollo#115
3mercury→events stream — decide v1-needed; wire+prove or mark v2metisfile
4AUTH-4 calendar-surface auth — CF Access can't be passed by cal apps → resolve Hub-view vs ICS splitmetis+athena#101
5meet CF auto-deploy — ICS feed on meet-boas-dev; manual-deploy drifthades/ops#132
6/api/events/meta tier test + fresh-session env audit (writer/anon/feed token in Hub env)metis/hadesfile
7heph PR#72 window-overlap advisory fold-inmetisPR#72
8wrong-project key — metis-direct events write hits boas.dev not Pantheonhades/proteus#133
9personal_schedule retirement — confirm+close (orphan, never existed)proteusclose
10Board close-out reconcilemetis#62#69#70
Critical path: sched-mcp E2E (1) → wired flip → idempotency #115 (2) + auth resolve #101 (4) + auto-deploy #132 (5) → meta/env audit (6) → board close (10). Tasks 3,7,8,9 parallel/cleanup. Then: Calendar = SHIPPED.
Carved OUT to Calendar v2: sched Worker remote MCP (#116/#117) · CalDAV server/adapter · external 2-way sync · AI auto-scheduling (deferred — "ritual > AI") · double-booking warnings · multi-person attendee UI · ICS token-regen UI.

Products 2–5 — headlines (detailed when their turn comes)

Athena ratification asks

  1. Ratify product-ship-order framing + "everything-works" no-fabricated-date posture.
  2. Authorize rescoping #70 → "Canonical Calendar App (v1)" + carving forward-scheduling (#116/#117 + CalDAV/AI) to a new v2 epic.
  3. Board machinery on #26: tag Product-1 issues to a "P1 Calendar" iteration; rule cross-fleet dep tracking (proteus/hades/apollo as #26 deps vs home boards).
  4. Resolve calendar-surface auth (#101): CF Access can't be passed by calendar apps — confirm Hub-view (Supabase session) vs ICS-feed (token) split.
Source: docs/architecture/scheduling-suite-roadmap.md · 2026-06-11 calendar design + arc-close · cross-repo ground-truth 2026-06-21 (pantheon CalendarPage.tsx, proteus 20260611_events_calendar.sql, metis src/sched-mcp) · GH #26 live query 2026-06-21.