scriveno 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +222 -0
- package/agents/continuity-checker.md +85 -0
- package/agents/drafter.md +248 -0
- package/agents/plan-checker.md +209 -0
- package/agents/researcher.md +114 -0
- package/agents/translator.md +204 -0
- package/agents/voice-checker.md +154 -0
- package/bin/install.js +1620 -0
- package/commands/scr/add-note.md +51 -0
- package/commands/scr/add-unit.md +101 -0
- package/commands/scr/art-direction.md +225 -0
- package/commands/scr/autopilot-publish.md +210 -0
- package/commands/scr/autopilot-translate.md +237 -0
- package/commands/scr/autopilot.md +200 -0
- package/commands/scr/back-matter.md +630 -0
- package/commands/scr/back-translate.md +197 -0
- package/commands/scr/beta-reader.md +97 -0
- package/commands/scr/blurb.md +149 -0
- package/commands/scr/book-proposal.md +210 -0
- package/commands/scr/build-ebook.md +448 -0
- package/commands/scr/build-poetry-submission.md +202 -0
- package/commands/scr/build-print.md +598 -0
- package/commands/scr/build-smashwords.md +171 -0
- package/commands/scr/build-world.md +158 -0
- package/commands/scr/cast-list.md +104 -0
- package/commands/scr/chapter-header.md +158 -0
- package/commands/scr/character-arc.md +108 -0
- package/commands/scr/character-ref.md +160 -0
- package/commands/scr/character-sheet.md +143 -0
- package/commands/scr/character-touch.md +157 -0
- package/commands/scr/character-voice-sample.md +111 -0
- package/commands/scr/check-notes.md +50 -0
- package/commands/scr/cleanup.md +159 -0
- package/commands/scr/compare.md +112 -0
- package/commands/scr/complete-draft.md +49 -0
- package/commands/scr/continuity-check.md +129 -0
- package/commands/scr/copy-edit.md +118 -0
- package/commands/scr/cover-art.md +382 -0
- package/commands/scr/cultural-adaptation.md +177 -0
- package/commands/scr/demo.md +93 -0
- package/commands/scr/dialogue-audit.md +143 -0
- package/commands/scr/discuss.md +118 -0
- package/commands/scr/discussion-questions.md +129 -0
- package/commands/scr/do.md +68 -0
- package/commands/scr/draft.md +97 -0
- package/commands/scr/editor-review.md +466 -0
- package/commands/scr/export.md +942 -0
- package/commands/scr/fast.md +65 -0
- package/commands/scr/front-matter.md +696 -0
- package/commands/scr/health.md +113 -0
- package/commands/scr/help.md +121 -0
- package/commands/scr/history.md +92 -0
- package/commands/scr/illustrate-scene.md +211 -0
- package/commands/scr/import.md +95 -0
- package/commands/scr/insert-unit.md +108 -0
- package/commands/scr/line-edit.md +146 -0
- package/commands/scr/manager.md +77 -0
- package/commands/scr/manuscript-stats.md +139 -0
- package/commands/scr/map-illustration.md +213 -0
- package/commands/scr/map-manuscript.md +134 -0
- package/commands/scr/merge-units.md +136 -0
- package/commands/scr/multi-publish.md +344 -0
- package/commands/scr/new-character.md +167 -0
- package/commands/scr/new-revision.md +50 -0
- package/commands/scr/new-work.md +148 -0
- package/commands/scr/next.md +125 -0
- package/commands/scr/originality-check.md +170 -0
- package/commands/scr/outline.md +131 -0
- package/commands/scr/pacing-analysis.md +170 -0
- package/commands/scr/panel-layout.md +225 -0
- package/commands/scr/pause-work.md +88 -0
- package/commands/scr/plan.md +112 -0
- package/commands/scr/plant-seed.md +57 -0
- package/commands/scr/plot-graph.md +199 -0
- package/commands/scr/polish.md +141 -0
- package/commands/scr/profile-writer.md +154 -0
- package/commands/scr/progress.md +51 -0
- package/commands/scr/publish.md +455 -0
- package/commands/scr/query-letter.md +183 -0
- package/commands/scr/quick-write.md +82 -0
- package/commands/scr/relationship-map.md +129 -0
- package/commands/scr/remove-unit.md +120 -0
- package/commands/scr/reorder-units.md +126 -0
- package/commands/scr/resume-work.md +97 -0
- package/commands/scr/sacred/annotation-layer.md +105 -0
- package/commands/scr/sacred/chronology.md +121 -0
- package/commands/scr/sacred/concordance.md +88 -0
- package/commands/scr/sacred/cross-reference.md +97 -0
- package/commands/scr/sacred/doctrinal-check.md +129 -0
- package/commands/scr/sacred/genealogy.md +107 -0
- package/commands/scr/sacred/source-tracking.md +101 -0
- package/commands/scr/sacred/verse-numbering.md +103 -0
- package/commands/scr/sacred-numbering-format.md +103 -0
- package/commands/scr/save.md +109 -0
- package/commands/scr/scan.md +291 -0
- package/commands/scr/sensitivity-review.md +169 -0
- package/commands/scr/series-bible.md +127 -0
- package/commands/scr/session-report.md +80 -0
- package/commands/scr/settings.md +58 -0
- package/commands/scr/split-unit.md +123 -0
- package/commands/scr/spread-layout.md +187 -0
- package/commands/scr/storyboard.md +262 -0
- package/commands/scr/subject-touch.md +168 -0
- package/commands/scr/submit.md +50 -0
- package/commands/scr/subplot-map.md +147 -0
- package/commands/scr/sync.md +116 -0
- package/commands/scr/synopsis.md +137 -0
- package/commands/scr/theme-tracker.md +128 -0
- package/commands/scr/thread.md +83 -0
- package/commands/scr/timeline.md +141 -0
- package/commands/scr/track.md +564 -0
- package/commands/scr/translate.md +260 -0
- package/commands/scr/translation-glossary.md +298 -0
- package/commands/scr/translation-memory.md +310 -0
- package/commands/scr/troubleshoot.md +59 -0
- package/commands/scr/undo.md +106 -0
- package/commands/scr/validate.md +133 -0
- package/commands/scr/versions.md +94 -0
- package/commands/scr/voice-check.md +133 -0
- package/commands/scr/voice-test.md +68 -0
- package/data/CONSTRAINTS.json +1606 -0
- package/data/demo/.manuscript/BRIEF.md +37 -0
- package/data/demo/.manuscript/CHARACTERS.md +90 -0
- package/data/demo/.manuscript/OUTLINE.md +46 -0
- package/data/demo/.manuscript/PLOT-GRAPH.md +75 -0
- package/data/demo/.manuscript/STATE.md +44 -0
- package/data/demo/.manuscript/STYLE-GUIDE.md +119 -0
- package/data/demo/.manuscript/THEMES.md +51 -0
- package/data/demo/.manuscript/WORK.md +51 -0
- package/data/demo/.manuscript/config.json +59 -0
- package/data/demo/.manuscript/drafts/body/1-the-letter-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/2-the-workshop-DRAFT.md +51 -0
- package/data/demo/.manuscript/drafts/body/3-the-pier-DRAFT.md +45 -0
- package/data/demo/.manuscript/drafts/body/4-the-clock-DRAFT.md +59 -0
- package/data/demo/.manuscript/plans/5-the-reunion-PLAN.md +52 -0
- package/data/demo/.manuscript/reviews/2-the-workshop-REVIEW.md +61 -0
- package/data/export-templates/scriveno-academic.latex +184 -0
- package/data/export-templates/scriveno-acm.latex +67 -0
- package/data/export-templates/scriveno-apa7.latex +83 -0
- package/data/export-templates/scriveno-book.typst +175 -0
- package/data/export-templates/scriveno-chapbook.typst +121 -0
- package/data/export-templates/scriveno-elsevier.latex +76 -0
- package/data/export-templates/scriveno-epub.css +386 -0
- package/data/export-templates/scriveno-fixed-layout-epub.css +76 -0
- package/data/export-templates/scriveno-fixed-layout.opf +23 -0
- package/data/export-templates/scriveno-ieee.latex +77 -0
- package/data/export-templates/scriveno-lncs.latex +79 -0
- package/data/export-templates/scriveno-picturebook.typst +113 -0
- package/data/export-templates/scriveno-poetry-submission-styles.md +45 -0
- package/data/export-templates/scriveno-poetry-submission.docx +0 -0
- package/data/export-templates/scriveno-smashwords-styles.md +45 -0
- package/data/export-templates/scriveno-smashwords.docx +0 -0
- package/data/export-templates/scriveno-stageplay.typst +129 -0
- package/data/proof/creative-context/README.md +79 -0
- package/data/proof/voice-dna/GUIDED-SAMPLE.md +19 -0
- package/data/proof/voice-dna/README.md +45 -0
- package/data/proof/voice-dna/STYLE-GUIDE-EXCERPT.md +43 -0
- package/data/proof/voice-dna/UNGUIDED-SAMPLE.md +11 -0
- package/data/proof/watchmaker-flow/README.md +78 -0
- package/docs/architecture.md +425 -0
- package/docs/command-reference.md +2384 -0
- package/docs/configuration.md +228 -0
- package/docs/context-protocol.md +81 -0
- package/docs/contributing.md +430 -0
- package/docs/creative-context.md +158 -0
- package/docs/development.md +152 -0
- package/docs/drafter-quality.md +127 -0
- package/docs/getting-started.md +198 -0
- package/docs/history-protocol.md +96 -0
- package/docs/proof-artifacts.md +56 -0
- package/docs/publishing.md +296 -0
- package/docs/release-notes.md +457 -0
- package/docs/runtime-support.md +77 -0
- package/docs/sacred-texts.md +296 -0
- package/docs/shipped-assets.md +129 -0
- package/docs/testing.md +156 -0
- package/docs/translation.md +343 -0
- package/docs/voice-dna.md +297 -0
- package/docs/work-types.md +339 -0
- package/lib/architectural-profiles.js +134 -0
- package/package.json +54 -0
- package/templates/BRIEF.md +51 -0
- package/templates/CHARACTERS.md +64 -0
- package/templates/CONTEXT.md +56 -0
- package/templates/OUTLINE.md +36 -0
- package/templates/RECORD.md +68 -0
- package/templates/STATE.md +50 -0
- package/templates/STYLE-GUIDE.md +121 -0
- package/templates/THEMES.md +36 -0
- package/templates/WORK.md +67 -0
- package/templates/WORLD.md +62 -0
- package/templates/WRITING-RULES.md +156 -0
- package/templates/academic/ARGUMENT-MAP.md +40 -0
- package/templates/academic/CONCEPTS.md +34 -0
- package/templates/academic/CONTEXT.md +29 -0
- package/templates/academic/PROPOSAL.md +37 -0
- package/templates/academic/QUESTIONS.md +24 -0
- package/templates/config.json +72 -0
- package/templates/pitfalls/comic.md +54 -0
- package/templates/pitfalls/commentary.md +62 -0
- package/templates/pitfalls/memoir.md +48 -0
- package/templates/pitfalls/novel.md +53 -0
- package/templates/pitfalls/poetry_collection.md +63 -0
- package/templates/pitfalls/research_paper.md +66 -0
- package/templates/pitfalls/runbook.md +64 -0
- package/templates/pitfalls/screenplay.md +54 -0
- package/templates/platforms/README.md +16 -0
- package/templates/platforms/apple/manifest.yaml +20 -0
- package/templates/platforms/bn/manifest.yaml +20 -0
- package/templates/platforms/d2d/manifest.yaml +20 -0
- package/templates/platforms/google/manifest.yaml +20 -0
- package/templates/platforms/ingram/manifest.yaml +44 -0
- package/templates/platforms/kdp/manifest.yaml +42 -0
- package/templates/platforms/kobo/manifest.yaml +20 -0
- package/templates/platforms/smashwords/manifest.yaml +26 -0
- package/templates/sacred/COSMOLOGY.md +88 -0
- package/templates/sacred/DOCTRINES.md +45 -0
- package/templates/sacred/FIGURES.md +69 -0
- package/templates/sacred/FRAMEWORK.md +98 -0
- package/templates/sacred/LINEAGES.md +52 -0
- package/templates/sacred/README.md +20 -0
- package/templates/sacred/THEOLOGICAL-ARC.md +69 -0
- package/templates/sacred/catholic/manifest.yaml +93 -0
- package/templates/sacred/islamic-hafs/manifest.yaml +134 -0
- package/templates/sacred/islamic-warsh/manifest.yaml +134 -0
- package/templates/sacred/jewish/manifest.yaml +56 -0
- package/templates/sacred/orthodox/manifest.yaml +98 -0
- package/templates/sacred/pali/manifest.yaml +20 -0
- package/templates/sacred/protestant/manifest.yaml +86 -0
- package/templates/sacred/sanskrit/manifest.yaml +20 -0
- package/templates/sacred/tewahedo/manifest.yaml +106 -0
- package/templates/sacred/tibetan/manifest.yaml +20 -0
- package/templates/technical/AUDIENCE.md +26 -0
- package/templates/technical/DEPENDENCIES.md +19 -0
- package/templates/technical/DOC-BRIEF.md +45 -0
- package/templates/technical/PROCEDURES.md +37 -0
- package/templates/technical/REFERENCES.md +36 -0
- package/templates/technical/SYSTEM.md +25 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Visualize a character's emotional and growth arc across the story.
|
|
3
|
+
argument-hint: "[name]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:character-arc -- Character Arc Visualization
|
|
7
|
+
|
|
8
|
+
Visualize a character's emotional and growth arc aligned with story structure beats.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:character-arc <name>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are visualizing a character's arc. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `file_adaptations` and `commands.character-arc.adapted`)
|
|
20
|
+
- The adapted characters file (CHARACTERS.md / FIGURES.md / CONCEPTS.md per `file_adaptations`)
|
|
21
|
+
- `PLOT-GRAPH.md` (story arc structure -- cross-reference per D-03)
|
|
22
|
+
- `OUTLINE.md` (scene/chapter mapping)
|
|
23
|
+
|
|
24
|
+
Determine adapted terminology from CONSTRAINTS.json:
|
|
25
|
+
- Default: "character arc"
|
|
26
|
+
- Sacred: "figure arc" (renamed via CONSTRAINTS.json)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### ARC VISUALIZATION
|
|
31
|
+
|
|
32
|
+
<character_arc_display>
|
|
33
|
+
Find the character by name (case-insensitive match).
|
|
34
|
+
|
|
35
|
+
Read the character's arc data:
|
|
36
|
+
- Starting state (emotional/spiritual beginning)
|
|
37
|
+
- Arc type (Change, Growth, Fall, Steadfast, Flat/Catalytic)
|
|
38
|
+
- Turning points
|
|
39
|
+
- Ending state
|
|
40
|
+
|
|
41
|
+
**Cross-reference with PLOT-GRAPH.md (D-03):**
|
|
42
|
+
Map the character's transformation moments to story structure beats:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
STORY BEAT | CHARACTER STATE | EMOTIONAL LEVEL
|
|
46
|
+
========================|========================|================
|
|
47
|
+
Status Quo | {starting state} | -----*---------
|
|
48
|
+
Inciting Incident | {reaction/response} | --------*------
|
|
49
|
+
First Plot Point | {commitment/refusal} | ----------*----
|
|
50
|
+
Rising Action | {struggle/growth} | -----------*---
|
|
51
|
+
Midpoint | {mirror moment} | ------*--------
|
|
52
|
+
All Is Lost | {lowest point} | --*------------
|
|
53
|
+
Climax | {transformation} | -------------*-
|
|
54
|
+
Resolution | {ending state} | ----------*----
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
For each story beat from PLOT-GRAPH.md:
|
|
58
|
+
1. Show the beat name and its position in the arc
|
|
59
|
+
2. Describe the character's emotional/psychological state at that point
|
|
60
|
+
3. Note if this beat corresponds to a character turning point
|
|
61
|
+
4. Show emotional trajectory direction (ascending, descending, steady, shift)
|
|
62
|
+
|
|
63
|
+
**Arc Summary:**
|
|
64
|
+
- Arc type: {type}
|
|
65
|
+
- Total turning points: {N}
|
|
66
|
+
- Key transformation moment: {which beat triggers the main change}
|
|
67
|
+
- Theme connection: {which thematic thread this arc serves}
|
|
68
|
+
|
|
69
|
+
If PLOT-GRAPH.md is missing or empty:
|
|
70
|
+
- Show the character's arc data standalone (start -> turning points -> end)
|
|
71
|
+
- Note: "Run `/scr:plot-graph` to create the story arc, then re-run this command to see how {name}'s arc aligns with story beats."
|
|
72
|
+
|
|
73
|
+
If the character has no arc data:
|
|
74
|
+
- "No arc defined for {name}. Run `/scr:character-sheet {name} --edit` to add arc information."
|
|
75
|
+
</character_arc_display>
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### Edge Cases
|
|
80
|
+
|
|
81
|
+
- **Character not found:** Show partial matches or direct to cast-list
|
|
82
|
+
- **PLOT-GRAPH.md missing:** Show character arc standalone with note to create plot graph
|
|
83
|
+
- **Character has Flat/Catalytic arc:** Show how they affect other characters' arcs instead of personal transformation
|
|
84
|
+
- **Multiple POV characters:** Show only the requested character; suggest running for each POV
|
|
85
|
+
- **Sacred work type:** Align with theological arc positions instead of standard story beats
|
|
86
|
+
|
|
87
|
+
## Response Contract
|
|
88
|
+
|
|
89
|
+
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.
|
|
90
|
+
|
|
91
|
+
Use this format:
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
Next commands:
|
|
95
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
96
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
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.
|
|
100
|
+
|
|
101
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
Next commands:
|
|
105
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
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,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate a character visual reference sheet prompt for illustration consistency.
|
|
3
|
+
argument-hint: "<name> [--style <style>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:character-ref -- Character Visual Reference Sheet
|
|
7
|
+
|
|
8
|
+
Generate a structured visual reference sheet prompt for a character, suitable for AI image generation or illustrator briefs.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:character-ref <name> [--style <style>]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are generating a character visual reference sheet prompt. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `commands.character-ref`, `file_adaptations`, and `adapted`)
|
|
20
|
+
- `ART-DIRECTION.md` from `.manuscript/` if it exists (for style consistency)
|
|
21
|
+
|
|
22
|
+
### Work Type Adaptation
|
|
23
|
+
|
|
24
|
+
Check CONSTRAINTS.json for work type availability:
|
|
25
|
+
- **Available:** prose, script, visual, interactive
|
|
26
|
+
- **Sacred:** Adapted to `figure-ref` (rename via `commands.character-ref.adapted.sacred.rename`)
|
|
27
|
+
- **Hidden:** academic, poetry, speech_song
|
|
28
|
+
|
|
29
|
+
If the current work type is hidden, respond:
|
|
30
|
+
*"The `character-ref` command is designed for illustrated works. Your {work_type} project uses different visual tools."*
|
|
31
|
+
|
|
32
|
+
If sacred work type, use "figure-ref" terminology throughout and adapt language accordingly (e.g., "figure reference sheet" not "character reference sheet").
|
|
33
|
+
|
|
34
|
+
### Load Character Data
|
|
35
|
+
|
|
36
|
+
Determine the correct characters file from `file_adaptations`:
|
|
37
|
+
- Default: `.manuscript/CHARACTERS.md`
|
|
38
|
+
- Sacred: `.manuscript/FIGURES.md`
|
|
39
|
+
- Academic: `.manuscript/CONCEPTS.md` (though academic is hidden, handle gracefully)
|
|
40
|
+
|
|
41
|
+
Load the adapted characters file.
|
|
42
|
+
|
|
43
|
+
Find the character by name (case-insensitive match, same pattern as character-sheet.md):
|
|
44
|
+
- If no exact match: check for partial matches and list them
|
|
45
|
+
- If no matches at all: "No character named '{name}' found. Run `/scr:cast-list` to see all characters."
|
|
46
|
+
- If characters file is empty or missing: "No characters found. Run `/scr:new-character <name>` to create your first character."
|
|
47
|
+
|
|
48
|
+
### Extract Visual Details
|
|
49
|
+
|
|
50
|
+
From the character's profile, extract:
|
|
51
|
+
- **Physical appearance:** Height, build, skin tone, hair color/style, eye color, age appearance
|
|
52
|
+
- **Distinguishing features:** Scars, tattoos, birthmarks, unusual traits, physical quirks
|
|
53
|
+
- **Clothing:** Default outfit, armor, uniform, accessories -- whatever is described
|
|
54
|
+
- **Props/Items:** Weapons, tools, jewelry, personal items associated with this character
|
|
55
|
+
- **Emotional range:** Key emotional states mentioned in the character's psychology section (want, need, fear, arc)
|
|
56
|
+
- **Body language:** Physical mannerisms tied to personality (posture, gait, gestures)
|
|
57
|
+
|
|
58
|
+
### Generate Structured Prompt
|
|
59
|
+
|
|
60
|
+
Output a structured illustration prompt following the D-01 format:
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
# Character Visual Reference Sheet: {Character Name}
|
|
64
|
+
|
|
65
|
+
## Subject
|
|
66
|
+
{Full physical description in illustrator-ready language. Height, build, coloring, age appearance, distinguishing features. Be specific: "tall and lean, approximately 6'2", with deep brown skin, close-cropped silver hair, and a jagged scar running from left temple to jaw" -- not "a tall man with a scar."}
|
|
67
|
+
|
|
68
|
+
## Poses
|
|
69
|
+
- **Front view:** Full body, neutral standing pose, arms relaxed at sides
|
|
70
|
+
- **3/4 view:** Slight turn showing depth and dimension of features
|
|
71
|
+
- **Profile view:** Left or right profile highlighting facial structure
|
|
72
|
+
- **Action pose:** {Character-appropriate action -- swordfighter in guard stance, scholar leaning over desk, etc.}
|
|
73
|
+
|
|
74
|
+
## Expressions
|
|
75
|
+
{Key emotional states derived from the character's arc and psychology}
|
|
76
|
+
- {Expression 1}: {Description of facial expression and body language}
|
|
77
|
+
- {Expression 2}: {Description}
|
|
78
|
+
- {Expression 3}: {Description}
|
|
79
|
+
{Typically 3-5 expressions: the character's default state, their emotional extreme, and states relevant to their arc}
|
|
80
|
+
|
|
81
|
+
## Clothing & Attire
|
|
82
|
+
- **Default outfit:** {Primary clothing described in detail -- fabrics, colors, fit, condition}
|
|
83
|
+
- **Alternate outfit:** {If the character has described alternate clothing for different contexts}
|
|
84
|
+
- **Accessories:** {Jewelry, belts, pouches, headwear, etc.}
|
|
85
|
+
|
|
86
|
+
## Props & Items
|
|
87
|
+
{Items associated with this character}
|
|
88
|
+
- {Item 1}: {Visual description -- material, size, condition, how they carry/hold it}
|
|
89
|
+
- {Item 2}: {Description}
|
|
90
|
+
|
|
91
|
+
## Style
|
|
92
|
+
{If ART-DIRECTION.md exists, reference its established visual style. Otherwise, derive from genre:}
|
|
93
|
+
- Fantasy: detailed linework, rich color palette, painterly or concept art style
|
|
94
|
+
- Literary fiction: realistic, muted palette, photographic reference quality
|
|
95
|
+
- Sci-fi: clean lines, high contrast, concept art style
|
|
96
|
+
- Children's: warm, rounded forms, bright palette, storybook illustration style
|
|
97
|
+
- Sacred: reverent, iconographic traditions appropriate to the tradition
|
|
98
|
+
{If --style flag provided, use that style instead}
|
|
99
|
+
|
|
100
|
+
## Color Palette
|
|
101
|
+
- **Skin:** {specific tone}
|
|
102
|
+
- **Hair:** {specific color}
|
|
103
|
+
- **Eyes:** {specific color}
|
|
104
|
+
- **Primary clothing color:** {color}
|
|
105
|
+
- **Accent colors:** {secondary colors from outfit/accessories}
|
|
106
|
+
|
|
107
|
+
## Technical Specs
|
|
108
|
+
- **Dimensions:** 2400 x 3200 px (character sheet format)
|
|
109
|
+
- **Resolution:** 300 DPI (print-ready)
|
|
110
|
+
- **Background:** Neutral gray (#808080) or transparent for compositing
|
|
111
|
+
- **Format:** Reference sheet layout with multiple views on single page
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Save Output
|
|
115
|
+
|
|
116
|
+
Save the generated prompt to:
|
|
117
|
+
`.manuscript/illustrations/character-refs/{character-name}-ref.md`
|
|
118
|
+
|
|
119
|
+
Where `{character-name}` is the lowercase, hyphenated version of the character's name (e.g., "Elena Vasquez" becomes "elena-vasquez").
|
|
120
|
+
|
|
121
|
+
Create the directory path if it does not exist.
|
|
122
|
+
|
|
123
|
+
Commit: `illustration: generate {character-name} visual reference sheet`
|
|
124
|
+
|
|
125
|
+
After saving, suggest:
|
|
126
|
+
- "Reference sheet prompt saved. Use this with any AI image tool or share with your illustrator."
|
|
127
|
+
- "For style consistency across all illustrations, run `/scr:art-direction` first."
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### Edge Cases
|
|
132
|
+
|
|
133
|
+
- **Character has minimal physical description:** Generate the prompt with what exists, mark gaps with `{NEEDS DETAIL: describe height/build/etc.}` placeholders, and suggest the writer flesh out the character's appearance in their profile
|
|
134
|
+
- **Multiple characters with similar names:** List matches and ask the writer to specify
|
|
135
|
+
- **Sacred work type:** Use "figure-ref" command name and terminology; reference sheet language should be respectful and tradition-appropriate (avoid casual phrasing)
|
|
136
|
+
- **ART-DIRECTION.md exists:** Style section MUST reference it for consistency; override genre defaults with art direction choices
|
|
137
|
+
- **--style flag provided:** Use the specified style, note if it conflicts with ART-DIRECTION.md
|
|
138
|
+
|
|
139
|
+
## Response Contract
|
|
140
|
+
|
|
141
|
+
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.
|
|
142
|
+
|
|
143
|
+
Use this format:
|
|
144
|
+
|
|
145
|
+
```markdown
|
|
146
|
+
Next commands:
|
|
147
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
148
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
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.
|
|
152
|
+
|
|
153
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
Next commands:
|
|
157
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
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,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Display or edit a specific character's full profile.
|
|
3
|
+
argument-hint: "[name] [--edit]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:character-sheet -- View or Edit Character Profile
|
|
7
|
+
|
|
8
|
+
Display or edit a specific character's complete profile.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:character-sheet <name> [--edit]
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are presenting a character's profile. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `file_adaptations` and `commands.character-sheet.adapted`)
|
|
20
|
+
- `STYLE-GUIDE.md` (voice dimension context)
|
|
21
|
+
|
|
22
|
+
Determine the correct characters file from `file_adaptations`:
|
|
23
|
+
- Default: `CHARACTERS.md`
|
|
24
|
+
- Academic work types: `CONCEPTS.md`
|
|
25
|
+
- Sacred work types: `FIGURES.md`
|
|
26
|
+
|
|
27
|
+
Load the adapted characters file from `.manuscript/`.
|
|
28
|
+
|
|
29
|
+
Determine adapted terminology from CONSTRAINTS.json:
|
|
30
|
+
- Default: "character", "character sheet"
|
|
31
|
+
- Sacred: "figure", "figure sheet"
|
|
32
|
+
- Academic: "concept", "concept sheet"
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### DISPLAY MODE (default)
|
|
37
|
+
|
|
38
|
+
<character_sheet_display>
|
|
39
|
+
Find the character by name (case-insensitive match).
|
|
40
|
+
|
|
41
|
+
If no exact match found:
|
|
42
|
+
- Check for partial matches and list them: "Did you mean: [match1], [match2]?"
|
|
43
|
+
- If no partial matches: "No character named '{name}' found. Run `/scr:cast-list` to see all characters."
|
|
44
|
+
|
|
45
|
+
If the characters file is empty or missing:
|
|
46
|
+
- "No characters found. Run `/scr:new-character <name>` to create your first character."
|
|
47
|
+
|
|
48
|
+
Present the complete profile with all sections:
|
|
49
|
+
|
|
50
|
+
**Identity**
|
|
51
|
+
- Name, age, role, first impression, background
|
|
52
|
+
|
|
53
|
+
**Psychology**
|
|
54
|
+
- Want (conscious desire)
|
|
55
|
+
- Need (unconscious need)
|
|
56
|
+
- Lie (false belief)
|
|
57
|
+
- Ghost (formative backstory event)
|
|
58
|
+
- Fear (greatest fear)
|
|
59
|
+
|
|
60
|
+
**Arc**
|
|
61
|
+
- Starting state, turning point, ending state, arc type
|
|
62
|
+
|
|
63
|
+
**Voice Anchor (D-01)**
|
|
64
|
+
Highlight these 5-8 concrete attributes prominently:
|
|
65
|
+
1. Speech patterns (how they construct sentences)
|
|
66
|
+
2. Vocabulary register (formal, casual, slang, technical)
|
|
67
|
+
3. Sentence length tendency (short/punchy, long/flowing, mixed)
|
|
68
|
+
4. Verbal tics (repeated words, filler phrases, catchphrases)
|
|
69
|
+
5. Internal monologue style (if POV character)
|
|
70
|
+
6. Avoidances (words or topics they never use)
|
|
71
|
+
7. Emotional expression style (direct, deflecting, metaphorical)
|
|
72
|
+
8. Physical mannerisms tied to speech (gestures, pauses)
|
|
73
|
+
|
|
74
|
+
**5-Line Dialogue Sample**
|
|
75
|
+
- Show the voice anchor sample if it exists
|
|
76
|
+
|
|
77
|
+
**Persona Under Pressure**
|
|
78
|
+
- How the character behaves when afraid, angry, lying, avoiding truth, or vulnerable
|
|
79
|
+
- Physical tells that reveal pressure before the character admits anything
|
|
80
|
+
|
|
81
|
+
**Thematic Function**
|
|
82
|
+
- Themes embodied, narrative purpose
|
|
83
|
+
|
|
84
|
+
**Key Relationships**
|
|
85
|
+
- Each relationship with dynamic and tension
|
|
86
|
+
|
|
87
|
+
**Relationship-Specific Interactions**
|
|
88
|
+
- How this character changes with each important person: trust posture, conflict pattern, speech shift, hidden agenda or fear
|
|
89
|
+
</character_sheet_display>
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### EDIT MODE (--edit)
|
|
94
|
+
|
|
95
|
+
<character_sheet_edit>
|
|
96
|
+
Find the character by name (same matching logic as display mode).
|
|
97
|
+
|
|
98
|
+
Walk through each section interactively:
|
|
99
|
+
1. Show the current value for each field
|
|
100
|
+
2. Ask: "Keep, change, or skip?"
|
|
101
|
+
3. If "change": accept the new value
|
|
102
|
+
4. Move to the next field
|
|
103
|
+
|
|
104
|
+
After all sections reviewed:
|
|
105
|
+
- Show a summary of changes
|
|
106
|
+
- Ask for confirmation
|
|
107
|
+
- Update the characters file
|
|
108
|
+
- If voice anchor attributes changed, note that drafter agents will use the updated profile
|
|
109
|
+
|
|
110
|
+
Commit: `character: update {name} profile`
|
|
111
|
+
</character_sheet_edit>
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### Edge Cases
|
|
116
|
+
|
|
117
|
+
- **Character not found:** Show partial matches or direct to cast-list
|
|
118
|
+
- **Multiple partial matches:** List all matches and ask writer to specify
|
|
119
|
+
- **Empty characters file:** Direct to new-character command
|
|
120
|
+
- **No voice anchor data:** Warn that voice consistency may suffer and suggest running `/scr:character-voice-sample` to generate one
|
|
121
|
+
|
|
122
|
+
## Response Contract
|
|
123
|
+
|
|
124
|
+
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.
|
|
125
|
+
|
|
126
|
+
Use this format:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
Next commands:
|
|
130
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
131
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
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.
|
|
135
|
+
|
|
136
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
137
|
+
|
|
138
|
+
```markdown
|
|
139
|
+
Next commands:
|
|
140
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
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,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update a character's evolving state (emotional position, knowledge, possessions, relationships) after a unit lands.
|
|
3
|
+
argument-hint: "<name> [--from <unit>]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:character-touch -- Update Character State
|
|
7
|
+
|
|
8
|
+
CHARACTERS.md (and FIGURES.md for sacred works) is a living document. Voice anchors and physical descriptions stay stable; emotional position, knowledge, possessions, and relationships move as the story unfolds. Without periodic touch-ups, the file freezes at character-creation time and the drafter ends up reading a stale "current emotional state" two-thirds of the way through the manuscript.
|
|
9
|
+
|
|
10
|
+
This command is the touch-up surface. Use it after `/scr:draft` (especially when the drafter emits a CHARACTER STATE NUDGE), or any time you've written prose that visibly shifts a character.
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/scr:character-touch <name> # interactive update
|
|
16
|
+
/scr:character-touch <name> --from <unit> # base the update on a specific unit's drafted prose
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If `<name>` is omitted, list all characters from CHARACTERS.md and ask which to update.
|
|
20
|
+
|
|
21
|
+
## Instruction
|
|
22
|
+
|
|
23
|
+
### STEP 0: BOOTSTRAP (context-cost protocol)
|
|
24
|
+
|
|
25
|
+
Read `.manuscript/CONTEXT.md` first if it exists. If its `Updated` timestamp is newer than `.manuscript/STATE.md` and newer than the newest file in `.manuscript/drafts/body/`, use it for orientation (project title, work type, current unit, recent activity). Step 1 still needs the full CHARACTERS.md (you will be editing it). See `docs/context-protocol.md` for the contract.
|
|
26
|
+
|
|
27
|
+
### STEP 1: LOAD CONTEXT
|
|
28
|
+
|
|
29
|
+
Load these project files:
|
|
30
|
+
|
|
31
|
+
- `.manuscript/config.json` -- to determine work type (CHARACTERS.md vs FIGURES.md naming)
|
|
32
|
+
- `.manuscript/CHARACTERS.md` (or `FIGURES.md` for sacred works) -- the file you will update
|
|
33
|
+
- `.manuscript/STATE.md` -- to know which units have been drafted
|
|
34
|
+
- The drafted unit file for the touch-up basis: `.manuscript/drafts/body/{N}-*-DRAFT.md` either for the unit named in `--from` or, if `--from` is omitted, the most recently modified draft file (the unit whose state shift is most likely fresh in the writer's mind)
|
|
35
|
+
|
|
36
|
+
### STEP 2: RESOLVE THE CHARACTER
|
|
37
|
+
|
|
38
|
+
If the writer named a character, find their entry in CHARACTERS.md by case-insensitive name match. If no match, suggest the closest names from the file and stop.
|
|
39
|
+
|
|
40
|
+
If the writer did not name a character, list every character from CHARACTERS.md (one per line, with their voice anchor as a hint) and ask which to update.
|
|
41
|
+
|
|
42
|
+
### STEP 3: PROPOSE A DELTA
|
|
43
|
+
|
|
44
|
+
Read the basis draft file (from STEP 1). Identify what about this character has visibly shifted in this unit. Cover four dimensions; skip any that did not change:
|
|
45
|
+
|
|
46
|
+
1. **Emotional position** -- where they are now vs where the file says they were (e.g. "from grieving to numb-determined")
|
|
47
|
+
2. **Knowledge** -- what they learned this unit that they did not know before (or, less commonly, what they have forgotten or been deceived into believing)
|
|
48
|
+
3. **Possessions** -- objects gained, lost, given, taken (e.g. "now carries the letter; left the coat behind")
|
|
49
|
+
4. **Relationships** -- with whom, how shifted (e.g. "trust with Marcus broken; new alliance with Sarah forming")
|
|
50
|
+
5. **Relationship-specific interaction** -- whether this unit changed how the character behaves with another person (speech shift, trust posture, conflict pattern, hidden agenda or fear)
|
|
51
|
+
|
|
52
|
+
Present the proposed delta to the writer in this exact format:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Character: <name>
|
|
56
|
+
Basis: <unit name from draft filename>
|
|
57
|
+
|
|
58
|
+
Proposed updates to <NAME>'s entry in CHARACTERS.md:
|
|
59
|
+
|
|
60
|
+
Emotional position
|
|
61
|
+
was: <current text from CHARACTERS.md>
|
|
62
|
+
now: <proposed new text>
|
|
63
|
+
|
|
64
|
+
Knowledge gained
|
|
65
|
+
+ <new knowledge bullet>
|
|
66
|
+
+ <new knowledge bullet>
|
|
67
|
+
|
|
68
|
+
Possessions
|
|
69
|
+
+ <gained>
|
|
70
|
+
- <lost or given>
|
|
71
|
+
|
|
72
|
+
Relationships
|
|
73
|
+
<other character>: <new state>
|
|
74
|
+
|
|
75
|
+
Relationship-specific interaction
|
|
76
|
+
<other character>: <new trust posture, conflict pattern, speech shift, hidden agenda or fear>
|
|
77
|
+
|
|
78
|
+
Apply these updates? (yes / no / edit)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
If the writer accepts (`yes`), proceed to STEP 4. If `edit`, ask which dimension to revise and re-prompt. If `no`, exit with no changes and no log entry.
|
|
82
|
+
|
|
83
|
+
### STEP 4: APPLY THE DELTA
|
|
84
|
+
|
|
85
|
+
Update the character's entry in `.manuscript/CHARACTERS.md` (or `FIGURES.md`):
|
|
86
|
+
|
|
87
|
+
- **Replace** the existing "Emotional position" / "Current emotional state" line with the new value. If the entry has no such line, add it under the section the writer's character template uses for evolving state (look for "Current state", "Arc state", or just append to the end of the entry).
|
|
88
|
+
- **Append** new knowledge bullets under a "Knowledge" subsection (create the subsection if absent).
|
|
89
|
+
- **Append** possession changes under a "Possessions" subsection (create the subsection if absent), with `+` for gained and `-` for lost.
|
|
90
|
+
- **Update or append** relationship lines under a "Relationships" subsection (create the subsection if absent).
|
|
91
|
+
- **Update or append** pairwise behavior under a "Relationship-specific interactions" subsection (create the subsection if absent).
|
|
92
|
+
|
|
93
|
+
**Do not touch:**
|
|
94
|
+
- The character's voice anchor (this is identity, not state -- voice changes are a separate craft decision and need a different command)
|
|
95
|
+
- Their physical description (height, eye color, distinguishing features -- those are stable unless the prose explicitly changed them, in which case treat as a Knowledge or Possession entry: "lost left arm in chapter 12")
|
|
96
|
+
- Their name, age-at-introduction, or backstory section
|
|
97
|
+
|
|
98
|
+
Preserve the file's existing formatting and section order.
|
|
99
|
+
|
|
100
|
+
### STEP 5: STAMP THE UPDATE
|
|
101
|
+
|
|
102
|
+
Add a one-line "Last touched" marker under the character's entry:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
_Last touched: {ISO timestamp} -- after drafting <unit name>_
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If a Last-touched line already exists, replace it.
|
|
109
|
+
|
|
110
|
+
### STEP 6: HISTORY LOG
|
|
111
|
+
|
|
112
|
+
Append one line to `.manuscript/HISTORY.log` per `docs/history-protocol.md`:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
{ISO timestamp} | scr:character-touch | character=<name> | basis=<unit name> | dimensions=<comma-separated list of changed dimensions> | outcome=ok
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
If the writer chose `no` and exited with no changes, do not append a line. Touch-ups that go nowhere are not state events.
|
|
119
|
+
|
|
120
|
+
### STEP 7: SUGGEST NEXT
|
|
121
|
+
|
|
122
|
+
End with a one-line suggestion:
|
|
123
|
+
|
|
124
|
+
> Updated <name>. The next `/scr:draft` invocation will read the new state. Consider running `/scr:scan` if multiple characters drifted in this unit.
|
|
125
|
+
|
|
126
|
+
## Response Contract
|
|
127
|
+
|
|
128
|
+
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.
|
|
129
|
+
|
|
130
|
+
Use this format:
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
Next commands:
|
|
134
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
135
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
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.
|
|
139
|
+
|
|
140
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
Next commands:
|
|
144
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|
|
148
|
+
|
|
149
|
+
## Tone
|
|
150
|
+
|
|
151
|
+
Brisk and editorial. The writer just finished a draft; they're in flow. Surface the proposed delta, get a yes / no / edit answer, apply, get out. Do not narrate. Do not ask follow-up questions beyond the delta confirmation.
|
|
152
|
+
|
|
153
|
+
## What this command is not
|
|
154
|
+
|
|
155
|
+
- **Not a re-write of the character's profile.** Use `/scr:new-character` to start fresh, `/scr:character-sheet <name>` to view, this command to update evolving state.
|
|
156
|
+
- **Not an arc analysis.** Use `/scr:character-arc <name>` to see the trajectory across units.
|
|
157
|
+
- **Not automatic.** This command exists because automatic state updates risk silently overwriting the writer's intentional choices. The writer is always in the loop on a character's state.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate a dialogue sample to preview a character's voice before drafting.
|
|
3
|
+
argument-hint: "[name]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /scr:character-voice-sample -- Preview Character Voice
|
|
7
|
+
|
|
8
|
+
Generate a dialogue sample to preview how a character sounds before drafting scenes with them.
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
```
|
|
12
|
+
/scr:character-voice-sample <name>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Instruction
|
|
16
|
+
|
|
17
|
+
You are generating a voice sample for a character. Load:
|
|
18
|
+
- `.manuscript/config.json` (to get `work_type`)
|
|
19
|
+
- Scriveno's installed/shared `CONSTRAINTS.json` (global `~/.scriveno/data/CONSTRAINTS.json` or project `.scriveno/data/CONSTRAINTS.json`) (to check `file_adaptations`, `commands.character-voice-sample.adapted`, and `feature_prerequisites`)
|
|
20
|
+
- `STYLE-GUIDE.md` (writer's voice dimensions -- the sample must feel like this writer's prose)
|
|
21
|
+
|
|
22
|
+
Determine the correct characters file from `file_adaptations`:
|
|
23
|
+
- Default: `CHARACTERS.md`
|
|
24
|
+
- Academic work types: `CONCEPTS.md`
|
|
25
|
+
- Sacred work types: `FIGURES.md`
|
|
26
|
+
|
|
27
|
+
Load the adapted characters file from `.manuscript/`.
|
|
28
|
+
|
|
29
|
+
**Prerequisites check** (from CONSTRAINTS.json `feature_prerequisites`):
|
|
30
|
+
- The characters file must exist with at least one character entry
|
|
31
|
+
- `STYLE-GUIDE.md` must exist
|
|
32
|
+
- If either is missing: "This command requires {missing_file}. Run {generator_command} first."
|
|
33
|
+
|
|
34
|
+
Determine adapted terminology:
|
|
35
|
+
- Default: "character voice sample"
|
|
36
|
+
- Sacred: "register sample" (renamed via CONSTRAINTS.json)
|
|
37
|
+
- Academic: "concept voice" (adapted tone)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### GENERATE VOICE SAMPLE
|
|
42
|
+
|
|
43
|
+
<voice_sample_generation>
|
|
44
|
+
Find the character by name (case-insensitive match).
|
|
45
|
+
|
|
46
|
+
Read the character's existing profile, focusing on:
|
|
47
|
+
- Voice anchor attributes (speech patterns, vocabulary register, sentence length, verbal tics, internal monologue style)
|
|
48
|
+
- Speech patterns section (register, tics, vocabulary, sentence length, avoidances)
|
|
49
|
+
- Persona under pressure (how fear, anger, lying, or vulnerability change the voice)
|
|
50
|
+
- Relationship-specific interactions (the character may sound different depending on who they are speaking to)
|
|
51
|
+
- Psychology (want, need, lie -- these shape HOW they speak)
|
|
52
|
+
- Key relationships (they may speak differently to different people)
|
|
53
|
+
|
|
54
|
+
Generate exactly 5 lines of dialogue that showcase:
|
|
55
|
+
1. Their vocabulary register and sentence length
|
|
56
|
+
2. At least one verbal tic or catchphrase
|
|
57
|
+
3. Their emotional expression style
|
|
58
|
+
4. A moment of subtext (saying one thing, meaning another)
|
|
59
|
+
5. Their unique rhythm distinct from other characters
|
|
60
|
+
|
|
61
|
+
Include brief stage direction / action beats between lines to ground the dialogue in physical reality:
|
|
62
|
+
```
|
|
63
|
+
"[Dialogue line 1.]" Character does something physical.
|
|
64
|
+
|
|
65
|
+
"[Dialogue line 2.]" Brief internal beat or reaction.
|
|
66
|
+
|
|
67
|
+
"[Dialogue line 3.]" Action or gesture.
|
|
68
|
+
|
|
69
|
+
"[Dialogue line 4.]" Beat.
|
|
70
|
+
|
|
71
|
+
"[Dialogue line 5.]"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
After presenting the sample, ask:
|
|
75
|
+
- "Does this sound like {name}? You can:"
|
|
76
|
+
- **Approve** -- save this as the voice anchor in the characters file
|
|
77
|
+
- **Adjust** -- tell me what to change (too formal, needs more humor, wrong tic, etc.)
|
|
78
|
+
- **Regenerate** -- try a completely fresh sample
|
|
79
|
+
</voice_sample_generation>
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### Edge Cases
|
|
84
|
+
|
|
85
|
+
- **Character has no voice data yet:** Generate based on psychology and role, then note the sample is speculative and should be refined
|
|
86
|
+
- **Character not found:** Show partial matches or direct to cast-list
|
|
87
|
+
- **STYLE-GUIDE.md missing:** Warn that voice consistency cannot be verified without the style guide
|
|
88
|
+
- **Sacred work type:** Use "register sample" terminology; voice attributes map to sacred registers (prophetic, wisdom, legal, etc.)
|
|
89
|
+
|
|
90
|
+
## Response Contract
|
|
91
|
+
|
|
92
|
+
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.
|
|
93
|
+
|
|
94
|
+
Use this format:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
Next commands:
|
|
98
|
+
- `/scr:...`: One short sentence explaining what this path will do.
|
|
99
|
+
- `/scr:...`: One short sentence explaining what this alternate path will do.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
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.
|
|
103
|
+
|
|
104
|
+
If the writer seems unsure or no specific next command is obvious, include this default option:
|
|
105
|
+
|
|
106
|
+
```markdown
|
|
107
|
+
Next commands:
|
|
108
|
+
- `/scr:next`: Inspect the project state and choose the right next step.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
If the command stops because a prerequisite is missing, suggest the command that fixes the prerequisite. Keep every explanation practical and writer-facing.
|