scriveno 2.7.2 → 2.8.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 +6 -6
- package/bin/install.js +522 -43
- package/commands/scr/export.md +43 -2
- package/commands/scr/health.md +35 -1
- package/commands/scr/help.md +1 -1
- package/commands/scr/new-work.md +1 -1
- package/commands/scr/proof-unit.md +138 -0
- package/commands/scr/publish.md +45 -2
- package/commands/scr/surface.md +149 -0
- package/data/CONSTRAINTS.json +18 -1
- package/data/proof/first-run/README.md +1 -1
- package/docs/architecture.md +1 -1
- package/docs/command-reference.md +51 -4
- package/docs/configuration.md +1 -1
- package/docs/development.md +1 -1
- package/docs/release-notes.md +15 -1
- package/docs/route-graph.md +2 -2
- package/docs/sacred-texts.md +1 -1
- package/docs/voice-dna.md +1 -1
- package/docs/work-types.md +1 -1
- package/lib/auto-invoke-engine.js +77 -0
- package/package.json +1 -1
- package/templates/config.json +1 -1
package/commands/scr/export.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Compile and export manuscript to publication-ready formats.
|
|
3
|
-
argument-hint: "[--format <format>] [--formatted] [--print-ready] [--skip-validate]"
|
|
3
|
+
argument-hint: "[--format <format>] [--formatted] [--print-ready] [--skip-validate] [--check]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /scr:export -- Manuscript Export
|
|
@@ -11,11 +11,13 @@ Assemble the manuscript from OUTLINE.md and export to the specified format. Hand
|
|
|
11
11
|
|
|
12
12
|
```
|
|
13
13
|
/scr:export # interactive picker
|
|
14
|
-
/scr:export --format <format> [--formatted] [--print-ready] [--skip-validate]
|
|
14
|
+
/scr:export --format <format> [--formatted] [--print-ready] [--skip-validate] [--check]
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
If `--format` is omitted, run the interactive picker (see STEP 0). Otherwise jump straight to STEP 1 with the requested format.
|
|
18
18
|
|
|
19
|
+
If `--check` is passed, check format availability and required external tools, print a readiness report, and stop before assembling or writing export files.
|
|
20
|
+
|
|
19
21
|
---
|
|
20
22
|
|
|
21
23
|
### STEP 0: INTERACTIVE PICKER (only when --format is omitted)
|
|
@@ -135,6 +137,8 @@ Then **stop**.
|
|
|
135
137
|
|
|
136
138
|
**Check for scaffold markers in `.manuscript/drafts/`.**
|
|
137
139
|
|
|
140
|
+
If `--check` was passed, skip the scaffold-marker scan and proceed to STEP 2. Tool check mode verifies readiness of external commands only; it does not certify manuscript content.
|
|
141
|
+
|
|
138
142
|
Scan all `.md` files in `.manuscript/drafts/` for:
|
|
139
143
|
- Lines containing `[Fill in` (covers `[Fill in:]`, `[Fill in or delete:]`)
|
|
140
144
|
- Lines containing `[Delete if not applicable:]`
|
|
@@ -217,6 +221,27 @@ Proceed to STEP 2.
|
|
|
217
221
|
|
|
218
222
|
Check for required external tools based on the requested format.
|
|
219
223
|
|
|
224
|
+
**Tool gate rules:**
|
|
225
|
+
|
|
226
|
+
1. Never silently substitute one tool for another. For example, do not use WeasyPrint when Typst is missing, and do not use Calibre when Pandoc is missing.
|
|
227
|
+
2. Record the tool command that was checked and, when available, the detected version.
|
|
228
|
+
3. If `--check` was passed, do not create `.manuscript/output/`, do not assemble the manuscript, and do not run conversion commands. Print the report and stop after this step.
|
|
229
|
+
4. If a required tool is missing, stop and show install instructions. Do not attempt a degraded export.
|
|
230
|
+
|
|
231
|
+
Use this readiness report shape in `--check` mode:
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
Export Tool Check
|
|
235
|
+
=================
|
|
236
|
+
Format: pdf --print-ready
|
|
237
|
+
|
|
238
|
+
[PASS] pandoc .......... pandoc 3.x
|
|
239
|
+
[PASS] typst ........... typst 0.x
|
|
240
|
+
[SKIP] ghostscript ..... not required for this format
|
|
241
|
+
|
|
242
|
+
Result: ready
|
|
243
|
+
```
|
|
244
|
+
|
|
220
245
|
**For markdown:** No external tools needed. Skip to Step 3.
|
|
221
246
|
|
|
222
247
|
**For docx, epub, latex, query-package:** Check for Pandoc:
|
|
@@ -269,6 +294,22 @@ If not found, provide install instructions (`pip install screenplain`) and stop.
|
|
|
269
294
|
|
|
270
295
|
**For fountain:** No external tools needed.
|
|
271
296
|
|
|
297
|
+
**For kdp-package:** Check for Pandoc and Typst. If either tool is missing, stop before building the package.
|
|
298
|
+
|
|
299
|
+
**For ingram-package:** Check for Pandoc, Typst, and Ghostscript (`gs`). If any required tool is missing, stop before building the package.
|
|
300
|
+
|
|
301
|
+
**For query-package and submission-package:** Check for Pandoc.
|
|
302
|
+
|
|
303
|
+
**Optional screenplay PDF:** Afterwriting is optional for `fountain`. If it is missing, do not fail the Fountain export; report it as optional. If `--check` is passed, show it as optional with install guidance:
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
command -v afterwriting >/dev/null 2>&1
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
> Optional: To generate a formatted screenplay PDF, install Afterwriting with `npm i -g afterwriting`.
|
|
310
|
+
|
|
311
|
+
If `--check` was passed, stop here after printing the readiness report.
|
|
312
|
+
|
|
272
313
|
---
|
|
273
314
|
|
|
274
315
|
### STEP 3: ASSEMBLE MANUSCRIPT
|
package/commands/scr/health.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Diagnose and repair common project state issues.
|
|
3
|
-
argument-hint: "[--repair]"
|
|
3
|
+
argument-hint: "[--repair] [--context]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Health
|
|
@@ -87,6 +87,39 @@ With `--repair`, fix what can be auto-fixed:
|
|
|
87
87
|
|
|
88
88
|
After repair: re-run diagnostics and show the updated health report.
|
|
89
89
|
|
|
90
|
+
## Context mode (--context)
|
|
91
|
+
|
|
92
|
+
With `--context`, focus only on loaded-context health. This is a read-only guard for long projects and large unit sessions.
|
|
93
|
+
|
|
94
|
+
1. Estimate the files an agent is likely to load before writing:
|
|
95
|
+
- `.manuscript/STYLE-GUIDE.md`
|
|
96
|
+
- `.manuscript/CONTEXT.md`
|
|
97
|
+
- `.manuscript/STATE.md`
|
|
98
|
+
- `.manuscript/OUTLINE.md`
|
|
99
|
+
- `.manuscript/RECORD.md`
|
|
100
|
+
- The newest plan, draft, and review files for the active unit
|
|
101
|
+
2. Estimate tokens as `ceil(bytes / 4)`. This is intentionally simple and conservative.
|
|
102
|
+
3. Classify the result:
|
|
103
|
+
- `ok`: under 45,000 estimated tokens
|
|
104
|
+
- `watch`: 45,000-79,999 estimated tokens
|
|
105
|
+
- `tight`: 80,000-119,999 estimated tokens
|
|
106
|
+
- `critical`: 120,000 or more estimated tokens
|
|
107
|
+
4. Report the five largest loaded files so the writer can see what is making the session heavy.
|
|
108
|
+
5. If the state is `watch`, suggest `/scr:health --context` again before the next large operation.
|
|
109
|
+
6. If the state is `tight`, suggest `/scr:save` before drafting, review, translation, or export.
|
|
110
|
+
7. If the state is `critical`, suggest `/scr:thread` or a fresh unit session before writing more prose.
|
|
111
|
+
|
|
112
|
+
If the shared CLI engine is available, prefer it:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
scriveno status --project "$PWD" --trigger "/scr:health --context"
|
|
116
|
+
node lib/auto-invoke-engine.js --project "$PWD" --trigger "/scr:health --context"
|
|
117
|
+
node "$HOME/.scriveno/lib/auto-invoke-engine.js" --project "$PWD" --trigger "/scr:health --context"
|
|
118
|
+
node .scriveno/lib/auto-invoke-engine.js --project "$PWD" --trigger "/scr:health --context"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Return only the context-health portion of the report unless another health issue blocks the command.
|
|
122
|
+
|
|
90
123
|
## Automation Status
|
|
91
124
|
|
|
92
125
|
Every response must include a compact status block:
|
|
@@ -100,6 +133,7 @@ Candidate agents:
|
|
|
100
133
|
- none
|
|
101
134
|
Local operations:
|
|
102
135
|
- health checks run: {count}
|
|
136
|
+
- context estimate run: {yes|no}
|
|
103
137
|
- repairs applied: {count}
|
|
104
138
|
Candidate local helpers:
|
|
105
139
|
- /scr:scan or /scr:save when health detects repairable drift
|
package/commands/scr/help.md
CHANGED
|
@@ -34,7 +34,7 @@ You are helping the user navigate Scriveno commands. Load Scriveno's installed/s
|
|
|
34
34
|
|
|
35
35
|
## The "getting started" view (no project yet)
|
|
36
36
|
|
|
37
|
-
Ask the user what they want to do. Don't list all
|
|
37
|
+
Ask the user what they want to do. Don't list all 115 commands -- show them this:
|
|
38
38
|
|
|
39
39
|
```
|
|
40
40
|
Scriveno -- ready to start.
|
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.
|
|
72
|
+
"scriveno_version": "2.8.0",
|
|
73
73
|
"work_type": "<chosen>",
|
|
74
74
|
"group": "<group>",
|
|
75
75
|
"command_unit": "<unit>",
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run one manuscript unit through a proof path from voice profile to export readiness.
|
|
3
|
+
argument-hint: "[unit] [--demo] [--export-check]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Proof Unit
|
|
7
|
+
|
|
8
|
+
You are proving that Scriveno can carry one unit through the real writing loop without losing the writer's voice.
|
|
9
|
+
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:proof-unit` coordinates existing commands. It should keep every step small and stop before any destructive or publishing action unless the writer explicitly confirms.
|
|
11
|
+
|
|
12
|
+
## Goal
|
|
13
|
+
|
|
14
|
+
Run one chosen unit through this vertical slice:
|
|
15
|
+
|
|
16
|
+
1. Confirm project and voice context.
|
|
17
|
+
2. Discuss or refine the unit shape.
|
|
18
|
+
3. Plan the unit.
|
|
19
|
+
4. Draft the unit with fresh context.
|
|
20
|
+
5. Review the draft for voice, continuity, and revision issues.
|
|
21
|
+
6. Check context health before another large operation.
|
|
22
|
+
7. Check export prerequisites without writing final packages unless requested.
|
|
23
|
+
|
|
24
|
+
The proof is successful only if the unit still sounds like the writer and the next production step is obvious.
|
|
25
|
+
|
|
26
|
+
## Inputs
|
|
27
|
+
|
|
28
|
+
- `unit`: The unit number or label. If omitted, infer it from `.manuscript/STATE.md`.
|
|
29
|
+
- `--demo`: Prefer the demo project path and use its planned proof unit.
|
|
30
|
+
- `--export-check`: Run `/scr:export --check` after review to verify external tools.
|
|
31
|
+
|
|
32
|
+
If there is no `.manuscript/` directory, recommend `/scr:demo` or `/scr:new-work` before doing anything else.
|
|
33
|
+
|
|
34
|
+
## Required Checks
|
|
35
|
+
|
|
36
|
+
1. Read `.manuscript/STYLE-GUIDE.md` first. If it is missing or thin, suggest `/scr:profile-writer` or `/scr:voice-test` before drafting.
|
|
37
|
+
2. Read `.manuscript/STATE.md`, `.manuscript/OUTLINE.md`, and `.manuscript/config.json`.
|
|
38
|
+
3. Run context health with the shared engine when available:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
scriveno status --project "$PWD" --trigger /scr:proof-unit
|
|
42
|
+
node lib/auto-invoke-engine.js --project "$PWD" --trigger /scr:proof-unit
|
|
43
|
+
node "$HOME/.scriveno/lib/auto-invoke-engine.js" --project "$PWD" --trigger /scr:proof-unit
|
|
44
|
+
node .scriveno/lib/auto-invoke-engine.js --project "$PWD" --trigger /scr:proof-unit
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
4. If context health is `tight` or `critical`, stop before drafting and suggest `/scr:save`, `/scr:thread`, or a fresh unit session.
|
|
48
|
+
5. Verify that the plan, draft, and review files are all unit-scoped. Do not load the whole manuscript into a drafting pass.
|
|
49
|
+
|
|
50
|
+
## Execution Path
|
|
51
|
+
|
|
52
|
+
Use the first missing step in order:
|
|
53
|
+
|
|
54
|
+
1. Missing voice profile: `/scr:profile-writer` or `/scr:voice-test`.
|
|
55
|
+
2. Missing unit discussion: `/scr:discuss <unit>`.
|
|
56
|
+
3. Missing unit plan: `/scr:plan <unit>`.
|
|
57
|
+
4. Missing unit draft: `/scr:draft <unit>`.
|
|
58
|
+
5. Missing review: `/scr:editor-review <unit>`.
|
|
59
|
+
6. Review flags voice drift: `/scr:voice-check <unit>`.
|
|
60
|
+
7. Review flags continuity drift: `/scr:continuity-check <unit>`.
|
|
61
|
+
8. Review passes and `--export-check` was provided: `/scr:export --check`.
|
|
62
|
+
9. Review passes without export check: `/scr:submit <unit>` or `/scr:progress`.
|
|
63
|
+
|
|
64
|
+
Do not run more than one prose-generating step without reporting back. The writer should see the proof path as a sequence of verified stops, not a silent batch.
|
|
65
|
+
|
|
66
|
+
## Proof Report
|
|
67
|
+
|
|
68
|
+
End with a compact proof report:
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
Proof unit: Chapter 3
|
|
72
|
+
Voice profile: present
|
|
73
|
+
Plan: present
|
|
74
|
+
Draft: present
|
|
75
|
+
Review: present
|
|
76
|
+
Context health: ok
|
|
77
|
+
Export prerequisites: not checked
|
|
78
|
+
|
|
79
|
+
Result: ready for submit, with no blocking voice drift found.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
When something fails, name the missing file or blocking step and offer the direct command that fixes it.
|
|
83
|
+
|
|
84
|
+
## Automation Status
|
|
85
|
+
|
|
86
|
+
Every response must include a compact status block:
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
Automation status:
|
|
90
|
+
Trigger: /scr:proof-unit {unit}
|
|
91
|
+
Spawned agents:
|
|
92
|
+
- drafter when /scr:draft is the selected step
|
|
93
|
+
- voice-checker when draft or voice review is selected
|
|
94
|
+
- diagnostic worker when /scr:editor-review is selected
|
|
95
|
+
Candidate agents:
|
|
96
|
+
- drafter
|
|
97
|
+
- voice-checker
|
|
98
|
+
- continuity-checker
|
|
99
|
+
Local operations:
|
|
100
|
+
- project state inspected: yes
|
|
101
|
+
- context health estimated: yes
|
|
102
|
+
- export prerequisite check: {yes|no}
|
|
103
|
+
Candidate local helpers:
|
|
104
|
+
- /scr:health --context
|
|
105
|
+
- /scr:export --check
|
|
106
|
+
Manual gates:
|
|
107
|
+
- publish or final package creation
|
|
108
|
+
Auto-invoked:
|
|
109
|
+
- {selected command}: {yes|no}
|
|
110
|
+
Why: proof-unit coordinates the smallest real writing loop while keeping publishing actions explicit
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Response Contract
|
|
114
|
+
|
|
115
|
+
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.
|
|
116
|
+
|
|
117
|
+
Use this format:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
Next commands:
|
|
121
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
122
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
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.
|
|
126
|
+
|
|
127
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
Next commands:
|
|
131
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
135
|
+
|
|
136
|
+
## Tone
|
|
137
|
+
|
|
138
|
+
Focused and evidence-first. The point is to build trust with one real unit, not to rush the whole manuscript.
|
package/commands/scr/publish.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: "Publishing wizard or preset-driven pipeline. Chains export commands based on destination."
|
|
3
|
-
argument-hint: "[--preset <preset>] [--all] [--skip-validate]"
|
|
3
|
+
argument-hint: "[--preset <preset>] [--all] [--skip-validate] [--preflight]"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /scr:publish -- Publishing Wizard
|
|
@@ -10,12 +10,13 @@ You are the publishing wizard. Your job is to turn a completed manuscript into p
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
/scr:publish [--preset <preset>] [--all] [--skip-validate]
|
|
13
|
+
/scr:publish [--preset <preset>] [--all] [--skip-validate] [--preflight]
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
- `--preset <preset>` -- Run a named preset pipeline without questions
|
|
17
17
|
- `--all` -- Run every preset available for the current work type
|
|
18
18
|
- `--skip-validate` -- Skip the scaffold-marker gate (not recommended)
|
|
19
|
+
- `--preflight` -- Check readiness and required tools, then stop before writing deliverables
|
|
19
20
|
- No arguments -- Run the interactive wizard
|
|
20
21
|
|
|
21
22
|
---
|
|
@@ -124,6 +125,48 @@ Proceed to STEP 2.
|
|
|
124
125
|
|
|
125
126
|
---
|
|
126
127
|
|
|
128
|
+
### STEP 1.7: PREFLIGHT MODE
|
|
129
|
+
|
|
130
|
+
If `--preflight` was passed, run a readiness check only and stop before generating front matter, back matter, exports, packages, or history entries.
|
|
131
|
+
|
|
132
|
+
Preflight must include:
|
|
133
|
+
|
|
134
|
+
1. The validation gate from STEP 1.5 unless `--skip-validate` was also passed.
|
|
135
|
+
2. The front-matter scaffold exclusion check from STEP 1.6a.
|
|
136
|
+
3. The publishing prerequisite checklist from STEP 3a.
|
|
137
|
+
4. Preset availability against `CONSTRAINTS.json`.
|
|
138
|
+
5. External tool checks by calling the matching export checks:
|
|
139
|
+
- `share-pdf`: `/scr:export --format pdf --check`
|
|
140
|
+
- `share-docx`: `/scr:export --format docx --check`
|
|
141
|
+
- `share-epub`: `/scr:export --format epub --check`
|
|
142
|
+
- `kdp-ebook`: `/scr:export --format epub --check`
|
|
143
|
+
- `kdp-paperback`: `/scr:export --format pdf --print-ready --check` and `/scr:export --format kdp-package --check`
|
|
144
|
+
- `ingram-paperback`: `/scr:export --format pdf --print-ready --check` and `/scr:export --format ingram-package --check`
|
|
145
|
+
- `query-submission`: `/scr:export --format query-package --check`
|
|
146
|
+
- `submission-package`: `/scr:export --format submission-package --check`
|
|
147
|
+
- `screenplay-query`: `/scr:export --format fountain --check`, `/scr:export --format fdx --check`, and `/scr:export --format query-package --check`
|
|
148
|
+
- `all-formats`: check each available base format
|
|
149
|
+
|
|
150
|
+
Use this report shape:
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
Publishing Preflight
|
|
154
|
+
====================
|
|
155
|
+
Preset: kdp-paperback
|
|
156
|
+
|
|
157
|
+
[PASS] manuscript validation
|
|
158
|
+
[WARN] front matter ........ not generated
|
|
159
|
+
[PASS] pandoc
|
|
160
|
+
[PASS] typst
|
|
161
|
+
[SKIP] ghostscript ......... not required until ingram-package
|
|
162
|
+
|
|
163
|
+
Result: ready after 1 optional item
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
If preflight finds a blocking issue, stop and suggest the command that fixes it. Do not continue into STEP 2.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
127
170
|
### STEP 2: ROUTE
|
|
128
171
|
|
|
129
172
|
**If `--preset` is given:** Validate the preset name against the known presets below. If valid, jump to STEP 4 (preset pipeline). If invalid, show the list of available presets and stop.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Inspect or change the installed Scriveno command profile.
|
|
3
|
+
argument-hint: "[list|status|profile <core|writing|publishing|translation|specialist|full>] [--runtime <runtime>] [--dry-run]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Surface
|
|
7
|
+
|
|
8
|
+
You are helping the writer keep Scriveno's installed command surface clear, small, and appropriate for the work they are doing.
|
|
9
|
+
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:surface` is a local installer helper. It does not spawn agents and should not edit a manuscript.
|
|
11
|
+
|
|
12
|
+
## What This Command Does
|
|
13
|
+
|
|
14
|
+
Use this command when the writer wants fewer commands, a publishing-only install, a translation-focused install, or a check of what profile is currently installed.
|
|
15
|
+
|
|
16
|
+
Available profiles:
|
|
17
|
+
|
|
18
|
+
- `core`: Main writing loop and orientation commands.
|
|
19
|
+
- `writing`: Core workflow plus revision, structure, character, and quality commands.
|
|
20
|
+
- `publishing`: Core workflow plus export, publishing, metadata, and platform packaging commands.
|
|
21
|
+
- `translation`: Core workflow plus translation, localization, glossary, and multi-publish commands.
|
|
22
|
+
- `specialist`: Core workflow plus sacred, illustration, collaboration, and utility surfaces.
|
|
23
|
+
- `full`: Every Scriveno command.
|
|
24
|
+
|
|
25
|
+
## Actions
|
|
26
|
+
|
|
27
|
+
### `list`
|
|
28
|
+
|
|
29
|
+
Run:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
scriveno surface list
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Report each profile, command count, and intended use.
|
|
36
|
+
|
|
37
|
+
### `status`
|
|
38
|
+
|
|
39
|
+
Run:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
scriveno surface status
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Report:
|
|
46
|
+
|
|
47
|
+
- Installed profile from `.scriveno/settings.json` or `~/.scriveno/settings.json`
|
|
48
|
+
- Installed runtimes
|
|
49
|
+
- Scope (`project` or `global`)
|
|
50
|
+
- Writer or developer mode
|
|
51
|
+
- Suggested profile if the current one is much larger than the active workflow needs
|
|
52
|
+
|
|
53
|
+
### `profile <name>`
|
|
54
|
+
|
|
55
|
+
Before changing anything, run a dry run:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
scriveno surface profile <name> --dry-run
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
If the writer confirms, reinstall that profile for the same runtime surface:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
scriveno surface profile <name>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If no prior runtime is recorded, ask for one runtime target, then run:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
scriveno surface profile <name> --runtimes codex --project
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Use the active runtime name instead of `codex` when the writer is in Claude Code, Cursor, Gemini CLI, OpenCode, GitHub Copilot, Windsurf, Antigravity, Manus, Perplexity Desktop, or the generic skill fallback.
|
|
74
|
+
|
|
75
|
+
## Safety Rules
|
|
76
|
+
|
|
77
|
+
1. Prefer `--dry-run` before changing the installed surface.
|
|
78
|
+
2. Do not delete custom user files. The installer cleans only Scriveno-owned command mirrors.
|
|
79
|
+
3. Keep agents installed even when a smaller command profile is selected. Drafting, review, and translation still need their agent prompts when a profile includes those workflows.
|
|
80
|
+
4. Do not imply that a smaller profile disables project data. It only changes the installed command surface.
|
|
81
|
+
5. If the writer is unsure, recommend `writing` for active drafting and `full` for exploration.
|
|
82
|
+
|
|
83
|
+
## Output Shape
|
|
84
|
+
|
|
85
|
+
Use this shape:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
Surface profile: writing
|
|
89
|
+
Installed runtimes: codex
|
|
90
|
+
Scope: project
|
|
91
|
+
|
|
92
|
+
Selected commands: 52 command files
|
|
93
|
+
Best use: active drafting with revision and structure tools
|
|
94
|
+
|
|
95
|
+
No files changed because this was a dry run.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Automation Status
|
|
99
|
+
|
|
100
|
+
Every response must include a compact status block:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
Automation status:
|
|
104
|
+
Trigger: /scr:surface {args}
|
|
105
|
+
Spawned agents:
|
|
106
|
+
- none
|
|
107
|
+
Candidate agents:
|
|
108
|
+
- none
|
|
109
|
+
Local operations:
|
|
110
|
+
- surface profile inspected: {yes|no}
|
|
111
|
+
- installer dry run: {yes|no}
|
|
112
|
+
- installer profile change: {yes|no}
|
|
113
|
+
Candidate local helpers:
|
|
114
|
+
- scriveno surface list
|
|
115
|
+
- scriveno surface status
|
|
116
|
+
- scriveno surface profile <name> --dry-run
|
|
117
|
+
Manual gates:
|
|
118
|
+
- writer confirmation before changing installed runtimes
|
|
119
|
+
Auto-invoked:
|
|
120
|
+
- none
|
|
121
|
+
Why: surface management changes installed command files, not manuscript prose
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Response Contract
|
|
125
|
+
|
|
126
|
+
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.
|
|
127
|
+
|
|
128
|
+
Use this format:
|
|
129
|
+
|
|
130
|
+
```markdown
|
|
131
|
+
Next commands:
|
|
132
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
133
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
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.
|
|
137
|
+
|
|
138
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
Next commands:
|
|
142
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
146
|
+
|
|
147
|
+
## Tone
|
|
148
|
+
|
|
149
|
+
Clear and practical. Treat command-surface changes like workspace organization, not like a feature upsell.
|
package/data/CONSTRAINTS.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./constraints.schema.json",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.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."
|
|
@@ -3015,6 +3015,23 @@
|
|
|
3015
3015
|
],
|
|
3016
3016
|
"description": "Diagnose and repair common project state issues"
|
|
3017
3017
|
},
|
|
3018
|
+
"surface": {
|
|
3019
|
+
"category": "utility",
|
|
3020
|
+
"available": [
|
|
3021
|
+
"all"
|
|
3022
|
+
],
|
|
3023
|
+
"description": "Inspect or change the installed Scriveno command profile"
|
|
3024
|
+
},
|
|
3025
|
+
"proof-unit": {
|
|
3026
|
+
"category": "core",
|
|
3027
|
+
"available": [
|
|
3028
|
+
"all"
|
|
3029
|
+
],
|
|
3030
|
+
"description": "Run one manuscript unit through a proof path from voice profile to export readiness",
|
|
3031
|
+
"requires": [
|
|
3032
|
+
"profile-writer"
|
|
3033
|
+
]
|
|
3034
|
+
},
|
|
3018
3035
|
"scan": {
|
|
3019
3036
|
"category": "utility",
|
|
3020
3037
|
"available": [
|
package/docs/architecture.md
CHANGED
|
@@ -439,7 +439,7 @@ Scriveno's `package.json` has no runtime dependencies. The installer is pure Nod
|
|
|
439
439
|
|
|
440
440
|
### Plan is canonical
|
|
441
441
|
|
|
442
|
-
The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across
|
|
442
|
+
The product plan is the source of truth. If a command file contradicts the plan, the command file is wrong. This ensures consistency across 115 commands and prevents drift as multiple contributors work on the system.
|
|
443
443
|
|
|
444
444
|
### Backward compatibility
|
|
445
445
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Command Reference
|
|
2
2
|
|
|
3
|
-
Scriveno has **
|
|
3
|
+
Scriveno has **115 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
|
|
|
@@ -146,6 +146,26 @@ Finalize Chapter 3 after editor review. Marks it as complete in the workflow.
|
|
|
146
146
|
|
|
147
147
|
---
|
|
148
148
|
|
|
149
|
+
### `/scr:proof-unit`
|
|
150
|
+
|
|
151
|
+
**Description:** Run one manuscript unit through a proof path from voice profile to export readiness.
|
|
152
|
+
|
|
153
|
+
**Usage:** `/scr:proof-unit [unit] [--demo] [--export-check]`
|
|
154
|
+
|
|
155
|
+
**Prerequisites:** STYLE-GUIDE.md should exist. If it is missing, run `/scr:profile-writer` or `/scr:voice-test` first.
|
|
156
|
+
|
|
157
|
+
**Flags:**
|
|
158
|
+
- `--demo` -- Use the demo proof path when available
|
|
159
|
+
- `--export-check` -- Run `/scr:export --check` after review to verify external tools
|
|
160
|
+
|
|
161
|
+
**Example:**
|
|
162
|
+
```
|
|
163
|
+
/scr:proof-unit 3 --export-check
|
|
164
|
+
```
|
|
165
|
+
Prove one chapter through discuss, plan, draft, review, context health, and export-tool readiness without silently running a full publishing pipeline.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
149
169
|
### `/scr:complete-draft`
|
|
150
170
|
|
|
151
171
|
**Description:** Mark the entire manuscript draft as complete.
|
|
@@ -1336,7 +1356,7 @@ Generate 10-15 book club questions that spark real conversation about your theme
|
|
|
1336
1356
|
|
|
1337
1357
|
**Description:** Publishing wizard or preset-driven pipeline. Chains export commands based on destination.
|
|
1338
1358
|
|
|
1339
|
-
**Usage:** `/scr:publish [--preset <preset>] [--all] [--skip-validate]`
|
|
1359
|
+
**Usage:** `/scr:publish [--preset <preset>] [--all] [--skip-validate] [--preflight]`
|
|
1340
1360
|
|
|
1341
1361
|
**Prerequisites:** None (wraps export commands)
|
|
1342
1362
|
|
|
@@ -1348,6 +1368,7 @@ Generate 10-15 book club questions that spark real conversation about your theme
|
|
|
1348
1368
|
- **Academic / archival:** `academic-submission`, `thesis-defense`, `all-formats`
|
|
1349
1369
|
- `--all` -- Run all applicable presets
|
|
1350
1370
|
- `--skip-validate` -- Skip the scaffold-marker validation gate (not recommended)
|
|
1371
|
+
- `--preflight` -- Check publishing readiness and external tools, then stop before writing deliverables
|
|
1351
1372
|
- No flags -- Run the interactive wizard, which asks the writer-facing question "What are you doing?" (Share / Publish / Submit / Academic / Screenplay / Everything / Custom) and drills into the matching branch.
|
|
1352
1373
|
|
|
1353
1374
|
**Available for:** All work types
|
|
@@ -1364,7 +1385,7 @@ Run the full KDP paperback publishing pipeline: prepare the interior package, ge
|
|
|
1364
1385
|
|
|
1365
1386
|
**Description:** Compile and export manuscript to publication-ready formats.
|
|
1366
1387
|
|
|
1367
|
-
**Usage:** `/scr:export [--format <format>] [--formatted] [--print-ready] [--skip-validate]`
|
|
1388
|
+
**Usage:** `/scr:export [--format <format>] [--formatted] [--print-ready] [--skip-validate] [--check]`
|
|
1368
1389
|
|
|
1369
1390
|
**Prerequisites:** Complete draft must exist
|
|
1370
1391
|
|
|
@@ -1373,6 +1394,7 @@ Run the full KDP paperback publishing pipeline: prepare the interior package, ge
|
|
|
1373
1394
|
- `--formatted` -- Use designed/formatted template (vs. manuscript format)
|
|
1374
1395
|
- `--print-ready` -- Generate the interior print PDF surface used by print-package flows
|
|
1375
1396
|
- `--skip-validate` -- Skip the scaffold-marker validation gate (not recommended)
|
|
1397
|
+
- `--check` -- Verify format availability and required external tools without assembling or writing export files
|
|
1376
1398
|
|
|
1377
1399
|
**Available for:** All work types (format availability varies by work type)
|
|
1378
1400
|
|
|
@@ -1932,12 +1954,13 @@ See all your writing projects with status, word count, and last activity.
|
|
|
1932
1954
|
|
|
1933
1955
|
**Description:** Diagnose and repair common project state issues.
|
|
1934
1956
|
|
|
1935
|
-
**Usage:** `/scr:health [--repair]`
|
|
1957
|
+
**Usage:** `/scr:health [--repair] [--context]`
|
|
1936
1958
|
|
|
1937
1959
|
**Prerequisites:** None
|
|
1938
1960
|
|
|
1939
1961
|
**Flags:**
|
|
1940
1962
|
- `--repair` -- Attempt to fix detected issues
|
|
1963
|
+
- `--context` -- Estimate loaded-context size and flag watch, tight, or critical sessions
|
|
1941
1964
|
|
|
1942
1965
|
**Available for:** All work types
|
|
1943
1966
|
|
|
@@ -1949,6 +1972,30 @@ Check for missing files, broken references, and state inconsistencies, then fix
|
|
|
1949
1972
|
|
|
1950
1973
|
---
|
|
1951
1974
|
|
|
1975
|
+
### `/scr:surface`
|
|
1976
|
+
|
|
1977
|
+
**Description:** Inspect or change the installed Scriveno command profile.
|
|
1978
|
+
|
|
1979
|
+
**Usage:** `/scr:surface [list|status|profile <name>] [--runtime <runtime>] [--dry-run]`
|
|
1980
|
+
|
|
1981
|
+
**Prerequisites:** Node.js >=20.0.0 and a Scriveno package or repo checkout with `bin/install.js`
|
|
1982
|
+
|
|
1983
|
+
**Flags:**
|
|
1984
|
+
- `list` -- Show available profiles and command counts
|
|
1985
|
+
- `status` -- Show the currently installed profile and runtime surface
|
|
1986
|
+
- `profile <name>` -- Reinstall a named profile: core, writing, publishing, translation, specialist, or full
|
|
1987
|
+
- `--dry-run` -- Show the planned install changes without writing files
|
|
1988
|
+
|
|
1989
|
+
**Available for:** All work types
|
|
1990
|
+
|
|
1991
|
+
**Example:**
|
|
1992
|
+
```
|
|
1993
|
+
/scr:surface profile writing --dry-run
|
|
1994
|
+
```
|
|
1995
|
+
Preview a smaller drafting-focused command surface before changing installed runtime files.
|
|
1996
|
+
|
|
1997
|
+
---
|
|
1998
|
+
|
|
1952
1999
|
### `/scr:scan`
|
|
1953
2000
|
|
|
1954
2001
|
**Description:** Detect drift between recorded state (STATE.md, OUTLINE.md, config.json) and what is actually on disk.
|