Roadmap

Updates

Careers v.2 Apr 17, 2026 — Apr 30, 2026163d overdue

Testable app (for customers)

Mystery Customer Admin Jul 27, 2026 — Aug 6, 202665d overdue

M4 - Real services and data

From @Brittany Wolff : I have this Confluence doc and this miro board that detail the (more or less) current state of the usage dashboards. It is built on a series of materialized views which are not in Snowflake, but could probably be recreated there. Except it looks like we don't have teachings in Snowflake yet which is one of the base tables. You can find the SQL for the materialized views in the repo (db/views). I think the current versions would be:

Toggles Upgrades Aug 6, 2026 — Aug 7, 202664d overdue

M1 - UX and Architecture Plan

Toggles Upgrades Aug 6, 2026 — Aug 7, 202664d overdue

M2 - Testable Interface in Atlas Apps

Toggles Upgrades Aug 7, 2026 — Aug 17, 202654d overdue

M3 - Deletion and sunsetting of Toggles in Atlas

Toggles Upgrades Aug 19, 2026 — Aug 20, 202651d overdue

M4 - Release v2

DE Home / Platform EFP Aug 13, 2026 — Aug 26, 202645d overdue

M5 - Legacy platform — QA

QA and regression complete on the §4.5 legacy platform changes; no open blocking defects.

DE Home / Platform EFP Aug 13, 2026 — Aug 26, 202645d overdue

M6 - Full-coverage testing

Unit, integration, E2E, accessibility, performance, and regression coverage per §6 complete across rad-helix and rad-platform-layer.

Discovery Education Trials — Self-Service Trial Experience Aug 14, 2026 — Aug 27, 202644d overdue

T1 — Step-machine contract tests

The registration dispatcher is the highest-risk code in the app and has no test. Cover the allowlist (unlisted path, wrong method, undeclared query param all rejected before upstream), the CSRF pair (minted per mutation, Set-Cookie relayed to the browser), the provisioning timeout, and pass-through fidelity — a TrialStepResponse must reach the client unmodified, including the statuses that represent refusals.

Exit criteria: every ENDPOINTS row exercised against a mocked trial_manager; a 200-with- refusal-status never surfaces as an error, and a transport fault never surfaces as a step.

Discovery Education Trials — Self-Service Trial Experience Aug 14, 2026 — Aug 27, 202644d overdue

T2 — Funnel E2E across visitor states

Playwright walk of the funnel in each state the step machine can put a visitor in: new email, existing account, SSO-required, student-blocked, expired campaign, out-of-region, plus trial-one and trial-everything. Demo mode drives the signed-in/signed-out split.

Exit criteria: each branch reaches a correct terminal screen; no branch dead-ends or shows a raw error.

DE Home / Platform EFP Aug 27, 2026 — Aug 28, 202643d overdue

M7 - Legacy platform — release

Opt-in banner, user setting, and nav changes shipped to production ahead of go-live.

Catalyst — Trial Operations Aug 14, 2026 — Aug 28, 202643d overdue

T1 - Route-level integration coverage

(RC-1110, 5 pts, To Do)

There is no test harness in the repo yet. Scaffold Vitest + @nuxt/test-utils and cover the campaign and catalog routes against mocked upstreams: session forwarding per environment, write-flag gating (405), no-session behavior (401), and upstream-error mapping. These gates are the newest logic in the app and the easiest to regress silently.

Exit criteria: suite runs in CI with no live upstream; every write route asserts its 405 and 401 paths.

Catalyst — Trial Operations Aug 14, 2026 — Aug 28, 202643d overdue

T2 - E2E pass over the admin surfaces

(part of RC-1125)

Playwright walk-through of the sidebar shell, campaign create/edit/archive/publish, catalog create and edit across all three record kinds, contact creation, and Trends/Outreach against a mocked analytics payload — including the write-disabled variants of each screen.

Exit criteria: every primary flow green in both write-enabled and write-disabled configurations.

Catalyst — Trial Operations Aug 24, 2026 — Aug 28, 202643d overdue

R1 - Verified dev deployment

(part of RC-1125)

The routing exists but has not carried a real deployment. Merge to develop, confirm the dev stack builds and deploys, and confirm the app authenticates against the dev Trial Manager and the content.dev session cookie — the one path where mixing DE_ENVIRONMENT and trialManagerEnv would drop the session.

Exit criteria: dev URL loads authenticated, campaigns and catalog read live dev data.

DE Home / Platform EFP Aug 28, 2026 — Aug 29, 202642d overdue

M8 - Full capability parity / go-live readiness

All P1 must-haves at Built; go/no-go checkpoint for Aug 30 launch.

DE Home / Platform EFP Aug 28, 2026 — Aug 31, 202640d overdue

M9 - Phase 1 launch — teacher opt-in live

LIMITED - teacher opt-in testing available; capability to activate for a small subset of users the same day.

Discovery Education Trials — Self-Service Trial Experience Aug 28, 2026 — Aug 31, 202640d overdue

R1 — Ship the migrated funnel to dev, then stage

The funnel now depends on trial_manager for every branch, so the deploy matters more than usual: verify against the dev stack that the anonymous CSRF pair survives the real cookie domain, that provisioning completes inside its timeout, and that the fallback paths don't mask a healthy backend.

Exit criteria: a real trial provisioned end to end in dev with no local heuristics involved.

Catalyst — Trial Operations Aug 28, 2026 — Sep 10, 202630d overdue

R2 - Operator docs and handoff

(part of RC-1125)

Document the environment flags (TRIAL_MANAGER_ALLOW_WRITES, CONTENT_API_ALLOW_WRITES, DE_ENVIRONMENT, trialManagerEnv), the per-environment session-cookie model, and the data-gap workflow, then decide the write-flag posture per environment before prod.

Exit criteria: a developer new to the repo can run it locally, explain the flags, and add a data gap unaided.

STE(A)M (JeffCo) Sep 7, 2026 — Sep 24, 202616d overdue

M2 - Validate the prototype

Close the five open district confirmations and put the Grade 4 Q1 guide in front of the teachers who would run it.

  • Confirm CKLA unit order by quarter, Ready Math pacing, and whether Mystery Science unit order is actually flexible.

  • Confirm arts specialist involvement and whether collaborative planning time exists.

  • Name the pilot grade and teacher team for the coming year.

  • Write the definition of done for an arc — the rubric that later becomes the automated validator set.

  • Exit criteria
    A teacher team walks the Q1 arc unaided and says they could run it, plus a written arc rubric.

DE Home / Platform EFP Aug 31, 2026 — Sep 28, 202612d overdue

M10 - Phase 1 iteration window

Refinements and fixes shipped based on telemetry, Pulse feedback, and further QA from the initial opt-in cohort.

DE Home / Platform EFP Sep 28, 2026 — Sep 29, 202611d overdue

M11 - Phase 2 expansion

Opt-in expanded to the Phase 2 cap

DE Home / Platform EFP Sep 30, 2026 — Oct 28, 202618d away

M12 - Phase 2 iteration window

Refinements and fixes shipped based on Phase 2 cohort feedback and QA.

DE Home / Platform EFP Oct 28, 2026 — Oct 29, 202619d away

M13 - Phase 3 expansion

Opt-in expanded to the Phase 3 cap; scale/performance validation per §6 confirmed ahead of the 20x jump.

Atlas Nuxt 4 May 1, 2026 — Oct 30, 202620d away

Replaces Atlas v.1

DE Home / Platform EFP Oct 30, 2026 — Nov 20, 202641d away

M14 - Phase 3 iteration window

Refinements and fixes shipped based on Phase 3 cohort feedback and QA.

DE Home / Platform EFP Nov 20, 2026 — Nov 23, 202644d away

M15 - Phase 4 expansion

Opt-in expanded to the Phase 4 cap — final expansion within this plan's window.

Atlas Nuxt 4 Jun 1, 2026 — Jan 30, 2027112d away

Replaces Editorial and Content

M5 - Adoption and communication

Tentatively use in Q4 to complement PI Planning (led by @Nikkita Willis). Dates TBD.

M3 - Turn the framework into a schema

The single highest-leverage step. Convert the prose design principles into a machine-readable model so that generating an arc becomes filling a structure, not writing a document.

  • Define the arc data model — district, program, pacing week, standard, concept, subject thread, touchpoint, alignment record, culminating product.

  • Build the two output templates as renders of that model: leadership overview and teacher implementation guide.

  • Encode the rubric from Phase 0 as executable validators.

Exit criteria The Q2 prototype is re-expressed as structured data and re-rendered from it with no loss of quality.

M4 - Scale inside one district

Build all of K–5 for Jefferson County — roughly 24 arcs — with human experts on the schema and light tooling. Instrument the work from arc #1 so the automation targets are measured, not guessed.

  • Track hours per arc, edits per arc, and which steps consume the time (standards reading, overlap hunting, asset search, or writing).

  • Harvest reusable pieces: standards overlap maps, per-program pacing normalizations, the culminating product menu.

  • Ship arcs continuously to the pilot so instructional feedback arrives during the build, not after.

Exit criteria
Median build time per arc down 60%+ from arc #1 to arc #24, with a time breakdown that names the bottleneck.

M5 - Automate the alignment

Build the engine that does the mechanical work: reading pacing guides and standards, detecting genuine overlap, and attaching the right DE assets to the right week. Detailed in the next section.

Exit criteria
≥85% of proposed alignments accepted with no edit; expert review under two hours per arc.

M6 - Make it district- and program-agnostic

Everything district-specific becomes configuration data. Nothing about Alabama or Mystery Science is hard-coded anywhere.

  • Curriculum program library: each publisher’s scope and sequence normalized once, versioned, and reused by every district that licenses it. Onboarding district #2 with the same programs costs nothing.

  • Standards crosswalk: every state’s standard set resolved to the same canonical concept layer, so overlap detection works in any state without pairwise mapping.

  • Proof: a second state with a different publisher stack, built with no code changes.

Exit criteriaA new district is live in ≤2 weeks with zero engineering involvement.

M7 - Productize

Turn the internal pipeline into a surface other people can drive.

  • Authoring workbench opened to district curriculum staff, not just DE experts.

  • Teacher delivery experience inside DE — the arc as a live, dated plan rather than a PDF.

  • A library of published arcs, filterable by state, publisher stack, and grade.

  • Usage telemetry and teacher edits feeding back into alignment scoring.

Exit criteria
A district authors a usable arc without DE in the room.

Validate

Concept prototype, tested with a few trusted partners. Confirm problem, solution, and willingness to pay.

Scope & build

Working MVP with 1–2 district-approved AI platforms. All DE content indexed and searchable via MCP (DEX, Mystery Science, Techbook, CEP).

Pilot & refine

Test the trust value prop with a small set of pilot districts already on DE.

Decide & scale

Size investment for broader Connected Ecosystem rollout.

DE Intelligence Platform (MCP) Jun 2, 2025 — Sep 30, 2025 Done

ContentBot - generated AI metadata

Full AI-forward content architecture for generating standards alignment, grades, subjects, lexile scores and more via extracted text and supporting models, architecture, services, and more. Round one of indexing completed.

DE Intelligence Platform (MCP) Oct 1, 2025 — Nov 14, 2025 Done

Functional baseline MCP (v.0.1

DE Intelligence Platform (MCP) Nov 11, 2025 — Dec 31, 2025 Done

Connect to leading AI Platforms

DE Intelligence Platform (MCP) Dec 1, 2025 — Jan 15, 2026 Done

Connect to Internal Tools (ScholarBot)

DE Home / Platform EFP Feb 23, 2026 — Mar 1, 2026 Done

Initial Prototype

Project Helix Feb 1, 2026 — Mar 5, 2026 Done

M1 - Basic Chat Functionality

DE Intelligence Platform (MCP) Feb 3, 2026 — Mar 31, 2026 Done

Leveraged in DE Ecosystem (ChatBot)

Project Helix Feb 26, 2026 — Apr 3, 2026 Done

M2 - Platform Parity

DE Home / Platform EFP Mar 5, 2026 — Apr 9, 2026 Done

Chat AI & Feature Parity

Experience Apr 1, 2026 — Apr 17, 2026 Done

Build to spec in rad layers

@Derek Stutts is building in separate project repository

Careers v.2 Apr 3, 2026 — Apr 17, 2026 Done

Testable app (for internal feedback)

Overall functionality accounted for, though may shift with feedback from team and cross-team.

DE API Layer Apr 6, 2026 — Apr 17, 2026 Done

Decision on API Framework

FastAPI as a layer for api services is being considered.
Atlas Nuxt 4 Apr 20, 2026 — Apr 20, 2026 Done

Prototype Stood up with Foundation

Atlas Nuxt 4 Apr 20, 2026 — Apr 24, 2026 Done

Align on Strategy for Migration to Nuxt4

Project Helix Apr 15, 2026 — Apr 30, 2026 Done

M3 - User Testing Complete

DE Home / Platform EFP Apr 1, 2026 — Apr 30, 2026 Done

Internal Feedback Loop

AI Pulse Apr 1, 2026 — Apr 30, 2026 Done

Pulse Prototype

Atlas Nuxt 4 Apr 20, 2026 — Apr 30, 2026 Done

Build ready for internal testing and test coverage

DE API Layer Apr 14, 2026 — May 12, 2026 Done

First API available with new api layer

Strategy Coach Apr 8, 2026 — Jun 3, 2026 Done

Now (foundation)

8-week workout plan, weekly plan view, AI coach with pre/post-activity and opening-day flows, activity generation, progress tracking and badges, DE asset + standards search, assignments (including public student links). Auth via DE SSO (toggle) behind a passcode gate.

Strategy Coach Jun 10, 2026 — Jun 19, 2026 Done

Business Case Validation

Strategy Coach Jun 11, 2026 — Jun 22, 2026 Done

Next

Deepen admin/coach analytics; richer personalization of the coaching path based on teacher profile and prior responses; broaden content/standards integration.

Catalyst — Trial Operations May 7, 2026 — Jun 29, 2026 Done

Trial Manager POC

Mystery Customer Admin Jul 16, 2026 — Jul 20, 2026 Done

M1 - Initial POC Scaffolding & Data Exploration

Create scaffolding for initial POC and look into fetching data from snowflake. Result is here:
https://rad-mystery-customer-admin.discoveryeducation.com/

Roadmap Jul 22, 2026 — Jul 23, 2026 Done

M2 - Initiatives Inclusion

Include initiatives and capx budget codes heirarchy per @Nikkita Willis and @Travis Barrs

Strategy Coach Jun 19, 2026 — Jul 23, 2026 Done

Later

Full DE SSO rollout (remove passcode gate), expanded grade-band theming, scale beyond pilot cohorts.

Mystery Customer Admin Jul 22, 2026 — Jul 27, 2026 Done

M2 - POC Prototype

Based on designs and documentation here:
https://discoveryed.atlassian.net/wiki/spaces/MS1/pages/4739268626/Admin+Dashboard+Prototyping+and+Testing

Will overwrite previous POC and be located here: https://rad-mystery-customer-admin.discoveryeducation.com/
USER MUST BE ON VPN TO ACCESS (for internal testing ... we'll remove this once customers are accessing for testing : )

Roadmap Jul 24, 2026 — Jul 27, 2026 Done

M3 - Feedback Redesign

Complete design overhaul to stay attuned to evolving project reqs.

Project Helix May 1, 2026 — Jul 29, 2026 Done

M4 - Shift to production timeline

Leverage this work to shift to a production timeline and go-to-market strategy

Roadmap Jul 28, 2026 — Jul 29, 2026 Done

M4 - Jira Integration

Integration of JIRA epics at the project level. First pass. More to come.

Roadmap Mar 29, 2026 — Jul 30, 2026 Done

M1 - Roadmap Initial Release

Created v1 in 2 days for internal feedback and communications.

Mystery Customer Admin Jul 27, 2026 — Jul 31, 2026 Done

M3 - Team Review Mystery Customer Admin with Team

Review Mystery Customer Admin with Team, make any adjustments needed iteratively.

DE Home / Platform EFP Jul 29, 2026 — Aug 12, 2026 Done

M2 - Legacy platform — dev

Opt-in banner/workflow, user opt-in setting, and global nav changes (§4.5) built on the legacy platform.

DE Home / Platform EFP Jul 31, 2026 — Aug 12, 2026 Done

M4 - Audit resolution

Every Audit-flagged item (Classrooms/Assignments, Assign, Profile → Recent Activity/History, Release Notes) has a real-vs-faked determination and a decision recorded against §11.

DE Home / Platform EFP Jul 30, 2026 — Aug 19, 2026 Done

M3 - DE Home page & feature hardening

M1 - Signup migrated to the registration step machine

The old approach guessed locally at what the visitor should see next. trial_manager's /v1/trial-registration/* surface is a step machine: every call — including the ones that represent a refusal — answers 200 with a TrialStepResponse carrying status, step, and page_data. Whether an email already has an account, whether SSO is required, whether the visitor is a student, whether the campaign expired, whether the product is licensable in their region: all of it is now the server's call, passed through untranslated.

M2 - Internal management tooling removed; the app is a funnel again

Management surfaces that used to live here — the trials dashboard, per-school detail, contact add/edit, and the health-banner route — are gone. Trials is now the public funnel plus admin.vue for staff provisioning; internal trial and catalog management belongs to Catalyst (rad-trials). Marketing copy across the funnel was refreshed in the same pass.

This split is the point, not a side effect: two apps, one public and one internal, with opposite crawler postures and opposite audiences.

M3 - Demo-mode audience switch for staff

A "Demo as" control lets staff preview the funnel as a signed-in or signed-out visitor without juggling sessions — the thing that makes the funnel's branches walkable at all. Gated behind requireDeStaff, which validates the DE session against /v1/users/me and requires a campaign-manager role (401 unauthenticated, 403 without the role).

M4 - Accessibility and fallback-flow pass

Skip-to-main-content link, aria-live on the loading overlay, role="alert" on every form error across the account / trial / admin flows, prefers-reduced-motion handling, and labelled aria-expanded disclosure controls in the trial layout. Alongside it: the fallback paths were exercised — hardcoded campaign URLs still stand in when a campaign can't be resolved, and the SSR product list still renders when the live catalog fetch fails.

M5 - SEO and AIO surface

All three discovery routes generate from shared/products, so they can't drift as the catalog changes. llms.txt (llmstxt.org format) gives assistants a structured guide with the qualifying facts they need to answer correctly — free, no credit card, up to 60 days, US K–12. FAQPage schema is backed by the same three questions rendered visibly on the page, so an educator and an answer engine get the identical answer. Organization / WebSite / ItemList on the homepage; Product + Offer + BreadcrumbList per product. useSiteUrl pins one canonical origin so preview hosts don't fragment canonicals.

Catalyst — Trial Operations Aug 13, 2026 — Aug 28, 2026 Done

M3 - Catalog management on the EDDE Content API

RC-1109, RC-1122 · contentApiClient.ts, server/api/catalog/*, CatalogManager.vue

New server-side Content API client with environment-aware session cookies, X-Token minting for writes, and upstream errors mapped to real status codes with the API's own message. On top of it, one CatalogManager component drives products, SKUs, and media groups with search, pagination, detail modals, relationship navigation, and debounced reference pickers.

Catalyst — Trial Operations Aug 13, 2026 — Aug 30, 2026 Done

M1 - Live data replaced seeded data on the insight surfaces

One endpoint (/api/trials/analytics) now returns a normalized row per school plus the product catalog, assembled from three trial_manager reads: the paged trials feed, per-school trial detail (cached, time-budgeted fan-out), and the product list. Trends split into Overview / School Trials / Grassroots; Outreach became the call-list surface. Both filter and recompute client-side from that single payload.

The careful parts: opportunity totals dedupe on opportunity_id so a two-product opportunity does not double-count pipeline; days_left comes from upstream so this page and the dashboard cannot disagree; a book past the 20-page ceiling sets a truncated flag rather than silently understating every KPI.

Catalyst — Trial Operations Aug 13, 2026 — Aug 30, 2026 Done

M2 - Campaign Manager, end to end

RC-1108 · server/api/trials/campaigns/*, campaigns.vue

Marketing campaigns — which decide what trial offers registration shows — are now readable and editable in the app: list, create, edit, archive, and a Publish action that triggers the GDS sync so registration sees changes immediately. Writes gate on TRIAL_MANAGER_ALLOW_WRITES and the UI says so instead of failing at the API.

STE(A)M (JeffCo) Jun 8, 2026 — Sep 11, 2026 Done

M1 - Testable Prototype for Early Partner Discussions

AI Pulse Done

Pulse Services

AI Pulse Done

Pulse Multi-Product

AI Pulse Done

Pulse Release v.1

AI Pulse Done

Pulse Integrated with Snowflake MCP