#000046 Phase 1 — HARD live-path Falsification tier (first below-ceiling pack)

Closes the "everything is at rate 1.0 so fork_score's bench-Δ terms
are inert" gap the #000025 §10.14 calibration surfaced — at least on
the 5F/falsification axis.

bench/fixtures/5f/falsification-hard-v1.jsonl — 12 near-misses, each a
FALSE/unsupported claim whose correct verdict is UNGROUNDED (recorded
in expected_reason). 8 of 12 are over-grounded by
arborist.qa.verify.verify_quotes at HEAD — its paraphrase
token-coverage strategy returns STRICT_PARAPHRASE, its entity-proximity
strategy returns HYBRID_ENTITY, both matching on incidental overlap
(shared entities/numbers, the same key terms stated in the opposite
direction) — so those tasks fail by design; the other 4 the verifier
handles correctly. Rate at HEAD = 4/12 = 0.333, stable (verify_quotes
is pure-lexical / deterministic). Built around the pre-documented gap
5f-fal-live-003.

make bench-5f-falsification-hard runs the pack; make
bench-fork-baseline-hard pins it to
bench/results/baseline-falsification-hard.json. Both targets `|| true`
past the runner's nonzero-on-failures exit (8 fixtures fail by design;
the JSON is still written).

tests/test_bench_batteries.py — test_5f_falsification_hard_pack_below_ceiling
(pins rate 4/12, source=live, every fixture asserts UNGROUNDED, the 8
fails are over-grounds not abstentions) +
test_fork_score_positive_gamma_5f_on_hard_falsification_improvement
(the worked example: fork_score(parent={5f/falsification: 1/3},
child={5f/falsification: 1.0}) → gamma*Delta5f ≈ +0.133 > 0, verdict
ACCEPT, no regression flags — the bench Δ-rate carrying signal it
can't carry while every canonical pack is at ceiling).

NOT in `make bench-5f` / `make bench-5s5t5f` / `make
bench-fork-baseline` / `runner --all` — the hard pack is a separate,
deliberately-failing artifact pinned on its own.

#000046 flipped to "in progress · Phase 1 landed"; closure pending an
actual verify_quotes tightening that lifts the rate (a separate,
larger task). ticket-000012 §8 §4 + TICKETS.md row updated.

Full suite: 2314 passed, 28 skipped.
This commit is contained in:
russell@unturf.com 2026-05-11 08:16:01 -04:00
parent a53afa6148
commit 01d697f961
No known key found for this signature in database
7 changed files with 333 additions and 16 deletions

View file

@ -567,7 +567,13 @@ protocol must account for:
is carried by the efficiency bonuses (`adaptation_efficiency` /
`feedback_efficiency`) + the non-bench terms
(`selfmodel_calibration_gain`, `audit_completeness`,
`validator_diversity`, …), not by bench Δ-rate. Adding the
harder tier is tracked as **#000046** (a #000025 follow-up,
recommends a narrow live-path hard tier starting with 5F
Falsification), not a #000012 blocker.
`validator_diversity`, …), not by bench Δ-rate. The harder tier
is tracked as **#000046** (a #000025 follow-up); its **Phase 1
landed 2026-05-11** — `bench/fixtures/5f/falsification-hard-v1.jsonl`
(12 near-misses, rate 4/12 ≈ 0.333 at HEAD, `verify_quotes`
over-grounds 8) is the first below-ceiling pack, with a
worked-example test showing `fork_score`'s `γ·Δ5f` going positive
on a lift to 1.0. So the bench Δ-rate *can* now carry signal on
the 5F/falsification axis; closing #000046 needs an actual
`verify_quotes` tightening to lift the rate. Not a #000012
blocker either way.

View file

@ -1,6 +1,12 @@
# Ticket #000046 — Harder 5S/5T/5F fixture tier (below-ceiling baselines)
**Status:** open · awaiting go/no-go
**Status:** in progress · **Phase 1 landed 2026-05-11** (Option A,
narrow start — 5F Falsification hard pack: `bench/fixtures/5f/
falsification-hard-v1.jsonl`, rate 4/12 ≈ 0.333 at HEAD, stable;
`make bench-5f-falsification-hard` / `make bench-fork-baseline-hard`;
worked-example test shows `fork_score`'s γ·Δ5f going positive on a
lift to 1.0). Closure pending an actual `verify_quotes` tightening
that lifts the rate (a separate, larger task) — see §5 + §7.
**Opened:** 2026-05-11
**Scope:** Give the 5S/5T/5F bench packs *headroom* — a fixture tier
the runtime does **not** pass at rate 1.0 — so the ForkScore Δ-rate
@ -155,21 +161,62 @@ testable only once there's a below-ceiling baseline to bench against.
## 5. Status
**Open · awaiting go/no-go.** Doc-only proposal. Opens when fox picks
a strategy (recommendation: Option A / Falsification first). The
implementation commit chain it gates: (1) author the first hard pack,
(2) confirm rate < 1.0 and stable + add the pinning test, (3) `make
bench-fork-baseline-hard`, (4) demonstrate a planted surface
improvement lifting the rate + a positive ForkScore Δ term, (5)
extend to the next sub-battery if the loop holds. Closure: ≥ 1 hard
pack live with a below-ceiling stable rate AND a worked example
showing the ForkScore bench-Δ term going positive on a real
improvement.
**In progress — Phase 1 landed 2026-05-11 (Option A, 5F Falsification
hard pack).** Receipt:
- **Hard pack:** `bench/fixtures/5f/falsification-hard-v1.jsonl` — 12
near-misses, each a *false / unsupported* claim whose correct
verdict is `UNGROUNDED` (recorded in `expected_reason`). 8 of 12
are over-grounded by `arborist.qa.verify.verify_quotes` at HEAD
(paraphrase token-coverage → `STRICT_PARAPHRASE`, entity-proximity →
`HYBRID_ENTITY`, on incidental overlap) so those tasks fail by
design; 4 the verifier handles correctly. **Rate at HEAD = 4/12 =
0.333…** — a stable below-ceiling baseline (`verify_quotes` is
pure-lexical / deterministic). Built around the pre-documented gap
`5f-fal-live-003`.
- **Make targets:** `make bench-5f-falsification-hard` (runs the pack;
the runner exits 1 because 8 fixtures fail by design — the targets
`|| true` past that, the JSON is still written), `make
bench-fork-baseline-hard` → `bench/results/baseline-falsification-hard.json`
(pins the below-ceiling rate as a ForkScore parent artifact).
- **Tests:** `tests/test_bench_batteries.py`
`test_5f_falsification_hard_pack_below_ceiling` (pins rate 4/12,
source=live, every fixture asserts `UNGROUNDED`, the 8 fails are
over-grounds not abstentions) + `test_fork_score_positive_gamma_5f_on_hard_falsification_improvement`
(the worked example: `fork_score(parent={5f/falsification: 1/3},
child={5f/falsification: 1.0})` → `γ·Δ5f ≈ +0.133 > 0`, verdict
ACCEPT, no regression flags — the bench Δ-rate carrying signal it
can't carry while every canonical pack is at ceiling).
- **Not in** `make bench-5f` / `make bench-5s5t5f` / `make
bench-fork-baseline` / `runner --all` — the hard pack is a
separate, deliberately-failing artifact pinned on its own.
**Still open (the actual closure):** Phase 1 *proved the loop* with a
synthetic child at rate 1.0. Closing the ticket needs a **real
`verify_quotes` tightening** that lifts the hard-pack rate above
0.333 (stricter entity strategy / higher paraphrase coverage
threshold / wider title-relevance check) — a separate, larger task
(it touches the live verifier surface, not the bench). When that
lands, this ticket closes with the rate-improvement → ForkScore Δ
demonstrated on an *actual* change, and Phase 2 (extend the hard
tier to Formulate / a retrieval-backed 5S/5T sub) opens if the loop
holds. Until then: Phase 1 stands, the hard pack pins the gap, and
the next-step menu is (a) tighten `verify_quotes`, or (b) extend the
hard tier to Formulate now without waiting for the verifier work.
---
## 6. References
- `bench/fixtures/5f/falsification-hard-v1.jsonl` — the Phase-1 hard
pack (12 near-misses, rate 4/12 at HEAD). `make
bench-5f-falsification-hard` runs it; `make bench-fork-baseline-hard`
pins it to `bench/results/baseline-falsification-hard.json`.
- `tests/test_bench_batteries.py`
`test_5f_falsification_hard_pack_below_ceiling` (pins the rate +
the over-ground/abstention distinction) +
`test_fork_score_positive_gamma_5f_on_hard_falsification_improvement`
(the worked example).
- `bench/scripts/fivef_threshold_calibration.py` +
`bench/results/5f-threshold-calibration-2026-05-11.md` — the
calibration that surfaced the ceiling-saturation problem.