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 +17 -8
- package/bin/install.js +91 -2
- package/commands/scr/demo.md +1 -0
- package/commands/scr/first-run.md +128 -0
- package/commands/scr/help.md +1 -0
- package/commands/scr/new-work.md +1 -1
- package/data/CONSTRAINTS.json +10 -1
- package/data/proof/first-run/README.md +96 -0
- package/data/proof/runtime-parity/README.md +48 -0
- package/docs/architecture.md +3 -1
- package/docs/command-reference.md +17 -1
- package/docs/configuration.md +1 -1
- package/docs/contributing.md +7 -2
- package/docs/development.md +15 -3
- package/docs/getting-started.md +9 -4
- package/docs/proof-artifacts.md +16 -0
- package/docs/quick-proof.md +195 -0
- package/docs/release-checklist.md +117 -0
- package/docs/release-notes.md +72 -0
- package/docs/route-graph.md +2 -2
- package/docs/runtime-support.md +14 -0
- package/docs/sacred-texts.md +1 -1
- package/docs/shipped-assets.md +5 -0
- package/docs/starter-sets.md +82 -0
- package/docs/testing.md +18 -3
- package/docs/voice-dna.md +1 -1
- package/docs/work-types.md +1 -1
- package/package.json +4 -2
- package/scripts/check-writing-policy.js +86 -0
- package/templates/config.json +1 -1
package/README.md
CHANGED
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/aihxp/scriveno/actions/workflows/ci.yml)
|
|
4
4
|
[](LICENSE)
|
|
5
|
-
[](CHANGELOG.md)
|
|
6
6
|
[](https://www.npmjs.com/package/scriveno)
|
|
7
7
|
[](https://www.npmjs.com/package/scriveno)
|
|
8
8
|
[](docs/runtime-support.md#shared-auto-invoke-engine)
|
|
9
9
|
[](docs/auto-invoke-policy.md)
|
|
10
10
|
[](docs/runtime-support.md#runtime-smoke-and-agent-checks)
|
|
11
11
|
[](docs/auto-invoke-policy.md#safe-apply-and-audit-commands)
|
|
12
|
+
[](docs/quick-proof.md)
|
|
13
|
+
[](docs/quick-proof.md)
|
|
14
|
+
[](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
|
|
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
|
|
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
|
|
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
|
|
247
|
+
**Version:** 2.5.0
|
|
239
248
|
|
|
240
|
-
Scriveno's core command surface is stable across
|
|
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
|
|
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 =
|
|
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,
|
package/commands/scr/demo.md
CHANGED
|
@@ -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.
|
package/commands/scr/help.md
CHANGED
|
@@ -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
|
package/commands/scr/new-work.md
CHANGED
|
@@ -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
|
|
72
|
+
"scriveno_version": "2.5.0",
|
|
73
73
|
"work_type": "<chosen>",
|
|
74
74
|
"group": "<group>",
|
|
75
75
|
"command_unit": "<unit>",
|
package/data/CONSTRAINTS.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./constraints.schema.json",
|
|
3
|
-
"version": "2.0
|
|
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).
|
package/docs/architecture.md
CHANGED
|
@@ -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
|
|
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 **
|
|
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.
|
package/docs/configuration.md
CHANGED