Blueprint v1.5.0: AI Context Optimization — Dynamic Characters & Scene State
- writer.py: Dynamic character injection — only POV + beat-named characters are sent to the writer prompt, eliminating token waste and hallucinations from characters unrelated to the current scene. - writer.py: Smart tail truncation — prev_content trimmed to last 1,000 tokens (the actual chapter ending) instead of a blind 2,000-token head slice, preserving the exact hand-off point for continuity. - writer.py: Scene state injected into char_visuals — current_location, time_of_day, and held_items now surfaced per relevant character in prompt. - bible_tracker.py: update_tracking expanded to record current_location, time_of_day, and held_items per character after each chapter. - core/config.py: VERSION bumped 1.4.0 → 1.5.0. - README.md: Story Generation section and tracking_characters.json schema updated to document new context optimization features. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -70,12 +70,15 @@ def update_tracking(folder, chapter_num, chapter_text, current_tracking):
|
||||
|
||||
OPERATIONS:
|
||||
1. EVENTS: Append 1-3 key plot points to 'events'.
|
||||
2. CHARACTERS: Update 'descriptors', 'likes_dislikes', 'speech_style', 'last_worn', 'major_events'.
|
||||
2. CHARACTERS: Update 'descriptors', 'likes_dislikes', 'speech_style', 'last_worn', 'major_events', 'current_location', 'time_of_day', 'held_items'.
|
||||
- "descriptors": List of strings. Add PERMANENT physical traits (height, hair, eyes), specific items (jewelry, weapons). Avoid duplicates.
|
||||
- "likes_dislikes": List of strings. Add specific preferences, likes, or dislikes mentioned (e.g., "Hates coffee", "Loves jazz").
|
||||
- "speech_style": String. Describe how they speak (e.g. "Formal, no contractions", "Uses slang", "Stutters", "Short sentences").
|
||||
- "last_worn": String. Update if specific clothing is described. IMPORTANT: If a significant time jump occurred (e.g. next day) and no new clothing is described, reset this to "Unknown".
|
||||
- "major_events": List of strings. Log significant life-altering events occurring in THIS chapter (e.g. "Lost an arm", "Married", "Betrayed by X").
|
||||
- "current_location": String. The character's physical location at the END of this chapter (e.g., "The King's Throne Room", "Aboard the Nighthawk ship"). Update whenever the character moves.
|
||||
- "time_of_day": String. The approximate time of day at the END of this chapter (e.g., "Dawn", "Late afternoon", "Midnight"). Reset to "Unknown" if unclear.
|
||||
- "held_items": List of strings. Items the character is actively carrying or holding at chapter end (e.g., "Iron sword", "Stolen ledger"). Remove items they have dropped or given away.
|
||||
3. WARNINGS: Append new 'content_warnings'.
|
||||
|
||||
OUTPUT_FORMAT (JSON): Return the updated tracking object structure.
|
||||
|
||||
Reference in New Issue
Block a user