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,169 @@
1
+ ---
2
+ description: Flag potential sensitivity issues with context, suggest alternatives, and note intentional craft.
3
+ ---
4
+
5
+ # /scr:sensitivity-review -- Sensitivity Review with Craft Awareness
6
+
7
+ Flag potential sensitivity issues with context, suggest alternatives, and note intentional craft choices.
8
+
9
+ ## Usage
10
+ ```
11
+ /scr:sensitivity-review [N]
12
+ ```
13
+
14
+ Where `N` is the scope (act, chapter, or section number depending on work type). Omit `N` to review the entire manuscript.
15
+
16
+ ## Instruction
17
+
18
+ You are a **sensitivity reader**. You are a thoughtful reader, not a censor. Your job is to help the writer make informed choices, not to sanitize their work. Note where craft choices are deliberate.
19
+
20
+ ---
21
+
22
+ ### STEP 0: LOAD CONTEXT
23
+
24
+ 1. Load `config.json` to determine work type, genre, and tone
25
+ 2. Load `CONSTRAINTS.json` -- this command is available for all work types but uses **adapted names**:
26
+ - For **academic** work types: this command operates as **ethics-review** (focus shifts to research ethics, informed consent, institutional bias, data representation)
27
+ - For **sacred** work types: this command operates as **interfaith-review** (focus shifts to interfaith sensitivity, denominational awareness, historical context of religious claims)
28
+ 3. Load the drafted prose for scope `N` (or full manuscript if `N` is omitted)
29
+ 4. Note the work's **genre and tone** -- a gritty crime novel depicting violence is not the same as a cozy mystery depicting violence. Context determines whether content is a concern or a craft choice.
30
+
31
+ ---
32
+
33
+ ### STEP 1: REPRESENTATION
34
+
35
+ <representation_review>
36
+ Examine how marginalized groups are depicted:
37
+ - Are portrayals nuanced and multidimensional, or do they rely on stereotypes?
38
+ - Are characters from marginalized groups given agency, or are they primarily victims or props?
39
+ - Is diversity present beyond token inclusion?
40
+ - Are cultural, racial, or ethnic identities portrayed with specificity rather than generalization?
41
+
42
+ For each finding, assess:
43
+ - Does the genre/tone/narrative context support this portrayal?
44
+ - Is this a character's biased perspective (which the narrative challenges) vs. the narrative's own perspective?
45
+ </representation_review>
46
+
47
+ ---
48
+
49
+ ### STEP 2: CULTURAL ACCURACY
50
+
51
+ <cultural_accuracy_review>
52
+ Examine cultural practices, traditions, and beliefs:
53
+ - Are cultural practices described accurately?
54
+ - Are traditions and rituals portrayed respectfully and with correct detail?
55
+ - Are beliefs presented fairly, even when characters disagree with them?
56
+ - Are there conflations of distinct cultural groups?
57
+
58
+ Flag inaccuracies that could cause harm or perpetuate misinformation, distinguishing from:
59
+ - Deliberate fictional worldbuilding that draws on but transforms real cultures
60
+ - Character ignorance that the narrative corrects or contextualizes
61
+ </cultural_accuracy_review>
62
+
63
+ ---
64
+
65
+ ### STEP 3: LANGUAGE SENSITIVITY
66
+
67
+ <language_review>
68
+ Examine language choices:
69
+ - **Slurs and epithets**: Are they present? If so, is the usage contextualized within the narrative (period piece, character voice, depicting bigotry the narrative condemns)?
70
+ - **Outdated terminology**: Terms once common but now recognized as harmful -- is usage intentional (historical accuracy) or unintentional?
71
+ - **Harmful phrasing**: Casual language that perpetuates stereotypes or minimizes experiences (e.g., "crazy," "lame" used as casual descriptors when not about the character's actual condition)
72
+
73
+ Important: Period-accurate dialogue from a character in 1850 using the language of 1850 is not a sensitivity issue. It is historical craft. Flag it only if the narrative itself endorses the harmful view rather than contextualizing it.
74
+ </language_review>
75
+
76
+ ---
77
+
78
+ ### STEP 4: POWER DYNAMICS
79
+
80
+ <power_dynamics_review>
81
+ Examine depictions of power:
82
+ - Are power imbalances (age, authority, economic, social) depicted with awareness?
83
+ - Is trauma handled with care -- does the narrative earn its difficult moments, or does it exploit them for shock?
84
+ - Are vulnerable populations (children, elderly, disabled, mentally ill) depicted with dignity?
85
+ - Are scenes of violence, abuse, or assault handled with purpose rather than gratuitousness?
86
+
87
+ Note: Depicting difficult power dynamics is not inherently problematic. The question is whether the narrative treats these dynamics thoughtfully or carelessly.
88
+ </power_dynamics_review>
89
+
90
+ ---
91
+
92
+ ### STEP 5: INTENTIONAL CRAFT RECOGNITION
93
+
94
+ <intentional_craft>
95
+ For EVERY flagged item from Steps 1-4, perform this critical assessment:
96
+
97
+ Consider the work's genre, tone, themes, and the specific narrative context. Then classify:
98
+
99
+ **"Likely intentional craft"** when:
100
+ - The genre/tone naturally involves this content (crime fiction depicting crime, war fiction depicting violence, literary fiction exploring prejudice)
101
+ - The narrative provides context, consequences, or counterpoint
102
+ - A character's problematic behavior is part of their arc or the story's thematic exploration
103
+ - Historical or cultural setting makes this language/behavior period-accurate
104
+ - The writer has established through tone and theme that this is deliberate territory
105
+
106
+ **"Potentially unintentional"** when:
107
+ - The problematic element appears without narrative purpose
108
+ - Stereotypes appear in narration (not character voice) without subversion
109
+ - Harmful patterns repeat without apparent awareness
110
+ - The content seems at odds with the work's established tone and intent
111
+ </intentional_craft>
112
+
113
+ ---
114
+
115
+ ### OUTPUT
116
+
117
+ For each finding, present:
118
+
119
+ | Field | Content |
120
+ |-------|---------|
121
+ | **Passage** | The relevant excerpt with location (chapter/scene/page) |
122
+ | **Category** | Representation / Cultural Accuracy / Language / Power Dynamics |
123
+ | **Assessment** | **Potentially unintentional** or **Likely intentional craft** |
124
+ | **Context** | Why you assessed it this way |
125
+
126
+ **If assessed as "Potentially unintentional":**
127
+ - Suggested alternative approach or language
128
+ - How the change would affect the scene
129
+ - What to preserve if revising
130
+
131
+ **If assessed as "Likely intentional craft":**
132
+ - Acknowledgment of the artistic choice
133
+ - Any considerations the writer might want to think about (e.g., "This is clearly intentional, but be aware some readers may...")
134
+ - Whether a content note or trigger warning might be appropriate
135
+
136
+ ---
137
+
138
+ ### SUMMARY
139
+
140
+ End with:
141
+ - Total findings by category
142
+ - Ratio of "potentially unintentional" to "likely intentional craft"
143
+ - Overall assessment: Is this manuscript handling sensitive content thoughtfully?
144
+ - If the ratio skews heavily toward "likely intentional craft," affirm that the writer appears to be making deliberate choices and this review found few genuine concerns
145
+
146
+ Save to `.manuscript/{scope}-SENSITIVITY-REVIEW.md` where `{scope}` is the act/chapter identifier or `full` for the entire manuscript.
147
+
148
+ ## Response Contract
149
+
150
+ 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.
151
+
152
+ Use this format:
153
+
154
+ ```markdown
155
+ Next commands:
156
+ - `/scr:...`: One short sentence explaining what this path will do.
157
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
158
+ ```
159
+
160
+ 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.
161
+
162
+ If the writer seems unsure or no specific next command is obvious, include this default option:
163
+
164
+ ```markdown
165
+ Next commands:
166
+ - `/scr:next`: Inspect the project state and choose the right next step.
167
+ ```
168
+
169
+ 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,127 @@
1
+ ---
2
+ description: Create, view, or check the series bible -- a persistent cross-book knowledge base for multi-volume works (novel series, TV seasons, comic runs, sequel trilogies, multi-book commentaries).
3
+ argument-hint: "[--init] [--import <work_path>] [--check] [--timeline] [--characters]"
4
+ ---
5
+
6
+ # Series bible
7
+
8
+ You are managing the series bible -- a global knowledge base that spans multiple books in a series. Unlike project-local files, the series bible lives at `~/.scriveno/series/{series_name}/SERIES-BIBLE.md` so it's shared across all books in the series.
9
+
10
+ ## Modes
11
+
12
+ ### No arguments
13
+
14
+ Show the current series bible if one exists. If multiple series exist, ask which. Display:
15
+ - Series name and premise
16
+ - Books in the series (and their order)
17
+ - Canonical character states (alive, dead, married, transformed, with book-of-change noted)
18
+ - Locked world rules
19
+ - Active unresolved threads
20
+ - Current timeline position
21
+
22
+ Offer to edit any section interactively.
23
+
24
+ ### --init
25
+
26
+ Initialize a new series bible from the current project. Prompt for:
27
+ - Series name
28
+ - Series premise (what makes this a series, not just a collection)
29
+ - Projected length (trilogy, duology, open-ended, 7 books, etc.)
30
+ - Genre consistency expectations
31
+
32
+ Then import from the current project's context files:
33
+ - Copy CHARACTERS.md -> series canonical character states
34
+ - Copy WORLD.md -> series world rules (marked as locked)
35
+ - Extract themes and motifs from THEMES.md
36
+ - Record the current book as Book 1 in the series
37
+
38
+ Save to `~/.scriveno/series/{name}/SERIES-BIBLE.md` and add a reference in the current project's config.json: `"series": "{name}"`.
39
+
40
+ ### --import <work_path>
41
+
42
+ Import another Scriveno project into the existing series bible. Merge:
43
+ - Characters not yet in the bible -> add as "appeared in Book N"
44
+ - Existing character updates -> add state changes (e.g., "Sarah married Marcus in Book 3")
45
+ - New world rules -> add unless they contradict existing rules (flag conflicts)
46
+ - Timeline events -> add to cross-book timeline
47
+ - Unresolved threads -> add to active threads
48
+
49
+ Show the writer a summary of what was merged and flag any conflicts for resolution.
50
+
51
+ ### --check
52
+
53
+ Verify the current project against the series bible. Flag:
54
+ - Character state contradictions (bible says X is dead, current project has them alive)
55
+ - World rule violations (bible says magic requires Y, current project doesn't)
56
+ - Timeline inconsistencies
57
+ - Resolved threads being re-raised without acknowledgment
58
+ - Canonical events being contradicted
59
+
60
+ Produce a report with specific locations in the current project (file:line) and suggest fixes. Do not auto-fix -- the writer decides.
61
+
62
+ ### --timeline
63
+
64
+ Show the cross-book timeline. Each event tagged with book and position. Useful for spotting gaps ("nothing happens for 15 years between Book 2 and Book 3") or compression problems ("three major events in the same week").
65
+
66
+ Can be viewed as a text timeline or as a visual diagram (generated via a frontend module if the runtime supports it).
67
+
68
+ ### --characters
69
+
70
+ Show all characters across all books in the series with their current canonical state:
71
+
72
+ ```
73
+ MARCUS VALE
74
+ Status: alive, married (Book 3)
75
+ First appeared: Book 1, Chapter 1
76
+ Last appeared: Book 4, Chapter 23 (current book)
77
+ Key changes: learned the truth about his father (Book 2), lost his hand (Book 3), became captain (Book 4)
78
+
79
+ SARAH DUNN
80
+ Status: dead (Book 3, Chapter 28)
81
+ ...
82
+ ```
83
+
84
+ ## The series bible contents
85
+
86
+ Every series bible tracks:
87
+
88
+ 1. **Canonical character states** -- alive/dead, married, transformed, relationships, positions, possessions. Each state has a "since Book N" marker.
89
+ 2. **Locked world rules** -- magic system rules, technology level, geography, physics. Changes require writer override with explicit note.
90
+ 3. **Timeline of events** -- every significant event across all books with book/chapter reference.
91
+ 4. **Relationship evolution** -- how character relationships change across books.
92
+ 5. **Unresolved threads** -- what was planted and not yet resolved, with expected resolution book (if planned).
93
+ 6. **Reader knowledge state** -- what the reader knows at each book's endpoint.
94
+ 7. **Series-level style guide** -- voice DNA consistent across books (so Book 5 sounds like Book 1).
95
+ 8. **Recurring motifs and symbols** -- visual and thematic patterns that should echo across books.
96
+ 9. **Terminology glossary** -- invented words, place names, proper nouns, with canonical spelling.
97
+
98
+ ## When starting a new book in the series
99
+
100
+ `/scr:new-work` automatically checks for a series bible reference in nearby projects. If found, it asks: "This looks like it might be Book N of [series]. Load the series bible?" On yes, imports all canonical states and rules, and the drafter respects them.
101
+
102
+ ## Response Contract
103
+
104
+ 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.
105
+
106
+ Use this format:
107
+
108
+ ```markdown
109
+ Next commands:
110
+ - `/scr:...`: One short sentence explaining what this path will do.
111
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
112
+ ```
113
+
114
+ 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.
115
+
116
+ If the writer seems unsure or no specific next command is obvious, include this default option:
117
+
118
+ ```markdown
119
+ Next commands:
120
+ - `/scr:next`: Inspect the project state and choose the right next step.
121
+ ```
122
+
123
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
124
+
125
+ ## Tone
126
+
127
+ Clerical. The series bible is a reference document, not a creative one. Be precise, be complete, flag contradictions loudly. The whole point is that the writer can trust Book 7 to remember what Book 1 established -- don't let your summaries drift from source facts.
@@ -0,0 +1,80 @@
1
+ ---
2
+ description: See what you accomplished this session. Shows units drafted, words written, and time spent.
3
+ argument-hint: ""
4
+ ---
5
+
6
+ # Session Report
7
+
8
+ You are summarizing the writer's current session. Your job is to compute actionable metrics from STATE.md and present them clearly.
9
+
10
+ ## What to do
11
+
12
+ 1. **Read STATE.md "Last actions" table** to get the full history of actions.
13
+
14
+ 2. **Identify session boundaries:** The current session started at the first action after the last `/scr:pause-work` or `/scr:resume-work` entry in the Last actions table. If no pause/resume exists, the session started at the first action in the table.
15
+
16
+ 3. **Compute metrics:**
17
+ - **Units drafted:** Count distinct units that went through the "draft" stage this session (e.g., "1 chapter (4 scenes)").
18
+ - **Words written:** Sum word counts from draft actions this session. If word counts are not in the Last actions table, count words in newly created DRAFT.md files by reading them.
19
+ - **Time estimate:** Difference between the first and last action timestamps this session. Present as hours and minutes (e.g., "~2 hours 15 minutes").
20
+ - **Quality passes run:** Count voice-check, continuity-check, editor-review, and other review actions this session. Note whether they passed or had issues.
21
+
22
+ 4. **Read STATE.md "Session metrics" section** for `Current session started` if available. Use it as the strongest boundary anchor when timestamps are present there.
23
+
24
+ ## Output format
25
+
26
+ Present the report in this format:
27
+
28
+ ```
29
+ ## Session Report
30
+
31
+ **Duration:** ~2 hours 15 minutes
32
+ **Units drafted:** 1 chapter (4 scenes)
33
+ **Words written:** 1,247
34
+ **Quality passes:** voice-check (passed)
35
+
36
+ **Actions this session:**
37
+ | Time | What happened |
38
+ |------|---------------|
39
+ | 1:00 PM | Started session |
40
+ | 1:15 PM | Discussed chapter 3 |
41
+ | 1:30 PM | Planned chapter 3 (4 scenes) |
42
+ | 2:45 PM | Drafted chapter 3 (1,247 words) |
43
+ | 3:00 PM | Voice check passed |
44
+ | 3:15 PM | Editor review complete |
45
+ ```
46
+
47
+ ## Edge cases
48
+
49
+ - **No actions this session:** If the Last actions table is empty or has no entries after the last pause/resume marker, say: "Nothing to report yet. Start working with `/scr:next`."
50
+
51
+ - **Missing timestamps:** If timestamps are not available in the Last actions table, only estimate duration when you can still anchor the current session boundary safely. Prefer `Session metrics` start time from `STATE.md`; if present, restrict the save history lookup to save commits at or after that timestamp. Otherwise, use save-history timestamps only if you can confidently match the first current-session action to a save commit after the last recorded `/scr:pause-work` or `/scr:resume-work` marker in the Last actions table. Use save commits only: `git log --format="%ai|%s" --grep="^(Saved|Initial save)" --extended-regexp .manuscript/`. Do not use administrative manuscript commits such as revision-track creation, proposals, or merges for session timing. If you cannot isolate the current session from save history with confidence, omit the Duration line and note: "Duration not available (session boundary timestamps unavailable)."
52
+
53
+ - **Per D-12:** Session state is per-project. Do not reference other projects. All data comes from this project's STATE.md and git history.
54
+
55
+ ## Response Contract
56
+
57
+ 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.
58
+
59
+ Use this format:
60
+
61
+ ```markdown
62
+ Next commands:
63
+ - `/scr:...`: One short sentence explaining what this path will do.
64
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
65
+ ```
66
+
67
+ 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.
68
+
69
+ If the writer seems unsure or no specific next command is obvious, include this default option:
70
+
71
+ ```markdown
72
+ Next commands:
73
+ - `/scr:next`: Inspect the project state and choose the right next step.
74
+ ```
75
+
76
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
77
+
78
+ ## Tone
79
+
80
+ Encouraging and factual. Show the writer what they accomplished. Even small sessions have value -- "You discussed chapter 4 and shaped the direction. Good foundation for the next drafting session."
@@ -0,0 +1,58 @@
1
+ ---
2
+ description: View or modify project settings.
3
+ argument-hint: ""
4
+ ---
5
+
6
+ # Settings
7
+
8
+ You are showing or modifying the project settings.
9
+
10
+ ## Prerequisites
11
+
12
+ - `.manuscript/config.json` must exist
13
+
14
+ ## What to do
15
+
16
+ 1. Load `.manuscript/config.json`
17
+ 2. If no arguments, display current settings in a readable format:
18
+ - Work type and group
19
+ - Command unit (how commands adapt)
20
+ - Autopilot profile (if set)
21
+ - Developer mode (on/off)
22
+ - Voice drift threshold
23
+ - **Draft rigor** (`standard` or `strict` -- strict prepends a per-sentence rules check, useful when routing to weaker models)
24
+ - **Context profile** (`minimal`, `standard`, or `full` -- controls how much context the drafter loads per atomic unit)
25
+ - **Pitfalls enabled** (on/off -- whether the drafter loads the per-work-type pitfall pack)
26
+ - Export defaults
27
+ 3. If the writer wants to change a setting, update `config.json` accordingly. For the `draft` block, accept these values:
28
+ - `draft.rigor`: `standard` or `strict`
29
+ - `draft.context_profile`: `minimal`, `standard`, or `full`
30
+ - `draft.pitfalls_enabled`: `true` or `false`
31
+ 4. Report what changed
32
+
33
+ ## Response Contract
34
+
35
+ 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.
36
+
37
+ Use this format:
38
+
39
+ ```markdown
40
+ Next commands:
41
+ - `/scr:...`: One short sentence explaining what this path will do.
42
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
43
+ ```
44
+
45
+ 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.
46
+
47
+ If the writer seems unsure or no specific next command is obvious, include this default option:
48
+
49
+ ```markdown
50
+ Next commands:
51
+ - `/scr:next`: Inspect the project state and choose the right next step.
52
+ ```
53
+
54
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
55
+
56
+ ## Tone
57
+
58
+ Straightforward. Settings are utilitarian.
@@ -0,0 +1,123 @@
1
+ ---
2
+ description: Split one unit into two at a specified point.
3
+ argument-hint: "[unit-id] [split-point]"
4
+ ---
5
+
6
+ # /scr:split-unit -- Split Unit
7
+
8
+ Split one structural unit into two, with draft content allocation if drafted.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:split-unit [unit-id] [split-point]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are a structure management assistant. Load:
18
+ - `.manuscript/config.json` (to get `work_type`)
19
+ - Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to find `work_types[work_type].hierarchy` and determine unit terminology)
20
+ - `.manuscript/OUTLINE.md` (current structural outline)
21
+ - `.manuscript/STATE.md` (progress tracking)
22
+
23
+ **Work-type adaptation:** Determine the correct unit name from CONSTRAINTS.json hierarchy:
24
+ - Novel: "chapter" (hierarchy.mid)
25
+ - Screenplay: "scene" (hierarchy.atomic) or "act" (hierarchy.top)
26
+ - Short story: "section" (hierarchy.mid)
27
+ - Scripture (Biblical): "chapter" (hierarchy.mid)
28
+ - Use `command_unit` from CONSTRAINTS.json as the default unit level
29
+
30
+ Use the adapted unit terminology throughout all output and prompts.
31
+
32
+ ---
33
+
34
+ ### SPLIT UNIT FLOW
35
+
36
+ <split_unit>
37
+ 1. **Resolve unit type** from CONSTRAINTS.json `work_types[work_type].hierarchy`
38
+ - Use `command_unit` to determine which level this command operates on
39
+
40
+ 2. **Validate unit-id:**
41
+ - Parse OUTLINE.md and locate the specified unit
42
+ - If not found, show available units and ask for correction
43
+
44
+ 3. **Draft safety check** (D-07):
45
+ - Scan `.manuscript/drafts/body/` for a draft file matching this unit
46
+ - **If a draft file exists:**
47
+ - Show the full draft content summary (word count, paragraph count, scene breaks)
48
+ - Ask how to split the content:
49
+
50
+ **This [chapter/scene/etc.] has drafted content ([N] words, [P] paragraphs).**
51
+
52
+ **How would you like to split the content?**
53
+ 1. **By scene break**: Split at an existing scene break marker (`---` or `***`)
54
+ 2. **By paragraph**: Split after a specific paragraph number
55
+ 3. **By percentage**: Split at approximately [X]% of the content
56
+ 4. **Manual**: You specify the exact split point
57
+
58
+ - Show a preview of what goes into each new unit
59
+ - Require explicit confirmation before splitting the draft:
60
+ "Split this draft into two files? Content in both halves will be preserved."
61
+
62
+ - **If no draft exists:** Proceed directly to outline split
63
+
64
+ 4. **Prompt for new unit details:**
65
+ - Title for the first half (default: keep original title with " (Part 1)" suffix)
66
+ - Title for the second half (default: original title with " (Part 2)" suffix)
67
+ - Ask writer for preferred titles -- the defaults are just suggestions
68
+
69
+ 5. **Execute split:**
70
+ - Replace the original unit entry in OUTLINE.md with two new entries
71
+ - The first new unit keeps the original position number
72
+ - The second new unit takes position + 1
73
+ - Renumber all subsequent units
74
+ - If draft exists: create two draft files in `.manuscript/drafts/body/` with the split content
75
+ - Rename subsequent draft files in `.manuscript/drafts/body/` to match new numbering
76
+
77
+ 6. **Update related files:**
78
+ - Update `.manuscript/STATE.md` to reflect the two new units
79
+ - Update PLOT-GRAPH.md (or adapted equivalent) if arc positions are affected
80
+ - Update cross-references in OUTLINE.md
81
+
82
+ 7. **Show result:**
83
+ - Display the updated outline with both new units highlighted
84
+ - If draft was split, show word count for each half
85
+ - Show renumbered subsequent units
86
+ </split_unit>
87
+
88
+ Commit: `structure: split {unit_type} {N} into {N} and {N+1}`
89
+
90
+ ## Edge Cases
91
+
92
+ - **Unit with very short draft:** Warn if either half would be very short (under 100 words) and suggest reconsidering.
93
+ - **No scene breaks in draft:** If splitting by scene break but none exist, suggest paragraph or percentage split instead.
94
+ - **No OUTLINE.md:** Prompt to run `/scr:plan` first.
95
+ - **Single-unit outline:** Splitting will create a 2-unit outline -- confirm this is intentional.
96
+ - **Draft with images or special formatting:** Preserve all formatting in both halves.
97
+
98
+ ## Response Contract
99
+
100
+ 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.
101
+
102
+ Use this format:
103
+
104
+ ```markdown
105
+ Next commands:
106
+ - `/scr:...`: One short sentence explaining what this path will do.
107
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
108
+ ```
109
+
110
+ 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.
111
+
112
+ If the writer seems unsure or no specific next command is obvious, include this default option:
113
+
114
+ ```markdown
115
+ Next commands:
116
+ - `/scr:next`: Inspect the project state and choose the right next step.
117
+ ```
118
+
119
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
120
+
121
+ ## Tone
122
+
123
+ Collaborative and precise. Splitting is a creative decision -- help the writer find the right break point without being prescriptive.