# v1.8.6 评测归档 > 复核时间:2026-06-03 > 本轮首次引入**模型实跑**。此前各版 `results-*.md` 是静态复核(对照规则逐条走查);本轮在静态走查之外,用真实模型跑了 issue #4 的核心对照,并验证了新增 `bounded` scope 的可执行性。 > 评测集:`evals/benchmark.md`(72 条:41 SF + 31 SNF)+ `evals/real-samples.md`(19 条)。 ## 1. 背景 issue #4 的复测停在一个 tradeoff:v1.8.5 的 `in-place` 把长度接住了(@yyyang20 实测 95–99%),但去 AI 味明显弱于 `structural`。本轮要回答的是:这个 tradeoff 是不是真的、根因在哪——然后据此落地 `bounded`。 ## 2. 双模型实跑(structural vs in-place) 同一篇 1498 字合成长文(`tasks/current/issue-4-original.txt`,不转录任何真实用户原文),用当时仓库规则(`SKILL.md` + `references/`)跑 `aggressive` 力度的两个 scope,Codex(gpt-5 家族)与 Claude(opus 家族)交叉: | 版本 | 字数留存 | 无源「70%」 | 拔高收尾「责任/信任」 | 排比 | |------|:---:|:---:|:---:|:---:| | 原文 | 100% | 在 | 在 | 在 | | Claude structural | 80.5% | 删 | 删 | 压成一句 | | Codex structural | 82.8% | 删 | 删 | 压成一句 | | Claude in-place | 95.1% | **残留** | **残留** | 保 | | Codex in-place | 96.2% | **残留** | **残留** | 保 | 两个结论: - **in-place 去味弱有结构性根因**:整句级的空话(无源引用、价值拔高收尾),两个模型在 `in-place` 下都删不掉,只把铺垫词软化(“研究表明”→“我听说”)。这是规则禁删整句的必然结果,不是模型不努力。 - **structural 不必然腰斩**:两个强模型都是 -18%,没有复现 issue #4 报告的 -39%。说明长文 `structural` 的缩水程度依模型而定、不可控——这本身是个问题,也是 `bounded` 把“删多少”交还用户的理由。 ## 3. bounded 落地后的可执行性实跑 `bounded` 规则落地后,用干净上下文的模型按 `public-writing / standard / bounded` 跑同一篇长文,验证它能否产出双合同: - **正文**:实句、带数字句、排比、转场全部保留;商业黑话句内洗;**整句空话(无源 70%、价值拔高收尾、narrator 旁白)原样留在正文里,既没直接删、也没软化成新说法**。 - **建议删除(待确认)清单**:精确列出 4 句(narrator 旁白 / 无源引用 / 两句价值拔高收尾),每条附“删了不丢信息 + 不承担过渡”的理由;对无源那条还主动注明“不建议改写成‘听说 / 好像’,那只是把无源说法换个壳”。 结论:`bounded` 的双合同(句内洗直改 + 整句空话进清单)模型能正确执行,并守住“不软化”这条硬约束。 ## 4. 一个待补的边界 `bounded` 实跑里,模型把一处“商业黑话壳句 + 下一句具体展开”做了合并(轻微越过 `bounded` 的“不并句”边界)。结果合理(壳删、实质留),但严格说该补一条防并句的 benchmark 护栏,留作下一轮。 ## 5. 口径说明 - 本轮的 80.5% / 95.1% 等是**真实模型单次实跑**结果,不是静态走查的“规则可解释”。 - benchmark 72 条本身仍是静态走查口径(规则有明确处理路径);把 72 条都做成模型实跑通过率,留作后续轮次。 - 实跑成稿与逐句对照存档在本地 `tasks/current/runs/`(local-only),不进公开发布面。 ## 6. 结论 issue #4 的 tradeoff 是真的,根因是 `in-place` 删不掉整句空话。`bounded` 在 `structural`(去味彻底但缩水不可控)和 `in-place`(保长度但去味弱)之间补位:句内洗实句、整句空话进删除清单交用户拍板。规则已落地并通过可执行性实跑;下一步是收更多真实长文 bad case 校准删除清单边界,并把 72 条 benchmark 做一轮完整模型实跑。