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,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
|