Relay Concept · Deck system · v1 · 2026-09-10

The deck system, rebuilt.

The governance is right: stable M-IDs, gate tiers, flows as recipes, provenance in speaker notes, master first. What produces the slides is not. A hand-maintained Google Slides file on a pre-v3.5 type system, built by a script that lives in no repo, renders one text layout thirty-seven times. This page keeps the model whole and replaces the execution, and it does so as a working deck rather than a memo.

One slide modelEach M-ID is a file in git: copy, gate, version, archetype, figure, notes. The canon and the slide spec are the same record.
Two renderersHTML renders the page, the presentation and the PDF from one file. Apps Script regenerates the Slides master from the same model.
One checkerGate ceiling, copy gate, font panel, drenched budget, face stamps. A cut that breaks a rule does not build.

Record and plan: relay-board/docs/operations/deck-system-next.md. Law: GUIDE.presentations.md, GUIDE.motion-register.md. Every slide face here is OPEN-tier.

1What the master renders today, beside the same slide rebuilt

Left: M02 · The Problem as RelayCTX - Deck Slides exports it on 2026-09-10, reproduced from the file's own geometry and fonts. Right: the same canon copy through the proposed renderer. Same words. The difference is the system.

Today the master, slide 5 of 40

  • The eyebrow is Syne, retired from the system. There is no JetBrains Mono anywhere in the file.
  • The 3px teal bar is the side-stripe accent GUIDE.presentations.md §4 bans outright. It is on every content slide.
  • The pull quote is teal on every slide: the Teal Rarity Rule, inverted.
  • No figure. The wall is described, not drawn. This is the composition of all thirty-five M-slides.
  • The face says RelayCTX; the copy gate says the product is Relay.

Proposed archetype T02 · Statement with figure

  • Kicker in mono, one display headline, body at the guide's scale, the pull quote at the base. Teal appears once.
  • The figure is typed in the slide model (kind: sessions) and rendered by the archetype, so M02 carries its picture in every cut.
  • Body copy is the current canon (v2). The master's slide is a sentence short: a June cut that already drifted.
  • Every size is a fraction of the stage width, so this exact composition is the page, the projected screen and the 1280×720 PDF.

Fonts embedded in the master's own PDF export

  • Arial
  • Calibri
  • Comfortaa
  • Syne
  • Cormorant Garamond Italic
  • Outfit
  • Noto Color Emoji
  • JetBrains Mono · absent

Cormorant Garamond and Outfit export correctly because Slides renders Google Fonts natively. JetBrains Mono is also a Google Font. The register's line that Slides exports a substitution stack is true for PPTX opened elsewhere and false for a native export: the defect is which fonts the builder sets, not the exporter.

Where each face is used, counted per text run

Outfit208body, footers
Cormorant Garamond54headlines, pull quotes
Syne34the eyebrow on every content slide
theme default27index, INDEX and gate slides, exported as Arial / Calibri
Comfortaa1the cover wordmark
JetBrains Mono0kickers, Codes and stamps have no mono face

What else the audit found

Layoutsone DEFAULT layout; every shape is drawn by the script, so nothing inherits a master
Alpha copyslide-for-slide identical to the master; no layout exploration happened there
Builder sourcenot in any repo, not visible to Drive search; reconstructable only from the playbook
M44already in the master's speaker notes on the “One System” slide, unregistered; the tranche slide is about to take the same number

2One model, two renderers, one checker

The direction of truth is unchanged: canon, then master, then cuts. What changes is that every arrow becomes a script with a source, and every output is checked before it leaves. Erik's two rules survive as things a build can enforce: the builder builds the master, and the model comes first.

Canon

One file per M-ID in git, Access-gated. Copy, gate, version, archetype, figure, notes. Relay Codes still carry the change packages; applying one is a pull request.

relay-board · deck/canon/M06.md

Flows

Each derived deck is a recipe: an ID list, a gate ceiling, per-recipient toggles and variables.

deck/flows/introduction-plus.yml

Renderer A · HTML

The page you scroll, the screen you present, the PDF you send, the stamped copy a recipient gets. One file, three faces.

relay-creative · decks/_system/

Renderer B · Slides

The Apps Script reads the same model and regenerates RelayCTX - Deck Slides, fonts set explicitly, notes stamped, INDEX generated.

committed .gs, pushed with clasp

Checker

Gate ceiling, copy gate, facts, faces, budget, font panel, stamp. Fails the build; wired into CI like the estate's other eleven.

scripts/build_deck.py --check

Register

A sent copy is frozen and logged by the build, not by memory. “What did they actually see” has an answer.

relay-board · assets/decks/<recipient>-<date>.pdf

3Flow 9, rendered by the proposed system

Introduction+ (OPEN, shared in confidence): M01 · M02 · M03 · M04 · M06 · M07 · M08 · M09 · M05. Copy verbatim from the Master Copy Deck with the adaptations already governed on the living Introduction; M08 at its canon-ready v3. The provenance line above each slide is what the speaker note carries; nothing reaches a face. Present this cut to see the same stages fullscreen with notes and the one beat each slide is allowed.

← → navigate · N notes · Esc exit
M01 OPEN · v2 · 2026-06-03 · T01 Cover · drenched bookend
Relay
The session ends.
Context shouldn't.
Relay is a context layer — carrying the substance of work across sessions, tools, agents, and people.
Relay Context Inc. · Investor introduction · Shared in confidence · September 2026
Cover. The mark draws in, then the framing line. The subhead is the vocabulary-gate wording already live on the Introduction; the Drive canon is flagged to follow.
M02 OPEN · v2 · 2026-06-03 · T02 Statement · figure: sessions
The problem
The invisible wall.
The model does the work, the session ends, the context disappears. Every handoff, every closed session, every new tool starts over from scratch — and as AI accelerates, that loss compounds across every team.
SESSION 01
starts from zero
SESSION 02
starts from zero
SESSION 03
starts from zero
context lost between every session, tool, and handoff
“A problem that's obvious in hindsight, and invisible until someone names it.”
The wall, in sequence: each session lands, then the cross. Do not narrate the mechanism of loss, only its shape.
M03 OPEN · v3 · 2026-06-03 · T02 Statement
What Relay is
The layer that carries context forward.
Relay moves context across sessions, tools, agents, and people — on your terms, with its full history. Work continues instead of starting over, whatever platform you're on.
“Infrastructure that moves context — the substance of the work itself.”
A statement slide carries no beat. Let the headline sit.
M04 OPEN · v3 · 2026-06-03 · T03 Statement with callout
Why now
A narrow window. No established players.
The standards that let AI tools talk to each other have only just arrived — opening a narrow window to establish the layer that moves context between them. Operators running multi-tool, multi-agent workflows hit this wall today. The tools exist; the layer that carries context between them doesn't.
A novel approach in a category that's still forming.
“Moving context with provenance and control. That's the architecture.”
The window opens: the callout arrives from the right after the body. “Protection in progress” is the only IP language at this gate.
M06 OPEN · v3 · 2026-06-04 · T04 Flow · figure: flow + chip
How it moves
Context that travels.
1
Send
Package the context of your work, from wherever you're working.
2
Route
Relay carries it under your rules: who can receive it, where it's allowed to go.
3
Receive
It arrives where it's needed and work continues — on the record.
A4K9R2one Code carries it — for a person or an agent alike
“No integration project. No platform switch. It works where you already work.”
Three beats, then the Code. The motif is movement only: never annotate envelope, payload or routing internals. The example Code is example-shaped and implies no length.
M07 OPEN · v2 · 2026-08-08 · T05 Category · figure: categories
Where it fits
A new layer, not another tool.
Memory tools — store and retrieve.
Orchestrators — coordinate inside one runtime.
Integration platforms — move data — not working context.
Agent messaging — now shipping as a default inside the tools themselves. Carries a name, a reply address, and a sentence.
Each is valuable. None of them carries the substance of work between sessions, tools, agents, and organizations. The newest of them makes the point plainly: the channel is being built, and it deliberately does not carry the work. Relay is the layer between them — the part of the stack nobody has claimed.
“They built the doorbell. The package is still the open problem.”
The layer settles: categories stack, then the resolution. Categories stay generic at this gate.
M08 OPEN · v3 · 2026-09-10 · T06 Proof · figure: traction set the number is evidence, not the hero
Real today
Active now, with the tools people already use.
Live with Claude, Cursor, custom agents, and any MCP-compatible platform — no integration required. In use daily: sessions that carry into tomorrow, teams that stay current across agents and people, collaboration across company lines without shared workspaces.
  • 25,000+ relays moved — most of them by the founder's own operation, the daily load that hardened the platform
  • ~10 accounts — the majority internal; a small external early-access group doing real work
  • $0 revenue — every user on a free or beta plan until v1.0
A novel architecture — protection in progress.
“Not a concept — a working layer.”
The honest set and nothing else; never the retracted “21 external” figure. The headline is the maturity claim; the number is evidence under it, never the hero. Re-verify every figure at every re-cut.
M09 OPEN · v1 · 2026-06-04 · T08 Round · figure: off per-recipient toggle
The round
Raising a pre-seed to scale the layer.
A pre-seed via SAFE — open now, rolling close. Funds the founding team, go-to-market, and enterprise pilots.
Founding teamGo-to-marketEnterprise pilots
Terms and the full picture in conversation, under MNDA.
“The next step is a short conversation — and a look at what's already built.”
Figure off for this recipient. When the toggle is on, this slide becomes the drenched moment and carries the figure in amber, read from Canonical Facts. No cap, no discount, no returns, no projections at this gate.
M05 OPEN · v3 · 2026-06-03 · T15 Close · drenched bookend
Context carries forward with Relay.
A high-level introduction, shared ahead of a fuller conversation. Product, architecture, and early signal — best demonstrated directly. We'd welcome a short conversation.
Erik Christensen — Founder, Relay Context Inc.
erik@relayctx.com · relayctx.com
Confidential — Relay Context Inc.
Close. The Introduction variant. No beat.

Why this cut has no interior drenched moment

The guide's budget is bookends plus at most one interior moment, earned by the slide with the number or claim that deserves the room. The Elevate cut ships M09 with its figure off, so the round has not earned it. The first draft of this page gave the moment to M08 v3 instead, with 25,000+ in amber, and the review of the ElevateIP deck (carried by relay D7EHHS9559) ruled the same composition out on that deck: a big traction number immediately walked back by “majority founder-operated” reads as inflate-then-deflate. So the number sits inside the evidence and the cut runs bookends only. The rule the renderer follows: the moment follows the figure, and a figure that needs a caveat is not a hero. Flip the M09 toggle on and the round takes the moment, with amber on the figure, exactly as the living Introduction renders it.

4The deck that presents itself

A Google Slides file is one thing: a file. The rendered deck above is three: the page an investor scrolls on a gated surface, the screen Erik projects, and the PDF the festival profile carries. Present mode is the part a Slides file cannot be, and it is governed by the motion register rather than by taste.

The beats

SlideBeatProvenance
M01 Coverthe mark's rays draw in, then the framing line risesbrand motion, pulse family
M02 Problemeach session lands, then the cross: the wall, in sequenceBRIEF.animations “Wall slam”, reinterpreted
M04 Why nowthe callout arrives from the right after the bodyBRIEF.animations “Window opens”
M06 How it movesSend, Route, Receive in turn; then the CodeBRIEF.animations “Send → Route → Receive”
M07 Where it fitsthe categories stack, then the resolutionBRIEF.animations “Layer settles”
M08 Real todaythe evidence rows land in turnthe proof archetype
M03 · M05 · M09nonestatements carry no beat

The rules it keeps

Register ruleHow
2 · play never gates contentbeats fire only in present mode; the scrolled page is the finished frame
3 · reduced motion is completeprefers-reduced-motion removes every animation; nothing is parked at opacity 0
4 · one loud pieceone beat per slide, and statements carry none
7 · transform and opacity onlyevery keyframe is a translate, scale or fade; no libraries
9 · decorative layers are hiddenarrows, crosses and rays are aria-hidden; the text layer stands alone
Notesthe speaker note carries the M-ID stamp; the face never does

5The slide model, the flow file, the checker

Built the same day, in this repo: the archetypes are decks/_system/relay-deck.css, the inventory is decks/templates/, the master is decks/master/, the recipes are flows.json, and scripts/build_deck.py cuts a flow and runs the checks below. The master carries the model as data attributes on each slide today; the one-file-per-M-ID form shown here is the port the board proposal asks for.

One M-ID, one file

id: M06
title: How It Moves
gate: OPEN            # the checker reads this
version: 3
date: 2026-06-04
archetype: T04        # Flow
kicker: How it moves
headline: Context that travels.
figure:
  kind: flow
  steps:
    - { name: Send,    text: "Package the context of your work…" }
    - { name: Route,   text: "Relay carries it under your rules…" }
    - { name: Receive, text: "It arrives where it's needed…" }
  chip: { code: A4K9R2, note: "one Code carries it…" }
quote: "No integration project. No platform switch…"
notes: |
  Three beats, then the Code. Never name the envelope,
  the payload, or how routing decides.
rules:
  - "Zero mechanism below the NDA gate."

A flow is a recipe

flow: introduction-plus         # Flow 9
gate: OPEN                      # the ceiling
slides: [M01, M02, M03, M04, M06, M07, M08, M09, M05]
toggles: { M09.figure: off }
vars:
  framing: Investor introduction
  date: September 2026
recipient: null                 # set → stamped export + sent-log row

Figures never carry typed numbers. The round figure lives once, in Canonical Facts on the board; M09, M23, M27, M40, M41, M44 and M45 read it. The raise-figure correction documented on 2026-08-27 becomes one line and a rebuild.

Archetypes, mapped to the guide

T##ArchetypeM-ID families
T01Cover, drenchedM01
T02Statement (optional figure)M02 M03 M15
T03Statement with calloutM04
T04Flow: nodes and Code chipM06 M11
T05Category stackM07 M14
T06Proof list: evidence rows, the number never the heroM08
T07Stat, drenched when earnedM21
T08Round / Ask, figure toggleM09 M23
T09LadderM20 M44
T10BarsM40 M41
T11TimelineM42 M43 M26
T12LayersM10 M28
T13LandscapeM14 M13
T14RosterM34 M36
T15Close, drenchedM05
T16Gate divider, master onlyG1 G2

The checker

RuleFails when
Gate ceilinga flow lists a slide above its gate
Copy gateRelayCTX in copy · PIN · a banned word describing Relay · patent-pending
Factsa figure on a face is not in Canonical Facts
Facesan M-ID, tier or version reaches a face
Budgettwo display headlines · drenched beyond bookends + one · amber on light
Fontsan exported PDF embeds anything but the three families
Stampcopy changed, version and date did not
Vocabularyreceive vs claim: reported, not failed, until the pass rules

6Slides stays. It becomes an output.

Erik's rules are kept whole. “Built with the builder against our master template” becomes the builder builds the master. “Master first” becomes model first: the master and every cut regenerate from it, so a derived deck can never carry a fact the model does not.

What changes in the Apps Script

  • It reads the model (JSON emitted from the same files) instead of carrying copy in code.
  • Fonts are set explicitly per role from the token spec: Cormorant Garamond, Outfit, JetBrains Mono. All three are native in Slides, which is why the master's export already embeds two of them correctly.
  • Drenched slides take a rendered gradient PNG as the background; teal-bright and amber are set as literal fills from the spec.
  • Every speaker note is written as M## · T##; the INDEX slide is generated from the model, so it can no longer fall behind the canon.
  • Idempotent, as the playbook already prescribes: capture originals, append, remove originals last.
  • The .gs is committed and pushed with clasp. The base64-into-the-editor injection retires with the copy-paste problem it solved.
  • Built the same day: decks/_system/slides-export.gs reads the model that build_deck.py --json writes and draws the cut natively in the master, idempotent by M-ID. Untested in the session that wrote it; the first run is confirmed in Drive. Erik's ruling on the workflow: design and cut here, then bring the generated slides into the masters.

What it is for once it is an output

  • The editable deck a recipient explicitly asks for, shipped beside the PDF of record, as the guide's §7 already says.
  • The surface Erik edits by hand when he wants to, knowing the next rebuild reconciles it back to the model.
  • The Drive index the existing derived-deck links point at. The file keeps its ID; every link in the register holds.
  • Not the thing that decides what a Relay deck looks like. That is the archetypes, and they live in git with the checker beside them.

7The plan, and the five calls that gate it

Decisions, all Erik's

  1. Source of truth for canon. Drive doc (today) or git slide model (proposed). This one unlocks the rest.
  2. The Slides master: source or output. Both of Erik's rules survive either way; only one of them can be enforced.
  3. Wordmark on slide faces. RelayCTX (today) or Relay (copy gate). The renderer needs a value.
  4. The drenched treatment (RCTX-96). This page and the living Introduction both assume bookends plus one earned interior moment. Ratify or change it before Phase 1 encodes it.
  5. receive vs claim. Canon locks receive (June); the copy gate and the product say claim (July). This page keeps canon verbatim; the checker reports rather than fails. Not resolved here.