docs: Phase 0.5 audit — Phase 2 preflight

Confirmed before writing code:
  - latest migration: 0003_council_portal.sql
  - /pulse render order: greeting · ActivityTicker · pulse card · preview
    row (roadmap + CouncilMark) · room-row (online chip strip) · event row
  - CouncilMark exists and works (one lit dot for Lars in seed); not broken
  - ActivityTicker exists at src/components/ActivityTicker.astro and renders
    at pulse.astro:169
  - 'online now' strip lives at pulse.astro:266-290
  - vote-count denominator is already count(role='cab'); '1 of 1' on the
    smoke run was seed shape, not a bug — Phase 2 seed populates 4 CAB users
  - events.kind enum: ('dinner','office_hours','summit','virtual'). Adding
    'working_session' needs a CHECK rebuild
  - 'Office hours with the founder' → exactly one match in
    scripts/seed-demo.js:106

Divergences resolved with the user before step 2:
  1. Migration 0004 must skip users.title (already added in 0003) and only
     add pull_quote, member_number, focus_tags.
  2. Token name: spec writes --border-radius-lg; use existing --radius-lg.
  3. --secondary stays warm-walnut accent. Muted body text uses
     --on-surface-variant.
  4. Member-number backfill: order by cab_joined_date asc (NULLS via
     COALESCE to created_at), tiebreak user.id asc. Deterministic across
     re-runs and machines.
  5. focus_tags parser: trim, dedupe, strip control chars, collapse internal
     whitespace to single space, cap 3 entries × 24 chars.
  6. /events/past filters on starts_at < now() — no boolean past flag column.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonathan Hvid 2026-05-11 15:46:02 +02:00
parent fe27811d16
commit 7f6668f909

Diff content is not available