Sprint 56h: evolving character sheets + reliable injection

- Split project.rag.md into 6 focused RAG files (voice-signatures, magic-system,
  story-premise, factions, character-state, world-state)
- book_chapter.yml: PASS 0 STEP 5 replaced with live RAG character/world state check +
  location continuity validation; PASS 3 added for character+world state extraction after
  each chapter (rag_write -> character-state RAG + deliverable snapshot)
- chapter_polish.yml: PASS state extraction after final document (full-mode canonical state)
- book_outline.yml: added Factions section template with NPC memory model
- NEW character_update.yml: permanent arc change template (updates static char profile)
- chapter_review.yml: Sprint 56g voice authenticity fixes (fire/ice -> Body/Mind duality)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Baity
2026-03-23 01:06:15 -04:00
parent d54fc87b5d
commit 63f60559b0
12 changed files with 386 additions and 36 deletions

View File

@@ -0,0 +1,6 @@
## Character State — Current (updated after each chapter)
This file is overwritten after each chapter completes. It reflects WHERE and WHO each
character is RIGHT NOW. This file OVERRIDES any outline predictions about character state.
(No chapters have run yet. This file will be populated after Chapter 1 completes.)

View File

@@ -0,0 +1,27 @@
## Factions — The Starfall Accord
This file tracks the factions in The Starfall Accord. Updated as the outline evolves.
### Ignis Academy (Mira's school)
- Home base: Original Ignis Academy campus, merged building
- Leadership: Mira Vasquez (acting co-administrator), prior Ignis faculty
- Attitude toward merger: Defensive pride — they are the host school; deeply territorial
- Attitude toward Dorian's faction: Competitive distrust → cautious respect (arc over book)
- Key NPCs: (to be added when outline defines them)
### Frost-Bound Institute (Dorian's school)
- Home base: Originally separate; now displaced to Ignis campus, Obsidian Wing
- Leadership: Dorian Thorne (acting co-administrator), senior Frost-Bound faculty
- Attitude toward merger: Cold pragmatism — they know the merger was forced; maintaining dignity
- Attitude toward Mira's faction: Professional disdain → reluctant alliance (arc over book)
- Key NPCs: (to be added when outline defines them)
### The High Regency (external antagonist)
- Home base: Capital, Meridian Hall
- Leadership: High Inquisitor Vane (introduced Chapter 5)
- Attitude toward merger: Politically motivated support — using merger to consolidate power
- Threat: Will expose the Accord-as-Lock secret if merger fails on their terms
- Key NPCs: High Inquisitor Vane
### NPC Memory (updated by world-state.rag.md each chapter)
(See world-state.rag.md for current NPC attitudes and faction interaction log)

View File

@@ -0,0 +1,27 @@
## MAGIC SYSTEM — Body/Mind Duality (replaces all fire/ice metaphors)
The Starfall Accord's magic is NOT fire vs. ice. That framing is FORBIDDEN in all chapter writing.
The true duality is BODY (embodied practice) vs. MIND (disciplined will/intent):
- MIRA'S SCHOOL (Ignis Academy) — Magic as embodied practice. Power lives in what the body already
knows: muscle memory, accumulated repetition, the intelligence stored in the hands and spine.
You don't think the spell; you have already done it ten thousand times.
Mira's power is improvisational, adaptive, immediate. She IS what she has done.
Her signature: *"Your body knows. Stop asking your mind for permission."*
- DORIAN'S SCHOOL (Frost-Bound Institute) — Magic as mental architecture. Power lives in disciplined
will and possibility-space: pre-visualization so precise that reality bends to meet the intended
outcome. Students don't practice spells; they build perfect internal models then execute once.
Dorian's power is exact, intentional, pre-planned. He IS what he intends.
His signature: *"You cannot build what you cannot first see, completely, in your mind."*
The conflict: Mira teaches by doing; Dorian teaches by thinking. Their pedagogical philosophies are
in irreconcilable opposition — yet both are demonstrably right, which is the problem.
Deeper layer (Memory/Possibility): Mira occasionally picks up physical memories from things she
touches (she can't always tell if it's true memory or her imagination). Dorian's pre-visualization
sometimes collapses into fixed outcomes — he can't tell if he predicted the future or created it.
Both characters share the same underlying question: *Is what I know real, or did I construct it?*
The climax resolves the duality: both schools need the other to function fully — resolved in unified
magic and action, never in metaphor or explicit theme statement.

View File

@@ -1,19 +1,13 @@
- The Starfall Accord workflow dispatches book_chapter tasks with parameters (genre_name, prose_style, chapter_target_words, chapter_ref, context, depends_on) to enforce sequential production and narrative continuity. ## The Starfall Accord — Pipeline Notes
- The Starfall Accord establishes continuity via quoted previous chapter endings and seamless transitions based on a standard project outline.
- • Editorial workflow uses agent-specific review focuses (developmental/structural by Devon, line/prose by Lane, continuity/character by Cora) to ensure consensus-driven revisions. The Starfall Accord uses these focused RAG files — read all of them:
- The merged academy is hosted at Ignis Academy (Mira's fire-aligned school), with Frost-Bound Institute students and faculty relocating there; Obsidian Suite assigned as Dorian's insulated quarters. - voice-signatures.rag.md — Mira and Dorian character voice profiles (NON-NEGOTIABLE)
- Novel projects implement sequential task dependencies (`depends_on: [previous chapter_ref]`) to enforce chapter-by-chapter production order in the multi-agent pipeline. - magic-system.rag.md — Body/Mind duality magic system (fire/ice FORBIDDEN)
- The Starfall Accord project establishes sequential dependencies across 10 agent tasks for chapter production, with shared context (genre, prose style, ~4000 words, alternating POV). - story-premise.rag.md — Core premise, structure, antagonist, editorial guidelines
- Chapter 6 establishes the romantic midpoint climax: rivals Mira and Dorian consummate during midnight budget negotiations, generating a magical surge that alerts the High Regent and escalates external conflict. - factions.rag.md — Faction definitions and NPC roster
- The resonance chamber's anchor—a rotating obsidian-quartz sphere balancing fire/ice ley lines—permanently fuses into an iridescent marble when stabilized by Mira and Dorian's unified magic, symbolizing irreversible merger and producing a crystalline rose at its base. - character-state.rag.md — DYNAMIC: current character locations/states (overwritten each chapter)
- Chapter production advances via step_index=3 ("package"), queuing editorial pipeline; establishes Null-Void blight and non-magical iron as escalating external threats to merger plot. - world-state.rag.md — DYNAMIC: current NPC memory and faction attitudes (overwritten each chapter)
- The Starfall climax symbolically merges fire and ice via legacy vials into a violet beacon, establishing the new academy's crest and resolving the blood-feud thematically.
- • The Starfall Accord's editorial pipeline requires reviewers to reference prior chapters (e.g., Ch. 4 library scene) and advance both romance (rivals-to-lovers progression) and fantasy plots (e.g., High Council interference) in assessments. Pipeline: book_chapter tasks dispatched with (genre_name, prose_style, chapter_target_words,
- Editorial reviews for Starfall Accord chapters establish a template emphasizing elemental trope reinforcement (e.g., fire/ice contrasts), slow-burn pacing safeguards, and adult tone differentiation from YA. chapter_ref, context, depends_on) for sequential production. Reviewers: Devon (developmental),
- The editorial phase produces per-chapter reviews with actionable revision recommendations prior to polish. Lane (line/prose), Cora (continuity/character). Each chapter depends_on the previous.
- Editorial reviews are assigned distinct foci (e.g., "developmental", "line", "continuity") to enable specialized feedback before roundtable synthesis.
- Editorial pipeline for novel chapters requires three specialized reviewers (one each for developmental/narrative pacing, line edits/character voice, and continuity/thematic consistency) followed by a dependent roundtable debate to synthesize critiques.
- Chapter 5 functions as the novel's structural "Midpoint," delivering the first kiss, a historical revelation pivoting the plot stakes, and introduction of the antagonist (High Inquisitor Vane).
- The Starfall Accord's core magical mechanism is "Resonance," a soul-tether binding that fuses fire/ice lineages, externalizing the rivals-to-lovers arc and anchoring the school merger to a destined personal union.
- In a 10-chapter slow-burn rivals-to-lovers romantic fantasy, Chapter 7 (70% mark) must avoid full romantic union (confession + kiss) and document signing to prevent "False Ending" pacing that deflates stakes for the final 30%.
- The Ember Core (fire relic) fused with ice magic creates a synergistic null-field countermeasure, establishing rivals-to-allies magical equilibrium as core plot architecture for Chapter 9 resolution.

View File

@@ -0,0 +1,31 @@
## The Starfall Accord — Story Premise & Pipeline Notes
### Core Premise
Two rival schools forced into a merger. Mira Vasquez (Ignis Academy) and Dorian Thorne
(Frost-Bound Institute) are assigned as co-administrators. Rivals-to-lovers slow burn across
the administrative and magical conflict of the merger.
### Setting
The merged academy is hosted at Ignis Academy building; Frost-Bound faculty and students
relocating there. Dorian's quarters: Obsidian Suite (insulated, facing north courtyard).
The Resonance Chamber: contains the anchor — a rotating obsidian-quartz sphere that fuses
into an iridescent marble when both schools' magic unify.
### Structure
- Chapter 5 "Midpoint": first kiss, Accord-is-a-LOCK revelation, High Inquisitor Vane introduction
- Chapter 6: romantic escalation, magical surge during late-night session alerts the High Regent
- Chapter 7 (70% mark): must NOT resolve romantic union or sign final document (False Ending prevention)
- Climax: Ember Core + unified magic → violet beacon; new academy crest; blood-feud thematically resolved
### Antagonist
High Inquisitor Vane — introduced Chapter 5. Represents the external authority threatening the merger.
### Editorial Guidelines
- Primary voice check: Can you identify Mira from her dialogue WITHOUT a speaker tag? If not, flag.
- Primary voice check: Can you identify Dorian from his dialogue WITHOUT a speaker tag? If not, flag.
- Look for: at least one verbal imperfection per character per scene.
- DO NOT recommend "elemental trope reinforcement" or fire/ice contrast additions. FORBIDDEN.
- The magic system's body/mind duality should be IMPLICIT in behavior — not stated explicitly.
If a reviewer finds themselves writing "add more body/mind references," they are wrong.
- Pipeline uses sequential task dependencies: each chapter depends_on the previous.
- Reviewers: Devon (developmental/structural), Lane (line/prose), Cora (continuity/character).

View File

@@ -0,0 +1,30 @@
## CHARACTER VOICE SIGNATURES — NON-NEGOTIABLE, ENFORCED IN EVERY SCENE
### Mira Vasquez — Voice Profile
- CURSE SCALE (emotional thermometer — readers learn to read her by which one she uses):
- "stars' sake" = mild irritation
- "burning memory" = genuinely upset
- "past and rot" = furious (the worst one; only people who know her understand)
- Says "obviously" when she means the OPPOSITE (her most reliable sarcasm tell)
- Interrupts her own sentences mid-thought when excited: *"We could — actually. No. Yes. We could."*
- Physically demonstrative: she touches things to understand them. Descriptions are tactile first.
She never says "I think" — she says "it feels like" or "it seems like" and is usually right.
- Never apologizes directly. She fixes things instead.
- Pattern in dialogue: verb-first, action-oriented, short declarative sentences when focused.
Long run-on sentences when excited or arguing. NEVER neat and quotable when emotional.
### Dorian Thorne — Voice Profile
- FORMAL UNDERSTATEMENT SCALE (the worse the situation, the more formal and archaic he gets):
- "this is suboptimal" = minor problem
- "the circumstances are not auspicious" = serious problem
- "this represents a situation requiring our immediate and undivided attention" = people may die
Everyone who knows him learns to fear his politeness.
- NEVER says "I think." Says "the evidence suggests" or "it is probable that."
- Never uses superlatives except for things that matter deeply. When he says "extraordinary" and
means it, everyone in the room stops. Reserve this for maximum effect only.
- Sentences are ALWAYS grammatically complete — EXCEPT when Mira breaks through his composure.
Incomplete sentences = emotional tells. Use them sparingly and only when she has genuinely
cracked his armor.
- Never improvises in public. Except when he does. And it's always for her.
- Pattern in dialogue: subject-verb-object, precise, no wasted words. When he's angry he gets
MORE formal, not less. His emotion shows through subject choice and word order, not volume.

View File

@@ -0,0 +1,6 @@
## World State — Current (updated after each chapter)
This file is overwritten after each chapter completes. It reflects current NPC memory,
faction attitudes, and active world events.
(No chapters have run yet. This file will be populated after Chapter 1 completes.)

View File

@@ -1,4 +1,4 @@
name: book_chapter name: book_chapter
description: "Write one chapter — continuity check, draft, self-check, then spawn editorial review." description: "Write one chapter — continuity check, draft, self-check, then spawn editorial review."
debug: true debug: true
system: agent_prompt system: agent_prompt
@@ -94,20 +94,38 @@ steps:
- KEY BEATS: 35 numbered scene beats that will form the chapter - KEY BEATS: 35 numbered scene beats that will form the chapter
- CLOSING HOOK: Exact last image or line that makes readers continue - CLOSING HOOK: Exact last image or line that makes readers continue
- Reminders about continuity, prose style, and target length - Reminders about continuity, prose style, and target length
- CHARACTER VOICE PROFILES: Copy the "## Voice Signatures" section from the
Character Bible here verbatim. PASS 1 must write every character to their profile.
If no Voice Signatures section exists, omit this block.
STEP 5 — PREVIOUS CHAPTER CHARACTER STATE (if available): STEP 5 — CHECK LIVE CHARACTER STATE (if available):
If context contains a block starting with "PREVIOUS CHAPTER CHARACTER STATE:", Look in your RAG context for an asset called [character-state].
include it verbatim in the prompt under the heading: If it exists — this is WHERE and WHO each character is RIGHT NOW.
"CHARACTER CONTINUITY: The previous chapter ended with these character states: It OVERRIDES any outline predictions about character state.
{prev_character_state}" Record as "LIVE CHARACTER STATE:" for use in PASS 1.
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. LOCATION CONTINUITY CHECK (perform this if [character-state] is present):
If no character state was provided, skip this block entirely. Does this chapter's outline place any character at a location inconsistent
with their Location field in [character-state]?
Example conflict: character-state says "Earth hospital" but outline opens on Mars.
If conflict found — FLAG before drafting:
"LOCATION CONFLICT: [char] is at [state-location] per last chapter but outline
places them at [outline-location]. Resolve: (a) open chapter in transit,
(b) adjust scene to actual location, or (c) write a time-skip bridge paragraph.
Do NOT silently teleport the character."
Also note any Active obligations, Open loops, or Known secrets from [character-state]
that should be honored or advanced in this chapter.
Also check RAG for [world-state] — current NPC attitudes and faction memory.
If present, record as "LIVE WORLD STATE:". Any NPC listed there who appears in
this chapter should behave according to their recorded attitude.
Stop here. Output ONLY the draft prompt. Do NOT write chapter prose yet. Stop here. Output ONLY the draft prompt. Do NOT write chapter prose yet.
- type: think - type: think
model: power model: power
max_tokens: 32000
hint: | hint: |
PASS 1 — WRITE THE DRAFT PASS 1 — WRITE THE DRAFT
@@ -141,6 +159,28 @@ steps:
- Prefer scene motion over thesis delivery — action and dialogue carry meaning - 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. - Write ONE complete draft now. Do NOT self-polish. Reviewers will give feedback downstream.
VOICE ANTI-PATTERNS — THESE ARE FORBIDDEN ON EVERY PAGE:
- Do NOT open any chapter with the "didn't just X; it Y" sentence construction.
Every chapter must have a structurally distinct opener. Vary: in medias res,
quiet beat, dialogue cold open, environmental sweep, interiority.
No two consecutive chapters may use the same opener structure.
- The book's thematic contrast (whatever it is — body/mind, memory/possibility, etc.)
may appear ONCE per scene as a metaphor. Not in every paragraph. Trust the reader.
If you have used the contrast in the last two paragraphs, you may not use it again
for at least three more paragraphs.
- Do NOT label an emotion that you have already shown through action or dialogue.
If the character's hands are shaking, do not also write "she was afraid."
If the dialogue already conveys anger, do not add "his voice was furious."
- Do NOT count or reference chapter numbers in the prose.
"Five chapters of..." is an AI fingerprint. Never.
- Each character must have at least ONE verbal imperfection per scene they appear in:
a sentence they don't finish, a word they use wrong, a line that doesn't land,
a moment of fumbling before the right words come. Perfect dialogue is dead dialogue.
- Check the CHARACTER VOICE PROFILE in the outline/bible (if present) — if each
speaking character's dialogue cannot be identified as THEIRS without a speaker tag,
rewrite until it can. Verbal tics, pet phrases, and characteristic patterns are
non-negotiable signatures.
Output ONLY the draft chapter text. Output ONLY the draft chapter text.
Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line. Start directly with the chapter title (e.g., "Chapter N: [Title]") and opening line.
No commentary, no plan headers, no "Pass 1" label. No commentary, no plan headers, no "Pass 1" label.
@@ -209,10 +249,59 @@ steps:
verbatim everywhere else). Start the chapter directly with the chapter title verbatim everywhere else). Start the chapter directly with the chapter title
and first line. No preamble or commentary within the chapter text. and first line. No preamble or commentary within the chapter text.
- type: think
hint: |
PASS 3 -- CHARACTER + WORLD STATE EXTRACTION
You have just completed the chapter. Extract structured state for continuity tracking.
Write in compact format -- this content will be stored as a RAG asset read by the
NEXT chapter's PASS 0. Every character who appeared must have an entry.
OUTPUT FORMAT -- write this EXACTLY, filling in real values:
# Character State: {chapter_ref}
## [Character Name]
Location: [specific location -- building, floor, city, planet -- no vague "nearby"]
Physical: [injuries, fatigue, notable physical state, or "no injuries"]
Emotional: [dominant emotion at chapter end; what they are CARRYING into next chapter]
Active obligations: [debts/promises owed, format: "owes [person] [what] (Ch[N]) -- UNPAID/PAID"]
Open loops: [unresolved conflicts, unanswered questions, format: "[parties] [issue] (Ch[N]) -- UNRESOLVED/RESOLVED"]
Known secrets: [information this character has that others don't -- format: "knows [what] -- [who does NOT know]"]
Arc: [XX%] -- [one sentence: what permanently changed in this character this chapter, or "no change"]
Permanent: [YES if something permanently changed (power gained/lost, relationship status changed, secret revealed); NO otherwise]
(Repeat for EVERY named character who appeared in this chapter)
# World State: {chapter_ref}
## NPC Memory
- [NPC Name] ([faction/location]): [ATTITUDE] -- [what happened] -- [behavioral consequence]
(List every NPC who interacted with a protagonist and now has a changed attitude)
## Faction Attitudes
- [Faction name]: [current attitude toward protagonists] -- [reason]
(List any faction whose attitude changed this chapter)
## Active World Events
- [Event]: [status and expected timeline]
(List any ongoing world events that will affect future chapters)
CRITICAL: Keep the total output under 3500 characters. Be precise and specific.
Do NOT write prose -- only the structured data above.
- type: rag_write
asset_id: "character-state"
max_chars: 4000
- type: document
filename: "character-state-{chapter_ref}"
- type: document - type: document
filename: "Chapter_{chapter_number}_draft" filename: "Chapter_{chapter_number}_draft"
- type: package - type: package
max_tokens: 12000
hint: | hint: |
The draft chapter has been written, self-checked, and committed. The draft chapter has been written, self-checked, and committed.

View File

@@ -1,4 +1,4 @@
name: book_outline name: book_outline
description: "Boardroom debate to lock the book concept, produce a character bible (for fiction) + full chapter outline, then spawn chapter writing tasks." description: "Boardroom debate to lock the book concept, produce a character bible (for fiction) + full chapter outline, then spawn chapter writing tasks."
debug: true debug: true
system: agent_prompt system: agent_prompt
@@ -116,10 +116,48 @@ steps:
- [Powers, systems, constraints — be precise] - [Powers, systems, constraints — be precise]
- [What limits them? What are the costs?] - [What limits them? What are the costs?]
## Voice Signatures
(REQUIRED for fiction — this section is injected into every chapter to enforce consistent character voice.
Think carefully: these are NON-NEGOTIABLE identifiers the polisher will enforce.)
### [Protagonist name] — Voice Signature
- Curse/stress expression scale: "[mild phrase]" = minor irritation | "[mid phrase]" = upset | "[strong phrase]" = furious
- Verbal tic or sarcasm tell: [e.g., "says 'obviously' when meaning the opposite"]
- Speech pattern when excited: [e.g., "interrupts own sentences mid-thought"]
- What they REACH FOR in descriptions: [e.g., "tactile/kinesthetic — touches things to understand them"]
- What they NEVER say or do in dialogue: [e.g., "never apologizes directly — fixes things instead"]
- Sentence pattern: [e.g., "short declaratives when focused; long run-ons when arguing"]
### [Love interest name] — Voice Signature
- Formality scale (INVERSELY maps to severity): "[mild formal phrase]" = small problem | "[very formal/archaic phrase]" = disaster
- What they NEVER say: [e.g., "never says 'I think' — says 'the evidence suggests' or 'it is probable that'"]
- Superlative rule: [e.g., "never uses superlatives except for things that matter deeply — when they do, it stops the room"]
- Sentence completeness tell: [e.g., "always grammatically complete — EXCEPT when flustered by protagonist, then fragments"]
- Speech pattern: [e.g., "precise, no wasted words; anger shows through subject choice and word order, not volume"]
═══════════════════════════════════════════════ ═══════════════════════════════════════════════
PART 2: CHAPTER OUTLINE (all projects) PART 2: CHAPTER OUTLINE (all projects)
═══════════════════════════════════════════════ ═══════════════════════════════════════════════
## Factions
(REQUIRED for fantasy/speculative — define named factions so NPCs have memory chapter-to-chapter.
These entries are compiled into factions.rag.md and injected into each chapter's world state.)
### [Faction Name]
- Home location: [specific -- city, building, region, planet -- not vague]
- Leader: [name and title]
- Key NPCs: [name (role/function at this location), name (role), ...]
- Initial attitude toward protagonist: [ALLIED / NEUTRAL / WATCHFUL / HOSTILE] -- [one sentence reason]
- Initial attitude toward love interest: [same]
- What they want: [one sentence faction goal]
- What would make them hostile: [threshold / trigger]
- What would make them allied: [threshold / trigger]
(Repeat for every faction in the story -- at minimum: protagonist's school/home,
antagonist's faction, any neutral third party with named NPCs)
---
# [Book Title] # [Book Title]
## Concept Summary ## Concept Summary
- Hook: one sentence that sells the book - Hook: one sentence that sells the book

View File

@@ -1,4 +1,4 @@
name: chapter_polish name: chapter_polish
description: > description: >
Iris applies the editorial consensus changes to the chapter. This is a bounded Iris applies the editorial consensus changes to the chapter. This is a bounded
correction pass, not a rewrite. Only the listed changes are applied; everything correction pass, not a rewrite. Only the listed changes are applied; everything
@@ -60,6 +60,21 @@ steps:
- The authorial and character voice — do NOT normalize it - The authorial and character voice — do NOT normalize it
- Intentional stylistic choices, even unusual ones - Intentional stylistic choices, even unusual ones
- Passages the roundtable marked as STRENGTHS TO PRESERVE - Passages the roundtable marked as STRENGTHS TO PRESERVE
- ALL verbal tics, speech patterns, and idiosyncratic constructions for every character
- Interrupted or incomplete sentences that are character voice, not errors
- "Wrong" word choices that feel authentic to a character's way of thinking
VOICE DEFENDER PASS (do this BEFORE applying any changes):
If a Character Bible or Voice Signatures section exists in the project context:
1. For each named character: read one page of their dialogue with speaker tags removed.
Can you identify the character from voice alone? If NO — note it.
2. Is there at least ONE moment per scene where a character's voice is imperfect?
(A sentence that trails off. A wrong word. Something that doesn't quite land.)
If EVERY dialogue line is quotable and polished — that is a problem. Flag it.
3. If a character's voice signature is MISSING from a scene, you may add ONE instance
of an established signature item (from the Character Bible). Do NOT invent new ones.
Do NOT add signatures that are not already established.
This voice check is SECONDARY to MUST APPLY items, but it is never skipped.
EXPLICITLY FORBIDDEN: EXPLICITLY FORBIDDEN:
- Do not improve any sentence for rhythm, lyricism, or polish unless a specific MUST APPLY - Do not improve any sentence for rhythm, lyricism, or polish unless a specific MUST APPLY
@@ -68,6 +83,10 @@ steps:
- Do not expand any description or add sensory detail globally - Do not expand any description or add sensory detail globally
- Do not deepen emotional beats beyond what the text already carries - Do not deepen emotional beats beyond what the text already carries
- Do not add new metaphors, aphorisms, or quotable lines - Do not add new metaphors, aphorisms, or quotable lines
- Do not make dialogue more elegant, more quotable, or more "writerly"
- Do not smooth sentence length variation — short choppy sentences and long rambling ones
are often character voice, not mistakes
- Do not remove verbal tics, repeated expressions, or idiosyncratic speech patterns
- Do not reorder scenes or restructure the chapter - Do not reorder scenes or restructure the chapter
- When both deletion and expansion would solve the same problem, prefer deletion - When both deletion and expansion would solve the same problem, prefer deletion
@@ -78,6 +97,25 @@ steps:
- type: document - type: document
filename: "Chapter_{chapter_number}_final" filename: "Chapter_{chapter_number}_final"
- type: think
hint: |
PASS -- FULL MODE CHARACTER STATE EXTRACTION
The chapter has been polished and finalized. Extract the definitive character and world
state. This FULL MODE extraction overwrites any draft-mode state written earlier.
Use the same format as the draft-mode PASS 3 extraction (# Character State, # World State).
This is the CANONICAL state for this chapter -- it reflects the POLISHED final chapter.
CRITICAL: Keep total output under 3500 characters. Compact and precise.
- type: rag_write
asset_id: "character-state"
max_chars: 4000
- type: document
filename: "character-state-{chapter_ref}-final"
- type: close - type: close
rag_update: true rag_update: true
@@ -87,17 +125,20 @@ adjudication:
deliverable_type: consumer deliverable_type: consumer
criteria: criteria:
changes_applied: changes_applied:
weight: 35 weight: 30
description: "All MUST APPLY items from the consensus are addressed; no required changes were skipped" description: "All MUST APPLY items from the consensus are addressed; no required changes were skipped"
preservation: preservation:
weight: 30 weight: 25
description: "Unaffected passages are preserved verbatim; voice and structure are intact" description: "Unaffected passages are preserved verbatim; voice and structure are intact"
word_count: voice_authenticity:
weight: 20 weight: 20
description: "Each character can be identified by voice alone without speaker tags; verbal tics and imperfect speech are preserved, not smoothed out; no character speaks in perfect polished bon mots throughout"
word_count:
weight: 15
description: "Chapter meets the {chapter_target_words}-word minimum without artificial padding" description: "Chapter meets the {chapter_target_words}-word minimum without artificial padding"
clarity: clarity:
weight: 10 weight: 7
description: "Corrected passages are clear and unambiguous" description: "Corrected passages are clear and unambiguous"
formatting: formatting:
weight: 5 weight: 3
description: "Proper formatting, no artifacts" description: "Proper formatting, no artifacts"

View File

@@ -30,12 +30,16 @@ steps:
Write a detailed editorial review from your perspective. Write a detailed editorial review from your perspective.
Be specific — cite line numbers or quote passages where relevant. Be specific — cite line numbers or quote passages where relevant.
Structure your review using EXACTLY these five labeled sections: Structure your review using EXACTLY these six labeled sections:
1. STRENGTHS TO PRESERVE 1. STRENGTHS TO PRESERVE
List elements that are working well and must survive the editorial process unchanged. List elements that are working well and must survive the editorial process unchanged.
Be specific: quote or paraphrase the passage. Vague praise ("the writing is good") Be specific: quote or paraphrase the passage. Vague praise ("the writing is good")
is not useful here. is not useful here.
ALSO CHECK: If a Character Bible or Voice Signatures section exists in the project
context, verify each named character's voice signature is present and distinct.
Can you identify each character's dialogue without speaker tags? Note whether
YES or NO for each main character.
2. MUST-FIX — CONTINUITY 2. MUST-FIX — CONTINUITY
List factual errors, POV breaks, timeline inconsistencies, or world-rule violations. List factual errors, POV breaks, timeline inconsistencies, or world-rule violations.
@@ -53,11 +57,15 @@ steps:
Craft improvements that would strengthen the chapter but are NOT required for it to Craft improvements that would strengthen the chapter but are NOT required for it to
pass. Label each suggestion clearly as optional. Do not inflate this section — only pass. Label each suggestion clearly as optional. Do not inflate this section — only
include suggestions with a clear upside and low risk of voice damage. include suggestions with a clear upside and low risk of voice damage.
⚠️ Do NOT suggest adding thematic contrast metaphors, making dialogue more elegant,
or smoothing sentence variation — these are voice PRESERVATION issues, not fixes.
5. FORBIDDEN CHANGES / NON-GOALS 5. FORBIDDEN CHANGES / NON-GOALS
List things that might appear to be problems but should NOT be changed — intentional List things that might appear to be problems but should NOT be changed — intentional
voice choices, genre conventions, structural decisions that are working. This section voice choices, genre conventions, structural decisions that are working. This section
protects the draft from over-editing. protects the draft from over-editing.
ALWAYS list here: verbal tics, repeated phrases, and "imperfect" speech that is
clearly a character signature, not an error.
6. VERDICT 6. VERDICT
One of: PASS / REVISE One of: PASS / REVISE

View File

@@ -0,0 +1,53 @@
name: character_update
description: Update a character's static profile when permanent arc changes occur.
Triggered when PASS 3 flags Permanent=YES for a character.
Reads current character deliverable, appends arc log entry, updates changed fields,
and updates relevant RAG files if voice or magic changed.
context:
- character_name: "" # Full character name
- character_slug: "" # Slug used in deliverable filenames (e.g. mira-vasquez)
- chapter_ref: "" # Chapter that triggered this (e.g. ch-05)
- permanent_change: "" # What permanently changed, from PASS 3 output
- project_id: ""
- project_slug: ""
steps:
- type: think
hint: |
CHARACTER ARC UPDATE
A permanent change occurred for {character_name} in chapter {chapter_ref}.
Permanent change: {permanent_change}
Your tasks:
1. Read the RAG context for this character:
- Look for [character-{character_slug}] -- the static profile
- Look for [character-state] -- the current live state
- Look for [voice-signatures] -- the voice profile (if relevant)
2. Determine what needs updating:
- Append to the character's ## Arc Log: "Ch {chapter_ref}: {permanent_change}"
- If a POWER was gained or lost, update the ## Abilities section
- If a RELATIONSHIP status changed (e.g. enemies-to-allies, death),
update the ## Relationships section
- If VOICE changed (new speech patterns, trauma affecting language),
update the ## Voice Signature section AND flag voice-signatures.rag.md for update
- If MAGIC SYSTEM affinity changed, flag magic-system.rag.md for update
3. Write the updated full character profile:
- Keep all existing sections
- Only change the specific fields that changed
- Add the arc log entry
- Mark clearly at top: "Updated: Ch {chapter_ref} -- {permanent_change}"
Write the COMPLETE updated character profile now.
- type: document
filename: "character-{character_slug}"
- type: close
rag_update: true
adjudication:
enabled: false