fix(G1): play_party.sh drives the story arc per beat (port the shared runbook) - #642
Conversation
… runbook) The 5-persona .app DM path was purely REACTIVE (no runbook), so free-play personas finished at the intro and the full 8-beat arc (parley → engine combat → travel → rest → travel) never fired — combat-through-engine=0 across all personas (G1 fail, 2026-06-03 sweep). run_duo.sh drives the arc via the SHARED clawdnd_runbook_for_beat (scene-intro / midpoint reversal / climax / travel-peopling) and DOES reach combat (45 start_combat/spawn_monster calls). Port the same per-beat runbook into play_party.sh's main beat loop + inject it into the DM turn. A genuine DM improvement (the .app DM now drives the story like the duo), not just a gate tweak. Guard: test_play_party_drives_the_arc_runbook.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR adds stateful arc-driver guidance to the beat loop in ChangesArc-driver runbook navigation
Possibly related PRs
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Comment |
…id note-output (#647) QA 2026-06-05 (narrative persona, 2 criticals, blocks_progress=True): the .app DM rendered its internal scaffolding notes VERBATIM as the scene — "Devella presses Renn on the seal. Renn: the rangers made that call — no log filed." — instead of lived 2nd-person prose. The #642 runbook injection made it worse: the DM treated the injected arc directive as content to echo. Fix: (1) frame the runbook as "[ARC CUE — internal planning ONLY; do NOT quote/echo this line]" so the DM weaves its INTENT into the scene rather than rendering it verbatim; (2) a hard prose-only output rule carrying the exact failure example (Wrong: 'X presses Y...' / Right: render it lived). Keeps the G1 combat-driving (the runbook still fires — only its FRAMING changed). Guard updated. Co-authored-by: Eva <arncalso@gmail.com>
Closes the G1 gap from the 2026-06-03 sweep: combat-through-engine=0 across all 5 personas — no one reached the full 8-beat arc (parley → engine combat → travel → rest → travel).
Root cause: the 5-persona .app DM path (
play_party.sh) was purely reactive — it has NO runbook, so free-play personas explored and finished satisfied at the intro (2–8 beats) and the arc never escalated to combat.run_duo.shdrives the arc via the sharedclawdnd_runbook_for_beat(scene-intro / midpoint reversal / climax / travel-peopling) and does reach combat (45start_combat/spawn_monstercalls). play_party.sh already sources the same lib but never called it.Fix: port the per-beat runbook into play_party.sh's main beat loop + inject it into the DM turn (4 minimal edits: a beat counter, the runbook call, the injection, a location tracker for the travel cue). A genuine DM improvement — the .app DM now drives the story like the duo — not just a gate tweak.
Guard:
test_play_party_drives_the_arc_runbook. bash -n clean. Validation: the next re-sweep measures whether a persona now reaches engine combat + the full arc (G1). Honest note: G1 may also need a light persona 'play a complete session' nudge if personas still finish before the climax — the re-sweep will tell.Summary by CodeRabbit
Release Notes
New Features
Tests