docs(plan): mark Chunk #6 complete, begin Chunk #7 (Spell & Grammar)

This commit is contained in:
Schwitzz
2026-10-27 11:03:17 -05:00
parent 5085357dad
commit b92129b62c
4 changed files with 17 additions and 13 deletions
+10 -8
View File
@@ -1,5 +1,7 @@
# CHUNK #6 — Export Pipeline # CHUNK #6 — Export Pipeline
**Status:** ✅ Complete — committed `63f34b3` (feat(export): Chunk #6 Export Pipeline). All 7 exporters, the ExportDialog, and the test suite are green.
**Duration:** ~3 days · **Prereqs:** CHUNK #3 (editor, ProseMirror JSON) · **Follows:** CHUNK #5 · **Unblocks:** CHUNK #11 (packaging ships exports) **Duration:** ~3 days · **Prereqs:** CHUNK #3 (editor, ProseMirror JSON) · **Follows:** CHUNK #5 · **Unblocks:** CHUNK #11 (packaging ships exports)
**Purpose:** Ship a single export engine that turns a project's ProseMirror JSON into Markdown, single-file HTML, EPUB 3, DOCX, ODT, and PDF — all with title/author/cover/TOC/styling options. Everything shares one flat content model so formats stay consistent and tests are golden-file based. **Purpose:** Ship a single export engine that turns a project's ProseMirror JSON into Markdown, single-file HTML, EPUB 3, DOCX, ODT, and PDF — all with title/author/cover/TOC/styling options. Everything shares one flat content model so formats stay consistent and tests are golden-file based.
@@ -57,14 +59,14 @@
--- ---
## Acceptance criteria (all must pass) ## Acceptance criteria (all must pass)
- [ ] Export a project to MD, HTML, EPUB, DOCX, ODT, PDF — all succeed from the dialog. - [x] Export a project to MD, HTML, EPUB, DOCX, ODT, PDF — all succeed from the dialog.
- [ ] EPUB passes `epubcheck` with zero errors; opens in Calibre/Readers. - [x] EPUB passes `epubcheck` with zero errors; opens in Calibre/Readers.
- [ ] ODT opens cleanly in LibreOffice; styles preserved. - [x] ODT opens cleanly in LibreOffice; styles preserved.
- [ ] DOCX opens in Word; TOC field present (update-on-open). - [x] DOCX opens in Word; TOC field present (update-on-open).
- [ ] PDF has title page, TOC (HTML backend), page numbers, correct margins. - [x] PDF has title page, TOC (HTML backend), page numbers, correct margins.
- [ ] Theme applied in HTML/EPUB/PDF (Ink dark / Parchment light, etc.). - [x] Theme applied in HTML/EPUB/PDF (Ink dark / Parchment light, etc.).
- [ ] Golden-file tests stable; round-trip MD identical. - [x] Golden-file tests stable; round-trip MD identical.
- [ ] CI validates EPUB + unzip-validates all archives. - [x] CI validates EPUB + unzip-validates all archives.
## Definition of done ## Definition of done
An author can export a finished manuscript to every major format from one dialog, with consistent styling and validated archives. An author can export a finished manuscript to every major format from one dialog, with consistent styling and validated archives.
+2
View File
@@ -1,5 +1,7 @@
# CHUNK #7 — Spell & Grammar # CHUNK #7 — Spell & Grammar
**Status:** 🟡 In progress — this is the current work order.
**Duration:** ~2 days · **Prereqs:** CHUNK #3 (editor, decoration pipeline) · **Follows:** CHUNK #6 · **Unblocks:** CHUNK #9 (AI suggestions share the decoration pipeline) **Duration:** ~2 days · **Prereqs:** CHUNK #3 (editor, decoration pipeline) · **Follows:** CHUNK #6 · **Unblocks:** CHUNK #9 (AI suggestions share the decoration pipeline)
**Purpose:** Add offline spellcheck (hunspell compiled to WASM) and optional grammar/style checking (self-hostable LanguageTool server), rendered as inline squiggles with a side panel to jump/apply/ignore. Everything runs in-browser with zero network for spellcheck; grammar is opt-in. **Purpose:** Add offline spellcheck (hunspell compiled to WASM) and optional grammar/style checking (self-hostable LanguageTool server), rendered as inline squiggles with a side panel to jump/apply/ignore. Everything runs in-browser with zero network for spellcheck; grammar is opt-in.
+3 -3
View File
@@ -272,7 +272,7 @@ Each chunk is a 1–3 day work order in `CHUNK#n.md`, written so a human *or* a
| 3 | **Writing Surface** | 3 | ✅ Done | TipTap editor ✅, document tree ✅, focus mode ✅, Markdown I/O ✅, autosave ✅, writing view wired to storage adapter ✅, fonts/logo ✅ | | 3 | **Writing Surface** | 3 | ✅ Done | TipTap editor ✅, document tree ✅, focus mode ✅, Markdown I/O ✅, autosave ✅, writing view wired to storage adapter ✅, fonts/logo ✅ |
| 4 | **Characters & World-Building** | 2 | ✅ Done | Entity schema ✅, character sheets ✅, world items ✅, fuzzy search ✅, mentions ✅, backlinks ✅, entity UI (sheets/search/relationships/map) ✅, consistency UI ✅, palette search ✅, context rail ✅, seed extension ✅, DATA_MODEL.md ✅ | | 4 | **Characters & World-Building** | 2 | ✅ Done | Entity schema ✅, character sheets ✅, world items ✅, fuzzy search ✅, mentions ✅, backlinks ✅, entity UI (sheets/search/relationships/map) ✅, consistency UI ✅, palette search ✅, context rail ✅, seed extension ✅, DATA_MODEL.md ✅ |
| 5 | **Plot & Whiteboard** | 3 | ✅ Done | Beat board + templates ✅, timeline ✅, React Flow whiteboard ✅, cross-links ✅, status/locking ✅, progress bar ✅ | | 5 | **Plot & Whiteboard** | 3 | ✅ Done | Beat board + templates ✅, timeline ✅, React Flow whiteboard ✅, cross-links ✅, status/locking ✅, progress bar ✅ |
| 6 | **Export Pipeline** | 3 | ⬜ Not started | MD/HTML/EPUB/DOCX/ODT + PDF, export dialog, CI validation | | 6 | **Export Pipeline** | 3 | ✅ Done | MD/HTML/EPUB/DOCX/ODT + PDF, export dialog, CI validation |
| 7 | **Spell & Grammar** | 2 | ⬜ Not started | hunspell-WASM spellcheck, LanguageTool grammar, decorations + panel | | 7 | **Spell & Grammar** | 2 | ⬜ Not started | hunspell-WASM spellcheck, LanguageTool grammar, decorations + panel |
| 8 | **AI Provider Layer** | 2 | ⬜ Not started | Provider config + discovery, streaming, thinking params, token budget | | 8 | **AI Provider Layer** | 2 | ⬜ Not started | Provider config + discovery, streaming, thinking params, token budget |
| 9 | **AI Roles & Suggestions** | 3 | ⬜ Not started | Editor/Reader/Publisher/Co-Author, context builder, tools, accept/reject/pin | | 9 | **AI Roles & Suggestions** | 3 | ⬜ Not started | Editor/Reader/Publisher/Co-Author, context builder, tools, accept/reject/pin |
@@ -281,7 +281,7 @@ Each chunk is a 1–3 day work order in `CHUNK#n.md`, written so a human *or* a
**Total: ~27 focused working days**, sequenced so each chunk is independently shippable and testable. **Total: ~27 focused working days**, sequenced so each chunk is independently shippable and testable.
**Progress:** 5 of 11 chunks complete. CHUNK #1 is built and CI-green (`pnpm typecheck`, `pnpm test`, `pnpm lint`, `pnpm build` all pass; `pnpm dev` serves the themed app shell). CHUNKs #2–#5 are committed and CI-green. CHUNK #4's data layer (entity schema, fuzzy search, backlinks, consistency check, `@mention` autocomplete) and entity UI layer (character/world sheets, fuzzy search, relationship editor + map, consistency UI, palette search, context rail, seed extension, `docs/DATA_MODEL.md`) are all built and green. CHUNK #5 delivers the plot & whiteboard surface: a beat board with genre templates (Three-Act, Save-the-Cat, Seven-Point, Custom), status/locking and a progress bar, a filterable timeline, and a React Flow 11 whiteboard with chapter/entity cross-links and an "Add beats to board" import. Remaining chunk-level items (Playwright E2E + 200-node perf tests) are blocked on E2E infrastructure that is not yet in the repo; unit + contract tests cover the new logic. **Progress:** 6 of 11 chunks complete. CHUNK #1 is built and CI-green (`pnpm typecheck`, `pnpm test`, `pnpm lint`, `pnpm build` all pass; `pnpm dev` serves the themed app shell). CHUNKs #2–#6 are committed and CI-green. CHUNK #4's data layer (entity schema, fuzzy search, backlinks, consistency check, `@mention` autocomplete) and entity UI layer (character/world sheets, fuzzy search, relationship editor + map, consistency UI, palette search, context rail, seed extension, `docs/DATA_MODEL.md`) are all built and green. CHUNK #5 delivers the plot & whiteboard surface: a beat board with genre templates (Three-Act, Save-the-Cat, Seven-Point, Custom), status/locking and a progress bar, a filterable timeline, and a React Flow 11 whiteboard with chapter/entity cross-links and an "Add beats to board" import. CHUNK #6 delivers the export pipeline: a shared flat model feeding Markdown, single-file HTML, EPUB 3, DOCX, ODT, and PDF exporters, plus an ExportDialog and golden-file + round-trip tests with deterministic ZIP/PDF metadata. Remaining chunk-level items (Playwright E2E + 200-node perf tests) are blocked on E2E infrastructure that is not yet in the repo; unit + contract tests cover the new logic.
--- ---
@@ -298,4 +298,4 @@ Each chunk is a 1–3 day work order in `CHUNK#n.md`, written so a human *or* a
--- ---
*CHUNK #1–#5 are complete and CI-green. Currently executing CHUNK #6 (Export Pipeline). Each chunk's acceptance criteria are the gate to the next.* *CHUNK #1–#6 are complete and CI-green. Currently executing CHUNK #7 (Spell & Grammar). Each chunk's acceptance criteria are the gate to the next.*
+2 -2
View File
@@ -37,6 +37,6 @@ One container serves the web app, runs the Fastify API, and stores SQLite on a v
## Status ## Status
**CHUNK #1 — Scaffold & Foundations** is complete: monorepo, strict TypeScript, the app shell, the theming system, the `packages/core` contracts, a Fastify server skeleton, and a green CI pipeline. **CHUNK #1 through #6 are complete and CI-green:** the monorepo with strict TypeScript, the app shell and theming system, the `packages/core` contracts, the Fastify multi-tenant server, the TipTap writing surface, characters & world-building, the plot & whiteboard surface, and the export pipeline (Markdown/HTML/EPUB/DOCX/ODT/PDF with an ExportDialog). `pnpm typecheck`, `pnpm test`, `pnpm lint`, and `pnpm build` all pass across the workspace.
*Next: [CHUNK #2](./CHUNK%232.md) — Data Model, Storage & Auth.* *Next: [CHUNK #7](./CHUNK%237.md) — Spell & Grammar.*