You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Handoff from the craft-audit / leak-fix lane (the FICTION-ONLY #972 + Bless #973 work). TL;DR: we still cannot get a clean, non-capped story-craft score on the authored golden spines (embergloom-pact), because structural_completeness RED-caps the run even when the prose is clean. #1030 fixed the sibling false-caps (party_traveled, combat_not_left_active) but did not touch this gate. This blocks honest authored-spine measurement — the #32 reliable-RRI goal — and is a sibling of #897.
Evidence (the run that exposed it)
A 25-beat authored embergloom run (WORLDOS_ADVENTURE_ID=embergloom-pact, gs-ember-h24b, VM /root/worldos-qa/results/gs-ember-h24b.out):
[PASS] narration_no_ooc_leak ← the leak fix held over a full arc, 0 leaks
[FAIL] structural_completeness — a 25-beat session with a companion never engaged a core
system: 1 quest(s) still active at session end across a 3-location arc with no
quest-resolution call (['The Embergloom Pact'])
[duo] done. story-craft=2.5 mechanical=2.5 angry-dm=2.5 behavioral=RED
The lenses are 2.5 only because behavioral went RED — the actual prose on these spines is the audit's honest 4.4–4.7. (This run predates #1030, but the capping logic is verified unchanged on current main, so it reproduces today.)
Why it fires (mechanism)
qa/assert_behavioral.py (current main):
unresolved_arc (L758–759) = active_quests and multi_location_arc(visited≥2) and not quest_resolution_engaged.
chk("structural_completeness", not bad_bits, …) (L771) — still fatal=True, no authored-campaign exemption.
In authored-campaign mode the only quest is the campaign-level arc ("The Embergloom Pact") — a 3-act, multi-session arc that legitimately cannot resolve in one 24–25-beat session. The DM visits ≥2 locations (it's a road-trip arc) and doesn't call complete_quest, so all three conditions trip and the gate FATAL-caps a genuinely good run.
#1030 scoped party_traveled + combat_not_left_active to substantial-runs-only (WARN on short/truncated). structural_completeness was not in that changeset; it remains FATAL + unscoped.
The decision (needs a first-principles call — don't guess)
Option A — the gate is too strict for authored campaigns. When WORLDOS_ADVENTURE_ID is set and the only active quest is the campaign-level arc, an unresolved campaign quest is by-design (it spans sessions), not a dropped thread → scope unresolved_arc to WARN in that case. (Mirror the fix(qa): gate-severity audit — stop FATAL behavioral gates false-capping short emergent duos #1030 pattern: bias toward WARN = don't-false-cap.)
Option B — it's a real signal. A 25-beat session with a companion + 3 locations that never resolves any sub-quest IS under-driving the arc. Then the fix is content/DM-skill: the authored adventure should surface resolvable Act-1 sub-quests and the DM SKILL should drive complete_quest(evolves_to=…) on them. (Note: the prior memory claim that "54-beat and 24-beat runs DO resolve a sub-quest" is variable — this 25-beat run did not — so behavior is inconsistent, which itself argues for investigation.)
Recommended: sample 3–5 authored-spine runs at 24–30 beats, measure how often the DM closes a sub-quest, and inspect whether content/campaigns/embergloom-pact/adventure.json even has resolvable Act-1 sub-quests. If it has them but the DM skips them → B (DM-skill). If the campaign-arc-as-only-quest is structural → A (gate exemption). Likely a bit of both: an authored-mode WARN scope (A) plus a DM nudge to close sub-quests (B).
Impact
Until resolved, every authored-golden-spine RRI reads ~2.5 (capped) regardless of the real 4.4–4.7 prose quality — so we're flying blind on the one fixture that proves the story systems end-to-end. Sibling of #897 (behavioral gate false-caps the whole RRI).
Handoff from the craft-audit / leak-fix lane (the FICTION-ONLY #972 + Bless #973 work). TL;DR: we still cannot get a clean, non-capped story-craft score on the authored golden spines (embergloom-pact), because
structural_completenessRED-caps the run even when the prose is clean. #1030 fixed the sibling false-caps (party_traveled,combat_not_left_active) but did not touch this gate. This blocks honest authored-spine measurement — the #32 reliable-RRI goal — and is a sibling of #897.Evidence (the run that exposed it)
A 25-beat authored embergloom run (
WORLDOS_ADVENTURE_ID=embergloom-pact,gs-ember-h24b, VM/root/worldos-qa/results/gs-ember-h24b.out):The lenses are 2.5 only because behavioral went RED — the actual prose on these spines is the audit's honest 4.4–4.7. (This run predates #1030, but the capping logic is verified unchanged on current main, so it reproduces today.)
Why it fires (mechanism)
qa/assert_behavioral.py(current main):unresolved_arc(L758–759) =active_quests and multi_location_arc(visited≥2) and not quest_resolution_engaged.chk("structural_completeness", not bad_bits, …)(L771) — stillfatal=True, no authored-campaign exemption.In authored-campaign mode the only quest is the campaign-level arc ("The Embergloom Pact") — a 3-act, multi-session arc that legitimately cannot resolve in one 24–25-beat session. The DM visits ≥2 locations (it's a road-trip arc) and doesn't call
complete_quest, so all three conditions trip and the gate FATAL-caps a genuinely good run.Why #1030 didn't cover it
#1030 scoped
party_traveled+combat_not_left_activeto substantial-runs-only (WARN on short/truncated).structural_completenesswas not in that changeset; it remains FATAL + unscoped.The decision (needs a first-principles call — don't guess)
WORLDOS_ADVENTURE_IDis set and the only active quest is the campaign-level arc, an unresolved campaign quest is by-design (it spans sessions), not a dropped thread → scopeunresolved_arcto WARN in that case. (Mirror the fix(qa): gate-severity audit — stop FATAL behavioral gates false-capping short emergent duos #1030 pattern: bias toward WARN = don't-false-cap.)complete_quest(evolves_to=…)on them. (Note: the prior memory claim that "54-beat and 24-beat runs DO resolve a sub-quest" is variable — this 25-beat run did not — so behavior is inconsistent, which itself argues for investigation.)content/campaigns/embergloom-pact/adventure.jsoneven has resolvable Act-1 sub-quests. If it has them but the DM skips them → B (DM-skill). If the campaign-arc-as-only-quest is structural → A (gate exemption). Likely a bit of both: an authored-mode WARN scope (A) plus a DM nudge to close sub-quests (B).Impact
Until resolved, every authored-golden-spine RRI reads ~2.5 (capped) regardless of the real 4.4–4.7 prose quality — so we're flying blind on the one fixture that proves the story systems end-to-end. Sibling of #897 (behavioral gate false-caps the whole RRI).
Pointers
qa/assert_behavioral.pyL750–771 (active_quests / unresolved_arc / chk).WORLDOS_ADVENTURE_ID=embergloom-pact WORLDOS_LEAN_BEATS=0 IS_SANDBOX=1 bash qa/run_duo.sh <run> baldurs-gate qa/play_player_duo.txt 25 4.00on the VM.project_worldos_craft_audit_leak_fix(the leak gatenarration_no_ooc_leakthat PASSED here is the fix(dm,qa): player-facing prose is FICTION-ONLY — close the OOC-narration-leak class (#1 craft lever) #972 deliverable; this issue is its measurement-blocker).