v1.5.3
行为层 evals(A-live)落地——测的是「skill 真跑时契约有没有被守住」,而不只是结构。设计见 docs/decisions/0005-testing-and-quality-capability.md,用法与成本账见 evals/EVALS.md。
Added
evals/行为层测试:run.sh(runner)+honest-checks/red-light-gate两个 A-live fixture +EVALS.md。- 分档判据「契约由谁执行」:确定性代码执行的契约(bash 驱动 / jq 映射)可用桩测、留在
tests/;由模型遵守 SKILL.md 正文执行的契约桩测不了,必须真跑(A-live)。 - 失败二分类:环境抖动(无状态机产出,自动重跑、不计失败)vs 契约破坏(有产出但判别式不符,立即红);全抖动时报「无结论」而非冒充通过。
run.sh --check离线校验 fixture(不烧额度,CI 只跑这个)、--replay对保留现场复跑断言、--repeat N以多数通过为结论。install-smoke.sh新增 11 条 evals 不变量(95 → 106)。
Fixed
- 状态机推进契约冲突(由
honest-checkseval 首跑抓到):pdlc-implement/pdlc-prd的段四无条件写current_stage,与共享片段state-update.md规则 5「ok=false时current_stage不变」矛盾,导致失败的阶段也会推进current_stage、令外层循环的 stuck-stop 失效。两处均改为「仅当本阶段成功时才推进」。