From 5dca840ffb4ce335a83926d18aa248e599784311 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Mon, 19 Oct 2026 05:42:46 +0700 Subject: [PATCH 1/2] ratchet: re-pin igla race backend/rtl discard counts moved by #10689 (Closes #10695) One invariant moved from rtl.t27 to backend.t27, and its 15 discarded tokens moved with it: backend 481 -> 496, rtl 628 -> 613, and the sum is unchanged. The lab's --bless-expectations measured these numbers. Only the four numbers are applied, which keeps the _why_entries_fell history that the bless deletes. The lab ratchet is CLEAN. Co-Authored-By: Claude Opus 5.5 --- docs/reports/suite_expectations.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/reports/suite_expectations.json b/docs/reports/suite_expectations.json index b2a8edf9cc..c3e607fd7a 100644 --- a/docs/reports/suite_expectations.json +++ b/docs/reports/suite_expectations.json @@ -144,9 +144,9 @@ "reason": "top-level drop-recovery discards tokens; parser reaches EOF so `parse` reports success (T42)", "issue": 1959, "expires": "2026-11-30", - "discard_tokens": 481, + "discard_tokens": 496, "discard_by_channel": { - "bdd-block-fallback": 463, + "bdd-block-fallback": 478, "stray-brace": 1, "top-level-resync": 17 } @@ -254,9 +254,9 @@ "reason": "top-level drop-recovery discards tokens; parser reaches EOF so `parse` reports success (T42)", "issue": 1959, "expires": "2026-11-30", - "discard_tokens": 628, + "discard_tokens": 613, "discard_by_channel": { - "bdd-block-fallback": 594, + "bdd-block-fallback": 579, "brace-body/in-fallback": 33, "stray-brace": 1 } From fc48efd45cc0c15f082e65b9b9a78197dff23965 Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Mon, 19 Oct 2026 05:43:39 +0700 Subject: [PATCH 2/2] t27f skill: run the corpus ratchet when moving text between specs (Refs #10695) Co-Authored-By: Claude Opus 5.5 --- .claude/skills/t27f/SKILL.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.claude/skills/t27f/SKILL.md b/.claude/skills/t27f/SKILL.md index b5211f426b..41202f3b4d 100644 --- a/.claude/skills/t27f/SKILL.md +++ b/.claude/skills/t27f/SKILL.md @@ -207,6 +207,13 @@ Traps from this tick (ffmpeg on the lab): import, and nothing was copied. Then compare `test-report` against **master**, not against "passes". The igla race specs are BLOCKED at a zig error on master, so the right claim is "the same verdict as before", not "the tests pass". + Then run the corpus ratchet on the lab (`t27c suite --repo-root . --ratchet --corpus-only`). + `test-report` cannot see text moving between two specs that the ledger pins. #10689 moved an + invariant the parser discards, so 15 tokens moved from `rtl` to `backend`. The ratchet went + red (`DISCARD WORSENED` +15 on one spec, `IMPROVED` -15 on the other), and the gate merged it + red anyway (#10695, fixed in #10699). To re-pin, run `--bless-expectations` to measure, then + copy only the moved numbers into master's file: the bless also deletes the + `_why_entries_fell` history field. 7. Before you open a PR that adds a spec, run `python3 tools/dupe_scan.py` on the lab. The issue gate auto-merges non-draft PRs even when a check is red: #10681 merged with a copy of `lit_len` that was red on `duplicate-bodies` until #10688. Reuse the existing body through