Feature Backlog (build phase)¶
Source: Notion "Product Features" database (pulled 2026-06-29). Full verbatim list in raw/product-features.md. This file is the engineering distillation; the raw file is authoritative for exact wording/fields.
34 features. Breakdown: 20 Front End, 7 Back End, 2 BE+FE, 4 Content Design, 1 Growth (1 of the Content Design items is a Research spike, not a build feature). Priority: 23 High / 8 Medium / 2 Low / 1 Backlog.
Planning state: Sprint, Quarter, Estimate Days, Start/End Dates are empty on all 34 rows, and every item is Design Review: Not Started / Test Build: Not Started. The backlog is not yet sprint-planned, estimated, or segmented into MVP vs Phase 2 as of pull. Treat priority as the only sequencing signal.
Backend-owned work (this repo)¶
The 7 Back End + 2 BE+FE items are what this Wagtail/CMS service owns:
| Feature | Priority | Note |
|---|---|---|
| CMS Foundation | High | Wagtail install, hosting/envs, headless content API with caching + rate limits, admin roles (editor/admin/viewer), media/asset hosting + CDN, draft/preview mode. |
| Content data model + CMS | High | Concrete schemas below. |
| Journey / Portal editor | High | CRUD for Journey/Portal; chapter slot ordering + piece refs (opening-Q / primary-reading / supporting slots); per-chapter reflection override; journey metadata (colour, icon, portal shape enum, opening question, featured flag). |
| Podcast content type | High | Embed link (externally hosted) + duration + transcript + tags. Separate shape from text piece; no voice-clone pipeline. Phase 1: receptacle/schema stub only — not built (call 2026-06-29). |
| Tag-overlap graph computation engine | High | Indexes pieces by theme-tag combinations, computes piece-to-piece edges; deterministic/reproducible; result cached/indexed. Powers Explore + related content. Build-time, matches the load-bearing tag constraint (00-constraints.md). Flag (stand-up 2026-06-30): "related content" was deprioritized — confirm whether this engine stays in the v1 build or only its surfacing UI is deferred. |
| User data model (saves, progress, completion) | High | Saves / Journey-progress / Journey-completion tables (see below). Prereq for all Journey + Profile features. Implies user identity — see auth tension below. |
| Audio Reading / voice clone pipeline | Medium | ElevenLabs voice-clone triggered from a piece in CMS; store + attach audio; short-pieces-first rollout queue. Build-time, not runtime (00-constraints.md). Distinct from podcast playback. |
| Account creation + unified gate flow | High (BE+FE) | One account-creation flow shared by three gate entry points (first save, Journey embark, chapter complete). |
| Push notifications infrastructure | Backlog (BE+FE) | APNs + FCM token registration, send pipeline, per-user prefs. Build only if a notification type is confirmed shipping; Settings section omitted otherwise. |
Content & user data schemas¶
Canonical field-level schemas live in docs/cms-architecture.md. Key content types: Passage, Letter, Essay, Podcast (stub), Work, Author, Prompt, Journey/Chapter, Theme. User data: Save (Soul Map entry with prompt snapshot), JourneyProgress, JourneyCompletion, Reflection, DailyDrop.
Auth scope — RESOLVED 2026-06-29¶
The backlog's High-priority auth/account/gate rows were ambiguous (unsegmented MVP vs Phase 2). Resolved by Lina Wiezkowiak (delivery lead) in Slack, 2026-06-29 — see raw/slack-auth-scope-2026-06-29.md:
- In V1 (14-week build):
Auth — sign up + log in,Account creation,Forgot password / reset,Settings(sign out, delete account), and the per-user_iddata tables above. Users must be able to make an account. - Out of V1: gates (no content gating) and all monetization — no paywall/subscription in V1.
- This reverses the earlier "no auth at MVP" non-negotiable (00-constraints.md #1, 04-mvp-scope.md).
Caveat: the Product Features doc was a pre-client-vetting first pass and Lina will still prune/clarify it — treat individual rows as provisional. Warrants an ADR once locked. The Account creation + unified gate flow row mixes the in-scope account flow with out-of-scope gating; build the account flow, not the gates.
Content Design / cross-discipline dependencies¶
- Content tagging taxonomy + editorial guidelines (Research, High) is the upstream blocker: tag axes + controlled vocab must be locked before the CMS vocab tool, AI tagging, and the graph engine can be built or trained.
- Deeper Meaning generation + QA workflow and Deeper reading confirm AI annotation is stored text, editor-approved, no runtime AI in the content path (00-constraints.md). Likely deprioritized (stand-up 2026-06-30): the client has no editorial team to QA it yet — the shorter shared "thought provoker" prompt is the part that stays.
- Every content piece shares a spine (stand-up 2026-06-30): topic tags, theme tags, a "thought provoker" question, bookmarking, reflections — reinforces the Content Item bridge in
docs/cms-architecture.md. The thought provoker (Prompt type) is distinct from the deprioritized Deeper meaning block (terminology to confirm). - Tag-overlap recommendation engine (per-piece related pieces/Journeys by shared tag count) sits on top of the graph engine; pre-computed at publish or fast runtime query.