scriveno 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/agents/continuity-checker.md +85 -0
  4. package/agents/drafter.md +248 -0
  5. package/agents/plan-checker.md +209 -0
  6. package/agents/researcher.md +114 -0
  7. package/agents/translator.md +204 -0
  8. package/agents/voice-checker.md +154 -0
  9. package/bin/install.js +1620 -0
  10. package/commands/scr/add-note.md +51 -0
  11. package/commands/scr/add-unit.md +101 -0
  12. package/commands/scr/art-direction.md +225 -0
  13. package/commands/scr/autopilot-publish.md +210 -0
  14. package/commands/scr/autopilot-translate.md +237 -0
  15. package/commands/scr/autopilot.md +200 -0
  16. package/commands/scr/back-matter.md +630 -0
  17. package/commands/scr/back-translate.md +197 -0
  18. package/commands/scr/beta-reader.md +97 -0
  19. package/commands/scr/blurb.md +149 -0
  20. package/commands/scr/book-proposal.md +210 -0
  21. package/commands/scr/build-ebook.md +448 -0
  22. package/commands/scr/build-poetry-submission.md +202 -0
  23. package/commands/scr/build-print.md +598 -0
  24. package/commands/scr/build-smashwords.md +171 -0
  25. package/commands/scr/build-world.md +158 -0
  26. package/commands/scr/cast-list.md +104 -0
  27. package/commands/scr/chapter-header.md +158 -0
  28. package/commands/scr/character-arc.md +108 -0
  29. package/commands/scr/character-ref.md +160 -0
  30. package/commands/scr/character-sheet.md +143 -0
  31. package/commands/scr/character-touch.md +157 -0
  32. package/commands/scr/character-voice-sample.md +111 -0
  33. package/commands/scr/check-notes.md +50 -0
  34. package/commands/scr/cleanup.md +159 -0
  35. package/commands/scr/compare.md +112 -0
  36. package/commands/scr/complete-draft.md +49 -0
  37. package/commands/scr/continuity-check.md +129 -0
  38. package/commands/scr/copy-edit.md +118 -0
  39. package/commands/scr/cover-art.md +382 -0
  40. package/commands/scr/cultural-adaptation.md +177 -0
  41. package/commands/scr/demo.md +93 -0
  42. package/commands/scr/dialogue-audit.md +143 -0
  43. package/commands/scr/discuss.md +118 -0
  44. package/commands/scr/discussion-questions.md +129 -0
  45. package/commands/scr/do.md +68 -0
  46. package/commands/scr/draft.md +97 -0
  47. package/commands/scr/editor-review.md +466 -0
  48. package/commands/scr/export.md +942 -0
  49. package/commands/scr/fast.md +65 -0
  50. package/commands/scr/front-matter.md +696 -0
  51. package/commands/scr/health.md +113 -0
  52. package/commands/scr/help.md +121 -0
  53. package/commands/scr/history.md +92 -0
  54. package/commands/scr/illustrate-scene.md +211 -0
  55. package/commands/scr/import.md +95 -0
  56. package/commands/scr/insert-unit.md +108 -0
  57. package/commands/scr/line-edit.md +146 -0
  58. package/commands/scr/manager.md +77 -0
  59. package/commands/scr/manuscript-stats.md +139 -0
  60. package/commands/scr/map-illustration.md +213 -0
  61. package/commands/scr/map-manuscript.md +134 -0
  62. package/commands/scr/merge-units.md +136 -0
  63. package/commands/scr/multi-publish.md +344 -0
  64. package/commands/scr/new-character.md +167 -0
  65. package/commands/scr/new-revision.md +50 -0
  66. package/commands/scr/new-work.md +148 -0
  67. package/commands/scr/next.md +125 -0
  68. package/commands/scr/originality-check.md +170 -0
  69. package/commands/scr/outline.md +131 -0
  70. package/commands/scr/pacing-analysis.md +170 -0
  71. package/commands/scr/panel-layout.md +225 -0
  72. package/commands/scr/pause-work.md +88 -0
  73. package/commands/scr/plan.md +112 -0
  74. package/commands/scr/plant-seed.md +57 -0
  75. package/commands/scr/plot-graph.md +199 -0
  76. package/commands/scr/polish.md +141 -0
  77. package/commands/scr/profile-writer.md +154 -0
  78. package/commands/scr/progress.md +51 -0
  79. package/commands/scr/publish.md +455 -0
  80. package/commands/scr/query-letter.md +183 -0
  81. package/commands/scr/quick-write.md +82 -0
  82. package/commands/scr/relationship-map.md +129 -0
  83. package/commands/scr/remove-unit.md +120 -0
  84. package/commands/scr/reorder-units.md +126 -0
  85. package/commands/scr/resume-work.md +97 -0
  86. package/commands/scr/sacred/annotation-layer.md +105 -0
  87. package/commands/scr/sacred/chronology.md +121 -0
  88. package/commands/scr/sacred/concordance.md +88 -0
  89. package/commands/scr/sacred/cross-reference.md +97 -0
  90. package/commands/scr/sacred/doctrinal-check.md +129 -0
  91. package/commands/scr/sacred/genealogy.md +107 -0
  92. package/commands/scr/sacred/source-tracking.md +101 -0
  93. package/commands/scr/sacred/verse-numbering.md +103 -0
  94. package/commands/scr/sacred-numbering-format.md +103 -0
  95. package/commands/scr/save.md +109 -0
  96. package/commands/scr/scan.md +291 -0
  97. package/commands/scr/sensitivity-review.md +169 -0
  98. package/commands/scr/series-bible.md +127 -0
  99. package/commands/scr/session-report.md +80 -0
  100. package/commands/scr/settings.md +58 -0
  101. package/commands/scr/split-unit.md +123 -0
  102. package/commands/scr/spread-layout.md +187 -0
  103. package/commands/scr/storyboard.md +262 -0
  104. package/commands/scr/subject-touch.md +168 -0
  105. package/commands/scr/submit.md +50 -0
  106. package/commands/scr/subplot-map.md +147 -0
  107. package/commands/scr/sync.md +116 -0
  108. package/commands/scr/synopsis.md +137 -0
  109. package/commands/scr/theme-tracker.md +128 -0
  110. package/commands/scr/thread.md +83 -0
  111. package/commands/scr/timeline.md +141 -0
  112. package/commands/scr/track.md +564 -0
  113. package/commands/scr/translate.md +260 -0
  114. package/commands/scr/translation-glossary.md +298 -0
  115. package/commands/scr/translation-memory.md +310 -0
  116. package/commands/scr/troubleshoot.md +59 -0
  117. package/commands/scr/undo.md +106 -0
  118. package/commands/scr/validate.md +133 -0
  119. package/commands/scr/versions.md +94 -0
  120. package/commands/scr/voice-check.md +133 -0
  121. package/commands/scr/voice-test.md +68 -0
  122. package/data/CONSTRAINTS.json +1606 -0
  123. package/data/demo/.manuscript/BRIEF.md +37 -0
  124. package/data/demo/.manuscript/CHARACTERS.md +90 -0
  125. package/data/demo/.manuscript/OUTLINE.md +46 -0
  126. package/data/demo/.manuscript/PLOT-GRAPH.md +75 -0
  127. package/data/demo/.manuscript/STATE.md +44 -0
  128. package/data/demo/.manuscript/STYLE-GUIDE.md +119 -0
  129. package/data/demo/.manuscript/THEMES.md +51 -0
  130. package/data/demo/.manuscript/WORK.md +51 -0
  131. package/data/demo/.manuscript/config.json +59 -0
  132. package/data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md +51 -0
  133. package/data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md +51 -0
  134. package/data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md +45 -0
  135. package/data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md +59 -0
  136. package/data/demo/.manuscript/plans/5-the-reunion-PLAN.md +52 -0
  137. package/data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md +61 -0
  138. package/data/export-templates/scriveno-academic.latex +184 -0
  139. package/data/export-templates/scriveno-acm.latex +67 -0
  140. package/data/export-templates/scriveno-apa7.latex +83 -0
  141. package/data/export-templates/scriveno-book.typst +175 -0
  142. package/data/export-templates/scriveno-chapbook.typst +121 -0
  143. package/data/export-templates/scriveno-elsevier.latex +76 -0
  144. package/data/export-templates/scriveno-epub.css +386 -0
  145. package/data/export-templates/scriveno-fixed-layout-epub.css +76 -0
  146. package/data/export-templates/scriveno-fixed-layout.opf +23 -0
  147. package/data/export-templates/scriveno-ieee.latex +77 -0
  148. package/data/export-templates/scriveno-lncs.latex +79 -0
  149. package/data/export-templates/scriveno-picturebook.typst +113 -0
  150. package/data/export-templates/scriveno-poetry-submission-styles.md +45 -0
  151. package/data/export-templates/scriveno-poetry-submission.docx +0 -0
  152. package/data/export-templates/scriveno-smashwords-styles.md +45 -0
  153. package/data/export-templates/scriveno-smashwords.docx +0 -0
  154. package/data/export-templates/scriveno-stageplay.typst +129 -0
  155. package/data/proof/creative-context/README.md +79 -0
  156. package/data/proof/voice-dna/GUIDED-SAMPLE.md +19 -0
  157. package/data/proof/voice-dna/README.md +45 -0
  158. package/data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md +43 -0
  159. package/data/proof/voice-dna/UNGUIDED-SAMPLE.md +11 -0
  160. package/data/proof/watchmaker-flow/README.md +78 -0
  161. package/docs/architecture.md +425 -0
  162. package/docs/command-reference.md +2384 -0
  163. package/docs/configuration.md +228 -0
  164. package/docs/context-protocol.md +81 -0
  165. package/docs/contributing.md +430 -0
  166. package/docs/creative-context.md +158 -0
  167. package/docs/development.md +152 -0
  168. package/docs/drafter-quality.md +127 -0
  169. package/docs/getting-started.md +198 -0
  170. package/docs/history-protocol.md +96 -0
  171. package/docs/proof-artifacts.md +56 -0
  172. package/docs/publishing.md +296 -0
  173. package/docs/release-notes.md +457 -0
  174. package/docs/runtime-support.md +77 -0
  175. package/docs/sacred-texts.md +296 -0
  176. package/docs/shipped-assets.md +129 -0
  177. package/docs/testing.md +156 -0
  178. package/docs/translation.md +343 -0
  179. package/docs/voice-dna.md +297 -0
  180. package/docs/work-types.md +339 -0
  181. package/lib/architectural-profiles.js +134 -0
  182. package/package.json +54 -0
  183. package/templates/BRIEF.md +51 -0
  184. package/templates/CHARACTERS.md +64 -0
  185. package/templates/CONTEXT.md +56 -0
  186. package/templates/OUTLINE.md +36 -0
  187. package/templates/RECORD.md +68 -0
  188. package/templates/STATE.md +50 -0
  189. package/templates/STYLE-GUIDE.md +121 -0
  190. package/templates/THEMES.md +36 -0
  191. package/templates/WORK.md +67 -0
  192. package/templates/WORLD.md +62 -0
  193. package/templates/WRITING-RULES.md +156 -0
  194. package/templates/academic/ARGUMENT-MAP.md +40 -0
  195. package/templates/academic/CONCEPTS.md +34 -0
  196. package/templates/academic/CONTEXT.md +29 -0
  197. package/templates/academic/PROPOSAL.md +37 -0
  198. package/templates/academic/QUESTIONS.md +24 -0
  199. package/templates/config.json +72 -0
  200. package/templates/pitfalls/comic.md +54 -0
  201. package/templates/pitfalls/commentary.md +62 -0
  202. package/templates/pitfalls/memoir.md +48 -0
  203. package/templates/pitfalls/novel.md +53 -0
  204. package/templates/pitfalls/poetry_collection.md +63 -0
  205. package/templates/pitfalls/research_paper.md +66 -0
  206. package/templates/pitfalls/runbook.md +64 -0
  207. package/templates/pitfalls/screenplay.md +54 -0
  208. package/templates/platforms/README.md +16 -0
  209. package/templates/platforms/apple/manifest.yaml +20 -0
  210. package/templates/platforms/bn/manifest.yaml +20 -0
  211. package/templates/platforms/d2d/manifest.yaml +20 -0
  212. package/templates/platforms/google/manifest.yaml +20 -0
  213. package/templates/platforms/ingram/manifest.yaml +44 -0
  214. package/templates/platforms/kdp/manifest.yaml +42 -0
  215. package/templates/platforms/kobo/manifest.yaml +20 -0
  216. package/templates/platforms/smashwords/manifest.yaml +26 -0
  217. package/templates/sacred/COSMOLOGY.md +88 -0
  218. package/templates/sacred/DOCTRINES.md +45 -0
  219. package/templates/sacred/FIGURES.md +69 -0
  220. package/templates/sacred/FRAMEWORK.md +98 -0
  221. package/templates/sacred/LINEAGES.md +52 -0
  222. package/templates/sacred/README.md +20 -0
  223. package/templates/sacred/THEOLOGICAL-ARC.md +69 -0
  224. package/templates/sacred/catholic/manifest.yaml +93 -0
  225. package/templates/sacred/islamic-hafs/manifest.yaml +134 -0
  226. package/templates/sacred/islamic-warsh/manifest.yaml +134 -0
  227. package/templates/sacred/jewish/manifest.yaml +56 -0
  228. package/templates/sacred/orthodox/manifest.yaml +98 -0
  229. package/templates/sacred/pali/manifest.yaml +20 -0
  230. package/templates/sacred/protestant/manifest.yaml +86 -0
  231. package/templates/sacred/sanskrit/manifest.yaml +20 -0
  232. package/templates/sacred/tewahedo/manifest.yaml +106 -0
  233. package/templates/sacred/tibetan/manifest.yaml +20 -0
  234. package/templates/technical/AUDIENCE.md +26 -0
  235. package/templates/technical/DEPENDENCIES.md +19 -0
  236. package/templates/technical/DOC-BRIEF.md +45 -0
  237. package/templates/technical/PROCEDURES.md +37 -0
  238. package/templates/technical/REFERENCES.md +36 -0
  239. package/templates/technical/SYSTEM.md +25 -0
@@ -0,0 +1,152 @@
1
+ # Development
2
+
3
+ This guide is for contributors working on Scriveno itself rather than using Scriveno as a writer.
4
+
5
+ ## Development model
6
+
7
+ Scriveno is a pure skill and command system:
8
+
9
+ - commands are markdown files in `commands/scr/`
10
+ - agents are markdown files in `agents/`
11
+ - templates are markdown or JSON files in `templates/`
12
+ - the installer is the only Node-based executable surface in `bin/install.js`
13
+ - `data/CONSTRAINTS.json` is the central registry for capabilities and adaptation
14
+
15
+ There is no compiled app, frontend bundle, service, or dependency-heavy local dev stack to boot.
16
+
17
+ ## Local setup
18
+
19
+ Scriveno’s local development requirements are intentionally small:
20
+
21
+ - Node.js >=20.0.0 for the installer and test runner. Use a currently supported LTS such as Node.js 24 for new work.
22
+ - npm for package scripts and publish tooling
23
+ - git for normal repo history
24
+
25
+ Install dependencies:
26
+
27
+ ```bash
28
+ npm install
29
+ ```
30
+
31
+ Today that mainly creates the lockfile context and standard npm metadata flow. The package remains dependency-free at runtime.
32
+
33
+ ## Important directories
34
+
35
+ These are the main places contributors work:
36
+
37
+ - `commands/scr/` for writer-facing commands
38
+ - `commands/scr/sacred/` for sacred-exclusive subcommands
39
+ - `agents/` for fresh-context worker agents like `drafter` and `voice-checker`
40
+ - `templates/` for generated project scaffolding
41
+ - `data/CONSTRAINTS.json` for work types, commands, adaptations, and export rules
42
+ - `docs/` for shipped documentation
43
+ - `test/` for Node test suites
44
+ - `bin/install.js` for runtime installation behavior
45
+
46
+ ## Common contribution paths
47
+
48
+ ### Add or change a command
49
+
50
+ 1. Edit or add the markdown file under `commands/scr/`
51
+ 2. Register or update the command in `data/CONSTRAINTS.json`
52
+ 3. Update docs if the command surface or wording changed
53
+ 4. Add or update tests when the change affects trust, counts, adaptation, packaging, or installer behavior
54
+
55
+ Use [Contributing](contributing.md) for the full command-authoring walkthrough.
56
+
57
+ ### Add a work type
58
+
59
+ 1. Add or update the work type under `data/CONSTRAINTS.json`
60
+ 2. Check its group, hierarchy, `command_unit`, and any `config_defaults`
61
+ 3. Update docs that reference work-type counts or examples
62
+ 4. Update tests that lock the visible work-type surface
63
+
64
+ ### Add templates or adaptation files
65
+
66
+ 1. Add the template under `templates/`, `templates/technical/`, or `templates/sacred/`
67
+ 2. Update the command logic or docs that describe the generated file set
68
+ 3. Verify the template is included by npm packaging if it is supposed to ship
69
+
70
+ ### Change installer behavior
71
+
72
+ 1. Edit `bin/install.js`
73
+ 2. Update docs that mention installer targets, runtime support, or setup paths
74
+ 3. Run the installer and package-oriented tests
75
+ 4. Dry-run packaging before release-sensitive changes
76
+
77
+ ## Working principles
78
+
79
+ These constraints matter more than convenience:
80
+
81
+ - keep the system markdown-first and dependency-light
82
+ - preserve the Voice DNA pipeline
83
+ - keep `>=20.0.0` as the installer compatibility floor unless the product plan changes
84
+ - treat `docs/runtime-support.md` and `docs/shipped-assets.md` as trust-critical docs
85
+ - avoid overstating runtime parity or shipped assets
86
+
87
+ If a command file and the plan disagree, the plan is canonical and the command should be corrected.
88
+
89
+ ## Useful commands
90
+
91
+ Run the full suite:
92
+
93
+ ```bash
94
+ npm test
95
+ ```
96
+
97
+ Run a smaller targeted subset while iterating:
98
+
99
+ ```bash
100
+ node --test test/package.test.js test/constraints.test.js
101
+ ```
102
+
103
+ Run the release gate before publishing:
104
+
105
+ ```bash
106
+ npm run release:check
107
+ ```
108
+
109
+ Start the installer locally:
110
+
111
+ ```bash
112
+ npm start
113
+ ```
114
+
115
+ Refresh installed runtime surfaces from this checkout after changing commands, agents, or installer-generated skills:
116
+
117
+ ```bash
118
+ node bin/install.js --runtime codex --global --developer --silent
119
+ ```
120
+
121
+ The writer-facing form of this maintenance operation is `/scr:sync`.
122
+
123
+ ## Docs and release workflow
124
+
125
+ Docs are part of the shipped product. If you change visible behavior, update every affected documentation surface in the same pass: root docs, files under `docs/`, proof READMEs, template READMEs, and command markdown that exposes user-facing contracts.
126
+
127
+ For release-oriented documentation surfaces, the main files are:
128
+
129
+ - `README.md`
130
+ - `CHANGELOG.md`
131
+ - `docs/release-notes.md`
132
+ - `docs/shipped-assets.md`
133
+ - `docs/command-reference.md`
134
+ - `templates/*/README.md` when shipped profiles or templates change
135
+ - `.planning/` milestone summaries when you are still using the GSD planning layer
136
+
137
+ ## Before shipping
138
+
139
+ A good pre-ship pass for Scriveno changes is:
140
+
141
+ 1. run the targeted tests for the touched surface
142
+ 2. run `npm test`
143
+ 3. run `npm run release:check` for package-facing changes
144
+ 4. review trust-sensitive docs for runtime, asset, and support claims
145
+
146
+ ## Related docs
147
+
148
+ - [Architecture](architecture.md)
149
+ - [Configuration](configuration.md)
150
+ - [Testing](testing.md)
151
+ - [Contributing](contributing.md)
152
+ - [Release Notes](release-notes.md)
@@ -0,0 +1,127 @@
1
+ # Drafter quality controls
2
+
3
+ Scriveno's drafter agent loads three layers of rule context, in this order, on every atomic unit:
4
+
5
+ 1. **STYLE-GUIDE.md** (always, sovereign): the writer's Voice DNA. The drafter's primary loyalty.
6
+ 2. **WRITING-RULES.md** (optional, universal): human-first restraint, content integrity, register awareness, artifact cleanup, and canonical AI-tell don'ts that apply to all writing.
7
+ 3. **Pitfall pack** (optional, type-specific): traps unique to the project's `work_type`.
8
+
9
+ Conflict resolution is top-down. STYLE-GUIDE.md beats WRITING-RULES.md beats the pitfall pack. The writer's voice is sovereign; the rule layers are scaffolding to keep weaker models from drifting into generic AI prose, not constraints to override the writer.
10
+
11
+ ## WRITING-RULES.md
12
+
13
+ Ships as `templates/WRITING-RULES.md` and lands in every new project's `.manuscript/` via `/scr:new-work` and `/scr:import`. The file is a universal restraint layer covering:
14
+
15
+ - Human-first restraint: do not over-correct prose that already sounds like the writer
16
+ - Variance over substitution: fix the thought and rhythm, not only the suspect word
17
+ - Factual integrity and content preservation
18
+ - Soft-inference discipline for cause, timing, priority, quantity, and motive
19
+ - Register-aware restraint for academic, technical, legal, sacred, journalistic, quoted, and period material
20
+ - Stance discipline: edge or opinion only reacts to supplied material
21
+ - Hedging and qualifiers
22
+ - Throat-clearing and scaffolding
23
+ - Balanced-both-sides constructions
24
+ - Generic metaphors and dead figures
25
+ - Symmetrical rhythm
26
+ - Moralizing closings
27
+ - Essay transitions in narrative
28
+ - Abstract vagueness
29
+ - Emotional telling
30
+ - AI tics in dialogue
31
+ - Chat artifacts, placeholder tokens, copied citation residue, and orphaned fences
32
+ - Durable-doc wording that describes what is true now
33
+ - Show-don't-tell triggers
34
+ - Punctuation defaults (no em/en dashes, no emojis)
35
+ - Diagnostic discipline (honest read): how the same rules read from the other side when prose is being evaluated rather than written
36
+
37
+ The drafter, voice-checker, and originality-check all reference this as the canonical universal rulebook. If a writer's STYLE-GUIDE.md says they hedge, fragment, moralize, use period diction, or keep a formal register deliberately, that voice choice wins.
38
+
39
+ The human-first additions are especially important for revision. They tell Scriveno to look for clusters before flagging AI-like prose, preserve mixed feelings and uneven rhythm, keep every required beat, avoid making unsupported details more specific just because the sentence would sound smoother, and avoid installing a new "humanized" signature.
40
+
41
+ Editing commands should also report restraint. A good line-edit or polish pass can say what it deliberately left alone: a formal register, an earned list, a rough sentence that carries voice, or a loaded hedge that changes the claim if removed.
42
+
43
+ The diagnostic layer is the evaluative counterpart and is deliberately separate from rewriting. `/scr:voice-check` and `/scr:originality-check` (and the voice-checker agent behind them) diagnose: 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 hand back a rewritten span. They run a scrutiny pre-check that matches scrutiny to evidence density (low density biases hard toward a high score, because over-flagging genuine human prose is the worst error a diagnostic can make), a false-positive audit with veto power that turns strong false positives into score-raising human markers, and an internal-consistency check for unearned register or sophistication seams. Every report carries a required "Reads as human (deliberately not flagged)" section and a caveat that the score is a heuristic read, not proof. The loop is diagnose, decide, transform (`/scr:line-edit`, `/scr:polish`, re-draft), re-verify; keeping diagnosis and rewriting in separate steps with the writer between them is what prevents a score-then-rewrite gaming loop, so the drafter self-check stays a write-to-the-voice judgement rather than a score chase, and no diagnostic carries a target score into a rewrite.
44
+
45
+ ## Pitfall packs
46
+
47
+ Ship as `templates/pitfalls/<work_type>.md`. The drafter looks for a pack matching `config.work_type` in this order:
48
+
49
+ 1. `.manuscript/PITFALLS.md` (project-local override that the writer can author)
50
+ 2. `templates/pitfalls/<work_type>.md` (the installed pack)
51
+ 3. None: skip silently
52
+
53
+ Initial coverage spans 8 work types (one per major group plus a second prose entry):
54
+
55
+ | Pack | Group | Focus |
56
+ |------|-------|-------|
57
+ | `novel.md` | prose | filter words, POV breaches, dialogue traps, genre stock phrases |
58
+ | `memoir.md` | prose | retrospective voice traps, sentimentality, self-presentation |
59
+ | `screenplay.md` | script | unfilmable description, action-line bloat, on-the-nose dialogue |
60
+ | `runbook.md` | technical | imperatives, missing preconditions, verification and rollback |
61
+ | `research_paper.md` | academic | hedge stacks, citation hygiene, methodology traps |
62
+ | `poetry_collection.md` | poetry | image cliches, diction traps, sentimentality, form pitfalls |
63
+ | `comic.md` | visual | script-versus-art boundary, panel rhythm, caption voice |
64
+ | `commentary.md` | sacred | register drift, anachronism, source-handling, doctrinal precision |
65
+
66
+ A contributor adding `templates/pitfalls/<new_work_type>.md` is automatically picked up by `listPitfallPacks()` with no edit to library code or `CONSTRAINTS.json`.
67
+
68
+ ## The `draft` block in config.json
69
+
70
+ Three knobs in `.manuscript/config.json`:
71
+
72
+ ```json
73
+ "draft": {
74
+ "rigor": "standard",
75
+ "context_profile": "standard",
76
+ "pitfalls_enabled": true
77
+ }
78
+ ```
79
+
80
+ ### `draft.rigor`
81
+
82
+ - `standard` (default): the drafter applies WRITING-RULES.md and the pitfall pack during the Step 4 self-check. Rewrites if drift is detected.
83
+ - `strict`: the drafter mentally checks each sentence against WRITING-RULES.md and the pitfall pack as it writes. Use when routing to weaker models that benefit from explicit per-sentence scaffolding.
84
+
85
+ ### `draft.context_profile`
86
+
87
+ Controls how much context the drafter loads per atomic unit. Saves tokens on every invocation, which compounds across a manuscript of dozens or hundreds of units.
88
+
89
+ - `minimal`: STYLE-GUIDE, WRITING-RULES, the unit's PLAN, the previous unit's tail, and CHARACTERS entries for figures actually appearing in the plan. Skips THEMES.md and WORK.md unless the plan references them.
90
+ - `standard` (default): full context list. Preserves prior behavior for unmodified projects.
91
+ - `full`: standard + full DOCTRINES.md and LINEAGES.md (not excerpts) for sacred works, plus reference passages when the orchestrator provides them. Use when the unit genuinely needs cross-document continuity.
92
+
93
+ ### `draft.pitfalls_enabled`
94
+
95
+ When `false`, skip loading the pitfall pack. WRITING-RULES.md still loads. Use when the writer's voice deliberately leans into a pitfall (parody, pastiche, period voice, satire) and the pack is more interference than help.
96
+
97
+ ## Model tier recommendations
98
+
99
+ Rough guidance for matching settings to model class. The writer's experience with the model is the final arbiter; treat these as starting points, not laws.
100
+
101
+ | Model class | Typical use | Recommended `rigor` | Recommended `context_profile` |
102
+ |-------------|------------|--------------------|------------------------------|
103
+ | Frontier (Opus 4.x, GPT-4.x, Gemini 2.x Pro) | Long-form drafting, complex sacred or literary prose | `standard` | `standard` or `full` (when the unit needs continuity) |
104
+ | Mid-tier (Sonnet 4.x, GPT-4 mini, Haiku 4.x) | Day-to-day drafting, most novels and screenplays | `standard` | `standard` |
105
+ | Budget (Haiku, GPT-3.5, local 7-13B) | Bulk drafting of short scenes, repetitive structural work | `strict` | `minimal` |
106
+
107
+ If voice fidelity drops below the writer's `voice.drift_threshold`, the first lever is `rigor: strict`. The second is to step up a model tier. The third is to recalibrate STYLE-GUIDE.md via `/scr:voice-test`.
108
+
109
+ ## Token economy
110
+
111
+ The drafter's prompt cache benefits from a stable prefix. Loading order is fixed across invocations (STYLE-GUIDE.md, WRITING-RULES.md, pitfall pack first; unit-variable files last) so the host runtime's prompt cache hits the rule layers without recomputation. The `minimal` context profile compounds this: less tail variance per unit means more cache reuse across a long drafting session.
112
+
113
+ ## Backward compatibility
114
+
115
+ All three layers are optional. Projects predating this feature keep working without modification:
116
+
117
+ - WRITING-RULES.md absent: drafter falls back to inline "what you must never do" rules.
118
+ - No pitfall pack for the work_type: drafter skips silently; line-edit falls back to broad genre cues.
119
+ - `draft` block absent from config.json: drafter uses defaults (`standard` rigor, `standard` context_profile, pitfalls enabled).
120
+
121
+ ## See also
122
+
123
+ - [`templates/WRITING-RULES.md`](../templates/WRITING-RULES.md): the canonical universal rulebook
124
+ - [`templates/pitfalls/`](../templates/pitfalls/): per-work-type pitfall packs
125
+ - [`agents/drafter.md`](../agents/drafter.md): the drafter agent's contract
126
+ - [`agents/voice-checker.md`](../agents/voice-checker.md): the voice-drift gate
127
+ - [`commands/scr/originality-check.md`](../commands/scr/originality-check.md): AI-pattern detection
@@ -0,0 +1,198 @@
1
+ # Getting Started with Scriveno
2
+
3
+ Go from zero to a drafted scene in under 10 minutes. This guide walks you through installation, project setup, and your first draft.
4
+
5
+ Want evidence first? Start with [Proof Artifacts](proof-artifacts.md). The watchmaker sample flow and the Voice DNA before/after bundle give you the fastest way to inspect what Scriveno actually proves today.
6
+
7
+ ## Prerequisites
8
+
9
+ - **An AI coding agent** -- Claude Code, Cursor, Gemini CLI, or another current Scriveno installer target
10
+ - **Node.js >=20.0.0** -- needed for the installer only. For new installs, use a currently supported LTS such as Node.js 24.
11
+ - That's it. No other dependencies for the core writing workflow.
12
+
13
+ Before choosing a runtime, check [Runtime Support](runtime-support.md) for the current installer targets, install types, support levels, and verification status.
14
+
15
+ ## Step 1: Install Scriveno
16
+
17
+ Run the installer in your terminal:
18
+
19
+ ```
20
+ npx scriveno@latest
21
+ ```
22
+
23
+ This installs Scriveno into the runtime you choose. Command-directory and skills targets place files where the runtime expects them. Guided targets like Perplexity Desktop instead write setup assets and show the exact connector steps you need. Takes about 30 seconds.
24
+
25
+ Once installed, Claude Code uses flat `/scr-*` commands such as `/scr-help` and `/scr-new-work`. Other command-directory runtimes currently keep `/scr:*`. Codex uses generated `$scr-*` skills such as `$scr-help` and `$scr-new-work`. Guided targets explain their supported setup path directly in the generated setup files.
26
+
27
+ ## Step 2: Explore the Demo (Optional)
28
+
29
+ Not sure what Scriveno does? Try the demo before starting your own project:
30
+
31
+ Claude Code:
32
+
33
+ ```
34
+ /scr-demo
35
+ ```
36
+
37
+ Codex:
38
+
39
+ ```
40
+ $scr-demo
41
+ ```
42
+
43
+ This creates a pre-built short story project -- a retired watchmaker who receives a letter from a daughter he never knew. The demo includes:
44
+
45
+ - 4 fully drafted scenes with distinct voice and style
46
+ - A complete voice profile (STYLE-GUIDE.md)
47
+ - Character files, plot graph, and thematic threads
48
+ - Editor notes on one scene so you can see the revision workflow
49
+ - 1 planned-but-undrafted scene so you can watch the drafter work
50
+
51
+ Explore at your own pace. When you're ready to start your own work, run `/scr-demo --clear` to clean up.
52
+
53
+ If you want a curated reading path instead of jumping straight into the demo files, open [Proof Artifacts](proof-artifacts.md) first. It maps the watchmaker sample to the exact files worth inspecting.
54
+
55
+ ## Step 3: Start Your Project
56
+
57
+ Create a new writing project:
58
+
59
+ Claude Code:
60
+
61
+ ```
62
+ /scr-new-work
63
+ ```
64
+
65
+ Codex:
66
+
67
+ ```
68
+ $scr-new-work
69
+ ```
70
+
71
+ Scriveno asks just 3 questions -- what you're writing, your premise, and whether you have existing material. That's it. No long setup forms, no configuration wizards.
72
+
73
+ From your answers, Scriveno generates your project structure:
74
+
75
+ ```
76
+ .manuscript/
77
+ WORK.md -- your project's identity
78
+ OUTLINE.md -- structure and unit breakdown
79
+ RECORD.md -- what the work has established
80
+ STYLE-GUIDE.md -- your Voice DNA profile
81
+ CHARACTERS.md -- cast and voice anchors
82
+ THEMES.md -- thematic threads
83
+ PLOT-GRAPH.md -- story arc and beats
84
+ STATE.md -- workflow position tracker
85
+ config.json -- project settings
86
+ ```
87
+
88
+ Every file adapts to your work type. Writing a screenplay? You get acts and scenes. A research paper? Sections and argument maps. A runbook? Procedures and system maps. A Quran commentary? Surahs and doctrinal frameworks. Scriveno supports 50 work types with tradition-native vocabulary.
89
+
90
+ ## Step 4: Calibrate Your Voice
91
+
92
+ Before you draft anything substantial, turn the STYLE-GUIDE template into a real voice profile:
93
+
94
+ Claude Code:
95
+
96
+ ```
97
+ /scr-profile-writer
98
+ ```
99
+
100
+ Codex:
101
+
102
+ ```
103
+ $scr-profile-writer
104
+ ```
105
+
106
+ This interview builds your Voice DNA from your preferences, reference works, or a writing sample. When it finishes, run:
107
+
108
+ Claude Code:
109
+
110
+ ```
111
+ /scr-voice-test
112
+ ```
113
+
114
+ Codex:
115
+
116
+ ```
117
+ $scr-voice-test
118
+ ```
119
+
120
+ That calibration pass writes a short sample and lets you say what sounds right or wrong before Scriveno starts drafting real units.
121
+
122
+ ## Step 5: Develop Your Story
123
+
124
+ Before drafting, shape your ideas:
125
+
126
+ Claude Code:
127
+
128
+ ```
129
+ /scr-discuss
130
+ ```
131
+
132
+ Codex:
133
+
134
+ ```
135
+ $scr-discuss
136
+ ```
137
+
138
+ This opens a collaborative conversation where you and the AI work through the creative decisions for your next unit -- pacing, voice, character dynamics, what to include, what to avoid. Scriveno picks the 3-4 most relevant questions for your specific scene rather than running through a checklist.
139
+
140
+ Your decisions get saved to a context file that the drafter will use. Think of this as giving the drafter its marching orders.
141
+
142
+ If you already refined your voice profile, you can also skip this step and draft with the defaults you've approved.
143
+
144
+ ## Step 6: Write Your First Draft
145
+
146
+ Draft your first unit:
147
+
148
+ Claude Code:
149
+
150
+ ```
151
+ /scr-draft
152
+ ```
153
+
154
+ Codex:
155
+
156
+ ```
157
+ $scr-draft
158
+ ```
159
+
160
+ The drafter loads your Voice DNA (STYLE-GUIDE.md) and writes in your voice, not generic AI prose. Each atomic unit (scene, beat, passage) is drafted in a fresh context to prevent voice drift and keep quality consistent across the entire work.
161
+
162
+ After drafting, Scriveno runs a voice-check pass to flag anything that drifted from your established style. You'll see a summary like: "Drafted Chapter 1: 2,400 words across 3 scenes. Voice consistency: 94%."
163
+
164
+ Your draft files appear in `.manuscript/` ready for you to read and revise.
165
+
166
+ ## What's Next
167
+
168
+ Not sure what to do? There's one command that always knows:
169
+
170
+ Claude Code:
171
+
172
+ ```
173
+ /scr-next
174
+ ```
175
+
176
+ Codex:
177
+
178
+ ```
179
+ $scr-next
180
+ ```
181
+
182
+ `/scr-next` reads your project state and runs the right next step automatically. A writer who only ever types `/scr-next` in Claude Code can complete an entire manuscript from start to finish.
183
+
184
+ Beyond the core workflow, Scriveno offers:
185
+
186
+ - **Revision** -- `/scr-editor-review`, `/scr-line-edit`, `/scr-continuity-check`
187
+ - **Publishing** -- `/scr-publish`, `/scr-export`, `/scr-cover-art`, `/scr-blurb`
188
+ - **Collaboration** -- `/scr-track` for revision tracks (`create`, `compare`, `merge`, `propose`)
189
+ - **Versions** -- `/scr-save`, `/scr-history`, `/scr-versions`, `/scr-compare`
190
+ - **Navigation** -- `/scr-help`, `/scr-next`, `/scr-pause-work`
191
+
192
+ For the full command list, see [Command Reference](command-reference.md).
193
+
194
+ If you want the trust surfaces around installation and shipping details, continue with:
195
+
196
+ - [Runtime Support](runtime-support.md) -- installer targets, support levels, and verification status
197
+ - [Shipped Assets](shipped-assets.md) -- what the npm package actually includes on the trust-critical surface
198
+ - [Release Notes](release-notes.md) -- what changed in the latest package release
@@ -0,0 +1,96 @@
1
+ # HISTORY.log Protocol
2
+
3
+ `.manuscript/HISTORY.log` is the project's append-only chronological record of Scriveno commands that mutate state. It is the third leg of the context-integrity stool, alongside `STATE.md` (structured snapshot) and `.manuscript/CONTEXT.md` (one-page bootstrap). Where STATE.md records *what is true now* and CONTEXT.md narrates *where you are*, HISTORY.log records *how you got here, in order*.
4
+
5
+ This document is the single source of truth for the line format. Every command that appends to HISTORY.log must follow this contract.
6
+
7
+ ---
8
+
9
+ ## Where it lives
10
+
11
+ - Path: `.manuscript/HISTORY.log`
12
+ - Committed to git (cross-session recovery is the whole point; do not gitignore)
13
+ - Append-only. Commands never rewrite, truncate, or rotate the file. If size becomes a real problem (>10MB) the writer can manually archive it via `mv .manuscript/HISTORY.log .manuscript/HISTORY-{date}.log` and start a fresh file. Scriveno does not auto-rotate.
14
+
15
+ ## Line format
16
+
17
+ One line per command invocation. UTF-8 text. No trailing whitespace. LF line endings. Pipe-delimited fields, with a single space on each side of every `|` for readability:
18
+
19
+ ```
20
+ {ISO_TIMESTAMP} | {COMMAND} | {KEY=VALUE pairs, separated by " | "} | outcome={outcome}
21
+ ```
22
+
23
+ ### Fields
24
+
25
+ | Field | Required | Format | Notes |
26
+ |-------|----------|--------|-------|
27
+ | `ISO_TIMESTAMP` | yes | `2026-05-10T17:14:33Z` (UTC, second precision) | Use UTC always. Local time loses meaning across collaborators. |
28
+ | `COMMAND` | yes | `scr:save`, `scr:draft`, `scr:export`, etc. | Always prefix with `scr:`. Use the canonical slash-command name without the leading `/`. |
29
+ | Key=value pairs | optional | `unit=12`, `level=balanced`, `format=epub`, `files=12-A-DRAFT.md,12-B-DRAFT.md` | Use lowercase keys. Multiple files comma-separated, no spaces. Quote values containing spaces with double quotes. |
30
+ | `outcome` | yes | `outcome=ok`, `outcome=committed`, `outcome=skipped`, `outcome=failed:<reason>` | Last field on the line. The `outcome=` prefix lets `/scr:scan` parse a tail-of-log status quickly. |
31
+
32
+ ### Examples
33
+
34
+ ```
35
+ 2026-05-10T17:14:33Z | scr:save | message="Saved after drafting Chapter 12" | files=3 | outcome=committed
36
+ 2026-05-10T17:18:02Z | scr:draft | unit=13 | files=13-A-DRAFT.md,13-B-DRAFT.md | outcome=ok
37
+ 2026-05-10T17:22:45Z | scr:plan | unit=14 | outcome=ok
38
+ 2026-05-10T17:30:11Z | scr:export | format=epub | level=- | outcome=ok
39
+ 2026-05-10T17:32:08Z | scr:publish | preset=ebook-wide | front-level=balanced | back-level=balanced | outcome=ok
40
+ 2026-05-10T17:35:54Z | scr:front-matter | level=balanced | elements=4 | outcome=ok
41
+ 2026-05-10T17:40:02Z | scr:scan --fix | files=STATE.md,CONTEXT.md | outcome=fixed-2
42
+ 2026-05-10T17:45:16Z | scr:export | format=pdf | outcome=failed:typst-not-installed
43
+ ```
44
+
45
+ ## Which commands append
46
+
47
+ These commands **must** append a line on every invocation that mutates state:
48
+
49
+ - `/scr:save`
50
+ - `/scr:draft`
51
+ - `/scr:plan`
52
+ - `/scr:export`
53
+ - `/scr:publish`
54
+ - `/scr:front-matter`
55
+ - `/scr:back-matter`
56
+ - `/scr:pause-work`
57
+ - `/scr:resume-work`
58
+ - `/scr:scan --fix`
59
+
60
+ Other state-mutating commands **may** append a line; this list is the minimum. Read-only commands (`/scr:progress`, `/scr:history`, `/scr:next` when it does not invoke another command) do not append. When `/scr:next` routes to a state-mutating command, the routed command is responsible for the entry, not `/scr:next` itself.
61
+
62
+ ## How to append
63
+
64
+ ```bash
65
+ echo "{ISO_TIMESTAMP} | {COMMAND} | {fields} | outcome={outcome}" >> .manuscript/HISTORY.log
66
+ ```
67
+
68
+ Generate the timestamp with one of:
69
+
70
+ ```bash
71
+ date -u +%Y-%m-%dT%H:%M:%SZ
72
+ ```
73
+
74
+ Create the file if it does not exist:
75
+
76
+ ```bash
77
+ touch .manuscript/HISTORY.log
78
+ ```
79
+
80
+ If the command being recorded is itself a `/scr:save`, the append must happen **before** `git add`. The line is part of the same commit.
81
+
82
+ ## Reading HISTORY.log
83
+
84
+ `/scr:scan` parses the last 50 lines on every run to detect malformed entries.
85
+
86
+ `.manuscript/CONTEXT.md` shows the last 5 entries as the "Recent activity" table. The CONTEXT.md regenerator (in `/scr:save`, `/scr:pause-work`, `/scr:resume-work`) reads HISTORY.log directly for that table.
87
+
88
+ `/scr:history` continues to show git-save history (writer-friendly version log). It does not read HISTORY.log -- the two surfaces are intentionally separate. Writers see saves; HISTORY.log is the AI-readable audit trail.
89
+
90
+ ## Why pipe-delimited and not JSON Lines
91
+
92
+ JSON is more rigorously parseable but harder to scan visually. Pipe-delimited with a fixed prefix (`{timestamp} | scr:{command}`) is grepable at a glance, lets a writer open the file in any text editor and orient instantly, and stays readable in a `tail -f` window during long sessions. The format is regular enough that any future tooling can parse it with one regex.
93
+
94
+ ## Why append-only and not a database
95
+
96
+ Scriveno's architecture rule is no compiled code, no runtime dependencies. A flat append-only log preserves that. Writers can `cat`, `grep`, and `tail` it. Git already provides durable storage, blame, and rewind. There is no parallel infrastructure to maintain.
@@ -0,0 +1,56 @@
1
+ # Proof Artifacts
2
+
3
+ This document is the canonical index of Scriveno's proof layer. It points to concrete artifacts a prospective user can inspect when asking whether Scriveno's claims are earned by the repo.
4
+
5
+ ## Start Here
6
+
7
+ - Read the **Watchmaker Sample Flow** if you want one end-to-end writing workflow from setup through drafts, review, and next step.
8
+ - Read **Voice DNA** if you want the shortest possible proof of how style guidance changes output on the same brief.
9
+ - Read **Creative Context** if you want to see one craft choice travel through discuss, plan, draft, and review artifacts.
10
+
11
+ ## Watchmaker Sample Flow
12
+
13
+ **What it proves:** Scriveno ships one credible writing workflow from setup context through drafted outcome, review evidence, and next-step continuity.
14
+
15
+ **Canonical artifact:** [data/proof/watchmaker-flow/README.md](../data/proof/watchmaker-flow/README.md)
16
+
17
+ **Underlying shipped files:**
18
+
19
+ - [data/demo/.manuscript/WORK.md](../data/demo/.manuscript/WORK.md)
20
+ - [data/demo/.manuscript/OUTLINE.md](../data/demo/.manuscript/OUTLINE.md)
21
+ - [data/demo/.manuscript/STATE.md](../data/demo/.manuscript/STATE.md)
22
+ - [data/demo/.manuscript/STYLE-GUIDE.md](../data/demo/.manuscript/STYLE-GUIDE.md)
23
+ - [data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md](../data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md)
24
+ - [data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md](../data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md)
25
+ - [data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md](../data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md)
26
+ - [data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md](../data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md)
27
+ - [data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md](../data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md)
28
+ - [data/demo/.manuscript/plans/5-the-reunion-PLAN.md](../data/demo/.manuscript/plans/5-the-reunion-PLAN.md)
29
+
30
+ Start with the proof bundle if you want the curated version. Follow the underlying files if you want to inspect the raw sample directly.
31
+
32
+ ## Voice DNA
33
+
34
+ **What it proves:** Scriveno's style-guide layer changes draft behavior in visible ways when the same brief is written unguided versus guided.
35
+
36
+ **Canonical artifact:** [data/proof/voice-dna/README.md](../data/proof/voice-dna/README.md)
37
+
38
+ **Artifact bundle:**
39
+
40
+ - [data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md](../data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md)
41
+ - [data/proof/voice-dna/UNGUIDED-SAMPLE.md](../data/proof/voice-dna/UNGUIDED-SAMPLE.md)
42
+ - [data/proof/voice-dna/GUIDED-SAMPLE.md](../data/proof/voice-dna/GUIDED-SAMPLE.md)
43
+
44
+ Read the bundle in order if you want to inspect sentence rhythm, metaphor selection, dialogue restraint, and physical grounding at the same time.
45
+
46
+ ## Creative Context
47
+
48
+ **What it proves:** Scriveno can preserve craft choices, character behavior, and subject movement across the core writing loop without adding labels to manuscript prose.
49
+
50
+ **Canonical artifact:** [data/proof/creative-context/README.md](../data/proof/creative-context/README.md)
51
+
52
+ ## Related Trust Docs
53
+
54
+ - [Shipped Assets](shipped-assets.md) -- canonical inventory of the trust-critical files Scriveno actually bundles
55
+ - [Runtime Support](runtime-support.md) -- canonical runtime matrix and installer-baseline framing
56
+ - [Release Notes](release-notes.md) -- summary of what changed in the latest package release