scriveno 2.0.5

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 (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/agents/continuity-checker.md +85 -0
  4. package/agents/drafter.md +248 -0
  5. package/agents/plan-checker.md +209 -0
  6. package/agents/researcher.md +114 -0
  7. package/agents/translator.md +204 -0
  8. package/agents/voice-checker.md +154 -0
  9. package/bin/install.js +1620 -0
  10. package/commands/scr/add-note.md +51 -0
  11. package/commands/scr/add-unit.md +101 -0
  12. package/commands/scr/art-direction.md +225 -0
  13. package/commands/scr/autopilot-publish.md +210 -0
  14. package/commands/scr/autopilot-translate.md +237 -0
  15. package/commands/scr/autopilot.md +200 -0
  16. package/commands/scr/back-matter.md +630 -0
  17. package/commands/scr/back-translate.md +197 -0
  18. package/commands/scr/beta-reader.md +97 -0
  19. package/commands/scr/blurb.md +149 -0
  20. package/commands/scr/book-proposal.md +210 -0
  21. package/commands/scr/build-ebook.md +448 -0
  22. package/commands/scr/build-poetry-submission.md +202 -0
  23. package/commands/scr/build-print.md +598 -0
  24. package/commands/scr/build-smashwords.md +171 -0
  25. package/commands/scr/build-world.md +158 -0
  26. package/commands/scr/cast-list.md +104 -0
  27. package/commands/scr/chapter-header.md +158 -0
  28. package/commands/scr/character-arc.md +108 -0
  29. package/commands/scr/character-ref.md +160 -0
  30. package/commands/scr/character-sheet.md +143 -0
  31. package/commands/scr/character-touch.md +157 -0
  32. package/commands/scr/character-voice-sample.md +111 -0
  33. package/commands/scr/check-notes.md +50 -0
  34. package/commands/scr/cleanup.md +159 -0
  35. package/commands/scr/compare.md +112 -0
  36. package/commands/scr/complete-draft.md +49 -0
  37. package/commands/scr/continuity-check.md +129 -0
  38. package/commands/scr/copy-edit.md +118 -0
  39. package/commands/scr/cover-art.md +382 -0
  40. package/commands/scr/cultural-adaptation.md +177 -0
  41. package/commands/scr/demo.md +93 -0
  42. package/commands/scr/dialogue-audit.md +143 -0
  43. package/commands/scr/discuss.md +118 -0
  44. package/commands/scr/discussion-questions.md +129 -0
  45. package/commands/scr/do.md +68 -0
  46. package/commands/scr/draft.md +97 -0
  47. package/commands/scr/editor-review.md +466 -0
  48. package/commands/scr/export.md +942 -0
  49. package/commands/scr/fast.md +65 -0
  50. package/commands/scr/front-matter.md +696 -0
  51. package/commands/scr/health.md +113 -0
  52. package/commands/scr/help.md +121 -0
  53. package/commands/scr/history.md +92 -0
  54. package/commands/scr/illustrate-scene.md +211 -0
  55. package/commands/scr/import.md +95 -0
  56. package/commands/scr/insert-unit.md +108 -0
  57. package/commands/scr/line-edit.md +146 -0
  58. package/commands/scr/manager.md +77 -0
  59. package/commands/scr/manuscript-stats.md +139 -0
  60. package/commands/scr/map-illustration.md +213 -0
  61. package/commands/scr/map-manuscript.md +134 -0
  62. package/commands/scr/merge-units.md +136 -0
  63. package/commands/scr/multi-publish.md +344 -0
  64. package/commands/scr/new-character.md +167 -0
  65. package/commands/scr/new-revision.md +50 -0
  66. package/commands/scr/new-work.md +148 -0
  67. package/commands/scr/next.md +125 -0
  68. package/commands/scr/originality-check.md +170 -0
  69. package/commands/scr/outline.md +131 -0
  70. package/commands/scr/pacing-analysis.md +170 -0
  71. package/commands/scr/panel-layout.md +225 -0
  72. package/commands/scr/pause-work.md +88 -0
  73. package/commands/scr/plan.md +112 -0
  74. package/commands/scr/plant-seed.md +57 -0
  75. package/commands/scr/plot-graph.md +199 -0
  76. package/commands/scr/polish.md +141 -0
  77. package/commands/scr/profile-writer.md +154 -0
  78. package/commands/scr/progress.md +51 -0
  79. package/commands/scr/publish.md +455 -0
  80. package/commands/scr/query-letter.md +183 -0
  81. package/commands/scr/quick-write.md +82 -0
  82. package/commands/scr/relationship-map.md +129 -0
  83. package/commands/scr/remove-unit.md +120 -0
  84. package/commands/scr/reorder-units.md +126 -0
  85. package/commands/scr/resume-work.md +97 -0
  86. package/commands/scr/sacred/annotation-layer.md +105 -0
  87. package/commands/scr/sacred/chronology.md +121 -0
  88. package/commands/scr/sacred/concordance.md +88 -0
  89. package/commands/scr/sacred/cross-reference.md +97 -0
  90. package/commands/scr/sacred/doctrinal-check.md +129 -0
  91. package/commands/scr/sacred/genealogy.md +107 -0
  92. package/commands/scr/sacred/source-tracking.md +101 -0
  93. package/commands/scr/sacred/verse-numbering.md +103 -0
  94. package/commands/scr/sacred-numbering-format.md +103 -0
  95. package/commands/scr/save.md +109 -0
  96. package/commands/scr/scan.md +291 -0
  97. package/commands/scr/sensitivity-review.md +169 -0
  98. package/commands/scr/series-bible.md +127 -0
  99. package/commands/scr/session-report.md +80 -0
  100. package/commands/scr/settings.md +58 -0
  101. package/commands/scr/split-unit.md +123 -0
  102. package/commands/scr/spread-layout.md +187 -0
  103. package/commands/scr/storyboard.md +262 -0
  104. package/commands/scr/subject-touch.md +168 -0
  105. package/commands/scr/submit.md +50 -0
  106. package/commands/scr/subplot-map.md +147 -0
  107. package/commands/scr/sync.md +116 -0
  108. package/commands/scr/synopsis.md +137 -0
  109. package/commands/scr/theme-tracker.md +128 -0
  110. package/commands/scr/thread.md +83 -0
  111. package/commands/scr/timeline.md +141 -0
  112. package/commands/scr/track.md +564 -0
  113. package/commands/scr/translate.md +260 -0
  114. package/commands/scr/translation-glossary.md +298 -0
  115. package/commands/scr/translation-memory.md +310 -0
  116. package/commands/scr/troubleshoot.md +59 -0
  117. package/commands/scr/undo.md +106 -0
  118. package/commands/scr/validate.md +133 -0
  119. package/commands/scr/versions.md +94 -0
  120. package/commands/scr/voice-check.md +133 -0
  121. package/commands/scr/voice-test.md +68 -0
  122. package/data/CONSTRAINTS.json +1606 -0
  123. package/data/demo/.manuscript/BRIEF.md +37 -0
  124. package/data/demo/.manuscript/CHARACTERS.md +90 -0
  125. package/data/demo/.manuscript/OUTLINE.md +46 -0
  126. package/data/demo/.manuscript/PLOT-GRAPH.md +75 -0
  127. package/data/demo/.manuscript/STATE.md +44 -0
  128. package/data/demo/.manuscript/STYLE-GUIDE.md +119 -0
  129. package/data/demo/.manuscript/THEMES.md +51 -0
  130. package/data/demo/.manuscript/WORK.md +51 -0
  131. package/data/demo/.manuscript/config.json +59 -0
  132. package/data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md +51 -0
  133. package/data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md +51 -0
  134. package/data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md +45 -0
  135. package/data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md +59 -0
  136. package/data/demo/.manuscript/plans/5-the-reunion-PLAN.md +52 -0
  137. package/data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md +61 -0
  138. package/data/export-templates/scriveno-academic.latex +184 -0
  139. package/data/export-templates/scriveno-acm.latex +67 -0
  140. package/data/export-templates/scriveno-apa7.latex +83 -0
  141. package/data/export-templates/scriveno-book.typst +175 -0
  142. package/data/export-templates/scriveno-chapbook.typst +121 -0
  143. package/data/export-templates/scriveno-elsevier.latex +76 -0
  144. package/data/export-templates/scriveno-epub.css +386 -0
  145. package/data/export-templates/scriveno-fixed-layout-epub.css +76 -0
  146. package/data/export-templates/scriveno-fixed-layout.opf +23 -0
  147. package/data/export-templates/scriveno-ieee.latex +77 -0
  148. package/data/export-templates/scriveno-lncs.latex +79 -0
  149. package/data/export-templates/scriveno-picturebook.typst +113 -0
  150. package/data/export-templates/scriveno-poetry-submission-styles.md +45 -0
  151. package/data/export-templates/scriveno-poetry-submission.docx +0 -0
  152. package/data/export-templates/scriveno-smashwords-styles.md +45 -0
  153. package/data/export-templates/scriveno-smashwords.docx +0 -0
  154. package/data/export-templates/scriveno-stageplay.typst +129 -0
  155. package/data/proof/creative-context/README.md +79 -0
  156. package/data/proof/voice-dna/GUIDED-SAMPLE.md +19 -0
  157. package/data/proof/voice-dna/README.md +45 -0
  158. package/data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md +43 -0
  159. package/data/proof/voice-dna/UNGUIDED-SAMPLE.md +11 -0
  160. package/data/proof/watchmaker-flow/README.md +78 -0
  161. package/docs/architecture.md +425 -0
  162. package/docs/command-reference.md +2384 -0
  163. package/docs/configuration.md +228 -0
  164. package/docs/context-protocol.md +81 -0
  165. package/docs/contributing.md +430 -0
  166. package/docs/creative-context.md +158 -0
  167. package/docs/development.md +152 -0
  168. package/docs/drafter-quality.md +127 -0
  169. package/docs/getting-started.md +198 -0
  170. package/docs/history-protocol.md +96 -0
  171. package/docs/proof-artifacts.md +56 -0
  172. package/docs/publishing.md +296 -0
  173. package/docs/release-notes.md +457 -0
  174. package/docs/runtime-support.md +77 -0
  175. package/docs/sacred-texts.md +296 -0
  176. package/docs/shipped-assets.md +129 -0
  177. package/docs/testing.md +156 -0
  178. package/docs/translation.md +343 -0
  179. package/docs/voice-dna.md +297 -0
  180. package/docs/work-types.md +339 -0
  181. package/lib/architectural-profiles.js +134 -0
  182. package/package.json +54 -0
  183. package/templates/BRIEF.md +51 -0
  184. package/templates/CHARACTERS.md +64 -0
  185. package/templates/CONTEXT.md +56 -0
  186. package/templates/OUTLINE.md +36 -0
  187. package/templates/RECORD.md +68 -0
  188. package/templates/STATE.md +50 -0
  189. package/templates/STYLE-GUIDE.md +121 -0
  190. package/templates/THEMES.md +36 -0
  191. package/templates/WORK.md +67 -0
  192. package/templates/WORLD.md +62 -0
  193. package/templates/WRITING-RULES.md +156 -0
  194. package/templates/academic/ARGUMENT-MAP.md +40 -0
  195. package/templates/academic/CONCEPTS.md +34 -0
  196. package/templates/academic/CONTEXT.md +29 -0
  197. package/templates/academic/PROPOSAL.md +37 -0
  198. package/templates/academic/QUESTIONS.md +24 -0
  199. package/templates/config.json +72 -0
  200. package/templates/pitfalls/comic.md +54 -0
  201. package/templates/pitfalls/commentary.md +62 -0
  202. package/templates/pitfalls/memoir.md +48 -0
  203. package/templates/pitfalls/novel.md +53 -0
  204. package/templates/pitfalls/poetry_collection.md +63 -0
  205. package/templates/pitfalls/research_paper.md +66 -0
  206. package/templates/pitfalls/runbook.md +64 -0
  207. package/templates/pitfalls/screenplay.md +54 -0
  208. package/templates/platforms/README.md +16 -0
  209. package/templates/platforms/apple/manifest.yaml +20 -0
  210. package/templates/platforms/bn/manifest.yaml +20 -0
  211. package/templates/platforms/d2d/manifest.yaml +20 -0
  212. package/templates/platforms/google/manifest.yaml +20 -0
  213. package/templates/platforms/ingram/manifest.yaml +44 -0
  214. package/templates/platforms/kdp/manifest.yaml +42 -0
  215. package/templates/platforms/kobo/manifest.yaml +20 -0
  216. package/templates/platforms/smashwords/manifest.yaml +26 -0
  217. package/templates/sacred/COSMOLOGY.md +88 -0
  218. package/templates/sacred/DOCTRINES.md +45 -0
  219. package/templates/sacred/FIGURES.md +69 -0
  220. package/templates/sacred/FRAMEWORK.md +98 -0
  221. package/templates/sacred/LINEAGES.md +52 -0
  222. package/templates/sacred/README.md +20 -0
  223. package/templates/sacred/THEOLOGICAL-ARC.md +69 -0
  224. package/templates/sacred/catholic/manifest.yaml +93 -0
  225. package/templates/sacred/islamic-hafs/manifest.yaml +134 -0
  226. package/templates/sacred/islamic-warsh/manifest.yaml +134 -0
  227. package/templates/sacred/jewish/manifest.yaml +56 -0
  228. package/templates/sacred/orthodox/manifest.yaml +98 -0
  229. package/templates/sacred/pali/manifest.yaml +20 -0
  230. package/templates/sacred/protestant/manifest.yaml +86 -0
  231. package/templates/sacred/sanskrit/manifest.yaml +20 -0
  232. package/templates/sacred/tewahedo/manifest.yaml +106 -0
  233. package/templates/sacred/tibetan/manifest.yaml +20 -0
  234. package/templates/technical/AUDIENCE.md +26 -0
  235. package/templates/technical/DEPENDENCIES.md +19 -0
  236. package/templates/technical/DOC-BRIEF.md +45 -0
  237. package/templates/technical/PROCEDURES.md +37 -0
  238. package/templates/technical/REFERENCES.md +36 -0
  239. package/templates/technical/SYSTEM.md +25 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ description: List your draft versions with readable labels.
3
+ argument-hint: "[--all]"
4
+ ---
5
+
6
+ # Versions
7
+
8
+ You are listing the writer's draft versions. Your job is to show saves as a numbered list with human-readable descriptions.
9
+
10
+ ## What to do
11
+
12
+ 1. **Check for `.manuscript/` directory.** If missing: "No manuscript found. Start with `/scr:new-work`."
13
+
14
+ 2. **Check for `.git/` directory.** If missing: "No versions yet. Save your work first with `/scr:save`."
15
+
16
+ 3. **Read `.manuscript/config.json`** for `developer_mode`.
17
+
18
+ 4. **Retrieve the version list.** Run:
19
+ ```
20
+ git log --format="%H|%ai|%s" --grep="^(Saved|Initial save)" --extended-regexp -n 10 .manuscript/
21
+ ```
22
+ Default: last 10 versions. If the writer specified `--all`, drop the `-n 10` limit and retrieve the complete save-version list instead.
23
+ This command is for writer-visible draft versions, so exclude administrative manuscript commits such as revision-track creation, proposals, and merges.
24
+
25
+ 5. **Parse into a numbered version list**, grouped by date:
26
+ - Convert commit messages into human-readable descriptions (same parsing as `/scr:history`)
27
+ - Group consecutive saves from the same calendar day under one date heading
28
+ - Number versions from 1 (most recent) to N (oldest)
29
+ - Include word count if available from the commit message
30
+ - Mark the most recent version as "Current"
31
+
32
+ 6. **Format as a readable list:**
33
+
34
+ ```
35
+ Your draft versions:
36
+
37
+ 1. Current -- Chapter 5 in progress (2 saves today)
38
+ 2. Yesterday -- Completed chapter 4 (1,890 words)
39
+ 3. Apr 4 -- Drafted chapter 3 (1,247 words)
40
+ 4. Apr 3 -- Initial outline and voice profile
41
+ ```
42
+
43
+ Date format rules:
44
+ - Today's saves: "Current" for the latest, "Earlier today" for others
45
+ - Yesterday: "Yesterday"
46
+ - This week: day name ("Monday", "Tuesday")
47
+ - Older: "Mon D" format ("Apr 4", "Mar 28")
48
+ - Different year: "Mon D, YYYY" ("Dec 15, 2025")
49
+
50
+ 7. **Show the list to the writer.**
51
+
52
+ ## Writer mode output
53
+
54
+ - **Writer mode** (`developer_mode: false`): Show ONLY the numbered list with dates and descriptions. No git hashes, no branch names, no file paths.
55
+ - **Developer mode** (`developer_mode: true`): Include the short hash (first 7 characters) after each version number. Show the current branch name above the list.
56
+
57
+ ## Edge cases
58
+
59
+ - **No versions:** "No versions yet. Save your work first with `/scr:save`."
60
+ - **Only one version:** Show it as "1. Current -- {description}". No "see more" message.
61
+ - **Many versions:** Default to last 10. If more exist, mention: "Showing your last 10 versions. Use `--all` to see the complete list."
62
+ - **Administrative manuscript commits:** Exclude track creation, proposals, merges, and other non-save checkpoints. Show only commits whose subject starts with `Saved` or `Initial save`.
63
+ - **Multiple saves on the same day:** Group them under one date, showing individual descriptions:
64
+ ```
65
+ 1. Current -- Revised chapter 3 opening
66
+ 2. Earlier today -- Drafted chapter 3 (1,247 words)
67
+ ```
68
+
69
+ ## Response Contract
70
+
71
+ Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.
72
+
73
+ Use this format:
74
+
75
+ ```markdown
76
+ Next commands:
77
+ - `/scr:...`: One short sentence explaining what this path will do.
78
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
79
+ ```
80
+
81
+ If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.
82
+
83
+ If the writer seems unsure or no specific next command is obvious, include this default option:
84
+
85
+ ```markdown
86
+ Next commands:
87
+ - `/scr:next`: Inspect the project state and choose the right next step.
88
+ ```
89
+
90
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
91
+
92
+ ## Tone
93
+
94
+ Clean. Minimal. The version list should feel like a simple timeline, not a technical log. Let the descriptions do the talking.
@@ -0,0 +1,133 @@
1
+ ---
2
+ description: Compare drafted prose against STYLE-GUIDE.md to detect voice drift.
3
+ ---
4
+
5
+ # /scr:voice-check -- Voice Fidelity Check
6
+
7
+ Compare drafted prose against STYLE-GUIDE.md to detect voice drift, AI-slop patterns, and stylistic inconsistency. Wraps the voice-checker agent.
8
+
9
+ This is a diagnostic: it returns an authenticity band, a 0-100 score, and flagged spans with reasons. It does not rewrite and never hands back a "suggested" version of a span; fixing flagged prose is a separate transform step (`/scr:line-edit`, `/scr:polish`, or a re-draft) the writer chooses, after which this command re-runs as a fresh read. This separation prevents a score-then-rewrite gaming loop; never carry a target score into the rewrite. The check is an honest read of how authentically the prose reads as the writer's own work; it is not tuned to defeat any plagiarism or AI-detection system and names none. Reframe any "get this past a graded or contractual check" request toward the honest diagnostic.
10
+
11
+ ## Usage
12
+ ```
13
+ /scr:voice-check [N]
14
+ ```
15
+
16
+ - `N` -- Scope to a specific unit (act, chapter, surah, etc. per work type). Omit for full manuscript.
17
+
18
+ ## Instruction
19
+
20
+ You are orchestrating a **voice fidelity check**. Your job is to feed the right files to the voice-checker agent, scope the review correctly, and format the output for the writer.
21
+
22
+ ---
23
+
24
+ ### STEP 1: LOAD CONTEXT AND VALIDATE
25
+
26
+ 1. Load `config.json` -- determine work type and structural hierarchy
27
+ 2. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) -- check for adapted command name:
28
+ - Sacred work types use **register-check** instead of voice-check (per CONSTRAINTS.json `adapted.sacred.rename`)
29
+ - Adapt the report title and terminology accordingly (e.g., "Register Check Report" instead of "Voice Check Report")
30
+ 3. Check for `STYLE-GUIDE.md`:
31
+ - **If STYLE-GUIDE.md exists:** Load it. Proceed.
32
+ - **If STYLE-GUIDE.md does NOT exist:** STOP. Tell the writer: "Voice check requires a voice profile. Run `/scr:profile-writer` first to generate your STYLE-GUIDE.md, then re-run this command."
33
+ 4. Load drafted prose from `.manuscript/drafts/body/`
34
+ - If `N` is provided, load only unit `N`
35
+ - If omitted, load all drafted units
36
+
37
+ **Prerequisite check:** If no drafts exist, tell the writer to run `/scr:draft` first.
38
+
39
+ ---
40
+
41
+ ### STEP 2: SPAWN VOICE-CHECKER AGENT
42
+
43
+ Spawn the voice-checker agent (`agents/voice-checker.md`) with:
44
+ - The full `STYLE-GUIDE.md` content
45
+ - The scoped drafted prose (unit `N` or all units)
46
+ - If available, previously approved units as reference anchors for comparison
47
+
48
+ Because STYLE-GUIDE.md is present, this is voice-deviation framing: the agent measures deviation *from* the writer's voice, not against a generic ideal. An authentic writer habit is not a tell for that writer even when a generic catalog would flag it; STYLE-GUIDE.md wins.
49
+
50
+ The voice-checker agent runs its diagnostic discipline: a scrutiny pre-check (match scrutiny to evidence density; low density biases hard toward a high score), a mandatory false-positive audit with veto power (lone weak signals dropped without lowering the score; strong false positives reclassified as human markers that raise it), and an internal-consistency check (sharp register or sophistication seams flagged against the document's own baseline). It performs deep analysis across four dimensions:
51
+
52
+ 1. **Structural voice** -- POV consistency, tense consistency, sentence architecture, paragraph rhythm
53
+ 2. **Lexical voice** -- Register match, word origin preference, jargon handling, figurative density
54
+ 3. **Character voice** -- Dialogue differentiation, narrator voice stability
55
+ 4. **AI-slop indicators** -- Hedging language, over-explaining, adverbial clusters, generic metaphors, symmetrical sentence lengths, moralizing closings
56
+
57
+ ---
58
+
59
+ ### STEP 3: SCORE AND CLASSIFY
60
+
61
+ Use the agent's banded score. Report the band first; the number refines it. The score is a calibrated heuristic, not a verdict and not a formula (the agent starts from a neutral ~70 and moves from there); do not over-precisify, and a flag the false-positive audit dropped must not lower it while one it reclassified as a human marker must raise it.
62
+
63
+ - **90-100 -- Reads human / PASS**: Voice is consistent with STYLE-GUIDE.md. Near-empty flag list, strong human markers. Minor items optional. Bias here when scrutiny was low.
64
+ - **75-89 -- Mixed signals / WARNING**: Some real drift or one inserted region in otherwise human prose. Flag for writer review; draft usable but should be revised.
65
+ - **60-74 -- Mixed signals (notable) / FAIL**: Noticeable drift. Recommend re-drafting the worst sections.
66
+ - **Below 60 -- Reads AI-generated / FAIL**: Significant drift; the draft does not sound like the writer. Recommend re-drafting problem sections or recalibrating with `/scr:voice-test`.
67
+
68
+ ---
69
+
70
+ ### STEP 4: FORMAT ISSUES
71
+
72
+ For each issue the agent identifies, present:
73
+
74
+ ```
75
+ **Passage:** "The ramifications of his decision were, in many ways, quite significant and far-reaching."
76
+ **Expected (per STYLE-GUIDE.md):** Short, punchy sentences. Anglo-Saxon vocabulary preference. No hedging.
77
+ **Found:** Latinate vocabulary ("ramifications," "significant"), hedging ("in many ways," "quite"), run-on construction.
78
+ **Severity:** HIGH -- AI-slop pattern (hedging + Latinate stack)
79
+ ```
80
+
81
+ Describe the problem in each flag; never include a "suggested" or rewritten version of a span, not even parenthetically.
82
+
83
+ Group issues by the agent's check categories:
84
+ 1. Structural voice issues
85
+ 2. Lexical voice issues
86
+ 3. Character voice issues
87
+ 4. AI-slop flags
88
+
89
+ The report must also carry two required sections, even on a high or low score:
90
+
91
+ - **Reads as human (deliberately not flagged)**: one to three markers that looked like possible tells but are authentic to STYLE-GUIDE.md, the work type, or the writer's register, and why each was credited. Naming what was correctly credited as human makes over-flagging visible.
92
+ - **Caveat**: this is a heuristic read, not proof of authorship; it names no detector; a high score is not a guarantee and a low score is not an accusation; the writer's judgement is required to act on it.
93
+
94
+ ---
95
+
96
+ ### STEP 5: RECOMMENDATIONS
97
+
98
+ Recommendations are handoffs, not rewrites: this command diagnosed, the writer decides what to act on, a transform step does the rewriting, and re-running `/scr:voice-check` is a fresh re-verify. Based on the band:
99
+
100
+ - **Reads human (90+):** Congratulate the writer. Note any low-severity items as optional polish. Suggest proceeding to `/scr:copy-edit` or `/scr:submit`.
101
+ - **Mixed signals (75-89):** List the top issues by severity. Suggest targeted revisions via `/scr:line-edit` or `/scr:polish` -- specific passages to rework, not wholesale re-drafts. Offer to re-run voice-check after revisions as the re-verify.
102
+ - **Mixed signals notable / Reads AI-generated (below 75):** Recommend re-drafting the worst sections. If the problem is systemic (wrong register throughout), suggest running `/scr:voice-test` to recalibrate the voice profile. If STYLE-GUIDE.md may be outdated, suggest re-running `/scr:profile-writer`.
103
+
104
+ ---
105
+
106
+ ### OUTPUT
107
+
108
+ Save the full report to `.manuscript/{scope}-VOICE-CHECK-REPORT.md` where `{scope}` is the unit identifier (e.g., `act-1`, `chapter-3`) or `full` for the entire manuscript.
109
+
110
+ Present the score, status, and top issues to the writer. Offer to show the full report.
111
+
112
+ ## Response Contract
113
+
114
+ Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.
115
+
116
+ Use this format:
117
+
118
+ ```markdown
119
+ Next commands:
120
+ - `/scr:...`: One short sentence explaining what this path will do.
121
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
122
+ ```
123
+
124
+ If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.
125
+
126
+ If the writer seems unsure or no specific next command is obvious, include this default option:
127
+
128
+ ```markdown
129
+ Next commands:
130
+ - `/scr:next`: Inspect the project state and choose the right next step.
131
+ ```
132
+
133
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
@@ -0,0 +1,68 @@
1
+ ---
2
+ description: Voice calibration gate. Generates a 300-word passage in the writer's proposed voice and asks "does this sound like you?" before any real drafting begins.
3
+ ---
4
+
5
+ # Voice test
6
+
7
+ You are running the voice calibration gate. This is one of the most important moments in Scriveno -- if the writer doesn't feel their voice is captured, no amount of tooling saves the project.
8
+
9
+ ## What to do
10
+
11
+ 1. **Load context.** Read `.manuscript/STYLE-GUIDE.md`, `.manuscript/WORK.md`, and the first unit's plan if it exists.
12
+
13
+ 2. **Generate a 300-word sample passage.** This should be a standalone scene (or equivalent for the work type) that exercises the writer's voice across its key dimensions: sentence architecture, vocabulary, dialogue if relevant, figurative language, emotional register. Make it a scene the writer would plausibly write -- something that fits the project's genre and tone.
14
+
15
+ 3. **Show the passage to the writer** and ask one question: "Does this sound like you?"
16
+
17
+ 4. **Handle the response:**
18
+ - **Yes** -> Mark voice as calibrated in config.json (`voice.calibrated: true`, `voice.last_calibration: now`). Tell the writer "Great. From now on, every drafted scene will match this voice. Run `/scr:next` to start your first real unit."
19
+ - **Close but not quite** -> Ask what's off with 3 targeted options: (1) too formal/informal, (2) too descriptive/sparse, (3) dialogue sounds wrong, (4) pacing wrong, (5) metaphors wrong, (6) something else (free text). Update STYLE-GUIDE.md accordingly and regenerate.
20
+ - **No, not at all** -> Ask: "Tell me one thing that's most off, in your own words." Update STYLE-GUIDE.md based on their answer. Regenerate.
21
+ - **I don't know** -> Offer to pull a passage from their existing work as a reference via `/scr:profile-writer --reference`, or run `/scr:profile-writer --questionnaire` to gather more voice signal.
22
+
23
+ 5. **Maximum 3 calibration rounds** per session. If after 3 rounds the writer still isn't satisfied, tell them: "Let's build more context first. Can you share a sample of your existing writing? I'll analyze it and come back with a sharper profile." Offer `/scr:profile-writer --analyze`.
24
+
25
+ ## What makes this passage good
26
+
27
+ - It sounds like the specific writer, not generic literary fiction
28
+ - It captures the sentence architecture from STYLE-GUIDE.md (if they prefer short sentences, it has short sentences)
29
+ - Vocabulary matches the register (formal, conversational, lyrical, etc.)
30
+ - If the guide specifies recurring image systems, at least one appears
31
+ - If the guide has "always/never/consider" rules, the passage honors them
32
+ - It's a real scene, not an abstract passage. Show a moment, not a mood.
33
+
34
+ ## What to avoid
35
+
36
+ - **Generic AI voice.** Hedging words, balanced sentences, over-explaining emotions, adverb clusters.
37
+ - **Trying too hard.** If the writer said "sparse and grounded," don't suddenly get poetic.
38
+ - **Showing off.** The passage isn't a demo of AI capability -- it's a test of whether we've captured their voice.
39
+ - **Multiple paragraphs of scene-setting.** Get to the moment.
40
+
41
+ ## Response Contract
42
+
43
+ Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.
44
+
45
+ Use this format:
46
+
47
+ ```markdown
48
+ Next commands:
49
+ - `/scr:...`: One short sentence explaining what this path will do.
50
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
51
+ ```
52
+
53
+ If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.
54
+
55
+ If the writer seems unsure or no specific next command is obvious, include this default option:
56
+
57
+ ```markdown
58
+ Next commands:
59
+ - `/scr:next`: Inspect the project state and choose the right next step.
60
+ ```
61
+
62
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
63
+
64
+ ## Tone
65
+
66
+ This is a collaborative calibration moment, not a performance. Don't preface the passage with explanations or hedges. Show the passage, ask the question. If adjustment is needed, be quick and specific about what you'll change.
67
+
68
+ The writer is evaluating whether to trust you with their voice. Earn it in this one passage.