From 7f6668f9092fd3466479d27905afcd2d1e874d97 Mon Sep 17 00:00:00 2001 From: Jonathan Hvid Date: Mon, 11 May 2026 15:46:02 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Phase=200.5=20audit=20=E2=80=94=20Phase?= =?UTF-8?q?=202=20preflight?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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)