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,344 @@
1
+ ---
2
+ description: Export translated editions in all target formats with localized front/back matter and language-specific formatting.
3
+ argument-hint: "[--languages <lang1,lang2,...>] [--format <format>] [--all-languages] [--all-formats]"
4
+ ---
5
+
6
+ # /scr:multi-publish -- Multi-Language Export
7
+
8
+ Export translated editions in all target formats with localized front matter, back matter, and language-specific formatting. Chains to the export command for each language with language-specific metadata and output paths.
9
+
10
+ ## Usage
11
+
12
+ ```
13
+ /scr:multi-publish [--languages <lang1,lang2,...>] [--format <format>] [--all-languages] [--all-formats]
14
+ ```
15
+
16
+ - `--languages <lang1,lang2,...>` -- Comma-separated list of language codes to export
17
+ - `--format <format>` -- Specific export format (markdown, docx, pdf, epub, etc.)
18
+ - `--all-languages` -- Export all languages in `target_languages`
19
+ - `--all-formats` -- Export all available formats for the work type
20
+
21
+ If no flags are given, prompt the writer for language and format selection.
22
+
23
+ ## Instruction
24
+
25
+ You are a **multi-language publishing specialist**. Your job is to take translated manuscripts and produce publication-ready exports for each language, with properly localized front matter, back matter, and language-specific formatting conventions.
26
+
27
+ ---
28
+
29
+ ### STEP 0: BOOTSTRAP (context-cost protocol)
30
+
31
+ 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 as your orientation source for project title, work type, phase, current unit, and open items. In STEP 1, skip the raw-file loads for those fields -- still load language manifests, translation glossaries, and any per-language config CONTEXT.md does not surface.
32
+
33
+ If CONTEXT.md is missing, stale, or contradicts STATE.md, fall back to the original loads in STEP 1 unchanged. See `docs/context-protocol.md` for the contract.
34
+
35
+ ---
36
+
37
+ ### STEP 1: LOAD CONTEXT
38
+
39
+ 1. Load `.manuscript/config.json` for `target_languages`, `source_language`, `work_type`, title, author
40
+ 2. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) -- check prerequisites: `multi-publish` requires `translate` and `kdp-package`
41
+ 3. Load `.manuscript/OUTLINE.md` for document structure
42
+ 4. Check which translations exist by scanning `.manuscript/translation/` for language subdirectories with drafts
43
+
44
+ **If no flags are provided:**
45
+ > Which languages would you like to export?
46
+ >
47
+ > Available translations: [list languages with translations]
48
+ >
49
+ > And which format(s)?
50
+ > 1. epub -- Ebook (all stores)
51
+ > 2. docx -- Manuscript format
52
+ > 3. pdf -- PDF (manuscript)
53
+ > 4. pdf --print-ready -- Print-ready PDF
54
+ > 5. markdown -- Plain markdown
55
+ > 6. kdp-package -- Amazon KDP package
56
+ > 7. ingram-package -- IngramSpark package
57
+ > 8. All available formats
58
+
59
+ **If `--all-languages`:** Resolve to all languages that have completed translations in `.manuscript/translation/{lang}/drafts/`. Skip any language without translations and note it:
60
+ > Skipping [language] -- no translation found. Run `/scr:translate [language]` first.
61
+
62
+ **If `--all-formats`:** Resolve to all export formats available for the current work type group (check `CONSTRAINTS.json` exports section).
63
+
64
+ ---
65
+
66
+ ### STEP 2: CHECK PREREQUISITES
67
+
68
+ For each selected language, verify:
69
+
70
+ 1. Translation drafts exist at `.manuscript/translation/{lang}/drafts/`
71
+ 2. The export pipeline is functional (check for required tools based on format -- same checks as `/scr:export`)
72
+ 3. Source front matter exists at `.manuscript/front-matter/` (will be used as basis for localization)
73
+ 4. Source back matter exists at `.manuscript/back-matter/` (will be used as basis for localization)
74
+
75
+ If front or back matter is missing from the source:
76
+ > **Note:** No source [front/back] matter found. Localized [front/back] matter cannot be generated without a source. Run `/scr:[front-matter/back-matter]` first, or export will include body content only.
77
+
78
+ ---
79
+
80
+ ### STEP 3: LOCALIZE FRONT MATTER (per language)
81
+
82
+ For each language, generate translated front matter elements. Store in `.manuscript/translation/{lang}/front-matter/`.
83
+
84
+ #### 3a. Title Page
85
+
86
+ - Translate the title and subtitle into the target language
87
+ - Author name: keep in original script by default. If the target language uses a different script (e.g., Japanese, Arabic, Chinese, Korean), also provide the author name transliterated into the target script
88
+ - Publisher name: keep original or translate if a local imprint is configured
89
+
90
+ Save to `.manuscript/translation/{lang}/front-matter/03-title-page.md`
91
+
92
+ #### 3b. Copyright Page
93
+
94
+ Generate a translated copyright notice:
95
+
96
+ ```
97
+ Copyright (c) [Year] [Author Name]
98
+ [Translated "All rights reserved" in target language]
99
+
100
+ [Translation credit line]:
101
+ [Translated by: [translator name if configured, or "Machine-assisted translation"]]
102
+
103
+ [ISBN for this language edition if configured in config.json]
104
+ [Original title: [source title] by [author]]
105
+ ```
106
+
107
+ Save to `.manuscript/translation/{lang}/front-matter/04-copyright.md`
108
+
109
+ #### 3c. Dedication and Epigraph
110
+
111
+ - If the source dedication exists, translate it. If the writer has marked it as "preserve in source language" in config, keep the original.
112
+ - If the source epigraph exists, translate it and include the original attribution.
113
+
114
+ Save to `.manuscript/translation/{lang}/front-matter/05-dedication.md` and `06-epigraph.md` as applicable.
115
+
116
+ #### 3d. Table of Contents
117
+
118
+ Generate a translated table of contents using the translated chapter/section titles from the translation drafts.
119
+
120
+ Save to `.manuscript/translation/{lang}/front-matter/07-toc.md`
121
+
122
+ ---
123
+
124
+ ### STEP 4: LOCALIZE BACK MATTER (per language)
125
+
126
+ For each language, generate translated back matter elements. Store in `.manuscript/translation/{lang}/back-matter/`.
127
+
128
+ #### 4a. About the Author
129
+
130
+ Translate the author bio from `.manuscript/back-matter/about-author.md`.
131
+
132
+ Save to `.manuscript/translation/{lang}/back-matter/about-author.md`
133
+
134
+ #### 4b. Also By / Series Title
135
+
136
+ Translate the "Also by" list. If local marketplace ISBNs are configured (in `.manuscript/config.json` under `translations.{lang}.isbns`), include them. Otherwise, list titles with original ISBNs.
137
+
138
+ Save to `.manuscript/translation/{lang}/back-matter/also-by.md`
139
+
140
+ #### 4c. Acknowledgments
141
+
142
+ Translate the acknowledgments from `.manuscript/back-matter/acknowledgments.md` if it exists.
143
+
144
+ Save to `.manuscript/translation/{lang}/back-matter/acknowledgments.md`
145
+
146
+ #### 4d. Translator Acknowledgment
147
+
148
+ Auto-generate a translator credit line in the target language:
149
+
150
+ ```markdown
151
+ # Translator's Note
152
+
153
+ This [work_type] was originally written in [source_language_name] by [author].
154
+ [Translation credit: translator name if configured, or translation method note.]
155
+ ```
156
+
157
+ Save to `.manuscript/translation/{lang}/back-matter/translator-note.md`
158
+
159
+ ---
160
+
161
+ ### STEP 5: APPLY LANGUAGE-SPECIFIC FORMATTING
162
+
163
+ Before compiling the final document, apply formatting conventions specific to the target language.
164
+
165
+ #### 5a. Quotation Marks
166
+
167
+ Replace quotation marks with the target language convention:
168
+
169
+ | Language | Primary | Nested |
170
+ |----------|---------|--------|
171
+ | English (en) | \u201c \u201d | \u2018 \u2019 |
172
+ | French (fr) | \u00ab \u00bb | \u201c \u201d |
173
+ | German (de) | \u201e \u201c | \u201a \u2018 |
174
+ | Spanish (es) | \u00ab \u00bb | \u201c \u201d |
175
+ | Italian (it) | \u00ab \u00bb | \u201c \u201d |
176
+ | Japanese (ja) | \u300c \u300d | \u300e \u300f |
177
+ | Chinese (zh) | \u300c \u300d | \u300e \u300f |
178
+ | Russian (ru) | \u00ab \u00bb | \u201e \u201c |
179
+ | Portuguese (pt) | \u00ab \u00bb | \u201c \u201d |
180
+ | Polish (pl) | \u201e \u201d | \u00ab \u00bb |
181
+ | Korean (ko) | \u300c \u300d | \u300e \u300f |
182
+ | Arabic (ar) | \u00ab \u00bb | \u201c \u201d |
183
+ | Hebrew (he) | \u201c \u201d | \u2018 \u2019 |
184
+
185
+ #### 5b. Punctuation Spacing
186
+
187
+ Apply language-specific punctuation spacing rules:
188
+
189
+ - **French:** Insert thin non-breaking space (U+202F) before `;`, `:`, `!`, `?`. Insert thin non-breaking space after opening `\u00ab` and before closing `\u00bb`.
190
+ - **English:** No extra spacing around punctuation.
191
+ - **Other languages:** Follow standard conventions for the target language.
192
+
193
+ #### 5c. Text Direction
194
+
195
+ Determine text direction from language code:
196
+
197
+ - **RTL languages:** `ar` (Arabic), `he` (Hebrew), `fa` (Persian), `ur` (Urdu)
198
+ - **LTR languages:** All others
199
+
200
+ Set the appropriate direction for Pandoc and Typst output:
201
+ - Pandoc: `--variable dir=rtl` or `--variable dir=ltr`
202
+ - Typst: Uses `text-dir` parameter (already prepared in Phase 5 template)
203
+
204
+ #### 5d. Number Formatting
205
+
206
+ Apply locale-specific number formatting:
207
+
208
+ - **Decimal comma** (most of Europe, South America): 1.000,50
209
+ - **Decimal period** (English-speaking, East Asia): 1,000.50
210
+
211
+ Only convert numbers in narrative text, not in code blocks or technical references.
212
+
213
+ ---
214
+
215
+ ### STEP 6: COMPILE AND EXPORT
216
+
217
+ For each language and format combination:
218
+
219
+ #### 6a. Assemble Document
220
+
221
+ Compile the full translated document in order:
222
+
223
+ 1. Localized front matter (from `.manuscript/translation/{lang}/front-matter/`, sorted by numeric prefix)
224
+ 2. Translated body (from `.manuscript/translation/{lang}/drafts/`, ordered by OUTLINE.md)
225
+ 3. Localized back matter (from `.manuscript/translation/{lang}/back-matter/`)
226
+
227
+ Insert `\newpage` page break markers between major sections.
228
+
229
+ Write the assembled document to `.manuscript/translation/{lang}/assembled-manuscript.md`.
230
+
231
+ #### 6b. Generate Language-Specific Metadata
232
+
233
+ Create metadata for Pandoc:
234
+
235
+ ```yaml
236
+ ---
237
+ title: "[translated title]"
238
+ subtitle: "[translated subtitle]"
239
+ author:
240
+ - name: "[author name]"
241
+ language: "[lang code]"
242
+ dir: "[ltr or rtl]"
243
+ rights: "Copyright [year] [author]. [Translated rights statement]."
244
+ date: "[current year]"
245
+ translator: "[translator name if configured]"
246
+ original-title: "[source language title]"
247
+ ---
248
+ ```
249
+
250
+ Write to `.manuscript/translation/{lang}/metadata.yaml`.
251
+
252
+ #### 6c. Chain to Export
253
+
254
+ Invoke the export pipeline with language-specific parameters:
255
+
256
+ - **Output directory:** `.manuscript/output/translations/{lang}/`
257
+ - **Filename:** `manuscript-{lang}.{ext}` (e.g., `manuscript-fr.epub`, `manuscript-de.pdf`)
258
+ - **Metadata file:** `.manuscript/translation/{lang}/metadata.yaml`
259
+ - **Input file:** `.manuscript/translation/{lang}/assembled-manuscript.md`
260
+
261
+ For each format, run the equivalent of the export command with language-specific paths:
262
+
263
+ ```bash
264
+ mkdir -p .manuscript/output/translations/{lang}
265
+
266
+ # Example for EPUB:
267
+ pandoc .manuscript/translation/{lang}/assembled-manuscript.md \
268
+ -o .manuscript/output/translations/{lang}/manuscript-{lang}.epub \
269
+ --metadata-file=.manuscript/translation/{lang}/metadata.yaml \
270
+ --css=data/export-templates/scriveno-epub.css \
271
+ --toc --toc-depth=2 --split-level=1
272
+
273
+ # Example for PDF:
274
+ pandoc .manuscript/translation/{lang}/assembled-manuscript.md \
275
+ -o .manuscript/output/translations/{lang}/manuscript-{lang}.pdf \
276
+ --pdf-engine=typst \
277
+ --metadata-file=.manuscript/translation/{lang}/metadata.yaml \
278
+ --toc --toc-depth=1 \
279
+ -V dir={ltr|rtl}
280
+ ```
281
+
282
+ #### 6d. Package (if applicable)
283
+
284
+ If the format is `kdp-package` or `ingram-package`, create a language-specific package:
285
+
286
+ - Output to `.manuscript/output/translations/{lang}/kdp-package/` or `.manuscript/output/translations/{lang}/ingram-package/`
287
+ - Include language-specific cover specs with translated title
288
+ - Include language-specific metadata with local marketplace ISBNs if configured
289
+
290
+ ---
291
+
292
+ ### STEP 7: SUMMARY
293
+
294
+ After all languages and formats are exported, display a summary:
295
+
296
+ ```
297
+ Multi-Language Export Complete
298
+ ==============================
299
+
300
+ | Language | Format | Output Path | Status |
301
+ |----------|--------|-------------|--------|
302
+ | French (fr) | epub | .manuscript/output/translations/fr/manuscript-fr.epub | Done |
303
+ | French (fr) | pdf | .manuscript/output/translations/fr/manuscript-fr.pdf | Done |
304
+ | German (de) | epub | .manuscript/output/translations/de/manuscript-de.epub | Done |
305
+
306
+ Languages exported: [count]
307
+ Formats per language: [count]
308
+ Total files: [count]
309
+ Output root: .manuscript/output/translations/
310
+
311
+ Localized elements per language:
312
+ - Front matter: [count] elements
313
+ - Back matter: [count] elements
314
+ - Formatting applied: quotation marks, punctuation spacing, text direction
315
+
316
+ Next steps:
317
+ - Review exported files in each language directory
318
+ - Run /scr:cultural-adaptation <lang> if not already done
319
+ - Run /scr:back-translate <lang> for quality verification
320
+ - Upload language-specific packages to their respective marketplaces
321
+ ```
322
+
323
+ ## Response Contract
324
+
325
+ 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.
326
+
327
+ Use this format:
328
+
329
+ ```markdown
330
+ Next commands:
331
+ - `/scr:...`: One short sentence explaining what this path will do.
332
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
333
+ ```
334
+
335
+ 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.
336
+
337
+ If the writer seems unsure or no specific next command is obvious, include this default option:
338
+
339
+ ```markdown
340
+ Next commands:
341
+ - `/scr:next`: Inspect the project state and choose the right next step.
342
+ ```
343
+
344
+ 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,167 @@
1
+ ---
2
+ description: Build a complete character profile through guided interactive interview.
3
+ ---
4
+
5
+ # /scr:new-character -- Interactive Character Creation
6
+
7
+ Build a complete character profile through guided interview.
8
+
9
+ ## Usage
10
+ ```
11
+ /scr:new-character <name>
12
+ ```
13
+
14
+ ## Instruction
15
+
16
+ You are creating a new character for the creative work. Load:
17
+ - `WORK.md` (genre, tone, setting context)
18
+ - `CHARACTERS.md` (existing characters -- to ensure distinctiveness)
19
+ - `RELATIONSHIPS.md` (existing relationship dynamics)
20
+ - `THEMES.md` (thematic threads this character might serve)
21
+
22
+ ---
23
+
24
+ ### INTERVIEW PROCESS
25
+
26
+ Ask these questions adaptively. Skip what doesn't apply to the genre/form. Go deeper where the writer has energy.
27
+
28
+ <character_interview>
29
+ <section name="identity">
30
+ <q>Full name and any nicknames/aliases?</q>
31
+ <q>Age and life stage?</q>
32
+ <q>Role in the story? (Protagonist, antagonist, mentor, love interest, foil, comic relief, etc.)</q>
33
+ <q>First impression -- what do people notice first about them?</q>
34
+ </section>
35
+
36
+ <section name="psychology">
37
+ <q>What do they WANT? (Conscious desire -- what they're pursuing)</q>
38
+ <q>What do they NEED? (Unconscious need -- what would actually fulfill them)</q>
39
+ <q>What is their core wound or defining experience?</q>
40
+ <q>What is their greatest fear?</q>
41
+ <q>What is their lie -- the false belief they carry?</q>
42
+ <q>What is their ghost -- the backstory event that shaped them?</q>
43
+ </section>
44
+
45
+ <section name="arc">
46
+ <q>Where do they start emotionally/spiritually?</q>
47
+ <q>Where do they end up?</q>
48
+ <q>What is their arc type? (Change, growth, fall, steadfast, flat/catalytic)</q>
49
+ <q>What is the key turning point that triggers their transformation?</q>
50
+ </section>
51
+
52
+ <section name="voice">
53
+ <q>How do they speak? (Vocabulary, rhythm, tics, catchphrases)</q>
54
+ <q>What's their internal monologue like? (If we're in their head)</q>
55
+ <q>How do they differ from other characters in speech?</q>
56
+ <q>Do they have a physical mannerism or gesture?</q>
57
+ </section>
58
+
59
+ <section name="persona_under_pressure">
60
+ <q>What do they do when afraid?</q>
61
+ <q>How do they lie, deflect, or avoid the truth?</q>
62
+ <q>What changes in their body or speech when they are under pressure?</q>
63
+ </section>
64
+
65
+ <section name="relationships">
66
+ <q>How do they relate to [each existing character]?</q>
67
+ <q>Who do they trust? Who do they distrust?</q>
68
+ <q>What's their attachment style? (Secure, anxious, avoidant, disorganized)</q>
69
+ <q>How do they speak differently with someone they trust versus someone they fear?</q>
70
+ <q>Which relationship changes them the most on the page?</q>
71
+ </section>
72
+
73
+ <section name="world_connection">
74
+ <q>Where are they from? Where do they live now?</q>
75
+ <q>What's their socioeconomic position?</q>
76
+ <q>What is their profession/occupation?</q>
77
+ <q>What communities do they belong to?</q>
78
+ </section>
79
+
80
+ <section name="craft_purpose">
81
+ <q>What thematic thread does this character carry?</q>
82
+ <q>What narrative function do they serve beyond plot? (Mirror, foil, comic relief, moral compass)</q>
83
+ <q>Which existing character do they most contrast with, and how?</q>
84
+ </section>
85
+ </character_interview>
86
+
87
+ ---
88
+
89
+ ### GENERATE PROFILE
90
+
91
+ Create the character profile and append to `CHARACTERS.md`:
92
+
93
+ <character_profile>
94
+ ## [Character Name]
95
+
96
+ **Role:** [Story role]
97
+ **Arc Type:** [Change/Growth/Fall/Steadfast/Flat]
98
+
99
+ ### Identity
100
+ - Age, appearance, first impression
101
+ - Background summary
102
+
103
+ ### Psychology
104
+ - **Want:** [Conscious desire]
105
+ - **Need:** [Unconscious need]
106
+ - **Lie:** [False belief]
107
+ - **Ghost:** [Formative backstory event]
108
+ - **Fear:** [Greatest fear]
109
+
110
+ ### Arc
111
+ - **Start:** [Emotional/spiritual starting position]
112
+ - **Turning Point:** [Key moment of change]
113
+ - **End:** [Where they arrive]
114
+
115
+ ### Voice
116
+ - Speaking style, vocabulary, rhythm
117
+ - Internal monologue style (if POV character)
118
+ - Distinguishing speech patterns
119
+ - Physical mannerisms
120
+
121
+ ### Persona Under Pressure
122
+ - When afraid
123
+ - When angry
124
+ - When lying or avoiding truth
125
+ - When vulnerable
126
+ - Physical tells
127
+
128
+ ### Thematic Function
129
+ - Which themes this character embodies or challenges
130
+ - Narrative purpose beyond plot
131
+
132
+ ### Key Relationships
133
+ - [Character A]: nature of relationship, dynamic, tension
134
+ - [Character B]: ...
135
+
136
+ ### Relationship-Specific Interactions
137
+ - [Character A]: trust posture, conflict pattern, speech shift, hidden agenda or fear
138
+ - [Character B]: trust posture, conflict pattern, speech shift, hidden agenda or fear
139
+ </character_profile>
140
+
141
+ Update `RELATIONSHIPS.md` with new connections.
142
+ Update `THEMES.md` if this character introduces or reinforces themes.
143
+
144
+ Commit: `character: add {name}`
145
+
146
+ ## Response Contract
147
+
148
+ 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.
149
+
150
+ Use this format:
151
+
152
+ ```markdown
153
+ Next commands:
154
+ - `/scr:...`: One short sentence explaining what this path will do.
155
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
156
+ ```
157
+
158
+ 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.
159
+
160
+ If the writer seems unsure or no specific next command is obvious, include this default option:
161
+
162
+ ```markdown
163
+ Next commands:
164
+ - `/scr:next`: Inspect the project state and choose the right next step.
165
+ ```
166
+
167
+ 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,50 @@
1
+ ---
2
+ description: Start a new revision of the manuscript. Archives the current draft and begins a fresh pass.
3
+ argument-hint: ""
4
+ ---
5
+
6
+ # New Revision
7
+
8
+ You are starting a new revision of the manuscript.
9
+
10
+ ## Prerequisites
11
+
12
+ - A completed or in-progress draft must exist
13
+
14
+ ## What to do
15
+
16
+ 0. **Bootstrap (context-cost protocol).** 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 STATE.md raw value of the current revision number (CONTEXT.md does not surface it), so this command's bootstrap savings are limited; the orientation skip is the only win here. If CONTEXT.md is missing or stale, run step 1 unchanged. See `docs/context-protocol.md`.
17
+
18
+ 1. Load `.manuscript/STATE.md` for current revision number
19
+ 2. Archive the current draft files to `.manuscript/archive/revision-{N}/`
20
+ 3. Copy current draft files as the starting point for the new revision
21
+ 4. Increment the revision number in STATE.md
22
+ 5. Reset unit statuses to "ready for review" in STATE.md
23
+ 6. Report: "Revision {N+1} started. Previous draft archived to archive/revision-{N}/. All units are ready for review."
24
+
25
+ ## Response Contract
26
+
27
+ Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.
28
+
29
+ Use this format:
30
+
31
+ ```markdown
32
+ Next commands:
33
+ - `/scr:...`: One short sentence explaining what this path will do.
34
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
35
+ ```
36
+
37
+ If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.
38
+
39
+ If the writer seems unsure or no specific next command is obvious, include this default option:
40
+
41
+ ```markdown
42
+ Next commands:
43
+ - `/scr:next`: Inspect the project state and choose the right next step.
44
+ ```
45
+
46
+ If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
47
+
48
+ ## Tone
49
+
50
+ Encouraging. Starting a new revision means the writer is committed to improving their work.