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,187 @@
1
+ ---
2
+ description: Generate children's book page spread layouts with text and illustration zones.
3
+ argument-hint: "<spread-number> [--text-ratio <percent>]"
4
+ ---
5
+
6
+ # /scr:spread-layout -- Page Spread Layout
7
+
8
+ Generate children's book / picture book page spread layouts with labeled zones for text placement, illustration direction, and bleed areas using ASCII grid visualization.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:spread-layout <spread-number> [--text-ratio <percent>]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating a page spread layout for a children's book or picture book. Load:
18
+ - `.manuscript/config.json` (to get `work_type` -- must be in visual group: childrens_book, picture_book, illustrated_book)
19
+ - Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `commands.spread-layout.available` -- visual group only)
20
+ - `.manuscript/illustrations/ART-DIRECTION.md` if it exists (for visual style consistency)
21
+ - `.manuscript/OUTLINE.md` (to get spread content -- for picture books, each spread is an atomic unit)
22
+ - Drafted spread content if it exists (the text and scene description for this spread)
23
+
24
+ **Check availability:**
25
+
26
+ Look up the current work type's group in CONSTRAINTS.json. If the group is in `commands.spread-layout.hidden` (prose, script, academic, poetry, interactive, speech_song, sacred), inform the writer:
27
+
28
+ > Spread-layout is designed for children's books and picture books. Your [work_type] project uses different layout tools.
29
+
30
+ Then **stop**.
31
+
32
+ ---
33
+
34
+ ### Spread Analysis
35
+
36
+ <spread_analysis>
37
+ Read the content for spread `<spread-number>` from OUTLINE.md and any drafted content.
38
+
39
+ Determine:
40
+ - **Text content:** The actual text for this spread (or summary if not yet drafted)
41
+ - **Text length:** Word count to determine text zone size
42
+ - **Illustration subject:** What should be illustrated on this spread
43
+ - **Emotional tone:** How this spread should feel visually
44
+ - **Narrative function:** Is this a quiet moment, action beat, reveal, opening, climax, denouement?
45
+ - **Page turn impact:** What comes before and after -- is this a surprise reveal on page turn?
46
+ </spread_analysis>
47
+
48
+ ---
49
+
50
+ ### Layout Generation (D-04 ASCII Grid)
51
+
52
+ <layout_generation>
53
+ Generate the spread layout using ASCII grid per D-04, showing both pages of the two-page spread with labeled zones.
54
+
55
+ **Standard picture book dimensions:**
56
+ - Single page: 10" x 8" (landscape) or 8.5" x 11" (portrait)
57
+ - Full spread: 20" x 8" (landscape) or 17" x 11" (portrait)
58
+ - Use dimensions from config.json `trim_size` if set, otherwise default to 10" x 8" landscape
59
+
60
+ **Text-to-illustration ratio:**
61
+ - Default: 30% text / 70% illustration for picture books
62
+ - Override with `--text-ratio <percent>` (e.g., `--text-ratio 40` for 40% text / 60% illustration)
63
+ - Text-heavy spreads (> 50%) are unusual -- warn if requested
64
+
65
+ **Zone Labels:**
66
+ - `[TEXT]` -- Where text is placed, with actual text excerpt
67
+ - `[ILLUSTRATION]` -- Illustration zone with scene description
68
+ - `[BLEED]` -- Areas extending beyond trim for full-bleed printing
69
+ - `[GUTTER]` -- Center binding area (wider inner margin, typically 0.5"-0.75")
70
+ - `[SAFE]` -- Safe area for critical content (0.25" from trim)
71
+
72
+ **Output Format:**
73
+
74
+ ```markdown
75
+ # Spread [N] Layout
76
+
77
+ **Title/Caption:** "[spread title or key text excerpt]"
78
+ **Text ratio:** [N]% text / [N]% illustration
79
+ **Page dimensions:** [width]" x [height]" per page ([total width]" x [height]" spread)
80
+
81
+ ## Layout Grid
82
+
83
+ SPREAD [N] -- "[short description]"
84
+ +--------------------+--+--------------------+
85
+ | | | |
86
+ | [ILLUSTRATION] |G | [ILLUSTRATION] |
87
+ | |U | |
88
+ | [scene desc] |T | |
89
+ | |T |--------------------+
90
+ | |E | |
91
+ | [BLEED -->] |R | [TEXT] |
92
+ | | | "Actual text |
93
+ | | | from the spread |
94
+ | | | goes here..." |
95
+ +--------------------+--+--------------------+
96
+ LEFT PAGE RIGHT PAGE
97
+
98
+ ## Left Page
99
+ - **Zone:** [Full bleed illustration | Partial illustration | Text + illustration]
100
+ - **Illustration direction:** [What to depict -- characters, setting, action]
101
+ - **Bleed:** [Which edges bleed -- top, bottom, left, or all]
102
+ - **Key focal point:** [Where the eye should go]
103
+
104
+ ## Right Page
105
+ - **Zone:** [Breakdown of text vs illustration areas]
106
+ - **Text placement:** [Top, bottom, center, wrapped around illustration]
107
+ - **Text content:** [The actual text or excerpt for this page]
108
+ - **Illustration direction:** [What to depict in remaining space]
109
+
110
+ ## Typography Notes
111
+ - **Font size suggestion:** [based on target age group -- larger for younger readers]
112
+ - **Text alignment:** [left, centered, ragged right]
113
+ - **Text background:** [transparent over illustration | solid panel | semi-transparent overlay]
114
+
115
+ ## Production Notes
116
+ - **Gutter safety:** Keep critical text/image content 0.5" from center binding
117
+ - **Bleed extension:** Extend bleed illustrations 0.125" beyond trim on all bleed edges
118
+ - **Safe area:** Keep essential text 0.25" inside trim on all edges
119
+ - **Color notes:** [From ART-DIRECTION.md -- dominant colors for this spread]
120
+ ```
121
+
122
+ **Layout Variations by Narrative Function:**
123
+
124
+ - **Opening spread:** Full bleed illustration across both pages, minimal text (title or opening line)
125
+ - **Action spread:** Dynamic composition, illustration dominates, text integrated into scene
126
+ - **Quiet moment:** More text space, illustration as vignette or partial page
127
+ - **Climax/reveal:** Full bleed illustration, text minimal or absent (let the art speak)
128
+ - **Denouement:** Balanced text and illustration, calming composition
129
+ - **Final spread:** Can mirror opening spread structure for satisfying bookend
130
+
131
+ Adapt the grid layout to match the narrative function of this particular spread.
132
+ </layout_generation>
133
+
134
+ ---
135
+
136
+ ### Output
137
+
138
+ Create the output directory if needed:
139
+ ```bash
140
+ mkdir -p .manuscript/illustrations/spreads/
141
+ ```
142
+
143
+ Save to `.manuscript/illustrations/spreads/spread-{number}-layout.md`
144
+
145
+ Commit: `illustration: generate spread layout for spread {number}`
146
+
147
+ After saving, tell the writer:
148
+ > Spread layout saved to `.manuscript/illustrations/spreads/spread-{number}-layout.md`.
149
+ >
150
+ > The layout shows [TEXT] and [ILLUSTRATION] zones with bleed areas marked.
151
+ > Share this with your illustrator or use as reference for AI image generation.
152
+ >
153
+ > Adjacent spreads: `/scr:spread-layout {prev}` | `/scr:spread-layout {next}`
154
+
155
+ ---
156
+
157
+ ### Edge Cases
158
+
159
+ - **Spread not in outline:** "Spread {number} is not in your outline. Your book has {N} spreads. Check `/scr:progress` for the outline structure."
160
+ - **No drafted content:** Generate layout from OUTLINE.md beat description. Note: "Layout based on outline. Draft the spread text for more precise text zone sizing."
161
+ - **Text too long for ratio:** Warn and suggest either splitting across two spreads or increasing text ratio: "The text for this spread is {N} words, which may be too long for {ratio}% text area. Consider splitting into two spreads or using `--text-ratio {suggested}`."
162
+ - **Full-bleed no-text spread:** Valid for climactic moments. Generate illustration-only spread with no text zone.
163
+ - **ART-DIRECTION.md missing:** Generate layout without color/style notes. Suggest: "Run `/scr:art-direction` for visual consistency guidance."
164
+ - **Non-picture-book work type:** Hard stop per CONSTRAINTS.json availability check.
165
+
166
+ ## Response Contract
167
+
168
+ 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.
169
+
170
+ Use this format:
171
+
172
+ ```markdown
173
+ Next commands:
174
+ - `/scr:...`: One short sentence explaining what this path will do.
175
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
176
+ ```
177
+
178
+ 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.
179
+
180
+ If the writer seems unsure or no specific next command is obvious, include this default option:
181
+
182
+ ```markdown
183
+ Next commands:
184
+ - `/scr:next`: Inspect the project state and choose the right next step.
185
+ ```
186
+
187
+ 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,262 @@
1
+ ---
2
+ description: Generate storyboard frames for script and visual work types with camera direction.
3
+ argument-hint: "[--scene <ref>] [--act <number>]"
4
+ ---
5
+
6
+ # /scr:storyboard -- Storyboard Frame Generator
7
+
8
+ Generate storyboard frames with shot types, camera movement, transitions, and ASCII composition sketches for script and visual work types.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:storyboard [--scene <ref>] [--act <number>]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating storyboard frames for a script or visual project. 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 check `commands.storyboard.available` -- script and visual groups only)
20
+ - `.manuscript/illustrations/ART-DIRECTION.md` if it exists (for visual style consistency)
21
+ - `.manuscript/OUTLINE.md` (for scene/beat structure)
22
+ - Drafted scene files for content
23
+
24
+ **Check availability:**
25
+
26
+ Look up the current work type's group in CONSTRAINTS.json. If the group is in `commands.storyboard.hidden` (prose, academic, poetry, interactive, speech_song, sacred), inform the writer:
27
+
28
+ > Storyboard is designed for scripts and visual projects. Your [work_type] project uses other illustration tools instead. Try `/scr:illustrate-scene` for scene illustration prompts.
29
+
30
+ Then **stop**.
31
+
32
+ ---
33
+
34
+ ### Scope Selection
35
+
36
+ <scope_selection>
37
+ Determine what to storyboard:
38
+
39
+ - **No flags:** Generate a thumbnail overview storyboard for the entire work. Use 1 frame per scene/beat, showing the key visual moment. This gives a bird's-eye view of the visual story.
40
+
41
+ - **`--scene <ref>`:** Generate detailed frames for a single scene. Break the scene into individual beats, each getting its own frame with full camera direction. Typically 3-12 frames per scene depending on complexity.
42
+
43
+ - **`--act <number>`:** Generate frames for all scenes in the specified act. Use OUTLINE.md to identify which scenes belong to the act. Medium detail -- 2-4 frames per scene.
44
+
45
+ If the specified scene or act has no drafted content, use OUTLINE.md beat descriptions for frame content. Note: "Frames generated from outline beats. Draft the scene for more detailed storyboard frames."
46
+ </scope_selection>
47
+
48
+ ---
49
+
50
+ ### Frame Generation (D-05 Camera Direction)
51
+
52
+ <frame_generation>
53
+ For each frame, generate the following per D-05:
54
+
55
+ **Shot Types** (choose one per frame):
56
+ - `ESTABLISHING` -- Wide shot that sets location/context
57
+ - `WIDE` -- Full scene visible, characters in environment
58
+ - `MEDIUM` -- Character(s) from waist up, conversational distance
59
+ - `CLOSE-UP` -- Face or important object fills frame
60
+ - `EXTREME CLOSE-UP` -- Eyes, hands, small detail
61
+ - `OVER-THE-SHOULDER` -- Dialogue framing, one character's perspective
62
+ - `POV` -- Camera is a character's eyes
63
+ - `AERIAL` -- Bird's-eye view, establishing scale
64
+ - `LOW ANGLE` -- Looking up, conveys power/threat
65
+ - `HIGH ANGLE` -- Looking down, conveys vulnerability/overview
66
+ - `TWO-SHOT` -- Two characters framed together
67
+ - `GROUP` -- Multiple characters in frame
68
+
69
+ **Camera Movement** (choose one per frame):
70
+ - `STATIC` -- Camera does not move
71
+ - `PAN LEFT/RIGHT` -- Horizontal rotation on axis
72
+ - `PAN UP/DOWN` -- Vertical rotation on axis (tilt)
73
+ - `DOLLY IN/OUT` -- Camera physically moves toward/away from subject
74
+ - `DOLLY ALONGSIDE` -- Camera moves parallel to subject movement
75
+ - `ZOOM IN/OUT` -- Lens zoom (different feel from dolly)
76
+ - `CRANE UP/DOWN` -- Vertical camera movement
77
+ - `HANDHELD` -- Shaky, documentary feel
78
+ - `STEADICAM` -- Smooth tracking shot following subject
79
+ - `RACK FOCUS` -- Focus shifts between foreground and background
80
+
81
+ **Transitions** (to the next frame):
82
+ - `CUT` -- Instant change (default, most common)
83
+ - `DISSOLVE` -- Gradual blend to next frame (passage of time)
84
+ - `FADE TO BLACK` -- Scene ending
85
+ - `FADE FROM BLACK` -- Scene beginning
86
+ - `WIPE` -- One image pushes another off screen (stylistic)
87
+ - `MATCH CUT` -- Visual or thematic link between frames (same shape, motion, or concept)
88
+ - `SMASH CUT` -- Abrupt jarring transition for contrast
89
+ - `J-CUT / L-CUT` -- Audio from next/previous scene overlaps
90
+
91
+ **Frame Output Format:**
92
+
93
+ ```
94
+ [FRAME NN] Scene X, Beat Y -- SHOT_TYPE
95
+ Shot: [shot type] | Camera: [movement] | Transition: [to next]
96
+ +---------------------------+
97
+ | |
98
+ | [ASCII COMPOSITION] |
99
+ | |
100
+ | [KEY ELEMENTS LABELED] |
101
+ | |
102
+ +---------------------------+
103
+ Description: [What is in frame -- characters, action, key props, environment]
104
+ Dialogue/VO: [Key line of dialogue or voiceover, if any. "--" if none]
105
+ Duration: [quick (< 2s) | standard (2-5s) | lingering (5-10s) | extended (10s+)]
106
+ Mood/Lighting: [Atmosphere -- e.g., "warm golden hour, long shadows, intimate"]
107
+ ```
108
+
109
+ **ASCII Composition Sketches:**
110
+
111
+ Use simple ASCII art to show spatial relationships:
112
+ - `[CHAR]` or character initials for character positions
113
+ - `[BG]` for background elements
114
+ - `[FG]` for foreground elements
115
+ - `[PROP]` for important objects
116
+ - Horizontal/vertical lines to show depth planes
117
+ - Arrow indicators for movement direction
118
+
119
+ Examples:
120
+
121
+ ```
122
+ Establishing shot:
123
+ +---------------------------+
124
+ | [SKY/HORIZON] |
125
+ | |
126
+ | [BUILDING] [TREE] |
127
+ | [CHAR A] |
128
+ | [FOREGROUND PATH] |
129
+ +---------------------------+
130
+
131
+ Close-up dialogue:
132
+ +---------------------------+
133
+ | |
134
+ | [CHAR A FACE] |
135
+ | eyes: determined |
136
+ | mouth: speaking |
137
+ | |
138
+ +---------------------------+
139
+
140
+ Over-the-shoulder:
141
+ +---------------------------+
142
+ | |
143
+ | [CHAR A [CHAR B] |
144
+ | shoulder/ facing |
145
+ | back of camera] |
146
+ | head] |
147
+ +---------------------------+
148
+ ```
149
+ </frame_generation>
150
+
151
+ ---
152
+
153
+ ### Storyboard Assembly
154
+
155
+ <storyboard_assembly>
156
+ Assemble all frames into a complete storyboard document:
157
+
158
+ ```markdown
159
+ # Storyboard: [Title/Reference]
160
+
161
+ **Work:** [title from config.json]
162
+ **Scope:** [Entire work | Scene: {ref} | Act: {number}]
163
+ **Total frames:** [count]
164
+ **Generated from:** [outline beats | drafted scenes | mix]
165
+
166
+ ## Visual Style Notes
167
+ [From ART-DIRECTION.md if it exists -- key style reminders for visual consistency]
168
+
169
+ ---
170
+
171
+ ## [Scene/Act Header]
172
+
173
+ [FRAME 01] ...
174
+ [FRAME 02] ...
175
+ ...
176
+
177
+ ---
178
+
179
+ ## Shot Distribution Summary
180
+
181
+ | Shot Type | Count | Percentage |
182
+ |-----------|-------|------------|
183
+ | Establishing | N | N% |
184
+ | Wide | N | N% |
185
+ | Medium | N | N% |
186
+ | Close-up | N | N% |
187
+ | ... | | |
188
+
189
+ ## Transition Summary
190
+
191
+ | Transition | Count |
192
+ |------------|-------|
193
+ | Cut | N |
194
+ | Dissolve | N |
195
+ | ... | |
196
+
197
+ ## Pacing Notes
198
+ [Brief analysis of visual pacing -- where the rhythm speeds up (quick cuts) or slows down (lingering shots). Flag any sequences that may feel monotonous (too many similar shots in a row).]
199
+ ```
200
+
201
+ **Frame numbering:** Sequential across the entire storyboard (FRAME 01, FRAME 02, ...) regardless of scene boundaries.
202
+
203
+ **Scene boundaries:** Insert a horizontal rule (`---`) and scene header between scenes.
204
+ </storyboard_assembly>
205
+
206
+ ---
207
+
208
+ ### Output
209
+
210
+ Create the output directory if needed:
211
+ ```bash
212
+ mkdir -p .manuscript/illustrations/storyboards/
213
+ ```
214
+
215
+ Save to `.manuscript/illustrations/storyboards/storyboard-{ref}.md` where `{ref}` is:
216
+ - `full` for entire work
217
+ - Scene reference for `--scene`
218
+ - `act-{number}` for `--act`
219
+
220
+ Commit: `storyboard: generate frames for {ref}`
221
+
222
+ After saving, tell the writer:
223
+ > Storyboard saved to `.manuscript/illustrations/storyboards/storyboard-{ref}.md`.
224
+ >
225
+ > Each frame includes shot type, camera direction, and ASCII composition.
226
+ > Use this as a shot list for production or as illustration direction.
227
+ >
228
+ > For more detail on a specific scene: `/scr:storyboard --scene {ref}`
229
+
230
+ ---
231
+
232
+ ### Edge Cases
233
+
234
+ - **No drafted scenes:** Generate frames from OUTLINE.md beat descriptions. Note reduced detail level.
235
+ - **No OUTLINE.md:** Cannot generate storyboard -- "Create an outline first with `/scr:plan`."
236
+ - **Very long work (50+ scenes):** For full-work overview, limit to 1 frame per scene with thumbnail-level detail. Suggest `--act` for more detail.
237
+ - **Scene with no action:** Focus on atmosphere, environment, and character positioning. Use static/lingering frames.
238
+ - **Musical/song sequences:** Use duration notes extensively, mark rhythm changes.
239
+ - **ART-DIRECTION.md missing:** Generate storyboard without visual style notes. Suggest: "Run `/scr:art-direction` for visual consistency across storyboard frames."
240
+
241
+ ## Response Contract
242
+
243
+ 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.
244
+
245
+ Use this format:
246
+
247
+ ```markdown
248
+ Next commands:
249
+ - `/scr:...`: One short sentence explaining what this path will do.
250
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
251
+ ```
252
+
253
+ 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.
254
+
255
+ If the writer seems unsure or no specific next command is obvious, include this default option:
256
+
257
+ ```markdown
258
+ Next commands:
259
+ - `/scr:next`: Inspect the project state and choose the right next step.
260
+ ```
261
+
262
+ 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,168 @@
1
+ ---
2
+ description: Update an evolving subject, idea, claim, procedure, doctrine, object, image pattern, or reader-state thread after a unit lands.
3
+ argument-hint: "<subject> [--from <unit>]"
4
+ ---
5
+
6
+ # /scr:subject-touch -- Update Subject Movement
7
+
8
+ Subject files are living documents. THEMES.md, QUESTIONS.md, REFERENCES.md, DOCTRINES.md, PROCEDURES.md, and related adapted files record what the work is making the reader understand, feel, notice, believe, test, or do. Without periodic touch-ups, a theme, claim, object, procedure, doctrine, or reader promise can freeze in its early form while the manuscript has already changed its meaning.
9
+
10
+ This command is the touch-up surface for non-character movement. Use it after `/scr:draft` or `/scr:editor-review`, especially when a unit changes the meaning of an object, develops an argument, resolves a misconception, alters the reader's ability, changes a doctrine's practical emphasis, or makes a procedure safer or clearer.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /scr:subject-touch <subject> # interactive update
16
+ /scr:subject-touch <subject> --from <unit> # base the update on a specific unit's drafted prose
17
+ ```
18
+
19
+ If `<subject>` is omitted, list tracked subjects from the adapted subject files and ask which to update.
20
+
21
+ ## Instruction
22
+
23
+ ### STEP 0: BOOTSTRAP
24
+
25
+ Read `.manuscript/CONTEXT.md` first if it exists. If its `Updated` timestamp is newer than `.manuscript/STATE.md` and newer than the newest file in `.manuscript/drafts/body/`, use it for orientation (project title, work type, current unit, recent activity). Step 1 still needs the full subject files because you may edit one. See `docs/context-protocol.md`.
26
+
27
+ ### STEP 1: LOAD CONTEXT
28
+
29
+ Load these project files:
30
+
31
+ - `.manuscript/config.json` -- to determine work type and file adaptations
32
+ - Scriveno's installed/shared `CONSTRAINTS.json` -- to map adapted subject files
33
+ - `.manuscript/WORK.md` and `.manuscript/BRIEF.md` or adapted equivalent -- reader promise and reader journey
34
+ - The adapted subject files that exist:
35
+ - `.manuscript/THEMES.md` or `.manuscript/QUESTIONS.md`, `.manuscript/REFERENCES.md`, or `.manuscript/DOCTRINES.md`
36
+ - `.manuscript/PLOT-GRAPH.md`, `.manuscript/ARGUMENT-MAP.md`, `.manuscript/PROCEDURES.md`, or `.manuscript/THEOLOGICAL-ARC.md`
37
+ - `.manuscript/WORLD.md`, `.manuscript/CONTEXT.md`, `.manuscript/SYSTEM.md`, or `.manuscript/COSMOLOGY.md` when the subject is a place, system, setting pressure, or operating context
38
+ - `.manuscript/STATE.md` -- to know which units have been drafted
39
+ - The drafted unit file for the touch-up basis: `.manuscript/drafts/body/{N}-*-DRAFT.md` either for the unit named in `--from` or, if `--from` is omitted, the most recently modified draft file
40
+
41
+ ### STEP 2: RESOLVE THE SUBJECT
42
+
43
+ If the writer named a subject, find the closest matching heading or table row across the adapted subject files. Search case-insensitively across headings, theme names, research questions, doctrine names, procedure names, reference topics, object names, place names, and image patterns.
44
+
45
+ If no match is found, suggest the closest subjects and ask whether to create a new entry. Do not create a new subject without writer approval.
46
+
47
+ If the writer did not name a subject, list tracked subjects grouped by source file and ask which one to update.
48
+
49
+ ### STEP 3: PROPOSE A DELTA
50
+
51
+ Read the basis draft file from STEP 1. Identify how the subject changed in this unit. Cover these dimensions; skip any that did not change:
52
+
53
+ 1. **Reader state** -- what the reader understands, feels, notices, can do, or can verify now
54
+ 2. **Pressure or friction** -- misconception, counterclaim, risk, ambiguity, failure mode, constraint, grief, uncertainty, or practical obstacle
55
+ 3. **Interaction pattern** -- claim vs. counterclaim, rule vs. exception, step vs. failure mode, doctrine vs. practice, evidence vs. objection, object vs. meaning, place vs. memory, image vs. theme
56
+ 4. **Evidence or example** -- new proof, reference, scene evidence, procedure evidence, or concrete example now available
57
+ 5. **Watchpoint** -- what the next plan, draft, or review should preserve or test
58
+
59
+ Present the proposed delta to the writer in this exact format:
60
+
61
+ ```
62
+ Subject: <subject>
63
+ Basis: <unit name from draft filename>
64
+ Source file: <file to update>
65
+
66
+ Proposed updates:
67
+
68
+ Reader state
69
+ was: <current text or inferred prior state>
70
+ now: <proposed new text>
71
+
72
+ Pressure or friction
73
+ + <new or sharpened pressure>
74
+
75
+ Interaction pattern
76
+ <pattern>: <new state>
77
+
78
+ Evidence or example
79
+ + <new evidence, example, citation, procedure checkpoint, image, or scene evidence>
80
+
81
+ Watchpoint
82
+ + <thing to preserve or test later>
83
+
84
+ Apply these updates? (yes / no / edit)
85
+ ```
86
+
87
+ If the writer accepts (`yes`), proceed to STEP 4. If `edit`, ask which dimension to revise and re-prompt. If `no`, exit with no changes and no log entry.
88
+
89
+ ### STEP 4: APPLY THE DELTA
90
+
91
+ Update the relevant adapted subject file while preserving formatting:
92
+
93
+ - For `THEMES.md`, update the matching theme or subject-dynamics entry.
94
+ - For `QUESTIONS.md`, update the matching research question, claim, evidence gap, or reader-state note.
95
+ - For `REFERENCES.md`, update source-of-truth, evidence, version, failure-mode, or verification notes.
96
+ - For `DOCTRINES.md`, update practical emphasis, doctrinal pressure, interpretive watchpoints, or source evidence.
97
+ - For `PROCEDURES.md`, update validation, rollback, failure mode, prerequisite, or subject dynamics notes.
98
+ - For `ARGUMENT-MAP.md`, update claim, counterclaim, evidence, transition, or unresolved question notes.
99
+ - For setting, system, object, or place subjects, update the adapted context file that already owns the subject.
100
+
101
+ Create a `### Subject dynamics` subsection under the matching entry if the file has no obvious place for reader state, pressure, interaction pattern, evidence, or watchpoints.
102
+
103
+ **Do not touch:**
104
+
105
+ - STYLE-GUIDE.md or voice rules
106
+ - Draft prose
107
+ - Character voice anchors or character state, unless the writer explicitly asked for `/scr:character-touch`
108
+ - Source citations in a way that invents support not present in the draft or source files
109
+ - Technical safety instructions without preserving validation and rollback context
110
+
111
+ ### STEP 5: STAMP THE UPDATE
112
+
113
+ Add or replace a one-line marker under the updated subject entry:
114
+
115
+ ```
116
+ _Last touched: {ISO timestamp} -- after drafting <unit name>_
117
+ ```
118
+
119
+ ### STEP 6: HISTORY LOG
120
+
121
+ Append one line to `.manuscript/HISTORY.log` per `docs/history-protocol.md`:
122
+
123
+ ```
124
+ {ISO timestamp} | scr:subject-touch | subject=<subject> | basis=<unit name> | file=<updated file> | dimensions=<comma-separated list of changed dimensions> | outcome=ok
125
+ ```
126
+
127
+ If the writer chose `no` and exited with no changes, do not append a line.
128
+
129
+ ### STEP 7: SUGGEST NEXT
130
+
131
+ End with a one-line suggestion:
132
+
133
+ > Updated <subject>. Future plans and drafts will read the revised subject movement. Consider `/scr:editor-review <unit>` if the change came from a fresh draft.
134
+
135
+ ## Edge Cases
136
+
137
+ - **Character and subject both shifted:** Suggest `/scr:character-touch <name>` after this command if the character state also changed.
138
+ - **Subject is a person:** If the requested subject is clearly a character or figure, route to `/scr:character-touch` instead.
139
+ - **Academic evidence changed:** Do not strengthen a claim beyond its cited support. Mark unsupported movement as a watchpoint or question.
140
+ - **Technical procedure changed:** Preserve safety, validation, and rollback. If the draft implies unsafe guidance, mark a blocking question instead of updating the procedure as if it were approved.
141
+ - **Sacred doctrine changed:** Preserve the project's framework and source-tracking rules. If the draft creates a doctrinal tension, record it as a watchpoint or blocking question rather than smoothing it away.
142
+
143
+ ## Response Contract
144
+
145
+ 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.
146
+
147
+ Use this format:
148
+
149
+ ```markdown
150
+ Next commands:
151
+ - `/scr:...`: One short sentence explaining what this path will do.
152
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
153
+ ```
154
+
155
+ 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.
156
+
157
+ If the writer seems unsure or no specific next command is obvious, include this default option:
158
+
159
+ ```markdown
160
+ Next commands:
161
+ - `/scr:next`: Inspect the project state and choose the right next step.
162
+ ```
163
+
164
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
165
+
166
+ ## Tone
167
+
168
+ Brisk and editorial. Surface the proposed delta, get a yes / no / edit answer, apply, get out. The writer remains the authority on what the work means.
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Package and finalize a unit after editor review.
3
+ argument-hint: "[unit number]"
4
+ ---
5
+
6
+ # Submit {unit}
7
+
8
+ You are finalizing a unit after editor review.
9
+
10
+ ## Adaptive naming
11
+
12
+ Load `.manuscript/config.json` for `command_unit`. The runnable command stays `/scr:submit`; adapt the unit terminology in prompts and summaries.
13
+
14
+ ## Prerequisites
15
+
16
+ - Review report must exist at `.manuscript/reviews/{N}-REVIEW.md`. For older projects, root-level `{N}-EDITOR-NOTES.md` also counts as a legacy review artifact.
17
+
18
+ ## What to do
19
+
20
+ 1. Load `.manuscript/config.json` for project context
21
+ 2. Check that the specified unit has been through editor review. Prefer `.manuscript/reviews/{N}-REVIEW.md`; if it is missing, accept legacy `{N}-EDITOR-NOTES.md`.
22
+ 3. Mark the unit as submitted in `STATE.md`
23
+ 4. Report: "Unit {N} submitted. {remaining} units remaining."
24
+
25
+ ## Response Contract
26
+
27
+ 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.
28
+
29
+ Use this format:
30
+
31
+ ```markdown
32
+ Next commands:
33
+ - `/scr:...`: One short sentence explaining what this path will do.
34
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
35
+ ```
36
+
37
+ 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.
38
+
39
+ If the writer seems unsure or no specific next command is obvious, include this default option:
40
+
41
+ ```markdown
42
+ Next commands:
43
+ - `/scr:next`: Inspect the project state and choose the right next step.
44
+ ```
45
+
46
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
47
+
48
+ ## Tone
49
+
50
+ Brief and confirmational. The writer has already done the hard work.