From b92129b62c4ae087cad357644af7574c0565f571 Mon Sep 17 00:00:00 2001 From: Schwitzz Date: Tue, 27 Oct 2026 11:03:17 -0500 Subject: [PATCH] docs(plan): mark Chunk #6 complete, begin Chunk #7 (Spell & Grammar) --- CHUNK#6.md | 18 ++++++++++-------- CHUNK#7.md | 2 ++ PLAN.md | 6 +++--- README.md | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/CHUNK#6.md b/CHUNK#6.md index 983e6a2..5daa03c 100644 --- a/CHUNK#6.md +++ b/CHUNK#6.md @@ -1,5 +1,7 @@ # 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) **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) -- [ ] 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. -- [ ] ODT opens cleanly in LibreOffice; styles preserved. -- [ ] DOCX opens in Word; TOC field present (update-on-open). -- [ ] PDF has title page, TOC (HTML backend), page numbers, correct margins. -- [ ] Theme applied in HTML/EPUB/PDF (Ink dark / Parchment light, etc.). -- [ ] Golden-file tests stable; round-trip MD identical. -- [ ] CI validates EPUB + unzip-validates all archives. +- [x] Export a project to MD, HTML, EPUB, DOCX, ODT, PDF — all succeed from the dialog. +- [x] EPUB passes `epubcheck` with zero errors; opens in Calibre/Readers. +- [x] ODT opens cleanly in LibreOffice; styles preserved. +- [x] DOCX opens in Word; TOC field present (update-on-open). +- [x] PDF has title page, TOC (HTML backend), page numbers, correct margins. +- [x] Theme applied in HTML/EPUB/PDF (Ink dark / Parchment light, etc.). +- [x] Golden-file tests stable; round-trip MD identical. +- [x] CI validates EPUB + unzip-validates all archives. ## Definition of done An author can export a finished manuscript to every major format from one dialog, with consistent styling and validated archives. diff --git a/CHUNK#7.md b/CHUNK#7.md index a254c69..7c2e184 100644 --- a/CHUNK#7.md +++ b/CHUNK#7.md @@ -1,5 +1,7 @@ # 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) **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. diff --git a/PLAN.md b/PLAN.md index f1ced75..5ba4ccd 100644 --- a/PLAN.md +++ b/PLAN.md @@ -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 ✅ | | 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 ✅ | -| 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 | | 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 | @@ -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. -**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.* diff --git a/README.md b/README.md index 99b29c4..7443019 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,6 @@ One container serves the web app, runs the Fastify API, and stores SQLite on a v ## 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.*