scriveno 2.0.11 → 2.0.12

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/README.md CHANGED
@@ -2,13 +2,15 @@
2
2
 
3
3
  [![CI](https://github.com/aihxp/scriveno/actions/workflows/ci.yml/badge.svg)](https://github.com/aihxp/scriveno/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
5
- [![Version](https://img.shields.io/badge/version-2.0.11-blue)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-2.0.12-blue)](CHANGELOG.md)
6
6
  [![npm](https://img.shields.io/npm/v/scriveno.svg)](https://www.npmjs.com/package/scriveno)
7
7
  [![Downloads](https://img.shields.io/npm/dm/scriveno.svg)](https://www.npmjs.com/package/scriveno)
8
8
  [![Status CLI](https://img.shields.io/badge/status%20CLI-scriveno%20status-blue)](docs/runtime-support.md#shared-auto-invoke-engine)
9
9
  [![Route Intelligence](https://img.shields.io/badge/route%20intelligence-agent%20lanes-blue)](docs/auto-invoke-policy.md)
10
10
  [![Runtime Smoke](https://img.shields.io/badge/runtime%20smoke-install%20checks-blue)](docs/runtime-support.md#runtime-smoke-and-agent-checks)
11
11
  [![Safe Apply](https://img.shields.io/badge/safe%20apply-visible%20gates-blue)](docs/auto-invoke-policy.md#safe-apply-and-audit-commands)
12
+ [![Quick Proof](https://img.shields.io/badge/quick%20proof-10%20minute%20path-blue)](docs/quick-proof.md)
13
+ [![Starter Sets](https://img.shields.io/badge/starter%20sets-goal%20paths-blue)](docs/starter-sets.md)
12
14
 
13
15
  **[scriveno on npm](https://www.npmjs.com/package/scriveno)**
14
16
 
@@ -18,7 +20,7 @@
18
20
 
19
21
  Scriveno brings spec-driven workflows to longform writing. It runs inside your AI coding agent (Claude Code, Cursor, Gemini CLI, and more) and also ships a guided Perplexity Desktop setup path for file-aware support without overstating parity.
20
22
 
21
- Scriveno is best understood as **AI-native longform writing software built around voice preservation**. Its core promise is narrow and high-stakes: drafted prose should sound like the writer, not like AI. If you want evidence before features, start with the [Proof Artifacts](docs/proof-artifacts.md).
23
+ Scriveno is best understood as **AI-native longform writing software built around voice preservation**. Its core promise is narrow and high-stakes: drafted prose should sound like the writer, not like AI. If you want evidence before features, start with the [Quick Proof](docs/quick-proof.md), then inspect the [Proof Artifacts](docs/proof-artifacts.md).
22
24
 
23
25
  ```bash
24
26
  npx scriveno@latest
@@ -72,7 +74,7 @@ $scr-help
72
74
 
73
75
  If you only ever type `/scr-next` in Claude Code, you can complete an entire novel. It always knows what's next.
74
76
 
75
- If you want the shortest proof-first route, read [Proof Artifacts](docs/proof-artifacts.md) before exploring the rest of the docs.
77
+ If you want the shortest proof-first route, read [Quick Proof](docs/quick-proof.md) before exploring the rest of the docs. If you want a small command path for your goal, use [Starter Sets](docs/starter-sets.md).
76
78
 
77
79
  ---
78
80
 
@@ -190,6 +192,8 @@ Scriveno is built on five principles:
190
192
  ## Documentation
191
193
 
192
194
  - [Proof Artifacts](docs/proof-artifacts.md) -- Canonical proof hub for the watchmaker sample flow and Voice DNA before/after bundle
195
+ - [Quick Proof](docs/quick-proof.md) -- 10-minute proof-first route through install checks, the demo, and the next draft
196
+ - [Starter Sets](docs/starter-sets.md) -- Small command paths for drafting, polishing, publishing, translation, sacred commentary, and repair
193
197
  - [Getting Started](docs/getting-started.md) -- Install to first draft in 10 minutes
194
198
  - [Command Reference](docs/command-reference.md) -- All 112 commands with usage, flags, and examples
195
199
  - [Work Types Guide](docs/work-types.md) -- How 50 work types adapt Scriveno's vocabulary
@@ -205,6 +209,7 @@ Scriveno is built on five principles:
205
209
  - [Route Graph Audit](docs/route-graph.md) -- Generated route graph, automation lanes, and priority fixtures
206
210
  - [Development](docs/development.md) -- Contributor workflow for changing commands, templates, installer logic, and docs
207
211
  - [Testing](docs/testing.md) -- What the test suite covers and which checks to run before shipping
212
+ - [Release Checklist](docs/release-checklist.md) -- Local, npm, GitHub, and fresh-install release verification
208
213
  - [Release Notes](docs/release-notes.md) -- Public summary of what changed between package releases
209
214
  - [Shipped Assets](docs/shipped-assets.md) -- Canonical inventory of bundled export templates and launch-critical files
210
215
  - [Runtime Support](docs/runtime-support.md) -- Canonical runtime matrix, Node baseline, and verification-status framing
@@ -235,11 +240,11 @@ Scriveno currently ships installer targets for these AI tooling environments:
235
240
 
236
241
  ## Status
237
242
 
238
- **Version:** 2.0.11
243
+ **Version:** 2.0.12
239
244
 
240
- Scriveno's core command surface is stable across 112 commands, 50 work types, and 11 installer targets. The current repo baseline includes shipped planning milestones through `v2.0 Publishing Cover Packaging`, plus the creative-context, record-store, branching-next, runtime-sync, adaptive concierge, human-first writing-safeguard, authenticity-diagnostic, domain-grilling, installer-marker cleanup, cross-runtime agent metadata, visible automation status, the shared `scriveno status --project .` auto-invoke engine, route-intelligence lanes, safe apply reporting, runtime smoke checks, agent availability checks, route graph audits, and the full audit repair pass through `2.0.11`. See [Shipped Assets](docs/shipped-assets.md) for the canonical asset inventory and [Runtime Support](docs/runtime-support.md) for the runtime compatibility matrix.
245
+ Scriveno's core command surface is stable across 112 commands, 50 work types, and 11 installer targets. The current repo baseline includes shipped planning milestones through `v2.0 Publishing Cover Packaging`, plus the creative-context, record-store, branching-next, runtime-sync, adaptive concierge, human-first writing-safeguard, authenticity-diagnostic, domain-grilling, installer-marker cleanup, cross-runtime agent metadata, visible automation status, the shared `scriveno status --project .` auto-invoke engine, route-intelligence lanes, safe apply reporting, runtime smoke checks, agent availability checks, route graph audits, the full audit repair pass through `2.0.11`, and the first-run proof surface in `2.0.12`. See [Quick Proof](docs/quick-proof.md) for the fastest proof path, [Shipped Assets](docs/shipped-assets.md) for the canonical asset inventory, and [Runtime Support](docs/runtime-support.md) for the runtime compatibility matrix.
241
246
 
242
- Version `2.0.11` publishes Scriveno under the package name `scriveno`, so the current install command is `npx scriveno@latest`. The older `scriveno-cli` package name is historical and was unpublished during the rename, so npm cannot attach a deprecation notice to it while it has no active registry record. The older `scriven-cli` package remains on npm only as a deprecated legacy name that points users to `scriveno`. Do not treat either legacy package name as active unless a deliberate compatibility shim is republished. See [CHANGELOG](CHANGELOG.md) for the full list and [docs/release-notes.md](docs/release-notes.md) for the public-facing summary.
247
+ Version `2.0.12` publishes Scriveno under the package name `scriveno`, so the current install command is `npx scriveno@latest`. The older `scriveno-cli` package name is historical and was unpublished during the rename, so npm cannot attach a deprecation notice to it while it has no active registry record. The older `scriven-cli` package remains on npm only as a deprecated legacy name that points users to `scriveno`. Do not treat either legacy package name as active unless a deliberate compatibility shim is republished. See [CHANGELOG](CHANGELOG.md) for the full list and [docs/release-notes.md](docs/release-notes.md) for the public-facing summary.
243
248
 
244
249
  Package history is tracked in [CHANGELOG.md](CHANGELOG.md), and the public-facing summary for this release is in [docs/release-notes.md](docs/release-notes.md).
245
250
 
@@ -69,7 +69,7 @@ Always create `RECORD.md` from `templates/RECORD.md` without renaming it. It is
69
69
  Write `.manuscript/config.json` by starting from `templates/config.json` and filling the project-specific values. The generated config must include the shared settings blocks that later commands read:
70
70
  ```json
71
71
  {
72
- "scriveno_version": "2.0.11",
72
+ "scriveno_version": "2.0.12",
73
73
  "work_type": "<chosen>",
74
74
  "group": "<group>",
75
75
  "command_unit": "<unit>",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./constraints.schema.json",
3
- "version": "2.0.11",
3
+ "version": "2.0.12",
4
4
  "description": "Scriveno constraint system: work types, command availability, exports, and dependencies. Every command checks this file at runtime.",
5
5
  "_notes": {
6
6
  "sacred_keys": "Sacred subcommands live at commands/scr/sacred/<name>.md and run as /scr:sacred:<name>. Their CONSTRAINTS keys use the sacred:<name> form so /scr:help can render the runnable slash-command path directly. The sacred-numbering-format entry is a separate flat command (commands/scr/sacred-numbering-format.md) that surfaces the active tradition's numbering format. It used to be named sacred-verse-numbering, which collided with sacred:verse-numbering at install time -- both flattened to scr-sacred-verse-numbering. Renamed in v1.6.x; the installer now refuses to install when two sources share a flat skill name."
@@ -57,7 +57,7 @@ When a writer runs `/scr:new-work`, Scriveno creates `.manuscript/config.json`.
57
57
 
58
58
  ```json
59
59
  {
60
- "scriveno_version": "2.0.11",
60
+ "scriveno_version": "2.0.12",
61
61
  "work_type": "<chosen>",
62
62
  "group": "<group>",
63
63
  "command_unit": "<unit>",
@@ -2,7 +2,7 @@
2
2
 
3
3
  Scriveno is a pure skill system -- markdown files that AI agents read and execute. There is no compiled code, no build step, no runtime dependencies. Contributing means adding or editing markdown files and updating the central constraint registry.
4
4
 
5
- This guide walks you through extending Scriveno: adding commands, agents, work types, templates, and export formats. Each section is self-contained -- jump to what you need.
5
+ This guide walks you through extending Scriveno: adding commands, agents, work types, templates, and export formats. Each section is self-contained -- jump to what you need. For release operations, use [Release Checklist](release-checklist.md).
6
6
 
7
7
  ## File Structure Overview
8
8
 
@@ -379,6 +379,9 @@ When a package release changes the public story, update the release docs alongsi
379
379
  - `CHANGELOG.md` -- package-level release history
380
380
  - `docs/release-notes.md` -- public-facing summary of what changed and why it matters
381
381
  - `README.md` -- current version/status blurb when the release changes the headline positioning
382
+ - `docs/quick-proof.md` -- proof-first first-run route when install, demo, or proof expectations change
383
+ - `docs/starter-sets.md` -- goal-based command paths when command positioning changes
384
+ - `docs/release-checklist.md` -- publish workflow when release validation changes
382
385
  - `docs/shipped-assets.md` -- canonical inventory when bundled docs, templates, proof assets, or trust-critical files change
383
386
  - `docs/command-reference.md` -- command contract reference when command behavior or flags change
384
387
  - `docs/auto-invoke-policy.md` -- proactive routing, safe apply, local-helper, and agent-spawn policy
@@ -395,7 +398,9 @@ When a package release changes the public story, update the release docs alongsi
395
398
  4. Run `npm test`
396
399
  5. Run `npm run release:check`
397
400
  6. For runtime, installer, agent, sync, or route-intelligence changes, run `scriveno sync --check`, `scriveno smoke --json`, `scriveno agents --json`, and `scriveno routes --json`
398
- 7. Publish only after the docs and package metadata tell the same story
401
+ 7. For docs, prompts, command markdown, release notes, and README changes, run `npm run policy:check`
402
+ 8. Follow [Release Checklist](release-checklist.md) before publishing
403
+ 9. Publish only after the docs and package metadata tell the same story
399
404
 
400
405
  ## Code Style
401
406
 
@@ -106,6 +106,12 @@ Run the release gate before publishing:
106
106
  npm run release:check
107
107
  ```
108
108
 
109
+ Run the writing-policy gate directly when changing docs, prompts, commands, release notes, or public copy:
110
+
111
+ ```bash
112
+ npm run policy:check
113
+ ```
114
+
109
115
  Start the installer locally:
110
116
 
111
117
  ```bash
@@ -143,6 +149,9 @@ For release-oriented documentation surfaces, the main files are:
143
149
 
144
150
  - `README.md`
145
151
  - `CHANGELOG.md`
152
+ - `docs/quick-proof.md`
153
+ - `docs/starter-sets.md`
154
+ - `docs/release-checklist.md`
146
155
  - `docs/release-notes.md`
147
156
  - `docs/shipped-assets.md`
148
157
  - `docs/command-reference.md`
@@ -158,9 +167,10 @@ A good pre-ship pass for Scriveno changes is:
158
167
 
159
168
  1. run the targeted tests for the touched surface
160
169
  2. run `npm test`
161
- 3. run `npm run release:check` for package-facing changes
162
- 4. run the proactive audit commands when routing, runtime, installer, or agent surfaces changed
163
- 5. review trust-sensitive docs for runtime, asset, and support claims
170
+ 3. run `npm run policy:check` for docs, command, agent, prompt, and release-note changes
171
+ 4. run `npm run release:check` for package-facing changes
172
+ 5. run the proactive audit commands when routing, runtime, installer, or agent surfaces changed
173
+ 6. review trust-sensitive docs for runtime, asset, and support claims
164
174
 
165
175
  ## Related docs
166
176
 
@@ -168,6 +178,8 @@ A good pre-ship pass for Scriveno changes is:
168
178
  - [Configuration](configuration.md)
169
179
  - [Testing](testing.md)
170
180
  - [Contributing](contributing.md)
181
+ - [Quick Proof](quick-proof.md)
182
+ - [Release Checklist](release-checklist.md)
171
183
  - [Auto-Invoke Policy](auto-invoke-policy.md)
172
184
  - [Runtime Support](runtime-support.md)
173
185
  - [Route Graph Audit](route-graph.md)
@@ -2,7 +2,7 @@
2
2
 
3
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
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.
5
+ Want evidence first? Start with [Quick Proof](quick-proof.md), then continue to [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
6
 
7
7
  ## Prerequisites
8
8
 
@@ -63,7 +63,7 @@ This creates a pre-built short story project -- a retired watchmaker who receive
63
63
 
64
64
  Explore at your own pace. When you're ready to start your own work, run `/scr-demo --clear` to clean up.
65
65
 
66
- 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.
66
+ If you want a curated reading path instead of jumping straight into the demo files, open [Quick Proof](quick-proof.md) first. It maps the install checks, runtime command shapes, watchmaker demo, and next draft into one 10-minute path.
67
67
 
68
68
  ## Step 3: Start Your Project
69
69
 
@@ -204,11 +204,13 @@ Beyond the core workflow, Scriveno offers:
204
204
  - **Versions** -- `/scr-save`, `/scr-history`, `/scr-versions`, `/scr-compare`
205
205
  - **Navigation** -- `/scr-help`, `/scr-next`, `/scr-pause-work`
206
206
 
207
- For the full command list, see [Command Reference](command-reference.md).
207
+ For small goal-based paths, use [Starter Sets](starter-sets.md). For the full command list, see [Command Reference](command-reference.md).
208
208
 
209
209
  If you want the trust surfaces around installation and shipping details, continue with:
210
210
 
211
211
  - [Runtime Support](runtime-support.md) -- installer targets, support levels, and verification status
212
+ - [Quick Proof](quick-proof.md) -- proof-first first-run path through install, demo, and next draft
213
+ - [Starter Sets](starter-sets.md) -- small command sets by writing goal
212
214
  - [Auto-Invoke Policy](auto-invoke-policy.md) -- status engine, visible automation, and agent-spawn boundaries
213
215
  - [Route Graph Audit](route-graph.md) -- generated route graph, automation lanes, and priority fixtures
214
216
  - [Shipped Assets](shipped-assets.md) -- what the npm package actually includes on the trust-critical surface
@@ -4,10 +4,13 @@ This document is the canonical index of Scriveno's proof layer. It points to con
4
4
 
5
5
  ## Start Here
6
6
 
7
+ - Read **Quick Proof** if you want one 10-minute route through installation checks, demo inspection, runtime command shapes, and the next draft command.
7
8
  - Read the **Watchmaker Sample Flow** if you want one end-to-end writing workflow from setup through drafts, review, and next step.
8
9
  - Read **Voice DNA** if you want the shortest possible proof of how style guidance changes output on the same brief.
9
10
  - Read **Creative Context** if you want to see one craft choice travel through discuss, plan, draft, and review artifacts.
10
11
 
12
+ **Fast path:** [Quick Proof](quick-proof.md)
13
+
11
14
  ## Watchmaker Sample Flow
12
15
 
13
16
  **What it proves:** Scriveno ships one credible writing workflow from setup context through drafted outcome, review evidence, and next-step continuity.
@@ -52,6 +55,8 @@ Read the bundle in order if you want to inspect sentence rhythm, metaphor select
52
55
  ## Related Trust Docs
53
56
 
54
57
  - [Shipped Assets](shipped-assets.md) -- canonical inventory of the trust-critical files Scriveno actually bundles
58
+ - [Quick Proof](quick-proof.md) -- 10-minute proof-first path through install checks, the demo, and the next draft
59
+ - [Starter Sets](starter-sets.md) -- small command sets by writing goal
55
60
  - [Runtime Support](runtime-support.md) -- canonical runtime matrix and installer-baseline framing
56
61
  - [Auto-Invoke Policy](auto-invoke-policy.md) -- proactive status, safe apply, local-helper, and agent-spawn boundaries
57
62
  - [Route Graph Audit](route-graph.md) -- generated route graph, automation lanes, and priority fixtures
@@ -0,0 +1,174 @@
1
+ # Quick Proof
2
+
3
+ This is the shortest proof-first path through Scriveno. It is meant for a fresh user who wants to see real shipped artifacts, a demo manuscript, runtime expectations, and the first practical commands before reading the full manual.
4
+
5
+ ## What This Proves
6
+
7
+ - Scriveno ships inspectable proof bundles, not only feature claims.
8
+ - The watchmaker demo includes real manuscript state, drafts, review notes, and a planned next unit.
9
+ - Voice DNA changes output on the same brief, with guided and unguided samples side by side.
10
+ - Runtime behavior is explicit: Claude Code is the primary reference runtime, Codex uses generated `$scr-*` skills, standard slash-command targets use `/scr:*`, and guided targets document their local setup path.
11
+ - The public CLI can audit installed surfaces with `scriveno smoke --json`.
12
+
13
+ ## 10-Minute Route
14
+
15
+ ### 1. Install
16
+
17
+ ```bash
18
+ npx scriveno@latest
19
+ ```
20
+
21
+ For a source checkout while developing Scriveno itself:
22
+
23
+ ```bash
24
+ node bin/install.js --runtimes claude-code,cursor,gemini-cli,codex,opencode,copilot,windsurf,antigravity,manus,perplexity-desktop,generic --global --developer --silent
25
+ ```
26
+
27
+ ### 2. Check The Installed Surface
28
+
29
+ ```bash
30
+ scriveno status --project .
31
+ scriveno smoke --json
32
+ scriveno agents --json
33
+ scriveno routes --json
34
+ ```
35
+
36
+ Expected result: the commands report installed surfaces, agent prompt availability, route lanes, and any manual gates. They do not mutate manuscript files.
37
+
38
+ ### 3. Open The Demo
39
+
40
+ Claude Code:
41
+
42
+ ```text
43
+ /scr-demo
44
+ ```
45
+
46
+ Standard slash-command runtimes:
47
+
48
+ ```text
49
+ /scr:demo
50
+ ```
51
+
52
+ Codex:
53
+
54
+ ```text
55
+ $scr-demo
56
+ ```
57
+
58
+ Then inspect the shipped files:
59
+
60
+ - [data/demo/.manuscript/WORK.md](../data/demo/.manuscript/WORK.md)
61
+ - [data/demo/.manuscript/STYLE-GUIDE.md](../data/demo/.manuscript/STYLE-GUIDE.md)
62
+ - [data/demo/.manuscript/STATE.md](../data/demo/.manuscript/STATE.md)
63
+ - [data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md](../data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md)
64
+ - [data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md](../data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md)
65
+ - [data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md](../data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md)
66
+ - [data/demo/.manuscript/plans/5-the-reunion-PLAN.md](../data/demo/.manuscript/plans/5-the-reunion-PLAN.md)
67
+
68
+ ### 4. Read The Proof Bundle
69
+
70
+ Start here:
71
+
72
+ - [data/proof/watchmaker-flow/README.md](../data/proof/watchmaker-flow/README.md)
73
+ - [data/proof/voice-dna/README.md](../data/proof/voice-dna/README.md)
74
+ - [data/proof/creative-context/README.md](../data/proof/creative-context/README.md)
75
+
76
+ The fastest comparison is the Voice DNA pair:
77
+
78
+ - [data/proof/voice-dna/UNGUIDED-SAMPLE.md](../data/proof/voice-dna/UNGUIDED-SAMPLE.md)
79
+ - [data/proof/voice-dna/GUIDED-SAMPLE.md](../data/proof/voice-dna/GUIDED-SAMPLE.md)
80
+
81
+ ### 5. Ask For The Next Unit
82
+
83
+ The demo includes a planned but undrafted fifth unit. Use the command shape for your host:
84
+
85
+ Claude Code:
86
+
87
+ ```text
88
+ /scr-draft 5
89
+ /scr-editor-review 5
90
+ ```
91
+
92
+ Standard slash-command runtimes:
93
+
94
+ ```text
95
+ /scr:draft 5
96
+ /scr:editor-review 5
97
+ ```
98
+
99
+ Codex:
100
+
101
+ ```text
102
+ $scr-draft 5
103
+ $scr-editor-review 5
104
+ ```
105
+
106
+ ### 6. Ask Scriveno What To Do Next
107
+
108
+ Claude Code:
109
+
110
+ ```text
111
+ /scr-next
112
+ ```
113
+
114
+ Standard slash-command runtimes:
115
+
116
+ ```text
117
+ /scr:next
118
+ ```
119
+
120
+ Codex:
121
+
122
+ ```text
123
+ $scr-next
124
+ ```
125
+
126
+ Terminal:
127
+
128
+ ```bash
129
+ scriveno status --project .
130
+ ```
131
+
132
+ ## Example Transcript
133
+
134
+ These transcript blocks show the expected shape, not a promise that every host prints identical phrasing.
135
+
136
+ ```text
137
+ > /scr-demo
138
+ Created the watchmaker demo project.
139
+ Next: inspect STYLE-GUIDE.md, read the first draft, then run /scr-next.
140
+ ```
141
+
142
+ ```text
143
+ > scriveno status --project .
144
+ Recommended next command: /scr:next
145
+ Candidate agents: drafter, voice-checker
146
+ Candidate local helpers: scan, save
147
+ Manual gates: writer approval before publishing or overwriting exports
148
+ ```
149
+
150
+ ```text
151
+ > /scr:draft 5
152
+ Loaded STYLE-GUIDE.md and the plan for unit 5.
153
+ Drafted the next atomic unit in fresh context.
154
+ Next: /scr:editor-review 5
155
+ ```
156
+
157
+ ## Runtime Expectations
158
+
159
+ Use [Runtime Support](runtime-support.md) as the canonical matrix. The short version:
160
+
161
+ - Claude Code is the primary reference runtime.
162
+ - Codex installs generated `$scr-*` skills, mirrored commands, agent prompts, and `.toml` agent metadata.
163
+ - Cursor, Gemini CLI, OpenCode, GitHub Copilot, Windsurf, and Antigravity install command directories plus agent prompts.
164
+ - Manus Desktop and the generic fallback install bundled skill manifests.
165
+ - Perplexity Desktop is a guided local-MCP setup target, not a writable command runtime.
166
+
167
+ No runtime claim here should be read as host-runtime parity proof. The repo proves install surfaces and package artifacts; host parity still needs per-host verification.
168
+
169
+ ## Where To Go Next
170
+
171
+ - [Starter Sets](starter-sets.md) for small command paths by writing goal
172
+ - [Getting Started](getting-started.md) for the complete first-project walkthrough
173
+ - [Proof Artifacts](proof-artifacts.md) for the proof hub
174
+ - [Runtime Support](runtime-support.md) for installation and support levels
@@ -0,0 +1,117 @@
1
+ # Release Checklist
2
+
3
+ This checklist is the package-release path for Scriveno maintainers. It is designed to verify the source checkout, the package tarball, the installed runtime surfaces, the published npm package, and the GitHub release.
4
+
5
+ ## 1. Confirm A Clean Baseline
6
+
7
+ ```bash
8
+ git status --short --branch
9
+ npm view scriveno version
10
+ ```
11
+
12
+ Choose the next package version from npm, not from memory.
13
+
14
+ ## 2. Run Local Gates
15
+
16
+ ```bash
17
+ npm run release:check
18
+ npm audit --omit=dev --json
19
+ node bin/install.js routes --json
20
+ node bin/install.js agents --json
21
+ node bin/install.js smoke --json
22
+ node bin/install.js sync --check --json
23
+ git diff --check
24
+ ```
25
+
26
+ Also scan text files for the repo writing policy:
27
+
28
+ ```bash
29
+ node scripts/check-writing-policy.js
30
+ ```
31
+
32
+ If that script does not exist in a checkout yet, run the equivalent local policy scan used by the release operator.
33
+
34
+ ## 3. Clear Previous Local Installs
35
+
36
+ Before validating a release candidate, clear Scriveno-owned install surfaces so stale files cannot hide installer defects.
37
+
38
+ ```bash
39
+ rm -rf "$HOME/.scriveno"
40
+ rm -rf "$HOME/.codex/commands/scr"
41
+ rm -rf "$HOME/.cursor/commands/scr"
42
+ rm -rf "$HOME/.gemini/commands/scr"
43
+ rm -rf "$HOME/.gemini/antigravity/commands/scr"
44
+ rm -rf "$HOME/.config/opencode/commands/scr"
45
+ rm -rf "$HOME/.github/commands/scr"
46
+ rm -rf "$HOME/.windsurf/commands/scr"
47
+ rm -rf "$HOME/.manus/skills/scriveno"
48
+ npm cache clean --force
49
+ ```
50
+
51
+ Then reinstall from the checkout:
52
+
53
+ ```bash
54
+ npm install -g .
55
+ scriveno --runtimes claude-code,cursor,gemini-cli,codex,opencode,copilot,windsurf,antigravity,manus,perplexity-desktop,generic --global --developer --silent
56
+ scriveno smoke --json
57
+ ```
58
+
59
+ ## 4. Pack The Candidate
60
+
61
+ ```bash
62
+ mkdir -p dist
63
+ npm pack --pack-destination dist
64
+ ```
65
+
66
+ Inspect the tarball name and confirm the version matches `package.json`.
67
+
68
+ ## 5. Commit And Tag
69
+
70
+ ```bash
71
+ git status --short
72
+ git add README.md CHANGELOG.md docs package.json package-lock.json data templates commands .planning test
73
+ git commit -m "Release scriveno X.Y.Z"
74
+ git tag vX.Y.Z
75
+ ```
76
+
77
+ Keep the commit message plain and version-specific.
78
+
79
+ ## 6. Publish To npm
80
+
81
+ ```bash
82
+ npm publish --access public
83
+ npm view scriveno version
84
+ ```
85
+
86
+ The published version must match `package.json` and the tag.
87
+
88
+ ## 7. Push Git And Create GitHub Release
89
+
90
+ ```bash
91
+ git push origin main
92
+ git push origin vX.Y.Z
93
+ gh release create vX.Y.Z dist/scriveno-X.Y.Z.tgz --title "Scriveno X.Y.Z" --notes-file /tmp/scriveno-release-notes.md
94
+ ```
95
+
96
+ The release notes should summarize the user-facing change, docs updated, tests run, and npm verification.
97
+
98
+ ## 8. Verify From Published npm
99
+
100
+ ```bash
101
+ npm install -g scriveno@latest
102
+ scriveno --version
103
+ scriveno --runtimes claude-code,cursor,gemini-cli,codex,opencode,copilot,windsurf,antigravity,manus,perplexity-desktop,generic --global --developer --silent
104
+ scriveno smoke --json
105
+ ```
106
+
107
+ This is the final proof that a fresh user can install the same package that was released.
108
+
109
+ ## 9. Final State
110
+
111
+ ```bash
112
+ git status --short --branch
113
+ gh release view vX.Y.Z
114
+ npm view scriveno version
115
+ ```
116
+
117
+ The final state should show a clean worktree, a visible GitHub release, and npm latest aligned to the new version.
@@ -2,6 +2,42 @@
2
2
 
3
3
  This document is the public-facing summary of what changed between package releases. For package history, see the root [CHANGELOG](../CHANGELOG.md).
4
4
 
5
+ ## 2.0.12 - 2026-05-16
6
+
7
+ ### What changed
8
+
9
+ - Scriveno now ships [Quick Proof](quick-proof.md), a 10-minute route through install checks, the watchmaker demo, Voice DNA samples, runtime command shapes, and the next draft command.
10
+ - Scriveno now ships [Starter Sets](starter-sets.md), goal-based command paths for drafting, polishing, publishing, translation, sacred commentary, and repair.
11
+ - Scriveno now ships [Release Checklist](release-checklist.md), a maintainer path for local gates, stale install cleanup, packing, npm publishing, GitHub release creation, and fresh `scriveno@latest` verification.
12
+ - `npm run release:check` now includes `npm run policy:check`, which scans tracked text files for the repository writing policy before packaging.
13
+ - README badges, Getting Started, Proof Artifacts, Runtime Support, Development, Contributing, Testing, Shipped Assets, Route Graph, Configuration, changelog, package metadata, constraints metadata, generated config metadata, and release tests are aligned on `2.0.12`.
14
+
15
+ ### Why it matters
16
+
17
+ The product already had proof artifacts, but the shortest path through them was too implicit. This release makes the first 10 minutes clearer for a new writer and makes the release process harder to drift by documenting and testing the local, npm, GitHub, and fresh-install verification path.
18
+
19
+ ### Affected areas
20
+
21
+ - README badges and launch copy
22
+ - proof-first documentation
23
+ - starter command guidance
24
+ - release checklist and testing docs
25
+ - writing-policy release gate
26
+ - package metadata and generated project examples
27
+ - planning state and release-alignment tests
28
+
29
+ ### Verification
30
+
31
+ - `node --test test/first-run-proof-surface.test.js test/package.test.js test/phase16-trust-regression.test.js test/phase14-runtime-credibility.test.js`
32
+ - `npm run policy:check`
33
+ - `npm run release:check`
34
+ - `node bin/install.js routes --json`
35
+ - `node bin/install.js agents --json`
36
+ - `node bin/install.js sync --check --json`
37
+ - `node bin/install.js smoke --json`
38
+ - `npm audit --omit=dev --json`
39
+ - `git diff --check`
40
+
5
41
  ## 2.0.11 - 2026-05-16
6
42
 
7
43
  ### What changed
@@ -13,7 +13,7 @@ The text report summarizes command count, graph edges, agent-capable routes, loc
13
13
 
14
14
  ## Current Shape
15
15
 
16
- As of `2.0.11`, the route graph contains:
16
+ As of `2.0.12`, the route graph contains:
17
17
 
18
18
  - 112 commands
19
19
  - intent-order edges from `command_intents`
@@ -65,6 +65,17 @@ Node is not a runtime dependency for Scriveno's markdown command system itself.
65
65
  - Manus Desktop and the generic skills fallback install a manifest `SKILL.md`, mirrored command files, and agent prompts inside the skill bundle.
66
66
  - Perplexity Desktop receives setup assets for a local-MCP connector. It does not receive writable command or agent prompt directories from the installer.
67
67
 
68
+ ## First-Run Command Shapes
69
+
70
+ Scriveno docs use `/scr:*` as the shared command id format unless a host-specific example is needed. Installed command surfaces differ by runtime:
71
+
72
+ - Claude Code: `/scr-demo`, `/scr-new-work`, `/scr-next`
73
+ - Standard command-directory runtimes: `/scr:demo`, `/scr:new-work`, `/scr:next`
74
+ - Codex: `$scr-demo`, `$scr-new-work`, `$scr-next`
75
+ - Guided targets: follow the generated setup instructions and connector recipe
76
+
77
+ Use [Quick Proof](quick-proof.md) for the 10-minute proof route and [Starter Sets](starter-sets.md) for goal-based command paths.
78
+
68
79
  ## Shared Auto-Invoke Engine
69
80
 
70
81
  Every install target receives the same read-only status engine through Scriveno's shared asset directory:
@@ -126,5 +137,7 @@ That distinction is intentional. Installer-path coverage and guided setup assets
126
137
  ## See Also
127
138
 
128
139
  - [Getting Started](getting-started.md) -- install flow and first-run expectations
140
+ - [Quick Proof](quick-proof.md) -- first-run proof path and runtime command shapes
141
+ - [Starter Sets](starter-sets.md) -- small command sets by writing goal
129
142
  - [Shipped Assets](shipped-assets.md) -- trust-critical files that ship with the package
130
143
  - [Release Notes](release-notes.md) -- latest package-level summary
@@ -115,6 +115,9 @@ Sacred commands read top-level sacred profile keys in new projects and preserve
115
115
  - `CHANGELOG.md` -- package-level release history
116
116
  - `docs/release-notes.md` -- public-facing release summary
117
117
  - `docs/proof-artifacts.md` -- canonical proof hub for sample-flow and voice-preservation evidence
118
+ - `docs/quick-proof.md` -- proof-first first-run route through install checks, demo inspection, and next-draft commands
119
+ - `docs/starter-sets.md` -- small command paths for common writing goals
120
+ - `docs/release-checklist.md` -- release validation path for source, npm, GitHub, and fresh installs
118
121
  - `docs/runtime-support.md` -- canonical runtime matrix, Node baseline, and support-confidence framing
119
122
  - `docs/command-reference.md` -- canonical command surface reference
120
123
  - `docs/configuration.md` -- canonical project config and package metadata reference
@@ -0,0 +1,74 @@
1
+ # Starter Sets
2
+
3
+ Scriveno has a large command surface because it covers many kinds of writing. Starter sets give each writer a short path instead of asking them to learn every command up front.
4
+
5
+ Each set is intentionally small. Use `/scr-next`, `/scr:next`, or `$scr-next` whenever you are unsure which command should come next.
6
+
7
+ ## Draft A Book
8
+
9
+ - `/scr:new-work` creates the project and work-type context.
10
+ - `/scr:profile-writer` turns the style guide into a real Voice DNA profile.
11
+ - `/scr:discuss` shapes the next unit with a few targeted questions.
12
+ - `/scr:plan` writes the next unit plan.
13
+ - `/scr:draft` drafts the planned unit in fresh context.
14
+ - `/scr:editor-review` reviews the draft for revision.
15
+ - `/scr:next` chooses the safest next move from project state.
16
+
17
+ ## Polish A Manuscript
18
+
19
+ - `/scr:import` brings existing material into a Scriveno project.
20
+ - `/scr:profile-writer` calibrates the voice profile against your actual prose.
21
+ - `/scr:continuity-check` finds contradictions and timeline drift.
22
+ - `/scr:voice-check` compares drafts against Voice DNA.
23
+ - `/scr:line-edit` improves sentence-level flow.
24
+ - `/scr:copy-edit` catches grammar, clarity, and consistency issues.
25
+ - `/scr:polish` chains the revision passes when the manuscript is ready.
26
+
27
+ ## Publish An Ebook
28
+
29
+ - `/scr:publish` starts the publication workflow.
30
+ - `/scr:front-matter` prepares title-page, copyright, and dedication pages.
31
+ - `/scr:back-matter` prepares author notes, acknowledgments, and reader materials.
32
+ - `/scr:blurb` drafts store-facing description copy.
33
+ - `/scr:cover-art` prepares cover direction or cover assets.
34
+ - `/scr:build-ebook` builds the ebook package.
35
+ - `/scr:export` writes the selected export format.
36
+
37
+ ## Translate A Work
38
+
39
+ - `/scr:translation-glossary` defines recurring terms, names, and voice rules.
40
+ - `/scr:translation-memory` records approved translation decisions.
41
+ - `/scr:translate` translates the selected unit or manuscript segment.
42
+ - `/scr:cultural-adaptation` flags idioms and culture-specific phrasing.
43
+ - `/scr:back-translate` checks whether meaning survived translation.
44
+ - `/scr:multi-publish` prepares parallel translated editions.
45
+
46
+ ## Build Sacred Commentary
47
+
48
+ - `/scr:new-work` creates a commentary, devotional, homiletic, or scripture project.
49
+ - `/scr:sacred:source-tracking` records primary and secondary source anchors.
50
+ - `/scr:sacred:concordance` builds searchable term and passage links.
51
+ - `/scr:sacred:cross-reference` maps related passages and interpretive connections.
52
+ - `/scr:sacred:doctrinal-check` verifies internal consistency and tradition constraints.
53
+ - `/scr:draft` writes the next commentary or sacred text unit.
54
+ - `/scr:editor-review` reviews the unit without flattening the tradition-native vocabulary.
55
+
56
+ ## Repair And Resume
57
+
58
+ - `/scr:health` diagnoses missing files, stale state, and broken project assumptions.
59
+ - `/scr:sync` checks installed command, agent, and helper surfaces.
60
+ - `/scr:scan` refreshes project inventory.
61
+ - `/scr:check-notes` surfaces open notes and unresolved reminders.
62
+ - `/scr:resume-work` restores the paused thread or project state.
63
+ - `/scr:next` chooses the next safe command.
64
+
65
+ ## Command Shape By Runtime
66
+
67
+ The starter sets use `/scr:*` because that is the shared command id format in Scriveno docs. Host surfaces differ:
68
+
69
+ - Claude Code uses flat commands such as `/scr-draft`.
70
+ - Standard command-directory runtimes currently keep `/scr:draft`.
71
+ - Codex uses generated skills such as `$scr-draft`.
72
+ - Guided targets such as Perplexity Desktop follow their generated setup instructions.
73
+
74
+ See [Runtime Support](runtime-support.md) for the canonical runtime matrix.
package/docs/testing.md CHANGED
@@ -10,7 +10,8 @@ The root `package.json` defines:
10
10
  "scripts": {
11
11
  "test": "node --test test/*.test.js",
12
12
  "pack:check": "npm pack --dry-run",
13
- "release:check": "npm test && npm run pack:check",
13
+ "policy:check": "node scripts/check-writing-policy.js",
14
+ "release:check": "npm test && npm run policy:check && npm run pack:check",
14
15
  "prepublishOnly": "npm run release:check"
15
16
  }
16
17
  ```
@@ -19,7 +20,8 @@ That means:
19
20
 
20
21
  - `npm test` runs the whole test suite
21
22
  - `npm run pack:check` verifies the package contents that would ship
22
- - `npm run release:check` runs both test and package checks
23
+ - `npm run policy:check` scans tracked text files for the repo writing policy
24
+ - `npm run release:check` runs tests, policy checks, and package checks
23
25
  - publishing is guarded by `release:check` through `prepublishOnly`
24
26
 
25
27
  ## Run the suite
@@ -95,8 +97,10 @@ Use these when changing README, docs, shipped-assets claims, or milestone trust
95
97
 
96
98
  - `test/phase13-launch-surface-integrity.test.js`
97
99
  - `test/phase15-proof-artifacts-positioning.test.js`
100
+ - `test/first-run-proof-surface.test.js`
98
101
  - `test/phase19-verification-trust-surface-updates.test.js`
99
102
  - `test/repository-policy.test.js`
103
+ - `npm run policy:check`
100
104
 
101
105
  ### Feature-family regression tests
102
106
 
@@ -136,6 +140,12 @@ For the standard release gate, prefer:
136
140
  npm run release:check
137
141
  ```
138
142
 
143
+ For docs, prompt, command markdown, and release-note changes, run:
144
+
145
+ ```bash
146
+ npm run policy:check
147
+ ```
148
+
139
149
  When changing proactive routing, runtime install paths, or agent surfaces, also run:
140
150
 
141
151
  ```bash
@@ -148,6 +158,8 @@ scriveno routes --json
148
158
 
149
159
  Use those for release prep so you can inspect what would ship without mutating the registry.
150
160
 
161
+ For the full publish path, including clearing local installs, packing, publishing, pushing, creating the GitHub release, and verifying `scriveno@latest`, use [Release Checklist](release-checklist.md).
162
+
151
163
  ## Practical workflow
152
164
 
153
165
  For most changes:
@@ -156,11 +168,14 @@ For most changes:
156
168
  2. make the fix
157
169
  3. rerun the targeted files
158
170
  4. run `npm test`
159
- 5. if packaging or release docs changed, run `npm run release:check`
171
+ 5. if docs, prompts, commands, or release notes changed, run `npm run policy:check`
172
+ 6. if packaging or release docs changed, run `npm run release:check`
160
173
 
161
174
  ## Related docs
162
175
 
163
176
  - [Development](development.md)
164
177
  - [Configuration](configuration.md)
165
178
  - [Contributing](contributing.md)
179
+ - [Quick Proof](quick-proof.md)
180
+ - [Release Checklist](release-checklist.md)
166
181
  - [Release Notes](release-notes.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scriveno",
3
- "version": "2.0.11",
3
+ "version": "2.0.12",
4
4
  "description": "Spec-driven creative writing, publishing, and translation pipeline for AI coding agents. From blank page to published book.",
5
5
  "bin": {
6
6
  "scriveno": "bin/install.js"
@@ -9,7 +9,8 @@
9
9
  "start": "node bin/install.js",
10
10
  "test": "node --test test/*.test.js",
11
11
  "pack:check": "npm pack --dry-run",
12
- "release:check": "npm test && npm run pack:check",
12
+ "policy:check": "node scripts/check-writing-policy.js",
13
+ "release:check": "npm test && npm run policy:check && npm run pack:check",
13
14
  "prepublishOnly": "npm run release:check"
14
15
  },
15
16
  "publishConfig": {
@@ -47,6 +48,7 @@
47
48
  "commands/",
48
49
  "agents/",
49
50
  "templates/",
51
+ "scripts/",
50
52
  "docs/",
51
53
  "README.md",
52
54
  "LICENSE"
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const { execSync } = require('node:child_process');
6
+
7
+ const ROOT = path.join(__dirname, '..');
8
+ const BINARY_EXTENSIONS = new Set([
9
+ '.docx',
10
+ '.gif',
11
+ '.ico',
12
+ '.jpeg',
13
+ '.jpg',
14
+ '.pdf',
15
+ '.png',
16
+ '.tgz',
17
+ '.zip',
18
+ ]);
19
+
20
+ function trackedFiles() {
21
+ const output = execSync('git ls-files', { cwd: ROOT, encoding: 'utf8' }).trim();
22
+ return output ? output.split(/\n/) : [];
23
+ }
24
+
25
+ function isBinaryPath(relativePath) {
26
+ return BINARY_EXTENSIONS.has(path.extname(relativePath).toLowerCase());
27
+ }
28
+
29
+ function lineNumberFor(source, index) {
30
+ return source.slice(0, index).split('\n').length;
31
+ }
32
+
33
+ function shouldFlag(codePoint, char) {
34
+ return codePoint === 0x2013
35
+ || codePoint === 0x2014
36
+ || /\p{Extended_Pictographic}/u.test(char);
37
+ }
38
+
39
+ function scan() {
40
+ const findings = [];
41
+
42
+ for (const relativePath of trackedFiles()) {
43
+ if (isBinaryPath(relativePath)) {
44
+ continue;
45
+ }
46
+
47
+ const absolutePath = path.join(ROOT, relativePath);
48
+ const buffer = fs.readFileSync(absolutePath);
49
+ if (buffer.includes(0)) {
50
+ continue;
51
+ }
52
+
53
+ const source = buffer.toString('utf8');
54
+ for (let index = 0; index < source.length; index += 1) {
55
+ const codePoint = source.codePointAt(index);
56
+ const char = String.fromCodePoint(codePoint);
57
+ if (shouldFlag(codePoint, char)) {
58
+ findings.push({
59
+ codePoint,
60
+ line: lineNumberFor(source, index),
61
+ relativePath,
62
+ });
63
+ }
64
+
65
+ if (codePoint > 0xffff) {
66
+ index += 1;
67
+ }
68
+ }
69
+ }
70
+
71
+ return findings;
72
+ }
73
+
74
+ const findings = scan();
75
+
76
+ for (const finding of findings) {
77
+ const hex = finding.codePoint.toString(16).toUpperCase().padStart(4, '0');
78
+ console.error(`${finding.relativePath}:${finding.line}: forbidden U+${hex}`);
79
+ }
80
+
81
+ if (findings.length > 0) {
82
+ console.error(`Writing policy scan failed: ${findings.length} forbidden marker(s).`);
83
+ process.exit(1);
84
+ }
85
+
86
+ console.log('Writing policy scan passed.');
@@ -1,5 +1,5 @@
1
1
  {
2
- "scriveno_version": "2.0.11",
2
+ "scriveno_version": "2.0.12",
3
3
  "work_type": "",
4
4
  "group": "",
5
5
  "command_unit": "",