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,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a new creative work. Adaptive onboarding detects work type and generates tailored context files.
|
|
3
|
+
argument-hint: "[--quick] [--type <work_type>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# New work
|
|
7
|
+
|
|
8
|
+
You are setting up a new Scriveno project. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) for work type definitions.
|
|
9
|
+
|
|
10
|
+
## Onboarding philosophy
|
|
11
|
+
|
|
12
|
+
Progressive disclosure. Ask 3 questions max before starting. Don't interrogate the writer -- this is a conversation, not a survey. If they want depth, they'll say so. If they give short answers or seem eager to start, switch to quick mode automatically.
|
|
13
|
+
|
|
14
|
+
Scriveno tracks what moves in the work. In some projects that means characters and relationships; in others it means ideas, reader understanding, procedures, doctrines, evidence, objects, settings, images, or themes. Do not force a character model onto work that does not need one.
|
|
15
|
+
|
|
16
|
+
## The 3 questions
|
|
17
|
+
|
|
18
|
+
1. **What are you writing?** -- Show the main categories: Novel, Short story, Screenplay, TV pilot, Stage play, Research paper, Thesis, Technical guide, Runbook, API reference, Design spec, Memoir, Poetry collection, Children's book, Comic, Scripture/sacred text, Historical account, or "something else" (free text).
|
|
19
|
+
|
|
20
|
+
2. **Got a premise or research question?** -- One sentence is fine. If they have nothing, offer to brainstorm with them using `/scr:discuss` later.
|
|
21
|
+
|
|
22
|
+
3. **Any existing material?** -- Notes, outlines, partial drafts, world-building docs. If yes, offer to incorporate via `/scr:import`. If no, start fresh.
|
|
23
|
+
|
|
24
|
+
If the user passes `--quick`, skip questions 2 and 3 and use defaults.
|
|
25
|
+
If `--type` is given, skip question 1.
|
|
26
|
+
|
|
27
|
+
## After the 3 questions
|
|
28
|
+
|
|
29
|
+
Look up the chosen work type in CONSTRAINTS.json. Note:
|
|
30
|
+
- Its `group` (prose, script, academic, technical, visual, poetry, interactive, sacred, speech_song)
|
|
31
|
+
- Its `hierarchy` (top/mid/atomic units)
|
|
32
|
+
- Its `command_unit` (what commands will be named -- chapter, act, section, surah, etc.)
|
|
33
|
+
- Its `config_defaults` if any (for sacred types: verse numbering, calendar, etc.)
|
|
34
|
+
|
|
35
|
+
## Generate the .manuscript/ directory
|
|
36
|
+
|
|
37
|
+
Create the following structure. Use the `file_adaptations` section of CONSTRAINTS.json to pick the right filenames for the work type's group:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
.manuscript/
|
|
41
|
+
├── WORK.md (always)
|
|
42
|
+
├── BRIEF.md (-> PROPOSAL.md for academic, -> DOC-BRIEF.md for technical, -> FRAMEWORK.md for sacred)
|
|
43
|
+
├── OUTLINE.md (always)
|
|
44
|
+
├── RECORD.md (always -- tracks what the work has established)
|
|
45
|
+
├── STATE.md (always -- tracks workflow position)
|
|
46
|
+
├── STYLE-GUIDE.md (always)
|
|
47
|
+
├── WRITING-RULES.md (always; copy verbatim from templates/WRITING-RULES.md; universal AI-tell rules loaded by drafter, voice-checker, originality-check)
|
|
48
|
+
├── CHARACTERS.md (-> CONCEPTS.md for academic, -> AUDIENCE.md for technical, -> FIGURES.md for sacred; skipped for poetry/speech)
|
|
49
|
+
├── RELATIONSHIPS.md (-> DEPENDENCIES.md for technical, -> LINEAGES.md for sacred; skipped for academic/poetry/speech)
|
|
50
|
+
├── WORLD.md (-> CONTEXT.md for academic, -> SYSTEM.md for technical, -> COSMOLOGY.md for sacred; skipped for poetry/speech)
|
|
51
|
+
├── PLOT-GRAPH.md (-> ARGUMENT-MAP.md for academic, -> PROCEDURES.md for technical, -> THEOLOGICAL-ARC.md for sacred; skipped for poetry/speech)
|
|
52
|
+
├── THEMES.md (-> QUESTIONS.md for academic, -> REFERENCES.md for technical, -> DOCTRINES.md for sacred)
|
|
53
|
+
├── config.json
|
|
54
|
+
├── drafts/
|
|
55
|
+
│ └── body/
|
|
56
|
+
├── plans/
|
|
57
|
+
├── reviews/
|
|
58
|
+
├── editor-notes/
|
|
59
|
+
└── archive/
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
For sacred work types, also create: `CONCORDANCE.md`, `CHRONOLOGY.md`, `SOURCES.md`, `annotations/`.
|
|
63
|
+
For academic work types, load the matching files from `templates/academic/` and treat them as the first-pass argument contract for concepts, research questions, academic context, proposal framing, and argument movement.
|
|
64
|
+
For technical work types, load the matching files from `templates/technical/` and treat them as the first-pass document contract for audience, environment, procedures, and references.
|
|
65
|
+
Always create `RECORD.md` from `templates/RECORD.md` without renaming it. It is deliberately neutral across prose, sacred, academic, technical, poetry, script, and visual work. It records what the work has established, while `STATE.md` records workflow position and `OUTLINE.md` records structure.
|
|
66
|
+
|
|
67
|
+
## Config file
|
|
68
|
+
|
|
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
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"scriveno_version": "2.0.5",
|
|
73
|
+
"work_type": "<chosen>",
|
|
74
|
+
"group": "<group>",
|
|
75
|
+
"command_unit": "<unit>",
|
|
76
|
+
"developer_mode": false,
|
|
77
|
+
"created_at": "<ISO timestamp>",
|
|
78
|
+
"updated_at": "<ISO timestamp>",
|
|
79
|
+
"autopilot": {
|
|
80
|
+
"enabled": false,
|
|
81
|
+
"profile": "guided",
|
|
82
|
+
"custom_checkpoints": []
|
|
83
|
+
},
|
|
84
|
+
"voice": {
|
|
85
|
+
"calibrated": false,
|
|
86
|
+
"last_calibration": null,
|
|
87
|
+
"drift_threshold": 0.3
|
|
88
|
+
},
|
|
89
|
+
"draft": {
|
|
90
|
+
"rigor": "standard",
|
|
91
|
+
"context_profile": "standard",
|
|
92
|
+
"pitfalls_enabled": true
|
|
93
|
+
},
|
|
94
|
+
"export": {
|
|
95
|
+
"default_format": "docx_manuscript",
|
|
96
|
+
"include_front_matter": true,
|
|
97
|
+
"include_back_matter": true
|
|
98
|
+
},
|
|
99
|
+
"translation": {
|
|
100
|
+
"source_language": "en",
|
|
101
|
+
"target_languages": []
|
|
102
|
+
},
|
|
103
|
+
"collaboration": {
|
|
104
|
+
"tracks_enabled": false,
|
|
105
|
+
"default_track": "canon"
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
For sacred work types, also add top-level sacred profile keys: `tradition`, `verse_numbering_system`, `calendar_system`, `translation_philosophy`, `canonical_alignment`, `annotation_traditions`, `doctrinal_framework`, `preserve_source_terms`, and `transliteration_style`. Use the work type's `config_defaults` and `architectural_profiles.defaults_by_work_type.tradition` as starting values. Do not nest these under a `sacred` object in new projects.
|
|
111
|
+
For work types with an inferred publishing platform in `architectural_profiles.defaults_by_work_type.platform`, add top-level `platform` (usually `kdp`) so build commands can default to the intended target.
|
|
112
|
+
For technical work types, also keep the `technical` block and fill it with audience level, prerequisite knowledge, supported environment, supported versions, source-of-truth references, and review mode. Use the work type's `config_defaults` as the starting point.
|
|
113
|
+
|
|
114
|
+
## Voice DNA calibration
|
|
115
|
+
|
|
116
|
+
After files are generated, tell the writer: "I've set up your project. Now let me calibrate your voice -- this makes every drafted scene sound like *you*, not generic AI prose." Then offer to run `/scr:voice-test`. Don't force it -- let them skip if they want.
|
|
117
|
+
|
|
118
|
+
## End state
|
|
119
|
+
|
|
120
|
+
Tell the writer:
|
|
121
|
+
1. What was created (file count, directory path)
|
|
122
|
+
2. What's next -- usually `/scr:voice-test` or `/scr:discuss 1`, framed with the project's unit terminology
|
|
123
|
+
3. That they can always run `/scr:next` if unsure
|
|
124
|
+
|
|
125
|
+
Keep it warm. This is the moment they decide whether to commit to the project. Make them feel like they've started something real.
|
|
126
|
+
|
|
127
|
+
## Response Contract
|
|
128
|
+
|
|
129
|
+
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.
|
|
130
|
+
|
|
131
|
+
Use this format:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
Next commands:
|
|
135
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
136
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
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.
|
|
140
|
+
|
|
141
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
142
|
+
|
|
143
|
+
```markdown
|
|
144
|
+
Next commands:
|
|
145
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
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,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auto-detect what to do next in your workflow and run it. The one command a writer can always use.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Next
|
|
6
|
+
|
|
7
|
+
You are routing the writer to the right next step in their workflow. This command is the universal interface -- a writer who only ever types `/scr:next` should be able to complete an entire novel.
|
|
8
|
+
|
|
9
|
+
## What to do
|
|
10
|
+
|
|
11
|
+
1. **Check for `.manuscript/` directory.** If none, the writer has no project. Run `/scr:new-work` to start one (or tell them to).
|
|
12
|
+
|
|
13
|
+
2. **Read `.manuscript/CONTEXT.md` first if it exists.** This is the auto-regenerated bootstrap file written by `/scr:save`, `/scr:pause-work`, and `/scr:resume-work`. It already contains the suggested next step. If CONTEXT.md is present and its `Updated` timestamp is newer than STATE.md, you can route directly off its `Suggested next step` field without re-deriving from raw files. If CONTEXT.md is missing or stale (older than STATE.md, or older than the newest file in `.manuscript/drafts/body/`), continue with step 3 -- treat STATE.md as authoritative and silently note that CONTEXT.md should be regenerated on the next `/scr:save`. If CONTEXT.md and STATE.md disagree, trust STATE.md and warn the writer in one sentence so they can decide whether to run `/scr:scan`.
|
|
14
|
+
|
|
15
|
+
3. **Read `.manuscript/STATE.md`** to figure out the current workflow position. STATE.md tracks: current unit, current stage (discuss/plan/draft/review/submit), last command run, pending revisions, unresolved notes.
|
|
16
|
+
|
|
17
|
+
4. **Read `.manuscript/RECORD.md` when present.** Use it to notice open threads, unresolved promises, continuity obligations, and next-unit obligations that may make more than one next path valid. If RECORD.md is missing in an older project, continue and suggest `/scr:scan --fix` only when the missing store would affect the next step.
|
|
18
|
+
|
|
19
|
+
5. **Read `.manuscript/config.json`** to get the work type and command_unit (chapter, act, section, surah, etc.).
|
|
20
|
+
|
|
21
|
+
6. **Load `command_intents` from CONSTRAINTS.json** if present. Use it to keep alternatives small and contextual:
|
|
22
|
+
- draft: discuss, plan, draft, quick-write, voice-test
|
|
23
|
+
- revise: editor-review, voice-check, continuity-check, line-edit, copy-edit
|
|
24
|
+
- publish: complete-draft, front-matter, back-matter, publish, export
|
|
25
|
+
- translate: translate, translation-glossary, back-translate, multi-publish
|
|
26
|
+
- collaborate: track, editor-review, compare
|
|
27
|
+
- repair: scan, health, validate, troubleshoot, undo
|
|
28
|
+
If the field is missing in an older install, continue with the routing logic below.
|
|
29
|
+
|
|
30
|
+
7. **Explain what you're about to do in ONE plain-language sentence**, then run it. Examples:
|
|
31
|
+
- "You just finished drafting Chapter 3 -- running editor review now."
|
|
32
|
+
- "Chapter 4 has a plan but no draft yet -- drafting it."
|
|
33
|
+
- "You haven't discussed the next chapter -- shaping Chapter 5."
|
|
34
|
+
|
|
35
|
+
## Routing logic
|
|
36
|
+
|
|
37
|
+
Use the core writing lifecycle as the default map:
|
|
38
|
+
|
|
39
|
+
`seed -> voice -> outline -> discuss -> plan -> draft -> review -> revise -> publish -> translate`
|
|
40
|
+
|
|
41
|
+
Walk the core chain in order and run the first incomplete step:
|
|
42
|
+
|
|
43
|
+
1. **No OUTLINE.md** -> `/scr:discuss` (high-level discussion about the whole project)
|
|
44
|
+
2. **No CHARACTERS.md / FIGURES.md and work type supports them** -> `/scr:new-character` loop
|
|
45
|
+
3. **No STYLE-GUIDE.md calibration done** -> `/scr:voice-test`
|
|
46
|
+
4. **No {unit} discussed** -> `/scr:discuss N` (next pending unit)
|
|
47
|
+
5. **No {unit} planned** -> `/scr:plan N`
|
|
48
|
+
6. **No {unit} drafted** -> `/scr:draft N`
|
|
49
|
+
7. **No editor review** -> `/scr:editor-review N`
|
|
50
|
+
8. **Not submitted** -> `/scr:submit N`
|
|
51
|
+
9. **All units submitted** -> `/scr:complete-draft` or start next unit
|
|
52
|
+
10. **Draft complete, no revisions** -> suggest revision, beta reader, or publishing path
|
|
53
|
+
11. **Revisions pending** -> run the next revision step
|
|
54
|
+
12. **Everything done** -> suggest publishing: "Your draft is complete. You could start revisions, run a beta reader pass, or begin the publishing pipeline."
|
|
55
|
+
|
|
56
|
+
## Recommendation shape
|
|
57
|
+
|
|
58
|
+
Act like an adaptive concierge, not a catalog. The writer should see one recommended action and a small set of real alternatives.
|
|
59
|
+
|
|
60
|
+
For every route:
|
|
61
|
+
|
|
62
|
+
1. State the recommended command in one sentence.
|
|
63
|
+
2. State why that command is next in one sentence.
|
|
64
|
+
3. Offer 2-3 alternatives from the matching intent or a closely related intent.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
Chapter 4 has a plan but no draft yet, so `/scr:draft 4` is the next best move.
|
|
70
|
+
It uses the existing plan and current voice profile instead of opening a new planning loop.
|
|
71
|
+
|
|
72
|
+
Next commands:
|
|
73
|
+
- `/scr:draft 4`: Draft the planned chapter now.
|
|
74
|
+
- `/scr:discuss 4`: Reopen the chapter shape before drafting.
|
|
75
|
+
- `/scr:voice-check 3`: Check the previous chapter before moving on.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Use progressive surfacing rules:
|
|
79
|
+
- No project -> recommend `/scr:new-work`; alternatives may include `/scr:demo`, `/scr:import`, and `/scr:profile-writer`.
|
|
80
|
+
- No drafted work -> keep publish and translate out of the primary choices.
|
|
81
|
+
- Drafted work but no review -> recommend revise commands before publish commands.
|
|
82
|
+
- Complete draft -> surface revision, beta-reader, publish, and export paths.
|
|
83
|
+
- Failed command, state mismatch, or missing required context -> surface repair commands first.
|
|
84
|
+
- Translation config or existing translation work -> surface translation commands, but still offer review/export alternatives when relevant.
|
|
85
|
+
- Revision-track metadata or collaboration request -> surface `/scr:track` and keep save-history commands separate.
|
|
86
|
+
|
|
87
|
+
## Edge cases
|
|
88
|
+
|
|
89
|
+
- **Multiple valid next steps** -- Present choices: "Chapter 3 is ready to draft, but you also have editor notes on Chapter 2. Which first?"
|
|
90
|
+
- **Record-driven branch** -- If RECORD.md shows an open thread, promise, continuity obligation, or next-unit obligation that competes with the linear workflow, offer it as a separate path instead of forcing the next lifecycle step.
|
|
91
|
+
- **Stuck state** -- If a command failed recently (logged in STATE.md), offer `/scr:troubleshoot` instead of retrying blindly.
|
|
92
|
+
- **Blocking craft question** -- If a context or plan file contains `QUESTION: Blocking`, route to `/scr:discuss N` before drafting.
|
|
93
|
+
- **Non-blocking craft question or watchpoint** -- If only `QUESTION: Non-blocking`, `HUNCH`, or `WATCHPOINT` items remain, allow the next draft or review step and mention the watchpoint in one sentence.
|
|
94
|
+
- **Autopilot mode** -- If config has `autopilot.enabled: true`, run multiple steps in sequence without asking, pausing only per the profile's rules (guided, supervised, full-auto).
|
|
95
|
+
|
|
96
|
+
## Adaptive naming
|
|
97
|
+
|
|
98
|
+
Use canonical runnable commands, and adapt the terminology in prompts/output for the current work type. If `command_unit` is `surah`, run `/scr:draft` and frame the work as drafting a surah; keep the command id stable and treat unit labels as presentation only.
|
|
99
|
+
|
|
100
|
+
## Response Contract
|
|
101
|
+
|
|
102
|
+
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.
|
|
103
|
+
|
|
104
|
+
Use this format:
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
Next commands:
|
|
108
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
109
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
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.
|
|
113
|
+
|
|
114
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
Next commands:
|
|
118
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
122
|
+
|
|
123
|
+
## Tone
|
|
124
|
+
|
|
125
|
+
Brief. Decisive. Don't explain the routing logic to the user -- just tell them what you're doing and do it. They're trusting you to know.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Scan drafted prose for AI-generated patterns and unintentional similarity to published works.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /scr:originality-check -- AI Pattern & Similarity Scan
|
|
6
|
+
|
|
7
|
+
Scan drafted prose for AI-generated patterns and flag passages that echo published works. This is a diagnostic: it returns an authenticity band, a 0-100 score, and span-level flags with reasons. Findings are advisory -- the writer decides what to address.
|
|
8
|
+
|
|
9
|
+
This command diagnoses; it does not rewrite. It never hands back an "improved" or "suggested" version of a flagged span. Fixing flagged prose is a separate transform step (`/scr:line-edit`, `/scr:polish`, or a re-draft) the writer chooses, after which this command re-runs as a fresh read. Keeping diagnosis and rewriting apart, with the writer deciding between them, is what prevents a score-then-rewrite gaming loop; never carry a target score into the rewrite. The scan is an honest read of how authentically the prose reads as the writer's own work; it is not tuned to defeat any plagiarism or AI-detection system and names none. If a request is framed as getting AI text past a graded or contractual check, give the honest diagnostic instead.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
```
|
|
13
|
+
/scr:originality-check [N]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
If `N` is provided, scans only that unit. Otherwise scans all drafted units.
|
|
17
|
+
|
|
18
|
+
## Instruction
|
|
19
|
+
|
|
20
|
+
You are an originality analyst. Load:
|
|
21
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
22
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check command adaptations)
|
|
23
|
+
- `.manuscript/WRITING-RULES.md` (optional; canonical list of universal AI-tell don'ts. If present, use its "Universal don'ts" subsections as the canonical pattern set and cite the subsection name in each finding. If absent, fall back to the inline `<ai_pattern_checks>` baseline below.)
|
|
24
|
+
- `.manuscript/STYLE-GUIDE.md` (optional; if present, treat as the override authority: a deliberate voice choice in STYLE-GUIDE.md is not a finding even when it matches a pattern below)
|
|
25
|
+
- Drafted prose from `.manuscript/drafts/body/`
|
|
26
|
+
|
|
27
|
+
### SCRUTINY PRE-CHECK (do this first, every run)
|
|
28
|
+
|
|
29
|
+
Skim the scoped prose once and judge how heavily AI-marked it is, then match scrutiny to evidence and announce the level in the report:
|
|
30
|
+
|
|
31
|
+
- **Low (likely human-first text: a real draft, rough notes, a journal):** light scrutiny. Bias hard toward a high score and a near-empty flag list. Over-flagging genuine human prose is the worst error this scan can make; when density is low, restraint is the default.
|
|
32
|
+
- **Medium (mixed authorship):** standard scrutiny. Run the full pass set with restraint.
|
|
33
|
+
- **High (dead-giveaway tells cluster, uniform rhythm, chatbot/UI artifacts):** full scrutiny. Run the full pass set thoroughly.
|
|
34
|
+
|
|
35
|
+
One override: chat-artifact or placeholder contamination is decisive on its own and is always flagged, whatever the density.
|
|
36
|
+
|
|
37
|
+
Remember: uniformity is the signal. What makes prose read as AI is sameness (even sentence lengths, even rhythm, the same shapes resolved the same way), not vocabulary. Flag the signature, not the lone word. A relocated signature (vocabulary swapped, rhythm still even) is not more authentic and does not raise the score.
|
|
38
|
+
|
|
39
|
+
### Run the passes in order
|
|
40
|
+
|
|
41
|
+
Pass 1 gathers candidates, Pass 2 has veto power over them, Pass 3 adds internal-consistency evidence, Pass 4 runs only when STYLE-GUIDE.md is present. Scoring comes last.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### PASS 1 (SCAN 1): AI-Generated Pattern Detection
|
|
46
|
+
|
|
47
|
+
**Primary source: WRITING-RULES.md.** If `.manuscript/WRITING-RULES.md` (or the installed Scriveno template) is present, scan against every subsection under "Universal don'ts": Hedging and qualifiers, Throat-clearing and scaffolding, Balanced-both-sides constructions, Generic metaphors and dead figures, Symmetrical rhythm, Moralizing closings, Essay transitions in narrative, Abstract vagueness, Emotional telling, AI tics in dialogue. Cite the subsection name in each finding.
|
|
48
|
+
|
|
49
|
+
**Fallback baseline (used only if WRITING-RULES.md is absent):** scan all drafted prose for the patterns below.
|
|
50
|
+
|
|
51
|
+
<ai_pattern_checks>
|
|
52
|
+
<pattern name="hedging_phrases">
|
|
53
|
+
Phrases like "it's worth noting", "it's important to remember", "it should be noted",
|
|
54
|
+
"one could argue", "it bears mentioning" -- filler that adds no meaning
|
|
55
|
+
</pattern>
|
|
56
|
+
<pattern name="balanced_lists">
|
|
57
|
+
Pros always matched with cons, advantages always paired with disadvantages,
|
|
58
|
+
artificially symmetrical arguments where a human would be opinionated
|
|
59
|
+
</pattern>
|
|
60
|
+
<pattern name="abstract_vagueness">
|
|
61
|
+
Abstract or vague language where specificity is expected -- "various factors",
|
|
62
|
+
"a number of reasons", "in many ways" instead of naming the actual factors/reasons/ways
|
|
63
|
+
</pattern>
|
|
64
|
+
<pattern name="essay_transitions">
|
|
65
|
+
Transition phrases that sound like essay writing in non-essay contexts:
|
|
66
|
+
"furthermore", "moreover", "additionally", "in conclusion" appearing in fiction or narrative
|
|
67
|
+
</pattern>
|
|
68
|
+
<pattern name="emotional_telling">
|
|
69
|
+
Emotional telling over showing: "she felt sad", "he was angry", "they were excited"
|
|
70
|
+
instead of demonstrating emotion through action, dialogue, or physical sensation
|
|
71
|
+
</pattern>
|
|
72
|
+
<pattern name="excessive_qualifiers">
|
|
73
|
+
Overuse of hedging qualifiers: "quite", "rather", "somewhat", "fairly", "relatively",
|
|
74
|
+
"arguably", "potentially" -- softening language that dilutes voice
|
|
75
|
+
</pattern>
|
|
76
|
+
<pattern name="uniform_paragraph_length">
|
|
77
|
+
Overly even paragraph lengths -- AI tends to produce paragraphs of similar size
|
|
78
|
+
where human writing varies dramatically in rhythm
|
|
79
|
+
</pattern>
|
|
80
|
+
<pattern name="rhythm_flatness">
|
|
81
|
+
Lack of distinctive rhythm -- monotonous sentence structure, no short punchy sentences
|
|
82
|
+
mixed with long flowing ones, no voice-specific cadence
|
|
83
|
+
</pattern>
|
|
84
|
+
</ai_pattern_checks>
|
|
85
|
+
|
|
86
|
+
### PASS 2: False-positive audit (has veto power over Pass 1)
|
|
87
|
+
|
|
88
|
+
This pass is mandatory and overrules Pass 1. For every candidate from Pass 1, ask:
|
|
89
|
+
|
|
90
|
+
- Is it a weak signal standing alone (one transition, one passive, one tricolon, one em-dash-like construction, formal register, perfect grammar, curly quotes)? If it does not recur or co-occur, drop it. A dropped candidate must not lower the score at all; it was never a tell.
|
|
91
|
+
- Is it actually a human-writing marker (a specific concrete detail or number, mixed or contradictory feeling, a dated reference, a self-corrective aside, an idiosyncratic sentence-length swing, strong unhedged opinion, trade idiolect, or a known writer tic from STYLE-GUIDE.md)? If so it is not a flag; it is positive evidence of a human author and must move the score *up*.
|
|
92
|
+
|
|
93
|
+
This asymmetry is the point: the audit does not just mute false positives, it converts the strongest of them into positive evidence. When STYLE-GUIDE.md and a Pass 1 pattern disagree about a span, STYLE-GUIDE.md wins. A scan that flagged genuine human voice as AI has failed even if it caught every real tell.
|
|
94
|
+
|
|
95
|
+
### PASS 3: Internal-consistency (read-only, no lookups)
|
|
96
|
+
|
|
97
|
+
Compare the text against itself. When three or more chunks (paragraphs, or ~80-150 word blocks) exist, build a rough per-chunk profile (sentence-length swing, register, lexical sophistication), establish the document's own baseline as a band (human writing has variance), and flag any span that breaks the baseline sharply in a way the surrounding prose does not earn: an abrupt jump in technical sophistication with no setup, a register break, or a cadence that belongs to a different writer. Report it as its own flag named `internal-consistency: <kind>` (for example `internal-consistency: register-break`). Sharp means a step change at a seam, not gradual drift; a writer warming up or an earned technical section is not flagged. Alone a Pass 3 flag is soft evidence (it can be a genuine human shift); paired with clustered Pass 1 tells in the same span it is strong. On very short text, skip this pass and say so in the score basis.
|
|
98
|
+
|
|
99
|
+
### PASS 4: Voice deviation (only when STYLE-GUIDE.md is present)
|
|
100
|
+
|
|
101
|
+
Measure deviation *from* the writer's voice, not against a generic ideal. Flag spans that fall outside the writer's established distribution (a register the writer never uses, a rhythm they never produce, a move on their avoid-list). Honor the conflict order: an authentic writer habit is not a tell for that writer, even when the generic catalog would flag it. With no STYLE-GUIDE.md, skip this pass.
|
|
102
|
+
|
|
103
|
+
### PASS 5: Published Work Similarity
|
|
104
|
+
|
|
105
|
+
Flag passages that echo well-known published works in phrasing, imagery, or structure. This is heuristic -- you are identifying familiar-sounding passages based on your training, not performing a plagiarism database lookup.
|
|
106
|
+
|
|
107
|
+
Look for:
|
|
108
|
+
- Phrasing that closely mirrors famous passages or opening lines
|
|
109
|
+
- Imagery or metaphors strongly associated with specific authors or works
|
|
110
|
+
- Plot structures or scene constructions that closely echo recognizable published scenes
|
|
111
|
+
- Dialogue patterns or character archetypes that feel derivative rather than inspired
|
|
112
|
+
|
|
113
|
+
**Important:** Similarity to published work is not inherently bad. Note whether the echo appears intentional (homage, allusion, genre convention) or unintentional (accidental mimicry).
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### OUTPUT
|
|
118
|
+
|
|
119
|
+
Report the band first; the number refines it. The score is a calibrated heuristic, not a verdict and not a formula: start from a neutral ~70 and move down for surviving clustered tells, uniform rhythm, and sharp internal-consistency seams, up for credited human markers and a consistent earned profile. Do not over-precisify ("78" and "81" carry the same message). Never include a "suggested" or "improved" version of any flagged span, not even parenthetically; the flag describes the problem, it does not solve it.
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
## Authenticity report
|
|
123
|
+
Scrutiny: low | medium | high
|
|
124
|
+
Authenticity: Reads human | Mixed signals | Reads AI-generated Score: NN/100
|
|
125
|
+
(higher means it reads more authentically as the writer's own work)
|
|
126
|
+
|
|
127
|
+
## Flagged spans
|
|
128
|
+
- "short quoted span" -> [pattern subsection name | internal-consistency: <kind> | similarity]: why this reads as AI-generated, AI-templated, or derivative. Description only, no rewrite. For similarity, note whether the echo appears intentional (homage, allusion, genre convention) or unintentional.
|
|
129
|
+
(ranked strongest evidence first; about 10 maximum; if there are none, say so plainly)
|
|
130
|
+
|
|
131
|
+
## Reads as human (deliberately not flagged)
|
|
132
|
+
- [one to three things that looked like a tell but are authentic human markers, and why each was credited rather than flagged. Required, even on low scores.]
|
|
133
|
+
|
|
134
|
+
## Score basis
|
|
135
|
+
A short paragraph: what drove the score (the clustered tells, the internal-consistency findings, the voice deviation if applicable), the single biggest factor, and what would most change the score.
|
|
136
|
+
|
|
137
|
+
## Caveats
|
|
138
|
+
This is a heuristic read, not proof of authorship. It targets and names no detector. A high score is not a guarantee of human authorship; a low score is not an accusation against a person. Human judgement is required to act on it.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The "Reads as human" and "Caveats" sections are forcing functions, not decoration: naming what you correctly credited as human makes over-flagging visible, and the caveat keeps the score from being read as a verdict. If the prose is essentially the writer's own, the correct output is a high score, a near-empty flag list, and a clear "Reads as human" explanation.
|
|
142
|
+
|
|
143
|
+
Surface concerns, don't block. All findings are advisory. The writer decides what to address; if they want flagged prose improved, that is a separate transform step (see Response Contract), after which this command re-runs as a fresh read.
|
|
144
|
+
|
|
145
|
+
Save to `.manuscript/{scope}-ORIGINALITY-REPORT.md`
|
|
146
|
+
|
|
147
|
+
## Response Contract
|
|
148
|
+
|
|
149
|
+
When spans were flagged, the suggested path is the diagnose -> decide -> transform -> re-verify loop: this scan diagnosed, the writer decides what to act on, `/scr:line-edit` or `/scr:polish` does the rewriting, and re-running `/scr:originality-check` is a fresh re-verify. Do not perform the rewrite here and do not hand a target score to the transform step.
|
|
150
|
+
|
|
151
|
+
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.
|
|
152
|
+
|
|
153
|
+
Use this format:
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
Next commands:
|
|
157
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
158
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
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.
|
|
162
|
+
|
|
163
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
Next commands:
|
|
167
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
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,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Display or edit the structural outline of the work.
|
|
3
|
+
argument-hint: "[--edit]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:outline -- View or Edit Story Outline
|
|
7
|
+
|
|
8
|
+
Display the structural outline with work-type-aware unit labels, or enter edit mode to modify the structure.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:outline [--edit]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Flags:**
|
|
16
|
+
- `--edit` -- Enter edit mode to add, remove, or reorder outline entries
|
|
17
|
+
- No flag: display mode (default)
|
|
18
|
+
|
|
19
|
+
## Instruction
|
|
20
|
+
|
|
21
|
+
You are an outline manager. Load:
|
|
22
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
23
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `work_types[type].hierarchy` for unit labels, and `file_adaptations`)
|
|
24
|
+
- `.manuscript/OUTLINE.md` (the outline data -- read it fully)
|
|
25
|
+
- `.manuscript/STATE.md` (to get drafted/planned/pending status per unit)
|
|
26
|
+
|
|
27
|
+
**Work-type adaptation:** Read the hierarchy from CONSTRAINTS.json for the current work type to determine the correct unit terminology:
|
|
28
|
+
- Novel: part > chapter > scene
|
|
29
|
+
- Screenplay: act > sequence > scene
|
|
30
|
+
- Short story: section > beat
|
|
31
|
+
- Thesis: part > chapter > section
|
|
32
|
+
- Scripture (Quranic): surah > ayah
|
|
33
|
+
- Scripture (Biblical): testament > book > verse
|
|
34
|
+
- Poetry collection: section > poem
|
|
35
|
+
- And so on for all 50+ work types
|
|
36
|
+
|
|
37
|
+
Never hard-code "chapter" or "scene" -- always use the hierarchy labels from CONSTRAINTS.json.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### DISPLAY MODE (default)
|
|
42
|
+
|
|
43
|
+
<outline_display>
|
|
44
|
+
Present the hierarchical outline with:
|
|
45
|
+
|
|
46
|
+
1. **Unit numbering** using work-type-appropriate labels:
|
|
47
|
+
```
|
|
48
|
+
Part I: [title]
|
|
49
|
+
Chapter 1: [title]
|
|
50
|
+
Scene 1.1: [summary] [drafted] [1,200 words]
|
|
51
|
+
Scene 1.2: [summary] [planned] [-- words]
|
|
52
|
+
Chapter 2: [title]
|
|
53
|
+
Scene 2.1: [summary] [pending] [-- words]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. **For each unit, show:**
|
|
57
|
+
- Unit number and title
|
|
58
|
+
- 1-line summary (from OUTLINE.md)
|
|
59
|
+
- Status: drafted | planned | pending (from STATE.md)
|
|
60
|
+
- Word count (if drafted, from STATE.md or draft file)
|
|
61
|
+
- Arc position (if mapped in PLOT-GRAPH.md)
|
|
62
|
+
|
|
63
|
+
3. **Summary footer:**
|
|
64
|
+
- Total units at each level
|
|
65
|
+
- Overall progress (X of Y units drafted)
|
|
66
|
+
- Total word count (drafted units only)
|
|
67
|
+
</outline_display>
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### EDIT MODE (--edit)
|
|
72
|
+
|
|
73
|
+
<outline_edit>
|
|
74
|
+
Allow the writer to modify the outline interactively:
|
|
75
|
+
|
|
76
|
+
**Available operations:**
|
|
77
|
+
- **Add**: Add a new unit at any level (top/mid/atomic)
|
|
78
|
+
- **Remove**: Remove a unit (with draft-safety check -- warn if drafted content exists)
|
|
79
|
+
- **Reorder**: Move a unit to a different position
|
|
80
|
+
- **Rename**: Change a unit's title or summary
|
|
81
|
+
- **Nest/Unnest**: Move a unit up or down in the hierarchy
|
|
82
|
+
|
|
83
|
+
**Draft-safety protocol (D-07):**
|
|
84
|
+
- Before any modification, check `.manuscript/drafts/body/` for files corresponding to affected units
|
|
85
|
+
- If drafted content exists:
|
|
86
|
+
- List all affected draft files
|
|
87
|
+
- Warn: "This will affect [N] drafted files: [list]"
|
|
88
|
+
- Ask for explicit confirmation before proceeding
|
|
89
|
+
- NEVER silently move or delete drafted prose
|
|
90
|
+
|
|
91
|
+
**After editing:**
|
|
92
|
+
- Update OUTLINE.md with the new structure
|
|
93
|
+
- Update STATE.md if unit counts or positions changed
|
|
94
|
+
- If arc positions were affected, note that `/scr:plot-graph` should be re-run
|
|
95
|
+
|
|
96
|
+
Commit: `structure: update outline`
|
|
97
|
+
</outline_edit>
|
|
98
|
+
|
|
99
|
+
## Edge Cases
|
|
100
|
+
|
|
101
|
+
- **No OUTLINE.md:** Direct the writer to run `/scr:plan` to generate the initial outline.
|
|
102
|
+
- **Empty outline:** Show the outline template structure with work-type-appropriate labels and suggest starting with high-level structure first.
|
|
103
|
+
- **Work type without top-level units:** Skip the top level (e.g., short stories have no "parts", just sections and beats).
|
|
104
|
+
- **Very large outlines (50+ units):** Offer to collapse atomic-level units and show only mid-level summary, with option to expand specific sections.
|
|
105
|
+
|
|
106
|
+
## Response Contract
|
|
107
|
+
|
|
108
|
+
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.
|
|
109
|
+
|
|
110
|
+
Use this format:
|
|
111
|
+
|
|
112
|
+
```markdown
|
|
113
|
+
Next commands:
|
|
114
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
115
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
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.
|
|
119
|
+
|
|
120
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
Next commands:
|
|
124
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
128
|
+
|
|
129
|
+
## Tone
|
|
130
|
+
|
|
131
|
+
Organized and utilitarian. The outline is a working document -- present it cleanly so the writer can see their structure at a glance and make informed decisions about changes.
|