Reader Knows Rule: truncate outline at chapter N, character state from prev chapter

- book_chapter.yml PASS 0: Reader Knows Rule box, outline truncated at chapter_number_next,
  character state priority chain (RAG first, then prev-chapter traits, not final-book state)
- drafting.yml PASS 0: same rule applied, voice-only character profiles
- chapter_pass0_bible.yml (included by scifi/ya/romance/cozy genre templates): same fix
  All three reference {chapter_number_prev}, {chapter_number_next}, {chapter_ref_prev}
  which are now injected by OutlineSyncService.CreateChapterTaskAsync

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Baity
2026-03-31 17:34:10 -04:00
parent c2b0d6c366
commit 15d8ac44d2
3 changed files with 180 additions and 109 deletions

View File

@@ -49,65 +49,71 @@ steps:
GENRE: {genre_name} | AUDIENCE: {genre_audience}
PROSE STYLE GUIDE: {prose_style}
TARGET CHAPTER LENGTH: ~{chapter_target_words} words
THIS CHAPTER: {chapter_number} ({chapter_ref})
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".
╔══════════════════════════════════════════════════════════════════╗
║ THE READER KNOWS RULE ║
║ You may only use information established in chapters 1 through ║
║ {chapter_number}. Stop reading the outline at Chapter ║
║ {chapter_number_next}. Characters enter this chapter as they ║
║ left chapter {chapter_number_prev} -- not as they end at book ║
║ end. ║
╚══════════════════════════════════════════════════════════════════╝
STEP 1 — READ THE OUTLINE / CHARACTER BIBLE:
STEP 1 — READ THE OUTLINE (chapters 1 through {chapter_number} ONLY):
Look at PROJECT DELIVERABLES for the outline file.
STOP at "Chapter {chapter_number_next}:" -- do NOT read beyond.
Extract and record:
- protagonist and supporting cast names
- world rules / constraints
- world rules / constraints established SO FAR
- 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.
CHARACTER VOICE PROFILES (pre-extracted):
{character_profiles}
If this block is empty, search PROJECT DELIVERABLES for the outline file containing
"## Voice Signatures" and copy those profiles here. PASS 1 must write every character
"## Voice Signatures" and copy ONLY the voice/speech patterns here. Do NOT copy
arc resolution or end-state descriptions. PASS 1 must write every character
to their voice profile without exception.
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 2 — CHARACTER STATE (as of chapter {chapter_number_prev}):
Priority order:
1. RAG asset [character-state] — overrides everything. Record as "LIVE CHARACTER STATE:".
2. Established traits from the outline up to chapter {chapter_number_prev} only.
Ignore outcomes that happen in later chapters.
STEP 3 — QUOTE THE ENDING:
Copy the LAST 23 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
- 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: 35 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 — CHECK LIVE CHARACTER STATE (if available):
Look in your RAG context for an asset called [character-state].
If it exists — this is WHERE and WHO each character is RIGHT NOW.
It OVERRIDES any outline predictions about character state.
Record as "LIVE CHARACTER STATE:" for use in PASS 1.
LOCATION CONTINUITY CHECK (perform this if [character-state] is present):
LOCATION CONTINUITY CHECK (if [character-state] is present):
Does this chapter's outline place any character at a location inconsistent
with their Location field in [character-state]?
If conflict found — FLAG before drafting:
"LOCATION CONFLICT: [char] is at [state-location] per last chapter but outline
places them at [outline-location]. Resolve by opening in transit or adjusting."
STEP 3 — 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 5.
STEP 4 — QUOTE THE ENDING:
Copy the LAST 23 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 5 — BUILD THE DRAFT PROMPT:
Write the exact drafting prompt for the next pass. That prompt must include:
- CHAPTER: Exact chapter number and title
- 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 OF THIS CHAPTER?
- CHAPTER GOAL: What plot event MUST happen here?
- KEY BEATS: 35 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
Also note any Active obligations, Open loops, or Known secrets from [character-state]
that should be honored or advanced in this chapter.
Check RAG for [world-state] — current NPC attitudes and faction memory.