# MANIFEST — relay-creative

One-line: The Relay creative estate — brand system source, product-surface
concepts, marketing site + stealth, email, MCP visual reference, briefs and
copy — served at `creative.relayctx.com`.

Read this first. It's a map, not a pile. This repo is mostly assets (HTML/CSS/JS
concept pages) plus markdown briefs; the index below is **by area**. Each area
folder carries its own card index (`index.html`, with canonical / fresh /
archived labeling) and a curated `CHANGELOG.md`; this file is the master index
over all of them. When a doc or asset is added, moved, or retired, its row here
changes in the same PR (manifest drift = a bug).

## Index — entry docs

| Doc | Type | Purpose | Owner | Reviewed |
|-----|------|---------|-------|----------|
| README.md | Overview | Repo overview | — | 2026-07 |
| PRODUCT.md | Reference | Product context for creative work | — | — |
| CATALOG.visual-assets.md | Reference | **Visual asset catalog (canon)** — brand primitives, design system, cross-repo derived-copy fan-out, the Mermaid diagram library, HTML asset families; the "pull from canon / build as needed" index | — | 2026-07 |
| MAINTENANCE.md | Guide | Index upkeep — hub + area cards, labels, `_redirects`, sections | — | 2026-07 |
| GUIDE.deploy.md | Guide | Deploy & branch model — Cloudflare Pages, **`main` = prod**, `creative.relayctx.com`, area-prefixed branches | — | 2026-07 |
| ACCESSIBILITY.md | Audit | WCAG 2.2 AA audit notes — error pages, email templates, public-bound marketing | — | 2026-07-17 |

## Index — by area

Every area has an `index.html` (card index) and a `CHANGELOG.md` (curated,
newest first). The site hub is the root `index.html`.

| Area | Location | What's in it |
|------|----------|--------------|
| **Hub** | `index.html`, `_redirects` | Creative-domain home — area cards, specs & docs bridge, reference. Clean-URL + legacy redirect map. |
| Concepts | `concepts/` | **Responsive shell v1** (`concepts/shell-responsive-v1/` — the shell laws as a working prototype at full scale: desktop rail folding to an off-canvas drawer at ≤860px, DEC-025 cards, transform-only filter sheet, plus the console twin sharing one CSS; reference implementation for `briefs/BRIEF.ui-component-kit.md`), full clickable product-surface concepts — app (`concepts/app-v35/`), operator console (`concepts/console-v35/`, incl. the shell notification layer and the tier-1 **Investor track** screen — draft proposal for the investor lens, pack registry, and the legal-gate applicability axis; spec in `relay-platform/docs/SPEC.investor-track.md`), the **board dashboard** (`concepts/console-v35/board-dashboard.html`, clean URL `/concepts/board` — tranche gates T1–T4 instrumented as signals with per-figure provenance and five source states, roadmap as one source with a board render and a date-free investor render, and the onboarding-track lens on the investor screen above; concept-only, build gated on approval — specs in `relay-platform/docs/SPEC.board-dashboard.md` and `relay-board/docs/product/board-dashboard.md`), activation & onboarding, Context Map / Explore line, mobile, auth, public views (`concepts/public/` — the public `.shell` + error pages), easter eggs, **Code presence** (`code-presence-v1.html` — DEC-025 shared vs. never-shared display direction) |
| Marketing | `marketing/` | Stealth pages (`marketing/web/stealth/`), v3.5 site candidates (`marketing/web/v35-neutral/`, `marketing/web/v35-bold/`, chooser at `marketing/web/site/`), direction studies (`marketing/web/explore/`), early generations v1–v5, animatics |
| Brand | `brand/` | **Material layer** — composition for decks/documents lives in `guidelines/` (`GUIDE.presentations.md`, `GUIDE.documents.md`); `brand/relay-deck-tokens.css` is superseded by the former. Brand brief, `brand/relay-design-system.md`, v3.5 tokens (`brand/relay-tokens-v35.css`, **source of truth**), interactive brand guide, asset pack (`brand/assets/`), type + identity explorations, gallery + motion lab, naming-exploration showcase (`naming-exploration.html` + `BRIEF.name-alternatives.md`) |
| Email | `email/` | Platform gallery (`email/platform/`, rendered from relay-platform's live templates), onboarding drip drafts (`email/onboarding/`), v3.2 archive (`email/v32/`) |
| MCP | `mcp/` | MCP visual reference — relay card display, response cards, **Code presence** (`code-presence-display.html` — rich + plain tiers under DEC-025) |
| **Guidelines** | `guidelines/` | **Interface law (canon)** — how Relay surfaces are composed and behave, the layer between the design system (material) and the briefs (direction). `GUIDE.interface-principles.md` (governing principle + the seven rules), `GUIDE.mobile-composition.md` (390px-first, space budget, sheets, touch), `GUIDE.list-surfaces.md` (card anatomy, badge rule, filtering, volume checks), `GUIDE.states-and-language.md` (empties, errors, gates, voice, locked vocabulary), `GUIDE.harness-surface.md` (the agent harness as a designed surface), `GUIDE.presentations.md` (deck law — living-page standard, slide type scale, drenched budget, M-ID archetypes, font-delivery policy for exports), `GUIDE.documents.md` (document law — page chrome, versioning, per-viewer watermark standard, letterhead-as-PDF). Full area: `index.html` card index + `README.md` + `CHANGELOG.md`, served at `/guidelines/`. **Law, not proposals** — a brief that contradicts a guideline changes it in the same PR or doesn't ship. Derived from the experience-program findings register in relay-app |
| Briefs | `briefs/` | `BRIEF.*` creative briefs + `SPEC.design-v34.md` / `SPEC.design-v35.md`, `AUDIT.console-v35.md`, `SPEC.rbac.md`, **`BRIEF.code-presence.md`** (DEC-025 display laws — gates the relay-app REFERENCE rewrite); **`BRIEF.cloud-files.md`** (Drive-style folders + search-first prototype, built as `concepts/files-v1.html`; superseded on membership by the organizing layer, drawn as `concepts/files-v2.html`, composed into the app as `concepts/app-v35/catalog-shelves.html` (now carrying attribution basis + rule validity per `` relay-platform/docs/SPEC.collections.md ``; banner-superseded 2026-08-10, kept as record), reshelled as the GitHub shell in `concepts/files-v3.html` and folded into the app as **its own rail section** in `concepts/app-v35/files.html` (Files ≠ Catalog — 2026-08-10 direction calls: Catalog keeps only the taxonomy, the cross-type Objects table moved into Files, the rail's Shelves/Libraries groups retired, the mislabelled lens group reads Lenses), governed in `concepts/console-v35/org-ia.html`, and mobile-first in `concepts/shelves-mobile-v1.html` — nouns settled 2026-08-08: **Library** (container) / **Shelf** (set), display-layer only — PRD in `` relay-board/docs/product/PRD.cloud-files.md ``, foundation plan in `` relay-board/docs/product/organizing-layer.md ``); **`BRIEF.ui-component-kit.md`** (build-ready work order for the UI component team — five shared primitives in dependency order, composed under DEC-025, extending the existing `ls-*` kit); **`BRIEF.experience-optimization.md`** (standing creative half of the mobile-first + agent-harness experience program — direction and language for findings that aren't plain defects; charter + register live in relay-app); **`brand/BRIEF.name-alternatives.md`** (naming contingency exploration) + **`AUDIT.brand-identity-2026-07.md`** (visual/verbal system consistency check) |
| Copy | `copy/` | Web copy, one-pager copy, onboarding sequence copy |
| Vocabulary | `_vocab/` | **Canonical vocabulary source** (`_vocab/_VOCAB.md`) |
| Decks | `decks/` | Pitch / marketing decks — governed by `guidelines/GUIDE.presentations.md` (deck law). Confidential decks are **pointers only** here, never copies: the investor **Introduction** deck is a living page at `` relay-resources/docs/investor/introduction.md `` (`investor` branch), the reference implementation of the guide |
| Social | `social/` | Social assets |
| Estate showcase | `showcase/` | **Eyes-only estate showcase** (canon) — interactive one-page orientation of the whole estate; derived copy served gated at `board.relayctx.com/showcase/`. Single-page area: `index.html` is the piece itself (carded on the hub under Reference), with its own `CHANGELOG.md` |
| Reference | `history/`, `roadmap.html` | Design history, roadmap visual |
| Shared assets | `relay-agent-launcher.js`, `relay-toolbar.js`, `activation.css` | Root-served runtime assets loaded absolutely by pages in several areas — do not move without a sweep |
| Markdown reader | `functions/_middleware.js` | Edge middleware — renders any `*.md` URL in the branded v3.5 reader (`?raw=1` for plain text). The site's only non-static piece |
| Archive | `_archive/` | Retired assets (not maintained), moved never deleted |

## Index — sequential onboarding (Series V1 "First Relay")

Seed-on-demand onboarding set: a clickable storyboard, its copy deck, and the
unwired email drip. Emails are drafts — canonical live renders come from
`relay-platform/src/relay/email_templates.py`.

| Doc | Type | Purpose |
|-----|------|---------|
| `concepts/onboarding-walkthrough-v1.html` | Concept | Clickable sequential-onboarding storyboard — one phone screen per step (Claim → Transfer → Stream → Handoff-unlock → Graph → Profile) + gated/nudge/complete states. Clean URL: `/concepts/onboarding-walkthrough`. |
| `copy/onboarding-sequence-copy.md` | Copy | Per-step headline/subcopy/CTA + state copy — source of truth for the storyboard and drip. |
| `email/onboarding/README.md` | Reference | Notes the drafts, cadence (Days 0/1/3/5/7/10/14), and the "canonical = platform templates" pointer. |
| `email/onboarding/day0-welcome.html` | Email (draft) | Day 0 — Step 1 Claim (welcome Code). |
| `email/onboarding/step-nudge.html` | Email (draft) | Event-driven pull-back to the current unclaimed step (≤ 1/day). |
| `email/onboarding/edu-day1-transfers.html` | Email (draft) | Day 1 — Transfers. |
| `email/onboarding/edu-day3-streams.html` | Email (draft) | Day 3 — Streams. |
| `email/onboarding/edu-day5-handoff.html` | Email (draft) | Day 5 — Handoffs. |
| `email/onboarding/edu-day7-graph.html` | Email (draft) | Day 7 — Context graph. |
| `email/onboarding/edu-day10-profile.html` | Email (draft) | Day 10 — Profile. |
| `email/onboarding/edu-day14-recap.html` | Email (draft) | Day 14 — Recap. |

## Cross-repo bindings

| Topic | Lives in |
|-------|----------|
| **Creative deploy** (`creative.relayctx.com`) | **This repo** — Cloudflare Pages, **`main` branch**, no build step. `prototype.relayctx.com` redirects here until 2026-08-09. See [`GUIDE.deploy.md`](GUIDE.deploy.md). |
| Design-system tokens (code) | relay-app — `relay-app/packages/ui/tokens.css`, `relay-app/DESIGN.md` |
| Backend API, MCP layer, **backend** deploy | relay-platform (the platform's `main` = prod pipeline — a Python service, distinct from this static site) |
| Public / user-facing documentation | relay-docs (MkDocs) — **no overlap with this repo**: docs are read, creative is looked at; each side links across, neither mirrors the other (see `MAINTENANCE.md` § Boundary) |
| Product decisions / roadmap / planning | relay-board |
| Internal knowledge base | relay-kb |
| Legal / patent / policy | relay-legal |
| Support material | relay-support |
| Backup & DR — summary in relay-kb, full protocol in relay-legal | relay-kb / relay-legal |

Relay workspace binding: `relay-creative` — bound by repo name, **org-independent** (the Relay repos move GitHub orgs as a set).

## Conventions

- **Canonical home for brand & design language**; the code-side tokens live in
  `relay-app/packages/ui`. Keep the two in sync — this repo is the design
  intent, relay-app is the implementation.
- **Vocabulary source of truth** is `_vocab/_VOCAB.md`; other repos defer to it.
- Briefs/specs use `BRIEF.*` / `SPEC.*`; avoid new flat, untyped names.
- **Area indexes and changelogs move with their area** — a page lands with its
  card, its `_redirects` entry, and a changelog line in the same PR.
- **Owner** is `—` until assigned; **Reviewed** = month the row was last
  verified. Area rows are pointers into asset folders.

<!-- Manifest reviewed: 2026-07 -->

<!-- manifest-check
require: brand/**/*.md,briefs/**/*.md,copy/**/*.md,_vocab/**/*.md
sections: brand/,briefs/,copy/,_vocab/
ignore:
-->
