claude-novel-writer 0.1.0 → 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.
- package/.claude-plugin/marketplace.json +24 -0
- package/.claude-plugin/plugin.json +9 -0
- package/CHANGELOG.md +180 -1
- package/README.md +30 -19
- package/agents/README.md +327 -0
- package/agents/character-developer.md +182 -0
- package/agents/consistency-checker.md +254 -0
- package/agents/copy-editor.md +416 -0
- package/agents/developmental-editor.md +394 -0
- package/agents/line-editor.md +368 -0
- package/agents/novel-writing-assistant.md +98 -0
- package/agents/plot-analyzer.md +305 -0
- package/commands/novel.md +72 -0
- package/dist/ai/generation-manager.d.ts +33 -1
- package/dist/ai/generation-manager.d.ts.map +1 -1
- package/dist/ai/generation-manager.js +163 -12
- package/dist/ai/generation-manager.js.map +1 -1
- package/dist/analysis/entity-extractor.d.ts +113 -0
- package/dist/analysis/entity-extractor.d.ts.map +1 -0
- package/dist/analysis/entity-extractor.js +347 -0
- package/dist/analysis/entity-extractor.js.map +1 -0
- package/dist/analysis/hook-analyzer.d.ts +63 -0
- package/dist/analysis/hook-analyzer.d.ts.map +1 -0
- package/dist/analysis/hook-analyzer.js +232 -0
- package/dist/analysis/hook-analyzer.js.map +1 -0
- package/dist/analysis/prose-fixer.d.ts +84 -0
- package/dist/analysis/prose-fixer.d.ts.map +1 -0
- package/dist/analysis/prose-fixer.js +296 -0
- package/dist/analysis/prose-fixer.js.map +1 -0
- package/dist/analysis/severity.d.ts +62 -0
- package/dist/analysis/severity.d.ts.map +1 -0
- package/dist/analysis/severity.js +157 -0
- package/dist/analysis/severity.js.map +1 -0
- package/dist/analysis/style-target-analyzer.d.ts +45 -0
- package/dist/analysis/style-target-analyzer.d.ts.map +1 -0
- package/dist/analysis/style-target-analyzer.js +164 -0
- package/dist/analysis/style-target-analyzer.js.map +1 -0
- package/dist/analysis/style-targets.d.ts +66 -0
- package/dist/analysis/style-targets.d.ts.map +1 -0
- package/dist/analysis/style-targets.js +88 -0
- package/dist/analysis/style-targets.js.map +1 -0
- package/dist/analysis/theme-analyzer.d.ts +102 -0
- package/dist/analysis/theme-analyzer.d.ts.map +1 -0
- package/dist/analysis/theme-analyzer.js +215 -0
- package/dist/analysis/theme-analyzer.js.map +1 -0
- package/dist/analysis/tts.d.ts +50 -0
- package/dist/analysis/tts.d.ts.map +1 -0
- package/dist/analysis/tts.js +245 -0
- package/dist/analysis/tts.js.map +1 -0
- package/dist/analysis/voice-analyzer.d.ts +100 -0
- package/dist/analysis/voice-analyzer.d.ts.map +1 -0
- package/dist/analysis/voice-analyzer.js +234 -0
- package/dist/analysis/voice-analyzer.js.map +1 -0
- package/dist/builders/character-builder.d.ts.map +1 -1
- package/dist/builders/character-builder.js +15 -6
- package/dist/builders/character-builder.js.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +41 -1
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/beta.d.ts.map +1 -1
- package/dist/cli/commands/beta.js +2 -1
- package/dist/cli/commands/beta.js.map +1 -1
- package/dist/cli/commands/canon.d.ts.map +1 -1
- package/dist/cli/commands/canon.js +18 -1
- package/dist/cli/commands/canon.js.map +1 -1
- package/dist/cli/commands/character.d.ts.map +1 -1
- package/dist/cli/commands/character.js +11 -3
- package/dist/cli/commands/character.js.map +1 -1
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +8 -0
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/export.d.ts.map +1 -1
- package/dist/cli/commands/export.js +10 -1
- package/dist/cli/commands/export.js.map +1 -1
- package/dist/cli/commands/extract.d.ts +10 -0
- package/dist/cli/commands/extract.d.ts.map +1 -0
- package/dist/cli/commands/extract.js +28 -0
- package/dist/cli/commands/extract.js.map +1 -0
- package/dist/cli/commands/foreshadow.d.ts.map +1 -1
- package/dist/cli/commands/foreshadow.js +7 -0
- package/dist/cli/commands/foreshadow.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +41 -0
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/help.d.ts.map +1 -1
- package/dist/cli/commands/help.js +15 -1
- package/dist/cli/commands/help.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +16 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/location.d.ts.map +1 -1
- package/dist/cli/commands/location.js +8 -0
- package/dist/cli/commands/location.js.map +1 -1
- package/dist/cli/commands/plot.d.ts.map +1 -1
- package/dist/cli/commands/plot.js +8 -0
- package/dist/cli/commands/plot.js.map +1 -1
- package/dist/cli/commands/readaloud.d.ts +9 -0
- package/dist/cli/commands/readaloud.d.ts.map +1 -0
- package/dist/cli/commands/readaloud.js +31 -0
- package/dist/cli/commands/readaloud.js.map +1 -0
- package/dist/cli/commands/report.d.ts +10 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +17 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/revise.d.ts +11 -0
- package/dist/cli/commands/revise.d.ts.map +1 -0
- package/dist/cli/commands/revise.js +52 -0
- package/dist/cli/commands/revise.js.map +1 -0
- package/dist/cli/commands/scene.d.ts.map +1 -1
- package/dist/cli/commands/scene.js +8 -0
- package/dist/cli/commands/scene.js.map +1 -1
- package/dist/cli/commands/session.d.ts.map +1 -1
- package/dist/cli/commands/session.js +14 -0
- package/dist/cli/commands/session.js.map +1 -1
- package/dist/cli/commands/structure.d.ts +10 -0
- package/dist/cli/commands/structure.d.ts.map +1 -0
- package/dist/cli/commands/structure.js +60 -0
- package/dist/cli/commands/structure.js.map +1 -0
- package/dist/cli/commands/theme.d.ts +10 -0
- package/dist/cli/commands/theme.d.ts.map +1 -0
- package/dist/cli/commands/theme.js +71 -0
- package/dist/cli/commands/theme.js.map +1 -0
- package/dist/cli/commands/timeline.d.ts.map +1 -1
- package/dist/cli/commands/timeline.js +8 -0
- package/dist/cli/commands/timeline.js.map +1 -1
- package/dist/cli/commands/world-rule.d.ts.map +1 -1
- package/dist/cli/commands/world-rule.js +8 -0
- package/dist/cli/commands/world-rule.js.map +1 -1
- package/dist/cli/handlers/analyze-handler.d.ts.map +1 -1
- package/dist/cli/handlers/analyze-handler.js +298 -6
- package/dist/cli/handlers/analyze-handler.js.map +1 -1
- package/dist/cli/handlers/canon-handler.js +18 -2
- package/dist/cli/handlers/canon-handler.js.map +1 -1
- package/dist/cli/handlers/context-handler.js +41 -15
- package/dist/cli/handlers/context-handler.js.map +1 -1
- package/dist/cli/handlers/create-handler.js +6 -7
- package/dist/cli/handlers/create-handler.js.map +1 -1
- package/dist/cli/handlers/extract-handler.d.ts +11 -0
- package/dist/cli/handlers/extract-handler.d.ts.map +1 -0
- package/dist/cli/handlers/extract-handler.js +129 -0
- package/dist/cli/handlers/extract-handler.js.map +1 -0
- package/dist/cli/handlers/generate-handler.d.ts.map +1 -1
- package/dist/cli/handlers/generate-handler.js +135 -1
- package/dist/cli/handlers/generate-handler.js.map +1 -1
- package/dist/cli/handlers/help-handler.d.ts +3 -2
- package/dist/cli/handlers/help-handler.d.ts.map +1 -1
- package/dist/cli/handlers/help-handler.js +93 -5
- package/dist/cli/handlers/help-handler.js.map +1 -1
- package/dist/cli/handlers/init-handler.d.ts +6 -0
- package/dist/cli/handlers/init-handler.d.ts.map +1 -1
- package/dist/cli/handlers/init-handler.js +256 -79
- package/dist/cli/handlers/init-handler.js.map +1 -1
- package/dist/cli/handlers/init-scaffold.d.ts +23 -0
- package/dist/cli/handlers/init-scaffold.d.ts.map +1 -0
- package/dist/cli/handlers/init-scaffold.js +73 -0
- package/dist/cli/handlers/init-scaffold.js.map +1 -0
- package/dist/cli/handlers/location-handler.js +7 -0
- package/dist/cli/handlers/location-handler.js.map +1 -1
- package/dist/cli/handlers/readaloud-handler.d.ts +13 -0
- package/dist/cli/handlers/readaloud-handler.d.ts.map +1 -0
- package/dist/cli/handlers/readaloud-handler.js +133 -0
- package/dist/cli/handlers/readaloud-handler.js.map +1 -0
- package/dist/cli/handlers/report-handler.d.ts +19 -0
- package/dist/cli/handlers/report-handler.d.ts.map +1 -0
- package/dist/cli/handlers/report-handler.js +236 -0
- package/dist/cli/handlers/report-handler.js.map +1 -0
- package/dist/cli/handlers/revise-handler.d.ts +21 -0
- package/dist/cli/handlers/revise-handler.d.ts.map +1 -0
- package/dist/cli/handlers/revise-handler.js +153 -0
- package/dist/cli/handlers/revise-handler.js.map +1 -0
- package/dist/cli/handlers/scene-handler.js +6 -6
- package/dist/cli/handlers/scene-handler.js.map +1 -1
- package/dist/cli/handlers/session-handler.js +6 -2
- package/dist/cli/handlers/session-handler.js.map +1 -1
- package/dist/cli/handlers/structure-handler.d.ts +12 -0
- package/dist/cli/handlers/structure-handler.d.ts.map +1 -0
- package/dist/cli/handlers/structure-handler.js +217 -0
- package/dist/cli/handlers/structure-handler.js.map +1 -0
- package/dist/cli/handlers/theme-handler.d.ts +11 -0
- package/dist/cli/handlers/theme-handler.d.ts.map +1 -0
- package/dist/cli/handlers/theme-handler.js +172 -0
- package/dist/cli/handlers/theme-handler.js.map +1 -0
- package/dist/cli/handlers/timeline-handler.js +9 -0
- package/dist/cli/handlers/timeline-handler.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +18 -9
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +17 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/consistency/checker.d.ts.map +1 -1
- package/dist/consistency/checker.js +17 -1
- package/dist/consistency/checker.js.map +1 -1
- package/dist/core/database.d.ts +6 -0
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +9 -0
- package/dist/core/database.js.map +1 -1
- package/dist/data/features.d.ts +7 -1
- package/dist/data/features.d.ts.map +1 -1
- package/dist/data/features.js +47 -1
- package/dist/data/features.js.map +1 -1
- package/dist/data/structure-templates.d.ts +115 -0
- package/dist/data/structure-templates.d.ts.map +1 -0
- package/dist/data/structure-templates.js +175 -0
- package/dist/data/structure-templates.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -1
- package/dist/sync/chapter-sync.d.ts +3 -3
- package/dist/sync/chapter-sync.d.ts.map +1 -1
- package/dist/sync/chapter-sync.js +6 -27
- package/dist/sync/chapter-sync.js.map +1 -1
- package/dist/sync/world-rules-sync.d.ts.map +1 -1
- package/dist/sync/world-rules-sync.js +14 -2
- package/dist/sync/world-rules-sync.js.map +1 -1
- package/dist/types/novel.d.ts +9 -0
- package/dist/types/novel.d.ts.map +1 -1
- package/dist/types/novel.js.map +1 -1
- package/mcp-server/launch.js +68 -45
- package/mcp-server/novel-tools/dist/index.d.ts +71 -3
- package/mcp-server/novel-tools/dist/index.js +150 -104
- package/package.json +8 -3
- package/skills/novel-analyze.md +79 -0
- package/skills/novel-check.md +43 -0
- package/skills/novel-context.md +60 -0
- package/skills/novel-generate.md +71 -0
- package/skills/novel-setup.md +79 -0
- package/templates/COMPOSITIONAL_STYLE_GUIDE.md +26 -0
- package/templates/README.md +43 -0
- package/templates/STRUCTURAL_STYLE_GUIDE.md +26 -0
- package/templates/chapter.md +39 -0
- package/templates/character.yml +80 -0
- package/templates/location.yml +33 -0
- package/templates/plot.yml +55 -0
- package/templates/style-targets.yml +38 -0
- package/templates/timeline.yml +31 -0
- package/templates/world-rule.yml +38 -0
- package/mcp-server/novel-tools/dist/handlers.d.ts +0 -42
- package/mcp-server/novel-tools/dist/handlers.js +0 -820
- package/mcp-server/novel-tools/dist/tools.d.ts +0 -852
- package/mcp-server/novel-tools/dist/tools.js +0 -898
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-novel-writer",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "mrskwiw"
|
|
5
|
+
},
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "claude-novel-writer",
|
|
9
|
+
"source": "./",
|
|
10
|
+
"description": "AI-assisted novel writing for Claude Code — structure, consistency tracking, context assembly, and prose analysis",
|
|
11
|
+
"author": {
|
|
12
|
+
"name": "mrskwiw",
|
|
13
|
+
"email": "mrskwiw@gmail.com"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"novel",
|
|
17
|
+
"writing",
|
|
18
|
+
"fiction",
|
|
19
|
+
"storytelling",
|
|
20
|
+
"manuscript"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-novel-writer",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "AI-assisted novel writing for Claude Code — structure, consistency tracking, context assembly, and prose analysis",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "claude-novel-writer",
|
|
7
|
+
"email": "mrskwiw@gmail.com"
|
|
8
|
+
}
|
|
9
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,183 @@ 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
|
+
|
|
111
|
+
## [0.1.1] - 2026-06-26
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
|
|
115
|
+
**`init` command — automation-friendly (works in the Claude Code / AI environment)**
|
|
116
|
+
- `init` no longer blocks on interactive `readline` prompts. It now prompts
|
|
117
|
+
**only** when attached to a real interactive TTY; in the Bash tool, CI, or any
|
|
118
|
+
non-TTY context it runs non-interactively and never hangs.
|
|
119
|
+
- When `--title`/`--author` are missing in non-interactive mode, they are
|
|
120
|
+
auto-derived (title from the directory name, author from `git config
|
|
121
|
+
user.name`, falling back to `"Unknown Author"`) and the chosen values are
|
|
122
|
+
reported instead of erroring.
|
|
123
|
+
- Added `--json` flag: emits a single machine-readable JSON result on stdout
|
|
124
|
+
(`status`, `projectId`, `path`, `metadata`, `derived`, `created`,
|
|
125
|
+
`hasExistingContent`, `nextSteps`). Implies non-interactive.
|
|
126
|
+
- dotenv startup banner is now suppressed (`config({ quiet: true })`) so it can
|
|
127
|
+
no longer corrupt `--json` output on stdout.
|
|
128
|
+
- `--skip-prompts` is retained as an explicit non-interactive override; it now
|
|
129
|
+
auto-derives missing fields rather than failing.
|
|
130
|
+
|
|
131
|
+
**Docs**
|
|
132
|
+
- Clarified in the `/novel` command guide that the `novel-db` MCP server is
|
|
133
|
+
optional and for power users only. The CLI accesses the SQLite database
|
|
134
|
+
directly, so the MCP server is not needed for normal use and should not be
|
|
135
|
+
added during `init` or to "fix" CLI errors. (Previously the wording implied
|
|
136
|
+
the MCP server was required, which confused agents during setup.)
|
|
137
|
+
|
|
138
|
+
**CLI help entries**
|
|
139
|
+
- Every command now ships realistic `examples` in its `/novel help <command>`
|
|
140
|
+
entry. Added `examples` to: `character`, `check`, `export`, `foreshadow`,
|
|
141
|
+
`generate`, `location`, `plot`, `scene`, `session`, `progress`, `timeline`,
|
|
142
|
+
`world-rule`.
|
|
143
|
+
- `help <command>` renderer now shows a `Usage:` line, a positional
|
|
144
|
+
**Arguments** section, and flag **required / choices / default** metadata
|
|
145
|
+
(previously only name, alias, type, and description were shown).
|
|
146
|
+
- Sharpened name-echo flag descriptions on `character` (`eye-color`,
|
|
147
|
+
`hair-color`, `height`).
|
|
148
|
+
|
|
149
|
+
### Added
|
|
150
|
+
|
|
151
|
+
- **Style-target engine (deterministic).** New `style-targets.yml` declares
|
|
152
|
+
quantitative prose targets (sentence length, adjective/adverb density, passive
|
|
153
|
+
%, show/tell, sensory coverage, em-dash/semicolon/ellipsis cadence, fragments,
|
|
154
|
+
single-sentence paragraphs). New `novel-writer analyze style [--chapter N | --all]`
|
|
155
|
+
measures a chapter and grades each metric against the targets (✓ / ⚠ low / ⚠ high).
|
|
156
|
+
Falls back to general-fiction defaults when no file is present.
|
|
157
|
+
- **Starter templates shipped + scaffolded.** New `templates/` directory in the
|
|
158
|
+
plugin holds starter files: `style-targets.yml`, `STRUCTURAL_STYLE_GUIDE.md`,
|
|
159
|
+
`COMPOSITIONAL_STYLE_GUIDE.md`, and schema-accurate entity templates
|
|
160
|
+
(`character.yml`, `location.yml`, `plot.yml`, `world-rule.yml`, `timeline.yml`,
|
|
161
|
+
`chapter.md`, `README.md`). `init` now **copies** these (instead of embedding
|
|
162
|
+
strings): the three functional files to the project root, and the entity
|
|
163
|
+
templates into the project's `templates/` reference dir (kept out of the
|
|
164
|
+
content dirs so `sync` never imports them). The generated CLAUDE.md documents
|
|
165
|
+
how to use them. `init` also records an **editing-mode preference**
|
|
166
|
+
(deterministic | ai) in CLAUDE.md and via `--editing-mode`.
|
|
167
|
+
- **Editor agents now ship with the plugin.** The Copy / Line / Developmental
|
|
168
|
+
Editor (and other novel) agents moved into `agents/` at the plugin root and
|
|
169
|
+
their style-guide paths were corrected to project-root-relative (were pointing
|
|
170
|
+
at the `novel/` sample subdir, so they never resolved in real projects).
|
|
171
|
+
`package.json` `files` now includes `agents`, `commands`, `skills`,
|
|
172
|
+
`.claude-plugin`.
|
|
173
|
+
- `NovelWriterExtension.getProjectId()` accessor.
|
|
174
|
+
- **`analyze copy` now consumes the style guide.** It reads canonical character
|
|
175
|
+
names from `characters/*.yml` (drives the misspelled-name check) and defaults
|
|
176
|
+
the expected narrative tense from `style-targets.yml` when `--tense` is omitted.
|
|
177
|
+
|
|
178
|
+
### Fixed
|
|
179
|
+
|
|
180
|
+
- **`canon show` / `canon promote` now find their `<id>`.** The handlers read the
|
|
181
|
+
positional id in a dispatch-aware way; previously they looked one slot too far
|
|
182
|
+
and always reported the id as missing under real CLI dispatch.
|
|
183
|
+
- **MCP `novel-db` server now points at the real database.** The config pointed
|
|
184
|
+
at `.novel/novel.db`, but the code uses `.novel/data.db` — corrected so the
|
|
185
|
+
optional MCP server attaches to the actual database.
|
|
186
|
+
|
|
10
187
|
## [0.1.0] - 2026-06-09
|
|
11
188
|
|
|
12
189
|
### Added
|
|
@@ -66,5 +243,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
66
243
|
- `generate`, `idea`, `knowledge`, `canon`, `promise`, `context`, `graph`
|
|
67
244
|
- `revision`, `draft`, `analyze`, `research`, `beta`, `query`, `series`, `help`
|
|
68
245
|
|
|
69
|
-
[Unreleased]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.
|
|
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
|
|
248
|
+
[0.1.1]: https://github.com/mrskwiw/claude-novel-writer/compare/v0.1.0...v0.1.1
|
|
70
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
|
|
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/agents/README.md
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
# Claude Novel Writer - Subagents
|
|
2
|
+
|
|
3
|
+
This directory contains specialized subagents for the Claude Novel Writer project. These agents are designed to assist with specific aspects of novel writing while respecting craft principles and author voice.
|
|
4
|
+
|
|
5
|
+
## Available Subagents
|
|
6
|
+
|
|
7
|
+
### Creative Writing Agents
|
|
8
|
+
|
|
9
|
+
#### 1. Novel Writing Assistant
|
|
10
|
+
**File**: `novel-writing-assistant.md`
|
|
11
|
+
**Purpose**: General creative fiction writing assistance
|
|
12
|
+
**Use for**:
|
|
13
|
+
- Generating character profiles and locations
|
|
14
|
+
- Scene continuation suggestions
|
|
15
|
+
- Dialogue enhancement
|
|
16
|
+
- Description expansion
|
|
17
|
+
- Plot brainstorming
|
|
18
|
+
- Writing craft guidance
|
|
19
|
+
|
|
20
|
+
**Example**:
|
|
21
|
+
```
|
|
22
|
+
@novel-writing-assistant Can you suggest 3 ways to continue this scene?
|
|
23
|
+
[paste scene text]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
#### 2. Character Developer
|
|
29
|
+
**File**: `character-developer.md`
|
|
30
|
+
**Purpose**: Deep character creation and consistency
|
|
31
|
+
**Use for**:
|
|
32
|
+
- Creating complex character profiles
|
|
33
|
+
- Checking character consistency across chapters
|
|
34
|
+
- Developing character arcs
|
|
35
|
+
- Ensuring distinct character voices
|
|
36
|
+
- Identifying character contradictions
|
|
37
|
+
|
|
38
|
+
**Example**:
|
|
39
|
+
```
|
|
40
|
+
@character-developer Create a character profile for:
|
|
41
|
+
"A brilliant but isolated astrophysicist who discovers an alien signal"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### Analysis & Review Agents
|
|
47
|
+
|
|
48
|
+
#### 3. Consistency Checker
|
|
49
|
+
**File**: `consistency-checker.md`
|
|
50
|
+
**Purpose**: Detecting contradictions and continuity errors
|
|
51
|
+
**Use for**:
|
|
52
|
+
- Finding character attribute conflicts (eye color, age, etc.)
|
|
53
|
+
- Identifying timeline inconsistencies
|
|
54
|
+
- Catching world rule violations
|
|
55
|
+
- Detecting plot thread issues
|
|
56
|
+
- Distinguishing errors from intentional complexity
|
|
57
|
+
|
|
58
|
+
**Example**:
|
|
59
|
+
```
|
|
60
|
+
@consistency-checker Review chapters 1-10 for character consistency,
|
|
61
|
+
especially Sarah Chen's physical description and personality traits.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
#### 4. Plot Analyzer
|
|
67
|
+
**File**: `plot-analyzer.md`
|
|
68
|
+
**Purpose**: Story structure and pacing analysis
|
|
69
|
+
**Use for**:
|
|
70
|
+
- Analyzing story structure (three-act, hero's journey, etc.)
|
|
71
|
+
- Identifying pacing issues
|
|
72
|
+
- Tracking plot threads
|
|
73
|
+
- Checking stakes escalation
|
|
74
|
+
- Suggesting plot improvements
|
|
75
|
+
|
|
76
|
+
**Example**:
|
|
77
|
+
```
|
|
78
|
+
@plot-analyzer Analyze the pacing and structure of Act 2 (chapters 8-18).
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### Editing Agents
|
|
84
|
+
|
|
85
|
+
**Important**: All editing agents consult your project style guides:
|
|
86
|
+
- `COMPOSITIONAL_STYLE_GUIDE.md` - Voice, POV, themes, dialogue style
|
|
87
|
+
- `STRUCTURAL_STYLE_GUIDE.md` - Technical patterns, punctuation, formatting
|
|
88
|
+
|
|
89
|
+
#### 5. Developmental Editor
|
|
90
|
+
**File**: `developmental-editor.md`
|
|
91
|
+
**Purpose**: Big-picture structural editing
|
|
92
|
+
**Use for**:
|
|
93
|
+
- Story structure analysis
|
|
94
|
+
- Character arc evaluation
|
|
95
|
+
- Pacing assessment
|
|
96
|
+
- Theme integration review
|
|
97
|
+
- POV and narrative voice consistency
|
|
98
|
+
|
|
99
|
+
**Consults**: Both style guides for author's vision and narrative commitments
|
|
100
|
+
|
|
101
|
+
**Example**:
|
|
102
|
+
```
|
|
103
|
+
@developmental-editor Analyze chapters 1-10 for:
|
|
104
|
+
- Story structure alignment with three-act format
|
|
105
|
+
- Character arc progress
|
|
106
|
+
- Pacing appropriateness for Act I
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
#### 6. Line Editor
|
|
112
|
+
**File**: `line-editor.md`
|
|
113
|
+
**Purpose**: Sentence-level prose refinement
|
|
114
|
+
**Use for**:
|
|
115
|
+
- Improving sentence clarity and rhythm
|
|
116
|
+
- Strengthening word choice
|
|
117
|
+
- Reducing wordiness
|
|
118
|
+
- Enhancing dialogue
|
|
119
|
+
- Fixing show-vs-tell balance
|
|
120
|
+
|
|
121
|
+
**Consults**: Both style guides for voice, modifier limits, filter words, etc.
|
|
122
|
+
|
|
123
|
+
**Example**:
|
|
124
|
+
```
|
|
125
|
+
@line-editor Polish this paragraph while maintaining my voice:
|
|
126
|
+
[paste paragraph]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
#### 7. Copy Editor
|
|
132
|
+
**File**: `copy-editor.md`
|
|
133
|
+
**Purpose**: Technical correctness and style consistency
|
|
134
|
+
**Use for**:
|
|
135
|
+
- Grammar and spelling errors
|
|
136
|
+
- Punctuation consistency
|
|
137
|
+
- Style guide compliance
|
|
138
|
+
- Typo detection
|
|
139
|
+
- Consistency checks (names, formatting, numbers)
|
|
140
|
+
|
|
141
|
+
**Consults**: Both style guides for punctuation style, formatting rules, technical preferences
|
|
142
|
+
|
|
143
|
+
**Example**:
|
|
144
|
+
```
|
|
145
|
+
@copy-editor Check chapter 5 for:
|
|
146
|
+
- Style guide compliance
|
|
147
|
+
- Grammar errors
|
|
148
|
+
- Consistency issues
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## How to Use Subagents
|
|
152
|
+
|
|
153
|
+
### In Claude Code
|
|
154
|
+
|
|
155
|
+
**Option 1: @ Mention**
|
|
156
|
+
```
|
|
157
|
+
@character-developer [your request]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Option 2: /agent command**
|
|
161
|
+
```
|
|
162
|
+
/agent character-developer
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Then ask your question in the conversation.
|
|
166
|
+
|
|
167
|
+
### Best Practices
|
|
168
|
+
|
|
169
|
+
1. **Be Specific**: Give the agent context
|
|
170
|
+
```
|
|
171
|
+
Good: @consistency-checker Check Sarah Chen's eye color across all chapters
|
|
172
|
+
Bad: @consistency-checker check my character
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
2. **Provide Context**: Share relevant files
|
|
176
|
+
```
|
|
177
|
+
@character-developer Review characters/sarah-chen.yml and suggest
|
|
178
|
+
improvements to her character arc based on chapters/01-*.md
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
3. **Combine Agents**: Use different agents for different tasks
|
|
182
|
+
```
|
|
183
|
+
# First, develop character
|
|
184
|
+
@character-developer Create profile for villain
|
|
185
|
+
|
|
186
|
+
# Then, check consistency
|
|
187
|
+
@consistency-checker Verify villain appears consistently in chapters 5,10,15
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
4. **Edit AI Output**: Always review and edit suggestions to match your voice
|
|
191
|
+
|
|
192
|
+
## When to Use Which Agent
|
|
193
|
+
|
|
194
|
+
**Starting a new novel?**
|
|
195
|
+
→ `@novel-writing-assistant` for general guidance
|
|
196
|
+
→ `@character-developer` for creating your cast
|
|
197
|
+
|
|
198
|
+
**Mid-draft?**
|
|
199
|
+
→ `@novel-writing-assistant` when stuck on a scene
|
|
200
|
+
→ `@plot-analyzer` to check story structure
|
|
201
|
+
→ `@consistency-checker` for quick consistency checks
|
|
202
|
+
|
|
203
|
+
**Revising?**
|
|
204
|
+
→ `@consistency-checker` for full manuscript review
|
|
205
|
+
→ `@character-developer` for character arc review
|
|
206
|
+
→ `@plot-analyzer` for pacing and structure analysis
|
|
207
|
+
|
|
208
|
+
**Need creative ideas?**
|
|
209
|
+
→ `@novel-writing-assistant` for brainstorming
|
|
210
|
+
→ `@plot-analyzer` for plot development suggestions
|
|
211
|
+
|
|
212
|
+
## Agent Philosophy
|
|
213
|
+
|
|
214
|
+
All agents follow these principles:
|
|
215
|
+
|
|
216
|
+
✅ **Suggest, don't dictate** - Provide options, not mandates
|
|
217
|
+
✅ **Respect author voice** - Match existing style and tone
|
|
218
|
+
✅ **Support discovery writing** - Embrace "pantsing" and exploration
|
|
219
|
+
✅ **Encourage completion** - Progress over perfection
|
|
220
|
+
✅ **Based on master novelist wisdom** - Grounded in craft principles
|
|
221
|
+
|
|
222
|
+
## Customizing Agents
|
|
223
|
+
|
|
224
|
+
These agents are project-level (in `.claude/agents/`), so they're specific to this novel writing project.
|
|
225
|
+
|
|
226
|
+
**To modify an agent:**
|
|
227
|
+
1. Edit the `.md` file
|
|
228
|
+
2. Change the system prompt (below the YAML frontmatter)
|
|
229
|
+
3. Save - changes apply immediately
|
|
230
|
+
|
|
231
|
+
**To create a new agent:**
|
|
232
|
+
1. Create `agent-name.md` in this directory
|
|
233
|
+
2. Add YAML frontmatter with `name`, `description`, `tools`, `model`
|
|
234
|
+
3. Write the system prompt
|
|
235
|
+
|
|
236
|
+
See [Claude Code Agent Documentation](https://docs.claude.com/en/docs/claude-code/sub-agents) for details.
|
|
237
|
+
|
|
238
|
+
## Tools Available to Agents
|
|
239
|
+
|
|
240
|
+
Each agent has access to specific tools defined in their YAML frontmatter:
|
|
241
|
+
|
|
242
|
+
- **Read** - Read files from the project
|
|
243
|
+
- **Write** - Create new files
|
|
244
|
+
- **Edit** - Modify existing files
|
|
245
|
+
- **Grep** - Search file contents
|
|
246
|
+
- **Glob** - Find files by pattern
|
|
247
|
+
|
|
248
|
+
The tools are restricted to what each agent needs for its specialized purpose.
|
|
249
|
+
|
|
250
|
+
## Example Workflows
|
|
251
|
+
|
|
252
|
+
### Character Development Workflow
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# 1. Create character with AI assistance
|
|
256
|
+
@character-developer Create a character: "mysterious government agent"
|
|
257
|
+
|
|
258
|
+
# 2. Review and edit the generated YAML
|
|
259
|
+
# Edit characters/agent-name.yml
|
|
260
|
+
|
|
261
|
+
# 3. Sync to database
|
|
262
|
+
/novel sync characters
|
|
263
|
+
|
|
264
|
+
# 4. Use character in chapters
|
|
265
|
+
# Write your scenes...
|
|
266
|
+
|
|
267
|
+
# 5. Check consistency after writing several chapters
|
|
268
|
+
@consistency-checker Check Agent Smith's consistency in chapters 5-12
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Writing Session Workflow
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
# 1. Start session
|
|
275
|
+
/novel session start
|
|
276
|
+
|
|
277
|
+
# 2. Get continuation suggestions
|
|
278
|
+
@novel-writing-assistant Suggest 3 ways to continue chapter 8, scene 2
|
|
279
|
+
[Current text: Sarah stared at the signal pattern...]
|
|
280
|
+
|
|
281
|
+
# 3. Pick a direction and write
|
|
282
|
+
# [Write in your editor]
|
|
283
|
+
|
|
284
|
+
# 4. Check pacing
|
|
285
|
+
@plot-analyzer Review the pacing of chapter 8
|
|
286
|
+
|
|
287
|
+
# 5. End session
|
|
288
|
+
/novel session end --words 734
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Revision Workflow
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
# 1. Character consistency check
|
|
295
|
+
@character-developer Review all characters for consistency
|
|
296
|
+
|
|
297
|
+
# 2. Plot structure analysis
|
|
298
|
+
@plot-analyzer Analyze overall story structure (chapters 1-24)
|
|
299
|
+
|
|
300
|
+
# 3. Detailed consistency check
|
|
301
|
+
@consistency-checker Full manuscript consistency check
|
|
302
|
+
|
|
303
|
+
# 4. Address issues
|
|
304
|
+
# [Fix problems identified]
|
|
305
|
+
|
|
306
|
+
# 5. Final verification
|
|
307
|
+
@consistency-checker Re-check chapters I just revised
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## Tips
|
|
311
|
+
|
|
312
|
+
- **Don't use agents for every sentence** - Write first, use agents when stuck
|
|
313
|
+
- **Edit everything** - AI suggestions are starting points, not final copy
|
|
314
|
+
- **Combine with CLI tools** - Use `/novel` commands alongside agents
|
|
315
|
+
- **Trust your instincts** - If an agent suggestion feels wrong, ignore it
|
|
316
|
+
- **Experiment** - Try different agents for the same problem
|
|
317
|
+
|
|
318
|
+
## Support
|
|
319
|
+
|
|
320
|
+
For issues or questions about agents:
|
|
321
|
+
- See main project documentation in `../README.md`
|
|
322
|
+
- Read [USER_GUIDE.md](../../USER_GUIDE.md) for comprehensive guidance
|
|
323
|
+
- Check [NOVEL_CRAFT_PRINCIPLES.md](../../NOVEL_CRAFT_PRINCIPLES.md) for philosophy
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
**Remember**: Agents are tools to support your writing, not replace it. The story belongs to you. 📖✍️
|