scriveno 2.0.11 → 2.5.0

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,16 @@
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.5.0-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
+ [![First Run](https://img.shields.io/badge/first%20run-executable%20proof-blue)](docs/quick-proof.md)
13
+ [![Quick Proof](https://img.shields.io/badge/quick%20proof-10%20minute%20path-blue)](docs/quick-proof.md)
14
+ [![Starter Sets](https://img.shields.io/badge/starter%20sets-goal%20paths-blue)](docs/starter-sets.md)
12
15
 
13
16
  **[scriveno on npm](https://www.npmjs.com/package/scriveno)**
14
17
 
@@ -18,7 +21,7 @@
18
21
 
19
22
  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
23
 
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).
24
+ 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
25
 
23
26
  ```bash
24
27
  npx scriveno@latest
@@ -34,7 +37,7 @@ scriveno sync --check
34
37
 
35
38
  Scriveno is a command system that turns your AI coding agent into a voice-preserving writing studio. It supports 50 work types -- novels, screenplays, research papers, technical guides, runbooks, scripture commentaries, comics, memoirs -- each with its own adaptive vocabulary and toolset.
36
39
 
37
- The wedge comes first: Scriveno profiles the writer, loads that voice into every drafting step, and keeps each unit on fresh context so the prose stays specific to the project. From there, it expands into 112 writing commands covering the rest of the pipeline:
40
+ The wedge comes first: Scriveno profiles the writer, loads that voice into every drafting step, and keeps each unit on fresh context so the prose stays specific to the project. From there, it expands into 113 writing commands covering the rest of the pipeline:
38
41
 
39
42
  - **Create** -- Set up a project with tailored context files. Progressive onboarding, never overwhelming.
40
43
  - **Write** -- Discuss, plan, draft, and revise one unit at a time. The drafter agent loads your Voice DNA and writes in *your* voice, not generic AI prose.
@@ -54,16 +57,19 @@ Everything adapts to your work type. A novel uses `/scr:draft` for chapters. A s
54
57
  npx scriveno@latest
55
58
 
56
59
  # In Claude Code:
60
+ /scr-first-run # Run the guided proof path first
57
61
  /scr-new-work # Start a fresh project
58
62
  /scr-demo # Explore a pre-built sample first
59
63
  /scr-next # The universal "what should I do now" command
60
64
  /scr-help # See what's available for your work type
61
65
 
62
66
  # Other slash-command runtimes currently keep /scr:*:
67
+ /scr:first-run
63
68
  /scr:new-work
64
69
  /scr:next
65
70
 
66
71
  # In Codex, use the generated $scr-* skills:
72
+ $scr-first-run
67
73
  $scr-new-work
68
74
  $scr-demo
69
75
  $scr-next
@@ -72,7 +78,7 @@ $scr-help
72
78
 
73
79
  If you only ever type `/scr-next` in Claude Code, you can complete an entire novel. It always knows what's next.
74
80
 
75
- If you want the shortest proof-first route, read [Proof Artifacts](docs/proof-artifacts.md) before exploring the rest of the docs.
81
+ 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
82
 
77
83
  ---
78
84
 
@@ -190,8 +196,10 @@ Scriveno is built on five principles:
190
196
  ## Documentation
191
197
 
192
198
  - [Proof Artifacts](docs/proof-artifacts.md) -- Canonical proof hub for the watchmaker sample flow and Voice DNA before/after bundle
199
+ - [Quick Proof](docs/quick-proof.md) -- 10-minute proof-first route through install checks, the demo, and the next draft
200
+ - [Starter Sets](docs/starter-sets.md) -- Small command paths for drafting, polishing, publishing, translation, sacred commentary, and repair
193
201
  - [Getting Started](docs/getting-started.md) -- Install to first draft in 10 minutes
194
- - [Command Reference](docs/command-reference.md) -- All 112 commands with usage, flags, and examples
202
+ - [Command Reference](docs/command-reference.md) -- All 113 commands with usage, flags, and examples
195
203
  - [Work Types Guide](docs/work-types.md) -- How 50 work types adapt Scriveno's vocabulary
196
204
  - [Voice DNA Guide](docs/voice-dna.md) -- The 15+ dimension voice profiling system
197
205
  - [Creative Context](docs/creative-context.md) -- Writer-native context routing, craft notes, and core-loop memory
@@ -205,6 +213,7 @@ Scriveno is built on five principles:
205
213
  - [Route Graph Audit](docs/route-graph.md) -- Generated route graph, automation lanes, and priority fixtures
206
214
  - [Development](docs/development.md) -- Contributor workflow for changing commands, templates, installer logic, and docs
207
215
  - [Testing](docs/testing.md) -- What the test suite covers and which checks to run before shipping
216
+ - [Release Checklist](docs/release-checklist.md) -- Local, npm, GitHub, and fresh-install release verification
208
217
  - [Release Notes](docs/release-notes.md) -- Public summary of what changed between package releases
209
218
  - [Shipped Assets](docs/shipped-assets.md) -- Canonical inventory of bundled export templates and launch-critical files
210
219
  - [Runtime Support](docs/runtime-support.md) -- Canonical runtime matrix, Node baseline, and verification-status framing
@@ -235,11 +244,11 @@ Scriveno currently ships installer targets for these AI tooling environments:
235
244
 
236
245
  ## Status
237
246
 
238
- **Version:** 2.0.11
247
+ **Version:** 2.5.0
239
248
 
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.
249
+ Scriveno's core command surface is stable across 113 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`, the first-run proof surface in `2.5.0`, and the executable `/scr:first-run` path. 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
250
 
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.
251
+ Version `2.5.0` 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
252
 
244
253
  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
254
 
package/bin/install.js CHANGED
@@ -821,6 +821,7 @@ function printHelp() {
821
821
  console.log(BANNER);
822
822
  console.log(`Usage:
823
823
  scriveno
824
+ scriveno first-run --project .
824
825
  scriveno status --project .
825
826
  scriveno status . --json
826
827
  scriveno status --project . --apply-safe
@@ -843,6 +844,7 @@ Options:
843
844
  --version Show the Scriveno package version
844
845
 
845
846
  Status options:
847
+ first-run Print the guided first-run path and proof checklist
846
848
  status Inspect a project and recommend the next command
847
849
  --project <path> Project root to inspect (default: current directory)
848
850
  --trigger <name> Status trigger label (default: scriveno status)
@@ -878,8 +880,11 @@ function parseArgs(argv) {
878
880
  syncCheck: false,
879
881
  };
880
882
 
881
- if (argv[0] === 'status') {
882
- options.command = 'status';
883
+ if (argv[0] === 'status' || argv[0] === 'first-run') {
884
+ options.command = argv[0];
885
+ if (argv[0] === 'first-run') {
886
+ options.statusTrigger = 'scriveno first-run';
887
+ }
883
888
  for (let i = 1; i < argv.length; i++) {
884
889
  const arg = argv[i];
885
890
  if (arg === '--help' || arg === '-h') {
@@ -1011,6 +1016,82 @@ function runStatus({ projectRoot, trigger, json, applySafe }) {
1011
1016
  return safeApply ? { analysis, safeApply } : analysis;
1012
1017
  }
1013
1018
 
1019
+ function buildFirstRunGuide({ projectRoot }) {
1020
+ const analysis = autoInvokeEngine.analyzeProject(projectRoot);
1021
+ const smoke = autoInvokeEngine.inspectRuntimeSmoke();
1022
+ const routes = autoInvokeEngine.buildRouteGraph();
1023
+ return {
1024
+ projectRoot,
1025
+ recommendation: analysis.recommendation,
1026
+ commandShapes: {
1027
+ claudeCode: ['/scr-first-run', '/scr-demo', '/scr-next'],
1028
+ standardSlash: ['/scr:first-run', '/scr:demo', '/scr:next'],
1029
+ codex: ['$scr-first-run', '$scr-demo', '$scr-next'],
1030
+ guided: ['Follow the generated local-MCP setup notes'],
1031
+ },
1032
+ firstPath: [
1033
+ '/scr:demo',
1034
+ 'cd scriveno-demo',
1035
+ '/scr:next',
1036
+ '/scr:draft 5',
1037
+ '/scr:editor-review 5',
1038
+ ],
1039
+ proofArtifacts: [
1040
+ 'docs/quick-proof.md',
1041
+ 'docs/starter-sets.md',
1042
+ 'data/proof/first-run/README.md',
1043
+ 'data/proof/runtime-parity/README.md',
1044
+ 'data/proof/watchmaker-flow/README.md',
1045
+ 'data/proof/voice-dna/README.md',
1046
+ ],
1047
+ checks: {
1048
+ smokeOk: smoke.ok,
1049
+ commandCount: routes.commandCount,
1050
+ expectedAgents: smoke.expectedAgents,
1051
+ },
1052
+ };
1053
+ }
1054
+
1055
+ function formatFirstRunGuide(guide) {
1056
+ return [
1057
+ 'Scriveno first-run guide',
1058
+ `Project: ${guide.projectRoot}`,
1059
+ `Current recommendation: ${guide.recommendation.command}`,
1060
+ '',
1061
+ 'Runtime command shapes:',
1062
+ `- Claude Code: ${guide.commandShapes.claudeCode.join(', ')}`,
1063
+ `- Standard slash-command runtimes: ${guide.commandShapes.standardSlash.join(', ')}`,
1064
+ `- Codex: ${guide.commandShapes.codex.join(', ')}`,
1065
+ `- Guided targets: ${guide.commandShapes.guided.join(', ')}`,
1066
+ '',
1067
+ 'Recommended first path:',
1068
+ ...guide.firstPath.map((step, index) => `${index + 1}. ${step}`),
1069
+ '',
1070
+ 'Proof artifacts:',
1071
+ ...guide.proofArtifacts.map((artifact) => `- ${artifact}`),
1072
+ '',
1073
+ 'Checks:',
1074
+ `- runtime smoke: ${guide.checks.smokeOk ? 'ok' : 'needs install refresh'}`,
1075
+ `- command count: ${guide.checks.commandCount}`,
1076
+ `- expected agents: ${guide.checks.expectedAgents.join(', ')}`,
1077
+ '',
1078
+ 'Next commands:',
1079
+ '- /scr:demo: Create the isolated watchmaker demo project.',
1080
+ '- /scr:next: Let Scriveno inspect the current project state.',
1081
+ '- /scr:new-work: Start a real project instead of using the demo.',
1082
+ ].join('\n');
1083
+ }
1084
+
1085
+ function runFirstRun({ projectRoot, json }) {
1086
+ const guide = buildFirstRunGuide({ projectRoot });
1087
+ if (json) {
1088
+ console.log(JSON.stringify(guide, null, 2));
1089
+ } else {
1090
+ console.log(formatFirstRunGuide(guide));
1091
+ }
1092
+ return guide;
1093
+ }
1094
+
1014
1095
  function runSyncCheck({ projectRoot, json }) {
1015
1096
  const analysis = autoInvokeEngine.analyzeProject(projectRoot);
1016
1097
  const safeApply = autoInvokeEngine.collectSafeApplyActions(projectRoot, { analysis, trigger: 'scriveno sync --check' });
@@ -1496,6 +1577,14 @@ async function main() {
1496
1577
  return;
1497
1578
  }
1498
1579
 
1580
+ if (parsed.command === 'first-run') {
1581
+ runFirstRun({
1582
+ projectRoot: parsed.statusProjectRoot,
1583
+ json: parsed.statusJson,
1584
+ });
1585
+ return;
1586
+ }
1587
+
1499
1588
  if (parsed.command === 'sync') {
1500
1589
  runSyncCheck({
1501
1590
  projectRoot: parsed.statusProjectRoot,
@@ -31,6 +31,7 @@ Demo project created at ./scriveno-demo/
31
31
 
32
32
  Try any of these to see Scriveno in action:
33
33
  cd scriveno-demo
34
+ /scr:first-run See the guided proof path and runtime-specific command shapes
34
35
  /scr:progress See where the project is
35
36
  /scr:next Let Scriveno pick your next move
36
37
  /scr:draft 5 Watch the drafter produce scene 5 in the established voice
@@ -0,0 +1,128 @@
1
+ ---
2
+ description: Run the guided first-run path through install checks, demo proof, starter choices, and next commands.
3
+ argument-hint: "[--proof] [--runtime <runtime>]"
4
+ ---
5
+
6
+ # First Run
7
+
8
+ You are guiding a writer through Scriveno's first 10 minutes. This command is the executable version of Quick Proof: it should orient the writer, check what can be checked, point at the demo, and keep the next choice small.
9
+
10
+ Use the shared CLI guide first when local command execution is available:
11
+
12
+ ```bash
13
+ scriveno first-run --project "$PWD"
14
+ node bin/install.js first-run --project "$PWD"
15
+ ```
16
+
17
+ If the CLI is unavailable, follow the same steps manually from this command file.
18
+
19
+ ## What to do
20
+
21
+ 1. **Run the first-run guide.** Prefer `scriveno first-run --project "$PWD"`. It reports project status, runtime command shapes, demo steps, proof artifacts, and installed-surface checks.
22
+ 2. **Show the runtime-specific command shape.**
23
+ - Claude Code: `/scr-first-run`, `/scr-demo`, `/scr-next`
24
+ - Standard slash-command runtimes: `/scr:first-run`, `/scr:demo`, `/scr:next`
25
+ - Codex: `$scr-first-run`, `$scr-demo`, `$scr-next`
26
+ - Guided targets: use the generated local-MCP setup notes
27
+ 3. **If no project exists, recommend the demo first.** The safest first action is `/scr:demo`, because it creates `./scriveno-demo/` instead of touching the writer's actual project.
28
+ 4. **Point at proof artifacts.** Name these files:
29
+ - `docs/quick-proof.md`
30
+ - `docs/starter-sets.md`
31
+ - `data/proof/first-run/README.md`
32
+ - `data/proof/runtime-parity/README.md`
33
+ - `data/proof/watchmaker-flow/README.md`
34
+ - `data/proof/voice-dna/README.md`
35
+ 5. **Keep the first action small.** Do not list the full command catalog. Offer one recommended command and at most three alternatives.
36
+
37
+ ## Recommended first-run path
38
+
39
+ Use this sequence when the writer wants to try Scriveno immediately:
40
+
41
+ ```text
42
+ /scr:demo
43
+ cd scriveno-demo
44
+ /scr:next
45
+ /scr:draft 5
46
+ /scr:editor-review 5
47
+ ```
48
+
49
+ Translate those command shapes for the active host when needed:
50
+
51
+ - Claude Code: `/scr-demo`, `/scr-next`, `/scr-draft 5`, `/scr-editor-review 5`
52
+ - Codex: `$scr-demo`, `$scr-next`, `$scr-draft 5`, `$scr-editor-review 5`
53
+
54
+ ## Output shape
55
+
56
+ Use this structure:
57
+
58
+ ```markdown
59
+ First-run path:
60
+ 1. Check the installed surface.
61
+ 2. Open the demo.
62
+ 3. Inspect the proof bundle.
63
+ 4. Draft the planned fifth unit.
64
+ 5. Review the result.
65
+
66
+ Recommended now:
67
+ - `/scr:demo`: Create the isolated watchmaker demo project.
68
+
69
+ Proof artifacts:
70
+ - `data/proof/first-run/README.md`
71
+ - `data/proof/runtime-parity/README.md`
72
+ - `data/proof/voice-dna/README.md`
73
+
74
+ Next commands:
75
+ - `/scr:demo`: Create the isolated demo project.
76
+ - `/scr:next`: Let Scriveno inspect the current project state.
77
+ - `/scr:new-work`: Start a real project instead of using the demo.
78
+ ```
79
+
80
+ ## Agent and automation status
81
+
82
+ `/scr:first-run` is read-only unless the writer explicitly chooses a follow-up command such as `/scr:demo`.
83
+
84
+ ```text
85
+ Automation status:
86
+ Trigger: /scr:first-run
87
+ Spawned agents:
88
+ - none
89
+ Candidate agents:
90
+ - drafter after /scr:draft 5 in the demo
91
+ - voice-checker after drafting
92
+ Local operations:
93
+ - first-run guide: read-only
94
+ - status sweep: read-only when the CLI is available
95
+ Candidate local helpers:
96
+ - scriveno smoke --json
97
+ - scriveno routes --json
98
+ Manual gates:
99
+ - writer chooses whether to create the demo or start a real project
100
+ Auto-invoked:
101
+ - none
102
+ Why: first-run orients and recommends; it does not mutate files until the writer picks a follow-up command
103
+ ```
104
+
105
+ ## Response Contract
106
+
107
+ Every writer-facing response must end with one to four next-command suggestions. Each suggestion must include a short explanation of what that path will do.
108
+
109
+ Use this format:
110
+
111
+ ```markdown
112
+ Next commands:
113
+ - `/scr:...`: One short sentence explaining what this path will do.
114
+ - `/scr:...`: One short sentence explaining what this alternate path will do.
115
+ ```
116
+
117
+ If exactly one path is clearly best, provide one suggestion. If two, three, or four useful paths exist, show them as alternatives. Do not force a linear path when the writer has a real choice.
118
+
119
+ If the writer seems unsure or no specific next command is obvious, include this default option:
120
+
121
+ ```markdown
122
+ Next commands:
123
+ - `/scr:next`: Inspect the project state and choose the right next step.
124
+ ```
125
+
126
+ ## Tone
127
+
128
+ Calm, direct, and proof-first. The writer is trying to decide whether Scriveno is worth trusting, so show concrete paths and files instead of broad claims.
@@ -40,6 +40,7 @@ Ask the user what they want to do. Don't list 170 commands -- show them this:
40
40
  Scriveno -- ready to start.
41
41
 
42
42
  What do you want to do?
43
+ /scr:first-run Run the guided first-run proof path
43
44
  /scr:new-work Start a new project (novel, runbook, screenplay, paper, etc.)
44
45
  /scr:demo Explore a pre-built sample project first
45
46
  /scr:import <file> Bring in an existing manuscript
@@ -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.5.0",
73
73
  "work_type": "<chosen>",
74
74
  "group": "<group>",
75
75
  "command_unit": "<unit>",
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "$schema": "./constraints.schema.json",
3
- "version": "2.0.11",
3
+ "version": "2.5.0",
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."
7
7
  },
8
8
  "command_intents": {
9
9
  "start": [
10
+ "first-run",
10
11
  "new-work",
11
12
  "demo",
12
13
  "import",
@@ -31,6 +32,7 @@
31
32
  "beta-reader"
32
33
  ],
33
34
  "navigate": [
35
+ "first-run",
34
36
  "next",
35
37
  "progress",
36
38
  "manuscript-stats",
@@ -1752,6 +1754,13 @@
1752
1754
  ],
1753
1755
  "description": "Auto-detect and run the next workflow step"
1754
1756
  },
1757
+ "first-run": {
1758
+ "category": "navigation",
1759
+ "available": [
1760
+ "all"
1761
+ ],
1762
+ "description": "Guided first-run path through proof, demo, runtime checks, and starter choices"
1763
+ },
1755
1764
  "do": {
1756
1765
  "category": "navigation",
1757
1766
  "available": [
@@ -0,0 +1,96 @@
1
+ # First-Run Proof
2
+
3
+ This bundle is the committed proof artifact for Scriveno's first 10 minutes. It pairs the executable `/scr:first-run` command with the terminal-level checks and demo commands a new writer can run.
4
+
5
+ ## What It Proves
6
+
7
+ - Scriveno has a runtime command for first-run orientation, not only a documentation page.
8
+ - The first-run path stays small: check surfaces, create the demo, inspect proof files, draft unit 5, review unit 5.
9
+ - The command shapes are explicit for Claude Code, standard slash-command runtimes, and Codex.
10
+ - The demo path uses shipped files in `data/demo/.manuscript/`.
11
+
12
+ ## Transcript: First-Run Guide
13
+
14
+ ```text
15
+ > scriveno first-run --project .
16
+ Scriveno first-run guide
17
+ Project: .
18
+ Current recommendation: /scr:new-work
19
+
20
+ Runtime command shapes:
21
+ - Claude Code: /scr-first-run, /scr-demo, /scr-next
22
+ - Standard slash-command runtimes: /scr:first-run, /scr:demo, /scr:next
23
+ - Codex: $scr-first-run, $scr-demo, $scr-next
24
+
25
+ Recommended first path:
26
+ 1. /scr:demo
27
+ 2. cd scriveno-demo
28
+ 3. /scr:next
29
+ 4. /scr:draft 5
30
+ 5. /scr:editor-review 5
31
+
32
+ Proof artifacts:
33
+ - docs/quick-proof.md
34
+ - docs/starter-sets.md
35
+ - data/proof/watchmaker-flow/README.md
36
+ - data/proof/voice-dna/README.md
37
+ - data/proof/runtime-parity/README.md
38
+ ```
39
+
40
+ ## Transcript: Runtime Smoke
41
+
42
+ ```text
43
+ > scriveno smoke --json
44
+ {
45
+ "ok": true,
46
+ "expectedCommands": 113,
47
+ "expectedAgents": [
48
+ "continuity-checker",
49
+ "drafter",
50
+ "plan-checker",
51
+ "researcher",
52
+ "translator",
53
+ "voice-checker"
54
+ ],
55
+ "runtimes": [
56
+ { "runtime": "claude-code", "ok": true },
57
+ { "runtime": "codex", "ok": true },
58
+ { "runtime": "cursor", "ok": true },
59
+ { "runtime": "gemini-cli", "ok": true },
60
+ { "runtime": "opencode", "ok": true },
61
+ { "runtime": "copilot", "ok": true },
62
+ { "runtime": "windsurf", "ok": true },
63
+ { "runtime": "antigravity", "ok": true },
64
+ { "runtime": "manus", "ok": true },
65
+ { "runtime": "perplexity-desktop", "ok": true },
66
+ { "runtime": "generic", "ok": true }
67
+ ]
68
+ }
69
+ ```
70
+
71
+ ## Transcript: Demo Flow
72
+
73
+ ```text
74
+ > /scr:demo
75
+ Demo project created at ./scriveno-demo/
76
+
77
+ > cd scriveno-demo
78
+
79
+ > /scr:next
80
+ Unit 5 has a plan but no draft yet, so /scr:draft 5 is the next best move.
81
+
82
+ > /scr:draft 5
83
+ Loaded STYLE-GUIDE.md and .manuscript/plans/5-the-reunion-PLAN.md.
84
+ Drafted unit 5 in the established watchmaker voice.
85
+
86
+ > /scr:editor-review 5
87
+ Reviewed unit 5 for voice, continuity, emotional payoff, and revision needs.
88
+ ```
89
+
90
+ ## Related Files
91
+
92
+ - [docs/quick-proof.md](../../../docs/quick-proof.md)
93
+ - [docs/starter-sets.md](../../../docs/starter-sets.md)
94
+ - [data/demo/.manuscript/plans/5-the-reunion-PLAN.md](../../demo/.manuscript/plans/5-the-reunion-PLAN.md)
95
+ - [data/proof/watchmaker-flow/README.md](../watchmaker-flow/README.md)
96
+ - [data/proof/voice-dna/README.md](../voice-dna/README.md)
@@ -0,0 +1,48 @@
1
+ # Runtime Parity Evidence
2
+
3
+ This bundle records what Scriveno can prove about runtime support today and what still requires host-runtime testing.
4
+
5
+ ## Verified In The Repo
6
+
7
+ - The installer has named targets for Claude Code, Cursor, Gemini CLI, Codex, OpenCode, GitHub Copilot, Windsurf, Antigravity, Manus Desktop, Perplexity Desktop, and the generic skill fallback.
8
+ - `scriveno smoke --json` checks installed command counts, agent prompt availability, Codex metadata, guided Perplexity assets, and shared engine availability.
9
+ - `scriveno agents --json` distinguishes prompt fallback readiness, Codex metadata readiness, guided setup, and bundled skill prompts.
10
+ - `scriveno routes --json` verifies route lanes and command graph shape from the live constraints file.
11
+ - Regression tests cover install surface shape, Codex metadata, Claude flat command mapping, skill bundles, and public audit commands.
12
+
13
+ ## Runtime Surface Expectations
14
+
15
+ | Runtime | What is verified locally | Native host behavior claim |
16
+ |---------|--------------------------|----------------------------|
17
+ | Claude Code | Flat `/scr-*` commands plus agent prompts install | Host-supported when Claude Code exposes agents |
18
+ | Codex | `$scr-*` skills, mirrored commands, prompts, and `.toml` metadata install | Host-supported when Codex exposes agent roles |
19
+ | Cursor | Nested `/scr:*` commands plus agent prompts install | Host-supported when Cursor exposes agents |
20
+ | Gemini CLI | Nested `/scr:*` commands plus agent prompts install | Host-supported when Gemini CLI exposes agents |
21
+ | OpenCode | Nested `/scr:*` commands plus agent prompts install | Host-supported when OpenCode exposes agents |
22
+ | GitHub Copilot | Nested `/scr:*` commands plus agent prompts install | Host-supported when Copilot exposes agents |
23
+ | Windsurf | Nested `/scr:*` commands plus agent prompts install | Host-supported when Windsurf exposes agents |
24
+ | Antigravity | Nested `/scr:*` commands plus agent prompts install | Host-supported when Antigravity exposes agents |
25
+ | Manus Desktop | Skill bundle with commands and agent prompts installs | Host-supported when Manus exposes skill agents |
26
+ | Perplexity Desktop | Guided local-MCP setup assets install | Native command and agent spawning not assumed |
27
+ | Generic | SKILL.md bundle with commands and agent prompts installs | Native spawning not assumed |
28
+
29
+ ## Remaining Host-In-The-Loop Gap
30
+
31
+ Scriveno still does not claim full host-runtime parity. The missing proof is a recorded run inside each actual host UI or agent process showing that the host invokes the installed command and agent surfaces exactly as expected.
32
+
33
+ That gap is now narrower: install surfaces, metadata, command counts, agent prompts, shared audit commands, and proof artifacts are all checked. This document separates install-surface proof and host-runtime parity proof so Scriveno can be precise about what is verified. The remaining work is external host execution evidence, not package-surface wiring.
34
+
35
+ ## Suggested Host Parity Script
36
+
37
+ For each host that supports local commands:
38
+
39
+ ```text
40
+ 1. Install scriveno@latest.
41
+ 2. Run the host-native first-run command.
42
+ 3. Run the host-native demo command.
43
+ 4. Run the host-native next command inside scriveno-demo.
44
+ 5. Confirm the host can route to draft unit 5.
45
+ 6. Save a short transcript or screenshot under data/proof/runtime-parity/<runtime>/.
46
+ ```
47
+
48
+ Use the command shape from [docs/runtime-support.md](../../../docs/runtime-support.md).
@@ -199,6 +199,7 @@ scriveno/
199
199
  install.js Multi-platform installer (Node.js)
200
200
  docs/
201
201
  proof-artifacts.md Canonical proof layer and artifact index
202
+ quick-proof.md Executable first-run proof path and command shapes
202
203
  getting-started.md Install to first draft in 10 minutes
203
204
  command-reference.md Full command listing with usage
204
205
  work-types.md 50 work types and how they adapt Scriveno
@@ -372,6 +373,7 @@ The same engine now exposes:
372
373
  - **Agent availability**: `agents` verifies prompt fallback readiness for non-Codex runtimes and metadata readiness for Codex.
373
374
  - **Runtime smoke**: `smoke` checks installed command, skill, guide, agent, metadata, and shared-engine surfaces.
374
375
  - **Route graph audit**: `routes` derives a command graph from constraints, command intents, dependencies, and automation lanes.
376
+ - **First-run guide**: `first-run` prints the guided proof path, runtime command shapes, proof artifacts, demo sequence, and next commands.
375
377
 
376
378
  ### Installation modes
377
379
 
@@ -434,7 +436,7 @@ Scriveno's `package.json` has no runtime dependencies. The installer is pure Nod
434
436
 
435
437
  ### Plan is canonical
436
438
 
437
- The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across 112 commands and prevents drift as multiple contributors work on the system.
439
+ The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across 113 commands and prevents drift as multiple contributors work on the system.
438
440
 
439
441
  ### Backward compatibility
440
442
 
@@ -1,6 +1,6 @@
1
1
  # Command Reference
2
2
 
3
- Scriveno has **112 commands** organized into **14 categories**. Commands adapt automatically to your work type -- for example, `/scr:draft` talks about drafting a surah for Quranic commentary, an act for screenplays, and a section for research papers.
3
+ Scriveno has **113 commands** organized into **14 categories**. Commands adapt automatically to your work type -- for example, `/scr:draft` talks about drafting a surah for Quranic commentary, an act for screenplays, and a section for research papers.
4
4
 
5
5
  Commands marked with **adaptive terminology** change how Scriveno talks about your work type's `command_unit` in `.manuscript/config.json`, while keeping the runnable command id stable. Commands marked with **group adaptation** have different labels for specific work type groups (academic, sacred, etc.).
6
6
 
@@ -227,6 +227,22 @@ Start a series bible for a trilogy. Track characters, world details, and timelin
227
227
 
228
228
  Commands for finding your way through the workflow and understanding your manuscript.
229
229
 
230
+ ### `/scr:first-run`
231
+
232
+ **Description:** Run the guided first-run path through install checks, demo proof, starter choices, and next commands.
233
+
234
+ **Usage:** `/scr:first-run [--proof] [--runtime <runtime>]`
235
+
236
+ **Prerequisites:** None
237
+
238
+ **Example:**
239
+ ```
240
+ /scr:first-run
241
+ ```
242
+ Show the proof-first path, runtime command shapes, demo sequence, proof artifacts, and the first safe command to try.
243
+
244
+ ---
245
+
230
246
  ### `/scr:next`
231
247
 
232
248
  **Description:** Auto-detect what to do next in your workflow and recommend the best path. The one command a writer can always use.
@@ -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.5.0",
61
61
  "work_type": "<chosen>",
62
62
  "group": "<group>",
63
63
  "command_unit": "<unit>",