scriveno 2.0.5 → 2.0.7
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 +4 -4
- package/bin/install.js +144 -7
- package/commands/scr/autopilot-publish.md +28 -0
- package/commands/scr/autopilot-translate.md +29 -0
- package/commands/scr/autopilot.md +29 -0
- package/commands/scr/beta-reader.md +22 -0
- package/commands/scr/continuity-check.md +21 -0
- package/commands/scr/draft.md +21 -0
- package/commands/scr/editor-review.md +26 -0
- package/commands/scr/health.md +19 -0
- package/commands/scr/map-manuscript.md +26 -0
- package/commands/scr/new-work.md +1 -1
- package/commands/scr/next.md +40 -0
- package/commands/scr/plan.md +22 -0
- package/commands/scr/progress.md +25 -0
- package/commands/scr/quick-write.md +23 -0
- package/commands/scr/save.md +21 -0
- package/commands/scr/scan.md +20 -0
- package/commands/scr/session-report.md +19 -0
- package/commands/scr/sync.md +51 -3
- package/commands/scr/track.md +20 -0
- package/commands/scr/translate.md +25 -0
- package/commands/scr/voice-check.md +20 -0
- package/data/CONSTRAINTS.json +1 -1
- package/docs/auto-invoke-policy.md +100 -0
- package/docs/configuration.md +1 -1
- package/docs/release-notes.md +65 -0
- package/docs/runtime-support.md +20 -10
- package/package.json +1 -1
- package/templates/config.json +1 -1
package/commands/scr/plan.md
CHANGED
|
@@ -78,12 +78,34 @@ Require `{N}-CONTEXT.md` to exist (from discuss phase). If it doesn't, offer to
|
|
|
78
78
|
|
|
79
79
|
7. **Update STATE.md** and suggest: "Ready to draft? Run `/scr:draft N`." (Suppress the draft suggestion if any plan came back NEEDS REVISION; suggest addressing the flagged items first.)
|
|
80
80
|
|
|
81
|
+
If `.manuscript/config.json` has `autopilot.enabled: true`, all plan checks are READY, and the active profile is `full-auto`, immediately proceed to `/scr:draft N` instead of stopping at a suggestion. In `supervised`, pause here and show the plan-check summary before drafting. In `guided`, ask for approval before drafting.
|
|
82
|
+
|
|
81
83
|
8. **Append one line to `.manuscript/HISTORY.log`** per `docs/history-protocol.md`:
|
|
82
84
|
```
|
|
83
85
|
{ISO timestamp} | scr:plan | unit={N} | atomic-units={count} | check={READY|N-flagged} | outcome=ok
|
|
84
86
|
```
|
|
85
87
|
If the run failed, use `outcome=failed:<short-reason>` instead. Create HISTORY.log if it does not exist.
|
|
86
88
|
|
|
89
|
+
## Agent and Automation Status
|
|
90
|
+
|
|
91
|
+
Every response must include a short status block that makes invocation visible:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
Agent status:
|
|
95
|
+
Trigger: /scr:plan N
|
|
96
|
+
Spawned agents:
|
|
97
|
+
- plan-checker: {count} fresh-context invocation(s)
|
|
98
|
+
Local operations:
|
|
99
|
+
- plan files written: {count}
|
|
100
|
+
- STATE.md updated: yes/no
|
|
101
|
+
- HISTORY.log updated: yes/no
|
|
102
|
+
Auto-invoked:
|
|
103
|
+
- /scr:draft N: yes/no
|
|
104
|
+
Why: {all plans READY plus full-auto, supervised pause, guided approval needed, or plan check blocked}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
If the host runtime cannot spawn a native `plan-checker` agent type, load the installed `agents/plan-checker.md` prompt from the active runtime and run it in an isolated fresh context. In the status block, write `Spawned agents: native unavailable; prompt-run fallback used`.
|
|
108
|
+
|
|
87
109
|
## Response Contract
|
|
88
110
|
|
|
89
111
|
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.
|
package/commands/scr/progress.md
CHANGED
|
@@ -7,6 +7,8 @@ argument-hint: ""
|
|
|
7
7
|
|
|
8
8
|
You are showing the writer their current project progress.
|
|
9
9
|
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:progress` is read-only: it can count, compare, and recommend, but it must not spawn agents or write files.
|
|
11
|
+
|
|
10
12
|
## Prerequisites
|
|
11
13
|
|
|
12
14
|
- `.manuscript/STATE.md` must exist
|
|
@@ -22,6 +24,29 @@ You are showing the writer their current project progress.
|
|
|
22
24
|
- "{word_count} words so far."
|
|
23
25
|
- "{open_threads} open record threads." (only when RECORD.md exists)
|
|
24
26
|
- "Next: {next_action}"
|
|
27
|
+
6. Run the Level 1 proactive sweep:
|
|
28
|
+
- If STATE.md counts disagree with draft files, suggest `/scr:scan`.
|
|
29
|
+
- If reports show unresolved review items, suggest the matching review command.
|
|
30
|
+
- If exports are stale, suggest `/scr:export` or `/scr:publish`.
|
|
31
|
+
- If translation work exists and follow-up reports are missing, suggest the next translation check.
|
|
32
|
+
- If unsaved manuscript changes exist, suggest `/scr:save`.
|
|
33
|
+
|
|
34
|
+
## Automation Status
|
|
35
|
+
|
|
36
|
+
Every response must include a compact status block:
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
Automation status:
|
|
40
|
+
Trigger: /scr:progress
|
|
41
|
+
Spawned agents:
|
|
42
|
+
- none
|
|
43
|
+
Local operations:
|
|
44
|
+
- progress counts computed: yes/no
|
|
45
|
+
- proactive sweep: read-only
|
|
46
|
+
Auto-invoked:
|
|
47
|
+
- none
|
|
48
|
+
Why: progress is read-only; it recommends next commands without mutating files
|
|
49
|
+
```
|
|
25
50
|
|
|
26
51
|
## Response Contract
|
|
27
52
|
|
|
@@ -43,6 +43,8 @@ If `--discuss`: Ask 3-5 targeted questions about tone, pacing, and purpose for t
|
|
|
43
43
|
|
|
44
44
|
If `--research`: Spawn a focused researcher for technique guidance.
|
|
45
45
|
|
|
46
|
+
If the host runtime cannot spawn a focused researcher, run the research pass in an isolated fresh context and report `prompt-run fallback used` in the status block.
|
|
47
|
+
|
|
46
48
|
### STEP 3: DRAFT
|
|
47
49
|
|
|
48
50
|
Write the passage following all established style guide constraints. Target whatever length feels natural unless the writer specified a target.
|
|
@@ -58,6 +60,27 @@ Save plan (if generated) to `.manuscript/quick/{NNN}-{slug}/PLAN.md`
|
|
|
58
60
|
|
|
59
61
|
Commit: `quick: {slug}`
|
|
60
62
|
|
|
63
|
+
## Agent and Automation Status
|
|
64
|
+
|
|
65
|
+
Every response must include a short status block that makes invocation visible:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
Agent status:
|
|
69
|
+
Trigger: /scr:quick-write {flags}
|
|
70
|
+
Spawned agents:
|
|
71
|
+
- researcher: yes/no
|
|
72
|
+
Local operations:
|
|
73
|
+
- context files loaded: {count}
|
|
74
|
+
- draft file written: yes/no
|
|
75
|
+
- plan file written: yes/no
|
|
76
|
+
Auto-invoked:
|
|
77
|
+
- /scr:continuity-check: yes/no
|
|
78
|
+
- /scr:voice-check: yes/no
|
|
79
|
+
Why: --full runs verification after drafting; --research spawns a focused technique pass
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
In default mode, report `researcher: none` and both auto-invoked checks as `no`.
|
|
83
|
+
|
|
61
84
|
## Response Contract
|
|
62
85
|
|
|
63
86
|
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.
|
package/commands/scr/save.md
CHANGED
|
@@ -7,6 +7,8 @@ argument-hint: "[optional message]"
|
|
|
7
7
|
|
|
8
8
|
You are saving the writer's current work. Your job is to create a git commit with a writer-friendly message, without exposing any git terminology.
|
|
9
9
|
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:save` does not spawn agents. It owns safe local helpers for `STATE.md`, `CONTEXT.md`, and `HISTORY.log`, then saves `.manuscript/`.
|
|
11
|
+
|
|
10
12
|
## What to do
|
|
11
13
|
|
|
12
14
|
1. **Check for `.manuscript/` directory.** If missing: "No manuscript found. Start with `/scr:new-work`."
|
|
@@ -69,6 +71,25 @@ You are saving the writer's current work. Your job is to create a git commit wit
|
|
|
69
71
|
|
|
70
72
|
10. **Tell the writer** the result (see output section below).
|
|
71
73
|
|
|
74
|
+
## Automation Status
|
|
75
|
+
|
|
76
|
+
Every response must include a compact status block:
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
Automation status:
|
|
80
|
+
Trigger: /scr:save
|
|
81
|
+
Spawned agents:
|
|
82
|
+
- none
|
|
83
|
+
Local operations:
|
|
84
|
+
- STATE.md updated: yes/no
|
|
85
|
+
- CONTEXT.md regenerated: yes/no
|
|
86
|
+
- HISTORY.log appended: yes/no
|
|
87
|
+
- manuscript files saved: yes/no
|
|
88
|
+
Auto-invoked:
|
|
89
|
+
- /scr:next route computed for CONTEXT.md: yes/no
|
|
90
|
+
Why: save uses deterministic local bookkeeping, not a spawned agent
|
|
91
|
+
```
|
|
92
|
+
|
|
72
93
|
## Writer mode output
|
|
73
94
|
|
|
74
95
|
- **Writer mode** (`developer_mode: false`): "Saved. You can see your save history with `/scr:history`."
|
package/commands/scr/scan.md
CHANGED
|
@@ -7,6 +7,8 @@ argument-hint: "[--fix] [--quiet]"
|
|
|
7
7
|
|
|
8
8
|
You are the project's drift detector. Trust nothing. Compare what `.manuscript/STATE.md`, `OUTLINE.md`, `RECORD.md`, `config.json`, and the various structural files **claim** against what the filesystem actually contains, and report every mismatch.
|
|
9
9
|
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:scan` does not spawn agents. It may run deterministic local checks and, under `--fix` after confirmation, deterministic local repairs.
|
|
11
|
+
|
|
10
12
|
This is the defense against context corruption. A fresh Claude session, a writer who hand-edited files between sessions, an interrupted command, or a partial revert can all leave the project in an internally inconsistent state. STATE.md says 12 units drafted; the disk has 14. OUTLINE.md lists "Chapter 8" but no draft file exists. RECORD.md says a promise is still open but the draft paid it off. STYLE-GUIDE.md was edited yesterday but no voice-check has run since. `/scr:scan` finds those.
|
|
11
13
|
|
|
12
14
|
This complements `/scr:health` (which fixes structural issues like missing directories) and `/scr:resume-work` (which reads recorded state). `/scr:scan` interrogates whether the recorded state is true.
|
|
@@ -261,6 +263,24 @@ After any auto-fix, append a single line to HISTORY.log per `docs/history-protoc
|
|
|
261
263
|
|
|
262
264
|
---
|
|
263
265
|
|
|
266
|
+
## Automation Status
|
|
267
|
+
|
|
268
|
+
Every response must include a compact status block:
|
|
269
|
+
|
|
270
|
+
```text
|
|
271
|
+
Automation status:
|
|
272
|
+
Trigger: /scr:scan {flags}
|
|
273
|
+
Spawned agents:
|
|
274
|
+
- none
|
|
275
|
+
Local operations:
|
|
276
|
+
- drift checks run: {count}
|
|
277
|
+
- auto-fixes applied: {count}
|
|
278
|
+
- HISTORY.log appended: yes/no
|
|
279
|
+
Auto-invoked:
|
|
280
|
+
- none
|
|
281
|
+
Why: scan compares disk state locally; fixes require writer confirmation
|
|
282
|
+
```
|
|
283
|
+
|
|
264
284
|
## Response Contract
|
|
265
285
|
|
|
266
286
|
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.
|
|
@@ -7,6 +7,8 @@ argument-hint: ""
|
|
|
7
7
|
|
|
8
8
|
You are summarizing the writer's current session. Your job is to compute actionable metrics from STATE.md and present them clearly.
|
|
9
9
|
|
|
10
|
+
Follow the auto-invoke policy. In the source repository it is documented at `docs/auto-invoke-policy.md`. `/scr:session-report` is read-only and does not spawn agents.
|
|
11
|
+
|
|
10
12
|
## What to do
|
|
11
13
|
|
|
12
14
|
1. **Read STATE.md "Last actions" table** to get the full history of actions.
|
|
@@ -44,6 +46,23 @@ Present the report in this format:
|
|
|
44
46
|
| 3:15 PM | Editor review complete |
|
|
45
47
|
```
|
|
46
48
|
|
|
49
|
+
## Automation Status
|
|
50
|
+
|
|
51
|
+
Every response must include a compact status block:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
Automation status:
|
|
55
|
+
Trigger: /scr:session-report
|
|
56
|
+
Spawned agents:
|
|
57
|
+
- none
|
|
58
|
+
Local operations:
|
|
59
|
+
- session metrics computed: yes/no
|
|
60
|
+
- quality pass summary computed: yes/no
|
|
61
|
+
Auto-invoked:
|
|
62
|
+
- none
|
|
63
|
+
Why: session-report summarizes disk state without mutating files
|
|
64
|
+
```
|
|
65
|
+
|
|
47
66
|
## Edge cases
|
|
48
67
|
|
|
49
68
|
- **No actions this session:** If the Last actions table is empty or has no entries after the last pause/resume marker, say: "Nothing to report yet. Start working with `/scr:next`."
|
package/commands/scr/sync.md
CHANGED
|
@@ -7,7 +7,7 @@ argument-hint: "[--check] [--apply] [--runtime <key>] [--detected] [--global|--p
|
|
|
7
7
|
|
|
8
8
|
You are synchronizing Scriveno's installed agent surfaces with the current Scriveno source tree.
|
|
9
9
|
|
|
10
|
-
This command is for local runtime drift: Codex skills, Codex command mirrors, Claude command files,
|
|
10
|
+
This command is for local runtime drift: Codex skills, Codex command mirrors, Claude Code command files, command-directory runtimes, skills runtimes, guided setup assets, and agent prompts that no longer match the source files in the Scriveno package or repo.
|
|
11
11
|
|
|
12
12
|
This is not a package upgrade command. Do not fetch a newer Scriveno release, do not change npm dependencies, and do not modify manuscript content. If the writer wants a newer published package version, that belongs to a future `/scr:update` command.
|
|
13
13
|
|
|
@@ -32,7 +32,7 @@ If you cannot find a Scriveno source root, stop and explain that `/scr:sync` nee
|
|
|
32
32
|
|
|
33
33
|
1. Locate the Scriveno source root:
|
|
34
34
|
- First, check the current working directory and its parents for `package.json` with `"name": "scriveno"` or legacy `"name": "scriveno-cli"` plus `bin/install.js`.
|
|
35
|
-
- If running from an installed command copy that contains a `scriveno-
|
|
35
|
+
- If running from an installed command copy that contains a `scriveno-installed-command` marker, derive the source root from that marker's `source:` path. Older `scriveno-cli-installed-command` markers are accepted as legacy input only.
|
|
36
36
|
- If neither works, stop with the prerequisite message above.
|
|
37
37
|
2. Read `package.json` from the source root and report the source version.
|
|
38
38
|
3. Detect target runtimes:
|
|
@@ -47,9 +47,15 @@ If you cannot find a Scriveno source root, stop and explain that `/scr:sync` nee
|
|
|
47
47
|
- GitHub Copilot: `~/.github/commands/scr/`, `~/.github/agents/`
|
|
48
48
|
- Windsurf: `~/.windsurf/commands/scr/`, `~/.windsurf/agents/`
|
|
49
49
|
- Antigravity: `~/.gemini/antigravity/commands/scr/`, `~/.gemini/antigravity/agents/`
|
|
50
|
+
- Manus Desktop: `~/.manus/skills/scriveno/SKILL.md` plus mirrored `commands/scr/` and `agents/` inside that skill bundle
|
|
51
|
+
- Perplexity Desktop: `~/.scriveno/perplexity/SETUP.md` and `connector-command.txt`
|
|
52
|
+
- Generic skills fallback: `~/.scriveno/skills/SKILL.md` plus mirrored `commands/scr/` and `agents/`
|
|
50
53
|
4. Compare source files against installed files:
|
|
51
54
|
- Compare command counts.
|
|
52
55
|
- Compare a representative hash set for `commands/scr/autopilot.md`, `commands/scr/next.md`, `commands/scr/scan.md`, `commands/scr/sync.md`, and all generated Codex `SKILL.md` wrappers when present.
|
|
56
|
+
- Check that Claude Code flat commands include `/scr-*` invocation rewrites and source-marker behavior after reinstall.
|
|
57
|
+
- Check that standard command-directory runtimes preserve nested command paths under their `commands/scr/` directory.
|
|
58
|
+
- Check that skills runtimes include `SKILL.md`, mirrored commands, and mirrored agent prompts inside their skill bundle.
|
|
53
59
|
- Check that installed Codex commands include current response-contract and source-marker behavior after reinstall.
|
|
54
60
|
- Report each runtime as `current`, `stale`, `missing`, or `unknown`.
|
|
55
61
|
5. Decide mode:
|
|
@@ -70,15 +76,57 @@ Adjust flags from the command arguments:
|
|
|
70
76
|
7. After applying, verify:
|
|
71
77
|
- Re-read installed command counts.
|
|
72
78
|
- Confirm `sync.md` is installed for each target runtime.
|
|
79
|
+
- For Claude Code, confirm `scr-sync.md` exists and installed agent prompts are present in the chosen `agents/` directory.
|
|
80
|
+
- For standard command-directory runtimes, confirm `commands/scr/sync.md` and installed agent prompts are present.
|
|
81
|
+
- For skills runtimes, confirm `SKILL.md`, `commands/scr/sync.md`, and bundled agent prompts are present.
|
|
82
|
+
- For Perplexity Desktop, confirm the setup guide and connector recipe are present.
|
|
73
83
|
- For Codex, confirm both `~/.codex/commands/scr/sync.md` and `~/.codex/skills/scr-sync/SKILL.md` exist in the chosen scope.
|
|
84
|
+
- For Codex, confirm installed Scriveno agents have matching `.toml` metadata files in the chosen `agents/` directory when the Codex runtime supports agent metadata.
|
|
74
85
|
- Confirm no stale runtime files remain in the checked target set.
|
|
75
|
-
8. Report:
|
|
86
|
+
8. Report a compact sync status trail:
|
|
76
87
|
- Source version
|
|
77
88
|
- Runtime targets checked
|
|
78
89
|
- Runtime targets updated
|
|
79
90
|
- Any skipped targets and why
|
|
91
|
+
- Trigger: `check`, `apply`, or `prompted apply`
|
|
92
|
+
- Agent: `none` for this command
|
|
93
|
+
- Engine: `bin/install.js` when applying, or `hash/count comparison` when checking only
|
|
94
|
+
- Local operations: command files compared, Claude flat commands checked, standard command directories checked, skills manifests checked, guided setup assets checked, agent prompts checked, Codex skills checked, Codex command mirrors checked, Codex agent metadata checked when applicable
|
|
95
|
+
- Result counts: commands, skills, agent prompts, metadata files, stale files removed, and skipped targets
|
|
80
96
|
- Suggested project-level follow-up with `/scr:scan`
|
|
81
97
|
|
|
98
|
+
Use this report shape:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Sync status:
|
|
102
|
+
Trigger: /scr:sync --apply --detected --global --developer
|
|
103
|
+
Agent: none
|
|
104
|
+
Why: runtime sync is installer-driven, not a writing or review agent task
|
|
105
|
+
Engine: bin/install.js
|
|
106
|
+
Checked:
|
|
107
|
+
- commands: 112 source, 112 installed
|
|
108
|
+
- Claude Code flat commands: 112 installed
|
|
109
|
+
- standard command directories: current
|
|
110
|
+
- skills manifests: current
|
|
111
|
+
- guided setup assets: current
|
|
112
|
+
- Codex skills: 112 installed
|
|
113
|
+
- agent prompts: 6 installed
|
|
114
|
+
- Codex agent metadata: 6 installed
|
|
115
|
+
Updated:
|
|
116
|
+
- Claude Code command files
|
|
117
|
+
- standard command directories
|
|
118
|
+
- skills manifests
|
|
119
|
+
- guided setup assets
|
|
120
|
+
- Codex command mirrors
|
|
121
|
+
- Codex skills
|
|
122
|
+
- Codex agent prompts
|
|
123
|
+
- Codex agent metadata
|
|
124
|
+
Skipped:
|
|
125
|
+
- none
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If no files were changed, keep the same shape and set `Updated: none`. If an agent was not spawned, always say `Agent: none` and explain why.
|
|
129
|
+
|
|
82
130
|
## Safety Rules
|
|
83
131
|
|
|
84
132
|
- Only overwrite Scriveno-owned installed runtime files.
|
package/commands/scr/track.md
CHANGED
|
@@ -494,6 +494,26 @@ For standard revision tracks where only the track has changes (canon is unmodifi
|
|
|
494
494
|
|
|
495
495
|
The `.manuscript/merge-log.json` file accumulates entries from every co-writing merge. Each entry preserves both versions of contradictory passages, the resolution chosen, and any reconciled text. This provides a history of how parallel work was integrated and supports future continuity auditing.
|
|
496
496
|
|
|
497
|
+
### Automation Status
|
|
498
|
+
|
|
499
|
+
Every `track merge` response must include a compact status block:
|
|
500
|
+
|
|
501
|
+
```text
|
|
502
|
+
Automation status:
|
|
503
|
+
Trigger: /scr:track merge {track}
|
|
504
|
+
Auto-invoked:
|
|
505
|
+
- /scr:continuity-check equivalent: yes/no
|
|
506
|
+
Spawned agents:
|
|
507
|
+
- continuity-checker: yes/no
|
|
508
|
+
Local operations:
|
|
509
|
+
- track metadata checked: yes/no
|
|
510
|
+
- canon and track changes compared: yes/no
|
|
511
|
+
- merge log updated: yes/no
|
|
512
|
+
Why: co-writing or parallel canon changes require continuity verification before accepting revisions
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
If continuity verification did not run, say why: standard revision track, canon unchanged, or writer cancelled before merge. If native `continuity-checker` spawning is unavailable, use the installed prompt in an isolated fresh context and report `prompt-run fallback used`.
|
|
516
|
+
|
|
497
517
|
---
|
|
498
518
|
|
|
499
519
|
## Writer-Friendly Language Guide
|
|
@@ -171,6 +171,8 @@ Invoke the translator agent (`agents/translator.md`) with fresh context, providi
|
|
|
171
171
|
|
|
172
172
|
**Fresh context per unit is mandatory.** Each translator invocation is independent -- this prevents translation drift, glossary inconsistency, and register collapse across a long manuscript.
|
|
173
173
|
|
|
174
|
+
If the host runtime cannot spawn a native `translator` agent type, load the installed `agents/translator.md` prompt from the active runtime and run it in an isolated fresh context. Record that fallback in the status block.
|
|
175
|
+
|
|
174
176
|
**5d. Post-unit processing:**
|
|
175
177
|
|
|
176
178
|
After each unit translation:
|
|
@@ -214,6 +216,29 @@ After all units are translated, show a summary:
|
|
|
214
216
|
> - Back-translate to verify: `/scr:back-translate [lang]`
|
|
215
217
|
> - Export translation: `/scr:export --format [format] --language [lang]`
|
|
216
218
|
|
|
219
|
+
## Agent and Automation Status
|
|
220
|
+
|
|
221
|
+
Every response must include a short status block that makes invocation visible:
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
Agent status:
|
|
225
|
+
Trigger: /scr:translate {language}
|
|
226
|
+
Spawned agents:
|
|
227
|
+
- translator: {count} fresh-context invocation(s)
|
|
228
|
+
Local operations:
|
|
229
|
+
- glossary loaded: yes/no
|
|
230
|
+
- translation memory loaded: yes/no
|
|
231
|
+
- units written: {count}
|
|
232
|
+
- new glossary terms flagged: {count}
|
|
233
|
+
Auto-invoked:
|
|
234
|
+
- /scr:translation-memory {language} --build: yes/no
|
|
235
|
+
- /scr:cultural-adaptation {language}: yes/no
|
|
236
|
+
- /scr:back-translate {language}: yes/no
|
|
237
|
+
Why: {manual translation mode, autopilot-translate phase, or writer requested chained verification}
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Plain `/scr:translate` does not auto-run translation memory, cultural adaptation, or back-translation unless the writer requested a chained verification or the command is being run inside `/scr:autopilot-translate`. Show `Auto-invoked: no` for those follow-up checks in manual mode.
|
|
241
|
+
|
|
217
242
|
## Response Contract
|
|
218
243
|
|
|
219
244
|
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.
|
|
@@ -45,6 +45,8 @@ Spawn the voice-checker agent (`agents/voice-checker.md`) with:
|
|
|
45
45
|
- The scoped drafted prose (unit `N` or all units)
|
|
46
46
|
- If available, previously approved units as reference anchors for comparison
|
|
47
47
|
|
|
48
|
+
If the host runtime cannot spawn a native `voice-checker` agent type, load the installed `agents/voice-checker.md` prompt from the active runtime and run it in an isolated fresh context. Record that fallback in the status block.
|
|
49
|
+
|
|
48
50
|
Because STYLE-GUIDE.md is present, this is voice-deviation framing: the agent measures deviation *from* the writer's voice, not against a generic ideal. An authentic writer habit is not a tell for that writer even when a generic catalog would flag it; STYLE-GUIDE.md wins.
|
|
49
51
|
|
|
50
52
|
The voice-checker agent runs its diagnostic discipline: a scrutiny pre-check (match scrutiny to evidence density; low density biases hard toward a high score), a mandatory false-positive audit with veto power (lone weak signals dropped without lowering the score; strong false positives reclassified as human markers that raise it), and an internal-consistency check (sharp register or sophistication seams flagged against the document's own baseline). It performs deep analysis across four dimensions:
|
|
@@ -109,6 +111,24 @@ Save the full report to `.manuscript/{scope}-VOICE-CHECK-REPORT.md` where `{scop
|
|
|
109
111
|
|
|
110
112
|
Present the score, status, and top issues to the writer. Offer to show the full report.
|
|
111
113
|
|
|
114
|
+
## Agent Status
|
|
115
|
+
|
|
116
|
+
Every response must include a short status block that makes invocation visible:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
Agent status:
|
|
120
|
+
Trigger: /scr:voice-check {scope}
|
|
121
|
+
Spawned agents:
|
|
122
|
+
- voice-checker: 1 fresh-context diagnostic invocation
|
|
123
|
+
Local operations:
|
|
124
|
+
- STYLE-GUIDE.md loaded: yes/no
|
|
125
|
+
- drafted files checked: {count}
|
|
126
|
+
- report written: yes/no
|
|
127
|
+
Auto-invoked:
|
|
128
|
+
- none
|
|
129
|
+
Why: voice-check is diagnostic only; fixes are writer-chosen handoffs
|
|
130
|
+
```
|
|
131
|
+
|
|
112
132
|
## Response Contract
|
|
113
133
|
|
|
114
134
|
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.
|
package/data/CONSTRAINTS.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./constraints.schema.json",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
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."
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Auto-Invoke Policy
|
|
2
|
+
|
|
3
|
+
Scriveno can be proactive, but it must be proactive from disk evidence. Commands should inspect `.manuscript/`, reports, timestamps, config, and installed runtime surfaces before choosing an automatic helper.
|
|
4
|
+
|
|
5
|
+
## Cross-Platform Agent Rules
|
|
6
|
+
|
|
7
|
+
Scriveno agent prompts live in `agents/*.md`. Each host runtime exposes them differently:
|
|
8
|
+
|
|
9
|
+
- Claude Code installs command files in `~/.claude/commands/` and agent prompts in `~/.claude/agents/`.
|
|
10
|
+
- Codex installs `$scr-*` skills, mirrored command files, agent prompts, and `.toml` metadata so Codex can expose agent types.
|
|
11
|
+
- Cursor, Gemini CLI, OpenCode, Copilot, Windsurf, and Antigravity install nested command directories and agent prompts in their runtime-specific agent directories.
|
|
12
|
+
- Manus and the generic skill runtime bundle `SKILL.md`, commands, and agents inside the skill directory.
|
|
13
|
+
|
|
14
|
+
When a host supports native fresh-context spawning, use the native agent or subagent mechanism. When it does not, load the installed agent prompt from the active runtime and run it in an isolated fresh context. When the action is only a file operation, report `Agent: none`.
|
|
15
|
+
|
|
16
|
+
Every automatic path must make the distinction visible.
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
Agent status:
|
|
20
|
+
Trigger: <command or state condition>
|
|
21
|
+
Spawned agents:
|
|
22
|
+
- <agent-name>: <count, none, or prompt-run fallback used>
|
|
23
|
+
Local operations:
|
|
24
|
+
- <operation>: <result>
|
|
25
|
+
Auto-invoked:
|
|
26
|
+
- <command or helper>: yes/no
|
|
27
|
+
Why: <one sentence tied to disk state>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Use `Automation status:` for command chains and `Sync status:` for runtime install or sync checks.
|
|
31
|
+
|
|
32
|
+
## Levels
|
|
33
|
+
|
|
34
|
+
| Level | Behavior | Default | Examples |
|
|
35
|
+
|-------|----------|---------|----------|
|
|
36
|
+
| 1 | Read-only suggestion | Run by default | `/scr:next` route, progress sweep, review queue surfacing |
|
|
37
|
+
| 2 | Safe local helper | Run when directly triggered | `CONTEXT.md` regeneration, `HISTORY.log` append, scan report, stats count |
|
|
38
|
+
| 3 | Scoped agent | Spawn when the command implies it or evidence is bounded | drafter, plan-checker, voice-checker, continuity-checker, translator, beta-reader |
|
|
39
|
+
| 4 | Writer-owned action | Require confirmation | publishing, destructive edits, merge decisions, accepting review findings |
|
|
40
|
+
|
|
41
|
+
## Level 1: Auto-Suggest
|
|
42
|
+
|
|
43
|
+
Run these read-only checks in `/scr:next`, `/scr:progress`, and closeouts for major commands:
|
|
44
|
+
|
|
45
|
+
- If `STATE.md`, `CONTEXT.md`, `HISTORY.log`, or draft mtimes disagree, suggest `/scr:scan`.
|
|
46
|
+
- If voice or continuity reports have unresolved issues, suggest `/scr:voice-check`, `/scr:continuity-check`, or `/scr:editor-review`.
|
|
47
|
+
- If editor notes or track proposals exist, suggest `/scr:editor-review --notes`, `/scr:editor-review --respond`, or `/scr:track`.
|
|
48
|
+
- If translation folders exist or config lists target languages, suggest translation follow-ups.
|
|
49
|
+
- If export outputs are older than source files, suggest `/scr:export` or `/scr:publish`.
|
|
50
|
+
- If no save exists after recent manuscript changes, suggest `/scr:save`.
|
|
51
|
+
|
|
52
|
+
These checks must not mutate files.
|
|
53
|
+
|
|
54
|
+
## Level 2: Auto-Run Local Helpers
|
|
55
|
+
|
|
56
|
+
Run these only when the current command directly owns the file operation:
|
|
57
|
+
|
|
58
|
+
- `/scr:save` regenerates `.manuscript/CONTEXT.md`, appends `HISTORY.log`, and commits `.manuscript/`.
|
|
59
|
+
- `/scr:scan --fix` applies deterministic state repairs after confirmation and appends `HISTORY.log`.
|
|
60
|
+
- `/scr:resume-work` may regenerate `CONTEXT.md` from disk state.
|
|
61
|
+
- `/scr:progress` may count drafts, submitted units, open record threads, and stale reports, but does not write.
|
|
62
|
+
- Runtime `/scr:sync --apply` runs the installer and verifies installed command, skill, and agent surfaces.
|
|
63
|
+
|
|
64
|
+
Report these as local operations, not spawned agents.
|
|
65
|
+
|
|
66
|
+
## Level 3: Auto-Spawn Scoped Agents
|
|
67
|
+
|
|
68
|
+
Spawn or prompt-run fallback is appropriate when the command already implies a specialist role:
|
|
69
|
+
|
|
70
|
+
- `/scr:plan` invokes `plan-checker` per plan.
|
|
71
|
+
- `/scr:draft` invokes `drafter` per atomic unit and a voice diagnostic pass when a draft was produced.
|
|
72
|
+
- `/scr:voice-check` invokes `voice-checker`.
|
|
73
|
+
- `/scr:continuity-check` invokes `continuity-checker`.
|
|
74
|
+
- `/scr:translate` invokes `translator` per unit.
|
|
75
|
+
- `/scr:beta-reader` invokes a beta reader persona.
|
|
76
|
+
- `/scr:map-manuscript` invokes analysis workers, or isolated sequential analysis if parallel workers are unavailable.
|
|
77
|
+
- `/scr:editor-review` invokes revision diagnostics only for flagged issue groups.
|
|
78
|
+
|
|
79
|
+
Do not pretend command-local analysis workers are installed agent files unless they actually are.
|
|
80
|
+
|
|
81
|
+
## Level 4: Manual Only
|
|
82
|
+
|
|
83
|
+
Never auto-run these without explicit writer confirmation:
|
|
84
|
+
|
|
85
|
+
- deleting or removing units
|
|
86
|
+
- accepting, rejecting, or applying editor decisions
|
|
87
|
+
- merging revision tracks
|
|
88
|
+
- clearing review findings
|
|
89
|
+
- final publish or submission packaging
|
|
90
|
+
- overwriting generated export packages
|
|
91
|
+
- destructive repair, reset, revert, or cleanup
|
|
92
|
+
- broad translation or cultural adaptation chains outside autopilot
|
|
93
|
+
|
|
94
|
+
## Required Closeout
|
|
95
|
+
|
|
96
|
+
Every proactive command should end with:
|
|
97
|
+
|
|
98
|
+
- one recommended next command
|
|
99
|
+
- a short reason tied to disk state
|
|
100
|
+
- status showing whether agents spawned, local operations ran, or manual boundaries stopped automation
|
package/docs/configuration.md
CHANGED
package/docs/release-notes.md
CHANGED
|
@@ -2,6 +2,67 @@
|
|
|
2
2
|
|
|
3
3
|
This document is the public-facing summary of what changed between package releases. For package history, see the root [CHANGELOG](../CHANGELOG.md).
|
|
4
4
|
|
|
5
|
+
## 2.0.7 - 2026-05-16
|
|
6
|
+
|
|
7
|
+
### What changed
|
|
8
|
+
|
|
9
|
+
- Codex installs now generate agent metadata beside Scriveno agent prompts so native agent spawning can work when the host exposes those roles.
|
|
10
|
+
- Non-Codex runtimes keep their own install surfaces: Claude Code flat commands and agents, command-directory runtimes, skill-file runtimes, Manus, guided Perplexity Desktop setup, and the generic fallback.
|
|
11
|
+
- Scriveno now has a shared auto-invoke policy for read-only suggestions, deterministic local helpers, scoped agent spawns, and manual-only writer actions.
|
|
12
|
+
- `/scr:next` and `/scr:progress` now do read-only proactive checks and explain what they found.
|
|
13
|
+
- `/scr:save`, `/scr:scan`, `/scr:health`, `/scr:session-report`, `/scr:sync`, and multi-agent workflows now show visible status blocks that say what spawned, what ran locally, and why.
|
|
14
|
+
- Package and shipped metadata are aligned on `2.0.7`.
|
|
15
|
+
|
|
16
|
+
### Why it matters
|
|
17
|
+
|
|
18
|
+
Writers and developers should not have to guess whether Scriveno used a native agent, a prompt fallback, or a local file operation. This release makes those paths visible and keeps runtime behavior honest across Codex, Claude Code, and the other supported install targets.
|
|
19
|
+
|
|
20
|
+
The practical effect is calmer automation: Scriveno can be more proactive about the next safe move, while still keeping writer-owned actions like publishing, destructive edits, merges, and submissions behind explicit approval.
|
|
21
|
+
|
|
22
|
+
### Affected areas
|
|
23
|
+
|
|
24
|
+
- Codex agent metadata generation
|
|
25
|
+
- Claude Code and other runtime install verification
|
|
26
|
+
- proactive command guidance
|
|
27
|
+
- local helper visibility
|
|
28
|
+
- `/scr:sync` status reporting
|
|
29
|
+
- README, changelog, release notes, and version metadata
|
|
30
|
+
- regression tests for agent spawning, prompt fallback, and runtime install surfaces
|
|
31
|
+
|
|
32
|
+
### Verification
|
|
33
|
+
|
|
34
|
+
- `node --test`
|
|
35
|
+
- `npm run release:check`
|
|
36
|
+
- `git diff --check`
|
|
37
|
+
|
|
38
|
+
## 2.0.6 - 2026-05-15
|
|
39
|
+
|
|
40
|
+
### What changed
|
|
41
|
+
|
|
42
|
+
- New installed command files now use the `scriveno-installed-command` ownership marker.
|
|
43
|
+
- New installed manifests now record `installer: "scriveno"`.
|
|
44
|
+
- Existing installs that still contain the older `scriveno-cli-installed-command` marker remain supported for cleanup and sync detection.
|
|
45
|
+
- `/scr:sync` now documents the current marker and treats the older marker as compatibility-only input.
|
|
46
|
+
- Package and shipped metadata are aligned on `2.0.6`.
|
|
47
|
+
|
|
48
|
+
### Why it matters
|
|
49
|
+
|
|
50
|
+
This finishes the visible package rename for new runtime installs. Writers still install with `npx scriveno@latest`, and freshly generated local metadata now matches that package name without breaking older installed command surfaces.
|
|
51
|
+
|
|
52
|
+
### Affected areas
|
|
53
|
+
|
|
54
|
+
- installer-generated command markers
|
|
55
|
+
- installed runtime manifests
|
|
56
|
+
- `/scr:sync` guidance
|
|
57
|
+
- README, changelog, release notes, and version metadata
|
|
58
|
+
- regression tests for package-name compatibility
|
|
59
|
+
|
|
60
|
+
### Verification
|
|
61
|
+
|
|
62
|
+
- `npm test`
|
|
63
|
+
- `npm run pack:check`
|
|
64
|
+
- `git diff --check`
|
|
65
|
+
|
|
5
66
|
## 2.0.5 - 2026-05-15
|
|
6
67
|
|
|
7
68
|
### What changed
|
|
@@ -11,6 +72,8 @@ This document is the public-facing summary of what changed between package relea
|
|
|
11
72
|
- The package executable remains `scriveno`, so the installer behavior and command surfaces are unchanged after installation.
|
|
12
73
|
- `/scr:sync` now recognizes both the new source package name `scriveno` and the legacy package name `scriveno-cli` when locating a local source checkout.
|
|
13
74
|
- Package and shipped metadata are aligned on `2.0.5`.
|
|
75
|
+
- The older `scriveno-cli` package name was unpublished during the rename, so npm cannot show a deprecation notice for it unless a compatibility shim is republished under that name.
|
|
76
|
+
- The older `scriven-cli` package name remains on npm as a deprecated legacy package and now points users to `npx scriveno@latest`.
|
|
14
77
|
|
|
15
78
|
### Why it matters
|
|
16
79
|
|
|
@@ -18,6 +81,8 @@ The package name now matches the product name. This removes the extra `-cli` suf
|
|
|
18
81
|
|
|
19
82
|
Existing installed runtime surfaces do not need to change immediately. The old installed-command marker remains stable so local sync and compatibility checks can keep recognizing prior installs.
|
|
20
83
|
|
|
84
|
+
For contributors: treat `scriveno` as the only active npm package name. Do not assume `scriveno-cli` can be deprecated in place while it remains unpublished, and do not revive `scriven-cli` except for a deliberate compatibility transition.
|
|
85
|
+
|
|
21
86
|
### Affected areas
|
|
22
87
|
|
|
23
88
|
- npm package metadata
|