Skip to main content

M05: Search & Staging

Phase: P1: Core Reader Target: Weeks 16–20 Sprints: S7 (tail), S8, S9 (start) Release Tags: web/v0.5.0-alpha


Phase Context

Goal: A web app where users can read all LDS scriptures, navigate by book/chapter, search, and annotate (highlights, notes, bookmarks). The free tier of MVP.md § Free Tier.

Key constraint: This must be "genuinely better than Gospel Library" — the free tier IS the acquisition funnel.

This is the last P1 milestone. Staging goes live here — founding users arrive at ~Week 22.


ZenHub Configuration

FieldValue
MilestoneM05: Search & Staging
Due Date2026-07-26
Default PipelineProduct Backlog
Primary Epic(s)Full-Text Search, Footnotes & Cross-References

Prerequisites

PrerequisiteSource MilestoneWhat Must Be Complete
Ingest pipeline (Typesense sync extends it)M01: Data PipelineFull ingest pipeline operational — Typesense sync is an addition to the existing pipeline
Reader (search UI lives in web app)M03: Scripture ReaderScripture reader with chapter navigation — search bar and results integrate into the reader shell
M00 Typesense collection schemasM00: Tech Preppassages, topics, lexicon collection schemas defined

Epics

Story AreaScopeSpec Reference
Typesense syncIngest pipeline addition: index passages into TypesenseTECH-SPEC.md § Typesense
Search APIGET /search route in content service — query, filters, paginationTECH-SPEC.md § API Endpoints
Reference lookupParse John 3:16, 1 Ne. 3:7, etc. → direct passage fetchMVP.md § Feature #5
Search UISearch bar, results list, facets (book, testament)DESIGN-SYSTEM.md § P4 Components

Issues

IssueTitleStatusNotes
M05-001Typesense Sync — Ingest Pipeline Extension to Index Passages✅ Doneimplemented in PR #901 (2026-04-03)
M05-002Search API — GET /api/v1/search Route in Content Service✅ Doneimplemented in PR #901 (2026-04-03)
M05-003Scripture Reference Parser and Direct Lookup✅ Doneimplemented in PR #901 (2026-04-03)
M05-004Search UI — Search Bar, Results List, and Faceted Filters✅ Doneimplemented in PR #901 (2026-04-03)
M05-005Footnote Data API — CommentaryNote Retrieval in Content Service✅ Doneimplemented in PR #901 (2026-04-03)
M05-006Footnote Display Modes — Superscript, Margin Flag, Inline Tooltip✅ Doneimplemented in PR #901 (2026-04-03)
M05-007Footnote Type Color Coding and Visual Differentiation✅ Doneimplemented in PR #901 (2026-04-03)
M05-008Footnote Card Component — Tap-to-Expand Detail Card✅ Doneimplemented in PR #901 (2026-04-03)
M05-009Staging Environment — Terraform EKS, RDS, ElastiCache Infrastructure✅ Doneimplemented in PR #969 (2026-04-13)
M05-010Staging CD Pipeline — GitHub Actions → ECR → Kustomize → ArgoCD✅ Doneimplemented in PR #969 (2026-04-13)
M05-011Sentry Error Tracking Integration Across All Services✅ Doneimplemented (2026-04-13)
M05-012AWS Secrets Manager — Staging Secrets Configuration✅ Doneimplemented in PR #969 (2026-04-13)
M05-013Staging Data Seeding — Ingest Pipeline Deployment and Execution✅ Doneimplemented (2026-04-13)

Progress: 13 Done · 0 Partial · 0 To Do (100%)


Issue Dependency Graph

Search Epic:
M05-001 ──► M05-002 ──► M05-004
M05-003 ──────────────► M05-004

Footnotes Epic:
M05-005 ──► M05-006 ──► M05-008
├──► M05-007 ──► M05-008
└──────────────► M05-008

Staging Epic:
M05-009 ──► M05-012 ──► M05-010 ──► M05-013
└──────────────► M05-013 ◄── M05-001

M05-011 (no internal M05 blocks)

Legend: A ──► B means A blocks B (B is blocked by A)


Document References

DocContainsUse When Writing Stories For
MVP.mdFeature scope, tier breakdown, success criteria, budgetAcceptance criteria, scope boundaries
TECH-SPEC.mdArchitecture, service boundaries, data stores, API catalogTechnical implementation details
GOSPELIB-SCHEMAS.mdAll 7 schema families, node/edge types, validation rulesData models, Pydantic models, graph schema
GOSPELIB-INGEST-SPEC.md7-stage pipeline, Cypher templates, batch strategy, CLIIngest pipeline stories
DESIGN-SYSTEM.mdVisual identity, component catalog, reader modes, tokensUI component stories
DESIGN-SYSTEM.md §§ 13, 21–23Footnotes (§13), subscription boundaries (§21), sharing (§22), onboarding (§23)UX flow stories
Deployment & OperationsEnvironments, K8s, CI/CD, migrations, secrets, DRInfrastructure and deployment stories
REPO-MAP.mdDirectory structure, naming conventions, dependency rulesAll stories (coding standards)
BusinessLEGAL.md, POLICY-TERMS.md, executive summary, market research, GTMLaunch readiness, legal/compliance stories

Sprint Mapping

SprintWeeksPrimary Focus for M05
S817–18Search (Typesense sync + API + UI), staging deploy + Sentry
S919–20Footnotes, search polish, staging stabilization

S7 (Weeks 15–16) is primarily M04 auth/annotations work but overlaps M05 start. S9 straddles M05 tail and M06 start.

Sprint Load Warnings

  • S8 (Weeks 17–18) combines search implementation AND staging deployment + Sentry in the same sprint. Staging infrastructure setup may compete with search feature work.

Release Info

ReleaseTagContains
v0.5.0-alphaweb/v0.5.0-alphaSearch + offline; staging environment goes live

Tags follow <component>/v<semver> per release-please-config.json.


Relevant Risks

RiskImpactMitigation
Ingest pipeline data quality issuesBlocks Typesense sync + footnote dataCorpus validation epic in P0; dry-run + schema enforcement
Solo founder velocity38-week plan too aggressiveFounding users at Week 22 provide feedback before full scope; cut P3 scope if needed

Cross-Cutting Concerns

Testing

LayerFrameworkWhenSpec Reference
Python unit/integration (content service search)pytest + testcontainersEvery PRTECH-SPEC.md § Testing
TypeScript unit (search UI)VitestEvery PRTECH-SPEC.md § Testing
Component visualStorybook or playgroundP1+DESIGN-SYSTEM.md § Governance
Visual regressionPlaywright + pixelmatchP1+ (any packages/ui/ or apps/*/src/ change)DESIGN-SYSTEM.md § Visual Regression CI

Documentation

DocUpdate Trigger
API OpenAPI specsContent service search endpoints
ADRsEach major technical decision

CI/CD

AdditionPhaseDetail
Staging CD pipelineP1Merge to main → ECR → Kustomize → deploy (activated in M05)
Sentry error trackingP1Web + Python + Go SDK integration (activated in M05)
Visual regression screenshotsP1Playwright renders component playground; pixelmatch diff blocks PRs exceeding 0.5% threshold

Dependencies

Upstream (what M05 needs)

DependencySourceStatus
Full ingest pipelineM01: Data PipelineMust be complete (Typesense sync extends existing pipeline)
Scripture reader shellM03: Scripture ReaderMust be complete (search UI integrates into reader)
Typesense collection schemasM00: Tech PrepMust be complete
Content APIM02: Content APIMust be complete (search route extends content service)
Gateway with proxy routingM02: Content APIMust be complete (search routes proxied through gateway)

Downstream (what depends on M05)

DependentMilestoneWhat It Needs From M05
All P2 features (M06–M09)P2 milestonesStaging environment for founding-user testing
Interlinear & LexiconM06Search infrastructure (Typesense) available for lexicon search
Production deploymentM11: Launch ReadinessStaging CD pipeline pattern reused for production

Summary

MetricCount
Total Issues13
Sub-Issues0
Total Estimate (pts)60
SprintsS8–S9
Dependencies (blocking)15
Dependencies (blocked by)26