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.
npx skills add https://github.com/jwynia/agent-skills --skill chapter-drafter
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.
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.
Before invoking this skill, ensure:
Do NOT use this skill if:
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
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.
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 |
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 |
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) |
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) |
Each pass produces a score from 0-100:
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 |
| 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.
Maintain across scenes:
After each scene, extract and store:
Use as constraint for subsequent scenes: "Character X speaks like [markers]"
Track:
Each scene checks:
After cliche-transcendence pass, record:
Use as constraint: "Already transcended [X], maintain freshness"
Use the progress tracker template to persist state:
## 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]
When fixing one pass breaks another:
Escalation: If conflict persists after 2 attempts, flag scene for human review.
Pattern: Keeps iterating because one criterion is at WARN.
Fix: WARN is acceptable. Accept at threshold after iteration limit.
Pattern: Jumps to prose-style when scene-sequencing failed.
Fix: Hard gate on structural passes. FAIL blocks progression.
Pattern: Each scene drafted in isolation, losing voice and threads.
Fix: Explicit context loading before each scene draft.
Pattern: Fixes dialogue, doesn't check if prose-style regressed.
Fix: Always re-evaluate current pass + downstream after any fix.
Pattern: Hits iteration limit, proceeds without documentation.
Fix: Log all limit exits with categorized remaining issues.
context/chapter-drafter/[chapter]-progress.mddrafts/[story]/[chapter]/scene-[N].mdcontext/chapter-drafter/[chapter]-context.md| 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 |
| Output | Next step |
|--------|-----------|
| Draft chapter | revision (for full manuscript revision) |
| Flagged scenes | Human review |
| Context state | Next chapter drafting |
Input: Chapter outline with 5 scene beats
Process:
Output:
drafts/[story]/[chapter]/Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when implementing any feature or bugfix, before writing implementation code
Use when you have a spec or requirements for a multi-step task, before touching code
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.
| Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Official Opentrons Protocol API for OT-2 and Flex robots. Use when writing protocols specifically for Opentrons hardware with full access to Protocol API v2 features. Best for production Opentrons protocols, official API compatibility. For multi-vendor automation or broader equipment control use pylabrobot.
Take jwynia/chapter-drafter from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.