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.
- package/LICENSE +21 -0
- package/README.md +222 -0
- package/agents/continuity-checker.md +85 -0
- package/agents/drafter.md +248 -0
- package/agents/plan-checker.md +209 -0
- package/agents/researcher.md +114 -0
- package/agents/translator.md +204 -0
- package/agents/voice-checker.md +154 -0
- package/bin/install.js +1620 -0
- package/commands/scr/add-note.md +51 -0
- package/commands/scr/add-unit.md +101 -0
- package/commands/scr/art-direction.md +225 -0
- package/commands/scr/autopilot-publish.md +210 -0
- package/commands/scr/autopilot-translate.md +237 -0
- package/commands/scr/autopilot.md +200 -0
- package/commands/scr/back-matter.md +630 -0
- package/commands/scr/back-translate.md +197 -0
- package/commands/scr/beta-reader.md +97 -0
- package/commands/scr/blurb.md +149 -0
- package/commands/scr/book-proposal.md +210 -0
- package/commands/scr/build-ebook.md +448 -0
- package/commands/scr/build-poetry-submission.md +202 -0
- package/commands/scr/build-print.md +598 -0
- package/commands/scr/build-smashwords.md +171 -0
- package/commands/scr/build-world.md +158 -0
- package/commands/scr/cast-list.md +104 -0
- package/commands/scr/chapter-header.md +158 -0
- package/commands/scr/character-arc.md +108 -0
- package/commands/scr/character-ref.md +160 -0
- package/commands/scr/character-sheet.md +143 -0
- package/commands/scr/character-touch.md +157 -0
- package/commands/scr/character-voice-sample.md +111 -0
- package/commands/scr/check-notes.md +50 -0
- package/commands/scr/cleanup.md +159 -0
- package/commands/scr/compare.md +112 -0
- package/commands/scr/complete-draft.md +49 -0
- package/commands/scr/continuity-check.md +129 -0
- package/commands/scr/copy-edit.md +118 -0
- package/commands/scr/cover-art.md +382 -0
- package/commands/scr/cultural-adaptation.md +177 -0
- package/commands/scr/demo.md +93 -0
- package/commands/scr/dialogue-audit.md +143 -0
- package/commands/scr/discuss.md +118 -0
- package/commands/scr/discussion-questions.md +129 -0
- package/commands/scr/do.md +68 -0
- package/commands/scr/draft.md +97 -0
- package/commands/scr/editor-review.md +466 -0
- package/commands/scr/export.md +942 -0
- package/commands/scr/fast.md +65 -0
- package/commands/scr/front-matter.md +696 -0
- package/commands/scr/health.md +113 -0
- package/commands/scr/help.md +121 -0
- package/commands/scr/history.md +92 -0
- package/commands/scr/illustrate-scene.md +211 -0
- package/commands/scr/import.md +95 -0
- package/commands/scr/insert-unit.md +108 -0
- package/commands/scr/line-edit.md +146 -0
- package/commands/scr/manager.md +77 -0
- package/commands/scr/manuscript-stats.md +139 -0
- package/commands/scr/map-illustration.md +213 -0
- package/commands/scr/map-manuscript.md +134 -0
- package/commands/scr/merge-units.md +136 -0
- package/commands/scr/multi-publish.md +344 -0
- package/commands/scr/new-character.md +167 -0
- package/commands/scr/new-revision.md +50 -0
- package/commands/scr/new-work.md +148 -0
- package/commands/scr/next.md +125 -0
- package/commands/scr/originality-check.md +170 -0
- package/commands/scr/outline.md +131 -0
- package/commands/scr/pacing-analysis.md +170 -0
- package/commands/scr/panel-layout.md +225 -0
- package/commands/scr/pause-work.md +88 -0
- package/commands/scr/plan.md +112 -0
- package/commands/scr/plant-seed.md +57 -0
- package/commands/scr/plot-graph.md +199 -0
- package/commands/scr/polish.md +141 -0
- package/commands/scr/profile-writer.md +154 -0
- package/commands/scr/progress.md +51 -0
- package/commands/scr/publish.md +455 -0
- package/commands/scr/query-letter.md +183 -0
- package/commands/scr/quick-write.md +82 -0
- package/commands/scr/relationship-map.md +129 -0
- package/commands/scr/remove-unit.md +120 -0
- package/commands/scr/reorder-units.md +126 -0
- package/commands/scr/resume-work.md +97 -0
- package/commands/scr/sacred/annotation-layer.md +105 -0
- package/commands/scr/sacred/chronology.md +121 -0
- package/commands/scr/sacred/concordance.md +88 -0
- package/commands/scr/sacred/cross-reference.md +97 -0
- package/commands/scr/sacred/doctrinal-check.md +129 -0
- package/commands/scr/sacred/genealogy.md +107 -0
- package/commands/scr/sacred/source-tracking.md +101 -0
- package/commands/scr/sacred/verse-numbering.md +103 -0
- package/commands/scr/sacred-numbering-format.md +103 -0
- package/commands/scr/save.md +109 -0
- package/commands/scr/scan.md +291 -0
- package/commands/scr/sensitivity-review.md +169 -0
- package/commands/scr/series-bible.md +127 -0
- package/commands/scr/session-report.md +80 -0
- package/commands/scr/settings.md +58 -0
- package/commands/scr/split-unit.md +123 -0
- package/commands/scr/spread-layout.md +187 -0
- package/commands/scr/storyboard.md +262 -0
- package/commands/scr/subject-touch.md +168 -0
- package/commands/scr/submit.md +50 -0
- package/commands/scr/subplot-map.md +147 -0
- package/commands/scr/sync.md +116 -0
- package/commands/scr/synopsis.md +137 -0
- package/commands/scr/theme-tracker.md +128 -0
- package/commands/scr/thread.md +83 -0
- package/commands/scr/timeline.md +141 -0
- package/commands/scr/track.md +564 -0
- package/commands/scr/translate.md +260 -0
- package/commands/scr/translation-glossary.md +298 -0
- package/commands/scr/translation-memory.md +310 -0
- package/commands/scr/troubleshoot.md +59 -0
- package/commands/scr/undo.md +106 -0
- package/commands/scr/validate.md +133 -0
- package/commands/scr/versions.md +94 -0
- package/commands/scr/voice-check.md +133 -0
- package/commands/scr/voice-test.md +68 -0
- package/data/CONSTRAINTS.json +1606 -0
- package/data/demo/.manuscript/BRIEF.md +37 -0
- package/data/demo/.manuscript/CHARACTERS.md +90 -0
- package/data/demo/.manuscript/OUTLINE.md +46 -0
- package/data/demo/.manuscript/PLOT-GRAPH.md +75 -0
- package/data/demo/.manuscript/STATE.md +44 -0
- package/data/demo/.manuscript/STYLE-GUIDE.md +119 -0
- package/data/demo/.manuscript/THEMES.md +51 -0
- package/data/demo/.manuscript/WORK.md +51 -0
- package/data/demo/.manuscript/config.json +59 -0
- package/data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md +45 -0
- package/data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md +59 -0
- package/data/demo/.manuscript/plans/5-the-reunion-PLAN.md +52 -0
- package/data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md +61 -0
- package/data/export-templates/scriveno-academic.latex +184 -0
- package/data/export-templates/scriveno-acm.latex +67 -0
- package/data/export-templates/scriveno-apa7.latex +83 -0
- package/data/export-templates/scriveno-book.typst +175 -0
- package/data/export-templates/scriveno-chapbook.typst +121 -0
- package/data/export-templates/scriveno-elsevier.latex +76 -0
- package/data/export-templates/scriveno-epub.css +386 -0
- package/data/export-templates/scriveno-fixed-layout-epub.css +76 -0
- package/data/export-templates/scriveno-fixed-layout.opf +23 -0
- package/data/export-templates/scriveno-ieee.latex +77 -0
- package/data/export-templates/scriveno-lncs.latex +79 -0
- package/data/export-templates/scriveno-picturebook.typst +113 -0
- package/data/export-templates/scriveno-poetry-submission-styles.md +45 -0
- package/data/export-templates/scriveno-poetry-submission.docx +0 -0
- package/data/export-templates/scriveno-smashwords-styles.md +45 -0
- package/data/export-templates/scriveno-smashwords.docx +0 -0
- package/data/export-templates/scriveno-stageplay.typst +129 -0
- package/data/proof/creative-context/README.md +79 -0
- package/data/proof/voice-dna/GUIDED-SAMPLE.md +19 -0
- package/data/proof/voice-dna/README.md +45 -0
- package/data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md +43 -0
- package/data/proof/voice-dna/UNGUIDED-SAMPLE.md +11 -0
- package/data/proof/watchmaker-flow/README.md +78 -0
- package/docs/architecture.md +425 -0
- package/docs/command-reference.md +2384 -0
- package/docs/configuration.md +228 -0
- package/docs/context-protocol.md +81 -0
- package/docs/contributing.md +430 -0
- package/docs/creative-context.md +158 -0
- package/docs/development.md +152 -0
- package/docs/drafter-quality.md +127 -0
- package/docs/getting-started.md +198 -0
- package/docs/history-protocol.md +96 -0
- package/docs/proof-artifacts.md +56 -0
- package/docs/publishing.md +296 -0
- package/docs/release-notes.md +457 -0
- package/docs/runtime-support.md +77 -0
- package/docs/sacred-texts.md +296 -0
- package/docs/shipped-assets.md +129 -0
- package/docs/testing.md +156 -0
- package/docs/translation.md +343 -0
- package/docs/voice-dna.md +297 -0
- package/docs/work-types.md +339 -0
- package/lib/architectural-profiles.js +134 -0
- package/package.json +54 -0
- package/templates/BRIEF.md +51 -0
- package/templates/CHARACTERS.md +64 -0
- package/templates/CONTEXT.md +56 -0
- package/templates/OUTLINE.md +36 -0
- package/templates/RECORD.md +68 -0
- package/templates/STATE.md +50 -0
- package/templates/STYLE-GUIDE.md +121 -0
- package/templates/THEMES.md +36 -0
- package/templates/WORK.md +67 -0
- package/templates/WORLD.md +62 -0
- package/templates/WRITING-RULES.md +156 -0
- package/templates/academic/ARGUMENT-MAP.md +40 -0
- package/templates/academic/CONCEPTS.md +34 -0
- package/templates/academic/CONTEXT.md +29 -0
- package/templates/academic/PROPOSAL.md +37 -0
- package/templates/academic/QUESTIONS.md +24 -0
- package/templates/config.json +72 -0
- package/templates/pitfalls/comic.md +54 -0
- package/templates/pitfalls/commentary.md +62 -0
- package/templates/pitfalls/memoir.md +48 -0
- package/templates/pitfalls/novel.md +53 -0
- package/templates/pitfalls/poetry_collection.md +63 -0
- package/templates/pitfalls/research_paper.md +66 -0
- package/templates/pitfalls/runbook.md +64 -0
- package/templates/pitfalls/screenplay.md +54 -0
- package/templates/platforms/README.md +16 -0
- package/templates/platforms/apple/manifest.yaml +20 -0
- package/templates/platforms/bn/manifest.yaml +20 -0
- package/templates/platforms/d2d/manifest.yaml +20 -0
- package/templates/platforms/google/manifest.yaml +20 -0
- package/templates/platforms/ingram/manifest.yaml +44 -0
- package/templates/platforms/kdp/manifest.yaml +42 -0
- package/templates/platforms/kobo/manifest.yaml +20 -0
- package/templates/platforms/smashwords/manifest.yaml +26 -0
- package/templates/sacred/COSMOLOGY.md +88 -0
- package/templates/sacred/DOCTRINES.md +45 -0
- package/templates/sacred/FIGURES.md +69 -0
- package/templates/sacred/FRAMEWORK.md +98 -0
- package/templates/sacred/LINEAGES.md +52 -0
- package/templates/sacred/README.md +20 -0
- package/templates/sacred/THEOLOGICAL-ARC.md +69 -0
- package/templates/sacred/catholic/manifest.yaml +93 -0
- package/templates/sacred/islamic-hafs/manifest.yaml +134 -0
- package/templates/sacred/islamic-warsh/manifest.yaml +134 -0
- package/templates/sacred/jewish/manifest.yaml +56 -0
- package/templates/sacred/orthodox/manifest.yaml +98 -0
- package/templates/sacred/pali/manifest.yaml +20 -0
- package/templates/sacred/protestant/manifest.yaml +86 -0
- package/templates/sacred/sanskrit/manifest.yaml +20 -0
- package/templates/sacred/tewahedo/manifest.yaml +106 -0
- package/templates/sacred/tibetan/manifest.yaml +20 -0
- package/templates/technical/AUDIENCE.md +26 -0
- package/templates/technical/DEPENDENCIES.md +19 -0
- package/templates/technical/DOC-BRIEF.md +45 -0
- package/templates/technical/PROCEDURES.md +37 -0
- package/templates/technical/REFERENCES.md +36 -0
- 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.
|