story.py — create_chapter_plan(): - TARGET_CHAPTERS is now a guideline (±15%) not a hard constraint; the AI can produce a count that fits the story rather than forcing a specific number - Word scaling is now pacing-aware instead of uniform: Very Fast ≈ 60% of avg, Fast ≈ 80%, Standard ≈ 100%, Slow ≈ 125%, Very Slow ≈ 150% - Two-pass normalisation: pacing weights applied first, then the total is nudged to the word target — natural variation preserved throughout - Variance range tightened to ±8% (was ±10%) for more predictable totals - Prompt now tells the AI that estimated_words should reflect pacing rhythm story.py — expand(): - Added event ceiling (target_chapters × 1.5): if the outline already has enough beats, the pass switches from "add events" to "enrich descriptions" — prevents over-dense outlines for short stories and flash fiction - Task instruction is dynamically chosen: add-events vs deepen-descriptions - Clarified that original user beats must be preserved but new events must each be distinct and spread evenly (not front-loaded) story.py — refinement loop: - Word count constraint softened from hard "do not condense" to "~N words ±20% acceptable if the scene demands it" so action chapters can run short and introspective chapters can run long naturally main.py — bridge chapter insertion: - Removed hardcoded 1500-word estimate for dynamically inserted bridge chapters; now computes the average estimated_words from the current chapter plan so bridge chapters match the book's natural chapter length Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
58 KiB
58 KiB