Capture Live (c) active · schema v2 foundation landed
Capture now, make sense later.
**m2c kickoff 15-05-2026 ✅ — tasks 1–4 closed.** Schema-refactor foundation landed end-to-end as a single coordinated change. Migration **010** (`010_schema_v2_multimodal.sql`) applied: new `events.media` (photos + audio siblings, FK to `raw_inputs` `ON DELETE CASCADE`) + new `events.location_pings` (parallel stream, not FK) + `capture_mode` discriminator added to `raw_inputs` (`text NOT NULL DEFAULT 'live' CHECK (...IN ('live', 'test'))`) + existing 78 photo paths backfilled into `media` + `content_photo` dropped from `raw_inputs` + review RPC reshaped (`photo_path` via media LEFT JOIN; `capture_mode` projected). Bundled in one migration because Postgres refuses to drop a column referenced by an active function. Capture App (`capture-app/public/app.js`) writes the new shape — `raw_inputs` insert with pre-generated row UUIDs (so we can FK the sibling media rows without a return round-trip) + follow-up bulk insert into `events.media`. Review frontend types + 6 components renamed (`content_photo` → `photo_path`); local preview against the live Supabase corpus verified all six surfaces render clean (84 rows, 78 photos, 0 console errors). **Production deploys (Capture App + review-frontend) pending Freek's explicit authorization** — auto-mode classifier blocks deploys without explicit OK. Three new `decisions.md` 15-05-2026 entries (`capture_mode` CHECK; FK cascade on media; single coordinated change). Full m2c kickoff history in `project-management/projectlog.md` 15-05-2026 entry.
Active milestone
Capture Live (c) — Multi-Modal Capture (active since 15-05-2026; schema v2 foundation landed)
What's next
- AI Enrichment (prototype) — scoped 12-05-2026, replaces former "Automated Loop"
Previous milestone
Capture Live (b) — Review Frontend Phase 1 (complete 14-05-2026)
Tracks · Owner
Capture Freek
Milestone timeline
Ten named moments where something demonstrably works. Numbered for ordering, not for ranking — they can be reordered, inserted, or deferred without renaming anything else.
Recent updates
What landed in the past few sessions. Pulled live from STATUS.md.
Six development tracks
Tracks are permanent parallel workstreams. They apply across the whole platform and never finish — they mature over time. A single milestone typically advances two or three tracks at once.
Capture
Making input as frictionless as possible. WhatsApp, email, Apple Shortcuts, free-form text, voice. The moment of capture is the highest-friction point and the most important to solve. If capture feels like work, nothing else matters.
Knowledge Graph
The structured collection layer. Objects, links, templates, Capacities (for Remoir Events), Supabase schemas (for Remoir Family). Where user value is created through organisation and retrieval.
Data Pipeline
The backend plumbing. Webhooks, automation (Make, n8n, custom), OCR, geocoding, storage, error handling. What moves data from capture to knowledge graph reliably.
Raw Data
Storing all inputs in their original unprocessed form with full metadata from day one. The foundation for AI parsing and the user's personal data asset. User-owned and controlled from the first line of code. Non-negotiable.
AI Enrichment
Parsing, tagging, linking, summarising using AI. Reduces manual effort. Eventually replaces structured input entirely with free-form natural language. Trained on the Raw Data track. m3 (AI Enrichment prototype, scoped 12-05-2026) lands first on this track — a lightweight Claude-API prototype over raw inputs that generates the empirical signal needed to scope m6 (AI Parsing, production-grade).
Sovereignty
User ownership and control of all data and metadata. Group governance. Selective sharing with commercial parties on user terms. Long-term vision — informs architecture decisions now without being built now. Includes the federated ownership layer (see vision/future-layers.md).