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,113 @@
1
+ ---
2
+ description: Diagnose and repair common project state issues.
3
+ argument-hint: "[--repair]"
4
+ ---
5
+
6
+ # Health
7
+
8
+ You are a project health checker. Diagnose problems in the current Scriveno project and optionally fix what can be auto-fixed.
9
+
10
+ ## Diagnostic mode (default, no flags)
11
+
12
+ Run these checks in order and report results with status indicators:
13
+
14
+ ### 1. Required files check
15
+ Verify these files exist in `.manuscript/`:
16
+ - `WORK.md` -- project definition
17
+ - `OUTLINE.md` -- structural plan
18
+ - `STYLE-GUIDE.md` -- voice profile
19
+ - `config.json` -- project configuration
20
+ - `STATE.md` -- progress tracking
21
+
22
+ Status: GREEN if all present, YELLOW if STYLE-GUIDE.md missing (optional early on), RED if WORK.md or config.json missing.
23
+
24
+ ### 2. Config schema check
25
+ Read `.manuscript/config.json` and verify all required fields:
26
+ - `work_type` (must be a valid type from CONSTRAINTS.json)
27
+ - `title`
28
+ - `author`
29
+
30
+ Status: GREEN if valid, RED if missing required fields.
31
+
32
+ ### 3. State consistency check
33
+ Compare STATE.md progress claims against actual draft files on disk:
34
+ - Count draft files in the manuscript directory
35
+ - Compare against "units drafted" count in STATE.md
36
+ - Flag mismatches
37
+
38
+ Status: GREEN if consistent, YELLOW if minor drift, RED if significantly off.
39
+
40
+ ### 4. Orphaned drafts check
41
+ Look for draft files not referenced in OUTLINE.md:
42
+ - Scan for markdown files in unit directories
43
+ - Cross-reference with OUTLINE.md structure
44
+ - List any orphans found
45
+
46
+ Status: GREEN if none, YELLOW if orphans found.
47
+
48
+ ### 5. Git state check
49
+ - Check for uncommitted changes (`git status`)
50
+ - Check for detached HEAD
51
+ - Check if on expected branch
52
+
53
+ Status: GREEN if clean, YELLOW if uncommitted changes, RED if detached HEAD.
54
+
55
+ ### 6. CONSTRAINTS.json integrity check
56
+ - Verify Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) or local copy exists
57
+ - Check that all commands referenced in the constraints file have corresponding `.md` files in the commands directory
58
+
59
+ Status: GREEN if all present, YELLOW if some missing.
60
+
61
+ ## Output format
62
+
63
+ ```
64
+ Project Health Report
65
+ =====================
66
+
67
+ [GREEN] Required files ............ All present
68
+ [YELLOW] Config schema ............. Missing "author" field
69
+ [GREEN] State consistency ......... 5/12 chapters matches
70
+ [YELLOW] Orphaned drafts ........... 2 found (chapter-99.md, notes-old.md)
71
+ [GREEN] Git state ................. Clean, on branch main
72
+ [GREEN] Constraints integrity ..... All commands resolved
73
+
74
+ Overall: HEALTHY (2 warnings)
75
+ ```
76
+
77
+ ## Repair mode (--repair)
78
+
79
+ With `--repair`, fix what can be auto-fixed:
80
+
81
+ 1. **Regenerate missing STATE.md** from file system state -- count actual draft files, detect current position in workflow
82
+ 2. **Fix config.json missing fields** with sensible defaults (author = "Unknown", work_type from directory structure heuristics)
83
+ 3. **Report orphaned drafts** for manual review -- do NOT delete them, just list them with suggested actions
84
+ 4. **Suggest git commands** for git issues (e.g., "Run `git stash` to save uncommitted changes" or "Run `git switch <canon branch>` to fix detached HEAD"). Resolve `<canon branch>` from `.manuscript/tracks.json` `canon_branch` when available; otherwise refer to the writer's real default branch generically (`main`, `master`, `trunk`, or another branch name) instead of hard-coding `main`.
85
+
86
+ After repair: re-run diagnostics and show the updated health report.
87
+
88
+ ## Response Contract
89
+
90
+ 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.
91
+
92
+ Use this format:
93
+
94
+ ```markdown
95
+ Next commands:
96
+ - `/scr:...`: One short sentence explaining what this path will do.
97
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
98
+ ```
99
+
100
+ 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.
101
+
102
+ If the writer seems unsure or no specific next command is obvious, include this default option:
103
+
104
+ ```markdown
105
+ Next commands:
106
+ - `/scr:next`: Inspect the project state and choose the right next step.
107
+ ```
108
+
109
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
110
+
111
+ ## Tone
112
+
113
+ Clinical but helpful. Like a car diagnostic -- show what's wrong, explain what was fixed, and what needs manual attention.
@@ -0,0 +1,121 @@
1
+ ---
2
+ description: Show Scriveno commands grouped by workflow stage, filtered to what's relevant for your current work
3
+ argument-hint: "[category or search term, optional]"
4
+ ---
5
+
6
+ # Scriveno help
7
+
8
+ You are helping the user navigate Scriveno commands. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) to see every command and its availability.
9
+
10
+ ## What to do
11
+
12
+ 1. **Check for a `.manuscript/` directory in the current project.**
13
+ - If it exists, read `.manuscript/config.json` to get the work type and developer_mode setting
14
+ - If it doesn't exist, show the "getting started" view
15
+
16
+ 2. **Load CONSTRAINTS.json** and filter commands by the current work type's group plus any command-level constraints.
17
+ - A command is only menu-eligible when its `available` list includes the current group (or `"all"`) **and** any narrower gate passes.
18
+ - Apply explicit constraints such as `nonfiction_only` and `comic_only` before you show the command.
19
+ - If a group has a dedicated replacement command family (for example sacred chronology and doctrinal checks), prefer that real surface over any conceptual adapted label on a hidden base command.
20
+
21
+ 3. **Load `command_intents` from CONSTRAINTS.json.** Treat these intents as the front door: start, draft, revise, navigate, publish, translate, collaborate, repair. If the field is missing in an older install, fall back to the stage groups below.
22
+
23
+ 4. **Infer the likely intent before showing commands.**
24
+ - No `.manuscript/` directory -> start
25
+ - `.manuscript/` exists but no drafted units -> draft
26
+ - Drafted units exist but review is incomplete -> revise
27
+ - Draft is complete and export files are missing -> publish
28
+ - Translation folders or language config exist -> translate
29
+ - Revision-track metadata exists -> collaborate
30
+ - State drift, failed command, missing required file, or validation concern -> repair
31
+ - Otherwise -> navigate
32
+
33
+ 5. **If the user passed an argument**, treat it as an intent, category filter, or search term. Otherwise show the inferred intent first, then compact alternatives.
34
+
35
+ ## The "getting started" view (no project yet)
36
+
37
+ Ask the user what they want to do. Don't list 170 commands -- show them this:
38
+
39
+ ```
40
+ Scriveno -- ready to start.
41
+
42
+ What do you want to do?
43
+ /scr:new-work Start a new project (novel, runbook, screenplay, paper, etc.)
44
+ /scr:demo Explore a pre-built sample project first
45
+ /scr:import <file> Bring in an existing manuscript
46
+ /scr:profile-writer Set up your writer profile
47
+
48
+ Already have a project? Just cd into it and run /scr:next.
49
+ ```
50
+
51
+ ## The "active project" view
52
+
53
+ Show commands relevant to the current stage. Use `.manuscript/STATE.md` to figure out where the user is.
54
+
55
+ Lead with a compact intent view, not the full command catalog:
56
+
57
+ ```markdown
58
+ Likely next area: Draft
59
+
60
+ Most useful now:
61
+ - `/scr:next`: Inspect the project state and choose the next step.
62
+ - `/scr:discuss 4`: Shape the next unit before planning.
63
+ - `/scr:plan 4`: Turn the discussion into a draftable plan.
64
+
65
+ Other useful areas:
66
+ - Revise: `/scr:editor-review`, `/scr:voice-check`, `/scr:continuity-check`
67
+ - Navigate: `/scr:progress`, `/scr:manuscript-stats`, `/scr:pause-work`
68
+ ```
69
+
70
+ Keep the primary list to 3-6 commands. Put additional commands under "More for this intent" only when the user asked for detail, used `/scr:help all`, or passed a specific intent/category. This is the thin front door: the full command surface remains available, but the default view should never feel like a catalog dump.
71
+
72
+ Use `command_intents` to choose candidates, then apply availability and command-level constraints. For example, `publish` intent can include `build-print`, but a fresh project should not show publishing as the likely next area; `translate` can include `translate`, but it should not appear as a primary path until drafted work exists or translation configuration exists; `repair` should move to the top when scan/health conditions are present.
73
+
74
+ Group by stage:
75
+ - **Create** -- new-work, profile-writer, series-bible
76
+ - **Write** -- discuss, plan, draft, quick-write, plus any profile-building commands actually available for the current work type
77
+ - **Revise** -- editor-review, subject-touch, line-edit, copy-edit, continuity-check, beta-reader, voice-check
78
+ - **Publish** -- front-matter, back-matter, blurb, cover-art, publish, export
79
+ - **Collaborate** -- track
80
+ Present `/scr:track` as the entrypoint for revision-track workflows, and describe its subcommands in prose: create, list, switch, compare, merge, propose.
81
+ - **Versions** -- save, history, versions, compare, undo
82
+ - **Navigate** -- next, progress, pause-work, resume-work
83
+
84
+ Revision tracks are a writer-facing workflow, not a developer-only one. Always surface `/scr:track` when it is otherwise available for the current project, and explain that comparison and merge actions live under its subcommands. Do not invent top-level commands like `/scr:merge` for collaboration, and do not confuse `/scr:compare` (save-to-save history comparison) with `/scr:track compare` (revision-track comparison). `developer_mode` only changes whether you expose extra technical detail such as hashes, branch names, or raw git output -- it does not hide the collaboration workflow itself.
85
+
86
+ When useful, describe Scriveno's creative-context model in one sentence: Scriveno tracks what moves, including characters, ideas, reader understanding, objects, places, procedures, doctrines, evidence, and themes. Keep this as orientation, not a lecture.
87
+
88
+ Only show commands where `available` includes the current work type's group, OR where it's `"all"`, **and** any narrower command-level constraints still pass for the specific work type. For example, `book-proposal` is still hidden for fiction prose because `nonfiction_only` narrows the broad prose/sacred availability, and `panel-layout` is hidden for non-comic visual projects because `comic_only` narrows the visual group. Show canonical runnable command names, and use adapted labels as descriptive text only when the base command is actually available -- sacred review surfaces may show `/scr:editor-review` as scholarly review, and technical docs may show `/scr:plot-graph` as procedure map, but hidden commands stay hidden even if CONSTRAINTS.json stores an adapted label.
89
+
90
+ ## The filtered view
91
+
92
+ If the argument matches an intent or category name (e.g., "revise", "publish"), show that view first. If it's a free-text search, match against command names and descriptions. If the writer asks for "all", "catalog", or "everything", show the grouped stage view after the compact intent view.
93
+
94
+ ## Response Contract
95
+
96
+ 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.
97
+
98
+ Use this format:
99
+
100
+ ```markdown
101
+ Next commands:
102
+ - `/scr:...`: One short sentence explaining what this path will do.
103
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
104
+ ```
105
+
106
+ 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.
107
+
108
+ If the writer seems unsure or no specific next command is obvious, include this default option:
109
+
110
+ ```markdown
111
+ Next commands:
112
+ - `/scr:next`: Inspect the project state and choose the right next step.
113
+ ```
114
+
115
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
116
+
117
+ ## Tone
118
+
119
+ Scannable. No narration, no memory-system lectures. A writer checking help wants a menu, not an essay.
120
+
121
+ If the user seems stuck, always suggest `/scr:next` -- it always knows what to do.
@@ -0,0 +1,92 @@
1
+ ---
2
+ description: See the timeline of your saves. Shows when you saved and what you were working on.
3
+ argument-hint: "[--limit N]"
4
+ ---
5
+
6
+ # History
7
+
8
+ You are showing the writer their save history. Your job is to format git log output as a scannable markdown table with NO git terminology.
9
+
10
+ ## What to do
11
+
12
+ 1. **Check for `.git/` directory.** If missing: "No save history yet. Save your work first with `/scr:save`."
13
+
14
+ 2. **Check for any save commits.** Run:
15
+ ```
16
+ git log --format="%H" --grep="^(Saved|Initial save)" --extended-regexp -n 1 .manuscript/ 2>/dev/null
17
+ ```
18
+ If empty: "No save history yet."
19
+
20
+ 3. **Read `.manuscript/config.json`** for `developer_mode`.
21
+
22
+ 4. **Retrieve the log.** Run:
23
+ ```
24
+ git log --format="%H|%ai|%s" --grep="^(Saved|Initial save)" --extended-regexp -n {limit} .manuscript/
25
+ ```
26
+ Default: last 20 entries. If the writer specified `--limit N`, use that number instead.
27
+ This command is a **save history**, so exclude administrative manuscript commits such as revision-track creation, proposals, and merges.
28
+
29
+ 5. **Parse each line** into three columns:
30
+ - **Date:** Convert the ISO timestamp to human-friendly format: "Mon D, H:MM AM/PM" (e.g., "Apr 6, 2:30 PM"). Omit year unless the save is from a different year than the current year.
31
+ - **Action:** Extract the verb and unit from the commit message:
32
+ - "Saved after drafting chapter 3" becomes "Drafted chapter 3"
33
+ - "Saved after editor review of chapter 2" becomes "Reviewed chapter 2"
34
+ - "Saved after revising chapter 2" becomes "Revised chapter 2"
35
+ - "Saved after planning chapter 4" becomes "Planned chapter 4"
36
+ - "Saved after discussing chapter 5" becomes "Discussed chapter 5"
37
+ - "Saved work in progress on chapter 3" becomes "Work in progress on chapter 3"
38
+ - "Saved: {custom message}" becomes "{custom message}"
39
+ - "Initial save of {title}" becomes "Started {title}"
40
+ - Any other message: use the message as-is
41
+ - **Details:** Extract supplementary information if available in the commit message (word count, scene count, etc.). If none, leave blank.
42
+
43
+ 6. **Format as a markdown table:**
44
+
45
+ ```
46
+ | Date | Action | Details |
47
+ |------|--------|---------|
48
+ | Apr 6, 2:30 PM | Drafted chapter 3 | 1,247 words, 4 scenes |
49
+ | Apr 6, 1:15 PM | Reviewed chapter 2 | 3 revision notes |
50
+ | Apr 5, 4:00 PM | Planned chapter 3 | 4 scene plans |
51
+ ```
52
+
53
+ 7. **Show the table to the writer.**
54
+
55
+ ## Writer mode output
56
+
57
+ - **Writer mode** (`developer_mode: false`): Show ONLY the markdown table. No git hashes, no branch info, no file paths. If there are more saves beyond the displayed limit, add: "Showing your last [N] saves. Use `--limit 50` to see more."
58
+ - **Developer mode** (`developer_mode: true`): Add an extra "Hash" column to the table with the short commit hash (first 7 characters). Include the current branch name above the table.
59
+
60
+ ## Edge cases
61
+
62
+ - **No history:** "No save history yet. Save your work first with `/scr:save`."
63
+ - **Only one save:** Show the table with one row. No "see more" message.
64
+ - **Very long history:** Default to last 20. If more exist, mention: "Showing your last 20 saves. Use `--limit 50` to see more."
65
+ - **Administrative manuscript commits:** Exclude track creation, proposals, merges, and other non-save checkpoints. Show only commits whose subject starts with `Saved` or `Initial save`.
66
+
67
+ ## Response Contract
68
+
69
+ 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.
70
+
71
+ Use this format:
72
+
73
+ ```markdown
74
+ Next commands:
75
+ - `/scr:...`: One short sentence explaining what this path will do.
76
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
77
+ ```
78
+
79
+ 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.
80
+
81
+ If the writer seems unsure or no specific next command is obvious, include this default option:
82
+
83
+ ```markdown
84
+ Next commands:
85
+ - `/scr:next`: Inspect the project state and choose the right next step.
86
+ ```
87
+
88
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
89
+
90
+ ## Tone
91
+
92
+ Neutral. Informative. Let the table speak for itself. Don't editorialize about the writer's productivity or pace.
@@ -0,0 +1,211 @@
1
+ ---
2
+ description: Generate a scene-specific illustration prompt with character visuals, setting, and mood.
3
+ argument-hint: "<scene-ref> [--style <style>]"
4
+ ---
5
+
6
+ # /scr:illustrate-scene -- Scene Illustration Prompt
7
+
8
+ Generate a detailed, structured illustration prompt for a specific scene, pulling character descriptions, setting details, and mood from the manuscript.
9
+
10
+ ## Usage
11
+ ```
12
+ /scr:illustrate-scene <scene-ref> [--style <style>]
13
+ ```
14
+
15
+ ## Instruction
16
+
17
+ You are generating a scene-specific illustration prompt. Load:
18
+ - `.manuscript/config.json` (to get `work_type`, `genre`, trim size if set)
19
+ - Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `commands.illustrate-scene.available` and prerequisites)
20
+ - `.manuscript/illustrations/ART-DIRECTION.md` (visual style bible -- **required**)
21
+ - `.manuscript/OUTLINE.md` (to resolve `<scene-ref>` to a file path)
22
+ - The drafted scene file for `<scene-ref>`
23
+ - `.manuscript/CHARACTERS.md` or `.manuscript/FIGURES.md` (per `file_adaptations` for sacred work types)
24
+
25
+ **Check availability:**
26
+
27
+ Look up the current work type's group in CONSTRAINTS.json. If the group is in `commands.illustrate-scene.hidden` (script, academic, poetry, speech_song), inform the writer:
28
+
29
+ > Illustrate-scene is not available for [work_type] projects.
30
+
31
+ Then **stop**.
32
+
33
+ **Check prerequisites:**
34
+
35
+ Per CONSTRAINTS.json `prerequisites.illustrate-scene`: requires ART-DIRECTION.md and scene_drafted.
36
+
37
+ If `.manuscript/illustrations/ART-DIRECTION.md` does not exist:
38
+ > Run `/scr:art-direction` first to establish your visual style guide.
39
+
40
+ Then **stop**.
41
+
42
+ If the scene referenced by `<scene-ref>` has no draft yet:
43
+ > Scene '{ref}' has no draft yet. Draft it first with `/scr:draft {ref}`.
44
+
45
+ Then **stop**.
46
+
47
+ ---
48
+
49
+ ### Scene Analysis
50
+
51
+ <scene_analysis>
52
+ Read the drafted scene file and extract:
53
+
54
+ **Characters present:**
55
+ Cross-reference with CHARACTERS.md (or FIGURES.md for sacred work types) to pull:
56
+ - Physical appearance (height, build, hair, eyes, distinguishing features)
57
+ - Clothing/style from ART-DIRECTION.md per-character visual specs
58
+ - Expression and posture appropriate to the scene's emotional beat
59
+ - Color associations from ART-DIRECTION.md
60
+
61
+ **Setting / Location:**
62
+ - Indoor or outdoor
63
+ - Time of day and lighting conditions
64
+ - Weather and atmosphere (if outdoor)
65
+ - Key objects, furniture, architecture
66
+ - Cross-reference with ART-DIRECTION.md per-setting visual specs if the location is defined there
67
+
68
+ **Key action or emotional moment:**
69
+ Identify the single most visually compelling beat in the scene -- the "illustratable moment." This is the focal point of the illustration. Prefer:
70
+ - A moment of high emotion (confrontation, revelation, tenderness)
71
+ - A moment of decisive action (a character making a choice visible in body language)
72
+ - A moment of visual drama (arrival, discovery, transformation)
73
+
74
+ **Mood / Atmosphere:**
75
+ - Emotional tone: tension, joy, mystery, sorrow, wonder, dread, intimacy, triumph
76
+ - How this maps to visual treatment: lighting quality, color temperature, depth of field
77
+ </scene_analysis>
78
+
79
+ ---
80
+
81
+ ### Prompt Generation (D-01 Structured Format)
82
+
83
+ <prompt_generation>
84
+ Generate the illustration prompt with the following sections:
85
+
86
+ ```markdown
87
+ # Illustration Prompt: [Scene Reference]
88
+
89
+ **Scene:** [scene title or reference]
90
+ **Source:** [file path of drafted scene]
91
+
92
+ ## Subject
93
+
94
+ [The key moment described in detail. Include all characters present with their actions, positions relative to each other, and emotional states. Describe what is happening -- not abstractly, but as a specific frozen moment.]
95
+
96
+ ## Composition
97
+
98
+ [Suggested framing and visual structure:]
99
+ - **Shot type:** [wide establishing | medium | close-up | extreme close-up | over-the-shoulder | bird's-eye | worm's-eye]
100
+ - **Focal point:** [what the eye should be drawn to first]
101
+ - **Depth:** [foreground, midground, background elements]
102
+ - **Negative space:** [where breathing room exists in the frame]
103
+ - **Eye flow:** [how the viewer's gaze moves through the image]
104
+
105
+ ## Style
106
+
107
+ [From ART-DIRECTION.md visual style section. Art style, rendering technique, level of detail. If --style flag provided, blend the requested style with the established art direction.]
108
+
109
+ ## Color Palette
110
+
111
+ [From ART-DIRECTION.md color palette, adjusted for this scene's mood:]
112
+ - **Dominant:** [primary color for this scene and why]
113
+ - **Supporting:** [secondary colors]
114
+ - **Accent:** [highlight/focal point color]
115
+ - **Mood shift:** [how palette differs from default -- darker for tense scenes, warmer for intimate, cooler for melancholy, desaturated for dreamlike]
116
+
117
+ ## Mood
118
+
119
+ [Derived from scene analysis:]
120
+ - **Emotional tone:** [the feeling this illustration should evoke]
121
+ - **Lighting:** [direction, quality, warmth -- e.g., "low warm side-lighting from a fireplace"]
122
+ - **Atmosphere:** [haze, clarity, rain, dust motes, etc.]
123
+ - **Time of day:** [if relevant to lighting]
124
+
125
+ ## Characters
126
+
127
+ [For each character present in the scene:]
128
+
129
+ ### [Character Name]
130
+ - **Appearance:** [from CHARACTERS.md / FIGURES.md]
131
+ - **Clothing:** [from ART-DIRECTION.md character specs or scene context]
132
+ - **Expression:** [appropriate to this scene's emotional beat]
133
+ - **Posture/Action:** [what they are doing in this moment]
134
+ - **Position:** [where in the frame -- foreground, left, center, background]
135
+
136
+ ## Setting Details
137
+
138
+ [Location-specific visual elements:]
139
+ - **Environment:** [indoor/outdoor, architecture, landscape]
140
+ - **Key objects:** [props, furniture, natural elements that matter to the scene]
141
+ - **Textures:** [surfaces, materials, fabrics visible]
142
+ - **Background:** [what fills the space beyond the main action]
143
+
144
+ ## Technical Specs
145
+
146
+ - **Dimensions:** [full page: match trim size at 300 DPI | half page: trim width x half trim height at 300 DPI]
147
+ - **Orientation:** [portrait | landscape]
148
+ - **DPI:** 300
149
+ - **Bleed:** 0.125" on all sides if full-bleed
150
+ - **Safe area:** Keep key elements 0.25" from trim edge
151
+ ```
152
+
153
+ If `--style` is provided, note the requested style and blend it with the ART-DIRECTION.md established style, explaining any adjustments.
154
+ </prompt_generation>
155
+
156
+ ---
157
+
158
+ ### Output
159
+
160
+ Create the output directory if needed:
161
+ ```bash
162
+ mkdir -p .manuscript/illustrations/scenes/
163
+ ```
164
+
165
+ Save to `.manuscript/illustrations/scenes/{scene-ref}-illustration-prompt.md`
166
+
167
+ Replace any slashes or spaces in `{scene-ref}` with hyphens for the filename.
168
+
169
+ Commit: `illustration: generate scene prompt for {scene-ref}`
170
+
171
+ After saving, tell the writer:
172
+ > Illustration prompt saved to `.manuscript/illustrations/scenes/{scene-ref}-illustration-prompt.md`.
173
+ >
174
+ > Copy this prompt into any AI image tool (GPT Image, Stable Diffusion, Midjourney) or share with an illustrator.
175
+ >
176
+ > To regenerate with a different style: `/scr:illustrate-scene {ref} --style watercolor`
177
+
178
+ ---
179
+
180
+ ### Edge Cases
181
+
182
+ - **Sacred work type:** Use FIGURES.md instead of CHARACTERS.md. Adapt visual language for sacred art traditions (iconographic conventions, liturgical colors, sacred geometry motifs)
183
+ - **Character not in CHARACTERS.md:** Include what can be inferred from the scene text and note: "Character '{name}' has no entry in CHARACTERS.md. Add one with `/scr:new-character {name}` for richer visual descriptions."
184
+ - **No ART-DIRECTION.md:** Hard stop -- prerequisite per CONSTRAINTS.json
185
+ - **Scene not drafted:** Hard stop -- prerequisite per CONSTRAINTS.json
186
+ - **Multiple illustratable moments:** Pick the single strongest, note alternatives: "Other illustratable moments in this scene: [list]. Re-run with `--moment 2` to target a different beat."
187
+ - **Scene with no characters:** Generate environment-only prompt (landscape, interior, establishing shot)
188
+ - **Very long scene:** Focus on the climactic beat, not the entire scene
189
+
190
+ ## Response Contract
191
+
192
+ 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.
193
+
194
+ Use this format:
195
+
196
+ ```markdown
197
+ Next commands:
198
+ - `/scr:...`: One short sentence explaining what this path will do.
199
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
200
+ ```
201
+
202
+ 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.
203
+
204
+ If the writer seems unsure or no specific next command is obvious, include this default option:
205
+
206
+ ```markdown
207
+ Next commands:
208
+ - `/scr:next`: Inspect the project state and choose the right next step.
209
+ ```
210
+
211
+ 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,95 @@
1
+ ---
2
+ description: Import an existing manuscript (docx, markdown, txt, or directory) and structure it into a Scriveno .manuscript/ directory.
3
+ argument-hint: "<file_or_directory_path> [--type <work_type>]"
4
+ ---
5
+
6
+ # Import
7
+
8
+ You are importing an existing manuscript into Scriveno. The writer has content -- in a Google Doc, a Scrivenoer project, a folder of markdown files, a Word document, or similar -- and wants Scriveno's tooling without starting from scratch.
9
+
10
+ ## What to do
11
+
12
+ 1. **Locate the file or directory.** Accept: .docx, .md, .txt, .rtf, a directory of any of these.
13
+
14
+ 2. **Read the content.** For docx, use pandoc or similar to extract text. For markdown, read directly. For a directory, concatenate files in order.
15
+
16
+ 3. **Detect the work type.** If `--type` was passed, use it. Otherwise analyze the content and make a best guess:
17
+ - Scene headers (`INT./EXT.`) -> screenplay
18
+ - Chapter markers with prose -> novel or memoir
19
+ - Section headers with citations -> academic paper
20
+ - Verse and chapter numbers -> scripture
21
+ - Panel descriptions -> comic
22
+ - Poem titles separated by breaks -> poetry collection
23
+ - Ask the writer to confirm.
24
+
25
+ 4. **Parse structure.** Identify the unit boundaries based on the work type's `command_unit` from CONSTRAINTS.json. For a novel, find chapter breaks. For a screenplay, find act breaks or scene headers. For a research paper, find section headers.
26
+
27
+ 5. **Run voice analysis.** Take a 2000-word sample from the imported text and extract the writer's voice DNA: sentence architecture, vocabulary register, figurative density, POV, tense, dialogue style. Populate STYLE-GUIDE.md with the detected values. Flag anything uncertain for the writer to confirm.
28
+
29
+ 6. **Detect characters.** Scan for proper nouns that appear as speakers in dialogue or as recurring agents in narration. Build a draft CHARACTERS.md with name, estimated role (protagonist, antagonist, supporting), and detected voice patterns. Flag for writer review.
30
+
31
+ 7. **Generate the .manuscript/ directory.** Create all context files (WORK.md, BRIEF.md, OUTLINE.md, RECORD.md, STYLE-GUIDE.md, CHARACTERS.md, etc.) populated from the import. Also copy `WRITING-RULES.md` verbatim from the installed Scriveno templates (`templates/WRITING-RULES.md`) into `.manuscript/` so the drafter, voice-checker, and originality-check have the canonical universal rules available. Save the actual drafted text as `.manuscript/drafts/body/{N}-{A}-DRAFT.md` files, one per atomic unit.
32
+
33
+ Populate `RECORD.md` from the imported manuscript, not from speculation. Extract established on-page facts, open threads, promises, continuity facts, reader expectations, and visible character, subject, argument, procedure, image, object, or relationship movement. Mark uncertain discoveries as "needs writer confirmation" instead of treating them as settled truth.
34
+
35
+ 8. **Set STATE.md** to reflect that all imported units are drafted but not yet reviewed. This lets the writer pick up with `/scr:editor-review` or `/scr:next`.
36
+
37
+ 9. **Generate a report.** Tell the writer:
38
+ ```
39
+ Imported [filename] as a [work_type].
40
+
41
+ Structure detected: X chapters, Y scenes total
42
+ Word count: 65,432
43
+ Voice profile: extracted from 2000-word sample (review in STYLE-GUIDE.md)
44
+ Characters detected: 7 (review in CHARACTERS.md)
45
+ Record initialized: established facts and open threads extracted into RECORD.md
46
+
47
+ Some things I wasn't sure about:
48
+ - [specific flags: uncertain chapter breaks, possible POV shifts, etc.]
49
+
50
+ Next steps:
51
+ - Review STYLE-GUIDE.md and CHARACTERS.md -- confirm or adjust
52
+ - Run /scr:next to start working on the imported manuscript
53
+ ```
54
+
55
+ ## Edge cases
56
+
57
+ - **Messy source.** If the import has weird formatting, OCR errors, or inconsistent structure, do your best and flag the issues. Don't refuse the import.
58
+ - **Huge manuscript.** For texts over 200k words, warn about import time but proceed. Split voice analysis across multiple samples.
59
+ - **Mixed work types.** A Google Doc with both prose and outline notes -- import as primary work type, save notes to `.manuscript/notes/`.
60
+ - **Source in a different language.** Detect it. Ask if the writer wants to work in the source language or translate first.
61
+ - **No clear structure.** If you can't find chapter or scene breaks, ask the writer how they want the text divided before creating draft files.
62
+
63
+ ## What NOT to do
64
+
65
+ - Don't "improve" the writer's text during import. Preserve it exactly. They'll revise via normal commands.
66
+ - Don't rename files without asking.
67
+ - Don't skip voice analysis -- it's the highest-value part of import.
68
+ - Don't assume character roles without evidence. Mark uncertain roles as such.
69
+
70
+ ## Response Contract
71
+
72
+ 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.
73
+
74
+ Use this format:
75
+
76
+ ```markdown
77
+ Next commands:
78
+ - `/scr:...`: One short sentence explaining what this path will do.
79
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
80
+ ```
81
+
82
+ 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.
83
+
84
+ If the writer seems unsure or no specific next command is obvious, include this default option:
85
+
86
+ ```markdown
87
+ Next commands:
88
+ - `/scr:next`: Inspect the project state and choose the right next step.
89
+ ```
90
+
91
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
92
+
93
+ ## Tone
94
+
95
+ Respectful. The writer has worked on this text. You're bringing it into a new system, not judging it. Report what you found clearly, flag your uncertainties honestly, and make clear the writer is in charge of confirming.