scriveno 2.0.5
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/LICENSE +21 -0
- package/README.md +222 -0
- package/agents/continuity-checker.md +85 -0
- package/agents/drafter.md +248 -0
- package/agents/plan-checker.md +209 -0
- package/agents/researcher.md +114 -0
- package/agents/translator.md +204 -0
- package/agents/voice-checker.md +154 -0
- package/bin/install.js +1620 -0
- package/commands/scr/add-note.md +51 -0
- package/commands/scr/add-unit.md +101 -0
- package/commands/scr/art-direction.md +225 -0
- package/commands/scr/autopilot-publish.md +210 -0
- package/commands/scr/autopilot-translate.md +237 -0
- package/commands/scr/autopilot.md +200 -0
- package/commands/scr/back-matter.md +630 -0
- package/commands/scr/back-translate.md +197 -0
- package/commands/scr/beta-reader.md +97 -0
- package/commands/scr/blurb.md +149 -0
- package/commands/scr/book-proposal.md +210 -0
- package/commands/scr/build-ebook.md +448 -0
- package/commands/scr/build-poetry-submission.md +202 -0
- package/commands/scr/build-print.md +598 -0
- package/commands/scr/build-smashwords.md +171 -0
- package/commands/scr/build-world.md +158 -0
- package/commands/scr/cast-list.md +104 -0
- package/commands/scr/chapter-header.md +158 -0
- package/commands/scr/character-arc.md +108 -0
- package/commands/scr/character-ref.md +160 -0
- package/commands/scr/character-sheet.md +143 -0
- package/commands/scr/character-touch.md +157 -0
- package/commands/scr/character-voice-sample.md +111 -0
- package/commands/scr/check-notes.md +50 -0
- package/commands/scr/cleanup.md +159 -0
- package/commands/scr/compare.md +112 -0
- package/commands/scr/complete-draft.md +49 -0
- package/commands/scr/continuity-check.md +129 -0
- package/commands/scr/copy-edit.md +118 -0
- package/commands/scr/cover-art.md +382 -0
- package/commands/scr/cultural-adaptation.md +177 -0
- package/commands/scr/demo.md +93 -0
- package/commands/scr/dialogue-audit.md +143 -0
- package/commands/scr/discuss.md +118 -0
- package/commands/scr/discussion-questions.md +129 -0
- package/commands/scr/do.md +68 -0
- package/commands/scr/draft.md +97 -0
- package/commands/scr/editor-review.md +466 -0
- package/commands/scr/export.md +942 -0
- package/commands/scr/fast.md +65 -0
- package/commands/scr/front-matter.md +696 -0
- package/commands/scr/health.md +113 -0
- package/commands/scr/help.md +121 -0
- package/commands/scr/history.md +92 -0
- package/commands/scr/illustrate-scene.md +211 -0
- package/commands/scr/import.md +95 -0
- package/commands/scr/insert-unit.md +108 -0
- package/commands/scr/line-edit.md +146 -0
- package/commands/scr/manager.md +77 -0
- package/commands/scr/manuscript-stats.md +139 -0
- package/commands/scr/map-illustration.md +213 -0
- package/commands/scr/map-manuscript.md +134 -0
- package/commands/scr/merge-units.md +136 -0
- package/commands/scr/multi-publish.md +344 -0
- package/commands/scr/new-character.md +167 -0
- package/commands/scr/new-revision.md +50 -0
- package/commands/scr/new-work.md +148 -0
- package/commands/scr/next.md +125 -0
- package/commands/scr/originality-check.md +170 -0
- package/commands/scr/outline.md +131 -0
- package/commands/scr/pacing-analysis.md +170 -0
- package/commands/scr/panel-layout.md +225 -0
- package/commands/scr/pause-work.md +88 -0
- package/commands/scr/plan.md +112 -0
- package/commands/scr/plant-seed.md +57 -0
- package/commands/scr/plot-graph.md +199 -0
- package/commands/scr/polish.md +141 -0
- package/commands/scr/profile-writer.md +154 -0
- package/commands/scr/progress.md +51 -0
- package/commands/scr/publish.md +455 -0
- package/commands/scr/query-letter.md +183 -0
- package/commands/scr/quick-write.md +82 -0
- package/commands/scr/relationship-map.md +129 -0
- package/commands/scr/remove-unit.md +120 -0
- package/commands/scr/reorder-units.md +126 -0
- package/commands/scr/resume-work.md +97 -0
- package/commands/scr/sacred/annotation-layer.md +105 -0
- package/commands/scr/sacred/chronology.md +121 -0
- package/commands/scr/sacred/concordance.md +88 -0
- package/commands/scr/sacred/cross-reference.md +97 -0
- package/commands/scr/sacred/doctrinal-check.md +129 -0
- package/commands/scr/sacred/genealogy.md +107 -0
- package/commands/scr/sacred/source-tracking.md +101 -0
- package/commands/scr/sacred/verse-numbering.md +103 -0
- package/commands/scr/sacred-numbering-format.md +103 -0
- package/commands/scr/save.md +109 -0
- package/commands/scr/scan.md +291 -0
- package/commands/scr/sensitivity-review.md +169 -0
- package/commands/scr/series-bible.md +127 -0
- package/commands/scr/session-report.md +80 -0
- package/commands/scr/settings.md +58 -0
- package/commands/scr/split-unit.md +123 -0
- package/commands/scr/spread-layout.md +187 -0
- package/commands/scr/storyboard.md +262 -0
- package/commands/scr/subject-touch.md +168 -0
- package/commands/scr/submit.md +50 -0
- package/commands/scr/subplot-map.md +147 -0
- package/commands/scr/sync.md +116 -0
- package/commands/scr/synopsis.md +137 -0
- package/commands/scr/theme-tracker.md +128 -0
- package/commands/scr/thread.md +83 -0
- package/commands/scr/timeline.md +141 -0
- package/commands/scr/track.md +564 -0
- package/commands/scr/translate.md +260 -0
- package/commands/scr/translation-glossary.md +298 -0
- package/commands/scr/translation-memory.md +310 -0
- package/commands/scr/troubleshoot.md +59 -0
- package/commands/scr/undo.md +106 -0
- package/commands/scr/validate.md +133 -0
- package/commands/scr/versions.md +94 -0
- package/commands/scr/voice-check.md +133 -0
- package/commands/scr/voice-test.md +68 -0
- package/data/CONSTRAINTS.json +1606 -0
- package/data/demo/.manuscript/BRIEF.md +37 -0
- package/data/demo/.manuscript/CHARACTERS.md +90 -0
- package/data/demo/.manuscript/OUTLINE.md +46 -0
- package/data/demo/.manuscript/PLOT-GRAPH.md +75 -0
- package/data/demo/.manuscript/STATE.md +44 -0
- package/data/demo/.manuscript/STYLE-GUIDE.md +119 -0
- package/data/demo/.manuscript/THEMES.md +51 -0
- package/data/demo/.manuscript/WORK.md +51 -0
- package/data/demo/.manuscript/config.json +59 -0
- package/data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md +45 -0
- package/data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md +59 -0
- package/data/demo/.manuscript/plans/5-the-reunion-PLAN.md +52 -0
- package/data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md +61 -0
- package/data/export-templates/scriveno-academic.latex +184 -0
- package/data/export-templates/scriveno-acm.latex +67 -0
- package/data/export-templates/scriveno-apa7.latex +83 -0
- package/data/export-templates/scriveno-book.typst +175 -0
- package/data/export-templates/scriveno-chapbook.typst +121 -0
- package/data/export-templates/scriveno-elsevier.latex +76 -0
- package/data/export-templates/scriveno-epub.css +386 -0
- package/data/export-templates/scriveno-fixed-layout-epub.css +76 -0
- package/data/export-templates/scriveno-fixed-layout.opf +23 -0
- package/data/export-templates/scriveno-ieee.latex +77 -0
- package/data/export-templates/scriveno-lncs.latex +79 -0
- package/data/export-templates/scriveno-picturebook.typst +113 -0
- package/data/export-templates/scriveno-poetry-submission-styles.md +45 -0
- package/data/export-templates/scriveno-poetry-submission.docx +0 -0
- package/data/export-templates/scriveno-smashwords-styles.md +45 -0
- package/data/export-templates/scriveno-smashwords.docx +0 -0
- package/data/export-templates/scriveno-stageplay.typst +129 -0
- package/data/proof/creative-context/README.md +79 -0
- package/data/proof/voice-dna/GUIDED-SAMPLE.md +19 -0
- package/data/proof/voice-dna/README.md +45 -0
- package/data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md +43 -0
- package/data/proof/voice-dna/UNGUIDED-SAMPLE.md +11 -0
- package/data/proof/watchmaker-flow/README.md +78 -0
- package/docs/architecture.md +425 -0
- package/docs/command-reference.md +2384 -0
- package/docs/configuration.md +228 -0
- package/docs/context-protocol.md +81 -0
- package/docs/contributing.md +430 -0
- package/docs/creative-context.md +158 -0
- package/docs/development.md +152 -0
- package/docs/drafter-quality.md +127 -0
- package/docs/getting-started.md +198 -0
- package/docs/history-protocol.md +96 -0
- package/docs/proof-artifacts.md +56 -0
- package/docs/publishing.md +296 -0
- package/docs/release-notes.md +457 -0
- package/docs/runtime-support.md +77 -0
- package/docs/sacred-texts.md +296 -0
- package/docs/shipped-assets.md +129 -0
- package/docs/testing.md +156 -0
- package/docs/translation.md +343 -0
- package/docs/voice-dna.md +297 -0
- package/docs/work-types.md +339 -0
- package/lib/architectural-profiles.js +134 -0
- package/package.json +54 -0
- package/templates/BRIEF.md +51 -0
- package/templates/CHARACTERS.md +64 -0
- package/templates/CONTEXT.md +56 -0
- package/templates/OUTLINE.md +36 -0
- package/templates/RECORD.md +68 -0
- package/templates/STATE.md +50 -0
- package/templates/STYLE-GUIDE.md +121 -0
- package/templates/THEMES.md +36 -0
- package/templates/WORK.md +67 -0
- package/templates/WORLD.md +62 -0
- package/templates/WRITING-RULES.md +156 -0
- package/templates/academic/ARGUMENT-MAP.md +40 -0
- package/templates/academic/CONCEPTS.md +34 -0
- package/templates/academic/CONTEXT.md +29 -0
- package/templates/academic/PROPOSAL.md +37 -0
- package/templates/academic/QUESTIONS.md +24 -0
- package/templates/config.json +72 -0
- package/templates/pitfalls/comic.md +54 -0
- package/templates/pitfalls/commentary.md +62 -0
- package/templates/pitfalls/memoir.md +48 -0
- package/templates/pitfalls/novel.md +53 -0
- package/templates/pitfalls/poetry_collection.md +63 -0
- package/templates/pitfalls/research_paper.md +66 -0
- package/templates/pitfalls/runbook.md +64 -0
- package/templates/pitfalls/screenplay.md +54 -0
- package/templates/platforms/README.md +16 -0
- package/templates/platforms/apple/manifest.yaml +20 -0
- package/templates/platforms/bn/manifest.yaml +20 -0
- package/templates/platforms/d2d/manifest.yaml +20 -0
- package/templates/platforms/google/manifest.yaml +20 -0
- package/templates/platforms/ingram/manifest.yaml +44 -0
- package/templates/platforms/kdp/manifest.yaml +42 -0
- package/templates/platforms/kobo/manifest.yaml +20 -0
- package/templates/platforms/smashwords/manifest.yaml +26 -0
- package/templates/sacred/COSMOLOGY.md +88 -0
- package/templates/sacred/DOCTRINES.md +45 -0
- package/templates/sacred/FIGURES.md +69 -0
- package/templates/sacred/FRAMEWORK.md +98 -0
- package/templates/sacred/LINEAGES.md +52 -0
- package/templates/sacred/README.md +20 -0
- package/templates/sacred/THEOLOGICAL-ARC.md +69 -0
- package/templates/sacred/catholic/manifest.yaml +93 -0
- package/templates/sacred/islamic-hafs/manifest.yaml +134 -0
- package/templates/sacred/islamic-warsh/manifest.yaml +134 -0
- package/templates/sacred/jewish/manifest.yaml +56 -0
- package/templates/sacred/orthodox/manifest.yaml +98 -0
- package/templates/sacred/pali/manifest.yaml +20 -0
- package/templates/sacred/protestant/manifest.yaml +86 -0
- package/templates/sacred/sanskrit/manifest.yaml +20 -0
- package/templates/sacred/tewahedo/manifest.yaml +106 -0
- package/templates/sacred/tibetan/manifest.yaml +20 -0
- package/templates/technical/AUDIENCE.md +26 -0
- package/templates/technical/DEPENDENCIES.md +19 -0
- package/templates/technical/DOC-BRIEF.md +45 -0
- package/templates/technical/PROCEDURES.md +37 -0
- package/templates/technical/REFERENCES.md +36 -0
- package/templates/technical/SYSTEM.md +25 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Insert a new unit at a specific position in the outline.
|
|
3
|
+
argument-hint: "[position] [title]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:insert-unit -- Insert Unit at Position
|
|
7
|
+
|
|
8
|
+
Insert a new structural unit at a specific position in the outline, renumbering subsequent units.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:insert-unit [position] [title]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are a structure management assistant. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to find `work_types[work_type].hierarchy` and determine unit terminology)
|
|
20
|
+
- `.manuscript/OUTLINE.md` (current structural outline)
|
|
21
|
+
- `.manuscript/STATE.md` (progress tracking)
|
|
22
|
+
|
|
23
|
+
**Work-type adaptation:** Determine the correct unit name from CONSTRAINTS.json hierarchy:
|
|
24
|
+
- Novel: "chapter" (hierarchy.mid)
|
|
25
|
+
- Screenplay: "scene" (hierarchy.atomic) or "act" (hierarchy.top)
|
|
26
|
+
- Short story: "section" (hierarchy.mid)
|
|
27
|
+
- Scripture (Biblical): "chapter" (hierarchy.mid)
|
|
28
|
+
- Use `command_unit` from CONSTRAINTS.json as the default unit level
|
|
29
|
+
|
|
30
|
+
Use the adapted unit terminology throughout all output and prompts.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### INSERT UNIT FLOW
|
|
35
|
+
|
|
36
|
+
<insert_unit>
|
|
37
|
+
1. **Resolve unit type** from CONSTRAINTS.json `work_types[work_type].hierarchy`
|
|
38
|
+
- Use `command_unit` to determine which level of the hierarchy this command operates on
|
|
39
|
+
- Display the resolved unit type: "Inserting a new [chapter/scene/section/etc.] at position [N]"
|
|
40
|
+
|
|
41
|
+
2. **Validate position:**
|
|
42
|
+
- Parse the current OUTLINE.md to count existing units
|
|
43
|
+
- Verify the requested position is valid (1 to total_units + 1)
|
|
44
|
+
- If position is beyond the end, suggest using `/scr:add-unit` instead
|
|
45
|
+
|
|
46
|
+
3. **Prompt for details** (if not fully provided):
|
|
47
|
+
- Position (required -- which slot to insert at)
|
|
48
|
+
- Title (required)
|
|
49
|
+
- Brief summary (1-2 sentences)
|
|
50
|
+
|
|
51
|
+
4. **Draft safety check** (D-07):
|
|
52
|
+
- Scan `.manuscript/drafts/body/` for draft files corresponding to units at and after the insertion point
|
|
53
|
+
- If any drafted units will be renumbered, warn the writer:
|
|
54
|
+
"This will renumber [N] existing units. The following drafted files will need to be renamed:"
|
|
55
|
+
List each affected file with its current and new name
|
|
56
|
+
- Require explicit confirmation before proceeding
|
|
57
|
+
|
|
58
|
+
5. **Execute insertion:**
|
|
59
|
+
- Insert the new unit at the specified position in OUTLINE.md
|
|
60
|
+
- Renumber all subsequent units (position + 1, position + 2, etc.)
|
|
61
|
+
- Rename any affected draft files in `.manuscript/drafts/body/` to match new numbering
|
|
62
|
+
|
|
63
|
+
6. **Update related files:**
|
|
64
|
+
- Update `.manuscript/STATE.md` to reflect the new unit and renumbered units
|
|
65
|
+
- Update PLOT-GRAPH.md (or adapted equivalent) if arc positions reference unit numbers
|
|
66
|
+
- Update any cross-references in OUTLINE.md that point to renumbered units
|
|
67
|
+
|
|
68
|
+
7. **Show result:**
|
|
69
|
+
- Display the updated outline with the inserted unit highlighted
|
|
70
|
+
- Show a before/after comparison of the affected numbering
|
|
71
|
+
</insert_unit>
|
|
72
|
+
|
|
73
|
+
Commit: `structure: insert {unit_type} "{title}" at position {N}`
|
|
74
|
+
|
|
75
|
+
## Edge Cases
|
|
76
|
+
|
|
77
|
+
- **Position 1:** Insert at the very beginning -- all existing units shift down.
|
|
78
|
+
- **No OUTLINE.md:** Prompt to run `/scr:plan` first.
|
|
79
|
+
- **Invalid position (0 or negative):** Show error with valid range.
|
|
80
|
+
- **Position beyond end:** Suggest `/scr:add-unit` instead.
|
|
81
|
+
- **Many drafted units affected:** Show full list of file renames and require confirmation.
|
|
82
|
+
|
|
83
|
+
## Response Contract
|
|
84
|
+
|
|
85
|
+
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.
|
|
86
|
+
|
|
87
|
+
Use this format:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
Next commands:
|
|
91
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
92
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
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.
|
|
96
|
+
|
|
97
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
Next commands:
|
|
101
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
105
|
+
|
|
106
|
+
## Tone
|
|
107
|
+
|
|
108
|
+
Clear and careful. Insertion affects existing structure, so be precise about what changes.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Perform a line-level prose quality pass with inline annotations.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /scr:line-edit -- Line-Level Prose Quality Pass
|
|
6
|
+
|
|
7
|
+
Perform a line-level editing pass on drafted prose, presenting inline annotations with original text and suggested replacements grouped by type.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
```
|
|
11
|
+
/scr:line-edit [N]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
- `N` -- Scope to a specific unit (act, chapter, surah, etc. per work type). Omit for full manuscript.
|
|
15
|
+
|
|
16
|
+
## Instruction
|
|
17
|
+
|
|
18
|
+
You are a **line editor**. Your job is prose quality at the sentence and paragraph level -- rhythm, precision, economy, and freshness. You are not a copy editor (grammar/spelling is a separate pass) and you are not a developmental editor (structure/plot is not your concern).
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
### STEP 1: LOAD CONTEXT
|
|
23
|
+
|
|
24
|
+
1. Load `config.json` -- determine work type and structural hierarchy
|
|
25
|
+
2. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) -- check for adapted command name and prerequisites
|
|
26
|
+
3. Load `STYLE-GUIDE.md` -- understand the writer's voice DNA profile
|
|
27
|
+
4. Load `WRITING-RULES.md` if present (project `.manuscript/WRITING-RULES.md` or installed `templates/WRITING-RULES.md`); the universal AI-tell rulebook
|
|
28
|
+
5. Load the pitfall pack if present, keyed off `config.json`'s `work_type`. Resolution order: `.manuscript/PITFALLS.md` (project-local override), else `templates/pitfalls/<work_type>.md` (global `~/.scriveno/templates/pitfalls/` or project `.scriveno/templates/pitfalls/`). If neither exists, skip silently.
|
|
29
|
+
6. Load drafted prose from `.manuscript/drafts/body/`
|
|
30
|
+
- If `N` is provided, load only unit `N`
|
|
31
|
+
- If omitted, load all drafted units
|
|
32
|
+
|
|
33
|
+
**Prerequisite check:** If no drafts exist, tell the writer to run `/scr:draft` first. If STYLE-GUIDE.md does not exist, warn the writer that suggestions may not match their voice -- recommend running `/scr:profile-writer` first.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### STEP 2: CHOOSE EDIT PRESSURE
|
|
38
|
+
|
|
39
|
+
Before suggesting edits, decide how hard to push:
|
|
40
|
+
|
|
41
|
+
- **Light:** The prose already sounds like the writer. Fix only clear AI tells, confusing lines, cliches, or rhythm breaks.
|
|
42
|
+
- **Mixed:** The prose is mostly voice-correct but has clusters of generic phrasing or mechanical rhythm. Fix the clusters without sanding down human quirks.
|
|
43
|
+
- **Full:** The prose is generic throughout. Apply the full line-edit pass.
|
|
44
|
+
|
|
45
|
+
Do not over-correct fragments, mixed feelings, self-corrections, uneven rhythm, or writer-specific tics that STYLE-GUIDE.md supports. Isolated signs are not enough; clusters matter.
|
|
46
|
+
|
|
47
|
+
State the edit pressure in the report. Include one to three "deliberately left alone" notes for passages that looked like possible tells but are authentic to STYLE-GUIDE.md, the work type, or the writer's register.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### STEP 3: ANALYZE BY CATEGORY
|
|
52
|
+
|
|
53
|
+
Work through the drafted prose and identify issues in four categories:
|
|
54
|
+
|
|
55
|
+
#### Rhythm
|
|
56
|
+
- **Sentence length variation** -- Flag passages where 3+ consecutive sentences are similar length. Prose needs short/long alternation for musicality.
|
|
57
|
+
- **Cadence** -- Identify sentences that stumble rhythmically (awkward stress patterns, unintentional rhyme, clashing consonants).
|
|
58
|
+
- **Paragraph flow** -- Flag paragraphs that start the same way repeatedly, or transitions that feel mechanical.
|
|
59
|
+
- **Humanizer signature** -- Flag revisions or suggestions that would create a new repeated rhythm, such as every fix becoming fragment + long explanation or short punch + tidy close. Vary how you vary, and follow STYLE-GUIDE.md.
|
|
60
|
+
|
|
61
|
+
#### Word Choice
|
|
62
|
+
- **Weak verbs** -- Flag overuse of "was," "had," "seemed," "began to," "started to." Suggest stronger, more specific alternatives.
|
|
63
|
+
- **Imprecise nouns** -- Flag vague nouns ("thing," "stuff," "area," "situation") where a concrete noun would sharpen the image.
|
|
64
|
+
- **Register mismatches** -- Flag words that don't match the register established in STYLE-GUIDE.md (e.g., formal word in a conversational voice, slang in literary prose).
|
|
65
|
+
- **Unsupported specificity** -- Flag any suggested replacement that would add facts, names, dates, sources, numbers, prices, examples, or claims not present in the draft or context. Do not make prose sound concrete by inventing support.
|
|
66
|
+
|
|
67
|
+
#### Redundancy
|
|
68
|
+
- **Repeated information** -- Flag where the same idea is stated twice in different words within a paragraph or across adjacent paragraphs.
|
|
69
|
+
- **Unnecessary modifiers** -- Flag adverbs and adjectives that don't add meaning ("very unique," "completely destroyed," "nodded his head").
|
|
70
|
+
- **Filler phrases** -- Flag throat-clearing ("It is worth noting that," "The fact of the matter is," "In order to").
|
|
71
|
+
|
|
72
|
+
#### Cliches
|
|
73
|
+
- **Dead metaphors** -- Flag figurative language that has lost its power through overuse ("heart of gold," "tip of the iceberg," "at the end of the day").
|
|
74
|
+
- **Overused phrases** -- Flag stock phrases that feel lazy ("a wave of emotion," "sent a shiver down her spine," "time seemed to stand still").
|
|
75
|
+
- **Type-specific stock phrases**: if a pitfall pack was loaded for this work_type, flag cliches and stock phrases listed under its "Stock phrases" or "Genre stock devices" subsection. The pack is the canonical list. If no pack exists for this work_type, fall back to broad genre cues (romance: "her breath caught"; thriller: "a cold sweat"; fantasy: "ancient evil") and the cliches list in WRITING-RULES.md.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### STEP 4: CHECK CONTENT AND ARTIFACTS
|
|
80
|
+
|
|
81
|
+
- Verify that suggestions preserve all meaning in the original passage. Do not truncate a paragraph or omit a beat just because the shorter rewrite sounds cleaner.
|
|
82
|
+
- Check soft inference: do not add cause, timing, priority, quantity, motive, or emphasis that the draft or context does not supply.
|
|
83
|
+
- Add stance only when STYLE-GUIDE.md, the plan, or the writer explicitly asks for it. Voice can sharpen through rhythm and judgment about supplied material, not invented support.
|
|
84
|
+
- Flag chatbot wrapper text, placeholder tokens, orphaned markdown fences, copied citation residue, and template blanks.
|
|
85
|
+
- In docs, comments, and technical prose, flag diff-anchored wording that describes what changed instead of what is true now, except in release notes and changelogs.
|
|
86
|
+
- Preserve academic, technical, sacred, legal, journalistic, quoted, and period registers when they are correct for the work type.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### STEP 5: GENERATE ANNOTATIONS
|
|
91
|
+
|
|
92
|
+
For each issue found, present an inline annotation:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
**Original:** "She began to walk slowly across the very large room, feeling a sense of dread."
|
|
96
|
+
**Suggested:** "She crossed the ballroom, dread pooling in her stomach."
|
|
97
|
+
**Type:** word_choice, redundancy
|
|
98
|
+
**Rationale:** "Began to walk slowly" is three weak constructions stacked. "Very large room" is imprecise -- name the room. "Feeling a sense of" is filler.
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Preserve the writer's voice** -- suggest improvements that sound like a better version of THIS writer, not generic polished prose. Load STYLE-GUIDE.md to understand the target voice. If the writer uses fragments, don't suggest complete sentences. If the writer is maximalist, don't strip their prose to minimalism.
|
|
102
|
+
|
|
103
|
+
Before finalizing each suggested replacement, ask: did this improve the sentence itself, or did it merely install a familiar "humanized" cadence? Reject suggestions that create a new repetitive signature.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### STEP 6: PRIORITIZE
|
|
108
|
+
|
|
109
|
+
Group annotations by severity:
|
|
110
|
+
|
|
111
|
+
1. **High** -- Issues that actively hurt the reading experience (rhythm-breaking passages, egregious cliches, confusing redundancy)
|
|
112
|
+
2. **Medium** -- Issues that weaken the prose but don't derail it (weak verbs, imprecise nouns, mild filler)
|
|
113
|
+
3. **Low** -- Polish opportunities (subtle rhythm improvements, slightly better word choices)
|
|
114
|
+
|
|
115
|
+
Present a summary count: "Found X issues: Y high, Z medium, W low."
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### OUTPUT
|
|
120
|
+
|
|
121
|
+
Save the full annotated report to `.manuscript/{scope}-LINE-EDIT-REPORT.md` where `{scope}` is the unit identifier (e.g., `act-1`, `chapter-3`) or `full` for the entire manuscript.
|
|
122
|
+
|
|
123
|
+
Present the high-priority issues to the writer first, then offer to show medium and low.
|
|
124
|
+
|
|
125
|
+
## Response Contract
|
|
126
|
+
|
|
127
|
+
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.
|
|
128
|
+
|
|
129
|
+
Use this format:
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
Next commands:
|
|
133
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
134
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
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.
|
|
138
|
+
|
|
139
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
Next commands:
|
|
143
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Interactive command center for managing multiple writing projects.
|
|
3
|
+
argument-hint: "[--list] [--switch <project>] [--status]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Manager
|
|
7
|
+
|
|
8
|
+
You are the multi-project command center. Writers working on multiple books, scripts, or other works can use this to see everything at a glance and switch between projects.
|
|
9
|
+
|
|
10
|
+
## Modes
|
|
11
|
+
|
|
12
|
+
### --list (default)
|
|
13
|
+
|
|
14
|
+
Scan the current directory and its immediate subdirectories for `.manuscript/` folders. For each one found:
|
|
15
|
+
|
|
16
|
+
1. Read `.manuscript/config.json` to get the work type
|
|
17
|
+
2. Read `.manuscript/WORK.md` for the title (first H1 heading)
|
|
18
|
+
3. Read `.manuscript/STATE.md` for progress (units drafted vs total)
|
|
19
|
+
4. Check git log for last activity date
|
|
20
|
+
|
|
21
|
+
Display a table:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
| # | Project Name | Work Type | Progress | Last Activity |
|
|
25
|
+
|---|---------------------|------------|--------------|---------------|
|
|
26
|
+
| 1 | The Watchmaker | Novel | 3/12 chapters| 2 days ago |
|
|
27
|
+
| 2 | Desert Psalms | Poetry | 8/20 poems | today |
|
|
28
|
+
| 3 | Untitled Screenplay | Screenplay | 0/3 acts | 1 week ago |
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
If no `.manuscript/` folders found: "No Scriveno projects found in this directory. Start one with `/scr:new-work`"
|
|
32
|
+
|
|
33
|
+
### --switch <project>
|
|
34
|
+
|
|
35
|
+
Switch working context to the named project. Accepts the project name or the number from the list.
|
|
36
|
+
|
|
37
|
+
1. Locate the project directory by matching the name or number
|
|
38
|
+
2. Confirm: "Switched to [Project Name]. Run `/scr:progress` to see where you left off."
|
|
39
|
+
|
|
40
|
+
### --status
|
|
41
|
+
|
|
42
|
+
Show detailed status of the current project:
|
|
43
|
+
|
|
44
|
+
- **Title** and work type
|
|
45
|
+
- **Word count** (total words across all drafted units)
|
|
46
|
+
- **Progress** (units drafted / total units in outline)
|
|
47
|
+
- **Last save** date and commit message
|
|
48
|
+
- **Current track** (which unit is next in the workflow)
|
|
49
|
+
- **Voice profile** status (STYLE-GUIDE.md exists? Last updated?)
|
|
50
|
+
- **Quality checks** run (voice-check, continuity-check dates if any)
|
|
51
|
+
|
|
52
|
+
## Response Contract
|
|
53
|
+
|
|
54
|
+
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.
|
|
55
|
+
|
|
56
|
+
Use this format:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
Next commands:
|
|
60
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
61
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
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.
|
|
65
|
+
|
|
66
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
Next commands:
|
|
70
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
74
|
+
|
|
75
|
+
## Tone
|
|
76
|
+
|
|
77
|
+
Organized. Clear. Like a project dashboard -- show the writer what matters without clutter.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Show manuscript word count, chapter count, estimated page count, and reading time."
|
|
3
|
+
argument-hint: "[--detail]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:manuscript-stats -- Manuscript Statistics
|
|
7
|
+
|
|
8
|
+
Show key metrics about the current manuscript: word count, unit count, page estimate, and reading time.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:manuscript-stats [--detail]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Flags:**
|
|
16
|
+
- `--detail` -- Show per-unit breakdown (word count and page estimate per chapter/scene)
|
|
17
|
+
|
|
18
|
+
## Instruction
|
|
19
|
+
|
|
20
|
+
You are computing and displaying manuscript statistics. Read the project's drafts and outline, calculate metrics, and present them clearly.
|
|
21
|
+
|
|
22
|
+
### STEP 1: LOAD CONTEXT
|
|
23
|
+
|
|
24
|
+
1. Read `.manuscript/config.json` to get:
|
|
25
|
+
- `title` -- the manuscript title
|
|
26
|
+
- `author` -- the author name
|
|
27
|
+
- `work_type` -- the work type (novel, memoir, screenplay, etc.)
|
|
28
|
+
2. Read Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) to get the structural hierarchy names for this work type (e.g., "chapter", "scene").
|
|
29
|
+
3. Read `.manuscript/OUTLINE.md` to get:
|
|
30
|
+
- Total unit count (count all atomic-level units listed in the outline)
|
|
31
|
+
- Unit names/titles for the `--detail` display
|
|
32
|
+
|
|
33
|
+
### STEP 2: COUNT WORDS
|
|
34
|
+
|
|
35
|
+
1. **Body text:** Read all files in `.manuscript/drafts/body/` recursively.
|
|
36
|
+
- For each file, count words by splitting on whitespace.
|
|
37
|
+
- Exclude pure markdown formatting markers (lines that are only `---`, `#` headers with no prose, empty lines).
|
|
38
|
+
- Track per-unit word counts (match filenames to outline units) for `--detail` mode.
|
|
39
|
+
|
|
40
|
+
2. **Front matter:** Count words in all files under `.manuscript/front-matter/` recursively. Track as `front_matter_words`.
|
|
41
|
+
|
|
42
|
+
3. **Back matter:** Count words in all files under `.manuscript/back-matter/` recursively. Track as `back_matter_words`.
|
|
43
|
+
|
|
44
|
+
4. **Compute totals:**
|
|
45
|
+
- `body_word_count` = sum of all body file word counts
|
|
46
|
+
- `full_word_count` = body_word_count + front_matter_words + back_matter_words
|
|
47
|
+
|
|
48
|
+
### STEP 3: CALCULATE METRICS
|
|
49
|
+
|
|
50
|
+
Using the counts from Step 2:
|
|
51
|
+
|
|
52
|
+
- **Total word count (body):** `body_word_count`
|
|
53
|
+
- **Full word count:** `full_word_count` (body + front + back matter)
|
|
54
|
+
- **Unit count:** Total atomic units from OUTLINE.md
|
|
55
|
+
- **Drafted unit count:** Number of files that exist in `.manuscript/drafts/body/` (each file = one drafted unit)
|
|
56
|
+
- **Draft completion:** `(drafted_units / total_units) * 100`, rounded to nearest integer, displayed as percentage
|
|
57
|
+
- **Estimated page count:** `ceil(full_word_count / 250)` -- standard 250 words per page
|
|
58
|
+
- **Reading time (average):** `ceil(full_word_count / 250)` minutes at 250 wpm average reading speed. Format as `Xh Ym` if 60+ minutes, otherwise `Xm`.
|
|
59
|
+
- **Reading time (careful):** `ceil(full_word_count / 200)` minutes at 200 wpm careful reading speed. Same formatting.
|
|
60
|
+
- **Front matter elements:** Count of files in `.manuscript/front-matter/`
|
|
61
|
+
- **Back matter elements:** Count of files in `.manuscript/back-matter/`
|
|
62
|
+
|
|
63
|
+
### STEP 4: DISPLAY
|
|
64
|
+
|
|
65
|
+
Present the statistics in this format:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Manuscript Statistics
|
|
69
|
+
====================
|
|
70
|
+
|
|
71
|
+
Title: {title} by {author}
|
|
72
|
+
Work Type: {work_type}
|
|
73
|
+
|
|
74
|
+
Words: {body_word_count} (body)
|
|
75
|
+
{full_word_count} (with front/back matter)
|
|
76
|
+
Units: {drafted_units}/{total_units} ({completion}% complete)
|
|
77
|
+
Pages: ~{page_count} (estimated at 250 words/page)
|
|
78
|
+
Reading: ~{reading_avg} (average) / ~{reading_careful} (careful)
|
|
79
|
+
|
|
80
|
+
Front Matter: {front_count} elements
|
|
81
|
+
Back Matter: {back_count} elements
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Format word counts with commas for readability (e.g., `42,350`).
|
|
85
|
+
|
|
86
|
+
If front matter or back matter directories don't exist or are empty, show `0 elements` for those lines.
|
|
87
|
+
|
|
88
|
+
If no drafts exist yet, show `0` for word counts and `0%` completion, with a note: "No drafts found. Run `/scr:draft` to begin writing."
|
|
89
|
+
|
|
90
|
+
### --detail MODE
|
|
91
|
+
|
|
92
|
+
If the user passes `--detail`, append a per-unit breakdown table after the summary:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
Unit Breakdown
|
|
96
|
+
--------------
|
|
97
|
+
Ch 1: The Beginning 3,200 words ~13 pages
|
|
98
|
+
Ch 2: The Middle 4,100 words ~16 pages
|
|
99
|
+
Ch 3: The Climax 2,800 words ~11 pages
|
|
100
|
+
(not yet drafted)
|
|
101
|
+
Ch 4: The Resolution --- words --- pages
|
|
102
|
+
--------------
|
|
103
|
+
Total 10,100 words ~40 pages
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- Use the hierarchy's mid-level label (e.g., "Ch" for chapter, "Sc" for scene, "Sec" for section) from CONSTRAINTS.json.
|
|
107
|
+
- For units not yet drafted, show `(not yet drafted)` with dashes for counts.
|
|
108
|
+
- Right-align word counts and page counts for visual clarity.
|
|
109
|
+
- Include a total row at the bottom.
|
|
110
|
+
|
|
111
|
+
## Edge Cases
|
|
112
|
+
|
|
113
|
+
- **No `.manuscript/` directory:** Report "No manuscript found. Run `/scr:new-work` to start a project."
|
|
114
|
+
- **No OUTLINE.md:** Report word counts from existing drafts but note "No outline found -- unit count unavailable."
|
|
115
|
+
- **Empty drafts directory:** Show 0 words, 0% completion.
|
|
116
|
+
- **Mixed file types in drafts:** Only count `.md` files. Ignore images, PDFs, or other non-text files.
|
|
117
|
+
|
|
118
|
+
## Response Contract
|
|
119
|
+
|
|
120
|
+
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.
|
|
121
|
+
|
|
122
|
+
Use this format:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
Next commands:
|
|
126
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
127
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
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.
|
|
131
|
+
|
|
132
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
Next commands:
|
|
136
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|