scriveno 2.0.12 → 2.6.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 (61) hide show
  1. package/README.md +12 -6
  2. package/agents/voice-checker.md +10 -0
  3. package/bin/install.js +91 -2
  4. package/commands/scr/autopilot-publish.md +1 -1
  5. package/commands/scr/autopilot-translate.md +5 -6
  6. package/commands/scr/autopilot.md +3 -3
  7. package/commands/scr/beta-reader.md +6 -3
  8. package/commands/scr/build-ebook.md +1 -1
  9. package/commands/scr/build-print.md +2 -2
  10. package/commands/scr/continuity-check.md +1 -0
  11. package/commands/scr/copy-edit.md +1 -0
  12. package/commands/scr/demo.md +1 -0
  13. package/commands/scr/dialogue-audit.md +1 -0
  14. package/commands/scr/discussion-questions.md +1 -0
  15. package/commands/scr/draft.md +2 -2
  16. package/commands/scr/export.md +1 -1
  17. package/commands/scr/first-run.md +128 -0
  18. package/commands/scr/help.md +2 -1
  19. package/commands/scr/line-edit.md +1 -0
  20. package/commands/scr/map-manuscript.md +1 -0
  21. package/commands/scr/multi-publish.md +3 -2
  22. package/commands/scr/new-character.md +1 -0
  23. package/commands/scr/new-work.md +1 -1
  24. package/commands/scr/originality-check.md +1 -0
  25. package/commands/scr/pacing-analysis.md +1 -0
  26. package/commands/scr/polish.md +1 -0
  27. package/commands/scr/quick-write.md +4 -1
  28. package/commands/scr/sensitivity-review.md +1 -0
  29. package/commands/scr/synopsis.md +1 -0
  30. package/commands/scr/theme-tracker.md +1 -0
  31. package/commands/scr/timeline.md +1 -0
  32. package/commands/scr/track.md +2 -0
  33. package/commands/scr/translate.md +1 -1
  34. package/commands/scr/voice-check.md +1 -0
  35. package/data/CONSTRAINTS.json +11 -1
  36. package/data/export-templates/scriveno-book.typst +2 -2
  37. package/data/export-templates/scriveno-chapbook.typst +1 -1
  38. package/data/export-templates/scriveno-picturebook.typst +9 -0
  39. package/data/export-templates/scriveno-stageplay.typst +14 -4
  40. package/data/proof/first-run/README.md +96 -0
  41. package/data/proof/runtime-parity/README.md +48 -0
  42. package/docs/architecture.md +6 -3
  43. package/docs/command-reference.md +39 -23
  44. package/docs/configuration.md +28 -3
  45. package/docs/contributing.md +2 -2
  46. package/docs/drafter-quality.md +1 -1
  47. package/docs/getting-started.md +4 -1
  48. package/docs/proof-artifacts.md +11 -0
  49. package/docs/quick-proof.md +23 -2
  50. package/docs/release-notes.md +61 -0
  51. package/docs/route-graph.md +2 -2
  52. package/docs/runtime-support.md +4 -3
  53. package/docs/sacred-texts.md +1 -1
  54. package/docs/shipped-assets.md +2 -0
  55. package/docs/starter-sets.md +8 -0
  56. package/docs/translation.md +7 -11
  57. package/docs/voice-dna.md +4 -4
  58. package/docs/work-types.md +1 -1
  59. package/lib/track-safety.js +72 -0
  60. package/package.json +1 -1
  61. package/templates/config.json +1 -1
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Generate a structure-aware pacing report analyzing scene tempo and narrative flow.
3
+ argument-hint: "[N]"
3
4
  ---
4
5
 
5
6
  # /scr:pacing-analysis -- Structure-Aware Pacing Report
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Chain line-edit, copy-edit, and voice-check for comprehensive prose polish.
3
+ argument-hint: "[N]"
3
4
  ---
4
5
 
5
6
  # /scr:polish -- Comprehensive Prose Polish
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Write a scene, passage, or chapter outside the full planning workflow.
3
+ argument-hint: "[--discuss] [--research] [--full]"
3
4
  ---
4
5
 
5
6
  # /scr:quick-write -- Ad-Hoc Writing Without Full Planning
@@ -18,7 +19,7 @@ Write a scene, passage, or chapter outside the full planning workflow.
18
19
 
19
20
  ## Instruction
20
21
 
21
- Quick write gives you Scriveno guarantees (continuity tracking, voice consistency, atomic commits) with a faster path.
22
+ Quick write is the fast path. It loads STYLE-GUIDE.md, drafts in the current conversation context (not a fresh per-unit context), and commits atomically. It runs continuity and voice checks only when you pass `--full`. For voice-critical work, prefer `/scr:draft`, which drafts each unit in a fresh context and always runs a voice-check.
22
23
 
23
24
  ### STEP 1: GATHER INTENT
24
25
 
@@ -49,6 +50,8 @@ If the host runtime cannot spawn a focused researcher, run the research pass in
49
50
 
50
51
  Write the passage following all established style guide constraints. Target whatever length feels natural unless the writer specified a target.
51
52
 
53
+ Quick-write drafts in the current conversation context rather than spawning the drafter in a fresh per-unit context; this trades some voice isolation for speed. When fresh-context voice fidelity matters, use `/scr:draft` instead.
54
+
52
55
  ### STEP 4: VERIFY (if --full)
53
56
 
54
57
  Run continuity and voice checks against existing manuscript.
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Flag potential sensitivity issues with context, suggest alternatives, and note intentional craft.
3
+ argument-hint: "[N]"
3
4
  ---
4
5
 
5
6
  # /scr:sensitivity-review -- Sensitivity Review with Craft Awareness
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Generate plot synopsis at specified length for query and submission packages.
3
+ argument-hint: "[--length <1p|2p|5p>]"
3
4
  ---
4
5
 
5
6
  # /scr:synopsis -- Plot Synopsis Generator
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Track thematic threads across the work with auto-detection suggestions.
3
+ argument-hint: "[--detect]"
3
4
  ---
4
5
 
5
6
  # /scr:theme-tracker -- Track Thematic Threads
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Generate a chronological event timeline from the outline.
3
+ argument-hint: "[--story-order] [--chronological]"
3
4
  ---
4
5
 
5
6
  # /scr:timeline -- Chronological Event Timeline
@@ -48,6 +48,8 @@ Track metadata lives in `.manuscript/tracks.json`. Create this file on first `tr
48
48
 
49
49
  **Label-to-branch mapping (D-01):** Writer-friendly labels are stored as-is. The git branch name is derived by slugifying the label: lowercase, replace spaces with hyphens, strip special characters (keep alphanumeric and hyphens only), prefix with `track/`. Example: "Second Draft Attempt" becomes `track/second-draft-attempt`.
50
50
 
51
+ This slugify step is the one safety boundary that keeps a writer-chosen label out of a shell command, so it is mandatory, never optional. The canonical algorithm ships as `lib/track-safety.js` (installed to `<data-dir>/lib/track-safety.js`). To derive the slug and a collision-free branch deterministically instead of applying the rules by hand, run `node <data-dir>/lib/track-safety.js "<label>"`, which prints `{"slug":"...","branch":"..."}` with collisions already resolved against a comma-separated second argument of existing branch names. A correct slug contains only `[a-z0-9-]`; if it contains anything else, do not pass it to git.
52
+
51
53
  **Canon branch metadata:** `canon_branch` stores the real branch name of the canon manuscript. This may be `main`, `master`, `trunk`, or any other branch name the writer uses.
52
54
 
53
55
  ## Canon Branch Resolution
@@ -214,7 +214,7 @@ After all units are translated, show a summary:
214
214
  > - Build translation memory: `/scr:translation-memory [lang] --build`
215
215
  > - Cultural adaptation review: `/scr:cultural-adaptation [lang]`
216
216
  > - Back-translate to verify: `/scr:back-translate [lang]`
217
- > - Export translation: `/scr:export --format [format] --language [lang]`
217
+ > - Export translation: `/scr:multi-publish --languages [lang] --format [format]` (the translated-export path; `/scr:export` builds the source-language manuscript only)
218
218
 
219
219
  ## Agent and Automation Status
220
220
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  description: Compare drafted prose against STYLE-GUIDE.md to detect voice drift.
3
+ argument-hint: "[N]"
3
4
  ---
4
5
 
5
6
  # /scr:voice-check -- Voice Fidelity Check
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "$schema": "./constraints.schema.json",
3
- "version": "2.0.12",
3
+ "version": "2.6.0",
4
4
  "description": "Scriveno constraint system: work types, command availability, exports, and dependencies. Every command checks this file at runtime.",
5
5
  "_notes": {
6
6
  "sacred_keys": "Sacred subcommands live at commands/scr/sacred/<name>.md and run as /scr:sacred:<name>. Their CONSTRAINTS keys use the sacred:<name> form so /scr:help can render the runnable slash-command path directly. The sacred-numbering-format entry is a separate flat command (commands/scr/sacred-numbering-format.md) that surfaces the active tradition's numbering format. It used to be named sacred-verse-numbering, which collided with sacred:verse-numbering at install time -- both flattened to scr-sacred-verse-numbering. Renamed in v1.6.x; the installer now refuses to install when two sources share a flat skill name."
7
7
  },
8
8
  "command_intents": {
9
9
  "start": [
10
+ "first-run",
10
11
  "new-work",
11
12
  "demo",
12
13
  "import",
@@ -31,6 +32,7 @@
31
32
  "beta-reader"
32
33
  ],
33
34
  "navigate": [
35
+ "first-run",
34
36
  "next",
35
37
  "progress",
36
38
  "manuscript-stats",
@@ -1752,6 +1754,13 @@
1752
1754
  ],
1753
1755
  "description": "Auto-detect and run the next workflow step"
1754
1756
  },
1757
+ "first-run": {
1758
+ "category": "navigation",
1759
+ "available": [
1760
+ "all"
1761
+ ],
1762
+ "description": "Guided first-run path through proof, demo, runtime checks, and starter choices"
1763
+ },
1755
1764
  "do": {
1756
1765
  "category": "navigation",
1757
1766
  "available": [
@@ -2331,6 +2340,7 @@
2331
2340
  },
2332
2341
  "beta-reader": {
2333
2342
  "category": "review",
2343
+ "description": "Simulate a beta reader's experience of the manuscript using a fresh-context reader persona (same model, not a second or external AI).",
2334
2344
  "available": [
2335
2345
  "all"
2336
2346
  ],
@@ -13,10 +13,10 @@
13
13
  #let margin-bottom = $if(margin-bottom)$$margin-bottom$$else$0.75in$endif$
14
14
 
15
15
  // Text direction: parameterized for RTL compatibility (Phase 7)
16
- #let text-dir = $if(text-direction)$$text-direction$$else$ltr$endif$
16
+ #let text-dir = $if(dir)$$dir$$else$ltr$endif$
17
17
 
18
18
  // Language code for CJK detection
19
- #let lang-code = $if(language)$"$language$"$else$"en"$endif$
19
+ #let lang-code = $if(lang)$"$lang$"$else$"en"$endif$
20
20
 
21
21
  // CJK detection helper
22
22
  #let is-cjk = lang-code in ("zh", "ja", "ko")
@@ -16,7 +16,7 @@
16
16
  #let margin-outside = $if(margin-outside)$$margin-outside$$else$0.625in$endif$
17
17
 
18
18
  // Text direction
19
- #let text-dir = $if(text-direction)$$text-direction$$else$ltr$endif$
19
+ #let text-dir = $if(dir)$$dir$$else$ltr$endif$
20
20
 
21
21
  // Font configuration -- chapbooks default to a clean readable serif
22
22
  #let body-font = $if(mainfont)$"$mainfont$"$else$"Libertinus Serif"$endif$
@@ -20,6 +20,13 @@
20
20
  // Override with -V margin-top= etc. if custom margins are needed
21
21
  #let margin-all = $if(margin-top)$$margin-top$$else$0.375in$endif$
22
22
 
23
+ // Text direction: parameterized for RTL compatibility (set via --metadata dir=rtl).
24
+ // Margins are symmetric and body text is centered, so only the base text
25
+ // direction needs to flip for right-to-left scripts.
26
+ #let text-dir = $if(dir)$$dir$$else$ltr$endif$
27
+ #let is-rtl = text-dir == rtl
28
+ #let lang-code = $if(lang)$"$lang$"$else$"en"$endif$
29
+
23
30
  // Metadata
24
31
  #let book-title = $if(title)$"$title$"$else$"Untitled"$endif$
25
32
  #let book-author = $if(author)$"$for(author)$$it.name$$sep$, $endfor$"$else$""$endif$
@@ -46,6 +53,8 @@
46
53
  #set text(
47
54
  font: $if(mainfont)$"$mainfont$"$else$"Helvetica"$endif$,
48
55
  size: $if(fontsize)$$fontsize$$else$16pt$endif$,
56
+ dir: text-dir,
57
+ lang: lang-code,
49
58
  fallback: true,
50
59
  )
51
60
 
@@ -17,6 +17,13 @@
17
17
  #let margin-top = $if(margin-top)$$margin-top$$else$1in$endif$
18
18
  #let margin-bottom = $if(margin-bottom)$$margin-bottom$$else$1in$endif$
19
19
 
20
+ // Text direction: parameterized for RTL compatibility (set via --metadata dir=rtl).
21
+ // For right-to-left scripts the wider binding margin moves to the right edge and
22
+ // the page number flips to the top-left.
23
+ #let text-dir = $if(dir)$$dir$$else$ltr$endif$
24
+ #let is-rtl = text-dir == rtl
25
+ #let lang-code = $if(lang)$"$lang$"$else$"en"$endif$
26
+
20
27
  // Metadata
21
28
  #let play-title = $if(title)$"$title$"$else$"Untitled"$endif$
22
29
  #let play-author = $if(author)$"$for(author)$$it.name$$sep$, $endfor$"$else$""$endif$
@@ -30,16 +37,17 @@
30
37
  width: page-width,
31
38
  height: page-height,
32
39
  margin: (
33
- left: margin-left,
34
- right: margin-right,
40
+ // The 1.5in binding margin sits on the left for LTR and flips to the right for RTL.
41
+ left: if is-rtl { margin-right } else { margin-left },
42
+ right: if is-rtl { margin-left } else { margin-right },
35
43
  top: margin-top,
36
44
  bottom: margin-bottom,
37
45
  ),
38
- // Page numbering: top-right, industry standard for scripts
46
+ // Page numbering: top-right for LTR scripts, top-left for RTL
39
47
  header: context {
40
48
  let page-num = counter(page).get().first()
41
49
  if page-num > 1 {
42
- align(right, text(size: 10pt)[#str(page-num).])
50
+ align(if is-rtl { left } else { right }, text(size: 10pt)[#str(page-num).])
43
51
  }
44
52
  },
45
53
  )
@@ -48,6 +56,8 @@
48
56
  #set text(
49
57
  font: $if(mainfont)$"$mainfont$"$else$"Courier New"$endif$,
50
58
  size: $if(fontsize)$$fontsize$$else$12pt$endif$,
59
+ dir: text-dir,
60
+ lang: lang-code,
51
61
  fallback: true,
52
62
  )
53
63
 
@@ -0,0 +1,96 @@
1
+ # First-Run Proof
2
+
3
+ This bundle is the committed proof artifact for Scriveno's first 10 minutes. It pairs the executable `/scr:first-run` command with the terminal-level checks and demo commands a new writer can run.
4
+
5
+ ## What It Proves
6
+
7
+ - Scriveno has a runtime command for first-run orientation, not only a documentation page.
8
+ - The first-run path stays small: check surfaces, create the demo, inspect proof files, draft unit 5, review unit 5.
9
+ - The command shapes are explicit for Claude Code, standard slash-command runtimes, and Codex.
10
+ - The demo path uses shipped files in `data/demo/.manuscript/`.
11
+
12
+ ## Transcript: First-Run Guide
13
+
14
+ ```text
15
+ > scriveno first-run --project .
16
+ Scriveno first-run guide
17
+ Project: .
18
+ Current recommendation: /scr:new-work
19
+
20
+ Runtime command shapes:
21
+ - Claude Code: /scr-first-run, /scr-demo, /scr-next
22
+ - Standard slash-command runtimes: /scr:first-run, /scr:demo, /scr:next
23
+ - Codex: $scr-first-run, $scr-demo, $scr-next
24
+
25
+ Recommended first path:
26
+ 1. /scr:demo
27
+ 2. cd scriveno-demo
28
+ 3. /scr:next
29
+ 4. /scr:draft 5
30
+ 5. /scr:editor-review 5
31
+
32
+ Proof artifacts:
33
+ - docs/quick-proof.md
34
+ - docs/starter-sets.md
35
+ - data/proof/watchmaker-flow/README.md
36
+ - data/proof/voice-dna/README.md
37
+ - data/proof/runtime-parity/README.md
38
+ ```
39
+
40
+ ## Transcript: Runtime Smoke
41
+
42
+ ```text
43
+ > scriveno smoke --json
44
+ {
45
+ "ok": true,
46
+ "expectedCommands": 113,
47
+ "expectedAgents": [
48
+ "continuity-checker",
49
+ "drafter",
50
+ "plan-checker",
51
+ "researcher",
52
+ "translator",
53
+ "voice-checker"
54
+ ],
55
+ "runtimes": [
56
+ { "runtime": "claude-code", "ok": true },
57
+ { "runtime": "codex", "ok": true },
58
+ { "runtime": "cursor", "ok": true },
59
+ { "runtime": "gemini-cli", "ok": true },
60
+ { "runtime": "opencode", "ok": true },
61
+ { "runtime": "copilot", "ok": true },
62
+ { "runtime": "windsurf", "ok": true },
63
+ { "runtime": "antigravity", "ok": true },
64
+ { "runtime": "manus", "ok": true },
65
+ { "runtime": "perplexity-desktop", "ok": true },
66
+ { "runtime": "generic", "ok": true }
67
+ ]
68
+ }
69
+ ```
70
+
71
+ ## Transcript: Demo Flow
72
+
73
+ ```text
74
+ > /scr:demo
75
+ Demo project created at ./scriveno-demo/
76
+
77
+ > cd scriveno-demo
78
+
79
+ > /scr:next
80
+ Unit 5 has a plan but no draft yet, so /scr:draft 5 is the next best move.
81
+
82
+ > /scr:draft 5
83
+ Loaded STYLE-GUIDE.md and .manuscript/plans/5-the-reunion-PLAN.md.
84
+ Drafted unit 5 in the established watchmaker voice.
85
+
86
+ > /scr:editor-review 5
87
+ Reviewed unit 5 for voice, continuity, emotional payoff, and revision needs.
88
+ ```
89
+
90
+ ## Related Files
91
+
92
+ - [docs/quick-proof.md](../../../docs/quick-proof.md)
93
+ - [docs/starter-sets.md](../../../docs/starter-sets.md)
94
+ - [data/demo/.manuscript/plans/5-the-reunion-PLAN.md](../../demo/.manuscript/plans/5-the-reunion-PLAN.md)
95
+ - [data/proof/watchmaker-flow/README.md](../watchmaker-flow/README.md)
96
+ - [data/proof/voice-dna/README.md](../voice-dna/README.md)
@@ -0,0 +1,48 @@
1
+ # Runtime Parity Evidence
2
+
3
+ This bundle records what Scriveno can prove about runtime support today and what still requires host-runtime testing.
4
+
5
+ ## Verified In The Repo
6
+
7
+ - The installer has named targets for Claude Code, Cursor, Gemini CLI, Codex, OpenCode, GitHub Copilot, Windsurf, Antigravity, Manus Desktop, Perplexity Desktop, and the generic skill fallback.
8
+ - `scriveno smoke --json` checks installed command counts, agent prompt availability, Codex metadata, guided Perplexity assets, and shared engine availability.
9
+ - `scriveno agents --json` distinguishes prompt fallback readiness, Codex metadata readiness, guided setup, and bundled skill prompts.
10
+ - `scriveno routes --json` verifies route lanes and command graph shape from the live constraints file.
11
+ - Regression tests cover install surface shape, Codex metadata, Claude flat command mapping, skill bundles, and public audit commands.
12
+
13
+ ## Runtime Surface Expectations
14
+
15
+ | Runtime | What is verified locally | Native host behavior claim |
16
+ |---------|--------------------------|----------------------------|
17
+ | Claude Code | Flat `/scr-*` commands plus agent prompts install | Host-supported when Claude Code exposes agents |
18
+ | Codex | `$scr-*` skills, mirrored commands, prompts, and `.toml` metadata install | Host-supported when Codex exposes agent roles |
19
+ | Cursor | Nested `/scr:*` commands plus agent prompts install | Host-supported when Cursor exposes agents |
20
+ | Gemini CLI | Nested `/scr:*` commands plus agent prompts install | Host-supported when Gemini CLI exposes agents |
21
+ | OpenCode | Nested `/scr:*` commands plus agent prompts install | Host-supported when OpenCode exposes agents |
22
+ | GitHub Copilot | Nested `/scr:*` commands plus agent prompts install | Host-supported when Copilot exposes agents |
23
+ | Windsurf | Nested `/scr:*` commands plus agent prompts install | Host-supported when Windsurf exposes agents |
24
+ | Antigravity | Nested `/scr:*` commands plus agent prompts install | Host-supported when Antigravity exposes agents |
25
+ | Manus Desktop | Skill bundle with commands and agent prompts installs | Host-supported when Manus exposes skill agents |
26
+ | Perplexity Desktop | Guided local-MCP setup assets install | Native command and agent spawning not assumed |
27
+ | Generic | SKILL.md bundle with commands and agent prompts installs | Native spawning not assumed |
28
+
29
+ ## Remaining Host-In-The-Loop Gap
30
+
31
+ Scriveno still does not claim full host-runtime parity. The missing proof is a recorded run inside each actual host UI or agent process showing that the host invokes the installed command and agent surfaces exactly as expected.
32
+
33
+ That gap is now narrower: install surfaces, metadata, command counts, agent prompts, shared audit commands, and proof artifacts are all checked. This document separates install-surface proof and host-runtime parity proof so Scriveno can be precise about what is verified. The remaining work is external host execution evidence, not package-surface wiring.
34
+
35
+ ## Suggested Host Parity Script
36
+
37
+ For each host that supports local commands:
38
+
39
+ ```text
40
+ 1. Install scriveno@latest.
41
+ 2. Run the host-native first-run command.
42
+ 3. Run the host-native demo command.
43
+ 4. Run the host-native next command inside scriveno-demo.
44
+ 5. Confirm the host can route to draft unit 5.
45
+ 6. Save a short transcript or screenshot under data/proof/runtime-parity/<runtime>/.
46
+ ```
47
+
48
+ Use the command shape from [docs/runtime-support.md](../../../docs/runtime-support.md).
@@ -164,7 +164,8 @@ scriveno/
164
164
  scriveno-book.typst Book interior PDF
165
165
  scriveno-epub.css EPUB styling
166
166
  scriveno-academic.latex Academic paper formatting
167
- templates/
167
+ proof/ Committed proof bundles (voice-dna, runtime-parity)
168
+ templates/ Per-project starting content (repo root, sibling of data/)
168
169
  config.json Per-project configuration template
169
170
  WORK.md Work overview template
170
171
  OUTLINE.md Structural outline template
@@ -199,6 +200,7 @@ scriveno/
199
200
  install.js Multi-platform installer (Node.js)
200
201
  docs/
201
202
  proof-artifacts.md Canonical proof layer and artifact index
203
+ quick-proof.md Executable first-run proof path and command shapes
202
204
  getting-started.md Install to first draft in 10 minutes
203
205
  command-reference.md Full command listing with usage
204
206
  work-types.md 50 work types and how they adapt Scriveno
@@ -372,6 +374,7 @@ The same engine now exposes:
372
374
  - **Agent availability**: `agents` verifies prompt fallback readiness for non-Codex runtimes and metadata readiness for Codex.
373
375
  - **Runtime smoke**: `smoke` checks installed command, skill, guide, agent, metadata, and shared-engine surfaces.
374
376
  - **Route graph audit**: `routes` derives a command graph from constraints, command intents, dependencies, and automation lanes.
377
+ - **First-run guide**: `first-run` prints the guided proof path, runtime command shapes, proof artifacts, demo sequence, and next commands.
375
378
 
376
379
  ### Installation modes
377
380
 
@@ -420,7 +423,7 @@ The voice-checker agent (`agents/voice-checker.md`) compares drafted prose again
420
423
  - Specific issues organized by category (structural voice, lexical voice, character voice, AI-slop indicators)
421
424
  - Severity ratings (drift vs critical violation)
422
425
 
423
- The voice-checker is invoked after every drafted unit. If drift exceeds the configured threshold (default: 0.3 in `config.json`), the writer is offered a re-draft.
426
+ The voice-checker is invoked after every drafted unit and returns an Overall score (0-100). Normalized drift is `drift = (100 - score) / 100`, so the default `config.json` threshold of 0.3 means the writer is offered a re-draft when the voice score falls below 70. See the "Normalized drift" section of `agents/voice-checker.md` for the single definition callers share.
424
427
 
425
428
  ### Calibration
426
429
 
@@ -434,7 +437,7 @@ Scriveno's `package.json` has no runtime dependencies. The installer is pure Nod
434
437
 
435
438
  ### Plan is canonical
436
439
 
437
- The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across 112 commands and prevents drift as multiple contributors work on the system.
440
+ The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across 113 commands and prevents drift as multiple contributors work on the system.
438
441
 
439
442
  ### Backward compatibility
440
443
 
@@ -1,6 +1,6 @@
1
1
  # Command Reference
2
2
 
3
- Scriveno has **112 commands** organized into **14 categories**. Commands adapt automatically to your work type -- for example, `/scr:draft` talks about drafting a surah for Quranic commentary, an act for screenplays, and a section for research papers.
3
+ Scriveno has **113 commands** organized into **14 categories**. Commands adapt automatically to your work type -- for example, `/scr:draft` talks about drafting a surah for Quranic commentary, an act for screenplays, and a section for research papers.
4
4
 
5
5
  Commands marked with **adaptive terminology** change how Scriveno talks about your work type's `command_unit` in `.manuscript/config.json`, while keeping the runnable command id stable. Commands marked with **group adaptation** have different labels for specific work type groups (academic, sacred, etc.).
6
6
 
@@ -227,9 +227,25 @@ Start a series bible for a trilogy. Track characters, world details, and timelin
227
227
 
228
228
  Commands for finding your way through the workflow and understanding your manuscript.
229
229
 
230
+ ### `/scr:first-run`
231
+
232
+ **Description:** Run the guided first-run path through install checks, demo proof, starter choices, and next commands.
233
+
234
+ **Usage:** `/scr:first-run [--proof] [--runtime <runtime>]`
235
+
236
+ **Prerequisites:** None
237
+
238
+ **Example:**
239
+ ```
240
+ /scr:first-run
241
+ ```
242
+ Show the proof-first path, runtime command shapes, demo sequence, proof artifacts, and the first safe command to try.
243
+
244
+ ---
245
+
230
246
  ### `/scr:next`
231
247
 
232
- **Description:** Auto-detect what to do next in your workflow and recommend the best path. The one command a writer can always use.
248
+ **Description:** Auto-detect what to do next in your workflow and run it. The one command a writer can always use.
233
249
 
234
250
  **Usage:** `/scr:next`
235
251
 
@@ -261,7 +277,7 @@ Scriveno maps your intent to the right command and runs it.
261
277
 
262
278
  ### `/scr:help`
263
279
 
264
- **Description:** Show Scriveno commands grouped by inferred writer intent, filtered to what's relevant for your current work type and progress.
280
+ **Description:** Show Scriveno commands grouped by workflow stage, filtered to what's relevant for your current work type and progress.
265
281
 
266
282
  **Usage:** `/scr:help [category or search term]`
267
283
 
@@ -334,7 +350,7 @@ Import an existing Word document and split it into chapters, scenes, and context
334
350
 
335
351
  **Description:** Spawn parallel analysis agents to understand an existing manuscript's voice, structure, characters, and themes.
336
352
 
337
- **Usage:** `/scr:map-manuscript`
353
+ **Usage:** `/scr:map-manuscript [area]`
338
354
 
339
355
  **Prerequisites:** None
340
356
 
@@ -548,7 +564,7 @@ Visualize your novel's structure mapped to the hero's journey.
548
564
 
549
565
  **Description:** Generate a chronological event timeline from the outline.
550
566
 
551
- **Usage:** `/scr:timeline`
567
+ **Usage:** `/scr:timeline [--story-order] [--chronological]`
552
568
 
553
569
  **Prerequisites:** OUTLINE.md must exist
554
570
 
@@ -568,7 +584,7 @@ See events in chronological order, even if your narrative is non-linear.
568
584
 
569
585
  **Description:** Track thematic threads across the work with auto-detection suggestions.
570
586
 
571
- **Usage:** `/scr:theme-tracker`
587
+ **Usage:** `/scr:theme-tracker [--detect]`
572
588
 
573
589
  **Prerequisites:** THEMES.md must exist
574
590
 
@@ -764,7 +780,7 @@ Commands for creating and managing characters, relationships, and world-building
764
780
 
765
781
  **Description:** Build a complete character profile through guided interactive interview.
766
782
 
767
- **Usage:** `/scr:new-character`
783
+ **Usage:** `/scr:new-character <name>`
768
784
 
769
785
  **Prerequisites:** WORK.md must exist
770
786
 
@@ -946,7 +962,7 @@ Scriveno drafts a sample passage using your voice profile. If it doesn't sound r
946
962
 
947
963
  **Description:** Perform a line-level prose quality pass with inline annotations.
948
964
 
949
- **Usage:** `/scr:line-edit`
965
+ **Usage:** `/scr:line-edit [N]`
950
966
 
951
967
  **Prerequisites:** Draft must exist
952
968
 
@@ -964,7 +980,7 @@ Scriveno reads your prose line by line, flagging weak verbs, passive voice, redu
964
980
 
965
981
  **Description:** Perform a correctness pass for grammar, spelling, punctuation, and consistency.
966
982
 
967
- **Usage:** `/scr:copy-edit`
983
+ **Usage:** `/scr:copy-edit [N]`
968
984
 
969
985
  **Prerequisites:** Draft must exist
970
986
 
@@ -982,7 +998,7 @@ Catch typos, grammar issues, and consistency problems (character name spellings,
982
998
 
983
999
  **Description:** Chain line-edit, copy-edit, and voice-check for comprehensive prose polish.
984
1000
 
985
- **Usage:** `/scr:polish`
1001
+ **Usage:** `/scr:polish [N]`
986
1002
 
987
1003
  **Prerequisites:** Draft and STYLE-GUIDE.md must exist
988
1004
 
@@ -1000,7 +1016,7 @@ Run all three quality passes in sequence. The comprehensive final polish before
1000
1016
 
1001
1017
  **Description:** Write a scene, passage, or chapter outside the full planning workflow.
1002
1018
 
1003
- **Usage:** `/scr:quick-write`
1019
+ **Usage:** `/scr:quick-write [--discuss] [--research] [--full]`
1004
1020
 
1005
1021
  **Prerequisites:** None
1006
1022
 
@@ -1022,7 +1038,7 @@ Commands for reviewing your manuscript from different angles -- continuity, voic
1022
1038
 
1023
1039
  **Description:** Automated continuity verification to scan for narrative contradictions across the manuscript.
1024
1040
 
1025
- **Usage:** `/scr:continuity-check`
1041
+ **Usage:** `/scr:continuity-check [N]`
1026
1042
 
1027
1043
  **Prerequisites:** Draft must exist
1028
1044
 
@@ -1043,7 +1059,7 @@ Find contradictions: "In Chapter 3 Maria has brown eyes, but in Chapter 7 they'r
1043
1059
 
1044
1060
  **Description:** Compare drafted prose against STYLE-GUIDE.md to detect voice drift.
1045
1061
 
1046
- **Usage:** `/scr:voice-check`
1062
+ **Usage:** `/scr:voice-check [N]`
1047
1063
 
1048
1064
  **Prerequisites:** Draft and STYLE-GUIDE.md must exist
1049
1065
 
@@ -1064,7 +1080,7 @@ Detect where your drafted prose drifts from your established voice profile.
1064
1080
 
1065
1081
  **Description:** Flag potential sensitivity issues with context, suggest alternatives, and note intentional craft.
1066
1082
 
1067
- **Usage:** `/scr:sensitivity-review`
1083
+ **Usage:** `/scr:sensitivity-review [N]`
1068
1084
 
1069
1085
  **Prerequisites:** Draft must exist
1070
1086
 
@@ -1086,7 +1102,7 @@ Flag content that could be unintentionally harmful, with context-aware suggestio
1086
1102
 
1087
1103
  **Description:** Generate a structure-aware pacing report analyzing scene tempo and narrative flow.
1088
1104
 
1089
- **Usage:** `/scr:pacing-analysis`
1105
+ **Usage:** `/scr:pacing-analysis [N]`
1090
1106
 
1091
1107
  **Prerequisites:** Draft must exist
1092
1108
 
@@ -1104,7 +1120,7 @@ See where your story drags or rushes. Scriveno maps scene length, tension, and t
1104
1120
 
1105
1121
  **Description:** Audit dialogue for character voice differentiation, attribution clarity, and talking-head detection.
1106
1122
 
1107
- **Usage:** `/scr:dialogue-audit`
1123
+ **Usage:** `/scr:dialogue-audit [N]`
1108
1124
 
1109
1125
  **Prerequisites:** Draft must exist with dialogue
1110
1126
 
@@ -1123,9 +1139,9 @@ Check that each character sounds distinct, dialogue tags are clear, and scenes a
1123
1139
 
1124
1140
  ### `/scr:beta-reader`
1125
1141
 
1126
- **Description:** Simulate a beta reader's experience of the manuscript with cross-AI peer review.
1142
+ **Description:** Simulate a beta reader's experience of the manuscript using a fresh-context reader persona (same model, not a second or external AI).
1127
1143
 
1128
- **Usage:** `/scr:beta-reader`
1144
+ **Usage:** `/scr:beta-reader [N] [--focus <area>]`
1129
1145
 
1130
1146
  **Prerequisites:** Draft must exist
1131
1147
 
@@ -1147,7 +1163,7 @@ Get a simulated reader's reaction: what hooked them, where they got confused, wh
1147
1163
 
1148
1164
  **Description:** Scan drafted prose for AI-generated patterns and unintentional similarity to published works.
1149
1165
 
1150
- **Usage:** `/scr:originality-check`
1166
+ **Usage:** `/scr:originality-check [N]`
1151
1167
 
1152
1168
  **Prerequisites:** Draft must exist
1153
1169
 
@@ -1243,7 +1259,7 @@ Get three blurb variations: punchy (Amazon listing), standard (back cover), exte
1243
1259
 
1244
1260
  **Description:** Generate plot synopsis at specified length for query and submission packages.
1245
1261
 
1246
- **Usage:** `/scr:synopsis`
1262
+ **Usage:** `/scr:synopsis [--length <1p|2p|5p>]`
1247
1263
 
1248
1264
  **Prerequisites:** Complete draft must exist
1249
1265
 
@@ -1297,7 +1313,7 @@ Generate a full book proposal: overview, market analysis, chapter summaries, aut
1297
1313
 
1298
1314
  **Description:** Generate reading group discussion questions exploring themes, characters, and craft.
1299
1315
 
1300
- **Usage:** `/scr:discussion-questions`
1316
+ **Usage:** `/scr:discussion-questions [--count <N>]`
1301
1317
 
1302
1318
  **Prerequisites:** Complete draft must exist
1303
1319
 
@@ -1462,7 +1478,7 @@ Build a poetry-submission DOCX for journal or contest submission using the poetr
1462
1478
 
1463
1479
  **Description:** Run full publishing pipeline unattended with quality gate (voice-check + continuity-check).
1464
1480
 
1465
- **Usage:** `/scr:autopilot-publish --preset <preset>`
1481
+ **Usage:** `/scr:autopilot-publish --preset <preset> [--front-level <minimum|balanced|maximum|skip>] [--back-level <minimum|balanced|maximum|skip>]`
1466
1482
 
1467
1483
  **Prerequisites:** Complete draft must exist
1468
1484
 
@@ -1497,7 +1513,7 @@ Commands for generating cover art, scene illustrations, character references, ma
1497
1513
  - `--trim <size>` -- Preferred trim shorthand for prompt framing
1498
1514
  - `--kdp <trim_size>` -- Legacy alias for `--trim`
1499
1515
  - `--series` -- Generate series-consistent cover
1500
- - `--prompt-only` -- Generate prompts without calling image API
1516
+ - `--prompt-only` -- Generate prompts without packaging reminders
1501
1517
  - `--element` -- Generate specific cover element
1502
1518
 
1503
1519
  **Example:**