Archive
What has been done so far. Completed milestones, retired workstreams, the running project log, the decision log, and architecture decision records — all derived from the platform's own append-only files.
Completed milestones
Manual Loop
m1 · Complete (08-05-2026)
Object model validated in Capacities by hand. Templates created. Past events backfilled manually. Proves the eight-object Remoir Events model (Event, Organization, Person, Location, Moment, Topic, Insight, Raw Input) before any automation is built. Every subsequent milestone depends on this being right.
Capture Live (a) — Photos only
m2a · Complete (13-05-2026)
Capture App PWA posting to Supabase raw_inputs with full metadata and provenance. Calendar-aware context auto-suggest. Manually processed into Capacities. Validated the capture channel and raw data pipeline before automation is plugged in. Per ADR-002. Closed 13-05-2026 after M1's "frictionless input + raw data collection" thesis was validated at a real event (10-05-2026). URL channel originally scoped here was relocated to m2c on 13-05-2026; interim review-view scaffold at app.remoir.app/review shipped out-of-original-scope and is retired at m2b close.
Capture Live (b) — Review Frontend Phase 1
m2b · Complete (14-05-2026)
Supabase-backed frontend at review.remoir.app. All 18 tasks ✅. Six live surfaces: gallery (cards) at /, detail at /r/:id, table (sortable + inline-edit + hard-delete) at /table, dashboard (type counts + tag inventory) at /dashboard, map (Leaflet GPS pins + clusters) at /map, audit log (daily glance) at /audit. Editing surfaces are destructive as a scoped prototype-phase exception to ADR-002 commitment 3 — see project-management/decisions.md 14-05-2026 "Destructive editing in m2b" for the revisit triggers (m3 close / prototype graduation / Phase-1→2 transition). Substrate (per decisions.md 14-05-2026): plain React + Vite + TypeScript + Tailwind v4, static output to Cloudflare Pages via Wrangler, own Pages project remoir-review; auth deferred for prototype phase (publishable key + SECURITY DEFINER RPCs + noindex + robots.txt, hard revisit-trigger list logged; magic-link draft preserved in maybelater.md 14-05-2026). Migrations 007 (open review RPC), 008 (update_raw_input_field with field + type allowlists), 009 (delete_raw_input) applied. Interim scaffold at app.remoir.app/review retired and 301-redirected to review.remoir.app. Replaces the previously-planned Capacities-via-Make.com wiring (see decisions.md 10-05-2026). Tasks 15 + 16 (automated-stream daily aggregation, aggregate-card drill-down) landed-in-spirit at the m2b-appropriate level with the m2c-dependent portions revisited at m2c close. Daily Audit Log spec lives at docs/audit-log-spec.md v1.0.
Retired workstreams
Retired workstream
WhatsApp Pipeline
Originally: Twilio webhook receiving WhatsApp messages, parsing them, storing in Supabase. Substantial infrastructure was built between January and April 2026 (Express webhook + Twilio + Railway + Cloudflare DNS + Framer frontend) but blocked on Meta business verification and never went into production. Retired on 12-05-2026 when the WhatsApp angle for live capture was deemed closed for now. Built infrastructure archived at archive/remoir-family-09-04-2026/; Twilio + Railway + GitHub torn down or archived; Cloudflare + Hostnet left as-is (domain retained). The Supabase project formerly documented as a separate "Family Memoir app" project was confirmed to be the same as the active "Remoir app" project; Family-era tables preserved as inert in public schema. The milestone slot is reserved in case WhatsApp ever returns as a capture channel, but it is not on the near roadmap.
Architecture decision records
Append-only records of architectural commitments. Once written they are never edited, only superseded. Titles only on the public site.
ADR-001
ADR-001 — Architecture Deferred Until M1 is Proven
ADR-002
ADR-002 — Architecture Commitments: May 2026
ADR-003
ADR-003 — Multi-Modal Capture & Raw Data Schema v2
Decision log
Significant choices and their rationale, most recent first. Entries shown here are those explicitly opted in via the <!-- public --> marker. Source: project-management/decisions.md.
15-05-2026
Public site moved from unusual.company to lens.remoir.app; old domain 301-redirects(later)
Decision. The public-facing site moves from unusual.company to lens.remoir.app. Both unusual.company (apex) and www.unusual.company are configured as path-preserving 301 redirects to the equivalent path on lens.remoir.app via a Cloudflare Bulk Redirect rule on the unusual.company zone. The Cloudflare Pages project name (unusual-company) is retained — project renames in Pages are non-trivial and the name is invisible to users. Email at unusual.company (the mail A record + MX) is untouched.
13-05-2026
Capture Live (a) closure + URL channel relocation to (c)(latest)
Decision. Capture Live (a) — Photos only is closed as of 13-05-2026. URL-channel tasks (former m2a tasks 14–17) are relocated to Capture Live (c) as a new "URL channel" sub-track (tasks 16–18 in m2c's numbering; original m2a task 17 "test with a dummy URL during a real capture session" is absorbed into m2c's existing real-event test, now task 19 "capture across all streams, including URL"). m2b — Review Frontend Phase 1 becomes the active milestone.
13-05-2026
Project phase model: Approach C (anchored to user reality)
Decision. Remoir adopts a five-phase project model where each phase is defined by user reality, not internal architecture or feature progress:
13-05-2026
Vision document split: north-star + working-vision-per-phase
Decision. Split docs/vision/product-vision.md (v3.2) into two new files, each with a single job:
12-05-2026
unusual.company public/private content classification + daily deploy cadence(late night, privacy posture)
Decision. Adopt a three-tier content classification for the public website at unusual.company, plus a hard once-daily deploy cadence.
12-05-2026
Moment becomes the anchoring object of the data model(directional, pending Capture Live c scoping)
Decision (directional, pending Capture Live (c) scoping). In the Capture Live (c) schema redesign, Moment becomes the anchoring object of the data model. Photos, voice memos, location pings, Spotify listening history, and other enrichment streams will all link to a Moment rather than the current model where photo Raw Input is the anchor and other data hangs off it.
12-05-2026
Daily Audit Log: glanceable derived view over raw_inputs (sovereignty primitive)(m3 rescope)
Decision. Add a Daily Audit Log surface that shows the user every raw_input captured in a given day. Manual captures (photos, voice memos, URLs) listed individually with timestamp, type, event context, and current processing_state. Automated captures (location pings, calendar syncs) aggregated by default — e.g., "47 location pings, GPS confidence high, no anomalies." User can drill down into the full list if they choose.
12-05-2026
m3 external enrichment scope: Nominatim and calendar event venues only(m3 rescope)
Decision. For the m3 prototype, external enrichment is limited to two sources:
12-05-2026
m3 renamed from "Automated Loop (pending)" to "AI Enrichment (prototype)"(m3 rescope)
Decision. m3 becomes a lightweight Claude-API integration that reads raw_inputs, scores metadata confidence, flags duplicates, suggests links, and enriches GPS via Nominatim and calendar event venues. Hands-on prototype, not production automation.
12-05-2026
URL/PDF capture as a Raw Input type (capture-side only)(m2a schema refinement)
Decision. Add type = 'url' as a recognised Raw Input type and a raw_inputs.url (text, nullable) column. Capture App gains a URL input field that lets the user paste a link during an event; on submit, a new raw_input row is created with type = 'url', the URL stored in the url column, processing_state = 'unprocessed'. Fetch, store, and text-extraction logic explicitly deferred to m2c (Multi-Modal Capture).
12-05-2026
public website at unusual.company built as a static, folder-derived lens(night)
Decision. Build the public Remoir website as a static site (HTML/CSS/JS, no framework, no backend), deployed to Cloudflare Pages via Wrangler at unusual.company. Source of truth is the platform folder; the site is a derived artefact regenerated by a Node script (website/build/sync.js) that reads markdown files and emits public/content.json. One command (npm run deploy) regenerates and ships. Folder structure: website/{public,build}/, registered in CLAUDE.md under platform code/asset directories.
Project log
Running log of what happened when, most recent first. Same opt-in convention as the decision log. Source: project-management/projectlog.md.
12-05-2026
unusual.company content classification + daily cadence + robots.txt(post-wrap, privacy posture)
Privacy / risk / security audit triggered by Freek's observation that claude.ai gets HTTP 403 fetching unusual.company (Cloudflare's free-tier Bot Fight Mode blocks Claude-User / ClaudeBot / Claude-SearchBot / anthropic-ai) and his concern that the public site might be sharing more than intended.
12-05-2026
website/ workstream landed; public site at unusual.company built end-to-end(night)
New website/ folder added at platform root. The site is a public-facing infographic-style lens over the Remoir folder, intended for unusual.company (the retained domain from the retired WhatsApp pipeline workstream).