Concept · v1 · 2026-09-13

Roadmap visibility — one source, two shells

Participants see what is built and what is coming, ahead of public disclosure. Admins see the same source unfiltered, decide row by row what crosses over, and write the words that go with it.

Nothing built · proposal PRD · relay-board Third render · RCTX-1169 Blocked on the canonical source
The app surface an EAP participant signs in to. Every row below is admitted by policy and published by an operator.
01

One source, three renders — and the source itself

The console screen this extends already exists and already says 2 renders. The participant render is the third. The admin view is not a fourth render — it is the unfiltered source, which is the only place the withheld rows are visible at all.

Render · board
Dates, including slippage
Fiduciary. Needs the real plan. Spec'd, not built.
Render · investor
Gates only, never when
A missed date diligenced in the next round costs the raise.
Render · participant
Sequence only — Now / Next / Later
Proposed here. A date told to a user is a promise.
The source · admin
Everything, with the reason
Withheld rows shown as withheld — never absent.
E1
The one thing that is not additive. The legal gate fails open on a database error — right for “don't lock everyone out of login,” catastrophic for a surface holding pre-disclosure material. The EU/EPO grace period is zero. The participant read gets its own fail-closed path and does not reuse gate_needed(). Drawn in §4.
02

The participant surface, in the app shell

Two halves with very different risk profiles. What's built describes software the participant is already running — zero disclosure exposure, and it ships first. What's coming is the admitted-and-published set, and it is the half that waits on the canonical source.

app.relayctx.com/roadmap Product lens · NDA + EAPA current
What's happening
You're in the Early Access Program, so you see this before anyone outside it does. Under your NDA — please don't forward it.
Built — since you joined
Source
Generated from the app's own user-facing changelog — the one already written for this audience, one curated line per meaningful change. No second list to keep in step.
What's coming
We're working on more than this page shows. Some of it we can't talk about yet — when we can, you'll see it here first.
Try
Switch to the admin console above and flip a Show to participants toggle, or rewrite a message. Come back here — it has already changed. That is the whole argument: one source, and the operator's switch is the only thing between it and this page.
No count
The investor render reports withheld_count so a filtered pack cannot look complete — correct for a fiduciary artifact. Wrong here. A number that moves is itself a signal about unfiled work, and a competitor can join an early-access program. The honest sentence costs nothing and leaks nothing.
03

The admin view, in the console shell

The existing Roadmap screen, extended from two renders to three — plus the mode the others do not have: Unfiltered, the source itself, where every withheld row is visible with the predicate that withheld it.

console.relayctx.com › Board › Roadmap superadmin
Roadmap
Unfiltered — the source, with every row's admission shown
Roadmap items
Participant messaging —
  
Exactly what they see
Rule
The title is the outcome-level name, never the internal epic name. The preview is the render, not an approximation of it — an operator who has to imagine the result writes for the wrong reader.
Requests — the constructive twin of gate-denied
Pairing
gate-denied already ships: it records that the app refused a surface, with the feature key and the reason. A request is the same axis pointed the other way — someone asked for the door. One feature-key namespace, two directions, and together they answer the question neither answers alone: is this gate protecting us, or just costing us?
04

Edge cases — the register, and what closes each one

E1–E3 are ship gates: the surface does not go live to a single participant until all three are closed and pinned by a test. The rest are ordered by what they cost when they happen, not by how likely they are.

Answering to relay-board/docs/product/PRD.eap-roadmap-visibility.md — the draft PRD of record (admission policy, failure register, sequencing, Launchpad disposition).
relay-platform/docs/SPEC.roadmap-visibility.md — the build contract this page is drawn against: data model, resolver, endpoints, the publish/messaging write path, and the test plan. Extends Console — board dashboard — the roadmap screen with its existing two renders, and the source this adds a third to. Shells borrowed from app-v35 (participant) and console-v35 (admin) — same rail, same sidebar, same card and table grammar. Nothing new was invented to draw this. Status Nothing on this page is built. The two existing renders are spec'd and blocked on the canonical roadmap source; the participant render, the publish toggle, the messaging field and the request queue are proposals. Fixture data only.