05.5 · Critic calibration: strictness, regen effectiveness, thresholds #18
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
cmoriarty/trog#18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-ups from the first live critic cycles (05.2 / #15) — the judges work; now calibrate them with data. Each item is investigate-then-decide.
Decision output per item: adopt / reject / defer with trigger, recorded here and in the research docs.
Investigated all five items with ledger data + live experiments; decisions below, full evidence in docs/critic-calibration.md (
fefc02e). Code shipped:b5359b2(deployed).Decisions
1 · Visual strictness — ADOPT current strictness. Latest bench: 3/5 pass, and both fails are specific + actionable (apple: brown leaf vs "green leaf"/"grass green"; chest: style drift). First-cycle 4/5-fail improved to 2/5 without touching the critics — generation moved, the bar didn't. High first-pass failure is intended; bounded regen exists for it. Corollary live-catch: borderline verdict instability comes from style text that lies about the pixels — the fixture's "no hard outlines" claim (its knights HAVE dark edges) made the judge flip pass/fail on identical input across fresh runs. Fixed the fixture style block (23350e12); baseline stable at 6 pass / 1 fail again. Seat-side outline enforcement: defer — trigger: outline complaints in ≥½ of image fails across ≥3 real games.
2 · Regen effectiveness — DEFER with measurement plan. n=1 today (chest flipped fail→pass critique-fed). Retries are already identifiable on the ledger (the "Previous attempt was rejected" prompt marker + per-target verdict sequences). Trigger: ≥10 first-fail requeues across real games → compute critique-fed flip rate from history, add a one-flag plain-reroll B-arm for the comparison batch.
3 · Judge-at-upscale — ADOPTED, shipped. Direct evidence from #22: the judge called a crisp 8px checkerboard "extremely blurry" (its vision input resamples softly) and failed an unfailable "hard edges" demand.
critics.upscale_for_judge()now integer-NN-upscales to a 384px edge before judgment (drain critics +/critique;CRITIC_UPSCALE=0disables). A/B on the fixture: 6/7 consistent, crisper pixel-specific notes, zero adverse flips (the one flip was a ≥384px sheet that bypasses upscale — the item-1 borderline case, not an upscale effect). Known limitation: wide sheets pass through, so frames still reach the judge soft — revisit with item 5.4 · CLAP 0.2 — KEEP. All ledger scores: true matches 0.29–0.68 (n=8), mismatches ≤0.07 (n=3, sine-stub sentinels). The threshold sits in a wide empty gap. Trigger to revisit: any human-disputed audio verdict, or any score inside 0.1–0.3.
5 · Motion-clip critique — DEFER. Strip judging already produces motion verdicts (fixture card-flip failed on "animation logic" from the sheet alone), and raw clips are retained 14d in intermediates. Trigger: an animate asset that passes strip judging but fails human eyeballs, or #16's video tooling. First experiment then: 4–6 sampled frames as a multi-image judgment.
Also recorded: temp-0.2 narrows but doesn't eliminate borderline nondeterminism — the commit-keyed verdict cache remains the production stabilizer; ground-truth style text is the fix for chronic flip-floppers.
All checkboxes have their decision; leaving open for your read + close.