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,108 @@
1
+ ---
2
+ description: Visualize a character's emotional and growth arc across the story.
3
+ argument-hint: "[name]"
4
+ ---
5
+
6
+ # /scr:character-arc -- Character Arc Visualization
7
+
8
+ Visualize a character's emotional and growth arc aligned with story structure beats.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:character-arc <name>
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are visualizing a character's arc. 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 `file_adaptations` and `commands.character-arc.adapted`)
20
+ - The adapted characters file (CHARACTERS.md / FIGURES.md / CONCEPTS.md per `file_adaptations`)
21
+ - `PLOT-GRAPH.md` (story arc structure -- cross-reference per D-03)
22
+ - `OUTLINE.md` (scene/chapter mapping)
23
+
24
+ Determine adapted terminology from CONSTRAINTS.json:
25
+ - Default: "character arc"
26
+ - Sacred: "figure arc" (renamed via CONSTRAINTS.json)
27
+
28
+ ---
29
+
30
+ ### ARC VISUALIZATION
31
+
32
+ <character_arc_display>
33
+ Find the character by name (case-insensitive match).
34
+
35
+ Read the character's arc data:
36
+ - Starting state (emotional/spiritual beginning)
37
+ - Arc type (Change, Growth, Fall, Steadfast, Flat/Catalytic)
38
+ - Turning points
39
+ - Ending state
40
+
41
+ **Cross-reference with PLOT-GRAPH.md (D-03):**
42
+ Map the character's transformation moments to story structure beats:
43
+
44
+ ```
45
+ STORY BEAT | CHARACTER STATE | EMOTIONAL LEVEL
46
+ ========================|========================|================
47
+ Status Quo | {starting state} | -----*---------
48
+ Inciting Incident | {reaction/response} | --------*------
49
+ First Plot Point | {commitment/refusal} | ----------*----
50
+ Rising Action | {struggle/growth} | -----------*---
51
+ Midpoint | {mirror moment} | ------*--------
52
+ All Is Lost | {lowest point} | --*------------
53
+ Climax | {transformation} | -------------*-
54
+ Resolution | {ending state} | ----------*----
55
+ ```
56
+
57
+ For each story beat from PLOT-GRAPH.md:
58
+ 1. Show the beat name and its position in the arc
59
+ 2. Describe the character's emotional/psychological state at that point
60
+ 3. Note if this beat corresponds to a character turning point
61
+ 4. Show emotional trajectory direction (ascending, descending, steady, shift)
62
+
63
+ **Arc Summary:**
64
+ - Arc type: {type}
65
+ - Total turning points: {N}
66
+ - Key transformation moment: {which beat triggers the main change}
67
+ - Theme connection: {which thematic thread this arc serves}
68
+
69
+ If PLOT-GRAPH.md is missing or empty:
70
+ - Show the character's arc data standalone (start -> turning points -> end)
71
+ - Note: "Run `/scr:plot-graph` to create the story arc, then re-run this command to see how {name}'s arc aligns with story beats."
72
+
73
+ If the character has no arc data:
74
+ - "No arc defined for {name}. Run `/scr:character-sheet {name} --edit` to add arc information."
75
+ </character_arc_display>
76
+
77
+ ---
78
+
79
+ ### Edge Cases
80
+
81
+ - **Character not found:** Show partial matches or direct to cast-list
82
+ - **PLOT-GRAPH.md missing:** Show character arc standalone with note to create plot graph
83
+ - **Character has Flat/Catalytic arc:** Show how they affect other characters' arcs instead of personal transformation
84
+ - **Multiple POV characters:** Show only the requested character; suggest running for each POV
85
+ - **Sacred work type:** Align with theological arc positions instead of standard story beats
86
+
87
+ ## Response Contract
88
+
89
+ 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.
90
+
91
+ Use this format:
92
+
93
+ ```markdown
94
+ Next commands:
95
+ - `/scr:...`: One short sentence explaining what this path will do.
96
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
97
+ ```
98
+
99
+ 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.
100
+
101
+ If the writer seems unsure or no specific next command is obvious, include this default option:
102
+
103
+ ```markdown
104
+ Next commands:
105
+ - `/scr:next`: Inspect the project state and choose the right next step.
106
+ ```
107
+
108
+ 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,160 @@
1
+ ---
2
+ description: Generate a character visual reference sheet prompt for illustration consistency.
3
+ argument-hint: "<name> [--style <style>]"
4
+ ---
5
+
6
+ # /scr:character-ref -- Character Visual Reference Sheet
7
+
8
+ Generate a structured visual reference sheet prompt for a character, suitable for AI image generation or illustrator briefs.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:character-ref <name> [--style <style>]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating a character visual reference sheet prompt. 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.character-ref`, `file_adaptations`, and `adapted`)
20
+ - `ART-DIRECTION.md` from `.manuscript/` if it exists (for style consistency)
21
+
22
+ ### Work Type Adaptation
23
+
24
+ Check CONSTRAINTS.json for work type availability:
25
+ - **Available:** prose, script, visual, interactive
26
+ - **Sacred:** Adapted to `figure-ref` (rename via `commands.character-ref.adapted.sacred.rename`)
27
+ - **Hidden:** academic, poetry, speech_song
28
+
29
+ If the current work type is hidden, respond:
30
+ *"The `character-ref` command is designed for illustrated works. Your {work_type} project uses different visual tools."*
31
+
32
+ If sacred work type, use "figure-ref" terminology throughout and adapt language accordingly (e.g., "figure reference sheet" not "character reference sheet").
33
+
34
+ ### Load Character Data
35
+
36
+ Determine the correct characters file from `file_adaptations`:
37
+ - Default: `.manuscript/CHARACTERS.md`
38
+ - Sacred: `.manuscript/FIGURES.md`
39
+ - Academic: `.manuscript/CONCEPTS.md` (though academic is hidden, handle gracefully)
40
+
41
+ Load the adapted characters file.
42
+
43
+ Find the character by name (case-insensitive match, same pattern as character-sheet.md):
44
+ - If no exact match: check for partial matches and list them
45
+ - If no matches at all: "No character named '{name}' found. Run `/scr:cast-list` to see all characters."
46
+ - If characters file is empty or missing: "No characters found. Run `/scr:new-character <name>` to create your first character."
47
+
48
+ ### Extract Visual Details
49
+
50
+ From the character's profile, extract:
51
+ - **Physical appearance:** Height, build, skin tone, hair color/style, eye color, age appearance
52
+ - **Distinguishing features:** Scars, tattoos, birthmarks, unusual traits, physical quirks
53
+ - **Clothing:** Default outfit, armor, uniform, accessories -- whatever is described
54
+ - **Props/Items:** Weapons, tools, jewelry, personal items associated with this character
55
+ - **Emotional range:** Key emotional states mentioned in the character's psychology section (want, need, fear, arc)
56
+ - **Body language:** Physical mannerisms tied to personality (posture, gait, gestures)
57
+
58
+ ### Generate Structured Prompt
59
+
60
+ Output a structured illustration prompt following the D-01 format:
61
+
62
+ ```markdown
63
+ # Character Visual Reference Sheet: {Character Name}
64
+
65
+ ## Subject
66
+ {Full physical description in illustrator-ready language. Height, build, coloring, age appearance, distinguishing features. Be specific: "tall and lean, approximately 6'2", with deep brown skin, close-cropped silver hair, and a jagged scar running from left temple to jaw" -- not "a tall man with a scar."}
67
+
68
+ ## Poses
69
+ - **Front view:** Full body, neutral standing pose, arms relaxed at sides
70
+ - **3/4 view:** Slight turn showing depth and dimension of features
71
+ - **Profile view:** Left or right profile highlighting facial structure
72
+ - **Action pose:** {Character-appropriate action -- swordfighter in guard stance, scholar leaning over desk, etc.}
73
+
74
+ ## Expressions
75
+ {Key emotional states derived from the character's arc and psychology}
76
+ - {Expression 1}: {Description of facial expression and body language}
77
+ - {Expression 2}: {Description}
78
+ - {Expression 3}: {Description}
79
+ {Typically 3-5 expressions: the character's default state, their emotional extreme, and states relevant to their arc}
80
+
81
+ ## Clothing & Attire
82
+ - **Default outfit:** {Primary clothing described in detail -- fabrics, colors, fit, condition}
83
+ - **Alternate outfit:** {If the character has described alternate clothing for different contexts}
84
+ - **Accessories:** {Jewelry, belts, pouches, headwear, etc.}
85
+
86
+ ## Props & Items
87
+ {Items associated with this character}
88
+ - {Item 1}: {Visual description -- material, size, condition, how they carry/hold it}
89
+ - {Item 2}: {Description}
90
+
91
+ ## Style
92
+ {If ART-DIRECTION.md exists, reference its established visual style. Otherwise, derive from genre:}
93
+ - Fantasy: detailed linework, rich color palette, painterly or concept art style
94
+ - Literary fiction: realistic, muted palette, photographic reference quality
95
+ - Sci-fi: clean lines, high contrast, concept art style
96
+ - Children's: warm, rounded forms, bright palette, storybook illustration style
97
+ - Sacred: reverent, iconographic traditions appropriate to the tradition
98
+ {If --style flag provided, use that style instead}
99
+
100
+ ## Color Palette
101
+ - **Skin:** {specific tone}
102
+ - **Hair:** {specific color}
103
+ - **Eyes:** {specific color}
104
+ - **Primary clothing color:** {color}
105
+ - **Accent colors:** {secondary colors from outfit/accessories}
106
+
107
+ ## Technical Specs
108
+ - **Dimensions:** 2400 x 3200 px (character sheet format)
109
+ - **Resolution:** 300 DPI (print-ready)
110
+ - **Background:** Neutral gray (#808080) or transparent for compositing
111
+ - **Format:** Reference sheet layout with multiple views on single page
112
+ ```
113
+
114
+ ### Save Output
115
+
116
+ Save the generated prompt to:
117
+ `.manuscript/illustrations/character-refs/{character-name}-ref.md`
118
+
119
+ Where `{character-name}` is the lowercase, hyphenated version of the character's name (e.g., "Elena Vasquez" becomes "elena-vasquez").
120
+
121
+ Create the directory path if it does not exist.
122
+
123
+ Commit: `illustration: generate {character-name} visual reference sheet`
124
+
125
+ After saving, suggest:
126
+ - "Reference sheet prompt saved. Use this with any AI image tool or share with your illustrator."
127
+ - "For style consistency across all illustrations, run `/scr:art-direction` first."
128
+
129
+ ---
130
+
131
+ ### Edge Cases
132
+
133
+ - **Character has minimal physical description:** Generate the prompt with what exists, mark gaps with `{NEEDS DETAIL: describe height/build/etc.}` placeholders, and suggest the writer flesh out the character's appearance in their profile
134
+ - **Multiple characters with similar names:** List matches and ask the writer to specify
135
+ - **Sacred work type:** Use "figure-ref" command name and terminology; reference sheet language should be respectful and tradition-appropriate (avoid casual phrasing)
136
+ - **ART-DIRECTION.md exists:** Style section MUST reference it for consistency; override genre defaults with art direction choices
137
+ - **--style flag provided:** Use the specified style, note if it conflicts with ART-DIRECTION.md
138
+
139
+ ## Response Contract
140
+
141
+ 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.
142
+
143
+ Use this format:
144
+
145
+ ```markdown
146
+ Next commands:
147
+ - `/scr:...`: One short sentence explaining what this path will do.
148
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
149
+ ```
150
+
151
+ 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.
152
+
153
+ If the writer seems unsure or no specific next command is obvious, include this default option:
154
+
155
+ ```markdown
156
+ Next commands:
157
+ - `/scr:next`: Inspect the project state and choose the right next step.
158
+ ```
159
+
160
+ 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,143 @@
1
+ ---
2
+ description: Display or edit a specific character's full profile.
3
+ argument-hint: "[name] [--edit]"
4
+ ---
5
+
6
+ # /scr:character-sheet -- View or Edit Character Profile
7
+
8
+ Display or edit a specific character's complete profile.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:character-sheet <name> [--edit]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are presenting a character's profile. 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 `file_adaptations` and `commands.character-sheet.adapted`)
20
+ - `STYLE-GUIDE.md` (voice dimension context)
21
+
22
+ Determine the correct characters file from `file_adaptations`:
23
+ - Default: `CHARACTERS.md`
24
+ - Academic work types: `CONCEPTS.md`
25
+ - Sacred work types: `FIGURES.md`
26
+
27
+ Load the adapted characters file from `.manuscript/`.
28
+
29
+ Determine adapted terminology from CONSTRAINTS.json:
30
+ - Default: "character", "character sheet"
31
+ - Sacred: "figure", "figure sheet"
32
+ - Academic: "concept", "concept sheet"
33
+
34
+ ---
35
+
36
+ ### DISPLAY MODE (default)
37
+
38
+ <character_sheet_display>
39
+ Find the character by name (case-insensitive match).
40
+
41
+ If no exact match found:
42
+ - Check for partial matches and list them: "Did you mean: [match1], [match2]?"
43
+ - If no partial matches: "No character named '{name}' found. Run `/scr:cast-list` to see all characters."
44
+
45
+ If the characters file is empty or missing:
46
+ - "No characters found. Run `/scr:new-character <name>` to create your first character."
47
+
48
+ Present the complete profile with all sections:
49
+
50
+ **Identity**
51
+ - Name, age, role, first impression, background
52
+
53
+ **Psychology**
54
+ - Want (conscious desire)
55
+ - Need (unconscious need)
56
+ - Lie (false belief)
57
+ - Ghost (formative backstory event)
58
+ - Fear (greatest fear)
59
+
60
+ **Arc**
61
+ - Starting state, turning point, ending state, arc type
62
+
63
+ **Voice Anchor (D-01)**
64
+ Highlight these 5-8 concrete attributes prominently:
65
+ 1. Speech patterns (how they construct sentences)
66
+ 2. Vocabulary register (formal, casual, slang, technical)
67
+ 3. Sentence length tendency (short/punchy, long/flowing, mixed)
68
+ 4. Verbal tics (repeated words, filler phrases, catchphrases)
69
+ 5. Internal monologue style (if POV character)
70
+ 6. Avoidances (words or topics they never use)
71
+ 7. Emotional expression style (direct, deflecting, metaphorical)
72
+ 8. Physical mannerisms tied to speech (gestures, pauses)
73
+
74
+ **5-Line Dialogue Sample**
75
+ - Show the voice anchor sample if it exists
76
+
77
+ **Persona Under Pressure**
78
+ - How the character behaves when afraid, angry, lying, avoiding truth, or vulnerable
79
+ - Physical tells that reveal pressure before the character admits anything
80
+
81
+ **Thematic Function**
82
+ - Themes embodied, narrative purpose
83
+
84
+ **Key Relationships**
85
+ - Each relationship with dynamic and tension
86
+
87
+ **Relationship-Specific Interactions**
88
+ - How this character changes with each important person: trust posture, conflict pattern, speech shift, hidden agenda or fear
89
+ </character_sheet_display>
90
+
91
+ ---
92
+
93
+ ### EDIT MODE (--edit)
94
+
95
+ <character_sheet_edit>
96
+ Find the character by name (same matching logic as display mode).
97
+
98
+ Walk through each section interactively:
99
+ 1. Show the current value for each field
100
+ 2. Ask: "Keep, change, or skip?"
101
+ 3. If "change": accept the new value
102
+ 4. Move to the next field
103
+
104
+ After all sections reviewed:
105
+ - Show a summary of changes
106
+ - Ask for confirmation
107
+ - Update the characters file
108
+ - If voice anchor attributes changed, note that drafter agents will use the updated profile
109
+
110
+ Commit: `character: update {name} profile`
111
+ </character_sheet_edit>
112
+
113
+ ---
114
+
115
+ ### Edge Cases
116
+
117
+ - **Character not found:** Show partial matches or direct to cast-list
118
+ - **Multiple partial matches:** List all matches and ask writer to specify
119
+ - **Empty characters file:** Direct to new-character command
120
+ - **No voice anchor data:** Warn that voice consistency may suffer and suggest running `/scr:character-voice-sample` to generate one
121
+
122
+ ## Response Contract
123
+
124
+ 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.
125
+
126
+ Use this format:
127
+
128
+ ```markdown
129
+ Next commands:
130
+ - `/scr:...`: One short sentence explaining what this path will do.
131
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
132
+ ```
133
+
134
+ 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.
135
+
136
+ If the writer seems unsure or no specific next command is obvious, include this default option:
137
+
138
+ ```markdown
139
+ Next commands:
140
+ - `/scr:next`: Inspect the project state and choose the right next step.
141
+ ```
142
+
143
+ 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,157 @@
1
+ ---
2
+ description: Update a character's evolving state (emotional position, knowledge, possessions, relationships) after a unit lands.
3
+ argument-hint: "<name> [--from <unit>]"
4
+ ---
5
+
6
+ # /scr:character-touch -- Update Character State
7
+
8
+ CHARACTERS.md (and FIGURES.md for sacred works) is a living document. Voice anchors and physical descriptions stay stable; emotional position, knowledge, possessions, and relationships move as the story unfolds. Without periodic touch-ups, the file freezes at character-creation time and the drafter ends up reading a stale "current emotional state" two-thirds of the way through the manuscript.
9
+
10
+ This command is the touch-up surface. Use it after `/scr:draft` (especially when the drafter emits a CHARACTER STATE NUDGE), or any time you've written prose that visibly shifts a character.
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /scr:character-touch <name> # interactive update
16
+ /scr:character-touch <name> --from <unit> # base the update on a specific unit's drafted prose
17
+ ```
18
+
19
+ If `<name>` is omitted, list all characters from CHARACTERS.md and ask which to update.
20
+
21
+ ## Instruction
22
+
23
+ ### STEP 0: BOOTSTRAP (context-cost protocol)
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 CHARACTERS.md (you will be editing it). See `docs/context-protocol.md` for the contract.
26
+
27
+ ### STEP 1: LOAD CONTEXT
28
+
29
+ Load these project files:
30
+
31
+ - `.manuscript/config.json` -- to determine work type (CHARACTERS.md vs FIGURES.md naming)
32
+ - `.manuscript/CHARACTERS.md` (or `FIGURES.md` for sacred works) -- the file you will update
33
+ - `.manuscript/STATE.md` -- to know which units have been drafted
34
+ - 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 (the unit whose state shift is most likely fresh in the writer's mind)
35
+
36
+ ### STEP 2: RESOLVE THE CHARACTER
37
+
38
+ If the writer named a character, find their entry in CHARACTERS.md by case-insensitive name match. If no match, suggest the closest names from the file and stop.
39
+
40
+ If the writer did not name a character, list every character from CHARACTERS.md (one per line, with their voice anchor as a hint) and ask which to update.
41
+
42
+ ### STEP 3: PROPOSE A DELTA
43
+
44
+ Read the basis draft file (from STEP 1). Identify what about this character has visibly shifted in this unit. Cover four dimensions; skip any that did not change:
45
+
46
+ 1. **Emotional position** -- where they are now vs where the file says they were (e.g. "from grieving to numb-determined")
47
+ 2. **Knowledge** -- what they learned this unit that they did not know before (or, less commonly, what they have forgotten or been deceived into believing)
48
+ 3. **Possessions** -- objects gained, lost, given, taken (e.g. "now carries the letter; left the coat behind")
49
+ 4. **Relationships** -- with whom, how shifted (e.g. "trust with Marcus broken; new alliance with Sarah forming")
50
+ 5. **Relationship-specific interaction** -- whether this unit changed how the character behaves with another person (speech shift, trust posture, conflict pattern, hidden agenda or fear)
51
+
52
+ Present the proposed delta to the writer in this exact format:
53
+
54
+ ```
55
+ Character: <name>
56
+ Basis: <unit name from draft filename>
57
+
58
+ Proposed updates to <NAME>'s entry in CHARACTERS.md:
59
+
60
+ Emotional position
61
+ was: <current text from CHARACTERS.md>
62
+ now: <proposed new text>
63
+
64
+ Knowledge gained
65
+ + <new knowledge bullet>
66
+ + <new knowledge bullet>
67
+
68
+ Possessions
69
+ + <gained>
70
+ - <lost or given>
71
+
72
+ Relationships
73
+ <other character>: <new state>
74
+
75
+ Relationship-specific interaction
76
+ <other character>: <new trust posture, conflict pattern, speech shift, hidden agenda or fear>
77
+
78
+ Apply these updates? (yes / no / edit)
79
+ ```
80
+
81
+ 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.
82
+
83
+ ### STEP 4: APPLY THE DELTA
84
+
85
+ Update the character's entry in `.manuscript/CHARACTERS.md` (or `FIGURES.md`):
86
+
87
+ - **Replace** the existing "Emotional position" / "Current emotional state" line with the new value. If the entry has no such line, add it under the section the writer's character template uses for evolving state (look for "Current state", "Arc state", or just append to the end of the entry).
88
+ - **Append** new knowledge bullets under a "Knowledge" subsection (create the subsection if absent).
89
+ - **Append** possession changes under a "Possessions" subsection (create the subsection if absent), with `+` for gained and `-` for lost.
90
+ - **Update or append** relationship lines under a "Relationships" subsection (create the subsection if absent).
91
+ - **Update or append** pairwise behavior under a "Relationship-specific interactions" subsection (create the subsection if absent).
92
+
93
+ **Do not touch:**
94
+ - The character's voice anchor (this is identity, not state -- voice changes are a separate craft decision and need a different command)
95
+ - Their physical description (height, eye color, distinguishing features -- those are stable unless the prose explicitly changed them, in which case treat as a Knowledge or Possession entry: "lost left arm in chapter 12")
96
+ - Their name, age-at-introduction, or backstory section
97
+
98
+ Preserve the file's existing formatting and section order.
99
+
100
+ ### STEP 5: STAMP THE UPDATE
101
+
102
+ Add a one-line "Last touched" marker under the character's entry:
103
+
104
+ ```
105
+ _Last touched: {ISO timestamp} -- after drafting <unit name>_
106
+ ```
107
+
108
+ If a Last-touched line already exists, replace it.
109
+
110
+ ### STEP 6: HISTORY LOG
111
+
112
+ Append one line to `.manuscript/HISTORY.log` per `docs/history-protocol.md`:
113
+
114
+ ```
115
+ {ISO timestamp} | scr:character-touch | character=<name> | basis=<unit name> | dimensions=<comma-separated list of changed dimensions> | outcome=ok
116
+ ```
117
+
118
+ If the writer chose `no` and exited with no changes, do not append a line. Touch-ups that go nowhere are not state events.
119
+
120
+ ### STEP 7: SUGGEST NEXT
121
+
122
+ End with a one-line suggestion:
123
+
124
+ > Updated <name>. The next `/scr:draft` invocation will read the new state. Consider running `/scr:scan` if multiple characters drifted in this unit.
125
+
126
+ ## Response Contract
127
+
128
+ 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.
129
+
130
+ Use this format:
131
+
132
+ ```markdown
133
+ Next commands:
134
+ - `/scr:...`: One short sentence explaining what this path will do.
135
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
136
+ ```
137
+
138
+ 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.
139
+
140
+ If the writer seems unsure or no specific next command is obvious, include this default option:
141
+
142
+ ```markdown
143
+ Next commands:
144
+ - `/scr:next`: Inspect the project state and choose the right next step.
145
+ ```
146
+
147
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
148
+
149
+ ## Tone
150
+
151
+ Brisk and editorial. The writer just finished a draft; they're in flow. Surface the proposed delta, get a yes / no / edit answer, apply, get out. Do not narrate. Do not ask follow-up questions beyond the delta confirmation.
152
+
153
+ ## What this command is not
154
+
155
+ - **Not a re-write of the character's profile.** Use `/scr:new-character` to start fresh, `/scr:character-sheet <name>` to view, this command to update evolving state.
156
+ - **Not an arc analysis.** Use `/scr:character-arc <name>` to see the trajectory across units.
157
+ - **Not automatic.** This command exists because automatic state updates risk silently overwriting the writer's intentional choices. The writer is always in the loop on a character's state.
@@ -0,0 +1,111 @@
1
+ ---
2
+ description: Generate a dialogue sample to preview a character's voice before drafting.
3
+ argument-hint: "[name]"
4
+ ---
5
+
6
+ # /scr:character-voice-sample -- Preview Character Voice
7
+
8
+ Generate a dialogue sample to preview how a character sounds before drafting scenes with them.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:character-voice-sample <name>
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating a voice sample for a character. 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 `file_adaptations`, `commands.character-voice-sample.adapted`, and `feature_prerequisites`)
20
+ - `STYLE-GUIDE.md` (writer's voice dimensions -- the sample must feel like this writer's prose)
21
+
22
+ Determine the correct characters file from `file_adaptations`:
23
+ - Default: `CHARACTERS.md`
24
+ - Academic work types: `CONCEPTS.md`
25
+ - Sacred work types: `FIGURES.md`
26
+
27
+ Load the adapted characters file from `.manuscript/`.
28
+
29
+ **Prerequisites check** (from CONSTRAINTS.json `feature_prerequisites`):
30
+ - The characters file must exist with at least one character entry
31
+ - `STYLE-GUIDE.md` must exist
32
+ - If either is missing: "This command requires {missing_file}. Run {generator_command} first."
33
+
34
+ Determine adapted terminology:
35
+ - Default: "character voice sample"
36
+ - Sacred: "register sample" (renamed via CONSTRAINTS.json)
37
+ - Academic: "concept voice" (adapted tone)
38
+
39
+ ---
40
+
41
+ ### GENERATE VOICE SAMPLE
42
+
43
+ <voice_sample_generation>
44
+ Find the character by name (case-insensitive match).
45
+
46
+ Read the character's existing profile, focusing on:
47
+ - Voice anchor attributes (speech patterns, vocabulary register, sentence length, verbal tics, internal monologue style)
48
+ - Speech patterns section (register, tics, vocabulary, sentence length, avoidances)
49
+ - Persona under pressure (how fear, anger, lying, or vulnerability change the voice)
50
+ - Relationship-specific interactions (the character may sound different depending on who they are speaking to)
51
+ - Psychology (want, need, lie -- these shape HOW they speak)
52
+ - Key relationships (they may speak differently to different people)
53
+
54
+ Generate exactly 5 lines of dialogue that showcase:
55
+ 1. Their vocabulary register and sentence length
56
+ 2. At least one verbal tic or catchphrase
57
+ 3. Their emotional expression style
58
+ 4. A moment of subtext (saying one thing, meaning another)
59
+ 5. Their unique rhythm distinct from other characters
60
+
61
+ Include brief stage direction / action beats between lines to ground the dialogue in physical reality:
62
+ ```
63
+ "[Dialogue line 1.]" Character does something physical.
64
+
65
+ "[Dialogue line 2.]" Brief internal beat or reaction.
66
+
67
+ "[Dialogue line 3.]" Action or gesture.
68
+
69
+ "[Dialogue line 4.]" Beat.
70
+
71
+ "[Dialogue line 5.]"
72
+ ```
73
+
74
+ After presenting the sample, ask:
75
+ - "Does this sound like {name}? You can:"
76
+ - **Approve** -- save this as the voice anchor in the characters file
77
+ - **Adjust** -- tell me what to change (too formal, needs more humor, wrong tic, etc.)
78
+ - **Regenerate** -- try a completely fresh sample
79
+ </voice_sample_generation>
80
+
81
+ ---
82
+
83
+ ### Edge Cases
84
+
85
+ - **Character has no voice data yet:** Generate based on psychology and role, then note the sample is speculative and should be refined
86
+ - **Character not found:** Show partial matches or direct to cast-list
87
+ - **STYLE-GUIDE.md missing:** Warn that voice consistency cannot be verified without the style guide
88
+ - **Sacred work type:** Use "register sample" terminology; voice attributes map to sacred registers (prophetic, wisdom, legal, etc.)
89
+
90
+ ## Response Contract
91
+
92
+ 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.
93
+
94
+ Use this format:
95
+
96
+ ```markdown
97
+ Next commands:
98
+ - `/scr:...`: One short sentence explaining what this path will do.
99
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
100
+ ```
101
+
102
+ 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.
103
+
104
+ If the writer seems unsure or no specific next command is obvious, include this default option:
105
+
106
+ ```markdown
107
+ Next commands:
108
+ - `/scr:next`: Inspect the project state and choose the right next step.
109
+ ```
110
+
111
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.