#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
feat: add 'use-current-hyperbehcs-frame' scenario — center the 60D HyperBEHCS frame
acer+1: Claude Opus 4.8
c66fc15
Adds a claims-gate scenario enforcing frame-currency: current = 60D HyperBEHCS / BEHCS-1024
(tuple_dim=60); 35D/47D/49D + BEHCS-256 are BRIDGE strata (old decodes new), not the default.
Complements no-flat-selector-tuples (guards flattening) by guarding against defaulting to an OLD
frame. Updated good/bad transcripts + the v1 sample for full coverage. Verified: v1 sample 10/10,
v2 good 10/10 / bad 0/10, acer law-coverage 10/10.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NqTnTpYZVqcAhWeqWjhoh
feat: add sub-agent real-tools brief to claims gate
Adds the SkillOpt behavior gate on top of v1's law-text lint. v1 checks the skill TEXT
encodes a rule; v2 scores the agent's RESPONSE to a realistic prompt -- with the skill vs
without -- because law-coverage != disciplined behavior (an agent scored 8/8 law-coverage
yet committed several of these mistakes in one session).
Harness-agnostic adapters (SkillOpt adapter interface) make it work for BOTH seats:
transcript (offline CI), claude (ANTHROPIC_API_KEY -> Claude Code/acer), codex
(OPENAI_API_KEY -> Codex/liris), echo. 8 held-out scenarios as prompt+rubric; offline
self-test discriminates good (8/8) vs bad (0/8). Honest: rubric is keyword-based (v3 =
LLM judge), live adapters need keys, not the full optimizer loop yet (this is the gate).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019NqTnTpYZVqcAhWeqWjhoh