Log

Density-honest timeline

16 events · all log types
May2026
30-05 Built the enrichment Worker (enrich-worker/, claude-sonnet-4-6): POST /enrich reads a transcript + confirmed entities via lib/store and writes shallow L2 candidates (tags/topics/entities/Moment/narrative), each a candidate (FP2), derived_from the transcript. Fast path wired (confirmed entities passed to the model); slow path deferred. Idempotent per transcript via a new lib/store hasEnrichmentFor. Typechecks + bundles; NOT deployed (remote container has no Cloudflare auth/secrets and egress 403s api.cloudflare.com). Added scripts/spike-b-verify.sh. Registered "loop" as the data-flow-segment vocabulary in stratification (dropped the "leg" coinage); fixed a stale STATUS clause that read enrichment as A1-PH3. Multi-device coordination: .gitattributes merge=union on the append logs (verified clean concurrent-merge), active-work.md session ledger, CLAUDE.md §Multi-device workflow + ledger session-start/wrap hooks.
30-05 Reconciled the milestone descriptions to the working-vision loop commitment and locked the M9 spike's L2 scope to the minimal-dynamic cut: enrichment produces shallow per-capture emergent structure (transcript + candidate entities/tags); review renders it + confirm (L2→L3, L1 act) / free-text correct (L1 act); excluded cross-corpus clustering, knowledge-graph display, entity merge/disambiguation UI, L4 Insight (all A1-PH3). Added enrichment convergence as exit-gate Claim 5 (Freek's call), propagating four→five across WV/milestones/STATUS/okrs. Boundary rationale: transcript-only de-risks nothing; the spike's claim is to de-risk two-speed convergence, which needs confirmable structure — the thin/engine seam is cross-capture intelligence + rich UI, not entities.
30-05 Processed the two 29-05 New-instructions briefs (handoff-L1-L2-L3-L4-dynamic, session-brief-l1-l4-spike). They flagged transcript-in-L1 as a contract violation. Reconciled toward the briefs (Freek's call): L1 becomes raw-only — transcript and all derived artifacts (tags/entity-links/narrative) live in L2; L4 annotation acts land as raw L1. This realigns the implementation with the already-ratified object model (ADR-004: L1 = "no semantic meaning yet"; enrichments are a separate linked layer) — ADR-008 had drifted by placing the transcript in L1. Authored ADR-011 (accepted) superseding ADR-008's layer placement (mechanism preserved) and amending ADR-009/010. Keep the existing l2_emergent table (evolve it, add kind=transcript) rather than the briefs' parallel flat pass_type table (Freek's call; FP5 — don't redesign before strain). Build in two loops: Loop 1 = capture→L1→L2→review (free-text annotate, no promotion); Loop 2 = adds L3 structural candidates + the L2→L3 confirm gate. The review-frontend already built (confirm/promote) becomes Loop 2; re-scoped to Loop 1 first. Code refactor (transcribe→L2, enrich read L2, store, schema migration, review re-scope) follows this docs-first landing.
30-05 Locked the M9 Capture→Enrich→Review spike's L2 scope (the minimal-dynamic cut) and added enrichment convergence as a fifth exit-gate claim. Enrichment produces shallow per-capture emergent structure (transcript + candidate entities/tags); the review surface renders it and offers confirm (L2→L3 gate, L1 act) + free-text correct (L1 act). Excluded as A1-PH3: cross-corpus clustering, knowledge-graph display, entity merge/disambiguation UI, L4 Insight authoring. Convergence (fast-path resolution to confirmed entities; 100% confirmed-entity persistence under slow-path refinement; corrections-per-capture trend down) becomes working-vision Claim 5, scored at M14. Propagated four→five across WV, milestones, STATUS, okrs (+ KR2.4); ADR-007/010 tightened; friction-log 5th-claim question re-tagged as a possible sixth.
30-05 ADR-004 Object-model layer ratification
30-05 ADR-006 Capture surface: Apple-native capture + async ingest
30-05 ADR-007 Review surface: lightweight Cloudflare Pages confirm/correct surface
30-05 ADR-008 Transcription pipeline: Cloudflare Worker + Workers AI Whisper
30-05 ADR-009 Data storage: Supabase behind a portable storage contract
30-05 ADR-010 Enrichment: Cloudflare Worker calling Claude (Sonnet), two-speed
30-05 ADR-011 L1 is raw-only; all derived artifacts live in L2; two-loop enrichment staging
29-05 Processed cowork-brief-2026-05-29-founded-input-gate + merged its chat-archive entry. Landed the founded-input gate as a sharpening of the Reference type in docs/object-model.md §3.4 (Founding constraint): L1 Substrate is capture-only; external reference enters L1 only when bound to a moment of actual engagement (a Capture or deliberate annotation); unanchored bulk reference stays in external storage outside the cell. Decision logged; materialization-cost discipline parked cross-arc in maybelater. Contract/doc-only — no code or schema (A1-PH2 already creates only audio rows, reserves the reference slot).
29-05 Built + deployed Phase 1 (ingest) and Phase 2 (transcription) of the M9 Capture→Enrich→Review vertical-slice spike, and verified the leg end-to-end with a real Action-button voice memo. New: cell schema (0001 substrate + 0002 grants/exposure), lib/store portable contract, ingest-worker (ingest.remoir.app), transcribe-worker rebuilt (transcribe.remoir.app). A real Dutch memo flowed Shortcut → ingest (L1 capture, exactly-once via client_id) → Whisper → linked L1 transcript (nl @ 0.998, no Icelandic misfire). ADR-008 flipped to accepted. ADR-006 Active; ADR-009 partially validated (L1 immutability + portable contract + exactly-once); ADR-007/010 still proposed. Three deploy-time bugs found + fixed. Next: Phase 3 enrichment.
29-05 Session-start inbox sweep cleared both pending files in New instructions/. (1) Merged chat-archive-entry-2026-05-27-cms-build.md into chat-archive/2026-05.md under a new ## 2026-05-27 day section (source ~HH:MM stamps preserved as retroactive timestamps); archived to archive/chat-archive-entries/2026-05/. (2) Processed cms-brief-2026-05-27-e99f: its full-file replacement was unsafe (stale base cdccf2fe predating the 29-05 documentation-voice sweep — would have reverted M6 work). Salvaged the real change surgically: refined the §Surface butler heuristic wording ("responsive, but not suggestive; keenly anticipative, but never anticipatory") and renamed it "The traditional English butler is the interaction model" (fixed the brief's "tradition" typo), syncing the restatement at fp6-system-serves.md:58. Decision logged in decisions.md. Brief archived to archive/cms-briefs/2026-05/. Inbox now empty.
29-05 M8 started. spec-stack-eval.md Draft→Approved with execution-time open questions resolved (one ADR per component; deferrals inline in decisions.md; partial closure acceptable; adopt Nygard proposed→accepted/rejected/superseded ADR lifecycle, recorded in the file-registry adr rule). Component set expanded 4→5 (added enrichment, the Worker-calling-Claude piece from the 29-05 reorder). Authored the four remaining component ADRs as proposed via the calibration-then-clone rhythm: ADR-007 review-surface (calibration, shape approved by Freek), then ADR-008 transcription, ADR-009 storage, ADR-010 enrichment cloned to the same shape. All four flip to accepted as the M9 vertical-slice spike validates each. Also fixed the M6 Lens display (carried [ ] task → [~] so the Lens reads it as done-for-status).
29-05 M4 closed on Freek's call. Last open item was the dependency-claim re-verification after M1's retroactive reopening. Re-verification finding: M1's reopening leaves "feed"/"trails" intact; the 29-05 vertical-slice reorder is what made "M8 gates M9–M12" inaccurate (M9 spike now informs the outstanding M8 ADRs). Updated the working-vision dependency sentence to the M8↔M9 interleave wording. No stability gate (phase-scoped doc) and no manual-review gate; other done-when met.
projectlog
decision
ADR
lesson
friction

Decisions

last 20
30-05-2026 Processed the two 29-05 New-instructions briefs (handoff-L1-L2-L3-L4-dynamic, session-brief-l1-l4-spike). They flagged transcript-in-L1 as a contract violation. Reconciled toward the briefs (Freek's call): L1 becomes raw-only — transcript and all derived artifacts (tags/entity-links/narrative) live in L2; L4 annotation acts land as raw L1. This realigns the implementation with the already-ratified object model (ADR-004: L1 = "no semantic meaning yet"; enrichments are a separate linked layer) — ADR-008 had drifted by placing the transcript in L1. Authored ADR-011 (accepted) superseding ADR-008's layer placement (mechanism preserved) and amending ADR-009/010. Keep the existing l2_emergent table (evolve it, add kind=transcript) rather than the briefs' parallel flat pass_type table (Freek's call; FP5 — don't redesign before strain). Build in two loops: Loop 1 = capture→L1→L2→review (free-text annotate, no promotion); Loop 2 = adds L3 structural candidates + the L2→L3 confirm gate. The review-frontend already built (confirm/promote) becomes Loop 2; re-scoped to Loop 1 first. Code refactor (transcribe→L2, enrich read L2, store, schema migration, review re-scope) follows this docs-first landing. architecture 30-05-2026 Locked the M9 Capture→Enrich→Review spike's L2 scope (the minimal-dynamic cut) and added enrichment convergence as a fifth exit-gate claim. Enrichment produces shallow per-capture emergent structure (transcript + candidate entities/tags); the review surface renders it and offers confirm (L2→L3 gate, L1 act) + free-text correct (L1 act). Excluded as A1-PH3: cross-corpus clustering, knowledge-graph display, entity merge/disambiguation UI, L4 Insight authoring. Convergence (fast-path resolution to confirmed entities; 100% confirmed-entity persistence under slow-path refinement; corrections-per-capture trend down) becomes working-vision Claim 5, scored at M14. Propagated four→five across WV, milestones, STATUS, okrs (+ KR2.4); ADR-007/010 tightened; friction-log 5th-claim question re-tagged as a possible sixth. scope 29-05-2026 Processed cowork-brief-2026-05-29-founded-input-gate. L1 Substrate holds only inputs tethered to a moment of actual engagement; external reference enters L1 exclusively when bound to a Capture or deliberate annotation. Unanchored bulk reference (downloaded archives, history dumps, corpora) stays in external storage, owned by the user but outside the cell's processing. Lands as a sharpening of the Reference type in docs/object-model.md §3.4 (Founding constraint). Contract clarification only — no code/schema this phase (A1-PH2 creates only audio rows, reserves the reference slot). Materialization-cost discipline parked cross-arc in maybelater. architecture 29-05-2026 Processed cms-brief-2026-05-27-e99f. The brief's full-file replacement was unsafe (stale base cdccf2fe, predating the 29-05 documentation-voice sweep — applying it would have reverted M6 voice work and reintroduced "household"/"Remoir as exo-skeleton"). Salvaged the brief's real intent surgically onto the current file: (1) wording refinement to the §Surface butler heuristic — "responsive, never anticipatory" → "responsive, but not suggestive; keenly anticipative, but never anticipatory", which maps onto FP6's internal-anticipation + external-restraint pairing; (2) renamed the heuristic "The butler is the interaction model" → "The traditional English butler is the interaction model" (fixed the brief's "tradition" typo). Synced the exact-name restatement at fp6-system-serves.md:58 per the named-entity rename gate. Status/Derived/Created unchanged (settled, FP6, 22-05-2026). process 29-05-2026 M8 started. spec-stack-eval.md moved Draft→Approved with the execution-time open questions resolved: one ADR per component; deferral entries inline in decisions.md; partial closure acceptable (every component has some explicit entry); adopt Nygard's ADR status lifecycle (proposed→accepted/rejected/superseded). Component set expanded from 4 to 5 to include enrichment (the Worker-calling-Claude component from the 29-05 vertical-slice reorder). Remaining ADRs (008 transcription, 009 storage, 010 enrichment) authored as proposed, flipped to accepted as the M9 spike validates each. ADR-007 (review surface) authored as the calibration proposed-ADR; clone the shape to the other three. Lifecycle recorded as a project-wide convention in the file-registry adr rule. process 29-05-2026 M7 closed on Freek's explicit call. Done-when met: docs/theory/README.md carries rules + front-matter spec + lifecycle; finite-infinite-games.md is the first entry validating the form; create→review→retire lifecycle documented. The entry grounds Carse's finite/infinite distinction onto the object model and was stress-tested against wider literature (Bottéro, perdurantism, Hacking's looping effect, akitu) to avoid solipsism. Two open M7 tasks dispositioned: glossary-completeness check → nothing to add (entry uses external-thinker vocabulary, not Remoir terms); theory-derived-heuristics extension → candidates surfaced but formal promotion deferred to a deliberate heuristic-introduction pass (own gate). One new within-model open question added to object-model-open-questions.md (Person as an interactive kind). process 29-05-2026 M4 (Working Vision) closed on Freek's call. Last open item — the dependency-claim re-verification "after M1 retroactive reopening" — resolved. Finding: M1's reopening leaves the claim intact ("feed"/"trails" are soft dependencies), but the 29-05 vertical-slice reorder made "M8 gates M9–M12" inaccurate (the M9 spike now informs the outstanding M8 ADRs). working-vision dependency sentence updated to the M8↔M9 interleave wording. No stability gate (phase-scoped doc, retired at transition); no separate manual-review gate. Other done-when criteria already met. process 29-05-2026 M2 (Object Model) closed on Freek's call after his manual content review of object-model.md + ADR-004. Done-when scored: four layers + Scope/Stage/Character axes documented with worked examples; ratified by ADR-004; §Store and §Enrich heuristics reference layers; stability gate intact (no layer assignment re-litigated in the last 7 days — same-session edits changed wording/ordering/structure but reassigned no layer). M5 Derived-mirror and M6 glossary-mirror confirmations resolved on close. ADR-004 Insight-L4 single-vs-multi-type question carried as parked, not a blocker. process 29-05-2026 Adopted Option B for object-model.md §12 "Related points" — a standing list of deferred/open design questions that conflicted with the settled-truth discipline (rule 7). Moved the questions into a new sibling file docs/object-model-open-questions.md, mirroring the established north-star ↔ vision-watchlist relationship; §12 is now a one-line pointer. Items carry scope (within-model / cross-arc) + a reopening trigger. Four cross-arc items flagged as candidates for /for-future/ (kept in the file for traceability, not yet briefed — Freek's call). Wired into phase-swap-protocol.md §Object-model open-questions recheck. process 29-05-2026 M6 (Glossary) closed on Freek's call. Done-when met: docs/glossary.md carries every load-bearing Remoir term including the stratification-vocabulary section; object-model layer/object terms confirmed present with the Object Layer entry now pointing at ADR-004 as layer-model source-of-truth per ADR-004 §Impact (the M2 mirror). Two flagged borderline metaphors kept intentionally. The inherited "household" wording in a for-future brief is deferred to brief-processing, not an M6 blocker. Forward-looking M7/M8 vocabulary-completeness checks moved to those milestones. process 29-05-2026 Roadmap reorder (not a foundational rescope). The platform's load-bearing bet is the enrichment + emergent-objects dynamic, not the act of capture — so M9–M12 execution is reordered into one thin end-to-end vertical slice that de-risks that dynamic before building capture infrastructure. Capture mechanism changes from a built capture-app PWA to Apple-native capture (Voice Memos / action button) + async ingest — ratified in ADR-006 (the M8 capture-surface component ADR). Enrichment dynamic under test is two-speed (quick first-pass + slow infrequent refinement), sequenced fast-path-first. Scoping locked: enrichment runs as a Worker calling Claude; model Sonnet-class (claude-sonnet-4-6), good-not-top. Governance: vertical-slice spike inside A1-PH2, no foundational-doc rewrite; the working vision already commits to the full capture→store→enrich→review→re-enrich loop on one media type. The spike's findings inform the remaining M8 ADRs. scope 29-05-2026 Adopted a register-mapped grammar-of-agency standard for how docs describe Remoir's behaviour, authored as docs/process/documentation-voice.md (registered in file-registry). Each register has exactly one canonical actor: behavioral → "the system"; sovereignty/holder → "the platform"; structural → "the cell"; boundary → "the membrane"; sub-component → "the enrichment layer"/"the AI"; cultural metaphor → "the butler" (flagged passages only). User-side: "the user" canonical, "the mind" only in the FP6 couplet, "Freek" only in PM/process docs. "household" reserved for FP1's future multi-cell ownership-granularity sense + the metaphor object; never a system synonym. Triggered by Freek noticing drift ("the system serves" vs "the household receives"). Cleanup pass applied 6 conformance edits to settled docs; 3 usages kept as correct; 2 borderline metaphor usages flagged not changed. process 28-05-2026 FP→ADR audit (per ADR-discipline brief Item 4) confirmed two gaps: no ADR currently records FP1's substrate-architecture sovereignty commitments (Tier 3 readiness checklist lives only as a heuristic), and no ADR records FP2's per-field provenance + non-destructive correction schema commitments. Two ADR-authoring tasks scheduled — one each. Authoring belongs to a dedicated session per the brief's discipline; this entry is the scheduling record, not the ADR. process 28-05-2026 Scoping decision for the A1-PH2 (Foundation) infrastructure rebuild. Three things settled: (1) the rebuild strips PH1's multi-modal capture surface to audio-only (voice memo → transcription → text → enrichment → review); (2) the storage schema is forward-designed to hold the other capture types via a source_type discriminator and optional enrichment-context slots, all empty in PH2; (3) the storage contract is built as a portable abstraction over Supabase. Lightweight free-text annotation only this phase (structured annotation → A1-PH3). Proposed rebuild stack recorded provisionally in techstack.md (not ratified — M8's job). Four open questions raised and explicitly NOT decided: phase-cadence rule softening, Arc-1 phase count growth, a proposed-but-held Tranche level, Svelte-vs-React for the review/lens frontend (→ M8 ADR). architecture 27-05-2026 Foundational-doc refactor. Phase-current instance data (active-phase card, A1 phase decomposition, A1-PH2 slug-alias and retired-slug tables) moves from /paradigm/stratification.md to docs/milestones.md. milestones.md gains per-milestone outcome / why-it-matters / done-when / deliverables / status entries for M1..M14, sourced from PM literature (Pichler GO Roadmap, Patton release slices, McGreal/Jocham EBM, Cagan/Torres outcomes-over-output). Resolves the "M1 not yet ready to re-close" question by giving M1 falsifiable done-when criteria. Honors rule 8 structurally: instance data now lives in a phase-current doc that rebuilds at swap, not in /paradigm/ (persistent across swaps). foundational 27-05-2026 Added /paradigm/staging/ as a partition-organised pre-phase thinking tier, distinct from /for-future/ briefs (deliberate vs incidental). Naming organised by partition not phase number to respect rule 9; provisional discipline ensures M14 author re-authors fresh per rule 8. Replicable for future arcs along whatever decomposition axis each arc adopts. process 26-05-2026 Processed the process-discipline-canonical-text brief. Chose a fourth housing option beyond the brief's three: fold anti-patterns table + load-bearing rationale into paradigm/stratification.md §Phase transition discipline. No new heuristic row in docs/heuristics.md — process discipline lives in CLAUDE.md + paradigm/, not in the product-heuristics registry. process 26-05-2026 Two for-future brief processings (non-destructive correction; Tracks taxonomy) and one new §Capture heuristic. Architectural choices: two separate heuristics over combined for non-destructive correction; fold inline over re-create-file for Tracks. heuristics 26-05-2026 A1-PH2-M3 (North Star) authored. Five architectural decisions ratified: NS/FP/WV boundary; defer interpretation doc; split metric definition (NS) from tracked metric (PM); fold Arc 1 falsifiability into NS; vision-watchlist as sibling doc. Phase-swap protocol gains a Vision foreclosure recheck section. vision 26-05-2026 Vision page's Arcs section now uses a single colored-block explorer for A1-A6 (replacing duplicate banner + collapsible-list); heuristics default to category headers only (Capture / Store / Enrich / Surface / Cross-cutting / Governance), expanding on click. lens

ADRs

7 records · 2 active · 1 superseded
Code
Title
Status
ADR-004 Object-model layer ratification active ADR-006 Capture surface: Apple-native capture + async ingest active ADR-007 Review surface: lightweight Cloudflare Pages confirm/correct surface proposed ADR-008 Transcription pipeline: Cloudflare Worker + Workers AI Whisper superseded by adr-011 (30-05-2026) — *layer placement only* ADR-009 Data storage: Supabase behind a portable storage contract proposed ADR-010 Enrichment: Cloudflare Worker calling Claude (Sonnet), two-speed proposed ADR-011 L1 is raw-only; all derived artifacts live in L2; two-loop enrichment staging accepted (30-05-2026)

Lessons

Claude durable + Frederic
Claude · durable
0 entries
No entries yet.
Frederic · product
10 entries
Founded input is the substrate's value test
Deployment surfaces what design can't
Test theory claims against outside literature before expanding
Grammar docs accrete instance data silently

Friction

open entries
No open friction entries.