Roadmap: Current Position
A1Self-Contained Cell
settled
▾
A1Self-Contained Cell
settled
phase 2 of 3 · milestones 1, 8, 9 of 14
"The minimum-viable cell. A single user captures the moments of their life on their own terms, with raw input as the authoritative substrate and the canonical layer as the structural backbone. No cell ever talks to another cell at this arc."
Thesis: capture friction can be removed without sacrificing depth; raw-substrate-first discipline is buildable; the butler interaction model holds. Data sovereignty at single-user scale is demonstrated as an architecture, not as a policy.
Arc-closure signal: Production (the arc's exit phase) reaches a state where a single user can trust the cell with their daily life and the system behaves as the household-keeping butler. The architectural readiness for cross-cell behaviour is in place but unused.
A1-PH1
Prototype
Archived
A1-PH2
Foundation
Active
A1-PH3
Enrichment
Next
Production
Exit
The aim · A1-PH2
"Foundations clean enough to build a knowledge graph on without first having to refactor anything."
A1-PH2 — milestone map
M1
First Principles
FP1..FP6 are stable enough that downstream design (object model, heuristics, working vision, arc/phase decisions) cites them without triggering kernel revision.
in flight
pending manual content review per todo.md M1 Open
First Principles
FP1..FP6 are stable enough that downstream design (object model, heuristics, working vision, arc/phase decisions) cites them without triggering kernel revision.
in flight
pending manual content review per
todo.md M1 OpenDone-when
- Each of FP1..FP6 has a kernel statement in
docs/first-principles.mdplus a supporting essay indocs/first-principles/whose Currency-check quotes the kernel verbatim. - No FP kernel has been re-authored in the last 7 days (stability gate).
- At least one decision in
project-management/decisions.mdcites an FP as load-bearing (the FPs are exercised, not shelved).
Deliverables
docs/first-principles.mddocs/first-principles/README.mddocs/first-principles/fp{1..6}-*.mdessays- cross-references in
docs/heuristics.md(Derived FP column) anddocs/object-model.md
Tasks from
project-management/todo.md- Author `/paradigm/digital-cell-vision.md` (parent paradigm; persists across phase swaps; prerequisite for M1).
- Author `docs/first-principles.md` (FP1–FP6 + heuristics by four-partition + cross-cutting cell-level + governance).
- Resolve `docs/file-registry.md` slot duplication (remove `docs/vision/digital-cell-vision.md`; update `/paradigm/` slot description).
- Pare FPs to kernels; consolidate no-foreclosure cross-cutting; register `docs/first-principles/` essay layer.
- Author `docs/first-principles/README.md` + `docs/first-principles/fp1-structural-data-sovereignty.md` (calibration draft).
- Author FP2–FP6 essays (`fp2-truth-is-contested.md`, `fp3-capture-friction.md`, `fp4-meaning-in-arenas.md`, `fp5-structure-emerges.md`, `fp6-system-serves.md`).
- Establish self-validating currency-check pattern (verbatim FP-kernel anchor in each essay).
- Sharpen no-foreclosure-of-Tier-3 heuristic; promote *Build the membrane abstraction from day one; defer the cryptography* to settled.
- FP3 — Expand manifesto body with three-failure-modes reasoning (epistemic contamination / narcissism / antipathy). Kernel unchanged. (23-05-2026)
- FP3 — Add corrupted-use paragraph to essay's "The principle" section. (23-05-2026)
- FP3 — Refine essay re-examination trigger #1 with defensive note distinguishing recoverability from performance. (23-05-2026)
- FP3 — Verify essay Currency-check matches kernel verbatim; verify `docs/principles.md` FP3 row needs no edit. (23-05-2026)
- FP5 — Replace kernel with "Avoid preconceived structures. Let them emerge." (Option A). (23-05-2026)
- FP5 — Re-anchor "from data" in manifesto FP5 body. (23-05-2026)
- FP5 — Update essay title + Currency-check + "The principle" section, re-anchoring "from data". (23-05-2026)
- FP5 — Update `docs/principles.md` FP5 row and `docs/first-principles/README.md` index. (23-05-2026)
- FP5 — Verify `/paradigm/stratification.md` has no FP5 wording; verify `website/` empty at A1-PH2 (no deploy flag). (23-05-2026)
- Flag stale FP5 wording in `for-future/2026-05-21-process-discipline-canonical-text.md` (parked; reconciles at brief-processing time). (23-05-2026)
- Log combined `decisions.md` entry covering FP3 + FP5 changes. (23-05-2026)
- Archive both cowork briefs and merge + archive the chat-archive entry; confirm `New instructions/` empty. (23-05-2026)
- **Next-session priority (31-05-2026 Freek):** close M1. FP5's 7-day stability gate cleared 30-05; Freek's manual content review on `docs/first-principles.md` + the six FP essays is the only blocker.
- Manual content review pass on `docs/first-principles.md` + the six FP essays before re-close (TBD scope — Freek flagged that M1 is not yet ready to re-close).
- M1 re-close sweep: STATUS.md + `docs/milestones.md` + `todo.md` per `docs/process/update-triggers.md`, bundled with whatever M1 work surfaces next.
20 of 23 tasks done
M2
Object Model
The four-layer object model (L1 Substrate · L2 Emergent · L3 Structural · L4 Deliberate) and the Scope × Stage × Character axes are load-bearing: design conversations resolve through them without ambiguity, and new data shapes find a home without contortion.
shipped
29-05-2026 · M5 Derived-mirror and M6 glossary-mirror confirmations resolved on …
Object Model
The four-layer object model (L1 Substrate · L2 Emergent · L3 Structural · L4 Deliberate) and the Scope × Stage × Character axes are load-bearing: design conversations resolve through them without ambiguity, and new data shapes find a home without contortion.
shipped
29-05-2026 · M5
Derived-mirror and M6 glossary-mirror confirmations resolved on …Done-when
docs/object-model.mddocuments all four layers + Scope/Stage/Character axes with worked examples.- The model is ratified by ADR (currently
adr-004-object-model-layer-ratification.md). - At least one heuristic in §Store and one in §Enrich reference layers/axes (the model is exercised, not just declared).
- No layer assignment has been re-litigated in the last 7 days.
Deliverables
docs/object-model.mdproject-management/adr-004-object-model-layer-ratification.md- L1..L4 cross-references in
docs/heuristics.md,docs/glossary.md,/paradigm/stratification.md
Tasks from
project-management/todo.md- Author `docs/object-model.md` — four-layer framing (L1 Substrate → L2 Emergent → L3 Structural → L4 Deliberate).
- Define Substrate types (Capture / Stream / Reference) with provenance categories and acquisition disciplines.
- Define Emergent objects (Moment, Topic, Tag, Thread) and the re-derivation contract.
- Define the Emergent → Structural confirmation gate as load-bearing architectural commitment (Event / Person / Place / Organization).
- Define Insight (L4) and its Substrate-backed authoring contract.
- Articulate the three orthogonal axes (Persistence / Source / Confidence).
- Define equivalence-class clustering (`object-model.md` §6.7) — canonical-layer derivation, not pre-designed registry; preserve variants; queries answer across the class.
- Ratify the layer model via `project-management/adr-004-object-model-layer-ratification.md`.
- Register `docs/object-model.md` in `docs/file-registry.md`.
- Confirm object-model layer/object terms are propagated into `docs/glossary.md`, with layer entries pointing at ADR-004 (mirror at M6). Resolved at M6 close 29-05-2026.
- Confirm `docs/heuristics.md` `Derived` column carries appropriate layer refs for object-model-derived heuristics (mirror at M5). Cowork-side sweep confirmed 26-05-2026; full mirror confirmed on M2 close 29-05-2026.
- Manual content review pass on `docs/object-model.md` + `project-management/adr-004-object-model-layer-ratification.md` before close. (29-05-2026)
- ADR-004 open question (Insight L4 single-vs-multi-type) — revisit only if it surfaces in practice.
13 of 13 tasks done
M3
North Star
A long-lived, phase-independent set of strategic aspirations exists as the upstream reference for working-vision drafts and as the foreclosure test for "does this proposal close off something the long term needs?"
shipped
26-05-2026 · deferred cross-milestone mirror: vision-watchlist usage record valida…
North Star
A long-lived, phase-independent set of strategic aspirations exists as the upstream reference for working-vision drafts and as the foreclosure test for "does this proposal close off something the long term needs?"
shipped
26-05-2026 · deferred cross-milestone mirror: vision-watchlist usage record valida…
Done-when
docs/vision/north-star.mdexists and is read at session start.docs/vision/vision-watchlist.mdsibling exists and is scanned at phase transitions per/paradigm/phase-swap-protocol.md.- At least one decision cites the north-star as a foreclosure test (validates it as live, not ornamental).
Deliverables
docs/vision/north-star.mddocs/vision/vision-watchlist.md- session-start trigger in
CLAUDE.md
Tasks from
project-management/todo.md- Register `docs/vision/north-star.md` in `docs/file-registry.md` *before* content accumulates. (Was already registered; no add needed.) (26-05-2026)
- Decide the NS/FP/WV boundary — irreducibles / aspiration / phase-contract. Encoded in NS §What this is + §How this doc relates. (26-05-2026)
- Decide `docs/vision/north-star-interpretation.md`: deferred until external comms surface. Trigger to revive: first external Remoir comms. (26-05-2026)
- Decide north-star metric split: definition in `north-star.md`, tracked indicator in `docs/pm/north-star-metric.md` (M13 territory). (26-05-2026)
- Author `docs/vision/north-star.md` — settled-truth voice, no dates inline, no revision blocks. (26-05-2026)
- Author `docs/vision/vision-watchlist.md` as sibling doc per decision 5; register in `docs/file-registry.md`. (26-05-2026)
- Fold Arc 1 falsifiability claim into NS as a dedicated section; archive the source brief. (26-05-2026)
- Cross-reference data-architecture sections to ADR-004 — closed the loop in NS §Long-lived commitments — Data sovereignty. (26-05-2026)
- No-foreclosure sanity check against `/for-future/` (vision-watchlist, federated-ownership, cross-cell-discovery, trusted-circle-groupings, arc-1-falsifiability) — zero foreclosures detected. (26-05-2026)
- Add `## Vision foreclosure recheck` to `/paradigm/phase-swap-protocol.md` — the check now reconfirms at every phase swap. (26-05-2026)
- Verify working-vision-A1-PH2 references to north-star — general references, no specific section anchors; no reconciliation needed today (re-verify at M4 close).
- Manual content review pass by Freek on `docs/vision/north-star.md` + `docs/vision/vision-watchlist.md`. (26-05-2026 — ratified; one wording clarification applied to the §Moment paragraph.)
- M3 close. (26-05-2026)
- Mirror confirmations at M4 (working-vision north-star references) and M6 (glossary spot-check). Both verifications happened during north-star authoring on 26-05-2026 — working-vision refs are general and remain accurate; north-star introduced no new Remoir-specific terms requiring glossary additions.
14 of 14 tasks done
M4
Working Vision
A1-PH2 carries a phase-scoped working vision that is the operating contract for the phase — explicit commits, explicit non-commits, five falsifiable exit-gate claims with measurable thresholds.
shipped
29-05-2026 · dependency-claim re-verification resolved on close; the M8↔M9 interle…
Working Vision
A1-PH2 carries a phase-scoped working vision that is the operating contract for the phase — explicit commits, explicit non-commits, five falsifiable exit-gate claims with measurable thresholds.
shipped
29-05-2026 · dependency-claim re-verification resolved on close; the M8↔M9 interle…
Done-when
docs/vision/working-vision-A1-PH2.mdcarries: essence, what-this-is, milestone summary, in-phase contract (commits-to + does-not-commit-to), five exit-gate claims with falsifiable thresholds.- At least one out-of-scope idea has been parked to
/paradigm/maybelater.mdor/for-future/citing the working vision (validates as live). - The doc's milestone summary reconciles with
docs/milestones.mdslug-alias table (single source of truth on milestone names).
Deliverables
docs/vision/working-vision-A1-PH2.md- session-start trigger in
CLAUDE.md - cross-references in
STATUS.mdand/paradigm/staging/enrich/working-vision-A1-PH3.md
Tasks from
project-management/todo.md- Author `docs/vision/working-vision-A1-PH2.md` — essence, phase contract, milestones table, exit-gate criteria.
- Define the four falsifiable exit-gate claims (Coherence / Trust-loop / A1-PH3 readiness / Sustainability).
- Define the per-claim failure-handling protocol.
- Register `docs/vision/working-vision-A1-PH2.md` in `docs/file-registry.md`.
- Reconcile the milestones-table wording in working-vision with the canonical slug-alias table — resolved by the milestones.md carve (27-05-2026): working-vision now references `docs/milestones.md` as the single source.
- Re-verify the dependency claim ("M1–M7 feed M8; M8 gates M9–M12; M13 trails M1–M3; M14 closes") after M1 retroactive reopening. (29-05-2026: M1 reopening leaves "feed"/"trails" intact; the 29-05 vertical-slice reorder made "M8 gates M9–M12" inaccurate — sentence updated to the M8↔M9 interleave wording.)
- After M3 ships: confirm the working-vision's north-star references resolve cleanly (mirror at M3). Verified 26-05-2026 — refs are general (no section anchors) and remain accurate.
7 of 7 tasks done
M5
Heuristics Registry
Every operationalisable rule that derives from a first principle has a single canonical row in docs/heuristics.md with wording, status (settled · candidate · retired), Derived FP refs, and creation date.
shipped
26-05-2026 · deferred cross-milestone mirror: candidate-heuristic ratification res…
Heuristics Registry
Every operationalisable rule that derives from a first principle has a single canonical row in
docs/heuristics.md with wording, status (settled · candidate · retired), Derived FP refs, and creation date.shipped
26-05-2026 · deferred cross-milestone mirror: candidate-heuristic ratification res…
Done-when
docs/heuristics.mdis the single home — no settled heuristic survives outside it.- The four-partition grouping (Capture · Store · Enrich · Surface) plus Cross-cutting and Governance carries every settled rule.
- The lifecycle (candidate → settled → retired) is exercised at least once (validates the registry as living, not frozen).
Deliverables
docs/heuristics.mddocs/candidate-heuristics/companion directory + README- session-start trigger in
CLAUDE.md - Derived-FP cross-references from
docs/first-principles.md
Tasks from
project-management/todo.md- Seed `docs/principles.md` with M1 entries (FP1–FP6 + heuristics by slice + cross-cutting + governance). Subsequent milestones extend the heuristic set.
- Define schema: Code / Name / Status / Derived / Created / Source columns.
- Define status vocabulary: settled / candidate / retired.
- Define wording-vs-status precedence: manifesto wins on grouping/emphasis; registry wins on status/derivation/dates. *(Superseded 25-05-2026 by the two-term reorg — wording and status now live in the same row in `docs/heuristics.md`; precedence rule no longer needed.)*
- Propagate FP5 kernel rewrite into the FP5 row. (23-05-2026)
- Collapse heuristic wording into `docs/heuristics.md`; first principles live exclusively in `docs/first-principles.md`. Rename `docs/principles.md` → `docs/heuristics.md`. Two-term vocabulary adopted. (25-05-2026)
- Confirm closure of M2 propagation — object-model-derived heuristics carry correct `Derived` FP refs. (26-05-2026: Cowork-side sweep confirmed all 12 §Store + 4 §Enrich object-model rows have correct FP refs; full mirror confirmed on M2 close 29-05-2026.)
- M3 did not introduce new ratified heuristics — north-star references existing or candidate-via-brief heuristics only. (26-05-2026)
- M5 close at phase exit — `docs/heuristics.md` covers every named heuristic in active use; `Derived` column resolves cleanly back to FPs. (26-05-2026: Cowork-side sweep — all references in active foundational docs are covered, with one expected gap: *Non-destructive correction + per-field provenance* remains in its parked brief pending brief processing.)
- Consider whether a §Capture heuristic should explicitly close FP3's narcissism mode at the capture slice. (26-05-2026: Added *"Capture is not its own reward"* to §Capture — names what's foreclosed, complements the butler heuristic at the response side. Derived: FP3, FP6.)
- Process the `non-destructive-correction-and-provenance` brief: added *Non-destructive correction layer* + *Per-field provenance* as two separate §Store heuristics; brief archived. (26-05-2026)
11 of 11 tasks done
M6
Glossary
Every Remoir-specific term (concept, vocabulary axis, named role) resolves through docs/glossary.md to exactly one definition. No term has competing definitions across the corpus.
shipped
29-05-2026
Glossary
Every Remoir-specific term (concept, vocabulary axis, named role) resolves through
docs/glossary.md to exactly one definition. No term has competing definitions across the corpus.shipped
29-05-2026
Done-when
docs/glossary.mdcarries every load-bearing Remoir term — including the stratification-vocabulary section (Phase · Tier · Arc · Tranche · compositional axes).- Exit-gate Claim 1 cold-read test passes for glossary terms: 20 random terms, ≤2 fail the <30s resolution test.
- No term has been re-defined or rescoped in the last 7 days (stability gate).
Deliverables
docs/glossary.md- cross-references from foundational docs that introduce terms
Tasks from
project-management/todo.md- Seed `docs/glossary.md` with M1 vocabulary (cell, membrane, interior, identity, four-partition, five-step, registers, sovereignty tiers, stratification terms, compositional axes, object-model terms, document-role terms).
- Documentation-voice standard: authored `docs/process/documentation-voice.md` (one canonical actor per register), registered in file-registry. Swept agency drift — 6 conformance edits (object-model ×3, north-star, heuristics, fp6); "household" reduced to its FP1 ownership-unit + FP4 illustration senses only. Decision logged 29-05-2026. (29-05-2026)
- Documentation-voice — two flagged borderline metaphor usages (`paradigm/stratification.md:133` "household-keeping butler"; `project-management/project-narrative-A1-PH2.md:17` "the household's records"): Freek's call is keep both, intentional. (29-05-2026)
- Confirm closure of M2 propagation — every layer/object term used in `object-model.md` has a glossary entry; Object Layer entry now points at ADR-004 as layer-model source-of-truth per ADR-004 §Impact (mirror at M2). (29-05-2026)
- Documentation-voice — conform the inherited "the household keeps it" wording in `for-future/2026-05-21-canonical-concepts.md` when that brief is processed. Freek: don't touch the brief; pick up at brief-processing time (out of scope until then).
5 of 5 tasks done
M7
Theory entries
A theory directory exists with its rules and at least one entry, capturing principled connections between external readings (theory, philosophy, adjacent work) and Remoir's foundational commitments.
shipped
29-05-2026
Theory entries
A theory directory exists with its rules and at least one entry, capturing principled connections between external readings (theory, philosophy, adjacent work) and Remoir's foundational commitments.
shipped
29-05-2026
Done-when
docs/theory/README.mdexists with the rules, front-matter spec, and lifecycle.- At least one entry exists, validating the form.
- The lifecycle (create → review → retire-to-archive) is documented; first retirement may occur in a later phase.
Deliverables
docs/theory/README.md✓docs/theory/finite-infinite-games.md✓ (first entry — Carse, grounding the L2/L3 split and the enrichment + canonical-layer dynamic)- entry in
docs/file-registry.md✓ (pre-registered)
Tasks from
project-management/todo.md- `docs/theory/README.md` authored — adapted from archived PH1 README to PH2 conventions.
- First entry `docs/theory/finite-infinite-games.md` — Carse grounded onto the L2/L3 split + enrichment/canonical-layer dynamic; stress-tested against Bottéro, perdurantism, Hacking's looping effect, akitu; Hacking integrated onto the L1→…→L1 loop.
- Glossary completeness (theory terms) — nothing to add; entry uses external-thinker vocabulary, not Remoir-specific terms (would dilute glossary scope). (moved from M6 29-05)
- Theory-derived heuristics — candidates surfaced ("govern the loop"; "Person as interactive kind"); formal promotion to `docs/heuristics.md` deferred to a deliberate heuristic-introduction pass (own gate). Person question → `docs/object-model-open-questions.md`. (moved from M5 26-05)
4 of 4 tasks done
M8
Stack Evaluation
Each code-base component (capture-app, review-frontend, transcribe-worker, supabase schema) has a stack choice ratified via an ADR, with explicit alternatives-considered and chosen-because reasoning.
in flight
proposed → accepted / rejected / superseded
Stack Evaluation
Each code-base component (capture-app, review-frontend, transcribe-worker, supabase schema) has a stack choice ratified via an ADR, with explicit alternatives-considered and chosen-because reasoning.
in flight
proposed → accepted / rejected / supersededDone-when
- One ADR per code-base component covers: capture-app, review-frontend, transcribe-worker, supabase schema (plus any others discovered during evaluation).
- Each ADR cites the working-vision claim it supports + the FPs it honours.
- ADRs are linked from
docs/file-registry.mdandSTATUS.md's active-stack listing.
Deliverables
project-management/adr-006-*and onward — one per component- updates to
STATUS.md"Where work lives" listing
Tasks from
project-management/todo.md- Resolve spec open questions → spec Approved: one ADR per component; deferrals inline in `decisions.md`; partial closure acceptable; adopt `proposed`→`accepted`/`rejected`/`superseded` lifecycle. (29-05-2026)
- Record the ADR status lifecycle as a project-wide convention in the `docs/file-registry.md` adr rule. (29-05-2026)
- ADR-007 (review surface) authored as `proposed` — calibration for the proposed-ADR shape. (29-05-2026)
- ADR-008 (transcription pipeline) authored as `proposed`. (29-05-2026)
- ADR-009 (data storage) authored as `proposed`. (29-05-2026)
- ADR-010 (enrichment component) authored as `proposed`. (29-05-2026)
- Flip each proposed ADR (007–010) to `accepted` as the M9 vertical-slice spike validates it; supersede or defer otherwise (deferral entry inline in `decisions.md`).
- On each accept: link the ADR from `STATUS.md` active-stack listing.
- Stress-test the object-model four-layer + confirmation-gate against the schema work this milestone produces; record amendments inline in `docs/object-model.md` or as a superseding ADR (moved from M2).
- Extend `docs/heuristics.md` with stack-evaluation-derived heuristics as ADRs conclude (moved from M5 26-05-2026).
- Glossary completeness — check every Remoir-specific stack-evaluation term is present in `docs/glossary.md`; add missing entries (moved from M6 29-05-2026).
6 of 11 tasks done
M9
Capture Surface
Audio capture lands in L1 substrate reliably via **Apple-native capture (Voice Memos / action button) + an async ingest path** (ADR-006) — no capture client built, no other channels, no production hardening. Executed as the entry stage of the Capture→Enrich→Review vertical-slice spike.
in flight
ingest-worker
Capture Surface
Audio capture lands in L1 substrate reliably via **Apple-native capture (Voice Memos / action button) + an async ingest path** (ADR-006) — no capture client built, no other channels, no production hardening. Executed as the entry stage of the Capture→Enrich→Review vertical-slice spike.
in flight
ingest-workerDone-when
- Ingest transport resolved (ADR-006 open question) and an ingest endpoint stands up; recordings land in L1 exactly once with full
deviceprovenance. - Reliability test passes: airplane-mode capture → backgrounded phone → reconnect → zero loss, zero duplicates (Spike A).
- Working-vision Claim 2 (trust-loop reliability) tracking begins via
project-management/metrics.md.
Deliverables
- ingest component (transport per ADR-006; registered in
docs/file-registry.mdon first content) - ingest endpoint + provenance capture
- Spike A reliability test record
- entry in
STATUS.mdactive-stack listing
Tasks from
project-management/todo.md- Resolve the ingest transport — **Action-button record+upload** (iOS Shortcut records → POSTs to `/ingest`); save-local-first + Drain is the reliability layer. (29-05-2026)
- Stand up the ingest endpoint (`ingest-worker`, deployed `ingest.remoir.app`); recordings land in L1 exactly once via `client_id` idempotency, with `device`-category provenance. Verified with a real capture. (29-05-2026)
- Reliability test: airplane-mode capture → background phone → reconnect → confirm zero loss, zero duplicates. (Server-side exactly-once proven via double-POST; full device airplane test still pending.)
- **Next-session priority (31-05-2026 Freek):** work through Capture / Shortcuts offline-capture issues Freek identified in real use. Specifics to be spelled out next session; the airplane-mode test above is the structured probe but real-use friction may surface additional edge cases.
- Register the ingest component (`ingest-worker/`, `lib/store/`) in `docs/file-registry.md`. (29-05-2026)
- Wire ingest → transcribe-worker (CF Workers AI Whisper `@cf/openai/whisper-large-v3-turbo`); transcript lands as L1 with per-field transcription provenance (confidence, source model) — FP2. Verified: real Dutch memo → `nl` @ 0.998, no misfire, linked transcript row. ADR-008 accepted. (29-05-2026)
- Minimal Supabase schema behind the portable storage contract: L1 substrate (immutable, append-only) + L2 emergent (re-derivable) + confirmation/correction acts as L1. Forward-designed `source_type` discriminator; only `audio` rows created. (`0001`+`0002`, `lib/store/`; L1 writes verified — L2/confirmation path exercised in Phase 3.) (29-05-2026)
- Build the enrichment Worker (Sonnet): from a transcript, emit candidate tags, topics, a Moment + narrative, and candidate entities (Person/Place/Event/Org as L2 candidates awaiting the confirmation gate). **Deployed + live at `enrich.remoir.app` (`claude-sonnet-4-6`, 3 secrets set); runtime-verified 30-05-2026 — `scripts/spike-b-verify.sh` PASS (POST #1 wrote 7 L2 candidates, POST #2 idempotent-skip). Fix on deploy: removed extended `thinking` (the Messages API rejects it under forced `tool_choice`).**
- Fast path — new-capture enrichment resolves against already-confirmed entities (attach to confirmed "Sarah", do not mint a fresh candidate). **Wired: confirmed entities passed into the prompt; resolution active the moment the review surface confirms any. Idempotent per transcript (`hasEnrichmentFor`).**
- Slow path — define what triggers a refinement pass, its blast radius (which emergent objects it may reshape), and that it reads confirmation acts as immutable anchors. (Deferred — only observable across the convergence window.) Register the enrichment Worker in `docs/file-registry.md`. **(registry done.)**
- Process the two 29-05 briefs; reconcile; author ADR-011 + decision log + amend ADR-008/009/010. (30-05-2026, docs-first; this commit.)
- Schema migration `0003`: L2 carries the transcript (`l2_emergent` gains `kind=transcript` + a text/provenance carrier); L1 raw-only (`record_type` = `capture` | `annotation`; migrate the one existing transcript row L1→L2). Read `supabase/migrations/README.md` first.
- `lib/store`: `appendTranscript`/`getTranscript(s)` target L2; add the L4 `annotation`→L1 write; stop writing `record_type=transcript` to L1.
- `transcribe-worker`: write transcript to L2 (FK to L1 audio + provenance), not L1; re-verify capture→transcribe.
- `enrich-worker`: read the transcript from L2; re-run `spike-b-verify` (adjust for the L2 transcript source).
- `review-frontend`: re-scope to Loop 1 — read L2 + free-text annotate (→ L1 act); drop the confirm/promote gate (moves to Loop 2). Deploy behind CF Access.
- **Iterate on the Option B mock** (`review-frontend/mocks/option-b.html`) — Freek's read (31-05): not yet final. The "tag → topic → moment → Structural" promotion framing that informed the mock's zones feels too narrow and pre-AI. Re-think how **emergence (or abduction)** actually works through LLM enrichment — touches the object-model definition of L2 emergence and how the Surface communicates it. Foundational, not just UI; potentially loops back to `docs/object-model.md` §L2 wording.
- Entity-linking pass surfaces L3 structural candidates (Person/Event/Place/Org), provisional until a deliberate act.
- Review surface gains the L2→L3 confirm/promote gate (the confirm/reject/correct build already written, commit `6d61e7d`) + structural-candidate rendering.
- Scaffold `review-frontend/` (Worker + static assets, `wrangler.jsonc` custom domain `review.remoir.app`); set `SUPABASE_SERVICE_KEY` secret + `SUPABASE_URL` var.
- `lib/store`: add the one batched read helper needed for the queue (e.g. `getTranscripts(ids)`); reuse `listCandidates` + `recordConfirmationAct` as-is.
- API: `GET /api/queue` (pending captures = transcripts with `candidate` L2, grouped by kind, with transcript text + confidence + provenance) and `POST /api/act` (`{target_l2_id, decision, correction_text?}` → `recordConfirmationAct`).
- Frontend: single server-rendered page + vanilla JS — pull-only list → select capture → transcript + grouped candidates each with Confirm/Reject + Correct field, confidence + provenance shown. No counts/notifications/streaks (FP6).
- CF Access app for the `review.remoir.app` host, Frederic-only (Freek — dashboard step, mirrors the existing `dashboard` app).
- Deploy + verify end-to-end: confirm an entity on the spike capture → L2 status flips to `confirmed` + new L1 `confirmation` act with `confirmed_by_l1`; a fresh capture's enrichment then resolves against the confirmed entity (fast path) instead of minting a duplicate.
- Docs on close: register `review-frontend/` in `docs/file-registry.md`; flip ADR-007 → `accepted` (answers its three "what flips this" questions) + record the Worker-hosting deviation; update STATUS + M10.
- Fast-path criterion: new captures resolve to confirmed entities rather than re-spawning candidates.
- Slow-path criterion: when refinement fires, 100% of confirmed entities persist; refinement improves only the unconfirmed layer; the user does not re-litigate settled structure.
- Payoff criterion: corrections trend down across the window as confirmed anchors accumulate.
- Record findings (does the loop converge?) → inform the remaining M8 ADRs (review, transcription, storage, enrichment-component) and working-vision Claim 2 tracking.
8 of 30 tasks done
M10
Review Surface
A clean review-frontend at review.remoir.app renders the spike's **minimal L2 output** for a capture (transcript + candidate entities/tags, with provenance/confidence) and offers the lightest feedback affordances: **confirm a candidate** (the L2→L3 gate, writing an L1 confirmation act) or **free-text correct** it (writing an L1 correction act). Each act is re-read by the next enrichment run. It is the human half of the two-speed loop.
todo
proposed
Review Surface
A clean review-frontend at
review.remoir.app renders the spike's **minimal L2 output** for a capture (transcript + candidate entities/tags, with provenance/confidence) and offers the lightest feedback affordances: **confirm a candidate** (the L2→L3 gate, writing an L1 confirmation act) or **free-text correct** it (writing an L1 correction act). Each act is re-read by the next enrichment run. It is the human half of the two-speed loop.todo
proposed
Done-when
- Review-frontend deploys to
review.remoir.app(Cloudflare Pages, thewebsite/lens pattern; CF-Access-gated). - It renders one capture's transcript + candidate entities/tags with provenance/confidence.
- Confirm and free-text-correct each write an L1 act the next enrichment pass re-reads; at least one candidate confirmed (L2→L3) and one corrected, end-to-end.
- Pull-only — no notifications, streaks, or counts (FP6 butler discipline).
- Out of scope: knowledge-graph display, entity merge/disambiguation UI, L4 Insight authoring.
Deliverables
review-frontend/codebase (server-rendered + Pages Functions, ADR-007)- Wrangler / Pages deployment configuration
- confirm/reject/correct flow writing L1 acts, citing
docs/object-model.md§3.4/§11 + ADR-007 - entry in
STATUS.mdactive-stack listing
Tasks from
project-management/todo.md- No tasks recorded yet.
M11
Transcription Pipeline
Voice memos transcribe automatically into raw-data text representations via a Cloudflare Worker, making voice captures equivalent surfaces for review and downstream enrichment.
todo
nl @ 0.998, no language misfire
Transcription Pipeline
Voice memos transcribe automatically into raw-data text representations via a Cloudflare Worker, making voice captures equivalent surfaces for review and downstream enrichment.
todo
nl @ 0.998, no language misfireDone-when
- Transcribe-worker deploys to
transcribe.remoir.appusing Cloudflare Workers AI (@cf/openai/whisper-large-v3-turboor M8-ratified equivalent). - Voice memos captured via the capture-app trigger transcription and a text record lands in the raw-data table.
- Transcription provenance (confidence, source model) is captured per-field rather than presented as ground truth (FP2 honored).
Deliverables
transcribe-worker/codebase- Wrangler deployment configuration
- raw-data schema fields for transcription provenance
- entry in
STATUS.mdactive-stack listing
Tasks from
project-management/todo.md- No tasks recorded yet.
M12
Data Storage
The data-storage schema — a lean substrate core behind a **portable storage contract** (an abstraction over Supabase, not Supabase-specific logic), with a **forward-designed** source_type discriminator (audio, calendar_event, reference, stream) holding the other capture types in empty slots — is in place on the M8-ratified stack, with no migration debt and no schema concessions to the PH1 prototype shape. Only audio rows are created this phase.
todo
0001 substrate + 0002 grants/exposure
Data Storage
The data-storage schema — a lean substrate core behind a **portable storage contract** (an abstraction over Supabase, not Supabase-specific logic), with a **forward-designed**
source_type discriminator (audio, calendar_event, reference, stream) holding the other capture types in empty slots — is in place on the M8-ratified stack, with no migration debt and no schema concessions to the PH1 prototype shape. Only audio rows are created this phase.todo
0001 substrate + 0002 grants/exposureDone-when
supabase/migrations/carries numbered SQL migrations implementing the canonical schema.- Capture-app writes (M9) land in the schema cleanly — integration verified end-to-end.
- Schema documented inline in migrations or in a
docs/reference. - Zero "TODO: refactor" notes on any schema field.
Deliverables
supabase/migrations/0001_*.sqland onward- schema documentation
- integration verification with M9 capture flow
- entry in
STATUS.mdactive-stack listing
Tasks from
project-management/todo.md- Schema-seam dry-run for curated external input. Prove that curated input produced by the on-device interpretation pipeline (iOS-Shortcuts + local-model clustering — see `/for-future/2026-05-20-local-capture-curation-pipeline.md`) lands cleanly into Supabase in L1-substrate shape and surfaces through the A1-PH2 enrichment loop as if it were a native capture. Operationally stress-tests FP1's no-foreclosure seam against real curated output without building the VPS — if baked-in schema assumptions prevent clean ingestion, surfaces at exit gate rather than mid-A1-PH3. Source: `archive/cowork-briefs/2026-05/cowork-brief-2026-05-27-fp1-a3-crypto-gate.md` Item 4. Informs M14 Claim 3 (architectural readiness for A1-PH3); the question of whether it becomes a fifth exit-gate claim is parked in `project-management/friction-log.md`. (27-05-2026)
0 of 1 tasks done
M13
PM Content
The PM scaffolding (north-star metric, strategy, JTBD, OST, OKRs, spec template, metrics, milestones) is authored with substantive content, sized for solo-founder operation, and used as live decision-support rather than display artifact.
shipped
the milestones.md carve advances M13
PM Content
The PM scaffolding (north-star metric, strategy, JTBD, OST, OKRs, spec template, metrics, milestones) is authored with substantive content, sized for solo-founder operation, and used as live decision-support rather than display artifact.
shipped
the milestones.md carve advances M13
Done-when
docs/pm/carries: north-star metric, strategy, JTBD, OST, spec template, metrics.project-management/okrs-A1-PH2.mdcarries OKRs mapped onto the exit-gate claims.docs/milestones.md(this file) carries the slug-alias table + per-milestone outcomes.- Each artifact has been cited or updated in at least one decision (validates as live).
- Weekly metrics row added at least three weeks consecutively (validates the metric is being tracked, not just defined).
Deliverables
docs/pm/north-star-metric.mddocs/pm/strategy.md,docs/pm/jtbd.md,docs/pm/ost.mdproject-management/okrs-A1-PH2.mddocs/pm/spec-template.md,docs/pm/metrics.mddocs/milestones.md(this file)
Tasks from
project-management/todo.md- Carve `/paradigm/stratification.md` → grammar only; create `docs/milestones.md` as phase-current registry + outcomes. Move §Phase outlines, §A1 phase decomposition, §Slug-alias table, §Retired slugs verbatim. Update `extractAllPhases()` regex (H3 → H2) and `extractMilestones()` source path in `website/build/sync.js`. Lens renders unchanged. (27-05-2026)
- Author M1..M14 outcome / why-it-matters / done-when / deliverables / status entries in `docs/milestones.md` §Per-milestone outcomes. 7-day stability gate on foundational-doc milestones (M1, M2, M6). M14 references the four exit-gate claims verbatim. (27-05-2026)
- Propagate references across `CLAUDE.md`, `STATUS.md`, `docs/file-registry.md`, `docs/vision/working-vision-A1-PH2.md`, `docs/process/update-triggers.md`, `/paradigm/digital-cell-vision.md`, `/paradigm/phase-swap-protocol.md`, `project-management/todo.md`, `website/CONTENT-MAP.md`, `website/README.md`. (27-05-2026)
3 of 3 tasks done
M14
Exit Gate
A1-PH2 closes by scoring the five falsifiable claims in the working vision against measurable evidence; the A1-PH3 working-vision v0 is drafted as part of the gate and cites A1-PH2 docs only as inputs (never as "to be refactored").
todo
Exit Gate
A1-PH2 closes by scoring the five falsifiable claims in the working vision against measurable evidence; the A1-PH3 working-vision v0 is drafted as part of the gate and cites A1-PH2 docs only as inputs (never as "to be refactored").
todo
Done-when
- All five claims scored against their pass-thresholds per
docs/vision/working-vision-A1-PH2.md§Exit gate:
Deliverables
- exit-gate scoring entry in
project-management/decisions.md docs/vision/working-vision-A1-PH3.mdv0- phase-swap trigger brief in
New instructions/ STATUS.mdupdated to reflect phase closure
Tasks from
project-management/todo.md- No tasks recorded yet.
For-future briefs
Next phase (A1-PH3 — Enrichment) ▾
2026-05-21
Generalising m3's enrichment-over-raw AI parsing pattern for thorough mode.
→
parked-from:A1-PH1concerns:A1-PH3
The thing
AI Parsing (thorough) as a candidate milestone for A1-PH3 (Build-out):
2026-05-21
Daily Audit Log specification carry-through.
→
parked-from:A1-PH1concerns:A1-PH3
Context
`docs/audit-log-spec.md` at PH1 root is the v1.0 spec for the Daily Audit Log surface. The Audit Log implements the *"Audit transparency as a sovereignty primitive"* Candidate principle (in `docs/heuristics.md` Candidate section) — visibility into what the system has captured and processed is structural proof the user owns their digital cell. The spec was authored 14-05-2026 against PH1's m2b tasks 13–17, with m2c-dependent items revisited at m2c close.
2026-05-20
Local-side curation pipeline between capture and substrate; on-device cull, laptop interpretation; respects FP3 friction.
→
2026-05-20
User-owned VPS as a processing node inside the cell — an extension of structural cell sovereignty.
→
parked-from:A1-PH1concerns:A1-PH3
The thing
Joining the Remoir platform provisions a private virtual server — owned by, paid for by, and accessible only to the user — that is architecturally part of the user's cell, not part of Remoir's infrastructure. The VPS is where the user's processing happens: clustering models, narrative assembly, photo↔voice-memo linking, sync orchestration. Remoir defines the interface/contract ("send your curated narrative as Raw Input") and receives the result. Platform-as-a-service, with the private VPS integrated into the Remoir signup/setup flow itself — making Remoir a platform more than an app.
Trusted-circle groupings ▾
2026-05-21
Groupings (families, friends, professional circles) — the first-class grouping concept A2 needs as its entry wedge.
→
parked-from:A1-PH1concerns:trusted-circle groupings
From the brief
Phase 3 generalises the access model from "the app belongs to one family" to "the app belongs to many kinds of groups". This brief is conceptual with a small concrete schema seed. It picks up the `family_group` table that originally lived in `canonical-schema-brief.md` Section 8.1 and reframes it as the v1 instance of a broader idea.
Cross-cell discovery ▾
2026-05-21
Cross-cell discovery surface and schema (discovery + shared_memory tables); privacy by default, consent-gated.
→
parked-from:A1-PH1concerns:cross-cell discovery
From the brief
Phase 4 turns the canonical layer into a discovery surface: when two groupings have memories mapped to the same canonical entity, the platform notices and (with consent) lets them connect. This brief is the schema-level home for the `discovery` and `shared_memory` tables that originally lived in `canonical-schema-brief.md` Section 8 (Sections 8.2 and 8.3 in the post-reconciliation numbering). The conceptual framing for cross-family discovery lives in `canonical-concepts-brief.md` Section 5; this brief assumes that material as background.
Canonical layer ▾
2026-05-21
Canonical Layer concept brief — origins from Huizinga/Carse; defines what canonical means and the canonical-vs-raw distinction.
→
parked-from:A1-PH1concerns:canonical layer
From the brief
This document captures the conceptual design of the canonical layer — the shared, universal data layer that sits beneath individual families' private memories. It draws on two intellectual frameworks:
2026-05-21
Canonical resolution matcher and admin queue — how raw captures map to canonical entities at capture time.
→
parked-from:A1-PH1concerns:canonical layer
From the brief
This brief is one of three sibling documents that together specify Phase 2:
2026-05-21
Canonical schema table definitions: threads, arenas, deepened tags, cross-family discovery.
→
parked-from:A1-PH1concerns:canonical layer
From the brief
This document translates the conceptual frameworks in `canonical-concepts-brief.md` into concrete table schemas. It is **provisional** — a design reference, not an implementation spec. The schemas will be refined as Phase 1 stabilizes and Phase 2 work begins.
Editorial knowledge layer ▾
2026-05-21
Editorial knowledge layer — community-attested facts layered over canonical entities; family-memory-wins on conflict.
→
parked-from:A1-PH1concerns:editorial knowledge layer
From the brief
This brief is conceptual, not schema-level. Phase 5 is far enough out that table shapes would be premature — the requirements are still moving and the scale precondition has not been met. The point of this document is to fix the *vocabulary*, the *principles*, and the *boundaries* of the editorial knowledge layer so that decisions made during Phases 1 through 4 don't accidentally close the door on it.
Federated ownership ▾
2026-05-21
Federated ownership, capped returns, golden-share veto — structural anti-enshittification spine for A5.
→
parked-from:A1-PH1concerns:federated ownership
From the brief
This is a **far-future, idea-park brief**. Phase 6 should only surface once the app has:
Cross-arc ▾
2026-05-30
Cross-language enrichment and the canonical layer
→
parked-from:A1-PH2concerns:cross-arc
The thing
A1+'s canonical layer (object-model L3) is the structural pin: "Boet" is *this person*, "Sarah" is *that person*, regardless of how any individual transcript happened to render them. Source-language pinning at L2 makes today's spike convergence measurable — but it punts the deeper problem to the canonical layer:
2026-05-29
A provisional plate model — stratification above the object layers
→
parked-from:A1-PH2concerns:cross-arc
The thing
A candidate stratification that introduces plates above the object layers. The current model has four layers inside one cell. The provisional idea: the layers sit *inside plates*, and the plate is the higher-order unit. Across arcs, the layer model within each plate may carry different layer numbers and a different internal structure than A1's L1–L4.
Why parked
The plate model has no referent in A1. With a single cell, there is no Negotiation plate (no second cell to negotiate with), and the four-layer model is complete and sufficient for everything A1 needs. The plate restructure becomes relevant only when multi-cell architecture opens — the same trigger as the L5 brief.
2026-05-28
Knowledge graph — design considerations for the building phase
→
The thing
The knowledge graph is Remoir’s confirmed structural backbone. Working definition (now in `docs/glossary.md`):
2026-05-27
Layer 5 — the inter-cell tension layer
→
parked-from:A1-PH2concerns:cross-arc
The thing
A candidate fifth layer in the object model. The current four layers all live *inside a single cell*:
Why parked
L5 has no referent in A1 (Self-Contained Cell). There is no "between cells" when there is only one cell — incompatible-frame contestation is internal to a single user's view, and the existing object model already handles that (`docs/object-model-open-questions.md`, "Multi-cell contestation of social membership"). L5 becomes necessary *the moment multi-cell architecture exists* — the trigger is the first arc where two cells hold potentially incompatible L4 deliberate acts about the same substrate and the system is asked to surface, rather than merely store, the tension between them.
2026-05-20
Calendar enrichment for capture context (pre-event venue, attendees) stored as user-owned captures, not platform-side enrichment.
→
parked-from:A1-PH1concerns:cross-arc
The thing
Re-confirmed and re-parked at A1-PH2 (28-05-2026). The Foundation infrastructure-rebuild scoping deliberately deferred calendar integration. It is technically cheap (~200 lines: OAuth, token refresh, two API calls — and PH1 already built the OAuth foundation) but architecturally premature: it loads enrichment with external ground truth, which is A1-PH3+ enrichment-design territory. Pulling it into Foundation would smuggle enrichment design into a phase whose job is proving the audio capture → store → enrich → review loop on a clean stack. The A1-PH2 forward-designed storage schema already reserves the `calendar_event` slot in its `source_type` discriminator, so a future phase populates an existing slot rather than re-solving the capture-schema question. See `project-management/decisions.md` (28-05-2026, A1-PH2 rebuild scope).
2026-05-20
Activation-based monetization on the canonical layer; anti-surveillance; gated at scale-phase (A4+).
→
parked-from:A1-PH1concerns:cross-arc
The thing
A monetization model for the canonical layer (shared collaborative substrate of world-data + person-data) that enables commercial third-party activity for enriching that layer, while preserving the layer as commons and structurally preventing the failure modes of Google/Facebook (surveillance economics) and LinkedIn (proprietary person-data extraction).
2026-05-20
Capture surface beyond iPhone (Mac-as-puller-hub for other sources); Raw-Input vs Moment-enrichment separation.
→
parked-from:A1-PH1concerns:cross-arc
Context
Surfaced 08-05-2026 in a brainstorm on expanding Remoir's raw data capture beyond the live Capture App. Original framing: *"capture everything now, make sense of it later"* via a Mac-as-automation-hub pipeline that nightly pulls all timestamped digital activity into Supabase. Three pieces of substance survived re-examination after the membrane principle hardened in subsequent brainstorms (10-05 sovereignty framing, 17-05 four-layer object model, 20-05 local-capture pipeline): the 12-source inventory itself, the Mac-as-puller-hub architecture for non-iPhone-native sources, and storage tiering for high-volume telemetry. The original "everything flows into `raw_inputs`" assumption was partially superseded by the 12-05-2026 Moment-as-anchor directional decision (inlined below).
2026-05-20
External Data Management as a first-class convergence layer for fuzzy capture-time resolution.
→
parked-from:A1-PH1concerns:cross-arc
The thing
External reference data — fraternity rosters, alumni lists, conference attendee lists, member directories — treated not as ad-hoc lookup tables but as a first-class feature of Remoir.
2026-05-20
Memory Tree borrowables via Substrate audit-row lifecycle + chunking discipline.
→
parked-from:A1-PH1concerns:cross-arc
The thing
Two borrowable mechanics from Memory Tree's per-row pipeline.
2026-05-20
Sensitive-capture architecture fork: Supabase-with-user-held-keys vs cloud-bypass.
→
parked-from:A1-PH1concerns:cross-arc
The thing
When sensitive-mode is first implemented, a new ADR is required to decide between two architectural paths for sensitive captures: