# V10 Features — The Rail: The Ambient Companion Surface

Status: V10 feature inventory, concept stage. Source: **originating design
document for V10** — [`V_SERIES_AMBIENT_RAIL.md`](V_SERIES_AMBIENT_RAIL.md)
(this directory, 2026-07-16), whose decisions D1–D8 are settled and fixed. Like
V6 (Egbe), V7 (Mawu), V8 (Ariadne) and V9 (Metis), V10 begins from a design
document rather than an implementation backlog; its backlog is
[`V_SERIES_AMBIENT_RAIL_TODOS_2026-07-16.md`](V_SERIES_AMBIENT_RAIL_TODOS_2026-07-16.md),
and thereafter that checklist is the source of truth for completion state.
Implementation has begun (the v10 channel contract and the first rail-kernel
policy modules are in the tree); every feature below is scoped against that
checklist, and none is shipped until it is checked there.

V10 productizes the **sidebar slot** — the persistent side panel where most
waking media hours actually live (the space YouTube, Twitch, Spotify, and cable
news own today) — as a calm, portfolio-wide companion surface called **the
Rail**. Every V-series product publishes an **ambient channel** into it through
one shared contract; full immersion in any V remains a door, but stops being the
only door. V10 was designated the tenth product (decision D8) rather than a V1
feature: the surface that arbitrates attention among nine products should not be
owned by one of them, and V1's review already warned against adding more surface
area to V1 itself. V10 rides V1's identity/entitlement graph (decision D7) but
owns nothing account-shaped of its own.

Audience: product, design, platform, streaming/media, trust-and-safety, growth,
and accessibility leads scoping V10; every V-team shipping a channel.

## Purpose

Every V1–V9 product is designed as a **destination**: enter, give full
attention, leave. That competes for the scarcest resource (contiguous free
attention) and ignores the most abundant one (peripheral presence across an
8-hour day). V10 claims the peripheral slot with four design requirements drawn
from why broadcast media wins it and games don't:

1. **Progresses without you** — every channel is backed by something persistent
   (a league, a simulation, a case unfolding, a live feed).
2. **Glance-legible** — the "what's happening now" of any channel renders in a
   2-second-readable tile.
3. **Absence is free** — no streaks lost, no decay, no expiring rewards keyed to
   attention; V1 Arete's humane vocabulary (`done|partial|skip|decline|miss`) is
   adopted portfolio-wide.
4. **It's company** — co-presence without obligation; mood is a first-class
   goal.

## The product, layered

- **The shell** (P0): a native desktop app (Tauri, Rust — decision D7) shaped
  for the two-thirds/one-third desktop split. Window behavior is the product:
  launches narrow, docks to a screen edge, stays pinned across restarts, offers
  always-on-top, and keeps a tray/menu-bar presence (tile glances + audio
  control) even when the panel is closed.
- **The channels**: each V implements five contract primitives — presence tile,
  drip events, micro-acts, dual faces, live moments (see `V10_ARCHITECTURE.md`
  §2). The Rail owns composition, batching, arbitration, and policy; channels
  own content.
- **The policy kernel**: per-channel **loudness grants** (0 hidden · 1 tile · 2
  tile+drip · 3 elevation-allowed), daypart ceilings, a merged drip timeline,
  live-moment budgets, three brand rings, and discretion mode.
- **The lanes**: one arbitrated audio lane (exactly one holder at a time) and
  one arbitrated video lane (first-party live, overlay/second-screen, and docked
  third-party YouTube/Twitch — decision D5).

## User-facing experience (what V10 ships)

### Presence tiles

A vertical stack of 2-second-legible "now" renders: an evidence board's state,
your ghost's league record, tonight's sky event, cards due, realm population.
Silent, no autoplay motion by default, meaningful from cold cache, and
degradable to text-only (required for discretion mode and the watch surface).

### The timeline

One merged feed of **drip events** from all subscribed channels — a witness
statement released, your ghost upset a higher seed, a claim verified live.
Channels cannot interrupt: the Rail decides batching, ordering, and delivery
timing as daypart policy (deep work holds drips; breaks flush them). A global
drip budget on top of per-channel limits keeps ten subscribed channels from
becoming noise; overflow degrades to per-channel rollups, never silent drops.

### Micro-acts

Interactions of ≤30 seconds executable inside the Rail without launching the
product: pin a suspect, answer two review cards, tweak the ghost's tendencies,
approve a realm collab, do one breath with Tara. Micro-acts are the top of the
dive funnel (glance → micro-act → live moment → dive), and every dive deep-links
into the exact moment that prompted it — never a main menu.

### Loudness: calm by default, granted never taken

The single mechanism reconciling "respect attention" with "engaged players want
to be interrupted": a per-channel user-set grant, with **effective loudness =
min(daypart ceiling, channel grant)** plus explicit user-pinned exceptions
("always break through for V2 finals"). New channels default to 1. Elevation
requests are typed, budgeted per channel per day, and unspent budgets do not
accumulate. Non-negotiable invariants: no absence punishment, no autoplay
motion/sound at loudness ≤2, and success is measured in docked-hours and
micro-act quality — never interrupts-clicked.

### Dayparts

The choreography spine (user-tunable; calendar-aware in a later phase):
**morning brief** (ceiling 2 — the Thread: practice, Veritas audio briefing,
today's case opens, Daily Wonder, Nyx sky), **deep work** (1 — audio lane +
silent tiles only), **breaks** (2 — the micro-act surface), **lunch** (3 — live
windows, highlight video, realm surf), **wind-down** (3 — accusation window,
recaps, concerts, Ori reflection). Dayparts gate what may surface, never what
the user owes.

### Discretion mode (P0, not polish)

A glanceable sidebar is the opposite of private, and work screens get shared:
one-keystroke instant hide, per-channel text-only tiles, and screen-share
detection that auto-collapses personal tiles (health, Ori, the adult ring, even
the active case) to neutral text. Protects the wellness ring as much as the
adult one.

## The channel lineup (fit and phase, per the design doc §7)

| Channel                  | One-line experience                                                               | Phase           |
| ------------------------ | --------------------------------------------------------------------------------- | --------------- |
| V8 Case Files            | A daily mystery drips clues all day; evening accusation window + fairness receipt | **P0 anchor**   |
| V9 Wonder & Recall       | Daily Wonder at morning brief; FSRS micro-reviews as break filler                 | **P0**          |
| V3 Motion                | Adaptive work-music holds the audio lane; movement-break micro-acts               | **P0**          |
| V3 Stage                 | Music television — videos, concerts, stage performances in the video lane         | **P0**          |
| Veritas Live (V1)        | Live news with claims verified in the ticker; overlay mode on external video      | **P1 flagship** |
| V6 Ori Presence          | Optional companion layer: narrator/concierge, consent-gated, believability beta   | P1–P2           |
| V2 Ghost Dojo League     | Your trained ghost fights a persistent league all day while you work              | P2              |
| V7 Realm Surf / My Realm | Channel-surf live UGC realms; your realm's economy ticks overnight                | P2              |
| V5 Period Channel        | A simulated period world that is simply on: newspaper, diegetic radio, slow TV    | P2              |
| V4 Match Channel         | 24/7 auto-directed, auto-commentated matches; ambient cut during work             | P2–P3           |
| Aphrodite ring           | Adult live streaming, hard-walled and opt-in only                                 | P3, walled      |

V1's remaining house channels (Nyx sky-and-awe, Tara presence bells, Arete
gentle progress) join as wellness-ring tiles; Nisaba/Metis rooms fold into the
V9 channel rather than duplicating it.

## Dual audiences, dual faces

Every channel declares a **spectator face** and a **player face** on the same
tile (decision D2): featured league vs. _your_ ghost, public case vs. _your_
evidence board. The Rail picks the face from entitlement state. Spectating is a
success state — the front-door audience may watch for months and never dive, and
is never measured as failed conversion.

## Brand rings and policy walls

Three rings (design doc §9): **wellness** (default identity — V1 house channels,
V9, V3 Motion, Ori; calm invariants at their strictest), **games**
(V2/V4/V5/V7/V8/V3 Stage; loudness 3 available, live-event energy earned), and
**adult** (Aphrodite content only — invisible until explicit age-verified
opt-in, separate brand, web/desktop only, private/wind-down dayparts only,
excluded from Ori narration, watch parties, and all cross-promotion). Prediction
micro-acts are points-and-bragging-rights only; anything wager-shaped is out of
scope and requires its own review.

## Surfaces

| Surface                       | Role                                                     | Priority |
| ----------------------------- | -------------------------------------------------------- | -------- |
| Desktop shell (Tauri, native) | Primary — docked window, always-on-top, tray presence    | P0       |
| Browser side-panel / PWA      | Same web UI without native window powers                 | P1       |
| Mobile (inside the V1 app)    | Timeline as feed; micro-acts on the go; TV second screen | P1       |
| Watch                         | One tile + haptic-gentle live-moment alerts              | P2       |
| TV / cast                     | Video lane full-screen; watch parties                    | P2       |

The mobile/watch satellites can never carry the adult ring — a per-surface
channel-availability matrix enforced in the contract schema from day one.

## Non-goals

- **Not an engagement machine.** The metrics are locked before launch:
  docked-hours, micro-act completion quality, voluntary-return rate, and a calm
  SLO (elevations per user-day under a ceiling). Interrupts-clicked is
  structurally absent from the metric set.
- **Not a tenth content pipeline.** V10 composes what the Vs already built (the
  consolidation audit's duplication census — 7 matchmaking, 5 rollback, ~6
  battle-pass, 2 C2PA signers — is the cautionary tale). One channel contract,
  one streaming substrate (generalized from Aphrodite's seventeen services), one
  signer (`@oshun/content-signing`).
- **Not a moderation venue for third-party video.** Docked YouTube/Twitch is the
  user's own embed; we host the slot geometry, we do not moderate the content
  (legal review gates watch-party chat adjacency).
- **Not gambling.** Points-only predictions, revisited never lightly.

## Definition of done (Phase A exit)

The native shell exists with tiles, timeline, loudness grants, dayparts, both
lanes with third-party docking, and discretion mode; the four P0 channels (V8
Case Files, V9 Wonder & Recall, V3 Motion, V3 Stage) drip real content daily;
the invariant suite (no absence punishment, no autoplay ≤2, budgeted elevations,
calm-only metrics) runs green. The honest exit test, in the design doc's words:
_does the author actually leave it docked next to Claude Code for a full week?_
Full phase gates and task-level acceptance criteria live in
`V_SERIES_AMBIENT_RAIL_TODOS_2026-07-16.md`.
