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,82 @@
1
+ ---
2
+ description: Write a scene, passage, or chapter outside the full planning workflow.
3
+ ---
4
+
5
+ # /scr:quick-write -- Ad-Hoc Writing Without Full Planning
6
+
7
+ Write a scene, passage, or chapter outside the full planning workflow.
8
+
9
+ ## Usage
10
+ ```
11
+ /scr:quick-write [--discuss] [--research] [--full]
12
+ ```
13
+
14
+ **Flags:**
15
+ - `--discuss` -- Brief discussion to capture creative direction first
16
+ - `--research` -- Research craft techniques before drafting
17
+ - `--full` -- Discussion + research + consistency check
18
+
19
+ ## Instruction
20
+
21
+ Quick write gives you Scriveno guarantees (continuity tracking, voice consistency, atomic commits) with a faster path.
22
+
23
+ ### STEP 1: GATHER INTENT
24
+
25
+ Ask: "What do you want to write?"
26
+
27
+ Accept any of:
28
+ - A specific scene ("The bar fight in chapter 12")
29
+ - A character moment ("Marcus confronting his father")
30
+ - An exploratory passage ("What it feels like when the magic fails")
31
+ - A dialogue exchange ("The negotiation between Eva and the detective")
32
+ - A transitional passage ("Getting from the apartment to the airport")
33
+
34
+ ### STEP 2: QUICK CONTEXT
35
+
36
+ Load relevant files based on characters/settings mentioned:
37
+ - `STYLE-GUIDE.md` (always)
38
+ - `CHARACTERS.md` (relevant entries)
39
+ - `WORLD.md` (relevant sections)
40
+ - Previous relevant drafts (for continuity)
41
+
42
+ If `--discuss`: Ask 3-5 targeted questions about tone, pacing, and purpose for this passage.
43
+
44
+ If `--research`: Spawn a focused researcher for technique guidance.
45
+
46
+ ### STEP 3: DRAFT
47
+
48
+ Write the passage following all established style guide constraints. Target whatever length feels natural unless the writer specified a target.
49
+
50
+ ### STEP 4: VERIFY (if --full)
51
+
52
+ Run continuity and voice checks against existing manuscript.
53
+
54
+ ### OUTPUT
55
+
56
+ Save to `.manuscript/quick/{NNN}-{slug}/DRAFT.md`
57
+ Save plan (if generated) to `.manuscript/quick/{NNN}-{slug}/PLAN.md`
58
+
59
+ Commit: `quick: {slug}`
60
+
61
+ ## Response Contract
62
+
63
+ 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.
64
+
65
+ Use this format:
66
+
67
+ ```markdown
68
+ Next commands:
69
+ - `/scr:...`: One short sentence explaining what this path will do.
70
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
71
+ ```
72
+
73
+ 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.
74
+
75
+ If the writer seems unsure or no specific next command is obvious, include this default option:
76
+
77
+ ```markdown
78
+ Next commands:
79
+ - `/scr:next`: Inspect the project state and choose the right next step.
80
+ ```
81
+
82
+ 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,129 @@
1
+ ---
2
+ description: Generate an ASCII relationship graph between characters.
3
+ argument-hint: "[--edit]"
4
+ ---
5
+
6
+ # /scr:relationship-map -- Character Relationship Graph
7
+
8
+ Generate an ASCII relationship graph showing connections between all characters.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:relationship-map [--edit]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating a relationship map. 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.relationship-map.adapted`, and `feature_prerequisites`)
20
+ - The adapted characters file (CHARACTERS.md / FIGURES.md per `file_adaptations`)
21
+
22
+ **Prerequisites check** (from CONSTRAINTS.json `feature_prerequisites`):
23
+ - The characters file must exist
24
+ - At least 2 characters must be defined
25
+ - If fewer than 2: "Relationship map requires at least 2 characters. You have {N}. Run `/scr:new-character <name>` to add more."
26
+
27
+ Determine adapted terminology:
28
+ - Default: "relationship map"
29
+ - Sacred: "lineage map" (renamed via CONSTRAINTS.json); reads FIGURES.md and LINEAGES.md
30
+
31
+ ---
32
+
33
+ ### DISPLAY MODE (default)
34
+
35
+ <relationship_map_display>
36
+ Parse the "Key Relationships" and "Relationship-Specific Interactions" sections from each character entry in the characters file.
37
+
38
+ Render an ASCII graph with labeled edges (D-02):
39
+
40
+ ```
41
+ Elias ----[father]----> Petra
42
+ | |
43
+ [husband] [daughter]
44
+ | |
45
+ Maren Lena
46
+ (deceased)
47
+ ```
48
+
49
+ **Layout rules:**
50
+ - Keep edge labels short (max 15 characters) -- truncate with ellipsis if needed
51
+ - Truncate character names longer than 12 characters
52
+ - Use directional arrows for asymmetric relationships: `--[label]-->`
53
+ - Use undirected edges for mutual relationships: `--[label]--`
54
+ - Handle 2-10 characters gracefully; for more than 10, group by relationship clusters
55
+ - Indicate character status after name: `(deceased)`, `(mentioned)`, `(absent)`
56
+ - Place protagonists centrally in the layout
57
+
58
+ **Relationship types to extract:**
59
+ - Family: parent, child, sibling, spouse, cousin
60
+ - Romantic: partner, ex-partner, love interest
61
+ - Social: friend, rival, mentor, student, ally, enemy
62
+ - Professional: employer, colleague, subordinate
63
+ - Story-specific: foil, mirror, catalyst
64
+
65
+ After the graph, show a legend:
66
+ ```
67
+ ----> : directional relationship
68
+ ----- : mutual relationship
69
+ (deceased) : character is deceased
70
+ ```
71
+
72
+ After the legend, list any relationships mentioned in text but not visualized (if graph became too complex).
73
+
74
+ Then show a compact "Interaction notes" table for each important pairing:
75
+ ```
76
+ Pair | Trust posture | Conflict pattern | Speech shift | Hidden agenda/fear
77
+ Mara/Elias | guarded | deflects accusation | Mara gets terse | forged letter exposure
78
+ ```
79
+ </relationship_map_display>
80
+
81
+ ---
82
+
83
+ ### EDIT MODE (--edit)
84
+
85
+ <relationship_map_edit>
86
+ Show the current relationship graph, then offer:
87
+ 1. **Add relationship:** Between two characters (name a type and direction)
88
+ 2. **Change relationship:** Modify the label or direction of an existing edge
89
+ 3. **Remove relationship:** Delete a connection
90
+ 4. **Add character note:** Mark a character's status (active, deceased, mentioned)
91
+ 5. **Edit interaction dynamic:** Update trust posture, conflict pattern, speech shift, or hidden agenda/fear for a specific pair
92
+
93
+ After edits, update the "Key Relationships" section in each affected character's entry in the characters file.
94
+ If interaction dynamics changed, also update the "Relationship-Specific Interactions" section for the affected character entries.
95
+
96
+ Commit: `character: update relationship map`
97
+ </relationship_map_edit>
98
+
99
+ ---
100
+
101
+ ### Edge Cases
102
+
103
+ - **Only 2 characters:** Show a simple single-edge graph
104
+ - **No relationships defined:** Show characters as isolated nodes and suggest defining relationships
105
+ - **Circular relationships:** Handle gracefully (A -> B -> C -> A)
106
+ - **Sacred work type:** Use "lineage map" terminology; relationship types include "teacher-disciple", "prophetic succession", "covenant"
107
+
108
+ ## Response Contract
109
+
110
+ 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.
111
+
112
+ Use this format:
113
+
114
+ ```markdown
115
+ Next commands:
116
+ - `/scr:...`: One short sentence explaining what this path will do.
117
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
118
+ ```
119
+
120
+ 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.
121
+
122
+ If the writer seems unsure or no specific next command is obvious, include this default option:
123
+
124
+ ```markdown
125
+ Next commands:
126
+ - `/scr:next`: Inspect the project state and choose the right next step.
127
+ ```
128
+
129
+ 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,120 @@
1
+ ---
2
+ description: Remove a unit from the outline with draft safety checks.
3
+ argument-hint: "[unit-id]"
4
+ ---
5
+
6
+ # /scr:remove-unit -- Remove Unit
7
+
8
+ Remove a structural unit from the outline with comprehensive draft safety checks.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:remove-unit [unit-id]
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
+ ### REMOVE UNIT FLOW
35
+
36
+ <remove_unit>
37
+ 1. **Resolve unit type** from CONSTRAINTS.json `work_types[work_type].hierarchy`
38
+ - Use `command_unit` to determine which level of the hierarchy this command operates on
39
+
40
+ 2. **Validate unit-id:**
41
+ - Parse OUTLINE.md and locate the specified unit
42
+ - If the unit-id does not exist, show available units and ask for correction
43
+
44
+ 3. **CRITICAL: 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 word count of the draft
48
+ - Show the first 3 lines of the draft content
49
+ - Display a prominent warning:
50
+
51
+ **WARNING: This [chapter/scene/etc.] has drafted content.**
52
+
53
+ File: `.manuscript/drafts/body/[filename]`
54
+ Word count: [N] words
55
+ Preview:
56
+ > [first 3 lines]
57
+
58
+ **Options:**
59
+ 1. **Archive** (recommended): Move to `.manuscript/archive/` -- content is preserved but removed from active outline
60
+ 2. **Delete permanently**: Remove the draft file entirely -- THIS CANNOT BE UNDONE
61
+ 3. **Cancel**: Abort the removal
62
+
63
+ - Require the writer to choose explicitly. Default to archive if ambiguous.
64
+ - **If no draft exists:** Proceed with a simple confirmation:
65
+ "Remove [unit_type] [N]: '[title]' from the outline? (yes/no)"
66
+
67
+ 4. **Execute removal:**
68
+ - Remove the unit entry from OUTLINE.md
69
+ - Renumber all subsequent units
70
+ - If archived: move draft file to `.manuscript/archive/` with original name preserved
71
+ - If deleted: remove the draft file
72
+ - Rename subsequent draft files in `.manuscript/drafts/body/` to match new numbering
73
+
74
+ 5. **Update related files:**
75
+ - Update `.manuscript/STATE.md` to remove the unit and adjust progress
76
+ - Update PLOT-GRAPH.md (or adapted equivalent) if arc positions reference the removed unit
77
+ - Update any cross-references in OUTLINE.md
78
+
79
+ 6. **Confirm result:**
80
+ - Show the updated outline structure
81
+ - If archived: confirm the archive location
82
+ - Show the renumbered units
83
+ </remove_unit>
84
+
85
+ Commit: `structure: remove {unit_type} {N} "{title}"`
86
+
87
+ ## Edge Cases
88
+
89
+ - **Last remaining unit:** Warn that removing it will leave the outline empty. Suggest keeping at least one unit.
90
+ - **Unit referenced by PLOT-GRAPH.md:** Warn that removing this unit will leave a gap in the arc. Suggest reassigning the arc position.
91
+ - **No OUTLINE.md:** Prompt to run `/scr:plan` first.
92
+ - **Invalid unit-id:** Show numbered list of current units for selection.
93
+ - **Archive directory doesn't exist:** Create `.manuscript/archive/` automatically.
94
+
95
+ ## Response Contract
96
+
97
+ 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.
98
+
99
+ Use this format:
100
+
101
+ ```markdown
102
+ Next commands:
103
+ - `/scr:...`: One short sentence explaining what this path will do.
104
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
105
+ ```
106
+
107
+ 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.
108
+
109
+ If the writer seems unsure or no specific next command is obvious, include this default option:
110
+
111
+ ```markdown
112
+ Next commands:
113
+ - `/scr:next`: Inspect the project state and choose the right next step.
114
+ ```
115
+
116
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
117
+
118
+ ## Tone
119
+
120
+ Cautious and protective. Removing content is a significant action. Be thorough in warnings without being patronizing. The writer's prose is valuable -- treat it that way.
@@ -0,0 +1,126 @@
1
+ ---
2
+ description: Reorder units in the outline by moving a unit to a new position.
3
+ argument-hint: "[unit-id] [new-position]"
4
+ ---
5
+
6
+ # /scr:reorder-units -- Reorder Outline Units
7
+
8
+ Move a structural unit from its current position to a new position, renumbering all affected units.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:reorder-units [unit-id] [new-position]
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
+ ### REORDER UNITS FLOW
35
+
36
+ <reorder_units>
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 inputs:**
41
+ - Parse OUTLINE.md and locate the specified unit
42
+ - Verify the new position is valid (1 to total_units)
43
+ - If the unit is already at the requested position, inform the writer: "That [unit_type] is already at position [N]."
44
+
45
+ 3. **Draft safety check** (D-07):
46
+ - Scan `.manuscript/drafts/body/` for ALL draft files (not just the moved unit)
47
+ - Identify every draft file that will need to be renamed due to the reorder
48
+ - **If any drafted units are affected:**
49
+ - Show the complete renaming plan:
50
+
51
+ **Reordering will rename the following draft files:**
52
+
53
+ | Current | New | Title |
54
+ |---------|-----|-------|
55
+ | `03-the-chase-DRAFT.md` | `05-the-chase-DRAFT.md` | The Chase |
56
+ | `04-revelations-DRAFT.md` | `03-revelations-DRAFT.md` | Revelations |
57
+ | ... | ... | ... |
58
+
59
+ - Warn: "All draft file contents will be preserved. Only the file numbering will change."
60
+ - Require confirmation before proceeding
61
+
62
+ - **Show before/after comparison:**
63
+ ```
64
+ BEFORE: AFTER:
65
+ 1. The Beginning 1. The Beginning
66
+ 2. Rising Tension 2. The Chase <-- moved from 3
67
+ 3. The Chase --> 3. Rising Tension <-- was 2
68
+ 4. Revelations 4. Revelations
69
+ ```
70
+
71
+ 4. **Execute reorder:**
72
+ - Remove the unit from its current position in OUTLINE.md
73
+ - Insert it at the new position
74
+ - Renumber all affected units
75
+ - Rename all affected draft files in `.manuscript/drafts/body/` to match new numbering
76
+ (use a temporary naming scheme to avoid conflicts: rename to `.tmp` first, then to final names)
77
+
78
+ 5. **Update related files:**
79
+ - Update `.manuscript/STATE.md` to reflect the new ordering
80
+ - Update PLOT-GRAPH.md (or adapted equivalent):
81
+ - If arc positions reference unit numbers, update them to new numbers
82
+ - Show which arc positions changed
83
+ - Update any cross-references in OUTLINE.md
84
+
85
+ 6. **Show result:**
86
+ - Display the full updated outline in new order
87
+ - Highlight the moved unit and any affected arc positions
88
+ - If PLOT-GRAPH.md was updated, show the arc position changes
89
+ </reorder_units>
90
+
91
+ Commit: `structure: reorder {unit_type} {old_position} to position {new_position}`
92
+
93
+ ## Edge Cases
94
+
95
+ - **Moving to same position:** Inform the writer, no changes needed.
96
+ - **Only 1 unit:** Nothing to reorder -- inform the writer.
97
+ - **No OUTLINE.md:** Prompt to run `/scr:plan` first.
98
+ - **Many draft files to rename:** Use temporary file names during rename to avoid naming collisions.
99
+ - **Unit referenced in subplot-map or timeline:** Warn that cross-references in other files may also need updating.
100
+
101
+ ## Response Contract
102
+
103
+ 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.
104
+
105
+ Use this format:
106
+
107
+ ```markdown
108
+ Next commands:
109
+ - `/scr:...`: One short sentence explaining what this path will do.
110
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
111
+ ```
112
+
113
+ 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.
114
+
115
+ If the writer seems unsure or no specific next command is obvious, include this default option:
116
+
117
+ ```markdown
118
+ Next commands:
119
+ - `/scr:next`: Inspect the project state and choose the right next step.
120
+ ```
121
+
122
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
123
+
124
+ ## Tone
125
+
126
+ Precise and visual. Reordering is a significant structural decision. The before/after comparison helps the writer see exactly what will change before committing.
@@ -0,0 +1,97 @@
1
+ ---
2
+ description: Pick up where you left off. Reads your last session and tells you what's next.
3
+ argument-hint: ""
4
+ ---
5
+
6
+ # Resume Work
7
+
8
+ You are welcoming the writer back and orienting them. Your job is to read the session state and produce one concise, contextual paragraph about where they left off.
9
+
10
+ ## What to do
11
+
12
+ 0. **Read `.manuscript/CONTEXT.md` first if it exists.** This is the auto-regenerated one-page bootstrap. Use it as the primary source for orientation -- it already summarizes recent activity, open items, and the suggested next step that the rest of this command would otherwise re-derive from raw STATE.md fields. If CONTEXT.md is present and its `Updated` timestamp is newer than STATE.md, skip steps 1 through 3 (you already have the synthesis) and go to step 4. If CONTEXT.md is missing, stale, or contradicts STATE.md, treat STATE.md as authoritative and continue with steps 1 through 3 (you will regenerate CONTEXT.md in step 6).
13
+
14
+ 1. **Read STATE.md "Session handoff" section** for:
15
+ - Last session end time
16
+ - Resume context (automated context + writer's notes)
17
+
18
+ 2. **Read STATE.md "Progress" section** for:
19
+ - Overall progress metrics (units total, discussed, planned, drafted, reviewed, submitted, word count)
20
+
21
+ 3. **Read STATE.md "Pending" section** for:
22
+ - Next step
23
+ - Open revisions
24
+ - Unresolved notes
25
+ - Voice-check issues
26
+ - Continuity flags
27
+
28
+ 4. **Record the new session boundary in STATE.md before responding.**
29
+ - Set `## Session metrics` -> `Current session started` to the current timestamp.
30
+ - Reset the per-session summary placeholders so this session starts fresh:
31
+ - `Units this session: 0`
32
+ - `Words this session: 0`
33
+ - `Quality passes: none yet`
34
+ - Append a row to the "Last actions" table with:
35
+ - Timestamp: current timestamp
36
+ - Command: `resume-work`
37
+ - Unit: current unit (or `--` if none)
38
+ - Outcome: `Resumed session`
39
+ `/scr:session-report` depends on these markers to separate the current session from older work, so always write them here.
40
+
41
+ 5. **Generate ONE paragraph** that covers three parts:
42
+ - **(a) What was done:** Summarize last session's accomplishments. Use concrete numbers -- words, units, quality passes.
43
+ - **(b) What was in progress + writer's notes:** Where they were when they stopped. Include the writer's own notes verbatim if they left any -- this is what makes it feel personal.
44
+ - **(c) Suggestion for next step:** Based on pending items and progress, suggest the logical next command.
45
+
46
+ Example:
47
+ > Last time you drafted chapter 3 (1,247 words across 4 scenes, voice check passed). You were working on chapter 4 -- you noted you wanted it shorter and more tense, with Marcus discovering the letter. I'd suggest starting with /scr:discuss 4 to shape the plan.
48
+
49
+ 6. **Regenerate `.manuscript/CONTEXT.md`** using the `templates/CONTEXT.md` scaffold and the same field set described in `/scr:save` step 7, with `{{LAST_COMMAND}}` set to `/scr:resume-work`. This refreshes the bootstrap file so the next session opens to a current view -- the act of resuming is itself a state event worth recording.
50
+
51
+ 7. **Append one line to `.manuscript/HISTORY.log`** per `docs/history-protocol.md`:
52
+ ```
53
+ {ISO timestamp} | scr:resume-work | unit={current unit or --} | outcome=resumed
54
+ ```
55
+ Create HISTORY.log if it does not exist.
56
+
57
+ ## Output format
58
+
59
+ - **ONE paragraph**, not a bulleted list or table.
60
+ - Include the writer's own notes if they left any (this is what makes it feel personal).
61
+ - Suggest the logical next command.
62
+ - End with: "Ready to continue? Run `/scr:next` or tell me what you'd like to do."
63
+
64
+ ## Edge cases
65
+
66
+ - **No previous session:** If the Session handoff section is empty or has only template placeholders, say: "This looks like a fresh start. Run `/scr:next` to get going."
67
+
68
+ - **Session handoff section empty but progress exists:** Generate context from the Progress and Last actions tables instead. Synthesize what you can from available data.
69
+
70
+ - **Very old session (>7 days):** If the last session ended more than 7 days ago, acknowledge the gap: "It's been a while since your last session ([date]). Here's where things stand: ..."
71
+
72
+ ## Response Contract
73
+
74
+ 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.
75
+
76
+ Use this format:
77
+
78
+ ```markdown
79
+ Next commands:
80
+ - `/scr:...`: One short sentence explaining what this path will do.
81
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
82
+ ```
83
+
84
+ 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.
85
+
86
+ If the writer seems unsure or no specific next command is obvious, include this default option:
87
+
88
+ ```markdown
89
+ Next commands:
90
+ - `/scr:next`: Inspect the project state and choose the right next step.
91
+ ```
92
+
93
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
94
+
95
+ ## Tone
96
+
97
+ Warm but efficient. The writer wants to get back to work -- orient them quickly, don't belabor the recap. One paragraph, then let them go.
@@ -0,0 +1,105 @@
1
+ ---
2
+ description: Add or manage a commentary/exegetical layer alongside the primary sacred text. Support multiple annotation traditions simultaneously.
3
+ argument-hint: "[tradition_name] [--list] [--remove <tradition>]"
4
+ ---
5
+
6
+ # Annotation layer
7
+
8
+ You manage annotation layers -- commentary or exegetical notes attached to the primary text without altering it. Multiple annotation traditions can coexist (e.g., Catholic + Reformed + Orthodox annotations on the same Bible text, or Sunni + Shia annotations on the same Quran text).
9
+
10
+ ## Availability
11
+
12
+ Sacred work types only. Requires at least one drafted unit.
13
+
14
+ ## What to do
15
+
16
+ ### No arguments (or tradition name)
17
+
18
+ If a tradition name is passed, work within that tradition. If not, ask which tradition to annotate in. If this is the first annotation layer, the writer chooses a name (e.g., "catholic_tradition", "reformed_tradition", "critical_scholarship", "devotional_notes").
19
+
20
+ Annotation layers live in `.manuscript/annotations/{tradition}/`. Each file corresponds to a primary draft file:
21
+
22
+ ```
23
+ .manuscript/
24
+ ├── 1-1-DRAFT.md (primary text)
25
+ ├── annotations/
26
+ │ ├── catholic_tradition/
27
+ │ │ ├── 1-1-ANNOTATIONS.md (Catholic commentary on 1-1)
28
+ │ │ └── 1-2-ANNOTATIONS.md
29
+ │ ├── reformed_tradition/
30
+ │ │ ├── 1-1-ANNOTATIONS.md (Reformed commentary on 1-1)
31
+ │ │ └── 1-2-ANNOTATIONS.md
32
+ │ └── critical_scholarship/
33
+ │ └── 1-1-ANNOTATIONS.md (Historical-critical notes)
34
+ ```
35
+
36
+ For each verse/passage, produce annotations of:
37
+ - **Interpretation** -- How this tradition reads this passage
38
+ - **Theological significance** -- What doctrines this passage supports or shapes
39
+ - **Historical/philological notes** -- Text-critical issues, original language nuances
40
+ - **Cross-references** -- What other passages this tradition reads alongside this one
41
+ - **Contested points** -- Where this tradition diverges from others
42
+
43
+ ### --list
44
+
45
+ Show all annotation traditions currently in the project with annotation counts:
46
+
47
+ ```
48
+ Annotation traditions:
49
+ - catholic_tradition: 142 verses annotated
50
+ - reformed_tradition: 89 verses annotated
51
+ - critical_scholarship: 201 verses annotated (some differ from above)
52
+ - devotional_notes: 45 verses annotated
53
+ ```
54
+
55
+ ### --remove <tradition>
56
+
57
+ Remove an annotation layer entirely. Ask for confirmation -- this is destructive. Offer to archive instead.
58
+
59
+ ## Integration with export
60
+
61
+ When exporting, the writer can choose which annotation layers to include:
62
+
63
+ - **Clean text only** -- primary text, no annotations
64
+ - **Single tradition** -- primary text with one annotation layer
65
+ - **Comparative** -- primary text with multiple annotation layers side-by-side or as footnotes
66
+ - **Full scholarly** -- every annotation layer + critical apparatus
67
+
68
+ The `/scr:publish` wizard asks about annotation inclusion when building the publishing pipeline.
69
+
70
+ ## Integration with the drafter
71
+
72
+ When drafting annotations, the drafter agent loads:
73
+ - The primary text passage being annotated
74
+ - The tradition's characteristic interpretive approach (from FRAMEWORK.md)
75
+ - Any other annotations on the same passage in the same tradition (for consistency)
76
+ - DOCTRINES.md entries relevant to this passage
77
+
78
+ Annotations should sound like the tradition they represent. Catholic annotations should sound like Catholic scholarship; Reformed should sound like Reformed; critical should sound like critical.
79
+
80
+ ## Response Contract
81
+
82
+ 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.
83
+
84
+ Use this format:
85
+
86
+ ```markdown
87
+ Next commands:
88
+ - `/scr:...`: One short sentence explaining what this path will do.
89
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
90
+ ```
91
+
92
+ 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.
93
+
94
+ If the writer seems unsure or no specific next command is obvious, include this default option:
95
+
96
+ ```markdown
97
+ Next commands:
98
+ - `/scr:next`: Inspect the project state and choose the right next step.
99
+ ```
100
+
101
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
102
+
103
+ ## Tone
104
+
105
+ Scholarly when annotating academic traditions, devotional when annotating devotional traditions, pastoral when annotating pastoral traditions. Match the voice to the annotation tradition, not to the primary text's voice.