Files
PersonalBlog/docs/sprints-and-roadmap.md
T
2026-08-27 08:19:46 +00:00

68 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Sprints & roadmap
## Sprint map (sequenced; Sprint M slots after Sprint 4 per v1.1 §52-A)
| Sprint | Goal | Epics |
|---|---|---|
| Sprint 0 | Architecture runway | E00, E01 |
| Sprint 1 | First end-to-end publishing slice | E02, E03, E04, E05, E06, E07 |
| Sprint 2 | Editable Home and site structure | E08, E09, E10 |
| Sprint 3 | Extension runtime hardening | E11, E12, E13, E14 |
| Sprint 4 | Theme platform proof | E15, E16 |
| Sprint M | Media and rich content (v1.1) | E29, E30, E31 |
| Sprint 5 | Visitor personalisation (deferred) | E17, E18 |
| Sprint 6 | Installation, backup and upgrades | E19, E20, E21, E22 |
| Sprint 7 | V1 hardening | E23, E24, E25, E26 |
Story count is exactly **96**: Sprint 0 (6) · Sprint 1 (17) · Sprint 2 (12) · Sprint 3 (13) · Sprint 4 (6) · Sprint M (11) · Sprint 5 (7) · Sprint 6 (13) · Sprint 7 (11).
## Sprint goals
- **Sprint 0:** a new engineer can clone, build, test and run EPPP; architectural boundaries are executable.
- **Sprint 1:** an authenticated owner can create/publish a simple article and an anonymous visitor can read it in Amber.
- **Sprint 2:** the owner controls visible identity, Home composition and navigation without source edits.
- **Sprint 3:** a new non-core capability can be added without feature-specific core changes.
- **Sprint 4:** prove Amber is one implementation of a stable theme contract.
- **Sprint M:** an article with image/video/embed/native chart publishes with zero core hydration and no third-party request before interaction.
- **Sprint 5:** (deferred until a second production theme exists) owner may expose multiple themes; anonymous visitors persist an explicit choice without becoming tracked identities.
- **Sprint 6:** EPPP is easy to recover and upgrade, not merely easy to demo.
- **Sprint 7:** security, accessibility, failure handling and performance are trusted for long-lived deployment and extension development.
## Resequenced implementation order (§72-A)
1–23 as v1.0 (workspace → Docker → PostgreSQL adapter → config → migration runner → Fastify shell → manifest loader → registries → site model → content/revisions → Blog → block registry → theme registry → Amber → React server renderer → auth → admin shell → post editor → Home composition → navigation → generic settings → extension lifecycle → second test theme). Then: 24 media pipeline (E29) → 25 hardened fetch/embeds (E30) → 26 charts/diagrams (E31) → 27 metadata/sitemap (34-A) → 28 operational hardening → 29 visitor preferences (deferred) → 30 Reading.
## Roadmap summary (§73)
```
Sprint 0 Architecture + Docker + DB + CI
Sprint 1 Publish a real post in Amber
Sprint 2 Editable Home/site/navigation
Sprint 3 Extension API/lifecycle proof
Sprint 4 Theme platform + second test theme
Sprint M Media + embeds + charts (v1.1)
Sprint 5 Visitor preferences/theme choice
Sprint 6 Setup/backup/export/upgrade
Sprint 7 Security/accessibility/performance hardening
v0.2 Second production theme + RSS + lightweight features
v0.3 Reading extension as full architecture proof
```
## v0.1 release boundary (§54)
**Included:** Docker Compose, PostgreSQL 18, admin auth, site identity editing, Home, posts, draft/publish, revision foundation, Amber theme, content-type/block/theme registries, extension manifest/registry baseline, page section registry, editable Home, editable navigation, responsive/a11y baseline, backup docs, health/readiness.
**Excluded:** Reading, link-health, RSS, public theme selector (while only Amber ships), plugin marketplace, arbitrary runtime package upload, multi-site SaaS, multi-admin RBAC, collaborative editing, Redis, Elasticsearch, Kubernetes requirement, microservices.
## v0.2 / v0.3 (§55/§56)
v0.2 (personalisation + lightweight extensions): second production theme (Ledger/Paper), visitor theme choice + preference persistence, RSS extension, Running/Now Home extension, static page content type, media improvements. v0.3: Reading (`org.eppp.reading`) owning bookmarks, imports, seam/half-life taxonomy, search/filter/grouping, link health, background link checker, archive fallback, admin, public route, Home contribution, settings, migrations — installable, configurable, disableable, upgradeable through public contracts.
## Decisions deliberately deferred (§69)
rich-text editor; drag/reorder UI library; CI vendor; dependency update bot; SBOM/security scanner; metrics exporter; object-store provider; multi-admin RBAC; multi-site tenancy; external search engine; public extension marketplace.
## Risk register (§67, summary)
Fastify v5 EOL unknown (M) · TS7 transition (M) · Kysely pre-1.0 (M) · arbitrary plugin code owns process (Critical if allowed) · theme overrides fragment semantics (M) · extension migrations corrupt data (H) · preference ID becomes tracking ID (M) · page builder scope explosion (H) · React public JS bloat (M) · dual DB complexity (M/H) · background infra proliferation (M) · Extension API freezes too early (M) · (v1.1) programme outlives builder attention before motivating features ship (H) · (v1.1) embed surface unspecified despite founding requirement (H) · (v1.1) dependency pins go stale (M).