claude-novel-writer 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +103 -1
  3. package/README.md +30 -19
  4. package/commands/novel.md +14 -1
  5. package/dist/ai/generation-manager.d.ts +33 -1
  6. package/dist/ai/generation-manager.d.ts.map +1 -1
  7. package/dist/ai/generation-manager.js +163 -12
  8. package/dist/ai/generation-manager.js.map +1 -1
  9. package/dist/analysis/entity-extractor.d.ts +113 -0
  10. package/dist/analysis/entity-extractor.d.ts.map +1 -0
  11. package/dist/analysis/entity-extractor.js +347 -0
  12. package/dist/analysis/entity-extractor.js.map +1 -0
  13. package/dist/analysis/hook-analyzer.d.ts +63 -0
  14. package/dist/analysis/hook-analyzer.d.ts.map +1 -0
  15. package/dist/analysis/hook-analyzer.js +232 -0
  16. package/dist/analysis/hook-analyzer.js.map +1 -0
  17. package/dist/analysis/prose-fixer.d.ts +84 -0
  18. package/dist/analysis/prose-fixer.d.ts.map +1 -0
  19. package/dist/analysis/prose-fixer.js +296 -0
  20. package/dist/analysis/prose-fixer.js.map +1 -0
  21. package/dist/analysis/severity.d.ts +62 -0
  22. package/dist/analysis/severity.d.ts.map +1 -0
  23. package/dist/analysis/severity.js +157 -0
  24. package/dist/analysis/severity.js.map +1 -0
  25. package/dist/analysis/theme-analyzer.d.ts +102 -0
  26. package/dist/analysis/theme-analyzer.d.ts.map +1 -0
  27. package/dist/analysis/theme-analyzer.js +215 -0
  28. package/dist/analysis/theme-analyzer.js.map +1 -0
  29. package/dist/analysis/tts.d.ts +50 -0
  30. package/dist/analysis/tts.d.ts.map +1 -0
  31. package/dist/analysis/tts.js +245 -0
  32. package/dist/analysis/tts.js.map +1 -0
  33. package/dist/analysis/voice-analyzer.d.ts +100 -0
  34. package/dist/analysis/voice-analyzer.d.ts.map +1 -0
  35. package/dist/analysis/voice-analyzer.js +234 -0
  36. package/dist/analysis/voice-analyzer.js.map +1 -0
  37. package/dist/builders/character-builder.d.ts.map +1 -1
  38. package/dist/builders/character-builder.js +15 -6
  39. package/dist/builders/character-builder.js.map +1 -1
  40. package/dist/cli/commands/analyze.d.ts.map +1 -1
  41. package/dist/cli/commands/analyze.js +27 -0
  42. package/dist/cli/commands/analyze.js.map +1 -1
  43. package/dist/cli/commands/extract.d.ts +10 -0
  44. package/dist/cli/commands/extract.d.ts.map +1 -0
  45. package/dist/cli/commands/extract.js +28 -0
  46. package/dist/cli/commands/extract.js.map +1 -0
  47. package/dist/cli/commands/generate.d.ts.map +1 -1
  48. package/dist/cli/commands/generate.js +32 -0
  49. package/dist/cli/commands/generate.js.map +1 -1
  50. package/dist/cli/commands/help.d.ts.map +1 -1
  51. package/dist/cli/commands/help.js +15 -1
  52. package/dist/cli/commands/help.js.map +1 -1
  53. package/dist/cli/commands/readaloud.d.ts +9 -0
  54. package/dist/cli/commands/readaloud.d.ts.map +1 -0
  55. package/dist/cli/commands/readaloud.js +31 -0
  56. package/dist/cli/commands/readaloud.js.map +1 -0
  57. package/dist/cli/commands/report.d.ts +10 -0
  58. package/dist/cli/commands/report.d.ts.map +1 -0
  59. package/dist/cli/commands/report.js +17 -0
  60. package/dist/cli/commands/report.js.map +1 -0
  61. package/dist/cli/commands/revise.d.ts +11 -0
  62. package/dist/cli/commands/revise.d.ts.map +1 -0
  63. package/dist/cli/commands/revise.js +52 -0
  64. package/dist/cli/commands/revise.js.map +1 -0
  65. package/dist/cli/commands/structure.d.ts +10 -0
  66. package/dist/cli/commands/structure.d.ts.map +1 -0
  67. package/dist/cli/commands/structure.js +60 -0
  68. package/dist/cli/commands/structure.js.map +1 -0
  69. package/dist/cli/commands/theme.d.ts +10 -0
  70. package/dist/cli/commands/theme.d.ts.map +1 -0
  71. package/dist/cli/commands/theme.js +71 -0
  72. package/dist/cli/commands/theme.js.map +1 -0
  73. package/dist/cli/handlers/analyze-handler.d.ts.map +1 -1
  74. package/dist/cli/handlers/analyze-handler.js +182 -5
  75. package/dist/cli/handlers/analyze-handler.js.map +1 -1
  76. package/dist/cli/handlers/context-handler.js +41 -15
  77. package/dist/cli/handlers/context-handler.js.map +1 -1
  78. package/dist/cli/handlers/create-handler.js +6 -7
  79. package/dist/cli/handlers/create-handler.js.map +1 -1
  80. package/dist/cli/handlers/extract-handler.d.ts +11 -0
  81. package/dist/cli/handlers/extract-handler.d.ts.map +1 -0
  82. package/dist/cli/handlers/extract-handler.js +129 -0
  83. package/dist/cli/handlers/extract-handler.js.map +1 -0
  84. package/dist/cli/handlers/generate-handler.d.ts.map +1 -1
  85. package/dist/cli/handlers/generate-handler.js +135 -1
  86. package/dist/cli/handlers/generate-handler.js.map +1 -1
  87. package/dist/cli/handlers/help-handler.d.ts +3 -2
  88. package/dist/cli/handlers/help-handler.d.ts.map +1 -1
  89. package/dist/cli/handlers/help-handler.js +54 -4
  90. package/dist/cli/handlers/help-handler.js.map +1 -1
  91. package/dist/cli/handlers/location-handler.js +7 -0
  92. package/dist/cli/handlers/location-handler.js.map +1 -1
  93. package/dist/cli/handlers/readaloud-handler.d.ts +13 -0
  94. package/dist/cli/handlers/readaloud-handler.d.ts.map +1 -0
  95. package/dist/cli/handlers/readaloud-handler.js +133 -0
  96. package/dist/cli/handlers/readaloud-handler.js.map +1 -0
  97. package/dist/cli/handlers/report-handler.d.ts +19 -0
  98. package/dist/cli/handlers/report-handler.d.ts.map +1 -0
  99. package/dist/cli/handlers/report-handler.js +236 -0
  100. package/dist/cli/handlers/report-handler.js.map +1 -0
  101. package/dist/cli/handlers/revise-handler.d.ts +21 -0
  102. package/dist/cli/handlers/revise-handler.d.ts.map +1 -0
  103. package/dist/cli/handlers/revise-handler.js +153 -0
  104. package/dist/cli/handlers/revise-handler.js.map +1 -0
  105. package/dist/cli/handlers/scene-handler.js +6 -6
  106. package/dist/cli/handlers/scene-handler.js.map +1 -1
  107. package/dist/cli/handlers/session-handler.js +6 -2
  108. package/dist/cli/handlers/session-handler.js.map +1 -1
  109. package/dist/cli/handlers/structure-handler.d.ts +12 -0
  110. package/dist/cli/handlers/structure-handler.d.ts.map +1 -0
  111. package/dist/cli/handlers/structure-handler.js +217 -0
  112. package/dist/cli/handlers/structure-handler.js.map +1 -0
  113. package/dist/cli/handlers/theme-handler.d.ts +11 -0
  114. package/dist/cli/handlers/theme-handler.d.ts.map +1 -0
  115. package/dist/cli/handlers/theme-handler.js +172 -0
  116. package/dist/cli/handlers/theme-handler.js.map +1 -0
  117. package/dist/cli/handlers/timeline-handler.js +9 -0
  118. package/dist/cli/handlers/timeline-handler.js.map +1 -1
  119. package/dist/cli/index.d.ts.map +1 -1
  120. package/dist/cli/index.js +14 -7
  121. package/dist/cli/index.js.map +1 -1
  122. package/dist/cli/registry.d.ts.map +1 -1
  123. package/dist/cli/registry.js +17 -0
  124. package/dist/cli/registry.js.map +1 -1
  125. package/dist/consistency/checker.d.ts.map +1 -1
  126. package/dist/consistency/checker.js +17 -1
  127. package/dist/consistency/checker.js.map +1 -1
  128. package/dist/core/database.d.ts +6 -0
  129. package/dist/core/database.d.ts.map +1 -1
  130. package/dist/core/database.js +9 -0
  131. package/dist/core/database.js.map +1 -1
  132. package/dist/data/features.d.ts +7 -1
  133. package/dist/data/features.d.ts.map +1 -1
  134. package/dist/data/features.js +47 -1
  135. package/dist/data/features.js.map +1 -1
  136. package/dist/data/structure-templates.d.ts +115 -0
  137. package/dist/data/structure-templates.d.ts.map +1 -0
  138. package/dist/data/structure-templates.js +175 -0
  139. package/dist/data/structure-templates.js.map +1 -0
  140. package/dist/index.d.ts +13 -0
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +36 -0
  143. package/dist/index.js.map +1 -1
  144. package/dist/sync/chapter-sync.d.ts +3 -3
  145. package/dist/sync/chapter-sync.d.ts.map +1 -1
  146. package/dist/sync/chapter-sync.js +6 -27
  147. package/dist/sync/chapter-sync.js.map +1 -1
  148. package/dist/sync/world-rules-sync.d.ts.map +1 -1
  149. package/dist/sync/world-rules-sync.js +14 -2
  150. package/dist/sync/world-rules-sync.js.map +1 -1
  151. package/dist/types/novel.d.ts +9 -0
  152. package/dist/types/novel.d.ts.map +1 -1
  153. package/dist/types/novel.js.map +1 -1
  154. package/mcp-server/launch.js +68 -45
  155. package/mcp-server/novel-tools/dist/index.d.ts +71 -3
  156. package/mcp-server/novel-tools/dist/index.js +150 -104
  157. package/package.json +2 -2
  158. package/skills/novel-analyze.md +36 -2
  159. package/skills/novel-generate.md +19 -3
  160. package/mcp-server/novel-tools/dist/handlers.d.ts +0 -42
  161. package/mcp-server/novel-tools/dist/handlers.js +0 -820
  162. package/mcp-server/novel-tools/dist/tools.d.ts +0 -852
  163. package/mcp-server/novel-tools/dist/tools.js +0 -898
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-novel-writer",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "AI-assisted novel writing for Claude Code — structure, consistency tracking, context assembly, and prose analysis",
5
5
  "author": {
6
6
  "name": "claude-novel-writer",
package/CHANGELOG.md CHANGED
@@ -7,6 +7,107 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2026-06-28
11
+
12
+ ### Changed (MCP server — passthrough rewrite)
13
+ - The `novel-tools` MCP server was a parallel, hand-written set of ~40 tools
14
+ that had drifted badly behind the CLI and was broken against the current
15
+ schema (it queried a non-existent `projects.project_path` column and a
16
+ `novel.db` file the app never creates). It is replaced by a **single `novel`
17
+ passthrough tool** that runs any CLI command in a project and returns its
18
+ output. The CLI's `CommandRegistry` is now the single source of truth, so the
19
+ MCP surface can never drift again — the tool's description points callers at
20
+ `help` / `help <command>` to discover the live command + argument list.
21
+ (`mcp-server/novel-tools/`: `handlers.ts` + `tools.ts` removed; `index.ts`
22
+ rewritten; `launch.js` refactored for testability.)
23
+
24
+ ### Fixed (correctness bugs surfaced by coverage work)
25
+ - **`session`, `location`, and `timeline` commands were non-functional** on a
26
+ real project: each handler built a `NovelWriterExtension` but never resolved
27
+ the project id, so every DB operation threw "Project ID not set" (timeline was
28
+ entirely broken; session start/end/stats and progress always failed). All
29
+ three now call `loadProjectId()`. (BUGS.md CLI-02)
30
+ - **`/novel foreshadow` was unreachable** — the command and its handler existed
31
+ and were tested, but the command was never registered in the CLI registry.
32
+ Now registered. (BUGS.md CLI-03)
33
+ - **`check characters` / `check timeline` / `check plot-threads` silently
34
+ reported no issues** (and `check list` showed `[undefined]` badges) — the
35
+ handlers read camelCase fields off raw snake_case rows; `getOpenIssues()` now
36
+ maps to the typed `ConsistencyIssue` shape. (BUGS.md CHECK-01/02)
37
+ - **`generate next-sentence` always failed** — it queried `scenes.content` /
38
+ `scenes.project_id`, which don't exist; now reads the scene's chapter summary
39
+ via a valid join. (BUGS.md SQL-04)
40
+ - **`world-rule established` could throw an FK violation** — a chapter *number*
41
+ was written into the `established_chapter_id` (FK → `chapters.id`); both sync
42
+ directions now resolve number↔id. (BUGS.md SQL-05)
43
+ - **Character files with a quote in an attribute** (e.g. `height: 5'9"`) produced
44
+ invalid YAML that broke sync — values are now escaped. (BUGS.md DATA-01)
45
+ - `--tension 0` / `--mood 0` no longer bypass range validation. (BUGS.md VAL-01)
46
+ - `scene-handler` resolves the real project id instead of hardcoding 1. (BUGS.md ROBUST-01)
47
+
48
+ ### Added (v0.2.0 craft features — round 2)
49
+ - **`novel revise <chapter> [--apply <categories>|--all]`** — diff-gated
50
+ mechanical prose fixes (doubled words, redundant intensifiers, adverb dialogue
51
+ tags, straight→curly quotes, multiple/trailing whitespace). Dry-run preview by
52
+ default; applies only the categories you opt into. Distinct from `revision`
53
+ (snapshots).
54
+ - **`novel structure list|apply <template>|status`** — story-structure beat
55
+ templates (three-act, Save the Cat, Hero's Journey) mapped to word-count
56
+ positions; `status` compares the applied plan against drafted word count.
57
+ - **`novel theme add|list|trace`** — register themes + motif words and trace
58
+ motif density across chapters (sparkline, gaps, spikes). Deterministic.
59
+ - **`novel analyze hook [--chapter N]`** — deterministic opening-line
60
+ hook-strength scorer (0–100) across six signals with advisory suggestions.
61
+ - **Advisory severity grading** — `analyze prose|sentences|dialogue` now grade
62
+ flags as info/suggestion/warning relative to `style-targets.yml` (with an
63
+ optional `allow:` list and softened wording); `--strict` restores hard flagging.
64
+ - **`novel help --json`** — machine-readable JSON schema of the whole CLI (or a
65
+ single command), so tooling/agents can introspect commands + flags without
66
+ parsing prose.
67
+
68
+ ### Tests & coverage
69
+ - Removed `tests/e2e/gothic-horror-live.test.ts` (hardcoded to a personal
70
+ absolute path; unrunnable elsewhere).
71
+ - Coverage scope corrected (excludes built `dist/`, `examples/`, config files).
72
+ - Comprehensive in-process handler tests added: **CLI at 96.6% statements**
73
+ (every handler ≥90% except session-handler at 88%), **mcp-server at 93.9%**,
74
+ project total 91.7% — up from a 55.5% project baseline. Suite: 2,445 tests.
75
+ - Six additional latent bugs documented in `BUGS.md` (CHECK-01/02, SQL-04/05,
76
+ DATA-01, VAL-01, ROBUST-01) for follow-up.
77
+
78
+ ### Fixed (Tier-0 correctness)
79
+ - `create chapter` now syncs the new chapter to the database and auto-numbers it
80
+ (was: never synced, hardcoded chapter 1) — chapters are immediately visible to
81
+ analysis/context/consistency.
82
+ - The CLI resolves the real project id from the database instead of hardcoding 1.
83
+ - `context build` is wired to the ContextPolicyEngine (was a stub) — assembles
84
+ and renders real context blocks.
85
+ - Chapter summaries moved out of the deterministic sync layer (which wrote a
86
+ placeholder) into the generation layer: `generate summary --chapter N`
87
+ produces a ≤5-sentence summary via Claude, using the API when
88
+ `ANTHROPIC_API_KEY` is set and otherwise the Claude Code session (passthrough).
89
+
90
+ ### Added (v0.2.0 craft features)
91
+ - **`novel report`** — one-screen manuscript-health dashboard: tension sparkline,
92
+ open plot threads, unresolved/overdue promises, scenes missing a purpose,
93
+ chapters off their style targets, and total `[TK]` markers. Read-only.
94
+ - **`novel readaloud`** — actually speaks a chapter/scene/text via the OS TTS
95
+ engine (Windows SAPI, macOS `say`, Linux espeak/spd-say); `--out` writes audio.
96
+ - **`novel analyze voice`** — manuscript-wide character-voice analysis: flags
97
+ voices that sound too alike and voices that drift across chapters.
98
+ - **`novel extract --chapter N`** — discovery-writer path: scans drafted prose
99
+ for new character/location candidates and proposes ready-to-run create commands.
100
+ - **`novel extract --file <path>`** — runs the same discovery scan over any
101
+ prose file (e.g. a freeform outline), so a planner can bootstrap structured
102
+ `characters/` / `plots/` entities before drafting begins.
103
+ - **`novel generate overview`** — summary of the **intended** book, assembled
104
+ from the planned outline (plot threads + their beats) and the character
105
+ roster (unlike `synopsis`, which summarizes drafted chapters). Works
106
+ pre-draft; `--length brief|standard|full`, `--save` writes
107
+ `export/overview.md`. Uses the API when `ANTHROPIC_API_KEY` is set, otherwise
108
+ the Claude Code session (passthrough). Emits a guidance warning — pointing at
109
+ `extract --file` — when no cast or outline exists yet.
110
+
10
111
  ## [0.1.1] - 2026-06-26
11
112
 
12
113
  ### Changed
@@ -142,6 +243,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
142
243
  - `generate`, `idea`, `knowledge`, `canon`, `promise`, `context`, `graph`
143
244
  - `revision`, `draft`, `analyze`, `research`, `beta`, `query`, `series`, `help`
144
245
 
145
- [Unreleased]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.1.1...HEAD
246
+ [Unreleased]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.2.0...HEAD
247
+ [0.2.0]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.1.1...v0.2.0
146
248
  [0.1.1]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.1.0...v0.1.1
147
249
  [0.1.0]: https://github.com/mrskwiw/claude-novel-writer/releases/tag/v0.1.0
package/README.md CHANGED
@@ -8,19 +8,36 @@ A [Claude Code](https://claude.ai/code) plugin for AI-assisted novel writing. Ma
8
8
 
9
9
  ## Installation
10
10
 
11
+ Two alternate methods — both install the same plugin globally, so use whichever you prefer:
12
+
11
13
  ```bash
14
+ # via npm
12
15
  npm install -g claude-novel-writer
13
16
  ```
14
17
 
18
+ ```bash
19
+ # via Claude Code's plugin manager
20
+ claude plugin install claude-novel-writer
21
+ ```
22
+
15
23
  Claude Code detects the extension automatically after installation. Restart Claude Code, then:
16
24
 
17
25
  ```
18
26
  /novel help
19
27
  ```
20
28
 
29
+ ### Local install (development / testing)
30
+
31
+ ```bash
32
+ git clone https://github.com/mrskwiw/claude-novel-writer.git
33
+ cd claude-novel-writer/project
34
+ npm install && npm run build
35
+ claude --plugin-dir .
36
+ ```
37
+
21
38
  ## How it works
22
39
 
23
- Once installed, the plugin loads four skills into Claude's context. Claude reads the skill descriptions and **invokes them automatically** based on what you say — you don't need to remember command names.
40
+ Once installed, the plugin loads five skills into Claude's context. Claude reads the skill descriptions and **invokes them automatically** based on what you say — you don't need to remember command names.
24
41
 
25
42
  - Say *"I want to write a novel"* in a blank folder → Claude initializes the project
26
43
  - Say *"check my manuscript for inconsistencies"* → Claude runs consistency checks
@@ -36,23 +53,6 @@ When you want direct control, use the `/novel` slash command or the `novel-write
36
53
  - pandoc (optional — for DOCX/EPUB/PDF export)
37
54
  - `ANTHROPIC_API_KEY` (required for AI generation commands only)
38
55
 
39
- ## Installation
40
-
41
- ```bash
42
- claude plugin install claude-novel-writer
43
- ```
44
-
45
- Restart Claude Code after installing.
46
-
47
- ### Local install (development / testing)
48
-
49
- ```bash
50
- git clone https://github.com/mrskwiw/claude-novel-writer.git
51
- cd claude-novel-writer/project
52
- npm install && npm run build
53
- claude --plugin-dir .
54
- ```
55
-
56
56
  ## Starting a new novel
57
57
 
58
58
  Open an empty folder in Claude Code and just say what you want:
@@ -148,8 +148,17 @@ All commands are available as `/novel <command>` (slash command) or `novel-write
148
148
  | `analyze pacing` | Tension arc, POV balance, chapter length distribution |
149
149
  | `analyze copy` | POV slips, tense shifts, name variant detection |
150
150
  | `analyze developmental` | Scene purpose audit, subplot balance, plot holes |
151
+ | `analyze style` | Grade prose against this project's `style-targets.yml` (`--chapter N` / `--all`) |
152
+ | `analyze voice` | Manuscript-wide voice analysis: flag too-similar voices and voices that drift |
153
+ | `analyze hook` | Score a chapter's opening-line hook strength (0–100) across six signals (`--chapter N`) |
154
+ | `revise <chapter>` | Diff-gated mechanical prose fixes — dry-run by default; `--apply <categories>` / `--all` |
155
+ | `structure apply\|status` | Beat templates (three-act / Save the Cat / Hero's Journey) vs word-count positions |
156
+ | `theme add\|list\|trace` | Register themes + motifs and trace motif density across chapters |
157
+ | `report` | One-screen manuscript-health dashboard (tension, threads, promises, `[TK]`s) |
158
+ | `readaloud` | Speak a chapter/scene/text aloud via the OS TTS engine (`--out` writes audio) |
159
+ | `extract --chapter N` | Scan drafted prose for new character/location candidates (or `--file outline.md` to bootstrap from a freeform outline) |
151
160
  | `draft scan` | Find `[TK]`, `[TODO]`, `[CHECK]`, `[FIXME]` markers |
152
- | `draft readaloud` | Rhythm analysis, accidental rhyme detection |
161
+ | `draft readaloud` | Rhythm analysis, accidental rhyme detection (text prep, not audio) |
153
162
 
154
163
  ### AI generation
155
164
 
@@ -165,6 +174,8 @@ Requires `ANTHROPIC_API_KEY`.
165
174
  | `generate comps` | Comparable titles |
166
175
  | `generate character --id N` | Full character profile |
167
176
  | `generate name` | Character or place name suggestions |
177
+ | `generate summary --chapter N` | ≤5-sentence chapter summary (API, or via the Claude Code session) |
178
+ | `generate overview` | Summary of the **intended** book from the planned outline + cast (pre-draft; `--length brief\|standard\|full`) |
168
179
 
169
180
  ### Research
170
181
 
package/commands/novel.md CHANGED
@@ -44,9 +44,22 @@ Pass any arguments directly to the CLI. Common examples:
44
44
  - `novel-writer list characters` — list all characters
45
45
  - `novel-writer list chapters` — list chapters with word counts
46
46
  - `novel-writer check` — run all consistency checks
47
- - `novel-writer analyze prose` — prose economy and style analysis
47
+ - `novel-writer report` — one-screen manuscript-health dashboard
48
+ - `novel-writer analyze prose` — prose economy and style analysis (advisory; add `--strict` for hard flags)
48
49
  - `novel-writer analyze pacing` — tension arc and POV balance
50
+ - `novel-writer analyze hook --chapter 1` — score a chapter's opening-line hook strength
51
+ - `novel-writer revise 1 --apply doubled-words,trailing-whitespace` — diff-gated mechanical fixes (dry-run by default)
52
+ - `novel-writer structure apply three-act` / `structure status` — beat templates vs word-count positions
53
+ - `novel-writer theme add --name "isolation" --motifs "cold,mirror,silence"` / `theme trace` — motif density
54
+ - `novel-writer help --json` — machine-readable schema of every command + flag
55
+ - `novel-writer analyze style --all` — grade prose against the project's style-targets.yml
56
+ - `novel-writer analyze voice` — flag too-similar / drifting character voices
57
+ - `novel-writer extract --chapter 1` — propose new characters/locations from drafted prose
58
+ - `novel-writer extract --file outline.md` — bootstrap characters/locations from a freeform outline
59
+ - `novel-writer readaloud --chapter 1` — speak a chapter aloud via the OS TTS engine
49
60
  - `novel-writer generate scene --scene-id 1` — AI scene continuation
61
+ - `novel-writer generate overview` — summarize the intended book from the planned outline + cast
62
+ - `novel-writer generate summary --chapter 1` — ≤5-sentence chapter summary
50
63
  - `novel-writer research verify` — scan for [VERIFY:] markers
51
64
  - `novel-writer export markdown` — export assembled manuscript
52
65
  - `novel-writer help` — full command list
@@ -5,7 +5,7 @@
5
5
  * Philosophy: Suggest, don't dictate. Support the author's voice.
6
6
  */
7
7
  import type { MCPClient } from '../core/database.js';
8
- import type { SynopsisContext, SynopsisLength } from '../types/novel.js';
8
+ import type { SynopsisContext, SynopsisLength, OverviewLength } from '../types/novel.js';
9
9
  export interface CharacterProfileRow {
10
10
  name: string;
11
11
  role?: string;
@@ -52,6 +52,38 @@ export declare class GenerationManager {
52
52
  private claude;
53
53
  private contextAssembler;
54
54
  constructor(mcpClient: MCPClient, projectId: number);
55
+ /**
56
+ * Summarize a chapter in up to 5 sentences for story-context memory.
57
+ *
58
+ * Routes through `IClaudeClient`, so it works two ways automatically:
59
+ * - With ANTHROPIC_API_KEY → the API returns the summary text.
60
+ * - Without a key → PassthroughClaudeClient returns the assembled PROMPT and
61
+ * `passthrough: true`; the Claude Code session that ran the command does the
62
+ * summarizing. Either way the caller persists the result to the chapter's
63
+ * `summary:` frontmatter.
64
+ *
65
+ * @param chapterText - chapter prose (frontmatter/markup already stripped)
66
+ * @param title - optional chapter title, for prompt context
67
+ */
68
+ generateChapterSummary(chapterText: string, title?: string): Promise<{
69
+ content: string;
70
+ passthrough: boolean;
71
+ }>;
72
+ /**
73
+ * Summarize the book the author INTENDS to write, from their planning data:
74
+ * the outline (plot threads + their beats), the character roster, and any hard
75
+ * world rules. Unlike `generateSynopsis` — which reads drafted chapter
76
+ * summaries — this works pre-draft and describes the *planned* book.
77
+ *
78
+ * Routes through `IClaudeClient`: with ANTHROPIC_API_KEY the API returns the
79
+ * prose; without a key the PassthroughClaudeClient returns the assembled
80
+ * PROMPT and the Claude Code session writes the summary. Returns a `warnings`
81
+ * entry (and empty content) when there is no outline or cast to summarize.
82
+ *
83
+ * @param projectId - Project identifier (string form accepted by callers)
84
+ * @param length - 'brief' (~150w), 'standard' (~350w), or 'full' (~700w)
85
+ */
86
+ generateOverview(projectId: string, length?: OverviewLength): Promise<GenerationResult>;
55
87
  /**
56
88
  * Generate character profile from description.
57
89
  * When options.count > 1, instructs Claude to return that many distinct profile options,
@@ -1 +1 @@
1
- {"version":3,"file":"generation-manager.d.ts","sourceRoot":"","sources":["../../src/ai/generation-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation-manager.d.ts","sourceRoot":"","sources":["../../src/ai/generation-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAgB,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGvG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC5C,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,eAAe,CAAC;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAK1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,gBAAgB,CAAwB;gBAGtC,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM;IAQ3B;;;;;;;;;;;;OAYG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAoBrD;;;;;;;;;;;;;OAaG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,cAA2B,GAClC,OAAO,CAAC,gBAAgB,CAAC;IAiL5B;;;;;;OAMG;IACG,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IA8B5B;;OAEG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;;OAIG;IACG,wBAAwB,CAC5B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAmB5B;;;;OAIG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAmB5B;;;;OAIG;IACG,iBAAiB,CACrB,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;;OAGG;IACG,sBAAsB,CAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAwB5B,OAAO,CAAC,oBAAoB;IAsD5B,OAAO,CAAC,mBAAmB;YA6Cb,uBAAuB;YAuEvB,mBAAmB;YAuCnB,sBAAsB;IAwCpC,OAAO,CAAC,eAAe;YAmCT,sBAAsB;YA4BtB,oBAAoB;YAIpB,mBAAmB;YAYnB,aAAa;IAY3B;;;;;;OAMG;YACW,kBAAkB;IAqBhC;;;;;OAKG;YACW,aAAa;IAa3B;;;;;;;;OAQG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAwC5B;;;;;;;;OAQG;IACG,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuE1E;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6C5F;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BjE;;;;;OAKG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4C9F;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA0BjE;;;;;;;;;;;;;;OAcG;IACG,oBAAoB,CACxB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC;IAmE5B;;;;;;OAMG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAgC5B;;;;OAIG;IACG,YAAY,CAAC,IAAI,EAAE;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;KAClC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB7B;;;;;;OAMG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAe3F;;;;;OAKG;IACG,uBAAuB,CAAC,IAAI,GAAE;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmBnC"}
@@ -22,6 +22,162 @@ export class GenerationManager {
22
22
  : new PassthroughClaudeClient();
23
23
  this.contextAssembler = new SceneContextAssembler(mcpClient, projectId);
24
24
  }
25
+ /**
26
+ * Summarize a chapter in up to 5 sentences for story-context memory.
27
+ *
28
+ * Routes through `IClaudeClient`, so it works two ways automatically:
29
+ * - With ANTHROPIC_API_KEY → the API returns the summary text.
30
+ * - Without a key → PassthroughClaudeClient returns the assembled PROMPT and
31
+ * `passthrough: true`; the Claude Code session that ran the command does the
32
+ * summarizing. Either way the caller persists the result to the chapter's
33
+ * `summary:` frontmatter.
34
+ *
35
+ * @param chapterText - chapter prose (frontmatter/markup already stripped)
36
+ * @param title - optional chapter title, for prompt context
37
+ */
38
+ async generateChapterSummary(chapterText, title) {
39
+ const heading = title ? `Chapter: "${title}"` : 'Chapter';
40
+ const prompt = [
41
+ 'Summarize the following chapter in NO MORE THAN 5 sentences, for use as',
42
+ 'story-context memory. Capture the key events and what changes by the',
43
+ "chapter's end — not just the opening atmosphere. Write plain prose.",
44
+ 'Output ONLY the summary: no preamble, labels, headings, or quotation marks.',
45
+ '',
46
+ heading,
47
+ '---',
48
+ chapterText.trim(),
49
+ ].join('\n');
50
+ const response = await this.claude.generateStructured(prompt, {
51
+ temperature: 0.3,
52
+ maxTokens: 400,
53
+ });
54
+ return { content: response.content, passthrough: Boolean(response.passthrough) };
55
+ }
56
+ /**
57
+ * Summarize the book the author INTENDS to write, from their planning data:
58
+ * the outline (plot threads + their beats), the character roster, and any hard
59
+ * world rules. Unlike `generateSynopsis` — which reads drafted chapter
60
+ * summaries — this works pre-draft and describes the *planned* book.
61
+ *
62
+ * Routes through `IClaudeClient`: with ANTHROPIC_API_KEY the API returns the
63
+ * prose; without a key the PassthroughClaudeClient returns the assembled
64
+ * PROMPT and the Claude Code session writes the summary. Returns a `warnings`
65
+ * entry (and empty content) when there is no outline or cast to summarize.
66
+ *
67
+ * @param projectId - Project identifier (string form accepted by callers)
68
+ * @param length - 'brief' (~150w), 'standard' (~350w), or 'full' (~700w)
69
+ */
70
+ async generateOverview(projectId, length = 'standard') {
71
+ const id = Number(projectId) || this.projectId;
72
+ // Project header.
73
+ const projectRows = await this.mcpClient.readQuery('SELECT title, genre, target_word_count, current_phase FROM projects WHERE id = ?', [id]);
74
+ const project = projectRows[0] ?? {};
75
+ // Full cast, ordered by narrative importance then name.
76
+ const characters = await this.mcpClient.readQuery(`SELECT name, role, summary, voice_notes FROM characters WHERE project_id = ?
77
+ ORDER BY CASE role
78
+ WHEN 'protagonist' THEN 0 WHEN 'antagonist' THEN 1
79
+ WHEN 'major' THEN 2 WHEN 'minor' THEN 3 ELSE 4 END, name`, [id]);
80
+ // The outline: plot threads (highest priority first) with their beats.
81
+ const threadRows = await this.mcpClient.readQuery(`SELECT id, thread_name, thread_type, description, status, priority
82
+ FROM plot_threads WHERE project_id = ?
83
+ ORDER BY COALESCE(priority, 0) DESC, id`, [id]);
84
+ const threads = [];
85
+ for (const t of threadRows) {
86
+ const beats = await this.mcpClient.readQuery(`SELECT beat_type, description FROM plot_beats
87
+ WHERE plot_thread_id = ? ORDER BY beat_order`, [t.id]);
88
+ threads.push({
89
+ thread_name: t.thread_name,
90
+ thread_type: t.thread_type,
91
+ description: t.description,
92
+ status: t.status,
93
+ beats,
94
+ });
95
+ }
96
+ // Hard world rules (up to 8).
97
+ const worldRules = await this.mcpClient.readQuery('SELECT rule_name, description FROM world_rules WHERE project_id = ? AND is_hard_rule = 1 LIMIT 8', [id]);
98
+ // Nothing planned yet → tell the caller how to bootstrap.
99
+ if (characters.length === 0 && threads.length === 0) {
100
+ return {
101
+ content: '',
102
+ alternatives: [],
103
+ warnings: [
104
+ 'No characters or plot threads found. Populate characters/ and plots/ ' +
105
+ '(then run `novel sync`) before generating an overview. To bootstrap ' +
106
+ 'from a prose outline, try `novel extract --file outline.md`.',
107
+ ],
108
+ reasoning: 'Overview needs at least one character or plot thread.',
109
+ };
110
+ }
111
+ // ── Assemble readable planning blocks for the prompt. ──
112
+ const castBlock = characters.length
113
+ ? characters
114
+ .map((c) => {
115
+ const role = c.role ? ` [${c.role}]` : '';
116
+ const essence = c.summary ? ` — ${c.summary}` : '';
117
+ const voice = c.voice_notes ? ` (voice: ${c.voice_notes})` : '';
118
+ return ` • ${c.name}${role}${essence}${voice}`;
119
+ })
120
+ .join('\n')
121
+ : ' (No characters defined yet)';
122
+ const outlineBlock = threads.length
123
+ ? threads
124
+ .map((t) => {
125
+ const meta = [t.thread_type, t.status].filter(Boolean).join(', ');
126
+ const head = ` ▸ ${t.thread_name}${meta ? ` (${meta})` : ''}`;
127
+ const desc = t.description ? `\n ${t.description}` : '';
128
+ const beats = t.beats.length
129
+ ? '\n' +
130
+ t.beats
131
+ .map((b) => ` - ${b.beat_type ? `[${b.beat_type}] ` : ''}${b.description ?? ''}`.trimEnd())
132
+ .join('\n')
133
+ : '';
134
+ return `${head}${desc}${beats}`;
135
+ })
136
+ .join('\n')
137
+ : ' (No plot threads defined yet)';
138
+ const rulesBlock = worldRules.length
139
+ ? worldRules
140
+ .map((r) => ` • ${r.rule_name}${r.description ? `: ${r.description}` : ''}`)
141
+ .join('\n')
142
+ : '';
143
+ const lengthGuide = {
144
+ brief: '~150 words — a single tight paragraph: premise, protagonist, central conflict, and stakes.',
145
+ standard: '~350 words — premise, the main characters and what drives them, the through-line of the plot, and where it is heading.',
146
+ full: "~700 words — a planning treatment: premise, the full cast and their roles, each major thread and how they interweave, the world's hard rules, and the intended arc.",
147
+ };
148
+ const target = project.target_word_count
149
+ ? `${project.target_word_count.toLocaleString()} words`
150
+ : 'length TBD';
151
+ const prompt = [
152
+ 'You are helping a novelist articulate the book they INTEND to write, from their planning notes.',
153
+ "This is a planning summary for the author's own use — NOT a marketing blurb or submission synopsis.",
154
+ 'Describe the intended book in clear prose. Where the notes are sparse, summarize only what is given;',
155
+ 'do NOT invent plot the author has not planned. Output ONLY the summary prose: no headings or preamble.',
156
+ '',
157
+ `TITLE: ${project.title ?? 'Untitled'}`,
158
+ `GENRE: ${project.genre ?? 'Fiction'}`,
159
+ `TARGET: ${target}${project.current_phase ? ` · phase: ${project.current_phase}` : ''}`,
160
+ '',
161
+ 'CAST:',
162
+ castBlock,
163
+ '',
164
+ 'OUTLINE (plot threads and beats):',
165
+ outlineBlock,
166
+ ...(rulesBlock ? ['', 'HARD WORLD RULES:', rulesBlock] : []),
167
+ '',
168
+ `TASK: Write a summary of the intended book — ${lengthGuide[length]}`,
169
+ ].join('\n');
170
+ const response = await this.claude.generateStructured(prompt, {
171
+ temperature: 0.5,
172
+ maxTokens: length === 'full' ? 1300 : length === 'standard' ? 700 : 350,
173
+ });
174
+ return {
175
+ content: response.content,
176
+ alternatives: [],
177
+ reasoning: `Overview assembled from ${characters.length} character(s) and ${threads.length} plot thread(s)` +
178
+ (response.passthrough ? ' — written below by this session (no API key set).' : '.'),
179
+ };
180
+ }
25
181
  /**
26
182
  * Generate character profile from description.
27
183
  * When options.count > 1, instructs Claude to return that many distinct profile options,
@@ -474,18 +630,13 @@ Remember: The author knows where their story wants to go.
474
630
  * @param options - Optional generation configuration
475
631
  */
476
632
  async generateNextSentence(projectId, sceneId, options = {}) {
477
- // Load the last 500 words of the scene's content
478
- const rows = await this.mcpClient.readQuery('SELECT content FROM scenes WHERE id = ? AND project_id = ?', [sceneId, this.projectId]);
479
- let sceneContent = rows.length > 0 && rows[0].content ? rows[0].content : '';
480
- // Fallback: if scene has no content, try loading chapter opening via summary
481
- if (!sceneContent.trim()) {
482
- const chapterRows = await this.mcpClient.readQuery(`SELECT ch.summary FROM scenes s
483
- JOIN chapters ch ON ch.id = s.chapter_id
484
- WHERE s.id = ? AND ch.project_id = ?`, [sceneId, this.projectId]);
485
- sceneContent = chapterRows.length > 0 && chapterRows[0].summary
486
- ? chapterRows[0].summary
487
- : '';
488
- }
633
+ // Scene prose lives in the chapter Markdown files, not the database (the
634
+ // `scenes` table has no `content` column), so use the scene's chapter
635
+ // summary as the available context for continuation.
636
+ const chapterRows = await this.mcpClient.readQuery(`SELECT ch.summary FROM scenes s
637
+ JOIN chapters ch ON ch.id = s.chapter_id
638
+ WHERE s.id = ? AND ch.project_id = ?`, [sceneId, this.projectId]);
639
+ const sceneContent = chapterRows.length > 0 && chapterRows[0].summary ? chapterRows[0].summary : '';
489
640
  // Take last 500 words
490
641
  const words = sceneContent.trim().split(/\s+/).filter(w => w.length > 0);
491
642
  const last500 = words.slice(-500).join(' ');
@@ -1 +1 @@
1
- {"version":3,"file":"generation-manager.js","sourceRoot":"","sources":["../../src/ai/generation-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation-manager.js","sourceRoot":"","sources":["../../src/ai/generation-manager.ts"],"names":[],"mappings":"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"}