15 · Arrival · First thread

A thread, a pause, a map being born.

15 / 22

The first thread of a new account is the only time we slow down on purpose. A blank canvas, a single prompt, then a deliberate reveal: the map of the user's work and world materializes as the Librarian understands what they just said. This happens once per account — after that, life is just threads.

Beat 1 Rest — the only quiet moment Wordmark centered, one subtitle, one button. No spinner. The deliberate stillness is the welcome.
Figments.
First thread · let's set up your context map.
Beats 2 – 3 Centered thread — the conversation is the whole surface Chat opens single-column, max-width 680px, generous gutters. No map. Opener types out character-by-character at ~55 cps; cursor rests for 800 ms then fades. The user replies; the Librarian begins extracting.
Onboarding First thread just now
Librarian
Hi. Before we build anything, tell me what you do — or drop a CV / LinkedIn export and I'll read it for you.
You
I'm an ML engineer. Building Clepsy W, a privacy-first time tracker.
Librarian
context_map.write project:clepsy-w → +1 fact running…
Beat 4 The reveal — once, and only once The instant the first extraction resolves, the chat shifts left and the map pane slides in from the right — already populated with the node that just earned its place. Cause precedes effect by 80 ms: the tool call completes, then the pane arrives.
A · before
B · 275 ms in
C · settled
Beat 5 The map fills itself in Each new fact from the Librarian materializes as a node in the right pane. Most recent node earns a single amber pulse, then settles into the rest. Edges draw as hairline traces 200 ms after their endpoints stabilize.
Onboarding First thread 2 min
I work closely with Mira on it, and use Gmail + Notion daily.
context_map.write +4 nodes · +5 edges 820 ms
create person:mira · edge → project:clepsy-w
create integration:gmail · edge → person:self
create integration:notion · edge → person:self
create memory:ml-ops-expertise · edge → person:self
Got it — pulled Mira into the project, connected your Gmail and Notion identities, and noted your ML Ops focus. Want me to sketch a morning digest that pulls Clepsy-related items from all three?
Type a reply…
⌘↵ send · ⇧↵ newline
Beat 6 The collapse — map shrinks toward the spine User clicks Create on a proposed Figment. The map pane compresses toward the sidebar spine over 600 ms; the Studio chrome assembles around the chat as the map settles into its summary chip. The ritual ends. Normal life begins.
A · two-pane
B · mid-collapse
C · studio
01
The map reveals once, per account. After that it lives in the sidebar spine and the Observatory. The ritual is never replayed, not even on re-login.
02
No empty map is ever shown. The pane only arrives once there is something to put in it. If the user's first reply is thin, the chat stays centered and the ritual defers.
03
Cause precedes effect. The tool call streams and resolves in the chat; 80 ms later, the pane arrives. The user sees the sentence being understood, then the understanding taking a shape.
04
Motion is deliberate, never bouncy. Every curve is --ease-reveal. Nothing elastic, nothing spring-physics, nothing "fun." The ritual earns its weight by refusing cheap theatre.
Motion spec
Shell assembly translate + fade, staggered per region 200 ms each --ease-reveal
Opener typewriter char-by-char, cursor rests 800 ms then fades ~35 ms/char linear
Chat: center → left max-width + translate 550 ms --ease-reveal
Map pane reveal translateX(32 → 0) + opacity(0 → 1) 550 ms, +80 ms post tool-call --ease-reveal
Node materialize opacity(0 → 1) + translateY(2 → 0 px) 400 ms --ease-reveal
Edge draw stroke-dashoffset(total → 0) 300 ms, +200 ms after endpoints linear
Newest-node pulse amber ring radius + opacity 1400 ms, once ease-out
Collapse to spine scale(1 → 0.22) + translate toward sidebar 600 ms --ease-reveal