home / skills / jwynia / agent-skills / chapter-drafter
This skill helps you draft polished chapter drafts from outlines through iterative editorial passes, ensuring structure, voice, and originality improve each
npx playbooks add skill jwynia/agent-skills --skill chapter-drafterReview the files below or copy the command above to add this skill to your agents.
---
name: chapter-drafter
description: Autonomously draft and polish chapters through multi-skill editorial passes. Use when you have a complete outline and want to produce a polished first draft with iterative refinement.
license: MIT
metadata:
author: jwynia
version: "1.0"
orchestrates:
- scene-sequencing
- character-arc
- cliche-transcendence
- dialogue
- prose-style
pass_order:
- scene-sequencing
- character-arc
- cliche-transcendence
- dialogue
- prose-style
pass_weights:
scene-sequencing: 35
character-arc: 25
cliche-transcendence: 15
dialogue: 15
prose-style: 10
max_iterations: 3
global_max_iterations: 50
type: orchestrator
mode: generative
domain: fiction
---
# Chapter Drafter: Orchestrator Skill
You autonomously draft and polish chapter scenes through iterative editorial passes. Given an outline, you produce polished first-draft prose by drafting each scene, evaluating it against editorial criteria, and revising until quality thresholds are met.
## Core Principle
**Orchestration is iteration with hierarchy.** Fix structure before character, character before originality, originality before dialogue, dialogue before prose. Don't polish what might be cut; don't revise dialogue in a scene that needs structural rework.
---
## Prerequisites
Before invoking this skill, ensure:
1. **Complete outline exists** - Scene beats with goals, conflicts, and intended outcomes
2. **Characters defined** - Lie/want/need, voice patterns, arc positions
3. **World established** - Setting details sufficient for scene work
4. **Story-sense diagnosis complete** - No structural story problems remaining
**Do NOT use this skill if:**
- Outline is still in flux
- Character arcs undefined
- Story-sense would diagnose structural problems
---
## The Orchestration Loop
```
FOR each scene in chapter outline:
1. BUILD CONTEXT
- Load character voices from previous scenes
- Load open plot threads
- Load cliche avoidances
- Extract scene purpose from outline
2. DRAFT SCENE
- Generate initial prose from outline beat
- Apply character voices
- Maintain plot thread continuity
3. EVALUATION LOOP (max 5 cycles)
│
├─► Pass 1: scene-sequencing (35%)
│ └─► If FAIL: REWRITE scene
├─► Pass 2: character-arc (25%)
├─► Pass 3: cliche-transcendence (15%)
├─► Pass 4: dialogue (15%)
└─► Pass 5: prose-style (10%)
│
Calculate composite score
│
├─► >= 80: ACCEPT
├─► 60-79: TARGETED FIX → re-evaluate
├─► 40-59: REWRITE → return to draft
└─► <40: REJECT → full re-draft from outline
4. POST-ACCEPT
- Extract character voice patterns → update context
- Track plot thread changes → update registry
- Record cliche transcendences → update avoidances
- Write scene to output
- Update progress tracker
END FOR
```
---
## Pass Criteria
### Pass 1: Scene-Sequencing (35% weight)
Evaluates Goal-Conflict-Disaster structure and pacing.
| Criterion | PASS | WARN | FAIL |
|-----------|------|------|------|
| **Goal clarity** | POV goal clear in opening beats | Goal exists but buried | No discernible goal |
| **Conflict escalation** | Opposition intensifies | Conflict static but present | No real opposition |
| **Disaster quality** | "Yes, but..." or "No, and..." | Simple "No" | Clean "Yes" or no resolution |
| **Sequel presence** | Reaction-dilemma-decision present | Abbreviated sequel | Missing after high-tension |
| **Scene-sequel ratio** | Matches intended pacing | Slight mismatch | Severely mismatched |
**Critical:** If scene-sequencing FAILS, do NOT proceed to other passes. Structural problems invalidate downstream evaluation.
### Pass 2: Character-Arc (25% weight)
Evaluates transformation consistency and arc progress.
| Criterion | PASS | WARN | FAIL |
|-----------|------|------|------|
| **Lie visibility** | False belief evident in choices | Lie present but unstated | No lie operative |
| **Want/Need gap** | Clear tension between stated/actual | Gap exists but unclear | Want = Need (no tension) |
| **Arc progress** | Scene advances or challenges arc | Arc static but consistent | Character contradicts arc |
| **Transformation markers** | Choices reflect arc position | Position unclear | Acts against personality |
### Pass 3: Cliche-Transcendence (15% weight)
Evaluates originality via orthogonality test.
| Criterion | PASS | WARN | FAIL |
|-----------|------|------|------|
| **Form axis** | Non-default form | Slight variation | Exactly genre default |
| **Knowledge axis** | Own concerns, accidental intersection | Some plot awareness | Fully story-serving |
| **Goal axis** | Own agenda that collides | Goal connected to plot | Purely protagonist-serving |
| **Role axis** | Own story that intersects | Somewhat independent | Exists only for hero |
| **Orthogonality test** | 2+ axes orthogonal | 1 axis orthogonal | All axes match default |
### Pass 4: Dialogue (15% weight)
Evaluates voice distinctiveness, subtext, and function.
| Criterion | PASS | WARN | FAIL |
|-----------|------|------|------|
| **Voice distinctiveness** | Characters distinguishable without tags | Some overlap | Identical voices (D1) |
| **Subtext presence** | Gap between said and meant | Occasional direct statements | Everything on-the-nose (D4) |
| **Double-duty test** | 3+ functions per exchange | 2 functions | Single function only (D5) |
| **Naturalness** | Contractions, interruptions, rhythm | Slightly formal | Wooden/stilted (D2) |
| **Exposition handling** | Information through conflict | Minor "as you know" | Exposition dump (D3) |
### Pass 5: Prose-Style (10% weight)
Evaluates sentence-level craft.
| Criterion | PASS | WARN | FAIL |
|-----------|------|------|------|
| **Sentence variety** | Length and structure vary | Some variation | Monotonous (P4) |
| **Clarity** | Concrete, clear antecedents | Occasional abstraction | Unclear writing (P2) |
| **Voice consistency** | Diction level consistent | Minor shifts | Random shifts (P6) |
| **Economy** | Words earn place | Minor redundancy | Overwrought (P3) |
| **Active voice** | Passive intentional | Some default passive | Passive overuse (P5) |
---
## Composite Scoring
Each pass produces a score from 0-100:
- All PASS = 100
- Each WARN = -15
- Each FAIL = -40
**Composite = SUM(pass_score × pass_weight)**
| Composite | Outcome | Action |
|-----------|---------|--------|
| >= 80 | ACCEPT | Scene complete, proceed to next |
| 60-79 | REVISE | Fix lowest-scoring pass, re-evaluate |
| 40-59 | REWRITE | Regenerate with failure constraints |
| < 40 | REJECT | Full re-draft from outline |
---
## Iteration Limits
| Level | Limit | On Exceed |
|-------|-------|-----------|
| Per-pass | 3 | Escalate to rewrite |
| Per-scene | 12 | Accept at threshold 50, flag for review |
| Per-chapter | 50 | Stop, report remaining issues |
**Diminishing returns detection:** If improvement < 10% between iterations, accept current state or escalate.
---
## Context Accumulation
Maintain across scenes:
### Character Voices
After each scene, extract and store:
- Vocabulary patterns per character
- Sentence rhythm patterns
- Directness level
- Verbal tics and avoidances
Use as constraint for subsequent scenes: "Character X speaks like [markers]"
### Plot Threads
Track:
- **Open threads** - Introduced, not resolved
- **Closed threads** - Resolved this chapter
- **Foreshadowing** - Planted for future payoff
Each scene checks:
- No contradiction with established facts
- Open threads acknowledged or advanced
- At least one element progresses
### Cliche Avoidances
After cliche-transcendence pass, record:
- Which defaults were avoided
- How they were transcended
- New elements that feel fresh
Use as constraint: "Already transcended [X], maintain freshness"
---
## Progress Tracker
Use the progress tracker template to persist state:
```markdown
## Chapter Progress: [Title]
Started: [timestamp]
Current: Scene [N], Pass [M], Iteration [K]
### Scenes
| Scene | Status | Pass | Iterations | Score | Issues |
|-------|--------|------|------------|-------|--------|
### Context
- Character Voices: [accumulated]
- Plot Threads: [open/closed]
- Cliche Avoidances: [list]
### Change Log
- [timestamp] [change]
```
---
## Revision Strategy
### Targeted Fix (score 60-79)
1. Identify lowest-scoring pass
2. Extract specific failure criteria
3. Generate minimal fix addressing that criterion
4. Re-evaluate that pass + downstream passes
5. If pass improves, recalculate composite
### Rewrite (score 40-59)
1. Preserve scene goal from outline
2. Generate new draft with explicit constraints:
- "Must include clear goal in opening"
- "Conflict must escalate"
- etc. based on failures
3. Re-run full evaluation loop
### Reject (score < 40)
1. Return to outline beat
2. Re-draft from scratch
3. Treat as new scene (reset iterations)
---
## Conflict Resolution
When fixing one pass breaks another:
1. **Detect:** Re-run all passes after any fix
2. **Compare:** Did any pass regress?
3. **Prioritize:** Higher-weight pass wins ties
4. **Seek synthesis:** Can fix satisfy both?
5. **Accept trade-off:** If irreconcilable, accept per hierarchy
**Escalation:** If conflict persists after 2 attempts, flag scene for human review.
---
## Anti-Patterns
### The Infinite Polisher
**Pattern:** Keeps iterating because one criterion is at WARN.
**Fix:** WARN is acceptable. Accept at threshold after iteration limit.
### The Pass Skipper
**Pattern:** Jumps to prose-style when scene-sequencing failed.
**Fix:** Hard gate on structural passes. FAIL blocks progression.
### The Context Amnesiac
**Pattern:** Each scene drafted in isolation, losing voice and threads.
**Fix:** Explicit context loading before each scene draft.
### The Cascade Blind Spot
**Pattern:** Fixes dialogue, doesn't check if prose-style regressed.
**Fix:** Always re-evaluate current pass + downstream after any fix.
### The Silent Failer
**Pattern:** Hits iteration limit, proceeds without documentation.
**Fix:** Log all limit exits with categorized remaining issues.
---
## Output Persistence
### Progress Tracker
- **Location:** `context/chapter-drafter/[chapter]-progress.md`
- **Update:** After each scene acceptance
- **Purpose:** Resume point if interrupted
### Scene Output
- **Location:** `drafts/[story]/[chapter]/scene-[N].md`
- **Update:** On scene acceptance
- **Purpose:** Accumulated draft prose
### Context State
- **Location:** `context/chapter-drafter/[chapter]-context.md`
- **Update:** After each scene
- **Purpose:** Character voices, threads, avoidances
---
## Integration
### Inbound (feeds into chapter-drafter)
| Skill | What it provides |
|-------|------------------|
| outline-collaborator | Scene beats with goal-conflict-disaster |
| character-arc | Lie/want/need for each character |
| worldbuilding | Setting details for scene work |
| story-sense | Confirmation structure is solid |
### Outbound (chapter-drafter produces)
| Output | Next step |
|--------|-----------|
| Draft chapter | revision (for full manuscript revision) |
| Flagged scenes | Human review |
| Context state | Next chapter drafting |
---
## Example Invocation
**Input:** Chapter outline with 5 scene beats
**Process:**
1. Load outline, confirm prerequisites
2. Initialize progress tracker
3. For each scene:
- Build context from prior scenes
- Draft initial prose
- Run evaluation loop
- On ACCEPT: extract context, write output
4. Complete: 5 polished scenes, flagged issues documented
**Output:**
- 5 scene files in `drafts/[story]/[chapter]/`
- Progress tracker showing all iterations
- Context file for next chapter
- List of any flagged issues for human review
This skill autonomously drafts and polishes chapter scenes through iterative editorial passes given a complete outline. It produces a polished first draft by drafting each scene, evaluating it against weighted editorial criteria, and revising until quality thresholds are met. The system enforces a hierarchy of fixes so structure is addressed before character, dialogue, and prose.
For each scene the skill loads context (character voices, open plot threads, cliche avoidances) and generates an initial draft from the outline beat. It then runs up to five weighted evaluation passes (scene-sequencing, character-arc, cliche-transcendence, dialogue, prose-style), computes a composite score, and either accepts, targets fixes, rewrites, or rejects the scene. Accepted scenes update the context registry and are written to the draft output.
What triggers a full rewrite versus a targeted fix?
Composite score maps to actions: >=80 accepts, 60–79 triggers targeted fixes for the lowest-scoring pass, 40–59 triggers a rewrite preserving the scene goal, and <40 rejects for full re-draft from the outline.
How does the skill avoid endless polishing?
Iteration limits per pass, per scene, and per chapter enforce stop conditions; diminishing returns detection accepts or escalates if improvement is <10%.