La Datcha in the ice, everyone waving — the locked ending
LINX · Internal · Confidential — link only

The Memory Engine


The template bible. How a guest’s real camera roll becomes a cinematic, bookable memory — every clip’s reasoning, every agent’s job, every file path, every token, and the one film that proves it: La Datcha, Svalbard, for Stein.

July 11, 2026 · Reference build: Svalbard · Watch five folded · Nothing pushed

Watch the memory itself

The actual 42.5-second film this document dissects — 13 real clips, the route, the drone farewell. Everything below refers to this artifact.

Open the memory
42.5s
Film runtime · TRIP format
13 / 15
Video beats of fifteen — video-forward by law
671
Assets in the raw Svalbard roll, June 30 – July 4
74
Stein corrections folded into the corpus
$0.00
API spend in the emit path — receipt embedded in the spec, below
01 · What this is

A memory is a recipe, not a file

The engine reads a camera roll — every photo, every clip, capture times, GPS, faces — and writes a single JSON document called an ExperienceSpec: the film’s beats and motion, the book’s chapters, the globe’s route, the share loop’s language. A separate renderer draws that document on screen. The brain never touches pixels; the face never makes decisions. Swap either side without breaking the other.

Around the memory sits the sandwich: the experience that produced the footage, the memory that makes it eternal, and the attribution that routes the next booking back to the operator who earned it. That third layer is why this is a business and not a slideshow.

The engine is deterministic Kotlin. Same roll in, byte-identical memory out — every time, forever. Taste changes it; chance never does.
02 · The film, beat by beat

Fifteen decisions, each defended

Every beat below shows the actual frame, what the engine saw, why it earned its slot, what it should make the viewer feel, and the exact motion mathematics. I pulled and looked at every one of these frames before writing a word.

Beat 1 frame
E5BB0923 · video · 3.3s
Beat 010:00 – 0:03.3Open · cold openScene: people · vessel

Caught mid-laugh on the stairs

The scene
Inside La Datcha’s stairwell. A guest in a robe turns to the camera mid-laugh; the filmmaker’s gimbal is in frame; another guest stands at the panoramic window with the glacier beyond the glass. Three layers in one shot — person, craft, place.
Why here
The open slot demands the trip in a single frame, and this clip is it: ease inside the vessel while Svalbard fills the window. It also honors Stein’s watch-one note — the making of the film is part of the story, so the camera operator stays in the cut. The title card “SVALBARD · for Stein” lands over this shot.
The feeling
Being let in. Not a postcard — a door held open mid-moment. Warmth before grandeur; the film earns the landscape by starting with the laugh.
The motion
A cold open: nothing dissolves into it (transitionSec 0). The frame breathes from 1.06 to the neutral 1.08 and rests for the final 1.7 seconds — the clip’s own handheld life supplies all the movement.
move HOLD · scale 1.06 → 1.08 · ease cubic-bezier(0.22,1,0.36,1) · transition 0.0s · rest 1.7s
Hornsund, Svalbard · 78.37°N 14.22°E
The route we sailed
globe · 3.0s · MapLibre dive
Beat 020:03.3 – 0:06.3Threshold · the map

The dive to 78 degrees north

The scene
The globe spins, dives to Hornsund, holds on the fjord, then — after the film ends — pulls back to continental scale so the viewer feels how far from home this was.
Why here
Geography is the promise of the whole film. “Every story leaves home” is the threshold line, and the map is that sentence made visible. It sits second — after the human open, before the voyage — because people first, place second is the emotional order Stein confirmed across four watch cycles.
The feeling
Distance. The quiet shock of seeing how far up the planet this happened.
The motion
The one beat with no flow block by design — the globe’s own camera is the choreography. The title lingers through the dive (watch-one correction #40).
globe dive → hold → 7s continental pull-back after close · label from spec, never baked
Beat 3 frame
2E9340B7 · video · 2.8s
Beat 030:06.3 – 0:09.1Build · interior glideScene: vessel

Walking the salon while the fjord slides past

The scene
A handheld glide through the main salon — sage armchairs, pale oak sole, and the fjord moving in every window. The vessel breathing at anchor.
Why here
After the map promises distance, the film must establish home-inside-the-wild: this is where you live while the Arctic happens outside. The walkthrough clip won its slot over static interior stills because the burst keeper is motion-first — a clip beats its still sibling of the same moment, always.
The feeling
Arrival. Calm. The luxury is in the quiet, not in anything gilded.
The motion
Held at neutral 1.08 — the cameraman’s glide is the motion; the engine’s law is never to fight the footage with synthetic movement. The 0.5s dissolve carries the previous beat’s energy through the cut.
Watch five
Stein: “letting that play just half a second longer would be perfect.” Folded as law, not a hack — an interior/vessel clip with no people now dwells 1.25× (VESSEL_DWELL_BOOST), and this beat plays 2.8 seconds, up from 2.3.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.4s · vessel dwell ×1.25
Beat 4 frame
751F10B6 · video · 2.8s
Beat 040:09.1 – 0:11.9Build · lifestyle ritualScene: people · vessel

Warrior pose on the aft deck

The scene
Morning yoga through the deck doorway — four guests including a child, arms wide in warrior pose on teak, the pale fjord light flat and endless behind them.
Why here
The LIFESTYLE pillar of the seven-part rubric (place · people · lifestyle · wildlife · unique · emotion · honest). Ritual is what makes a trip a life rather than an itinerary, and a child holding warrior pose at 78°N is ritual with a smile in it. People-bearing clips get a 1.35× dwell bias — faces are why anyone watches twice.
The feeling
Ease. Family. The unforced kind of morning that money can charter but never fake.
The motion
Neutral hold; the doorframe composition is the shot’s own architecture. Dissolve in, rest on the pose.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.4s · face dwell ×1.35
Beat 5 frame
B3E2D146 · video · 2.8s
Beat 050:11.9 – 0:14.7Build · first breath of placeScene: vessel · landscape · glacier

The bow rail over mirror water

The scene
Down the polished bow rail to a fjord so still it mirrors the sky; snow mountains and brash ice on the horizon line. Vessel and Arctic in one geometry.
Why here
The PLACE pillar takes its first full frame. The film has shown people and home; now it opens the window all the way. This clip scored on spectacle — wide natural grandeur flagged by vision — and on the vessel-in-landscape composition the arc ranks highest for establishing shots.
The feeling
Awe, but the quiet kind — the sharp intake of breath, not the shout.
The motion
Held frame, breathing scale. The clip’s slow tilt down the rail does the reveal; the engine refuses to double it.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.4s · vessel dwell ×1.25 · spectacle flagged
Beat 6 frame
D3762949 · video · 3.0s
Beat 060:14.7 – 0:17.7Build · ashoreScene: glacier · landscape

Standing on the moraine, glacier across the lagoon

The scene
Boots-on-ground on grey moraine stone, the glacier front a white wall across the melt lagoon, cloud pouring over the black mountain behind it.
Why here
The expedition steps off the boat. A yacht film that never leaves the deck is a brochure; this beat is the proof of expedition — the UNIQUE pillar. It runs 3.1 seconds, longer than the beats around it, because scale needs a beat and a half to register.
The feeling
Smallness, in the way that recalibrates a person. Silence you can hear in a silent film.
The motion
Held with a 1.6-second rest — the longest dwell so far, engineered so the eye can travel from stone to ice to cloud before the cut.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.5s
Beat 7 frame
A62CB3F2 · video · 2.2s
Beat 070:17.7 – 0:19.9Build · the ritual, from insideScene: people · vessel

The same morning, from within it

The scene
The yoga session again — but now shot from inside the group, past a shoulder in a La Datcha monogrammed jacket, guests in lunge stretches, the owner’s flag over the deck.
Why here
An honest note, because it looks like a repeat and is not one: the anti-duplicate law collapses moments captured within 180 seconds of each other into a single keeper. These two yoga clips sit outside that window and frame the ritual from opposite sides — doorway and interior. The engine kept both deliberately: one says we did yoga, the other says you were in it. Depth, not duplication.
The feeling
Belonging. The monogram in the foreground quietly signs the operator into the guest’s memory.
The motion
Neutral hold, standard dissolve; the clip’s over-the-shoulder drift is the motion.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.1s · burst window cleared (>180s)
Beat 8 frame
898F789C · video · 3.0s
Beat 080:19.9 – 0:22.9Rising · actionScene: people · vessel

Vaulting the rail toward the chase boat

The scene
A guest swings over the aft rail, the chase boat idling below, a second camera operator filming from the corner — action and the recording of action in one frame.
Why here
The arc needs its pulse to quicken here: after four contemplative beats the arousal curve demands adrenaline, and the emotion model scores this clip high on motion energy plus faces. It also keeps the film-within-the-film thread alive — the crew shooting is part of what happened.
The feeling
Play. Grown adults climbing over railings because the Arctic made them twelve again.
The motion
Held at neutral with a longer 1.6-second rest so the leap resolves inside the beat rather than being cut mid-air.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.5s
Beat 9 frame
931B8E4C · video · 2.2s
Beat 090:22.9 – 0:25.1Rising · wildlife apexScene: wildlife · spectacle

The bear at the waterline

The scene
A polar bear working the rocks at the water’s edge, head down among the boulders, the sea rippling in the foreground — shot from the water at a legal, respectful distance.
Why here
The WILDLIFE pillar’s apex, and the single highest-value subject on the roll. This beat is also the scar tissue of the 8-second-still saga: the engine originally kept a still sibling of this encounter and the film sat frozen on it. The fix became law — when a burst holds a clip and a still of the same moment, the clip wins, always. The moving bear is why that law exists.
The feeling
Held breath. The one beat where nobody in the room talks.
The motion
Neutral hold; any synthetic push on a wildlife clip reads as fakery. The animal moves; the frame does not.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.1s · motion-first keeper law
Beat 10 frame
67A40363 · video · 3.0s
Beat 100:25.1 – 0:28.1Rising · the crewScene: people · glacier

The zodiac under the glacier wall

The scene
Three of the film crew in the zodiac, cameras across their laps, life vests on, the glacier face running the full width of the frame behind them, sun finally out.
Why here
PEOPLE and craft again, now at the glacier itself. The faces are relaxed and sunlit — the emotion model’s face bias plus the glacier scene tag rank this among the roll’s richest people-in-place clips. It also seats the viewer in the boat: this is the vantage the bear was seen from.
The feeling
Camaraderie. The team that made the film, inside the film, at ease.
The motion
Held frame, 1.6-second rest — enough for the eye to count the faces and then find the wall of ice.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.5s
Beat 11 frame
01C4C4AB · video · 3.0s
Beat 110:28.1 – 0:31.1Rising · witnessScene: wildlife · people · glacier

Watching the walrus haul-out

The scene
From behind a guest in a fur-trimmed hat, looking past her shoulder to walrus hauled out on the shale beach, the glacier and ice-water bay beyond.
Why here
Wildlife’s second movement — and the frame contains the witnessing, not just the animal. The over-the-shoulder composition is the memory itself: you were this close, this quiet. Clips holding both people and wildlife are the rarest species on any roll; the arc treats them as near-hero material.
The feeling
Reverence. Stillness as a form of respect.
The motion
Held; her stillness is the shot. A 1.6-second rest closes it.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.5s
Beat 12 frame
6BF175D9 · video · 2.5s
Beat 120:31.1 – 0:33.6Rising · underwayScene: vessel · detail

The wheelhouse, making way

The scene
Inside the bridge — chartplotters and engine screens glowing, the bow through the wheelhouse glass, mountains ahead, then the pan drops to open water running past.
Why here
The detail slot. Every act of the film needs one beat of machinery — the working heart that moves the story between places. The nav screens say competence; the water says passage. Without a beat like this the film floats placelessly from scene to scene.
The feeling
Momentum. Trust in the hands driving the ship.
The motion
Held; the clip pans itself from console to sea. Rest 1.4 seconds on the moving water — the film’s only pure texture moment.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.3s
Beat 13 frame
9FCD46E6 · video · 2.9s
Beat 130:33.6 – 0:36.5Peak · wonderScene: wildlife · people · landscape

The child and the reindeer

The scene
On the tundra above the water — a child in a white beanie stands still as a Svalbard reindeer crosses the mossy ground an arm’s length away.
Why here
The emotional peak before the finale. Smallest guest, wildest island, no fence between them. The rubric’s EMOTION and UNIQUE pillars intersect nowhere else on the roll with this force; the emotion model’s arousal curve crests here by construction — the hero position demands the frame a viewer will describe to someone else tomorrow.
The feeling
Wonder, undiluted. The beat parents will scrub back to.
The motion
Held with a 1.5-second rest; the approach happens inside the clip. Any push-in would break the spell of distance kept.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.5s
Beat 14 frame
19CF80E1 · video · 3.7s
Beat 140:36.5 – 0:40.2Hero · the gatheringScene: people · vessel · dining

Dinner on the helideck

The scene
A long table dressed and set on the helipad — the whole party seated, blankets over chairbacks, La Datcha’s superstructure and flag towering behind, glacier at the horizon, the filmmaker circling with the camera.
Why here
The hero beat, and the longest of the film at 3.7 seconds. Everything the trip was converges: all the people, the vessel, the ice, the ceremony of a table laid where helicopters land. The arc gives its longest dwell to the signature lifestyle moment — the frame that carries the whole trip’s social memory.
The feeling
Celebration. Gratitude with the volume down — the toast you can hear without audio.
The motion
Held for the full 3.7 seconds with a 1.9-second rest, the deepest in the film. The dissolve out of this beat hands its stillness directly to the farewell.
move HOLD · scale 1.08 → 1.08 · transition 0.5s · rest 1.9s · longest beat
Beat 15 frame
EF2622D0 · still · 2.3s · the locked ending
Beat 150:40.2 – 0:42.5Settle · the locked endingScene: aerial · vessel · glacier · 12+ faces

Everyone waving, from the sky

The scene
The drone frame: La Datcha bow-on in ice-flecked water, the glacier wall running the full horizon, the entire party waving from two deck levels, a couple waving from the fold-out balcony in the hull.
Why here
This ending is law, not luck. The engine reserves the outro before any other selection runs: aerial and two-plus faces and vessel-in-glacier context. C3 vision found the drone make in the EXIF and twelve real face positions in the Photos catalog; I then looked at the frame myself and confirmed it against Stein’s watch-four demand for the group photo. It is also the book’s cover — his explicit override #63: the cover is the epic endcard.
The feeling
Farewell. The whole story in one frame — who came, on what, into what world — waving back at you.
The motion
The film ends at rest, by law. The only still in the cut settles from 1.08 to 1.07 — a two-percent exhale, not a move — and holds while “LA DATCHA · A LINX Memory” sets over it.
move HOLD (settle) · scale 1.08 → 1.07 · transition 0.5s · rest 1.2s · reserved pre-selection
Why every interior move reads “hold” — the flowing-water grammar Thirteen of these fifteen beats are real video, and real footage carries its own camera language — glides, tilts, pans shot by a human. The choreographer’s first law is never to fight the cameraman: video beats hold the frame at a breathing 1.08 neutral scale and let the footage speak. Synthetic movement — pushes, reveals, travelling pans to real face coordinates — is reserved for stills, which need to be given life. This cut has exactly one still, the locked ending, and it gets a settle, not a move. Continuity is absolute: every beat begins at the exact scale and focal point the previous beat ended on, every cut is a half-second dissolve on the same ease curve, and nothing anywhere is linear. That is what “flows like water” compiles to.
03 · The laws

Eight laws, each paid for

None of these are style preferences. Every law below exists because a specific failure happened in front of Stein and was corrected into the engine — the correction is cited.

LawWhat it forbids / demandsThe correction that created it
Fail-closed servingA spec that fails to load shows an honest error card — never another trip’s content. Writes are atomic (temp file + atomic move).The Monaco incident: Monaco content rendered at the Svalbard URL. Stein: “absolutely unacceptable.” Root cause was a fail-open fallback plus a non-atomic write, both now illegal.
Media possessionOnly locally-possessed video bytes count as clips. Eviction can never silently turn a video film into stills.iCloud eviction reduced 160 clips to 15 real files mid-build; the film collapsed to posters without warning. Possession counts are now reported before every emit.
DeterminismSame inputs, byte-identical spec, forever. No randomness, no timestamps in the output path.The trust requirement behind “templatize and scale” — a template that produces different output on re-run is not a template.
Video-forwardInterior slots are video-guaranteed; a surviving still gets a real move; the film ends at rest.Watch three: a 34-second still where footage existed. Watch four: an 8-second frozen still traced to the burst keeper preferring a pretty still over its clip sibling — the keeper is now motion-first.
Anti-duplicateBurst collapse (anchored 180s windows, motion-first keeper); zero film-to-book replays; no photo repeats within a chapter. One exception: the cover is the endcard, by Stein’s override #63.Watch two: “duplicate shots still — how are you going to know anti-duplicates?” The EXIF capture-time physics of bursts became the collapse mechanism.
Honest visionTags come from the real pipeline or from a human who looked at the frame. A fabricated tag is a hard rejection.Stein’s standing law — “truthfully, I just don’t trust you at all” is cured only by receipts. Two Svalbard tags were corrected by eye and noted as corrections in the tags file.
EmotionPeople clips dwell 1.35× longer; real face positions steer any pan; the rubric is place, people, lifestyle, wildlife, unique, emotion, honest.Watch one: “the girl’s face cut too short — I want to see her emotion.” A half-second of dwell became a coefficient.
The cost receiptEvery emitted memory carries its own finance accounting — actual spend and the cloud projection against the budget — inside provenance.cost. No memory ships unpriceable.Watch five: “It needs to be tracked… I need to understand the exact cost because it’s going to help project the finance.”
The flywheelEvery correction is appended to the corpus with category, mechanism, action — nothing dropped, ever.All 66 items across two logs; the corpus is the training data and the moat. See §06.
04 · The pipeline

Thirteen stages from roll to recipe

One deterministic pass inside MemoryEngine.assembleDailyFilm. No model call anywhere in this path.

#StageWhat happens
1SafetyFail-closed screen — screenshots, menus, documents rejected before anything else sees them.
2UnderstandingEXIF, GPS, capture time, aspect, duration folded into per-asset signals.
3Vision foldScene tags, real face positions, spectacle and aerial flags merged from the C3 pipeline (Apple Vision + Photos catalog + drone EXIF).
4ConsentFace-bearing media gated per surface; an empty consent ledger means fail-closed, not fail-open.
5Pixel floorResolution and quality minimums; upright derivatives only — rotation is forbidden downstream.
6Cold startRolls too thin for a film are refused honestly rather than padded.
7Burst collapseAnchored 180-second windows sharing a scene collapse to one moment; the keeper is motion-first: clip beats still, spectacle beats faces beats quality.
8Arc selectionOutro reserved first (aerial + faces + vessel context), then open, build, hero, settle slots filled — interior slots clips-first with a 0.18 preference band.
9A-roll interlaceOperator B-roll woven between guest moments where provided.
10Motion choreographyThe flowing-water pass: positional continuity, ease-out-into-rest, breathing neutral scale, per-beat dissolve and rest times. Gates: continuity delta zero for every pair, no linear easing, no single-beat punch.
11GradeNative color by construction — no teal, no warmth shift, nothing applied.
12FilmSpecBeats, motion, copy, endcard assembled.
13Experience assemblyBook (fresh clips only — zero film replays), globe, share loop, provenance; one atomic JSON write.
05 · The agent fleet

Twenty-seven agents, one honest caveat

Every agent below is built and tested in core/agents/. Each runs a deterministic floor first — a verdict computed by code, testable with no API key — and an optional model ceiling that may add insight but can never lower the floor. Two agents have no model seam at all, by design: the render gate and the commit gate reason through zero model.

The caveat, before the tour Production does not yet publish domain events to this fleet. Today the real feedback path is FeedbackIngestService → TasteLedger — direct, tested, live. The mesh dispatch (event → chain → agents) is Phase E wiring. This is stamped in the source itself, not just here. Everything below describes what is built and green under test; nothing below claims production traffic it does not have.

The compounding loop: Scribe → Oracle → Keeper

When a correction arrives — “too fast,” “the endcard image is wrong” — it walks a three-agent chain where each hop does exactly one thing. Scribe captures: it appends the correction to append-only ledgers and by construction cannot touch taste — it does not even hold a reference to the taste store. Oracle decodes: it names the why behind the words, mapping what was said to what was meant — “too fast” becomes “the cut rhythm outran the emotion,” filed under pacing; “gimmick” becomes “an effect read as a trick, not a feeling,” filed under craft trust. Twelve product-signal buckets, and the mapping is exhaustive — a new correction kind will not compile without a hypothesis. Keeper folds: the decoded correction moves the taste vector one monotonic version forward, guarded so a fold can never rewind a version or shrink a ledger, and gated so an unconsented signal is captured for the record but never learned from. Capture that is never lost, a cause that is correctly named, a fold that only moves forward — that is what compounds, and the labeled corpus it produces is the cornered resource.

The three curated chains

EventChainPurpose
Correction submittedScribe → Oracle → KeeperThe compounding loop above. Each step’s output threads into the next agent’s context, so Oracle’s why reaches Keeper’s fold.
Experience assembledWarden → Perception → Witness → MuseConsent and safety, perception ranking, provenance truth, and the quiet-luxury language veto — gating before anything renders.
Re-gate requestedAdversary → Moatkeeper → Growth → ExaminerKill-paths enumerated, defensibility evidenced, loop health measured, then the gate-of-gates rules.

Mesh mechanics: an agent that throws becomes a failed step with a fault finding — never a crash, never a silent skip. A chained agent that does not handle the event is surfaced loudly as a dead edge. A chain result is only green when every step is green.

The full fleet

AgentRuntimeRoleHow it grades
ScribeDeterministicAppend-only capture of every run and signal; never foldsNo score — capture receipts; rejects any non-increasing sequence number
OracleModel + floorDecodes said-vs-meant behind each correctionExhaustive kind-to-cause map into 12 product-signal buckets
KeeperHybridFolds taste; owns attribution and provenance graphAppend guard: no version rewind, no ledger shrink; consent-gated folds
WardenHybridSurface leak-gate: safety ∩ consent per surfaceSafety allow-threshold 0.62; any exclusion fails; empty ledger = all faces unconsented
CuratorHybridAuthorship gate — cuts the arc, weaves film, globe, book, shareFails on no-input, assemble-fault, cold-start; format by civil-day count
DirectorDeterministicRender gate: native-color transcode, export lifecycleOne-way job machine; missing source is skipped, never black; no model seam
ExaminerDeterministicThe commit gate-of-gatesFive probes (Goodhart canary, two-oracle reconcile, append-only ×2, cost SLO); an empty scope is red, not green; no model seam
ArchitectModel + floorExperienceSpec contract reviewer — the brain/face seamFour slices (film, globe, book, share) + seam fields present, or red
ForemanHybridBuild supervisor, phase gates A through EAdvance only to the next phase, only from green
SmithModel + floorBackend contract checklistMigration, entity, DTO, test — all present or red
WeaverModel + floorRenderer parity — is the spec actually renderableField-by-field: beats non-empty, coords valid, cover titled, share URL present
StewardHybridData and migration guardianReflects real entities for optimistic locking; scans real migrations for monotonic numbering
WayfinderModel + floorPlanning and sequencingTopological sort — a cycle or a missing pre-mortem is red
ConductorHybridForms the working pod from the registryPod capped at five — communication paths grow as n(n−1)/2
MuseModel + floorQuiet-luxury language vetoBans short wistful fragments (“The day, gathered.”); passes date lines and periodless taglines
WitnessModel + floorTruth and provenance gateAn unverified memory may never carry an attestation URL — a fabricated one is nulled and flagged
MoatkeeperModel + floorDefensibility — the 7 PowersAt least one power evidenced with signals, or no-moat is declared
AdversaryModel + floorRed team — enumerates kill-pathsFive standing kill-paths always checked; any armed path is red
CounselModel + floorEconomic firewall on the share ladderLinks auto-cap at trust class; the economic class needs explicit authorization — the machine can never pay itself
TreasurerHybridUnit economicsCost = vision calls × $0.012 + render seconds × $0.0009, against the $0.20 budget
PerceptionHybridRanks what matters in the footageSalience = 100×spectacle + 10×faces + scene arousal; reports, never blocks
IntakeHybridCamera-roll front doorTotality invariant: normalized + dropped must equal input — a lost asset is red
GrowthHybridThe viral loopk-factor = downstream ÷ sharers; zero sharers is honestly null, never fabricated virality
ScaleHybridRender-farm reliability99% success budget, backpressure at 10,000 queued, illegal state transitions flagged
SoundHybridEmotional cue map (score scaffold)Enter, swell, sustain, settle placed by the arc’s crest; playback deliberately deferred
OperatorHybridSupply-side relationship healthDormant, at-risk (credit share below half), healthy
PersonalizationHybridRecipient-level taste overlayGlobal ⊕ operator ⊕ guest — narrowest tier wins each scalar; proves its diff against the house default
06 · Memory architecture

Where every bucket lives

Exact paths on this machine. Nothing lives anywhere else; nothing has been pushed to any remote.

BucketPathWhat it holds
The engine~/clio-build/src/main/kotlin/…/core/clio/The 13-stage pipeline, arc, choreographer, book and share authors, taste system. Branch feat/clio-memory-engine, 49 commits ahead, never pushed.
The agents~/clio-build/src/main/kotlin/…/core/agents/All 27 agents, the mesh, the registry, the gateway seam. Together with the engine: 11,882 lines of source.
The tests~/clio-build/src/test/kotlin/…10,224 lines — 0.86 lines of test per line of source. Every law in §03 is a named test — 585 green at this build.
The corpus~/clio-build/reports/SVALBARD_MEMORY_FEEDBACK_LOG_v1.md · _v2 · _v3All 74 of Stein’s corrections with category, mechanism, and the action taken. This — not model weights — is the training data. It trains the engine through code changes and the taste ledger, and it compounds with every watch.
TasteTasteLedger → CinematicPrefs (in-engine) · VideoTasteProfileEntity (Postgres)Append-only folds; monotonic versions; global, operator, and guest tiers resolved narrowest-wins. File-backed today, Postgres row in production.
Vision truth~/clio-build/data/svalbard/vision_tags.c3.json · vision_tags.svalbard.jsonC3 output — 622 assets tagged by Apple’s on-device Vision framework, 348 real face positions from the Photos catalog, aerials detected by drone EXIF — plus the human-verified fixture with corrections noted.
The manifest~/clio-build/data/svalbard/manifest.svalbard.jsonThe roll: 671 assets with capture times, GPS, possession state. Deliberately untracked — it carries personal location data and machine paths.
The renderer~/clio-experience/Its own git repository. index.html (canvas film, globe, book, share loop), the spec schema, and the canonical emit experience.svalbard.json. Media directories are gitignored artifacts.
The doc set~/Desktop/LINX_MEMORY_ENGINE_EXECUTION_KOTLIN_v3.0/Eight execution docs plus the watches addendum — the laws as prose, the next-test checklist.
The next test~/CONTINUATION_PROMPT_LINX_MEMORY_TEST2.mdThe zero-context directive for test two: a surprise trip, the template run exactly as written, no improvisation.

How a memory is served

Today: the emit writes experience.svalbard.json atomically into the renderer directory; a local server on port 8890 serves ?spec= requests; the loader is fail-closed — a bad spec shows the error card, never a fallback. In production: GET /api/v1/memories/{id}/experience serves the same envelope from an ExperienceRecipe row, behind consent gates, with the share URL preserving the spec identity end to end.

What actually compounds

Three things, honestly named. The corpus: every correction, permanent, categorized. The taste ledger: corrections folded into scalar preferences — motion intensity, dwell bias — that shape every future build. The laws: corrections severe enough to become engine code and named tests. No neural network is trained anywhere in this system; the moat is labeled judgment, accumulated and enforced.

07 · Tokens and cost

What this burned, measured

Two different questions with two different answers: what it costs to make a memory, and what it cost to build the machine that makes them.

Making the Svalbard memory: the receipt, not a claim

The right response to “$0.00” is distrust, so as of watch five the number is no longer an assertion — every emitted memory now carries its own cost receipt inside the spec (provenance.cost), computed deterministically from the same inputs that built it. Here is the actual block inside the live Svalbard spec:

assetsIn 560 · visionCallsCloud 0 · llmTokens 0 · renderSeconds 42.5 · actualUsd 0.00 · projectedCloudUsd 6.76 · budgetUsd 0.20

Why the actual is honestly zero: the emit path is deterministic Kotlin — verifiable by grepping it for a model call; there is none — the vision pass ran Apple’s on-device framework at no charge, and the render is a local canvas. The number that matters for finance is the projection: the same memory priced at the production cloud path (560 assets cloud-tagged at $0.012 each + 42.5 render-seconds at $0.0009) is $6.76 — thirty-four times the current $0.20 budget. That is not an error; it is the receipt doing its job. It quantifies exactly what Stein flagged in this watch: the budget is under review, and full-roll cloud vision can never be the path — vision stays on-device and content-hash-cached, with the cloud as the exception. The receipt makes every future memory priceable the moment it is emitted.

Building the template: the V3 session, measured

Measured from this session’s own transcript — 820 API calls in the main conversation — priced at Claude Fable 5 list rates ($10 per million input tokens, $50 output, $12.50 cache write, $1.00 cache read). Stein pays through a subscription, not per token; this is the API-credit equivalence he asked for.

Main conversation (measured)TokensList cost
Output generated1,001,500$50.08
Cache writes (new context committed)6,307,357$78.84
Cache reads (context re-read per call)298,393,413$298.39
Uncached input1,579$0.02
Main loop total$427.33

The same measured session at Claude Opus 4.8 rates — the tier the production engine actually targets — prices to $213.66 (output $25.04, cache writes $39.42, cache reads $149.20). Fable 5 is the build-and-verify instrument; Opus-tier is the run-rate. From the next test onward, every build phase reports its token receipt as it runs — measured live, never reconstructed after the fact.

Delegated agents (harness-reported)Tokens
The 10-lane verification gate (20 agents: find + adversarial recheck)1,798,871
Documentation delta fork (watches addendum, feedback log v2)567,915
V3 doc-set fork188,437
Recon scouts (codebase ground-truth, pre-plan)126,056
Agent-fleet inventory (this document’s §05)116,416
Subagent total2,797,695
The honest edges of the number Three things are not in the tables. The harness reports subagent totals without splitting their cache traffic, so their line cost is bounded — roughly $28 if it were all input-rate, $140 if all output-rate; call the layer $150–$250 with its unitemized cache reads. The six parallel build teammates from Phases A–D (motion, trip film, aerial vision, spreads, fuzzing, harness) were not token-metered by the harness in this session — unmeasured, and I will not invent a figure; by shape they resemble the documentation forks. And earlier compacted context windows are inside the main-loop measurement, not additional. Honest total for the entire V3 build, verification, and documentation session: $427 measured + roughly $200–450 delegated ≈ $650–900 at Fable 5 list rates — the one-time cost of the machine, against a marginal cost per memory of zero.
08 · The repository

Forty-nine commits, one truth

Is every commit needed?

Yes — but not the way the question implies. The 49 commits ahead of the base are not 49 alternatives to choose between; they are the linear history of how the engine got here, and the deliverable is a single thing: the tree at 8ad11e6, the newest commit. Check that out and you hold 100% of the current engine. The history behind it is the audit trail — which correction produced which law, in which order — and audit trails are kept, not squashed, while the work is still being verified. When Stein gives the push order, the history can ship as-is or be folded into curated commits; that is a presentation decision for that day, not a correctness question today.

Does every line earn its place?

11,882 lines of source, 10,224 of tests. The engine core earns its keep line by line — every law traces to a correction and a named test, and the verification gate hunted this tree with twenty agents. Three parts are honestly scaffolding, kept deliberately and labeled in the source: the agent mesh’s event dispatch (built and tested, awaiting Phase E production wiring), the on-device ONNX vision stub (an explicit not-wired exception, the privacy target), and the refusing gateway default (the no-API-key floor). I will not claim a 22,000-line tree has zero removable lines — no honest engineer would — but nothing in it is dead weight nobody understands: every block is either load-bearing now or a labeled seam for the next phase.

09 · Known boundaries

What this does not do yet

Stated so nothing is oversold. Pans travel only where real faces were found; scene quality depends on per-trip tuning of the class map. Finding the reaction inside a clip — seek-to-moment — is not built; the engine dwells, it does not scrub. The daily/trip two-tier generation is coded and tested but the render is the flat trip format today. Music is a cue map, not playback. The agent mesh is not production-wired. And the final gate is not a machine’s: it is Stein watching, proud-to-share at seven or better.

The next proof is Test #2: a surprise trip, revealed only as a date window, run through this template exactly as written. If a law fights the new roll, the law — not a per-trip hack — is the deliverable.