Sprint 56f: Human-readable file naming - Chapter_N_draft/review_a/b/c/final
This commit is contained in:
140
skills/guides/CozyMysteryGuide.md
Normal file
140
skills/guides/CozyMysteryGuide.md
Normal file
@@ -0,0 +1,140 @@
|
||||
# Cozy Mystery Style Guide — Crimson Leaf Publishing
|
||||
|
||||
This guide is authoritative for all cozy mysteries produced at CLP.
|
||||
Every agent writing or editing cozy mystery content must read and apply this guide.
|
||||
|
||||
---
|
||||
|
||||
## The Core Principle of the Cozy Mystery
|
||||
|
||||
**Cozy mysteries are about community, not crime.**
|
||||
|
||||
The murder (or theft, or scandal) is the catalyst. The real story is about a protagonist who is woven into the fabric of a small, richly rendered world, and who solves the crime precisely because they know that world from the inside out. The reader comes for the puzzle — they stay for the people, the place, and the warmth.
|
||||
|
||||
A reader who solves the mystery on page two and reads to the end anyway is a reader who loves your characters and your world. That is the goal.
|
||||
|
||||
---
|
||||
|
||||
## The Cozy Contract: What Readers Expect
|
||||
|
||||
Cozy readers make a trust agreement with you on page one:
|
||||
|
||||
1. **The world is safe at its core.** There is death, but no graphic gore. There is danger, but the protagonist will not be permanently traumatized. Good wins.
|
||||
2. **The puzzle is fair.** Every clue needed to solve the mystery is visible to the reader before the reveal. Surprises that depend on information the reader never had feel like cheating.
|
||||
3. **The community is real.** The recurring cast is the true product. Readers return for the friend group, the rival, the love interest, the eccentric neighbor — not just the mysteries.
|
||||
4. **The protagonist is warm and competent.** They are not superhuman. They may be messy, funny, or in over their head — but they are genuinely good at noticing, and genuinely care about the people around them.
|
||||
|
||||
Break this contract and you lose your readers.
|
||||
|
||||
---
|
||||
|
||||
## Setting: The Community Is a Character
|
||||
|
||||
### The Small-World Rule
|
||||
|
||||
The setting must be small enough that everyone knows everyone — and large enough to hold secrets. A New England village. A small-town bakery. A knitting circle. A mountain resort in shoulder season. The boundaries of the world must be clear by chapter three.
|
||||
|
||||
### Sensory Grounding
|
||||
|
||||
Every scene should carry sensory detail specific to the setting:
|
||||
- The smell of the bakery at 5 a.m.
|
||||
- The way the rain sounds on the old church roof
|
||||
- The texture of the quilt in the protagonist's lap
|
||||
- The particular creak of the door at the hardware store
|
||||
|
||||
Generic settings feel generic. Specific settings feel like home.
|
||||
|
||||
### Seasonal and Temporal Rhythm
|
||||
|
||||
Cozy mysteries live in time. Use seasonal details, local events (the Harvest Fair, the Summer Reading Program, the town council election) to ground the story in a specific moment. The world has a rhythm; the crime disrupts it; the resolution restores it.
|
||||
|
||||
---
|
||||
|
||||
## The Amateur Sleuth
|
||||
|
||||
### What Makes Them Good at This
|
||||
|
||||
Your protagonist does not have detective training. They have **intimacy**. They know:
|
||||
- Who is lying about being at the bookshop when the murder occurred (they've known her for twenty years)
|
||||
- That the victim and the council chairman had a grudge going back to the zoning dispute in 2019
|
||||
- Which back gate is never locked, because they covered for the groundskeeper once
|
||||
|
||||
The protagonist's edge is community knowledge, not technique. Honor this — never let them out-detective the detective on procedural grounds. Let them out-know the detective on personal grounds.
|
||||
|
||||
### Voice
|
||||
|
||||
The protagonist should be warm, observant, and gently funny. They notice things. They care about people, even the irritating ones. Their internal monologue should feel like a thoughtful neighbor narrating — not a thriller protagonist narrating.
|
||||
|
||||
### Flaws and Limits
|
||||
|
||||
The protagonist gets things wrong. They misread motives. They follow the wrong thread for two chapters. The false solution (thinking it was Character B before discovering it was Character D) is a structural requirement. The protagonist's fallibility makes the final solve satisfying.
|
||||
|
||||
---
|
||||
|
||||
## The Mystery Architecture
|
||||
|
||||
### The Fair-Play Clue Standard
|
||||
|
||||
Every clue must be:
|
||||
- **Present**: The reader sees it when the protagonist does (no off-page discoveries)
|
||||
- **Discoverable**: If the reader went back to look, they'd find it in plain sight
|
||||
- **Honest**: No clue should point so obviously to the culprit that it destroys the puzzle, but no clue should be so buried that no reader could ever catch it
|
||||
|
||||
### The Suspect Architecture
|
||||
|
||||
A well-structured cozy mystery has 4–6 suspects with:
|
||||
- **A real motive** (even if they're innocent)
|
||||
- **An opportunity** (even if alibi'd — alibis can be wrong)
|
||||
- **A surface personality** (what the community believes about them)
|
||||
- **A hidden layer** (what they're actually hiding — even innocent people have secrets)
|
||||
|
||||
Red herrings must be earned. A red herring that seems planted only to mislead is a broken promise. A red herring that reveals something true about a character — even if not the murderer — is good storytelling.
|
||||
|
||||
### Pacing: The Investigation Curve
|
||||
|
||||
- **Act 1**: Establish the world and the victim (before death), introduce the protagonist in their element, then the crime
|
||||
- **Act 2**: Investigation in waves — dead ends, new leads, community disruption, escalating tension (is the protagonist in danger?), false solution
|
||||
- **Act 3**: Revelation scene (often a confrontation or gathering), resolution, restoration of community order
|
||||
|
||||
Each chapter should advance one investigation beat AND one personal/community thread.
|
||||
|
||||
---
|
||||
|
||||
## The Ensemble Cast
|
||||
|
||||
Cozy readers return for the recurring cast. Every series needs:
|
||||
|
||||
- **The Best Friend / Confidant**: Usually suspects everyone the protagonist doesn't; bounces theories; provides emotional support and comic relief
|
||||
- **The Reluctant Authority Figure**: Police detective, sheriff, or inspector who finds the protagonist maddening but secretly relies on them
|
||||
- **The Foil**: Someone whose values or approach to life productively conflict with the protagonist — not a villain, but a friction point that generates story
|
||||
- **The Community Anchor**: The character who embodies the setting — the town elder, the longtime business owner, the local historian
|
||||
- **The Love Interest** (series-long): Slow burn, not fast resolution. Attraction, obstacle, retreat, proximity.
|
||||
|
||||
Every chapter should touch at least two of these relationships — ideally through story-relevant scenes, not just check-ins.
|
||||
|
||||
---
|
||||
|
||||
## Humor: Light, Warm, and Character-Driven
|
||||
|
||||
Cozy humor comes from:
|
||||
- Characters being exactly themselves in absurd situations
|
||||
- The gap between what a character says and what they mean
|
||||
- Small-town logic applied to a murder investigation
|
||||
- The protagonist's internal commentary on the people they love (gently)
|
||||
|
||||
**Never**: dark humor, mean-spirited comedy, laughing at characters the reader should care about.
|
||||
|
||||
**Always**: warmth first, wit second, never at the expense of the community.
|
||||
|
||||
---
|
||||
|
||||
## The Cozy Mystery Signature Move
|
||||
|
||||
Every great cozy mystery chapter has at least one moment that exemplifies the genre:
|
||||
|
||||
- A community scene (the potluck, the town meeting, the shop floor) that feels completely normal EXCEPT that someone is hiding something
|
||||
- A piece of gossip that turns out to be a clue
|
||||
- A moment of genuine warmth between protagonist and community member that reminds the reader why this world is worth protecting
|
||||
- A small, specific, sensory detail about the setting that makes the world feel real and precious
|
||||
|
||||
The crime is temporary. The community is permanent. Write every chapter like you believe that.
|
||||
36
steps/blog_draft_step.yml
Normal file
36
steps/blog_draft_step.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
type: think
|
||||
max_tokens: 4000
|
||||
hint: |
|
||||
BLOG POST DRAFT
|
||||
|
||||
ASSIGNMENT
|
||||
Title: {item_title}
|
||||
Brief: {item_brief}
|
||||
Target reader: {audience}
|
||||
Voice: {voice}
|
||||
Word count target: {item_target_words} words
|
||||
Keywords to work in naturally: {item_keywords}
|
||||
|
||||
Before writing, confirm:
|
||||
- TOPIC and TARGET READER
|
||||
- HOOK: the first sentence drops the reader into a real scenario or provocative question
|
||||
- PROMISE: the one thing they walk away with
|
||||
- KEY POINTS to cover (use the brief above)
|
||||
- TONE and WORD COUNT TARGET
|
||||
- CALL TO ACTION
|
||||
|
||||
Write the full blog post:
|
||||
- # Title as H1 (make it specific and curiosity-driven, not generic)
|
||||
- Optional subhead in italics
|
||||
- Opening hook: first 2–3 sentences pull the reader in immediately
|
||||
- Body: 3–5 sections with bold subheadings, short readable paragraphs
|
||||
- At least one concrete example, number, or real scenario per section
|
||||
- "Try This Week" or equivalent action section before the closing
|
||||
- Memorable closing line that reinforces the promise
|
||||
|
||||
Tone rules (apply the voice above):
|
||||
- Peer-to-peer. Write like a knowledgeable friend, not a corporate brochure.
|
||||
- Use "you" and "your" — not "one" or "the reader."
|
||||
- Short sentences preferred. No filler paragraphs.
|
||||
- No listicles of 10+ items without grouping them into themes.
|
||||
- Work the keywords in naturally — never stuff them.
|
||||
20
steps/blog_polish_step.yml
Normal file
20
steps/blog_polish_step.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
type: think
|
||||
max_tokens: 4000
|
||||
model: power
|
||||
hint: |
|
||||
BLOG POST POLISH
|
||||
|
||||
Read your draft as the target reader would on their phone.
|
||||
|
||||
Apply these editorial passes in sequence:
|
||||
1. CUT — eliminate any warmup sentences, vague generalities, or brochure-speak
|
||||
2. SHARPEN — every subheading should be scannable and specific
|
||||
3. HOOK CHECK — does the opening pull in the first two sentences?
|
||||
4. CTA CHECK — is the call to action specific and doable this week?
|
||||
5. VOICE CHECK — does it sound human and direct throughout?
|
||||
6. KEYWORD CHECK — are the keywords present and naturally integrated (not stuffed)?
|
||||
|
||||
Target word count: stay within the specified range. Quality over quantity.
|
||||
|
||||
Output ONLY the polished final blog post starting with # [Title].
|
||||
No commentary, no "Pass 2" label, no preamble.
|
||||
60
steps/chapter_pass0_bible.yml
Normal file
60
steps/chapter_pass0_bible.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
type: think
|
||||
hint: |
|
||||
PASS 0 — BIBLE, CONTINUITY, AND DRAFT PROMPT
|
||||
|
||||
GENRE: {genre_name} | AUDIENCE: {genre_audience}
|
||||
PROSE STYLE GUIDE: {prose_style}
|
||||
TARGET CHAPTER LENGTH: ~{chapter_target_words} words
|
||||
|
||||
GENRE GUIDE: Your skills section contains exactly the guide for {genre_name}. Apply it fully.
|
||||
|
||||
CONTINUITY GUARDRAILS:
|
||||
- Use ONLY the outline / character bible and the immediately previous chapter for continuity.
|
||||
- Ignore future chapters, editorial reviews, roundtables, polish drafts, and any non-chapter artifacts.
|
||||
- Never pull facts from a deliverable whose filename indicates a later chapter than {chapter_ref}.
|
||||
|
||||
⚠️ CRITICAL: Your task name tells you EXACTLY which chapter to write.
|
||||
Look at the CURRENT MESSAGE — write THAT chapter and ONLY that chapter.
|
||||
Do NOT write Chapter 1 unless the message explicitly says "Chapter 1".
|
||||
|
||||
STEP 1 — READ THE OUTLINE / CHARACTER BIBLE:
|
||||
Look at PROJECT DELIVERABLES for the outline file (it contains the Character Bible
|
||||
if this is a fiction project, and the Chapter Outline for all projects).
|
||||
Extract and record:
|
||||
- Protagonist: exact name, voice description, age (if fiction)
|
||||
- Love interest and supporting characters: exact names and roles (if fiction)
|
||||
- World rules / constraints (if paranormal or speculative)
|
||||
- This chapter's summary, emotional beat, and closing hook from the outline
|
||||
If no outline/bible is available, use the character names and project details
|
||||
from the task description above — be CONSISTENT throughout the book.
|
||||
|
||||
STEP 2 — FIND THE PREVIOUS CHAPTER:
|
||||
Look at PROJECT DELIVERABLES for the chapter that comes BEFORE this one.
|
||||
If no previous chapter exists (this IS Chapter 1), skip to STEP 4.
|
||||
|
||||
STEP 3 — QUOTE THE ENDING:
|
||||
Copy the LAST 2–3 sentences of the previous chapter here, word for word.
|
||||
Label them: "PREVIOUS CHAPTER ENDED WITH: ..."
|
||||
Your new chapter MUST pick up from this exact moment.
|
||||
|
||||
STEP 4 — BUILD THE DRAFT PROMPT:
|
||||
Write the exact drafting prompt for the next pass. That prompt must include:
|
||||
- CHAPTER: Exact chapter number and title (from the task message)
|
||||
- POV CHARACTER: Whose perspective are we in?
|
||||
- FIRST LINE: The exact opening sentence, continuing from the previous ending
|
||||
- EMOTIONAL ARC: What does the protagonist feel at start vs end?
|
||||
- CHAPTER GOAL: What plot event MUST happen here?
|
||||
- KEY BEATS: 3–5 numbered scene beats that will form the chapter
|
||||
- CLOSING HOOK: Exact last image or line that makes readers continue
|
||||
- Reminders about continuity, prose style, and target length
|
||||
|
||||
STEP 5 — PREVIOUS CHAPTER CHARACTER STATE (if available):
|
||||
If context contains a block starting with "PREVIOUS CHAPTER CHARACTER STATE:",
|
||||
include it verbatim in the prompt under the heading:
|
||||
"CHARACTER CONTINUITY: The previous chapter ended with these character states:
|
||||
{prev_character_state}"
|
||||
These states override any outline prediction that conflicts with them — the character
|
||||
is ALREADY in this emotional/physical state at the start of this chapter.
|
||||
If no character state was provided, skip this block entirely.
|
||||
|
||||
Stop here. Output ONLY the draft prompt. Do NOT write chapter prose yet.
|
||||
63
steps/chapter_selfcheck.yml
Normal file
63
steps/chapter_selfcheck.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
type: think
|
||||
hint: |
|
||||
SELF-CHECK — STRUCTURAL VALIDATION ONLY
|
||||
|
||||
You have just written a chapter draft. Your job here is narrow: check the draft against
|
||||
the structural checklist below, apply ONLY the corrections that fall within scope, and
|
||||
output the final chapter.
|
||||
|
||||
DRAFT TO CHECK:
|
||||
{steps[1].text}
|
||||
|
||||
CHECKLIST — check each item, note any issue found:
|
||||
1. BEAT & HOOK: Does the chapter reach its intended emotional beat and closing hook
|
||||
from the PASS 0 draft prompt? Flag if the chapter ends without the planned hook.
|
||||
2. NAMES & POV: Are all character names and the POV consistent with the bible/outline?
|
||||
Flag any name that doesn't match the project canon.
|
||||
3. CONTINUITY TERMS: Do world rules, place names, and timeline references match
|
||||
project state? Flag any factual break.
|
||||
4. FORMATTING: Are there obvious section-break artifacts, duplicate headers,
|
||||
or missing chapter title? Flag and fix.
|
||||
5. WORD FLOOR: Is the draft within 10% of {chapter_target_words}? Flag only if
|
||||
critically short (more than 20% under target) — do not expand for style.
|
||||
6. OPENING HOOK: Check the PASS 0 draft prompt ({steps[0].text}) for a line labeled
|
||||
"LOCKED PREVIOUS CHAPTER HOOK:". If present, verify the chapter's opening paragraph
|
||||
directly resolves it. If not, add a brief resolution sentence at the opening —
|
||||
do not leave a locked hook unanswered.
|
||||
7. AUTHOR'S INTENT: Check the PASS 0 draft prompt ({steps[0].text}) for a line
|
||||
starting with "AUTHOR'S INTENT:". If present, confirm the completed chapter
|
||||
satisfies that intent — note whether it was honored or partially missed.
|
||||
|
||||
ALLOWED CORRECTIONS:
|
||||
- Fix a wrong character name to match the canon name
|
||||
- Fix a POV slip (e.g., the chapter is 1st-person but one paragraph shifted to 3rd)
|
||||
- Fix a missing or duplicated chapter title/header
|
||||
- If the chapter is missing its closing hook entirely, add it as a final paragraph
|
||||
that matches the hook specified in the draft prompt — no new invention beyond the
|
||||
planned hook
|
||||
|
||||
NOT ALLOWED — do not make any of these changes:
|
||||
- Improve any sentence for prose quality, rhythm, or lyricism
|
||||
- Deepen emotional beats or add interiority
|
||||
- Expand any description or add sensory detail
|
||||
- Reorder scenes or restructure the chapter
|
||||
- Add new metaphors, aphorisms, or quotable lines
|
||||
- Normalize or upgrade the authorial voice
|
||||
|
||||
OUTPUT FORMAT:
|
||||
Start your response with a VALIDATION LOG section:
|
||||
VALIDATION LOG:
|
||||
1. BEAT & HOOK: [check pass/fail with brief note]
|
||||
2. NAMES & POV: [check pass/fail with brief note]
|
||||
3. CONTINUITY TERMS: [check pass/fail with brief note]
|
||||
4. FORMATTING: [check pass/fail — note any fixes applied]
|
||||
5. WORD FLOOR: [check pass/fail — include word count]
|
||||
6. OPENING HOOK: [check pass/fail or N/A]
|
||||
7. AUTHOR'S INTENT: [honored / partially missed — note / N/A if no intent set]
|
||||
|
||||
Then output the separator on its own line:
|
||||
---BEGIN CHAPTER---
|
||||
|
||||
Then output the final chapter text (corrected where structurally required,
|
||||
verbatim everywhere else). Start the chapter directly with the chapter title
|
||||
and first line. No preamble or commentary within the chapter text.
|
||||
62
steps/cozy_chapter_pass1_draft.yml
Normal file
62
steps/cozy_chapter_pass1_draft.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
type: think
|
||||
model: power
|
||||
hint: |
|
||||
PASS 1 — WRITE THE COZY MYSTERY CHAPTER DRAFT
|
||||
|
||||
Use the draft prompt below as your exact writing brief:
|
||||
|
||||
{steps[0].text}
|
||||
|
||||
Requirements:
|
||||
- Start with the FIRST LINE you planned — make it continue naturally from the previous chapter
|
||||
- If the draft prompt contains a line starting with "LOCKED PREVIOUS CHAPTER HOOK:",
|
||||
your FIRST LINE MUST directly resolve that hook — the reader expects the answer immediately
|
||||
- If the draft prompt contains a line starting with "AUTHOR'S INTENT:", treat it as a
|
||||
binding creative directive — your draft must satisfy that intent in full
|
||||
- Follow the KEY BEATS in order, but write with full scene depth — don't skip
|
||||
- All character names, the town layout, and recurring elements must be consistent with the bible/outline
|
||||
- Every dialogue exchange must be tight and voice-distinct
|
||||
- Show, don't tell — externalize emotion through action, detail, and dialogue
|
||||
- Every scene beat moves the story forward OR reveals character (no filler)
|
||||
- End with the CLOSING HOOK you planned
|
||||
- Match the prose style guide: {prose_style}
|
||||
- Target length: {chapter_target_words} words — write the FULL chapter, not a summary
|
||||
- ⚠️ DO NOT stop early. If you have not reached {chapter_target_words} words, continue
|
||||
writing — add warm detail, community scenes, extended dialogue beats, and character moments
|
||||
until you hit the target. Short chapters will be REJECTED in adjudication.
|
||||
|
||||
DRAFTING DISCIPLINE — apply these on every page:
|
||||
- {prose_style} is a hard constraint, not decoration
|
||||
- Not every paragraph needs a memorable or quotable line — use functional connective prose
|
||||
- Let observation precede interpretation: show the moment before naming what it means
|
||||
- Avoid clustering aphorisms or thesis-style sentences back to back
|
||||
- Prefer scene motion over thesis delivery — action and dialogue carry meaning
|
||||
- Write ONE complete draft now. Do NOT self-polish. Reviewers will give feedback downstream.
|
||||
|
||||
COZY MYSTERY CRAFT RULES — these apply on every page:
|
||||
- THE SETTING IS A CHARACTER: The small town, the bakery, the knitting circle — these are
|
||||
not backdrop, they are the emotional heart of the series. Give the setting sensory life on
|
||||
every page: smells, textures, seasonal details, the rhythms of community life.
|
||||
- COZY WARMTH IS NON-NEGOTIABLE: There is death, but no graphic gore. Danger is present, but
|
||||
the world is ultimately safe and resolvable. Readers come here for comfort. The protagonist
|
||||
is competent, good-hearted, and embedded in a community that matters to them.
|
||||
- CLUE INTEGRITY: Every clue dropped must be discoverable by the reader in retrospect.
|
||||
No solutions pulled from nowhere. Suspects and red herrings are played fair — they have
|
||||
real motives, even if they didn't commit the crime.
|
||||
- THE AMATEUR SLEUTH VOICE: Your protagonist is not a professional detective. They notice
|
||||
things because they KNOW this community, these people, these routines. The edge they have
|
||||
over police is intimacy, not technique. Honor that — let their community knowledge be their
|
||||
superpower.
|
||||
- ENSEMBLE IS EVERYTHING: Cozy mysteries live or die on the recurring cast. Every chapter
|
||||
should feel the community around the protagonist: the best friend who over-shares, the
|
||||
rival who isn't entirely wrong, the authority figure who is simultaneously helpful and
|
||||
obstructive. These relationships are the true product.
|
||||
- HUMOR AND HEART: Cozy mysteries are warm books. There must be humor — light, character-
|
||||
driven, never mean-spirited. There must be heart — the protagonist cares about these people
|
||||
and this place, even the irritating ones.
|
||||
- PACING: Cozy chapters move through scenes naturally, never rushed. A chapter might include
|
||||
an investigation beat, a community scene, and a personal moment. Balance all three.
|
||||
|
||||
Output ONLY the draft chapter text.
|
||||
Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line.
|
||||
No commentary, no plan headers, no "Pass 1" label.
|
||||
62
steps/fiction_editorial_spawn.yml
Normal file
62
steps/fiction_editorial_spawn.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
type: package
|
||||
hint: |
|
||||
The draft chapter has been written, self-checked, and committed.
|
||||
|
||||
CRITICAL — include the `chapter_text` field:
|
||||
Copy the COMPLETE chapter text from the self-check output (step 2 — the final chapter draft)
|
||||
into the `chapter_text` field.
|
||||
Reviewers have NO other way to access the chapter content.
|
||||
Do NOT summarize or truncate it — include every word of the chapter.
|
||||
|
||||
Now spawn the three independent editorial reviewers
|
||||
and the roundtable debate. Use the exact task_names shown — the roundtable depends_on all three.
|
||||
schema:
|
||||
chapter_text: string
|
||||
spawn:
|
||||
- task_type: chapter_review
|
||||
task_name: "Review (Devon): {chapter_ref}"
|
||||
agent_name: Devon
|
||||
priority: 6
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: developmental
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
- task_type: chapter_review
|
||||
task_name: "Review (Lane): {chapter_ref}"
|
||||
agent_name: Lane
|
||||
priority: 6
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: line
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
- task_type: chapter_review
|
||||
task_name: "Review (Cora): {chapter_ref}"
|
||||
agent_name: Cora
|
||||
priority: 6
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: continuity
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
- task_type: chapter_roundtable
|
||||
task_name: "Roundtable: {chapter_ref}"
|
||||
agents:
|
||||
- Devon
|
||||
- Lane
|
||||
- Cora
|
||||
priority: 7
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
chapter_target_words: "{chapter_target_words}"
|
||||
depends_on:
|
||||
- "Review (Devon): {chapter_ref}"
|
||||
- "Review (Lane): {chapter_ref}"
|
||||
- "Review (Cora): {chapter_ref}"
|
||||
57
steps/romance_chapter_pass1_draft.yml
Normal file
57
steps/romance_chapter_pass1_draft.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
type: think
|
||||
model: power
|
||||
hint: |
|
||||
PASS 1 — WRITE THE ROMANCE CHAPTER DRAFT
|
||||
|
||||
Use the draft prompt below as your exact writing brief:
|
||||
|
||||
{steps[0].text}
|
||||
|
||||
Requirements:
|
||||
- Start with the FIRST LINE you planned — make it continue naturally from the previous chapter
|
||||
- If the draft prompt contains a line starting with "LOCKED PREVIOUS CHAPTER HOOK:",
|
||||
your FIRST LINE MUST directly resolve that hook — the reader expects the answer immediately
|
||||
- If the draft prompt contains a line starting with "AUTHOR'S INTENT:", treat it as a
|
||||
binding creative directive — your draft must satisfy that intent in full
|
||||
- Follow the KEY BEATS in order, but write with full scene depth — don't skip
|
||||
- All character names must be consistent with the bible/outline
|
||||
- Every dialogue exchange must be tight and voice-distinct
|
||||
- Show, don't tell — externalize emotion through action, detail, and dialogue
|
||||
- Every scene beat moves the story forward OR reveals character (no filler)
|
||||
- End with the CLOSING HOOK you planned
|
||||
- Match the prose style guide: {prose_style}
|
||||
- Target length: {chapter_target_words} words — write the FULL chapter, not a summary
|
||||
- ⚠️ DO NOT stop early. If you have not reached {chapter_target_words} words, continue
|
||||
writing — add interiority, sensory detail, extended dialogue beats, and scene transitions
|
||||
until you hit the target. Short chapters will be REJECTED in adjudication.
|
||||
|
||||
DRAFTING DISCIPLINE — apply these on every page:
|
||||
- {prose_style} is a hard constraint, not decoration
|
||||
- Not every paragraph needs a memorable or quotable line — use functional connective prose
|
||||
- Let observation precede interpretation: show the moment before naming what it means
|
||||
- Avoid clustering aphorisms or thesis-style sentences back to back
|
||||
- Prefer scene motion over thesis delivery — action and dialogue carry meaning
|
||||
- Write ONE complete draft now. Do NOT self-polish. Reviewers will give feedback downstream.
|
||||
|
||||
ROMANCE-SPECIFIC CRAFT RULES — these apply on every page:
|
||||
- TENSION IS THE PRODUCT: Every scene between leads must have an undercurrent of want,
|
||||
resistance, or denial. The reader must feel the pull even in mundane exchanges.
|
||||
- THE SLOW BURN BANK: Each chapter should deposit into the romantic tension account.
|
||||
A lingering glance. An interrupted touch. A sentence that almost says something.
|
||||
No withdrawal (resolution) until the story earns it.
|
||||
- INTERNAL STAKES: Romantic conflict is internal as much as external. What is she afraid
|
||||
of? What is she protecting herself from? Give us the emotional wound and let it shape
|
||||
every interaction with the love interest.
|
||||
- SEXUAL TENSION (if appropriate to heat level): Not explicit in narrative unless the
|
||||
project specifies — but physical awareness is always there. The smell of his jacket.
|
||||
The accidental brush of hands. The protagonist is hyper-aware of proximity.
|
||||
- SWOON MOMENTS: Plan at least one moment per chapter that the reader will screenshot
|
||||
and send to a friend. One line, one gesture, one micro-scene that is memorable.
|
||||
- DIALOGUE IS SUBTEXT: Romance characters rarely say what they mean. Give us the conversation
|
||||
underneath the conversation. She says "It's fine." She means "I need you to fight for this."
|
||||
- PACING: Slow build. Do NOT resolve the primary romantic tension early. Push through to
|
||||
the black moment before the earned resolution.
|
||||
|
||||
Output ONLY the draft chapter text.
|
||||
Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line.
|
||||
No commentary, no plan headers, no "Pass 1" label.
|
||||
60
steps/scifi_chapter_pass1_draft.yml
Normal file
60
steps/scifi_chapter_pass1_draft.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
type: think
|
||||
model: power
|
||||
hint: |
|
||||
PASS 1 — WRITE THE SCIENCE FICTION CHAPTER DRAFT
|
||||
|
||||
Use the draft prompt below as your exact writing brief:
|
||||
|
||||
{steps[0].text}
|
||||
|
||||
Requirements:
|
||||
- Start with the FIRST LINE you planned — make it continue naturally from the previous chapter
|
||||
- If the draft prompt contains a line starting with "LOCKED PREVIOUS CHAPTER HOOK:",
|
||||
your FIRST LINE MUST directly resolve that hook — the reader expects the answer immediately
|
||||
- If the draft prompt contains a line starting with "AUTHOR'S INTENT:", treat it as a
|
||||
binding creative directive — your draft must satisfy that intent in full
|
||||
- Follow the KEY BEATS in order, but write with full scene depth — don't skip
|
||||
- All character names, alien species, and world terminology must be consistent with the bible/outline
|
||||
- Every dialogue exchange must be tight and voice-distinct
|
||||
- Show, don't tell — externalize emotion through action, detail, and dialogue
|
||||
- Every scene beat moves the story forward OR reveals character (no filler)
|
||||
- End with the CLOSING HOOK you planned
|
||||
- Match the prose style guide: {prose_style}
|
||||
- Target length: {chapter_target_words} words — write the FULL chapter, not a summary
|
||||
- ⚠️ DO NOT stop early. If you have not reached {chapter_target_words} words, continue
|
||||
writing — add interiority, sensory detail, extended dialogue beats, and scene transitions
|
||||
until you hit the target. Short chapters will be REJECTED in adjudication.
|
||||
|
||||
DRAFTING DISCIPLINE — apply these on every page:
|
||||
- {prose_style} is a hard constraint, not decoration
|
||||
- Not every paragraph needs a memorable or quotable line — use functional connective prose
|
||||
- Let observation precede interpretation: show the moment before naming what it means
|
||||
- Avoid clustering aphorisms or thesis-style sentences back to back
|
||||
- Prefer scene motion over thesis delivery — action and dialogue carry meaning
|
||||
- Write ONE complete draft now. Do NOT self-polish. Reviewers will give feedback downstream.
|
||||
|
||||
SCIENCE FICTION CRAFT RULES — these apply on every page:
|
||||
- WORLDBUILDING BY IMMERSION: Do not pause to explain your world. Characters live in it.
|
||||
Let technology, politics, and history emerge through action and dialogue, not exposition.
|
||||
"She scanned for temporal residue" tells us about the world without stopping to define it.
|
||||
- INTERNAL LOGIC IS NON-NEGOTIABLE: Your world's rules must be established and honored.
|
||||
If FTL travel has a cost, that cost appears on every jump. If psionics tire the user,
|
||||
fatigue is present. Consistency is the contract with the reader.
|
||||
- THE IDEA IS A CHARACTER: Science fiction ideas (the alien biology, the AI ethics
|
||||
dilemma, the political paradox) are as much a character as any person. Give the idea
|
||||
presence in every chapter — don't let it fade into backdrop.
|
||||
- SCALE WITHOUT LOSING THE HUMAN: The universe can be vast, the stakes cosmic — but anchor
|
||||
each chapter in one person's experience, one pair of hands, one heartbeat. The reader
|
||||
cannot feel interstellar scale; they CAN feel one soldier's fear before the breach.
|
||||
- SENSE OF WONDER: Every chapter should have at least one moment that enlarges the reader's
|
||||
imagination — a view, a revelation, a technology, a moral question — that makes the
|
||||
universe feel genuinely strange and genuinely real at the same time.
|
||||
- ALIEN AUTHENTICITY: Non-human characters must not be humans in costumes. Alien cognition,
|
||||
alien values, alien humor. If a species has a different relationship with time or memory,
|
||||
show it in their dialogue and choices.
|
||||
- PACING: Alternate tension with revelation. Each chapter should push the external plot
|
||||
forward AND deliver one new piece of world or character understanding.
|
||||
|
||||
Output ONLY the draft chapter text.
|
||||
Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line.
|
||||
No commentary, no plan headers, no "Pass 1" label.
|
||||
53
steps/ya_chapter_pass1_draft.yml
Normal file
53
steps/ya_chapter_pass1_draft.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
type: think
|
||||
model: power
|
||||
hint: |
|
||||
PASS 1 — WRITE THE YA CHAPTER DRAFT
|
||||
|
||||
Use the draft prompt below as your exact writing brief:
|
||||
|
||||
{steps[0].text}
|
||||
|
||||
Requirements:
|
||||
- Start with the FIRST LINE you planned — make it continue naturally from the previous chapter
|
||||
- If the draft prompt contains a line starting with "LOCKED PREVIOUS CHAPTER HOOK:",
|
||||
your FIRST LINE MUST directly resolve that hook — the reader expects the answer immediately
|
||||
- If the draft prompt contains a line starting with "AUTHOR'S INTENT:", treat it as a
|
||||
binding creative directive — your draft must satisfy that intent in full
|
||||
- Follow the KEY BEATS in order, but write with full scene depth — don't skip
|
||||
- All character names must be consistent with the bible/outline
|
||||
- Every dialogue exchange must be tight and voice-distinct
|
||||
- Show, don't tell — externalize emotion through action, detail, and dialogue
|
||||
- Every scene beat moves the story forward OR reveals character (no filler)
|
||||
- End with the CLOSING HOOK you planned
|
||||
- Match the prose style guide: {prose_style}
|
||||
- Target length: {chapter_target_words} words — write the FULL chapter, not a summary
|
||||
- ⚠️ DO NOT stop early. If you have not reached {chapter_target_words} words, continue
|
||||
writing — add interiority, sensory detail, extended dialogue beats, and scene transitions
|
||||
until you hit the target. Short chapters will be REJECTED in adjudication.
|
||||
|
||||
DRAFTING DISCIPLINE — apply these on every page:
|
||||
- {prose_style} is a hard constraint, not decoration
|
||||
- Not every paragraph needs a memorable or quotable line — use functional connective prose
|
||||
- Let observation precede interpretation: show the moment before naming what it means
|
||||
- Avoid clustering aphorisms or thesis-style sentences back to back
|
||||
- Prefer scene motion over thesis delivery — action and dialogue carry meaning
|
||||
- Write ONE complete draft now. Do NOT self-polish. Reviewers will give feedback downstream.
|
||||
|
||||
YA-SPECIFIC CRAFT RULES — these apply on every page:
|
||||
- AUTHENTIC TEEN VOICE: Your protagonist thinks and speaks like an actual teenager.
|
||||
Not a precocious adult, not a caricature. Short, fragmented thoughts. Reactions before
|
||||
analysis. The world feels high-stakes even for "small" problems — that's real teen experience.
|
||||
- EMOTIONAL STAKES: Everything feels life-or-death. A rumor is social death. Being left out
|
||||
is gut-punch lonely. A first kiss is epoch-defining. Honor this even if the plot is bigger.
|
||||
- NO ADULT WISDOM INJECTION: Your teen protagonist does not land on wise, balanced conclusions.
|
||||
They overcorrect, lash out, apologize awkwardly, misread situations. Growth is messy.
|
||||
- INTERIORITY IS CORE: In YA, the internal monologue IS the story. External event + internal
|
||||
reaction × 3 = a chapter. Give us at least two beats of deep interiority per scene.
|
||||
- FRIENDSHIP/BELONGING: Even if the plot is about monsters, the emotional core is about
|
||||
whether the protagonist belongs, is loved, is seen. Keep that alive in every chapter.
|
||||
- PACING: YA chapters end on hooks. Momentum over description. No scene lasts longer than
|
||||
it earns. Get out of scenes early.
|
||||
|
||||
Output ONLY the draft chapter text.
|
||||
Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line.
|
||||
No commentary, no plan headers, no "Pass 1" label.
|
||||
118
templates/blog_series_outline.yml
Normal file
118
templates/blog_series_outline.yml
Normal file
@@ -0,0 +1,118 @@
|
||||
name: blog_series_outline
|
||||
description: "Plan a blog series — generate a numbered multi-post outline with title, brief, and keywords per post."
|
||||
debug: true
|
||||
system: agent_prompt
|
||||
|
||||
agent_prompt:
|
||||
- "= identity.md"
|
||||
- "agent.rag.json"
|
||||
|
||||
sections:
|
||||
- agent
|
||||
- project
|
||||
- rag
|
||||
- deliverables
|
||||
- message
|
||||
- instructions
|
||||
|
||||
steps:
|
||||
- type: think
|
||||
hint: |
|
||||
You are planning a blog series for the project described above.
|
||||
|
||||
Read the project description and current message to understand:
|
||||
- SERIES TOPIC: What is the overall theme or subject?
|
||||
- TARGET READER: Who is this series for? What is their experience level?
|
||||
- VOICE: What tone should the posts use? (e.g., conversational, authoritative, peer-to-peer)
|
||||
- POST COUNT: How many posts? (default to 10 if not specified)
|
||||
- POST LENGTH: Target word count per post? (default to 800-1200 if not specified)
|
||||
|
||||
First, organize the series into 3-5 thematic clusters. Each cluster covers one
|
||||
dimension of the topic. This ensures the series doesn't repeat itself and builds
|
||||
progressively.
|
||||
|
||||
Think through:
|
||||
- What does a beginner need to know first?
|
||||
- What intermediate topics will add depth?
|
||||
- What advanced or nuanced topics complete the picture?
|
||||
- What "quick win" or highly shareable posts should be included?
|
||||
|
||||
Output a CLUSTER PLAN:
|
||||
Cluster A: [Name]
|
||||
- [3-4 post ideas that belong here]
|
||||
Cluster B: [Name]
|
||||
...
|
||||
|
||||
Stop here — the numbered outline comes in the next step.
|
||||
|
||||
- type: think
|
||||
model: power
|
||||
hint: |
|
||||
Using the cluster plan above, write the COMPLETE numbered outline.
|
||||
|
||||
For each post, output exactly this format on ONE LINE:
|
||||
N. [Post Title] — [2-3 sentence brief covering what the post does]. Keywords: [kw1, kw2, kw3]
|
||||
|
||||
Rules:
|
||||
- Titles must be specific and curiosity-driven (not "Introduction to X" — instead "Why X breaks and how to fix it")
|
||||
- Briefs must be 2-3 sentences describing the actual content (not the title restated)
|
||||
- 3 keywords per post: 1 primary, 2 supporting (naturally integrated, not stuffed)
|
||||
- Number sequentially from 1 to N
|
||||
- Posts should build logically — early posts don't assume knowledge from later posts
|
||||
- Vary post types: how-to, analysis, checklist, case study, opinion, beginner explainer
|
||||
- At least 2 posts should be "highly shareable" (strong opinion, surprising finding, or practical quick-win)
|
||||
|
||||
Output ONLY the numbered list. No prose, no cluster headings, no commentary.
|
||||
|
||||
- type: document
|
||||
filename: "{{task_name_slug}}-outline"
|
||||
|
||||
- type: package
|
||||
packet_type: IntakeResponse
|
||||
hint: |
|
||||
Convert every post from the numbered blog outline above into a create_task action.
|
||||
|
||||
RULES:
|
||||
- One action per post, in order
|
||||
- task_name: "Write Post N: [Post Title]" where N is the exact post number from the outline
|
||||
- agent_name: "Iris"
|
||||
- task_type: "blog_write"
|
||||
- description: Start with the post title, then the 2-3 sentence brief, then "Keywords: [keywords]"
|
||||
Full format:
|
||||
"[Post Title]
|
||||
|
||||
[Full brief from the outline — 2-3 sentences describing what the post covers]
|
||||
|
||||
Keywords: [comma-separated keywords from the outline]"
|
||||
- depends_on: "" (all posts can be written in parallel)
|
||||
|
||||
Produce ONLY the numbered actions. No prose, no commentary.
|
||||
schema:
|
||||
actions:
|
||||
- type: create_task
|
||||
task_name: "string"
|
||||
agent_name: "string"
|
||||
task_type: "blog_write"
|
||||
description: "string"
|
||||
depends_on: "string"
|
||||
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
adjudication:
|
||||
enabled: true
|
||||
pass_threshold: 65
|
||||
deliverable_type: coordination
|
||||
criteria:
|
||||
completeness:
|
||||
weight: 35
|
||||
description: "All posts have title, brief, and keywords in the correct format"
|
||||
variety:
|
||||
weight: 30
|
||||
description: "Posts cover different angles, formats, and difficulty levels — no redundancy"
|
||||
progression:
|
||||
weight: 20
|
||||
description: "Series builds logically; posts don't assume knowledge the series hasn't covered"
|
||||
shareability:
|
||||
weight: 15
|
||||
description: "At least 2 posts have obvious viral or sharing potential"
|
||||
@@ -3,6 +3,13 @@ description: "Write a standalone blog post — draft, polish, deliver."
|
||||
debug: true
|
||||
system: agent_prompt
|
||||
|
||||
requires:
|
||||
- item_title
|
||||
- item_brief
|
||||
- voice
|
||||
- audience
|
||||
- item_target_words
|
||||
|
||||
skills:
|
||||
- guides/BlogWritingGuide.md
|
||||
|
||||
@@ -21,55 +28,10 @@ sections:
|
||||
- instructions
|
||||
|
||||
steps:
|
||||
- type: think
|
||||
max_tokens: 4000
|
||||
hint: |
|
||||
Your task message contains the blog content brief. Follow it exactly.
|
||||
|
||||
Before writing, confirm:
|
||||
- TOPIC and TARGET READER
|
||||
- HOOK: the first sentence drops the reader into a real scenario or provocative question
|
||||
- PROMISE: the one thing they walk away with
|
||||
- KEY POINTS to cover
|
||||
- TONE and WORD COUNT TARGET
|
||||
- CALL TO ACTION
|
||||
|
||||
Write the full blog post:
|
||||
- # Title as H1 (make it specific and curiosity-driven, not generic)
|
||||
- Optional subhead in italics
|
||||
- Opening hook: first 2–3 sentences pull the reader in immediately
|
||||
- Body: 3–5 sections with bold subheadings, short readable paragraphs
|
||||
- At least one concrete example, number, or real scenario per section
|
||||
- "Try This Week" or equivalent action section before the closing
|
||||
- Memorable closing line that reinforces the promise
|
||||
|
||||
Tone rules:
|
||||
- Peer-to-peer. Write like a knowledgeable friend, not a corporate brochure.
|
||||
- Use "you" and "your" — not "one" or "the reader."
|
||||
- Short sentences preferred. No filler paragraphs.
|
||||
- No listicles of 10+ items without grouping them into themes.
|
||||
|
||||
- type: think
|
||||
max_tokens: 4000
|
||||
model: power
|
||||
hint: |
|
||||
Read your draft as the target reader would on their phone.
|
||||
|
||||
Apply these editorial passes in sequence:
|
||||
1. CUT — eliminate any warmup sentences, vague generalities, or brochure-speak
|
||||
2. SHARPEN — every subheading should be scannable and specific
|
||||
3. HOOK CHECK — does the opening pull in the first two sentences?
|
||||
4. CTA CHECK — is the call to action specific and doable this week?
|
||||
5. VOICE CHECK — does it sound human and direct throughout?
|
||||
|
||||
Target word count: stay within the specified range. Quality over quantity.
|
||||
|
||||
Output ONLY the polished final blog post starting with # [Title].
|
||||
No commentary, no "Pass 2" label, no preamble.
|
||||
|
||||
- include: steps/blog_draft_step.yml
|
||||
- include: steps/blog_polish_step.yml
|
||||
- type: document
|
||||
filename: "{{task_name_slug}}"
|
||||
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
|
||||
@@ -10,15 +10,25 @@ requires:
|
||||
- chapter_target_words
|
||||
- chapter_ref
|
||||
|
||||
skills:
|
||||
- guides/YAFictionGuide.md
|
||||
- guides/RomanceFictionGuide.md
|
||||
- guides/SciFiFictionGuide.md
|
||||
conditional_skills:
|
||||
- path: guides/YAFictionGuide.md
|
||||
genre_contains:
|
||||
- "YA"
|
||||
- "Young Adult"
|
||||
- path: guides/RomanceFictionGuide.md
|
||||
genre_contains:
|
||||
- "Romance"
|
||||
- "Contemporary Romance"
|
||||
- path: guides/SciFiFictionGuide.md
|
||||
genre_contains:
|
||||
- "Science Fiction"
|
||||
- "Sci-Fi"
|
||||
- "SciFi"
|
||||
- "Science-Fiction"
|
||||
|
||||
# Genre-aware guide use: All three genre guides are injected so this template
|
||||
# can serve any fiction genre. Apply ONLY the guide that matches {genre_name}.
|
||||
# Ignore guides for other genres — conflicting craft signals from non-matching
|
||||
# genres will degrade the chapter. The active genre is always {genre_name}.
|
||||
# Genre-aware guide use: Only the guide whose genre_contains keywords match {genre_name}
|
||||
# is injected. The pipeline skips non-matching guides entirely, so there are no
|
||||
# conflicting craft signals from other genres.
|
||||
|
||||
agent_prompt:
|
||||
- "= identity.md"
|
||||
@@ -43,8 +53,7 @@ steps:
|
||||
PROSE STYLE GUIDE: {prose_style}
|
||||
TARGET CHAPTER LENGTH: ~{chapter_target_words} words
|
||||
|
||||
⚠️ SKILLS & GUIDES NOTE: You have multiple genre guides available.
|
||||
Apply ONLY the guide that matches {genre_name}. Ignore guides for other genres.
|
||||
GENRE GUIDE: Your skills section contains exactly the guide for {genre_name}. Apply it fully.
|
||||
|
||||
CONTINUITY GUARDRAILS:
|
||||
- Use ONLY the outline / character bible and the immediately previous chapter for continuity.
|
||||
@@ -86,6 +95,15 @@ steps:
|
||||
- CLOSING HOOK: Exact last image or line that makes readers continue
|
||||
- Reminders about continuity, prose style, and target length
|
||||
|
||||
STEP 5 — PREVIOUS CHAPTER CHARACTER STATE (if available):
|
||||
If context contains a block starting with "PREVIOUS CHAPTER CHARACTER STATE:",
|
||||
include it verbatim in the prompt under the heading:
|
||||
"CHARACTER CONTINUITY: The previous chapter ended with these character states:
|
||||
{prev_character_state}"
|
||||
These states override any outline prediction that conflicts with them — the character
|
||||
is ALREADY in this emotional/physical state at the start of this chapter.
|
||||
If no character state was provided, skip this block entirely.
|
||||
|
||||
Stop here. Output ONLY the draft prompt. Do NOT write chapter prose yet.
|
||||
|
||||
- type: think
|
||||
@@ -101,6 +119,8 @@ steps:
|
||||
- Start with the FIRST LINE you planned — make it continue naturally from the previous chapter
|
||||
- If the draft prompt contains a line starting with "LOCKED PREVIOUS CHAPTER HOOK:",
|
||||
your FIRST LINE MUST directly resolve that hook — the reader expects the answer immediately
|
||||
- If the draft prompt contains a line starting with "AUTHOR'S INTENT:", treat it as a
|
||||
binding creative directive — your draft must satisfy that intent in full
|
||||
- Follow the KEY BEATS in order, but write with full scene depth — don't skip
|
||||
- All character names must be consistent with the bible/outline
|
||||
- Every dialogue exchange must be tight and voice-distinct
|
||||
@@ -151,6 +171,9 @@ steps:
|
||||
"LOCKED PREVIOUS CHAPTER HOOK:". If present, verify the chapter's opening paragraph
|
||||
directly resolves it. If not, add a brief resolution sentence at the opening —
|
||||
do not leave a locked hook unanswered.
|
||||
7. AUTHOR'S INTENT: Check the PASS 0 draft prompt ({steps[0].text}) for a line
|
||||
starting with "AUTHOR'S INTENT:". If present, confirm the completed chapter
|
||||
satisfies that intent — note whether it was honored or partially missed.
|
||||
|
||||
ALLOWED CORRECTIONS:
|
||||
- Fix a wrong character name to match the canon name
|
||||
@@ -168,12 +191,26 @@ steps:
|
||||
- Add new metaphors, aphorisms, or quotable lines
|
||||
- Normalize or upgrade the authorial voice
|
||||
|
||||
Output the FINAL CHAPTER (corrected where structurally required, verbatim everywhere else).
|
||||
Start directly with the chapter title and first line.
|
||||
No preamble, no validation notes, no commentary — ONLY the chapter text.
|
||||
OUTPUT FORMAT:
|
||||
Start your response with a VALIDATION LOG section:
|
||||
VALIDATION LOG:
|
||||
1. BEAT & HOOK: [check pass/fail with brief note]
|
||||
2. NAMES & POV: [check pass/fail with brief note]
|
||||
3. CONTINUITY TERMS: [check pass/fail with brief note]
|
||||
4. FORMATTING: [check pass/fail — note any fixes applied]
|
||||
5. WORD FLOOR: [check pass/fail — include word count]
|
||||
6. OPENING HOOK: [check pass/fail or N/A]
|
||||
7. AUTHOR'S INTENT: [honored / partially missed — note / N/A if no intent set]
|
||||
|
||||
Then output the separator on its own line:
|
||||
---BEGIN CHAPTER---
|
||||
|
||||
Then output the final chapter text (corrected where structurally required,
|
||||
verbatim everywhere else). Start the chapter directly with the chapter title
|
||||
and first line. No preamble or commentary within the chapter text.
|
||||
|
||||
- type: document
|
||||
filename: "chapter-{chapter_ref}"
|
||||
filename: "Chapter_{chapter_number}_draft"
|
||||
|
||||
- type: package
|
||||
hint: |
|
||||
@@ -194,34 +231,43 @@ steps:
|
||||
task_name: "Review (Devon): {chapter_ref}"
|
||||
agent_name: Devon
|
||||
priority: 6
|
||||
_if: "not meta.is_locked"
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: developmental
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
chapter_number: "{chapter_number}"
|
||||
review_letter: "a"
|
||||
|
||||
- task_type: chapter_review
|
||||
task_name: "Review (Lane): {chapter_ref}"
|
||||
agent_name: Lane
|
||||
priority: 6
|
||||
_if: "not meta.is_locked"
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: line
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
chapter_number: "{chapter_number}"
|
||||
review_letter: "b"
|
||||
|
||||
- task_type: chapter_review
|
||||
task_name: "Review (Cora): {chapter_ref}"
|
||||
agent_name: Cora
|
||||
priority: 6
|
||||
_if: "not meta.is_locked"
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
review_focus: continuity
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
chapter_number: "{chapter_number}"
|
||||
review_letter: "c"
|
||||
|
||||
- task_type: chapter_roundtable
|
||||
task_name: "Roundtable: {chapter_ref}"
|
||||
@@ -230,6 +276,7 @@ steps:
|
||||
- Lane
|
||||
- Cora
|
||||
priority: 7
|
||||
_if: "not meta.is_locked"
|
||||
context:
|
||||
chapter_text: "{chapter_text}"
|
||||
genre_name: "{genre_name}"
|
||||
|
||||
@@ -211,7 +211,13 @@ steps:
|
||||
- EXACTLY one action per chapter from PART 2 of the outline — no more, no less
|
||||
- task_name format: "Write Chapter N: [Chapter Title]" (N is a plain number, 1, 2, 3...)
|
||||
- agent_name: always "Iris"
|
||||
- task_type: always "book_chapter"
|
||||
- task_type: choose based on genre_name from the outline:
|
||||
* "ya_chapter" → if genre_name contains "YA" or "Young Adult"
|
||||
* "romance_chapter" → if genre_name contains "Romance" or "Contemporary Romance"
|
||||
* "scifi_chapter" → if genre_name contains "Science Fiction" or "Sci-Fi" or "Space Opera"
|
||||
* "cozy_mystery_chapter" → if genre_name contains "Cozy Mystery" or "Mystery"
|
||||
* "adult_novel_chapter" → if genre_name contains "Adult" and not YA
|
||||
* "book_chapter" → all other genres (default)
|
||||
- description: >
|
||||
Include the chapter summary, POV character, emotional beat, cliffhanger, character state,
|
||||
dominant tension, and opening location from the chapter outline.
|
||||
|
||||
@@ -76,7 +76,7 @@ steps:
|
||||
No commentary, no change log, no editorial notes — ONLY the chapter.
|
||||
|
||||
- type: document
|
||||
filename: "{{task_name_slug}}-polished"
|
||||
filename: "Chapter_{chapter_number}_final"
|
||||
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
@@ -66,7 +66,7 @@ steps:
|
||||
Reserve judgment on full rewrites — that decision belongs to the roundtable.
|
||||
|
||||
- type: document
|
||||
filename: "review-{chapter_ref}-{agent_slug}"
|
||||
filename: "Chapter_{chapter_number}_review_{review_letter}"
|
||||
|
||||
- type: close
|
||||
rag_update: false
|
||||
|
||||
@@ -110,6 +110,7 @@ steps:
|
||||
genre_name: "{genre_name}"
|
||||
genre_audience: "{genre_audience}"
|
||||
chapter_ref: "{chapter_ref}"
|
||||
chapter_number: "{chapter_number}"
|
||||
chapter_target_words: "{chapter_target_words}"
|
||||
|
||||
adjudication:
|
||||
|
||||
33
templates/cozy_mystery_chapter.yml
Normal file
33
templates/cozy_mystery_chapter.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
name: cozy_mystery_chapter
|
||||
description: "Write one cozy mystery chapter — fair-play clues, warm community life, and an amateur sleuth who wins through intimacy not expertise."
|
||||
extends: book_chapter
|
||||
|
||||
# Cozy mystery projects load the genre guide from skills
|
||||
skills:
|
||||
- guides/CozyMysteryGuide.md
|
||||
|
||||
steps:
|
||||
- include: steps/chapter_pass0_bible.yml
|
||||
- include: steps/cozy_chapter_pass1_draft.yml
|
||||
- include: steps/chapter_selfcheck.yml
|
||||
- type: document
|
||||
filename: "chapter-{chapter_ref}"
|
||||
- include: steps/fiction_editorial_spawn.yml
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
adjudication:
|
||||
pass_threshold: 80
|
||||
criteria:
|
||||
clue_integrity:
|
||||
weight: 20
|
||||
description: "Any clue or red herring introduced is discoverable in retrospect — nothing comes from nowhere; suspects have real motives"
|
||||
cozy_atmosphere:
|
||||
weight: 15
|
||||
description: "The chapter feels warm, community-rooted, and safe — the world is troubled but ultimately resolvable; no gratuitous darkness"
|
||||
ensemble_presence:
|
||||
weight: 15
|
||||
description: "Recurring cast members contribute meaningfully — the community feels alive, not just backdrop"
|
||||
prose_quality:
|
||||
weight: 20
|
||||
description: "Writing is vivid and readable; voice is consistent with {prose_style}"
|
||||
33
templates/romance_chapter.yml
Normal file
33
templates/romance_chapter.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
name: romance_chapter
|
||||
description: "Write one Romance chapter — sexual tension, slow burn, and earned emotional stakes."
|
||||
extends: book_chapter
|
||||
|
||||
# Romance projects load the Romance guide directly
|
||||
skills:
|
||||
- guides/RomanceFictionGuide.md
|
||||
|
||||
steps:
|
||||
- include: steps/chapter_pass0_bible.yml
|
||||
- include: steps/romance_chapter_pass1_draft.yml
|
||||
- include: steps/chapter_selfcheck.yml
|
||||
- type: document
|
||||
filename: "chapter-{chapter_ref}"
|
||||
- include: steps/fiction_editorial_spawn.yml
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
adjudication:
|
||||
pass_threshold: 80
|
||||
criteria:
|
||||
romantic_tension:
|
||||
weight: 25
|
||||
description: "Chapter builds or maintains palpable tension between leads; slow-burn deposit honored"
|
||||
swoon_moment:
|
||||
weight: 15
|
||||
description: "At least one memorable micro-scene that captures the romantic promise of the story"
|
||||
emotional_authenticity:
|
||||
weight: 15
|
||||
description: "Internal stakes are clear; the protagonist's resistance/want feels real, not contrived"
|
||||
prose_quality:
|
||||
weight: 20
|
||||
description: "Writing is vivid and readable; voice is consistent with {prose_style}"
|
||||
33
templates/scifi_chapter.yml
Normal file
33
templates/scifi_chapter.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
name: scifi_chapter
|
||||
description: "Write one science fiction chapter — internal logic, sense of wonder, and human stakes inside a vast universe."
|
||||
extends: book_chapter
|
||||
|
||||
# Sci-fi projects load the SciFi guide directly
|
||||
skills:
|
||||
- guides/SciFiFictionGuide.md
|
||||
|
||||
steps:
|
||||
- include: steps/chapter_pass0_bible.yml
|
||||
- include: steps/scifi_chapter_pass1_draft.yml
|
||||
- include: steps/chapter_selfcheck.yml
|
||||
- type: document
|
||||
filename: "chapter-{chapter_ref}"
|
||||
- include: steps/fiction_editorial_spawn.yml
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
adjudication:
|
||||
pass_threshold: 80
|
||||
criteria:
|
||||
worldbuilding_consistency:
|
||||
weight: 20
|
||||
description: "World rules established earlier in the manuscript are honored — no retcons or forgotten constraints"
|
||||
internal_logic:
|
||||
weight: 15
|
||||
description: "Technology, alien biology, political systems, and physics behave consistently within the story's own rules"
|
||||
sense_of_wonder:
|
||||
weight: 15
|
||||
description: "At least one moment per chapter enlarges the reader's imagination — a revelation, a view, a moral question"
|
||||
prose_quality:
|
||||
weight: 20
|
||||
description: "Writing is vivid and readable; voice is consistent with {prose_style}"
|
||||
30
templates/ya_chapter.yml
Normal file
30
templates/ya_chapter.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
name: ya_chapter
|
||||
description: "Write one YA chapter — authentic teen voice, emotional stakes, and fast pacing."
|
||||
extends: book_chapter
|
||||
|
||||
# YA projects load the YA guide directly (no conditional matching needed)
|
||||
skills:
|
||||
- guides/YAFictionGuide.md
|
||||
|
||||
steps:
|
||||
- include: steps/chapter_pass0_bible.yml
|
||||
- include: steps/ya_chapter_pass1_draft.yml
|
||||
- include: steps/chapter_selfcheck.yml
|
||||
- type: document
|
||||
filename: "chapter-{chapter_ref}"
|
||||
- include: steps/fiction_editorial_spawn.yml
|
||||
- type: close
|
||||
rag_update: true
|
||||
|
||||
adjudication:
|
||||
pass_threshold: 82
|
||||
criteria:
|
||||
ya_voice_authenticity:
|
||||
weight: 20
|
||||
description: "Protagonist has an authentic teen voice — not an adult impersonating a teenager"
|
||||
emotional_stakes:
|
||||
weight: 15
|
||||
description: "Chapter stakes feel genuinely high to the teen protagonist, even if objectively small"
|
||||
prose_quality:
|
||||
weight: 20
|
||||
description: "Writing is vivid and readable; voice is consistent with {prose_style}"
|
||||
Reference in New Issue
Block a user