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,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Diagnose and repair common project state issues.
|
|
3
|
+
argument-hint: "[--repair]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Health
|
|
7
|
+
|
|
8
|
+
You are a project health checker. Diagnose problems in the current Scriveno project and optionally fix what can be auto-fixed.
|
|
9
|
+
|
|
10
|
+
## Diagnostic mode (default, no flags)
|
|
11
|
+
|
|
12
|
+
Run these checks in order and report results with status indicators:
|
|
13
|
+
|
|
14
|
+
### 1. Required files check
|
|
15
|
+
Verify these files exist in `.manuscript/`:
|
|
16
|
+
- `WORK.md` -- project definition
|
|
17
|
+
- `OUTLINE.md` -- structural plan
|
|
18
|
+
- `STYLE-GUIDE.md` -- voice profile
|
|
19
|
+
- `config.json` -- project configuration
|
|
20
|
+
- `STATE.md` -- progress tracking
|
|
21
|
+
|
|
22
|
+
Status: GREEN if all present, YELLOW if STYLE-GUIDE.md missing (optional early on), RED if WORK.md or config.json missing.
|
|
23
|
+
|
|
24
|
+
### 2. Config schema check
|
|
25
|
+
Read `.manuscript/config.json` and verify all required fields:
|
|
26
|
+
- `work_type` (must be a valid type from CONSTRAINTS.json)
|
|
27
|
+
- `title`
|
|
28
|
+
- `author`
|
|
29
|
+
|
|
30
|
+
Status: GREEN if valid, RED if missing required fields.
|
|
31
|
+
|
|
32
|
+
### 3. State consistency check
|
|
33
|
+
Compare STATE.md progress claims against actual draft files on disk:
|
|
34
|
+
- Count draft files in the manuscript directory
|
|
35
|
+
- Compare against "units drafted" count in STATE.md
|
|
36
|
+
- Flag mismatches
|
|
37
|
+
|
|
38
|
+
Status: GREEN if consistent, YELLOW if minor drift, RED if significantly off.
|
|
39
|
+
|
|
40
|
+
### 4. Orphaned drafts check
|
|
41
|
+
Look for draft files not referenced in OUTLINE.md:
|
|
42
|
+
- Scan for markdown files in unit directories
|
|
43
|
+
- Cross-reference with OUTLINE.md structure
|
|
44
|
+
- List any orphans found
|
|
45
|
+
|
|
46
|
+
Status: GREEN if none, YELLOW if orphans found.
|
|
47
|
+
|
|
48
|
+
### 5. Git state check
|
|
49
|
+
- Check for uncommitted changes (`git status`)
|
|
50
|
+
- Check for detached HEAD
|
|
51
|
+
- Check if on expected branch
|
|
52
|
+
|
|
53
|
+
Status: GREEN if clean, YELLOW if uncommitted changes, RED if detached HEAD.
|
|
54
|
+
|
|
55
|
+
### 6. CONSTRAINTS.json integrity check
|
|
56
|
+
- Verify Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) or local copy exists
|
|
57
|
+
- Check that all commands referenced in the constraints file have corresponding `.md` files in the commands directory
|
|
58
|
+
|
|
59
|
+
Status: GREEN if all present, YELLOW if some missing.
|
|
60
|
+
|
|
61
|
+
## Output format
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Project Health Report
|
|
65
|
+
=====================
|
|
66
|
+
|
|
67
|
+
[GREEN] Required files ............ All present
|
|
68
|
+
[YELLOW] Config schema ............. Missing "author" field
|
|
69
|
+
[GREEN] State consistency ......... 5/12 chapters matches
|
|
70
|
+
[YELLOW] Orphaned drafts ........... 2 found (chapter-99.md, notes-old.md)
|
|
71
|
+
[GREEN] Git state ................. Clean, on branch main
|
|
72
|
+
[GREEN] Constraints integrity ..... All commands resolved
|
|
73
|
+
|
|
74
|
+
Overall: HEALTHY (2 warnings)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Repair mode (--repair)
|
|
78
|
+
|
|
79
|
+
With `--repair`, fix what can be auto-fixed:
|
|
80
|
+
|
|
81
|
+
1. **Regenerate missing STATE.md** from file system state -- count actual draft files, detect current position in workflow
|
|
82
|
+
2. **Fix config.json missing fields** with sensible defaults (author = "Unknown", work_type from directory structure heuristics)
|
|
83
|
+
3. **Report orphaned drafts** for manual review -- do NOT delete them, just list them with suggested actions
|
|
84
|
+
4. **Suggest git commands** for git issues (e.g., "Run `git stash` to save uncommitted changes" or "Run `git switch <canon branch>` to fix detached HEAD"). Resolve `<canon branch>` from `.manuscript/tracks.json` `canon_branch` when available; otherwise refer to the writer's real default branch generically (`main`, `master`, `trunk`, or another branch name) instead of hard-coding `main`.
|
|
85
|
+
|
|
86
|
+
After repair: re-run diagnostics and show the updated health report.
|
|
87
|
+
|
|
88
|
+
## Response Contract
|
|
89
|
+
|
|
90
|
+
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.
|
|
91
|
+
|
|
92
|
+
Use this format:
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
Next commands:
|
|
96
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
97
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
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.
|
|
101
|
+
|
|
102
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
Next commands:
|
|
106
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
110
|
+
|
|
111
|
+
## Tone
|
|
112
|
+
|
|
113
|
+
Clinical but helpful. Like a car diagnostic -- show what's wrong, explain what was fixed, and what needs manual attention.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show Scriveno commands grouped by workflow stage, filtered to what's relevant for your current work
|
|
3
|
+
argument-hint: "[category or search term, optional]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Scriveno help
|
|
7
|
+
|
|
8
|
+
You are helping the user navigate Scriveno commands. Load Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) to see every command and its availability.
|
|
9
|
+
|
|
10
|
+
## What to do
|
|
11
|
+
|
|
12
|
+
1. **Check for a `.manuscript/` directory in the current project.**
|
|
13
|
+
- If it exists, read `.manuscript/config.json` to get the work type and developer_mode setting
|
|
14
|
+
- If it doesn't exist, show the "getting started" view
|
|
15
|
+
|
|
16
|
+
2. **Load CONSTRAINTS.json** and filter commands by the current work type's group plus any command-level constraints.
|
|
17
|
+
- A command is only menu-eligible when its `available` list includes the current group (or `"all"`) **and** any narrower gate passes.
|
|
18
|
+
- Apply explicit constraints such as `nonfiction_only` and `comic_only` before you show the command.
|
|
19
|
+
- If a group has a dedicated replacement command family (for example sacred chronology and doctrinal checks), prefer that real surface over any conceptual adapted label on a hidden base command.
|
|
20
|
+
|
|
21
|
+
3. **Load `command_intents` from CONSTRAINTS.json.** Treat these intents as the front door: start, draft, revise, navigate, publish, translate, collaborate, repair. If the field is missing in an older install, fall back to the stage groups below.
|
|
22
|
+
|
|
23
|
+
4. **Infer the likely intent before showing commands.**
|
|
24
|
+
- No `.manuscript/` directory -> start
|
|
25
|
+
- `.manuscript/` exists but no drafted units -> draft
|
|
26
|
+
- Drafted units exist but review is incomplete -> revise
|
|
27
|
+
- Draft is complete and export files are missing -> publish
|
|
28
|
+
- Translation folders or language config exist -> translate
|
|
29
|
+
- Revision-track metadata exists -> collaborate
|
|
30
|
+
- State drift, failed command, missing required file, or validation concern -> repair
|
|
31
|
+
- Otherwise -> navigate
|
|
32
|
+
|
|
33
|
+
5. **If the user passed an argument**, treat it as an intent, category filter, or search term. Otherwise show the inferred intent first, then compact alternatives.
|
|
34
|
+
|
|
35
|
+
## The "getting started" view (no project yet)
|
|
36
|
+
|
|
37
|
+
Ask the user what they want to do. Don't list 170 commands -- show them this:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Scriveno -- ready to start.
|
|
41
|
+
|
|
42
|
+
What do you want to do?
|
|
43
|
+
/scr:new-work Start a new project (novel, runbook, screenplay, paper, etc.)
|
|
44
|
+
/scr:demo Explore a pre-built sample project first
|
|
45
|
+
/scr:import <file> Bring in an existing manuscript
|
|
46
|
+
/scr:profile-writer Set up your writer profile
|
|
47
|
+
|
|
48
|
+
Already have a project? Just cd into it and run /scr:next.
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## The "active project" view
|
|
52
|
+
|
|
53
|
+
Show commands relevant to the current stage. Use `.manuscript/STATE.md` to figure out where the user is.
|
|
54
|
+
|
|
55
|
+
Lead with a compact intent view, not the full command catalog:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
Likely next area: Draft
|
|
59
|
+
|
|
60
|
+
Most useful now:
|
|
61
|
+
- `/scr:next`: Inspect the project state and choose the next step.
|
|
62
|
+
- `/scr:discuss 4`: Shape the next unit before planning.
|
|
63
|
+
- `/scr:plan 4`: Turn the discussion into a draftable plan.
|
|
64
|
+
|
|
65
|
+
Other useful areas:
|
|
66
|
+
- Revise: `/scr:editor-review`, `/scr:voice-check`, `/scr:continuity-check`
|
|
67
|
+
- Navigate: `/scr:progress`, `/scr:manuscript-stats`, `/scr:pause-work`
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Keep the primary list to 3-6 commands. Put additional commands under "More for this intent" only when the user asked for detail, used `/scr:help all`, or passed a specific intent/category. This is the thin front door: the full command surface remains available, but the default view should never feel like a catalog dump.
|
|
71
|
+
|
|
72
|
+
Use `command_intents` to choose candidates, then apply availability and command-level constraints. For example, `publish` intent can include `build-print`, but a fresh project should not show publishing as the likely next area; `translate` can include `translate`, but it should not appear as a primary path until drafted work exists or translation configuration exists; `repair` should move to the top when scan/health conditions are present.
|
|
73
|
+
|
|
74
|
+
Group by stage:
|
|
75
|
+
- **Create** -- new-work, profile-writer, series-bible
|
|
76
|
+
- **Write** -- discuss, plan, draft, quick-write, plus any profile-building commands actually available for the current work type
|
|
77
|
+
- **Revise** -- editor-review, subject-touch, line-edit, copy-edit, continuity-check, beta-reader, voice-check
|
|
78
|
+
- **Publish** -- front-matter, back-matter, blurb, cover-art, publish, export
|
|
79
|
+
- **Collaborate** -- track
|
|
80
|
+
Present `/scr:track` as the entrypoint for revision-track workflows, and describe its subcommands in prose: create, list, switch, compare, merge, propose.
|
|
81
|
+
- **Versions** -- save, history, versions, compare, undo
|
|
82
|
+
- **Navigate** -- next, progress, pause-work, resume-work
|
|
83
|
+
|
|
84
|
+
Revision tracks are a writer-facing workflow, not a developer-only one. Always surface `/scr:track` when it is otherwise available for the current project, and explain that comparison and merge actions live under its subcommands. Do not invent top-level commands like `/scr:merge` for collaboration, and do not confuse `/scr:compare` (save-to-save history comparison) with `/scr:track compare` (revision-track comparison). `developer_mode` only changes whether you expose extra technical detail such as hashes, branch names, or raw git output -- it does not hide the collaboration workflow itself.
|
|
85
|
+
|
|
86
|
+
When useful, describe Scriveno's creative-context model in one sentence: Scriveno tracks what moves, including characters, ideas, reader understanding, objects, places, procedures, doctrines, evidence, and themes. Keep this as orientation, not a lecture.
|
|
87
|
+
|
|
88
|
+
Only show commands where `available` includes the current work type's group, OR where it's `"all"`, **and** any narrower command-level constraints still pass for the specific work type. For example, `book-proposal` is still hidden for fiction prose because `nonfiction_only` narrows the broad prose/sacred availability, and `panel-layout` is hidden for non-comic visual projects because `comic_only` narrows the visual group. Show canonical runnable command names, and use adapted labels as descriptive text only when the base command is actually available -- sacred review surfaces may show `/scr:editor-review` as scholarly review, and technical docs may show `/scr:plot-graph` as procedure map, but hidden commands stay hidden even if CONSTRAINTS.json stores an adapted label.
|
|
89
|
+
|
|
90
|
+
## The filtered view
|
|
91
|
+
|
|
92
|
+
If the argument matches an intent or category name (e.g., "revise", "publish"), show that view first. If it's a free-text search, match against command names and descriptions. If the writer asks for "all", "catalog", or "everything", show the grouped stage view after the compact intent view.
|
|
93
|
+
|
|
94
|
+
## Response Contract
|
|
95
|
+
|
|
96
|
+
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.
|
|
97
|
+
|
|
98
|
+
Use this format:
|
|
99
|
+
|
|
100
|
+
```markdown
|
|
101
|
+
Next commands:
|
|
102
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
103
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
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.
|
|
107
|
+
|
|
108
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
Next commands:
|
|
112
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
116
|
+
|
|
117
|
+
## Tone
|
|
118
|
+
|
|
119
|
+
Scannable. No narration, no memory-system lectures. A writer checking help wants a menu, not an essay.
|
|
120
|
+
|
|
121
|
+
If the user seems stuck, always suggest `/scr:next` -- it always knows what to do.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: See the timeline of your saves. Shows when you saved and what you were working on.
|
|
3
|
+
argument-hint: "[--limit N]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# History
|
|
7
|
+
|
|
8
|
+
You are showing the writer their save history. Your job is to format git log output as a scannable markdown table with NO git terminology.
|
|
9
|
+
|
|
10
|
+
## What to do
|
|
11
|
+
|
|
12
|
+
1. **Check for `.git/` directory.** If missing: "No save history yet. Save your work first with `/scr:save`."
|
|
13
|
+
|
|
14
|
+
2. **Check for any save commits.** Run:
|
|
15
|
+
```
|
|
16
|
+
git log --format="%H" --grep="^(Saved|Initial save)" --extended-regexp -n 1 .manuscript/ 2>/dev/null
|
|
17
|
+
```
|
|
18
|
+
If empty: "No save history yet."
|
|
19
|
+
|
|
20
|
+
3. **Read `.manuscript/config.json`** for `developer_mode`.
|
|
21
|
+
|
|
22
|
+
4. **Retrieve the log.** Run:
|
|
23
|
+
```
|
|
24
|
+
git log --format="%H|%ai|%s" --grep="^(Saved|Initial save)" --extended-regexp -n {limit} .manuscript/
|
|
25
|
+
```
|
|
26
|
+
Default: last 20 entries. If the writer specified `--limit N`, use that number instead.
|
|
27
|
+
This command is a **save history**, so exclude administrative manuscript commits such as revision-track creation, proposals, and merges.
|
|
28
|
+
|
|
29
|
+
5. **Parse each line** into three columns:
|
|
30
|
+
- **Date:** Convert the ISO timestamp to human-friendly format: "Mon D, H:MM AM/PM" (e.g., "Apr 6, 2:30 PM"). Omit year unless the save is from a different year than the current year.
|
|
31
|
+
- **Action:** Extract the verb and unit from the commit message:
|
|
32
|
+
- "Saved after drafting chapter 3" becomes "Drafted chapter 3"
|
|
33
|
+
- "Saved after editor review of chapter 2" becomes "Reviewed chapter 2"
|
|
34
|
+
- "Saved after revising chapter 2" becomes "Revised chapter 2"
|
|
35
|
+
- "Saved after planning chapter 4" becomes "Planned chapter 4"
|
|
36
|
+
- "Saved after discussing chapter 5" becomes "Discussed chapter 5"
|
|
37
|
+
- "Saved work in progress on chapter 3" becomes "Work in progress on chapter 3"
|
|
38
|
+
- "Saved: {custom message}" becomes "{custom message}"
|
|
39
|
+
- "Initial save of {title}" becomes "Started {title}"
|
|
40
|
+
- Any other message: use the message as-is
|
|
41
|
+
- **Details:** Extract supplementary information if available in the commit message (word count, scene count, etc.). If none, leave blank.
|
|
42
|
+
|
|
43
|
+
6. **Format as a markdown table:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
| Date | Action | Details |
|
|
47
|
+
|------|--------|---------|
|
|
48
|
+
| Apr 6, 2:30 PM | Drafted chapter 3 | 1,247 words, 4 scenes |
|
|
49
|
+
| Apr 6, 1:15 PM | Reviewed chapter 2 | 3 revision notes |
|
|
50
|
+
| Apr 5, 4:00 PM | Planned chapter 3 | 4 scene plans |
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
7. **Show the table to the writer.**
|
|
54
|
+
|
|
55
|
+
## Writer mode output
|
|
56
|
+
|
|
57
|
+
- **Writer mode** (`developer_mode: false`): Show ONLY the markdown table. No git hashes, no branch info, no file paths. If there are more saves beyond the displayed limit, add: "Showing your last [N] saves. Use `--limit 50` to see more."
|
|
58
|
+
- **Developer mode** (`developer_mode: true`): Add an extra "Hash" column to the table with the short commit hash (first 7 characters). Include the current branch name above the table.
|
|
59
|
+
|
|
60
|
+
## Edge cases
|
|
61
|
+
|
|
62
|
+
- **No history:** "No save history yet. Save your work first with `/scr:save`."
|
|
63
|
+
- **Only one save:** Show the table with one row. No "see more" message.
|
|
64
|
+
- **Very long history:** Default to last 20. If more exist, mention: "Showing your last 20 saves. Use `--limit 50` to see more."
|
|
65
|
+
- **Administrative manuscript commits:** Exclude track creation, proposals, merges, and other non-save checkpoints. Show only commits whose subject starts with `Saved` or `Initial save`.
|
|
66
|
+
|
|
67
|
+
## Response Contract
|
|
68
|
+
|
|
69
|
+
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.
|
|
70
|
+
|
|
71
|
+
Use this format:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
Next commands:
|
|
75
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
76
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
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.
|
|
80
|
+
|
|
81
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
Next commands:
|
|
85
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
89
|
+
|
|
90
|
+
## Tone
|
|
91
|
+
|
|
92
|
+
Neutral. Informative. Let the table speak for itself. Don't editorialize about the writer's productivity or pace.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate a scene-specific illustration prompt with character visuals, setting, and mood.
|
|
3
|
+
argument-hint: "<scene-ref> [--style <style>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:illustrate-scene -- Scene Illustration Prompt
|
|
7
|
+
|
|
8
|
+
Generate a detailed, structured illustration prompt for a specific scene, pulling character descriptions, setting details, and mood from the manuscript.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:illustrate-scene <scene-ref> [--style <style>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are generating a scene-specific illustration prompt. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`, `genre`, trim size if set)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `commands.illustrate-scene.available` and prerequisites)
|
|
20
|
+
- `.manuscript/illustrations/ART-DIRECTION.md` (visual style bible -- **required**)
|
|
21
|
+
- `.manuscript/OUTLINE.md` (to resolve `<scene-ref>` to a file path)
|
|
22
|
+
- The drafted scene file for `<scene-ref>`
|
|
23
|
+
- `.manuscript/CHARACTERS.md` or `.manuscript/FIGURES.md` (per `file_adaptations` for sacred work types)
|
|
24
|
+
|
|
25
|
+
**Check availability:**
|
|
26
|
+
|
|
27
|
+
Look up the current work type's group in CONSTRAINTS.json. If the group is in `commands.illustrate-scene.hidden` (script, academic, poetry, speech_song), inform the writer:
|
|
28
|
+
|
|
29
|
+
> Illustrate-scene is not available for [work_type] projects.
|
|
30
|
+
|
|
31
|
+
Then **stop**.
|
|
32
|
+
|
|
33
|
+
**Check prerequisites:**
|
|
34
|
+
|
|
35
|
+
Per CONSTRAINTS.json `prerequisites.illustrate-scene`: requires ART-DIRECTION.md and scene_drafted.
|
|
36
|
+
|
|
37
|
+
If `.manuscript/illustrations/ART-DIRECTION.md` does not exist:
|
|
38
|
+
> Run `/scr:art-direction` first to establish your visual style guide.
|
|
39
|
+
|
|
40
|
+
Then **stop**.
|
|
41
|
+
|
|
42
|
+
If the scene referenced by `<scene-ref>` has no draft yet:
|
|
43
|
+
> Scene '{ref}' has no draft yet. Draft it first with `/scr:draft {ref}`.
|
|
44
|
+
|
|
45
|
+
Then **stop**.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### Scene Analysis
|
|
50
|
+
|
|
51
|
+
<scene_analysis>
|
|
52
|
+
Read the drafted scene file and extract:
|
|
53
|
+
|
|
54
|
+
**Characters present:**
|
|
55
|
+
Cross-reference with CHARACTERS.md (or FIGURES.md for sacred work types) to pull:
|
|
56
|
+
- Physical appearance (height, build, hair, eyes, distinguishing features)
|
|
57
|
+
- Clothing/style from ART-DIRECTION.md per-character visual specs
|
|
58
|
+
- Expression and posture appropriate to the scene's emotional beat
|
|
59
|
+
- Color associations from ART-DIRECTION.md
|
|
60
|
+
|
|
61
|
+
**Setting / Location:**
|
|
62
|
+
- Indoor or outdoor
|
|
63
|
+
- Time of day and lighting conditions
|
|
64
|
+
- Weather and atmosphere (if outdoor)
|
|
65
|
+
- Key objects, furniture, architecture
|
|
66
|
+
- Cross-reference with ART-DIRECTION.md per-setting visual specs if the location is defined there
|
|
67
|
+
|
|
68
|
+
**Key action or emotional moment:**
|
|
69
|
+
Identify the single most visually compelling beat in the scene -- the "illustratable moment." This is the focal point of the illustration. Prefer:
|
|
70
|
+
- A moment of high emotion (confrontation, revelation, tenderness)
|
|
71
|
+
- A moment of decisive action (a character making a choice visible in body language)
|
|
72
|
+
- A moment of visual drama (arrival, discovery, transformation)
|
|
73
|
+
|
|
74
|
+
**Mood / Atmosphere:**
|
|
75
|
+
- Emotional tone: tension, joy, mystery, sorrow, wonder, dread, intimacy, triumph
|
|
76
|
+
- How this maps to visual treatment: lighting quality, color temperature, depth of field
|
|
77
|
+
</scene_analysis>
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Prompt Generation (D-01 Structured Format)
|
|
82
|
+
|
|
83
|
+
<prompt_generation>
|
|
84
|
+
Generate the illustration prompt with the following sections:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
# Illustration Prompt: [Scene Reference]
|
|
88
|
+
|
|
89
|
+
**Scene:** [scene title or reference]
|
|
90
|
+
**Source:** [file path of drafted scene]
|
|
91
|
+
|
|
92
|
+
## Subject
|
|
93
|
+
|
|
94
|
+
[The key moment described in detail. Include all characters present with their actions, positions relative to each other, and emotional states. Describe what is happening -- not abstractly, but as a specific frozen moment.]
|
|
95
|
+
|
|
96
|
+
## Composition
|
|
97
|
+
|
|
98
|
+
[Suggested framing and visual structure:]
|
|
99
|
+
- **Shot type:** [wide establishing | medium | close-up | extreme close-up | over-the-shoulder | bird's-eye | worm's-eye]
|
|
100
|
+
- **Focal point:** [what the eye should be drawn to first]
|
|
101
|
+
- **Depth:** [foreground, midground, background elements]
|
|
102
|
+
- **Negative space:** [where breathing room exists in the frame]
|
|
103
|
+
- **Eye flow:** [how the viewer's gaze moves through the image]
|
|
104
|
+
|
|
105
|
+
## Style
|
|
106
|
+
|
|
107
|
+
[From ART-DIRECTION.md visual style section. Art style, rendering technique, level of detail. If --style flag provided, blend the requested style with the established art direction.]
|
|
108
|
+
|
|
109
|
+
## Color Palette
|
|
110
|
+
|
|
111
|
+
[From ART-DIRECTION.md color palette, adjusted for this scene's mood:]
|
|
112
|
+
- **Dominant:** [primary color for this scene and why]
|
|
113
|
+
- **Supporting:** [secondary colors]
|
|
114
|
+
- **Accent:** [highlight/focal point color]
|
|
115
|
+
- **Mood shift:** [how palette differs from default -- darker for tense scenes, warmer for intimate, cooler for melancholy, desaturated for dreamlike]
|
|
116
|
+
|
|
117
|
+
## Mood
|
|
118
|
+
|
|
119
|
+
[Derived from scene analysis:]
|
|
120
|
+
- **Emotional tone:** [the feeling this illustration should evoke]
|
|
121
|
+
- **Lighting:** [direction, quality, warmth -- e.g., "low warm side-lighting from a fireplace"]
|
|
122
|
+
- **Atmosphere:** [haze, clarity, rain, dust motes, etc.]
|
|
123
|
+
- **Time of day:** [if relevant to lighting]
|
|
124
|
+
|
|
125
|
+
## Characters
|
|
126
|
+
|
|
127
|
+
[For each character present in the scene:]
|
|
128
|
+
|
|
129
|
+
### [Character Name]
|
|
130
|
+
- **Appearance:** [from CHARACTERS.md / FIGURES.md]
|
|
131
|
+
- **Clothing:** [from ART-DIRECTION.md character specs or scene context]
|
|
132
|
+
- **Expression:** [appropriate to this scene's emotional beat]
|
|
133
|
+
- **Posture/Action:** [what they are doing in this moment]
|
|
134
|
+
- **Position:** [where in the frame -- foreground, left, center, background]
|
|
135
|
+
|
|
136
|
+
## Setting Details
|
|
137
|
+
|
|
138
|
+
[Location-specific visual elements:]
|
|
139
|
+
- **Environment:** [indoor/outdoor, architecture, landscape]
|
|
140
|
+
- **Key objects:** [props, furniture, natural elements that matter to the scene]
|
|
141
|
+
- **Textures:** [surfaces, materials, fabrics visible]
|
|
142
|
+
- **Background:** [what fills the space beyond the main action]
|
|
143
|
+
|
|
144
|
+
## Technical Specs
|
|
145
|
+
|
|
146
|
+
- **Dimensions:** [full page: match trim size at 300 DPI | half page: trim width x half trim height at 300 DPI]
|
|
147
|
+
- **Orientation:** [portrait | landscape]
|
|
148
|
+
- **DPI:** 300
|
|
149
|
+
- **Bleed:** 0.125" on all sides if full-bleed
|
|
150
|
+
- **Safe area:** Keep key elements 0.25" from trim edge
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
If `--style` is provided, note the requested style and blend it with the ART-DIRECTION.md established style, explaining any adjustments.
|
|
154
|
+
</prompt_generation>
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Output
|
|
159
|
+
|
|
160
|
+
Create the output directory if needed:
|
|
161
|
+
```bash
|
|
162
|
+
mkdir -p .manuscript/illustrations/scenes/
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Save to `.manuscript/illustrations/scenes/{scene-ref}-illustration-prompt.md`
|
|
166
|
+
|
|
167
|
+
Replace any slashes or spaces in `{scene-ref}` with hyphens for the filename.
|
|
168
|
+
|
|
169
|
+
Commit: `illustration: generate scene prompt for {scene-ref}`
|
|
170
|
+
|
|
171
|
+
After saving, tell the writer:
|
|
172
|
+
> Illustration prompt saved to `.manuscript/illustrations/scenes/{scene-ref}-illustration-prompt.md`.
|
|
173
|
+
>
|
|
174
|
+
> Copy this prompt into any AI image tool (GPT Image, Stable Diffusion, Midjourney) or share with an illustrator.
|
|
175
|
+
>
|
|
176
|
+
> To regenerate with a different style: `/scr:illustrate-scene {ref} --style watercolor`
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### Edge Cases
|
|
181
|
+
|
|
182
|
+
- **Sacred work type:** Use FIGURES.md instead of CHARACTERS.md. Adapt visual language for sacred art traditions (iconographic conventions, liturgical colors, sacred geometry motifs)
|
|
183
|
+
- **Character not in CHARACTERS.md:** Include what can be inferred from the scene text and note: "Character '{name}' has no entry in CHARACTERS.md. Add one with `/scr:new-character {name}` for richer visual descriptions."
|
|
184
|
+
- **No ART-DIRECTION.md:** Hard stop -- prerequisite per CONSTRAINTS.json
|
|
185
|
+
- **Scene not drafted:** Hard stop -- prerequisite per CONSTRAINTS.json
|
|
186
|
+
- **Multiple illustratable moments:** Pick the single strongest, note alternatives: "Other illustratable moments in this scene: [list]. Re-run with `--moment 2` to target a different beat."
|
|
187
|
+
- **Scene with no characters:** Generate environment-only prompt (landscape, interior, establishing shot)
|
|
188
|
+
- **Very long scene:** Focus on the climactic beat, not the entire scene
|
|
189
|
+
|
|
190
|
+
## Response Contract
|
|
191
|
+
|
|
192
|
+
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.
|
|
193
|
+
|
|
194
|
+
Use this format:
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
Next commands:
|
|
198
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
199
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
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.
|
|
203
|
+
|
|
204
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
205
|
+
|
|
206
|
+
```markdown
|
|
207
|
+
Next commands:
|
|
208
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
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,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Import an existing manuscript (docx, markdown, txt, or directory) and structure it into a Scriveno .manuscript/ directory.
|
|
3
|
+
argument-hint: "<file_or_directory_path> [--type <work_type>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Import
|
|
7
|
+
|
|
8
|
+
You are importing an existing manuscript into Scriveno. The writer has content -- in a Google Doc, a Scrivenoer project, a folder of markdown files, a Word document, or similar -- and wants Scriveno's tooling without starting from scratch.
|
|
9
|
+
|
|
10
|
+
## What to do
|
|
11
|
+
|
|
12
|
+
1. **Locate the file or directory.** Accept: .docx, .md, .txt, .rtf, a directory of any of these.
|
|
13
|
+
|
|
14
|
+
2. **Read the content.** For docx, use pandoc or similar to extract text. For markdown, read directly. For a directory, concatenate files in order.
|
|
15
|
+
|
|
16
|
+
3. **Detect the work type.** If `--type` was passed, use it. Otherwise analyze the content and make a best guess:
|
|
17
|
+
- Scene headers (`INT./EXT.`) -> screenplay
|
|
18
|
+
- Chapter markers with prose -> novel or memoir
|
|
19
|
+
- Section headers with citations -> academic paper
|
|
20
|
+
- Verse and chapter numbers -> scripture
|
|
21
|
+
- Panel descriptions -> comic
|
|
22
|
+
- Poem titles separated by breaks -> poetry collection
|
|
23
|
+
- Ask the writer to confirm.
|
|
24
|
+
|
|
25
|
+
4. **Parse structure.** Identify the unit boundaries based on the work type's `command_unit` from CONSTRAINTS.json. For a novel, find chapter breaks. For a screenplay, find act breaks or scene headers. For a research paper, find section headers.
|
|
26
|
+
|
|
27
|
+
5. **Run voice analysis.** Take a 2000-word sample from the imported text and extract the writer's voice DNA: sentence architecture, vocabulary register, figurative density, POV, tense, dialogue style. Populate STYLE-GUIDE.md with the detected values. Flag anything uncertain for the writer to confirm.
|
|
28
|
+
|
|
29
|
+
6. **Detect characters.** Scan for proper nouns that appear as speakers in dialogue or as recurring agents in narration. Build a draft CHARACTERS.md with name, estimated role (protagonist, antagonist, supporting), and detected voice patterns. Flag for writer review.
|
|
30
|
+
|
|
31
|
+
7. **Generate the .manuscript/ directory.** Create all context files (WORK.md, BRIEF.md, OUTLINE.md, RECORD.md, STYLE-GUIDE.md, CHARACTERS.md, etc.) populated from the import. Also copy `WRITING-RULES.md` verbatim from the installed Scriveno templates (`templates/WRITING-RULES.md`) into `.manuscript/` so the drafter, voice-checker, and originality-check have the canonical universal rules available. Save the actual drafted text as `.manuscript/drafts/body/{N}-{A}-DRAFT.md` files, one per atomic unit.
|
|
32
|
+
|
|
33
|
+
Populate `RECORD.md` from the imported manuscript, not from speculation. Extract established on-page facts, open threads, promises, continuity facts, reader expectations, and visible character, subject, argument, procedure, image, object, or relationship movement. Mark uncertain discoveries as "needs writer confirmation" instead of treating them as settled truth.
|
|
34
|
+
|
|
35
|
+
8. **Set STATE.md** to reflect that all imported units are drafted but not yet reviewed. This lets the writer pick up with `/scr:editor-review` or `/scr:next`.
|
|
36
|
+
|
|
37
|
+
9. **Generate a report.** Tell the writer:
|
|
38
|
+
```
|
|
39
|
+
Imported [filename] as a [work_type].
|
|
40
|
+
|
|
41
|
+
Structure detected: X chapters, Y scenes total
|
|
42
|
+
Word count: 65,432
|
|
43
|
+
Voice profile: extracted from 2000-word sample (review in STYLE-GUIDE.md)
|
|
44
|
+
Characters detected: 7 (review in CHARACTERS.md)
|
|
45
|
+
Record initialized: established facts and open threads extracted into RECORD.md
|
|
46
|
+
|
|
47
|
+
Some things I wasn't sure about:
|
|
48
|
+
- [specific flags: uncertain chapter breaks, possible POV shifts, etc.]
|
|
49
|
+
|
|
50
|
+
Next steps:
|
|
51
|
+
- Review STYLE-GUIDE.md and CHARACTERS.md -- confirm or adjust
|
|
52
|
+
- Run /scr:next to start working on the imported manuscript
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Edge cases
|
|
56
|
+
|
|
57
|
+
- **Messy source.** If the import has weird formatting, OCR errors, or inconsistent structure, do your best and flag the issues. Don't refuse the import.
|
|
58
|
+
- **Huge manuscript.** For texts over 200k words, warn about import time but proceed. Split voice analysis across multiple samples.
|
|
59
|
+
- **Mixed work types.** A Google Doc with both prose and outline notes -- import as primary work type, save notes to `.manuscript/notes/`.
|
|
60
|
+
- **Source in a different language.** Detect it. Ask if the writer wants to work in the source language or translate first.
|
|
61
|
+
- **No clear structure.** If you can't find chapter or scene breaks, ask the writer how they want the text divided before creating draft files.
|
|
62
|
+
|
|
63
|
+
## What NOT to do
|
|
64
|
+
|
|
65
|
+
- Don't "improve" the writer's text during import. Preserve it exactly. They'll revise via normal commands.
|
|
66
|
+
- Don't rename files without asking.
|
|
67
|
+
- Don't skip voice analysis -- it's the highest-value part of import.
|
|
68
|
+
- Don't assume character roles without evidence. Mark uncertain roles as such.
|
|
69
|
+
|
|
70
|
+
## Response Contract
|
|
71
|
+
|
|
72
|
+
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.
|
|
73
|
+
|
|
74
|
+
Use this format:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
Next commands:
|
|
78
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
79
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
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.
|
|
83
|
+
|
|
84
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
85
|
+
|
|
86
|
+
```markdown
|
|
87
|
+
Next commands:
|
|
88
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
92
|
+
|
|
93
|
+
## Tone
|
|
94
|
+
|
|
95
|
+
Respectful. The writer has worked on this text. You're bringing it into a new system, not judging it. Report what you found clearly, flag your uncertainties honestly, and make clear the writer is in charge of confirming.
|