M07: JST Interlinear
Phase: P2: Scholar Features Target: Weeks 23–27 Sprints: S11, S12, S13 (start) Release Tags:
web/v0.7.0-alpha
Phase Context
Goal: The three paid pillars that justify $79.99/year — interlinear Hebrew/Greek + JST, constellation view, and constrained AI. Ref: MVP.md § Paid Tier.
Key constraint: Founding users enter during this phase (~Week 22). Ship incrementally; don't wait for "complete."
ZenHub Configuration
| Field | Value |
|---|---|
| Milestone | M07: JST Interlinear |
| Due Date | 2026-09-13 |
| Default Pipeline | Product Backlog |
| Primary Epic(s) | JST Interlinear |
Prerequisites
| Prerequisite | Source Milestone | What Must Be Complete |
|---|---|---|
| Interlinear display mode + WordToken component | M06: Interlinear & Lexicon | Interlinear rendering infrastructure, study mode, lexicon bubble — JST builds on this foundation |
| JST corpus data ingested | M01: Data Pipeline | JST corpus files (OT + NT) ingested; :Witness nodes with JST variants created |
| Reader with study mode | M06: Interlinear & Lexicon | Study mode activation and verse long-press interaction pattern |
Epics
Epic: JST Interlinear
| Story Area | Scope | Spec Reference |
|---|---|---|
| JST data verification | Validate JST corpus files against schemas | GOSPELIB-SCHEMAS.md |
| JST API | Endpoint or passage enrichment returning JST variants for a verse | MVP.md § Priority #1b |
| Inline diff view | KJV ↔ JST word-level diff highlighting | MVP.md § Priority #1b |
| Manuscript attribution | Tap variant → source manuscript + context from JSPP | MVP.md § Priority #1b |
| Witness layer UI | Pull-down or panel for manuscript variant access | DESIGN-SYSTEM.md § Witness Layer |
Document References
| Doc | Contains | Use When Writing Stories For |
|---|---|---|
| MVP.md | Feature scope, tier breakdown, success criteria, budget | Acceptance criteria, scope boundaries |
| TECH-SPEC.md | Architecture, service boundaries, data stores, API catalog | Technical implementation details |
| GOSPELIB-SCHEMAS.md | All 7 schema families, node/edge types, validation rules | Data models, Pydantic models, graph schema |
GOSPELIB-INGEST-SPEC.md | 7-stage pipeline, Cypher templates, batch strategy, CLI | Ingest pipeline stories |
| DESIGN-SYSTEM.md | Visual identity, component catalog, reader modes, tokens | UI component stories |
| DESIGN-SYSTEM.md §§ 13, 21–23 | Footnotes (§13), subscription boundaries (§21), sharing (§22), onboarding (§23) | UX flow stories |
| Deployment & Operations | Environments, K8s, CI/CD, migrations, secrets, DR | Infrastructure and deployment stories |
| REPO-MAP.md | Directory structure, naming conventions, dependency rules | All stories (coding standards) |
| Business | LEGAL.md, POLICY-TERMS.md, executive summary, market research, GTM | Launch readiness, legal/compliance stories |
Additional Spec References for This Milestone
| Doc Section | Relevance |
|---|---|
| MVP.md § Priority #1b | JST feature spec — inline diff, manuscript attribution |
| DESIGN-SYSTEM.md § Witness Layer | Witness layer UI pattern for manuscript variant access |
| GOSPELIB-SCHEMAS.md § Witness | Witness node schema — JST variants, manuscript sources |
Sprint Mapping
| Sprint | Weeks | Primary Focus for M07 |
|---|---|---|
| S11 | 23–24 | Founding users enter. JST data verification, JST API, inline diff view |
| S12 | 25–26 | Manuscript attribution, witness layer UI |
S11 overlaps M06 tail (founding users are seeing interlinear for the first time). S13 (Weeks 27–28) begins M08 constellation work.
Sprint Load Warnings
- S11 (Weeks 23–24) coincides with founding user entry. Balance JST development with responding to early user feedback on interlinear features from M06.
Release Info
| Release | Tag | Contains |
|---|---|---|
v0.7.0-alpha | web/v0.7.0-alpha | JST interlinear (Scholar) |
Tags follow <component>/v<semver> per release-please-config.json.
Relevant Risks
| Risk | Impact | Mitigation |
|---|---|---|
| Ingest pipeline data quality issues | JST corpus data may have gaps or schema mismatches | Corpus validation epic in P0; JST data verification story in this milestone |
| Interlinear Hebrew RTL rendering | RTL issues from M06 may persist into JST display | Prototype RTL layout early in P2; test with real corpus data |
| Solo founder velocity | 38-week plan too aggressive | Founding users at Week 22 provide feedback before full scope; cut P3 scope if needed |
Cross-Cutting Concerns
Testing
| Layer | Framework | When | Spec Reference |
|---|---|---|---|
| Python unit/integration (JST API) | pytest + testcontainers | Every PR | TECH-SPEC.md § Testing |
| TypeScript unit (inline diff, witness layer) | Vitest | Every PR | TECH-SPEC.md § Testing |
| Component visual | Storybook or playground | P1+ | DESIGN-SYSTEM.md § Governance |
| Visual regression | Playwright + pixelmatch | P1+ (any packages/ui/ or apps/*/src/ change) | DESIGN-SYSTEM.md § Visual Regression CI |
Documentation
| Doc | Update Trigger |
|---|---|
| API OpenAPI specs | Content service JST enrichment endpoint |
| ADRs | JST diff algorithm, witness layer interaction pattern |
CI/CD
| Addition | Phase | Detail |
|---|---|---|
| Visual regression screenshots | P2 | JST diff and witness layer components added to playground; pixelmatch baseline updated |
Dependencies
Upstream (what M07 needs)
| Dependency | Source | Status |
|---|---|---|
| Interlinear display mode + study mode | M06: Interlinear & Lexicon | Must be complete (JST extends interlinear infrastructure) |
| WordToken component + lexicon bubble | M06: Interlinear & Lexicon | Must be complete (JST words reuse the same interaction pattern) |
JST corpus data ingested (:Witness nodes) | M01: Data Pipeline | Must be complete (Stage 3 scripture text pipeline handles JST) |
| Content API (passage routes) | M02: Content API | Must be complete (JST API enriches passage response) |
| Staging environment | M05: Search & Staging | Must be live (founding users testing during this milestone) |
Downstream (what depends on M07)
| Dependent | Milestone | What It Needs From M07 |
|---|---|---|
| Constellation view | M08: Knowledge Graph | Witness layer patterns may inform graph node detail views |
| AI study assistant | M09: AI Study Assistant | JST variant data available for AI-powered original-language analysis prompts |
| Monetization | M10: Monetization | JST is a Scholar-tier feature; entitlement gating wraps it in M10 |
Issues
| Issue | Title | Status | Notes |
|---|---|---|---|
| M07-001 | JST Data Verification — Validate JST Corpus Files (OT + NT) Against Schemas | ❌ To Do | corpus files missing |
| M07-002 | JST API — Passage Enrichment Returning JST Variants for a Verse | 🔶 Partial | include_witnesses param and Cypher query exist but no JST corpus data |
| M07-003 | Inline Diff View — KJV ↔ JST Word-Level Diff Highlighting | ❌ To Do | not implemented |
| M07-004 | Manuscript Attribution — Tap Variant → Source Manuscript + Context from JSPP | ❌ To Do | not implemented |
| M07-005 | Witness Layer UI — Pull-Down Panel for Manuscript Variant Access | ❌ To Do | not implemented |
Progress: 0 Done · 1 Partial · 4 To Do (10%)
Epic: JST Interlinear
Issue Dependency Graph
M07-001 ──► M07-002 ──► M07-003 ──► M07-004 ──► M07-005
│ │ ▲
│ └────────────────────┘
└──► M07-004
Cross-milestone:
M02 (Content API) ──► M07-002
M06 (Interlinear) ──► M07-003
M06 (Interlinear) ──► M07-005
Legend:
A ──► Bmeans A blocks B (B is blocked by A)
Summary
| Metric | Count |
|---|---|
| Total Issues | 5 |
| Sub-Issues | 0 |
| Total Estimate (pts) | 34 |
| Sprints | S11–S12 |
| Dependencies (blocking) | 6 |
| Dependencies (blocked by) | 9 |