Reach joins the DidiDecks shell — a deck-collections layer, and the first Strategy deck
reach-edu-hub now consumes the shared @dididecks/shell instead of its own hand-rolled deck chrome: the three decks moved onto the shell's /scroll/[deck]/[variant] routing (with redirects from the old URLs), every section gained slot annotations, and the shell's TOC + in-deck ranking light up. On top of that we added a new layer above single-deck convergence — deck collections (Stories / Automations / Strategies) with their own menus — and shipped the first Strategy deck end-to-end: Rural Income Boosts through Apprenticeship Degrees, built on a new token-driven, mode-aware section system.
Reach joins the shell — and grows a layer above single decks
Why Care?
Until today reach-edu-hub was a standalone site: its own PageAsDeckWrapper, its own variant registry, its own deck chrome — none of it shared with the other DidiDecks client-sites. Every improvement to the shared shell (the review TOC, in-deck slide ranking, the play runtime) passed reach by.
reach now runs on @dididecks/shell like chroma, humain, and lossless. The three decks — the Reach Story (baseline + editorial) and Pipeline & Automation — moved onto the shell's /scroll/[deck]/[variant] convention, so they inherit the shared chrome and show up in the review tooling. Old links (/story, /story/version-2, /automation) redirect to the new routes, so nothing already shared with Reach breaks.
Then we added something the shell didn't have: a menu layer above single decks. The whole DidiDecks workflow so far has been about converging on one deck through variants. Reach needs to present many distinct decks — different narratives, each a "strategy." So there are now three collections — Stories, Automations, Strategies — each with its own menu, grouping peer decks without touching their URLs.
And we proved the strategy loop end-to-end with the first one: Rural Income Boosts through Apprenticeship Degrees — a narrative authored in markdown, then designed into a full Scroll-UI deck.
What's New?
On the shell. reach-edu-hub joined the workspace and added the dididecksShell({...}) integration. Output flipped to server (the shell's injected routes run esbuild during prerender, which a static build can't do). The three decks live at /scroll/story/baseline, /scroll/story/editorial, and /scroll/automation/pipeline; /toc/... review pages and the in-deck rank pill work. All 29 section components gained data-slot / data-variant annotations so the rank pill tracks the active slot.
Deck collections. A new collections.ts registry plus a DeckCollectionMenu component and three menu routes — /stories, /automations, /strategies. Collections reference decks by slug; they don't rename decks or appear in deck URLs. Strategy narratives are authored as folders under context-v/narratives/strategies/<name>/. The full concept (collection vs. variant — breadth vs. depth) is written up in context-v/explorations/Deck-Collections-A-Menu-Layer-Above-Single-Deck-Convergence.md.
First Strategy deck — Rural Income. Eleven Scroll-UI slides arguing the Apprenticeship Degree as a rural economic-development engine — income that rises and stays local — including a national/regional/local supporter & funder pipeline slide. Live at /scroll/rural-income/v1, listed on /strategies. The draft narrative + cited sources live at context-v/narratives/strategies/rural-income/README.md; unverified figures are flagged in-deck with a VERIFY marker.
A token-driven design system (the real upgrade). New src/styles/deck-primitives.css — a reusable, mode-aware section vocabulary (.deck-section, .deck-h1/h2, .deck-gradient, .deck-card, .deck-stat, .deck-chip, .deck-glow). It reads only the Reach brand's Tier-2 semantic + --fx-* tokens (including the per-mode headline gradient and card shadow the older sections ignored), so light / dark / vibrant work with zero per-element variant classes. This is the drag-and-drop base future strategy decks build on — coherent without being frozen.
What's Next?
Verify the rural-income figures (wage delta, grant amounts, NCAD target) and fill the regional/local funder tiers with real names.
Wire the three collection menus into the site nav.
Build out the rest of the strategies.
Upstream candidates for
@dididecks/shell:DeckCollectionMenu, thecollections.tsshape, anddeck-primitives.css. Also a shell fix so variant slugs can repeat across decks (today they must be globally unique).
