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,343 @@
|
|
|
1
|
+
# Translation Guide
|
|
2
|
+
|
|
3
|
+
Scriveno translates your manuscript into any language while preserving your voice. The translation pipeline handles glossary management, translation memory, cultural adaptation, quality verification, and multi-language publishing -- from setup to finished translated editions.
|
|
4
|
+
|
|
5
|
+
This guide covers the full pipeline: choosing a translation engine, translating your manuscript, managing terminology, verifying quality, and publishing in multiple languages.
|
|
6
|
+
|
|
7
|
+
## Translation Engines
|
|
8
|
+
|
|
9
|
+
Scriveno uses three translation approaches, each suited to different languages and content types.
|
|
10
|
+
|
|
11
|
+
**DeepL** -- Primary engine for European languages. Higher quality than alternatives for English, French, German, Spanish, Italian, Portuguese, Dutch, Polish, Japanese, Chinese, and Korean. GDPR-compliant -- your content is not stored or used for training.
|
|
12
|
+
|
|
13
|
+
**Google Cloud Translation** -- Broad language coverage with 130+ languages. Required for Arabic, Hebrew, Hindi, Swahili, and other languages DeepL does not cover. Best choice for RTL scripts and languages with limited DeepL support.
|
|
14
|
+
|
|
15
|
+
**AI Agent (Claude/GPT)** -- The AI agent itself handles literary nuance, sacred text translation, and cultural adaptation that machine translation APIs miss. It applies your voice profile, maintains glossary compliance, and can do formal/dynamic equivalence translation. This is Scriveno's default for literary content -- every unit is translated by the translator agent with your STYLE-GUIDE.md loaded.
|
|
16
|
+
|
|
17
|
+
The translator agent works unit by unit in fresh context (just like the drafter), ensuring consistent quality and glossary compliance across the entire manuscript.
|
|
18
|
+
|
|
19
|
+
## Getting Started with Translation
|
|
20
|
+
|
|
21
|
+
### Step 1: Add a Target Language
|
|
22
|
+
|
|
23
|
+
Configure the language you want to translate into:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/scr:translate --add-language fr
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
This adds French to your project's target languages in `.manuscript/config.json`. You can add as many languages as you need.
|
|
30
|
+
|
|
31
|
+
Check your configured languages anytime:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
/scr:translate --languages
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 2: Create a Glossary
|
|
38
|
+
|
|
39
|
+
Before translating, set up a glossary for consistent terminology:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
/scr:translation-glossary fr
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Scriveno scans your manuscript for character names, place names, invented terms, titles, recurring phrases, and cultural references, then generates suggested translations. Review and edit the glossary before starting translation -- the translator agent treats glossary entries as law.
|
|
46
|
+
|
|
47
|
+
### Step 3: Translate
|
|
48
|
+
|
|
49
|
+
Translate your manuscript:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
/scr:translate fr
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Scriveno translates one atomic unit at a time (scene, chapter, passage), each in fresh context with your STYLE-GUIDE.md, glossary, and translation memory loaded. You see progress per unit:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Translated chapter 1, scene 1: 1,247 -> 1,389 words (1.11x)
|
|
59
|
+
Translated chapter 1, scene 2: 980 -> 1,102 words (1.12x)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
To translate all configured languages:
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
/scr:translate --all
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
To resume from a specific unit (after interruption or revision):
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/scr:translate fr --from chapter-3-scene-1
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Step 4: Verify Quality
|
|
75
|
+
|
|
76
|
+
Run back-translation to check for meaning drift:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
/scr:back-translate fr
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This translates the French text back to English and shows a side-by-side comparison with drift annotations. See the [Quality Verification](#quality-verification) section for details.
|
|
83
|
+
|
|
84
|
+
## Glossary Management
|
|
85
|
+
|
|
86
|
+
Glossaries ensure that character names, place names, and invented terms are translated consistently throughout the manuscript. The translator agent checks the glossary for every unit -- inconsistent terminology across a translated manuscript destroys reader trust.
|
|
87
|
+
|
|
88
|
+
Glossaries are stored as readable markdown tables at `.manuscript/translation/GLOSSARY-{lang}.md`.
|
|
89
|
+
|
|
90
|
+
### Creating a Glossary
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
/scr:translation-glossary fr
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Scriveno extracts terms from your manuscript and generates an initial glossary with suggested translations. Terms are organized by category:
|
|
97
|
+
|
|
98
|
+
| Category | What It Covers |
|
|
99
|
+
|----------|---------------|
|
|
100
|
+
| `character_name` | Character names, nicknames, aliases |
|
|
101
|
+
| `place_name` | Locations, realms, geographical features |
|
|
102
|
+
| `invented_term` | Made-up words, neologisms, world-specific vocabulary |
|
|
103
|
+
| `title_honorific` | Titles, ranks, forms of address |
|
|
104
|
+
| `recurring_phrase` | Phrases that appear multiple times with specific meaning |
|
|
105
|
+
| `cultural_reference` | Setting-specific cultural elements |
|
|
106
|
+
| `brand_name` | Proper nouns, organization names |
|
|
107
|
+
|
|
108
|
+
### Name Handling
|
|
109
|
+
|
|
110
|
+
How character names are handled depends on your `name_handling` setting in `.manuscript/config.json`:
|
|
111
|
+
|
|
112
|
+
- **`keep_original`** -- Names stay in their original form. Transliterations are added in parentheses on first occurrence if the target language uses a different script.
|
|
113
|
+
- **`transliterate`** -- Names are transliterated into the target language's script (e.g., Marcus becomes in Japanese).
|
|
114
|
+
- **`localize`** -- Names are given culturally equivalent forms (e.g., John becomes Jean in French).
|
|
115
|
+
|
|
116
|
+
### Adding and Editing Terms
|
|
117
|
+
|
|
118
|
+
Add a single term:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
/scr:translation-glossary fr --add "chronoshifter" --translation "chronodecaleur" --category invented_term
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Bulk import terms:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
/scr:translation-glossary fr --import
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Review the glossary for missing terms and inconsistencies:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
/scr:translation-glossary fr --review
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The review mode scans your manuscript for terms that should be in the glossary but are not, and flags potential inconsistencies like similar terms that might confuse the translator.
|
|
137
|
+
|
|
138
|
+
## Translation Memory
|
|
139
|
+
|
|
140
|
+
Translation memory (TM) stores aligned source-target segment pairs from completed translations. When the translator agent works on a new unit, relevant TM segments are loaded into its context so it can reuse approved translations for recurring descriptions, dialogue tags, and narrative patterns.
|
|
141
|
+
|
|
142
|
+
The TM is stored at `.manuscript/translation/translation-memory.json`.
|
|
143
|
+
|
|
144
|
+
### When Translation Memory Matters
|
|
145
|
+
|
|
146
|
+
- **Sacred texts** -- Canonical terms and liturgical phrases must be translated identically every time
|
|
147
|
+
- **Series** -- Character names, place names, and invented terms need consistency across volumes
|
|
148
|
+
- **Technical writing** -- Terminology consistency is essential for clarity
|
|
149
|
+
|
|
150
|
+
### Building Translation Memory
|
|
151
|
+
|
|
152
|
+
After completing a translation, build the TM from your approved translations:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
/scr:translation-memory fr --build
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Scriveno aligns source and target segments at the paragraph and sentence level, assigns confidence scores (1.0 for exact alignment, down to 0.3 for fuzzy matches), and deduplicates.
|
|
159
|
+
|
|
160
|
+
### Translation Memory Commands
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
/scr:translation-memory fr # Show stats (or build if none exists)
|
|
164
|
+
/scr:translation-memory fr --build # Build/rebuild from completed translations
|
|
165
|
+
/scr:translation-memory fr --stats # Show segment counts and coverage
|
|
166
|
+
/scr:translation-memory fr --export # Export as TMX for external CAT tools
|
|
167
|
+
/scr:translation-memory fr --clear # Clear TM for a language (with confirmation)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The TMX export produces industry-standard Translation Memory eXchange format compatible with SDL Trados, MemoQ, OmegaT, and other computer-assisted translation tools.
|
|
171
|
+
|
|
172
|
+
## Cultural Adaptation
|
|
173
|
+
|
|
174
|
+
Machine translation handles words. Cultural adaptation handles meaning. Scriveno flags culturally sensitive content that needs human attention beyond what translation APIs catch.
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
/scr:cultural-adaptation fr
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
The cultural adaptation review scans your translated text across 9 categories:
|
|
181
|
+
|
|
182
|
+
| Category | Severity | Examples |
|
|
183
|
+
|----------|----------|---------|
|
|
184
|
+
| **Idiom** | High | "Break a leg" translated literally instead of using a target-language equivalent |
|
|
185
|
+
| **Humor** | High | Jokes relying on source-language wordplay or cultural knowledge |
|
|
186
|
+
| **Politeness** | High | Wrong T-V distinction (tu/vous), inappropriate honorific levels |
|
|
187
|
+
| **Custom** | Medium | Holidays, greeting conventions, dining etiquette |
|
|
188
|
+
| **Measurement** | Medium | Imperial units preserved without metric conversion |
|
|
189
|
+
| **Currency** | Medium | Dollar amounts without localization context |
|
|
190
|
+
| **Name order** | Medium | Family name first/last conventions (important for Japanese, Chinese, Korean, Hungarian) |
|
|
191
|
+
| **Food** | Low | Cultural food references (Thanksgiving turkey, fish and chips) |
|
|
192
|
+
| **Punctuation** | Low | Quotation mark style, decimal separators, spacing conventions |
|
|
193
|
+
|
|
194
|
+
Filter by severity or scope to a specific unit:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
/scr:cultural-adaptation fr --severity high
|
|
198
|
+
/scr:cultural-adaptation fr --unit chapter-2-scene-1
|
|
199
|
+
/scr:cultural-adaptation fr --report
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
The `--report` flag generates a standalone report at `.manuscript/translation/{lang}/CULTURAL-ADAPTATION-REPORT.md`.
|
|
203
|
+
|
|
204
|
+
## Quality Verification
|
|
205
|
+
|
|
206
|
+
Back-translation is the primary quality verification tool. It translates the translated text back to the source language and shows a side-by-side comparison with drift annotations.
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
/scr:back-translate fr
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### How It Works
|
|
213
|
+
|
|
214
|
+
1. Scriveno reads the translated text (without looking at the original)
|
|
215
|
+
2. Translates it back to the source language
|
|
216
|
+
3. Compares the back-translation with the original
|
|
217
|
+
4. Annotates each segment with a drift marker
|
|
218
|
+
|
|
219
|
+
### Drift Markers
|
|
220
|
+
|
|
221
|
+
| Marker | Meaning |
|
|
222
|
+
|--------|---------|
|
|
223
|
+
| **[OK]** | Meaning preserved -- wording may differ but intent is the same |
|
|
224
|
+
| **[DRIFT: meaning shift]** | Factual content, intent, or implication changed |
|
|
225
|
+
| **[DRIFT: tone shift]** | Emotional register changed (more formal, less urgent, different mood) |
|
|
226
|
+
| **[DRIFT: omission]** | Something from the original is missing |
|
|
227
|
+
| **[DRIFT: addition]** | Something not in the original was added |
|
|
228
|
+
|
|
229
|
+
### Fidelity Assessment
|
|
230
|
+
|
|
231
|
+
- **90%+ OK** -- Excellent fidelity. Minor drifts are expected and acceptable.
|
|
232
|
+
- **75-89% OK** -- Good fidelity with notable drift areas. Review flagged segments.
|
|
233
|
+
- **Below 75% OK** -- Significant drift. Consider re-translating problem units.
|
|
234
|
+
|
|
235
|
+
Scope to a specific unit or generate a full report:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
/scr:back-translate fr --unit chapter-3
|
|
239
|
+
/scr:back-translate fr --report
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## RTL and CJK Support
|
|
243
|
+
|
|
244
|
+
Scriveno handles right-to-left and CJK (Chinese, Japanese, Korean) scripts throughout the pipeline.
|
|
245
|
+
|
|
246
|
+
### Right-to-Left Languages
|
|
247
|
+
|
|
248
|
+
RTL languages (Arabic, Hebrew, Persian, Urdu) receive special handling:
|
|
249
|
+
|
|
250
|
+
- **Text direction** -- Export commands automatically set `--variable dir=rtl` for Pandoc and `text-dir` for Typst
|
|
251
|
+
- **Template adjustments** -- The Typst book template reverses inside/outside margins for RTL binding
|
|
252
|
+
- **Font requirements** -- RTL exports need fonts with Arabic/Hebrew glyph support. Scriveno uses system-available fonts by default; specify custom fonts in `.manuscript/config.json`
|
|
253
|
+
- **Punctuation** -- Quotation marks use the appropriate convention (e.g., French-style guillemets for Arabic)
|
|
254
|
+
|
|
255
|
+
### CJK Languages
|
|
256
|
+
|
|
257
|
+
CJK languages (Chinese, Japanese, Korean) receive:
|
|
258
|
+
|
|
259
|
+
- **Line breaking** -- CJK-aware line breaking rules (no break within words, proper kinsoku shori for Japanese)
|
|
260
|
+
- **Font handling** -- CJK exports use appropriate CJK fonts with correct glyph coverage
|
|
261
|
+
- **Spacing** -- No inter-word spaces (CJK convention), proper spacing between CJK and Latin characters
|
|
262
|
+
- **Quotation marks** -- Corner brackets are used by default
|
|
263
|
+
|
|
264
|
+
### Script Detection
|
|
265
|
+
|
|
266
|
+
Scriveno auto-detects script direction from the language code:
|
|
267
|
+
|
|
268
|
+
- **RTL:** `ar`, `he`, `fa`, `ur`, `yi`, `ps`, `sd`
|
|
269
|
+
- **CJK:** `zh`, `ja`, `ko`
|
|
270
|
+
- **LTR:** All other languages
|
|
271
|
+
|
|
272
|
+
No manual configuration needed -- the translation and export commands apply the correct settings automatically.
|
|
273
|
+
|
|
274
|
+
## Multi-Language Publishing
|
|
275
|
+
|
|
276
|
+
After translating, export your manuscript in all target languages and formats:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
/scr:multi-publish --languages fr,de,ja --format epub
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Multi-publish handles everything needed for translated editions:
|
|
283
|
+
|
|
284
|
+
- **Localized front matter** -- Translated title page, copyright page (with translation credit), dedication, and table of contents
|
|
285
|
+
- **Localized back matter** -- Translated author bio, acknowledgments, and auto-generated translator's note
|
|
286
|
+
- **Language-specific formatting** -- Correct quotation marks, punctuation spacing, number formatting, and text direction
|
|
287
|
+
- **Per-language output** -- Each language gets its own directory: `.manuscript/output/translations/{lang}/`
|
|
288
|
+
|
|
289
|
+
### Multi-Publish Options
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
/scr:multi-publish --languages fr,de # Specific languages, interactive format selection
|
|
293
|
+
/scr:multi-publish --all-languages # All configured languages
|
|
294
|
+
/scr:multi-publish --format pdf # Specific format for all languages
|
|
295
|
+
/scr:multi-publish --all-languages --all-formats # Everything
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
For KDP or IngramSpark packages in translated editions, multi-publish creates language-specific packages with translated metadata and localized cover specifications.
|
|
299
|
+
|
|
300
|
+
## Autopilot Translation
|
|
301
|
+
|
|
302
|
+
For hands-off translation of one or more languages, autopilot runs the complete 6-phase pipeline without asking questions:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
/scr:autopilot-translate --languages fr,de,ja
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
The autopilot pipeline per language:
|
|
309
|
+
|
|
310
|
+
1. **Glossary** -- Creates the glossary if it doesn't exist
|
|
311
|
+
2. **Translate** -- Translates all units with fresh-context-per-unit
|
|
312
|
+
3. **Translation Memory** -- Builds TM from completed translations
|
|
313
|
+
4. **Cultural Adaptation** -- Flags culturally sensitive content
|
|
314
|
+
5. **Back-Translate** -- Runs back-translation quality verification
|
|
315
|
+
6. **Multi-Publish** -- Exports in all available formats
|
|
316
|
+
|
|
317
|
+
### Autopilot Options
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
/scr:autopilot-translate --all-languages # Translate all configured languages
|
|
321
|
+
/scr:autopilot-translate --languages ar --skip-publish # Translate without exporting
|
|
322
|
+
/scr:autopilot-translate --languages fr --skip-adaptation # Skip cultural adaptation
|
|
323
|
+
/scr:autopilot-translate --resume # Resume interrupted pipeline
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Autopilot tracks progress in STATE.md so you can resume where you left off after interruption. Each language is independent -- if Arabic completed phases 1-3 and French completed 1-5, resuming picks up each language at its next phase.
|
|
327
|
+
|
|
328
|
+
## Sacred Text Translation
|
|
329
|
+
|
|
330
|
+
Sacred texts receive special translation handling with additional controls for theological precision:
|
|
331
|
+
|
|
332
|
+
- **Translation philosophy** -- Choose between formal equivalence (word-for-word), dynamic equivalence (thought-for-thought), paraphrase (modern accessibility), or interlinear (scholarly word-by-word alignment)
|
|
333
|
+
- **Canonical alignment** -- Match vocabulary to a canonical translation (KJV, NRSV, Sahih International, etc.)
|
|
334
|
+
- **Preserved source terms** -- Terms like YHWH, hesed, dharma, or taqwa are never translated -- they appear in the source language with transliteration and footnotes
|
|
335
|
+
- **Liturgical preservation** -- Maintains rhythmic and musical qualities for passages meant to be read aloud or chanted
|
|
336
|
+
|
|
337
|
+
Configure sacred translation settings as top-level keys in `.manuscript/config.json`. The most relevant keys are `tradition`, `translation_philosophy`, `canonical_alignment`, `preserve_source_terms`, and `transliteration_style`. Existing projects with a nested `sacred` object are still accepted as legacy input, but new projects use the top-level shape. For full details on sacred text work types, voice registers, and exclusive commands, see the Sacred Text Guide.
|
|
338
|
+
|
|
339
|
+
## See Also
|
|
340
|
+
|
|
341
|
+
- [Getting Started](getting-started.md) -- Installation and first project
|
|
342
|
+
- [Command Reference](command-reference.md) -- Full list of translation commands
|
|
343
|
+
- [Publishing Guide](publishing.md) -- Exporting and publishing your manuscript
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Voice DNA Guide
|
|
2
|
+
|
|
3
|
+
Scriveno's core value is simple: **drafted prose sounds like the writer, not like AI.** The Voice DNA system makes this possible by profiling your writing voice across 15+ dimensions and loading that profile into every drafter agent invocation. If voice fidelity breaks, trust breaks, and no other feature matters.
|
|
4
|
+
|
|
5
|
+
This guide explains how Voice DNA works, what each dimension controls, and how to calibrate your profile.
|
|
6
|
+
|
|
7
|
+
## What is Voice DNA?
|
|
8
|
+
|
|
9
|
+
Voice DNA is your writing fingerprint captured in a single file: `STYLE-GUIDE.md`. This file lives in your `.manuscript/` directory and is the single most important artifact in your project.
|
|
10
|
+
|
|
11
|
+
If you want a concrete proof artifact before reading the full theory, start with `data/proof/voice-dna/README.md`. That bundle compares one fixed brief before and after style-guide guidance is applied.
|
|
12
|
+
|
|
13
|
+
When the drafter agent writes a scene, chapter, or passage, it loads STYLE-GUIDE.md first -- before the outline, before the characters, before anything else. Every sentence it writes gets checked against your voice profile. Does this sentence match the writer's typical sentence length? Does this metaphor density match their style? Is this dialogue tag pattern consistent with how they write?
|
|
14
|
+
|
|
15
|
+
STYLE-GUIDE.md profiles your voice across 15+ dimensions organized into 9 parts. The next section walks through each one.
|
|
16
|
+
|
|
17
|
+
## The Voice Dimensions
|
|
18
|
+
|
|
19
|
+
### Part 1: Narrative Architecture
|
|
20
|
+
|
|
21
|
+
This section defines how your story is told at the highest structural level.
|
|
22
|
+
|
|
23
|
+
**Narrative perspective:**
|
|
24
|
+
- **POV** -- First person, close third, distant third, omniscient, or second person
|
|
25
|
+
- **POV consistency** -- Single POV throughout, multi-POV by chapter, or shifting within scenes
|
|
26
|
+
- **Narrator reliability** -- Reliable, unreliable, or ambiguous
|
|
27
|
+
- **Narrator distance** -- Intimate, observational, detached, or cinematic
|
|
28
|
+
|
|
29
|
+
**Tense:**
|
|
30
|
+
- **Primary tense** -- Past, present, or mixed
|
|
31
|
+
- **Tense shifts** -- Where and why tense shifts are allowed (e.g., flashbacks in present tense)
|
|
32
|
+
|
|
33
|
+
**Narrative stance:**
|
|
34
|
+
- **Knowing vs. discovering** -- Does the narrator know what's coming, or discover it alongside the reader?
|
|
35
|
+
- **Emotional distance** -- Warm or cool, sympathetic or critical or neutral
|
|
36
|
+
- **Judgment** -- Moralistic, withholding, ironic, or compassionate
|
|
37
|
+
|
|
38
|
+
**Example:** Two writers with different narrative architecture settings produce very different openings. A close-third, past-tense, intimate narrator might write: *She pressed her palm against the cold glass and watched the street below empty out.* An omniscient, present-tense, detached narrator might write: *The street empties. In the apartment above the bakery, a woman stands at the window, though she cannot see what is coming.*
|
|
39
|
+
|
|
40
|
+
### Part 2: Sentence and Paragraph Architecture
|
|
41
|
+
|
|
42
|
+
This section controls the rhythm and texture of your prose at the sentence and paragraph level.
|
|
43
|
+
|
|
44
|
+
**Sentence architecture:**
|
|
45
|
+
- **Average sentence length** -- A target word count (e.g., 12 words, 22 words)
|
|
46
|
+
- **Sentence variation** -- High variation, mostly short, mostly long, or rhythmic alternation
|
|
47
|
+
- **Complex structures** -- Preference for embedded clauses, parallel structures, fragments
|
|
48
|
+
- **Sentence music** -- Staccato, flowing, punchy, or lyrical
|
|
49
|
+
|
|
50
|
+
**Paragraph architecture:**
|
|
51
|
+
- **Paragraph length** -- Short, medium, long, or variable
|
|
52
|
+
- **White space** -- Dense, generous, or rhythmic
|
|
53
|
+
- **Paragraph breaks** -- When to break: beat shift, POV shift, emphasis
|
|
54
|
+
|
|
55
|
+
**Example:** A writer who favors short sentences with staccato music and generous white space:
|
|
56
|
+
|
|
57
|
+
*He sat down. The chair creaked. Outside, rain.*
|
|
58
|
+
|
|
59
|
+
A writer who favors long, flowing sentences with dense paragraphs:
|
|
60
|
+
|
|
61
|
+
*He lowered himself into the chair, which creaked beneath him the way old things do when they remember what they once held, and through the window the rain came down in sheets that blurred the garden into something impressionist and half-remembered.*
|
|
62
|
+
|
|
63
|
+
### Part 3: Vocabulary and Diction
|
|
64
|
+
|
|
65
|
+
This section governs word choice and language register.
|
|
66
|
+
|
|
67
|
+
**Vocabulary:**
|
|
68
|
+
- **Register** -- Formal, conversational, lyrical, colloquial, or literary
|
|
69
|
+
- **Complexity** -- Accessible, elevated, or specialized
|
|
70
|
+
- **Word origin** -- Preference for Anglo-Saxon (gut, blood, dark) vs. Latinate (intestinal, sanguine, tenebrous)
|
|
71
|
+
- **Jargon handling** -- How domain-specific terms are introduced and used
|
|
72
|
+
- **Profanity** -- None, mild, moderate, explicit, or character-specific
|
|
73
|
+
|
|
74
|
+
**Example:** An Anglo-Saxon-preferring writer with conversational register: *He walked into the dark room and felt sick.* A Latinate-preferring writer with literary register: *He entered the tenebrous chamber and experienced a wave of nausea.*
|
|
75
|
+
|
|
76
|
+
### Part 4: Figurative Language
|
|
77
|
+
|
|
78
|
+
This section controls metaphor, simile, symbolism, and imagery.
|
|
79
|
+
|
|
80
|
+
- **Metaphor density** -- Sparse, moderate, or dense
|
|
81
|
+
- **Metaphor style** -- Grounded/concrete, abstract/philosophical, or sensory
|
|
82
|
+
- **Recurring image systems** -- Motifs that should recur throughout the work (e.g., water imagery, mechanical metaphors)
|
|
83
|
+
- **Similes** -- Frequency and style preferences
|
|
84
|
+
- **Symbolism** -- Overt, buried, or emergent
|
|
85
|
+
|
|
86
|
+
**Example:** A writer with sparse, grounded metaphors: *The argument sat between them like a third plate at the table.* A writer with dense, abstract metaphors: *Their words were architectures of evasion, each sentence a buttress holding up the cathedral of what they would not say.*
|
|
87
|
+
|
|
88
|
+
### Part 5: Dialogue
|
|
89
|
+
|
|
90
|
+
This section defines how characters speak and how dialogue is presented on the page.
|
|
91
|
+
|
|
92
|
+
- **Dialogue ratio** -- What percentage of text is dialogue
|
|
93
|
+
- **Tag style** -- Said-bookish ("said" only), creative tags ("exclaimed," "murmured"), action beats, or minimal (no tags)
|
|
94
|
+
- **Subtext level** -- On-the-nose, moderately layered, or heavily subtextual
|
|
95
|
+
- **Dialect/accent** -- Phonetic spelling, light suggestion, or none
|
|
96
|
+
- **Interrupted speech** -- Frequency and handling (em-dashes, ellipses, trailing off)
|
|
97
|
+
|
|
98
|
+
**Character voice differentiation:** Each character should sound distinct. CHARACTERS.md (or FIGURES.md for sacred work types) holds individual voice anchors for each character -- speech patterns, vocabulary, rhythms, tics.
|
|
99
|
+
|
|
100
|
+
**Example:** A writer who favors action beats over dialogue tags with heavily subtextual dialogue:
|
|
101
|
+
|
|
102
|
+
*She set the glass down. "It's fine."*
|
|
103
|
+
*He looked at the glass. "Sure."*
|
|
104
|
+
*"I said it's fine."*
|
|
105
|
+
|
|
106
|
+
vs. a writer who uses creative tags with on-the-nose dialogue:
|
|
107
|
+
|
|
108
|
+
*"I'm upset about what happened," she declared firmly.*
|
|
109
|
+
*"I understand completely," he reassured her.*
|
|
110
|
+
|
|
111
|
+
### Part 6: Description and Sensory Detail
|
|
112
|
+
|
|
113
|
+
This section controls how the physical world appears in your prose.
|
|
114
|
+
|
|
115
|
+
**Description density:**
|
|
116
|
+
- **Overall density** -- Sparse, moderate, rich, or lush
|
|
117
|
+
- **Sense mix** -- Visual-dominant, multi-sensory, or synesthetic
|
|
118
|
+
- **Specificity** -- General, specific, or hyper-specific with brand names
|
|
119
|
+
|
|
120
|
+
**Physicality:**
|
|
121
|
+
- **Body awareness** -- How often characters' physical sensations appear
|
|
122
|
+
- **Place** -- How strongly setting is felt
|
|
123
|
+
- **Time of day/weather** -- How often atmosphere is referenced
|
|
124
|
+
|
|
125
|
+
**Example:** A sparse, visual-dominant writer: *The room was small and white.* A lush, multi-sensory writer: *The room smelled of camphor and old paper, and the walls had that particular yellow-white of teeth, and somewhere a radiator ticked like a slow clock.*
|
|
126
|
+
|
|
127
|
+
### Part 7: Pacing and Rhythm
|
|
128
|
+
|
|
129
|
+
This section governs the speed and flow of narrative.
|
|
130
|
+
|
|
131
|
+
**Pacing:**
|
|
132
|
+
- **Default pace** -- Slow-burn, steady, brisk, or breakneck
|
|
133
|
+
- **Pace variation** -- Where and how pace shifts (action scenes speed up, emotional scenes slow down)
|
|
134
|
+
- **Scene-to-summary ratio** -- How much is dramatized vs. summarized
|
|
135
|
+
|
|
136
|
+
**Transitions:**
|
|
137
|
+
- **Between scenes** -- Hard cuts, soft fades, or hooks
|
|
138
|
+
- **Between chapters** -- Cliffhangers, echoes, or clean breaks
|
|
139
|
+
- **Time jumps** -- How they're signaled, how frequent, how handled
|
|
140
|
+
|
|
141
|
+
### Part 7: Reference Influences
|
|
142
|
+
|
|
143
|
+
This section captures the authors, works, and passages that anchor your voice.
|
|
144
|
+
|
|
145
|
+
- **Authors/works to evoke** -- The writers whose style yours echoes or aspires to
|
|
146
|
+
- **Reference passages** -- 500-word samples from your own previous work or selected reference authors, used by the drafter as voice anchors
|
|
147
|
+
|
|
148
|
+
These references give the drafter concrete examples to calibrate against, not to copy but to understand the register you're aiming for.
|
|
149
|
+
|
|
150
|
+
### Part 9: Always / Never / Consider
|
|
151
|
+
|
|
152
|
+
This section holds your explicit rules -- the things the drafter should always do, never do, or consider doing.
|
|
153
|
+
|
|
154
|
+
- **Always** -- Hard rules (e.g., "Always use Oxford commas," "Always ground abstract moments in physical sensation")
|
|
155
|
+
- **Never** -- Prohibitions (e.g., "Never use the word 'whilst'," "Never start a chapter with dialogue")
|
|
156
|
+
- **Consider** -- Soft guidance (e.g., "Consider using shorter paragraphs in action scenes," "Consider echoing the opening image at chapter ends")
|
|
157
|
+
|
|
158
|
+
These rules override everything else. If the writer says "never use semicolons," the drafter does not use semicolons, even if a semicolon would be grammatically ideal.
|
|
159
|
+
|
|
160
|
+
## Setting Up Your Voice Profile
|
|
161
|
+
|
|
162
|
+
Your STYLE-GUIDE.md starts as a template during project setup, then gets filled in through Voice DNA profiling. There are two main paths:
|
|
163
|
+
|
|
164
|
+
### Path 1: Interview (recommended)
|
|
165
|
+
|
|
166
|
+
Run `/scr:profile-writer --questionnaire` (or simply `/scr:profile-writer`) and Scriveno interviews you about your writing preferences. It asks about your sentence style, dialogue preferences, figurative language density, and other dimensions, then writes those decisions into STYLE-GUIDE.md.
|
|
167
|
+
|
|
168
|
+
### Path 2: Writing sample
|
|
169
|
+
|
|
170
|
+
Run `/scr:profile-writer --analyze <file>` with a sample of your existing writing (500-1000 words works well) and Scriveno analyzes it to extract your voice profile automatically. This works especially well if you have published work or a manuscript-in-progress that represents the voice you want.
|
|
171
|
+
|
|
172
|
+
After profiling, run `/scr:voice-test` before drafting. `/scr:discuss` comes later in the workflow and assumes STYLE-GUIDE.md already exists for the unit-planning conversation.
|
|
173
|
+
|
|
174
|
+
## Calibrating with voice-test
|
|
175
|
+
|
|
176
|
+
Before drafting your first unit, run:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
/scr:voice-test
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
This command drafts a short sample scene using your current STYLE-GUIDE.md profile. You read the sample and tell Scriveno what sounds right and what sounds off. "The dialogue is too formal." "The sentences are too long." "I would never use that word." Scriveno adjusts your profile based on your feedback.
|
|
183
|
+
|
|
184
|
+
Think of voice-test as a sound check before a concert. You're making sure the drafter will sound like you before it writes 80,000 words.
|
|
185
|
+
|
|
186
|
+
After your first draft units are complete, you can also run:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
/scr:voice-check
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This compares drafted prose against your STYLE-GUIDE.md and flags anything that drifted -- sentences that are too long relative to your profile, metaphor density that crept up, dialogue tags that shifted style. For sacred work types, the same `/scr:voice-check` command shifts into a register-check role and verifies voice register consistency.
|
|
193
|
+
|
|
194
|
+
## Sacred Voice Registers
|
|
195
|
+
|
|
196
|
+
Sacred and historical work types support 10 specialized voice registers. These go beyond your personal writing voice to capture the distinct tones found in religious and historical literature.
|
|
197
|
+
|
|
198
|
+
The 10 registers are:
|
|
199
|
+
|
|
200
|
+
| Register | Character | Example Pattern |
|
|
201
|
+
|----------|-----------|-----------------|
|
|
202
|
+
| **Prophetic** | Urgent, declarative, oracular | "Thus says the Lord" framing, imperative mood, repetition for emphasis |
|
|
203
|
+
| **Wisdom** | Aphoristic, reflective, balanced | Parallelism, "Better X than Y" structures, observational tone |
|
|
204
|
+
| **Legal / Halakhic** | Precise, conditional, imperative | Case-law structure, exhaustive enumeration, binding weight |
|
|
205
|
+
| **Liturgical** | Formal, rhythmic, responsive | Call-and-response, doxological language, musical awareness |
|
|
206
|
+
| **Narrative-historical** | Chronicle-like, temporal, factual | Sequential narration, genealogical asides, minimal editorializing |
|
|
207
|
+
| **Apocalyptic** | Visionary, symbolic, cosmic | "I saw..." framing, symbolic numbers, throne-room scenes |
|
|
208
|
+
| **Epistolary** | Personal, didactic, pastoral | Greeting formula, practical instruction, closing benediction |
|
|
209
|
+
| **Poetic / Psalmic** | Musical, metaphorical, parallelism-heavy | Hebrew parallelism patterns, emotional range, chiastic structures |
|
|
210
|
+
| **Parabolic** | Allegorical, story-within-story | "The kingdom of heaven is like..." concrete daily-life imagery |
|
|
211
|
+
| **Didactic** | Instructional, systematic, expository | Topic-by-topic structure, teacher-student dynamic, Q&A format |
|
|
212
|
+
|
|
213
|
+
Each unit's plan file specifies which register to use. Your STYLE-GUIDE.md Part 8 (Sacred Voice Registers) describes how YOU handle each register -- the drafter always defers to your personalized register style over the generic descriptions.
|
|
214
|
+
|
|
215
|
+
If no register is specified in a plan file, the drafter defaults to narrative-historical.
|
|
216
|
+
|
|
217
|
+
For full details on sacred work types, exclusive commands, and tradition-specific configuration, see the Sacred Text Guide.
|
|
218
|
+
|
|
219
|
+
## How Voice Stays Consistent
|
|
220
|
+
|
|
221
|
+
Scriveno uses a **fresh-context-per-unit** architecture. Here's how it works:
|
|
222
|
+
|
|
223
|
+
1. Each atomic unit (scene, passage, verse, beat) gets its own fresh drafter agent invocation
|
|
224
|
+
2. The drafter loads STYLE-GUIDE.md first -- before anything else
|
|
225
|
+
3. The drafter then loads two optional rule layers (see "Three rule layers" below) that scaffold weaker models against AI tells without overriding the writer's voice
|
|
226
|
+
4. The drafter also receives the last 200 words of the previous unit for continuity
|
|
227
|
+
5. The drafter writes the unit, checking every sentence against your voice profile
|
|
228
|
+
6. After drafting, a voice-check pass flags any drift
|
|
229
|
+
|
|
230
|
+
Why fresh context? Because AI agents accumulate context over a conversation, and accumulated context causes voice drift. After 10,000 words of continuous generation, the AI starts sounding like itself instead of like you. By giving each unit a clean slate with STYLE-GUIDE.md loaded fresh, Scriveno keeps every unit at peak voice fidelity.
|
|
231
|
+
|
|
232
|
+
This is the same principle behind recording each instrument separately in a studio -- isolation gives you control.
|
|
233
|
+
|
|
234
|
+
### Three rule layers
|
|
235
|
+
|
|
236
|
+
Starting in `1.6.0`, Scriveno loads three rule layers in this order on every drafter invocation:
|
|
237
|
+
|
|
238
|
+
1. **STYLE-GUIDE.md** (sovereign): your Voice DNA. Always loaded; nothing overrides it.
|
|
239
|
+
2. **WRITING-RULES.md** (universal, optional): human-first restraint, variance over substitution, factual integrity, soft-inference discipline, register awareness, sourced stance, artifact cleanup, and canonical AI-tell don'ts. It tells the drafter to avoid hedging, throat-clearing, balanced-both-sides constructions, generic metaphors, symmetrical rhythm, moralizing closings, AI tics in dialogue, invented support, truncated beats, copied chat residue, over-polishing human texture, and replacing one machine signature with a new humanizer signature. Loaded if the file is present in `.manuscript/` or the installed templates.
|
|
240
|
+
3. **Pitfall pack** (type-specific, optional): traps unique to your `work_type`. Filter words for prose, unfilmable description for screenplays, missing-precondition checks for runbooks, anachronism for sacred commentary, and so on. Loaded from `.manuscript/PITFALLS.md` if you've authored a project-local override, otherwise from the installed `templates/pitfalls/<work_type>.md`.
|
|
241
|
+
|
|
242
|
+
Conflict resolution is top-down: STYLE-GUIDE.md beats WRITING-RULES.md beats the pitfall pack. If your voice in STYLE-GUIDE.md says you hedge, fragment, moralize, use formal register, or keep period diction deliberately, that voice wins. The rule layers are scaffolding, not constraints.
|
|
243
|
+
|
|
244
|
+
Three knobs in `.manuscript/config.json` tune the system:
|
|
245
|
+
|
|
246
|
+
- `draft.rigor`: `standard` (defaults) or `strict` (per-sentence rules check; useful when routing to a weaker model)
|
|
247
|
+
- `draft.context_profile`: `minimal`, `standard`, or `full` (controls how much context the drafter loads per unit; `minimal` saves tokens on weaker models)
|
|
248
|
+
- `draft.pitfalls_enabled`: `true` (default) or `false` (skip the pitfall pack when the writer's voice deliberately leans into a trap)
|
|
249
|
+
|
|
250
|
+
The same rule layer also has a diagnostic side. When you ask "is this AI" or "does this still sound like me," `/scr:voice-check` and `/scr:originality-check` read the rules from the other side: they report an authenticity band (Reads human / Mixed signals / Reads AI-generated) first, then a 0-100 score, then flagged spans with reasons, and they never rewrite. They match scrutiny to evidence (low density biases hard toward a high score, because over-flagging genuine human prose is the worst error here), credit strong false positives as score-raising human markers, and always name what they deliberately did not flag. Fixing flagged prose is a separate step (`/scr:line-edit`, `/scr:polish`, or a re-draft) you choose, after which the check re-runs as a fresh read. Diagnosis and rewriting stay apart on purpose, with you between them.
|
|
251
|
+
|
|
252
|
+
See [docs/drafter-quality.md](drafter-quality.md) for the full system, including model-tier recommendations.
|
|
253
|
+
|
|
254
|
+
## Troubleshooting
|
|
255
|
+
|
|
256
|
+
### Voice drift
|
|
257
|
+
|
|
258
|
+
**Symptom:** Later units sound different from earlier ones.
|
|
259
|
+
**Fix:** Run `/scr:voice-check` to identify specific dimensions that drifted. Update STYLE-GUIDE.md if your preferences have evolved, or flag the drifted units for redraft.
|
|
260
|
+
|
|
261
|
+
### Too formal / too stiff
|
|
262
|
+
|
|
263
|
+
**Symptom:** Prose sounds like an essay or press release instead of a story.
|
|
264
|
+
**Fix:** Check your register setting in STYLE-GUIDE.md Part 3 (Vocabulary). If it's set to "formal" or "literary," try "conversational." Also check sentence length -- longer average sentences tend to read more formally.
|
|
265
|
+
|
|
266
|
+
### Too informal / too loose
|
|
267
|
+
|
|
268
|
+
**Symptom:** Prose sounds like a blog post or chat message.
|
|
269
|
+
**Fix:** Increase register complexity, lengthen average sentence length, or add "Consider" rules like "Consider varying sentence openings" to add structural sophistication.
|
|
270
|
+
|
|
271
|
+
### Characters sound the same
|
|
272
|
+
|
|
273
|
+
**Symptom:** All dialogue sounds like it comes from the same person.
|
|
274
|
+
**Fix:** Check CHARACTERS.md -- each character needs distinct voice anchors (vocabulary, sentence patterns, speech tics). The drafter uses these to differentiate character speech from narrative voice.
|
|
275
|
+
|
|
276
|
+
### Too many metaphors / not enough metaphors
|
|
277
|
+
|
|
278
|
+
**Symptom:** Prose is either overwritten or too bare.
|
|
279
|
+
**Fix:** Adjust metaphor density in STYLE-GUIDE.md Part 4 (Figurative Language). "Sparse" means one metaphor per page at most. "Dense" means multiple per paragraph. Find your natural density by looking at your existing writing.
|
|
280
|
+
|
|
281
|
+
### AI-sounding hedging
|
|
282
|
+
|
|
283
|
+
**Symptom:** Phrases like "perhaps," "it could be argued," "in a sense" appearing in drafted prose.
|
|
284
|
+
**Fix:** Two complementary remedies. (1) Add to your "Never" list: "Never use hedging language (perhaps, it could be argued, in a sense, to some degree)." The drafter respects Never rules absolutely. (2) Confirm `WRITING-RULES.md` is present in `.manuscript/`; its "Hedging and qualifiers" subsection is loaded by the drafter and voice-checker as the canonical AI-tell list. If voice-check reports keep flagging hedges, set `draft.rigor` to `strict` in `config.json` to enforce per-sentence checks.
|
|
285
|
+
|
|
286
|
+
### Is this draft AI, or does it still sound like me?
|
|
287
|
+
|
|
288
|
+
**Symptom:** You want an honest read of how authentically a draft reads as your own work, or which spans sound machine-written.
|
|
289
|
+
**Fix:** Run `/scr:voice-check` (with STYLE-GUIDE.md present it measures deviation from your voice) or `/scr:originality-check`. You get a band, a 0-100 score, flagged spans with reasons, and a "Reads as human" section naming what was deliberately not flagged. These commands diagnose only; they never rewrite and never carry a target score into a fix. If you want flagged prose improved, run `/scr:line-edit` or `/scr:polish`, then re-run the check as a fresh re-verify. This is an honest read, not a detector-beating tool, and it names no detector.
|
|
290
|
+
|
|
291
|
+
## See Also
|
|
292
|
+
|
|
293
|
+
- [Proof Artifacts](proof-artifacts.md) -- inspect the Voice DNA before/after bundle first if you want the fastest concrete evidence
|
|
294
|
+
- [Getting Started](getting-started.md) -- Install Scriveno and write your first draft
|
|
295
|
+
- [Drafter Quality](drafter-quality.md) -- the three rule layers, the `draft` config block, and model-tier recommendations
|
|
296
|
+
- [Command Reference](command-reference.md) -- Full list of all 112 commands with usage and examples
|
|
297
|
+
- [Work Types Guide](work-types.md) -- How work types adapt Scriveno's vocabulary and commands
|