#1 New canonical held-out scenario `no-deflate-living-system-evolvable-ai`:
the gate now provably rejects deflating Asolaria to "slices, not an ASI / inert".
Added to examples/asolaria-scenarios.json (+ acer canonical, byte-identical) and
ALL THREE transcript fixtures (good/bad/good-with-bad-baseline incl ::baseline)
+ the v1 sample + law_coverage_any.
#2 Fix the empty-scenarios validation bypass (liris + acer review confirmed):
score_skill, rollout_score, apply_edit treated total=0 as a pass (0==0). Now
score_skill/rollout ok=False on empty; apply_edit rejects (at>0 guard) so an
empty held-out set can no longer act as a vacuous passing gate.
Gates (transcript): v1 11/11; v2 good 11/11; v2 bad 0/11; baseline skill_delta=11;
empty-set -> score_skill ok=0, rollout ok=0, apply_edit REJECTED_BUFFER;
acer law-coverage 11/11.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NqTnTpYZVqcAhWeqWjhoh