SCATS hand-score audit HOLD — awaiting Sabour ≥20% sign-off

Grok ckpt-24 gate. Score against the LEFT (raw) panel only; the right panel is my overlay (blue=exact, orange=approach-only, grey=excluded; labels: det, movement, EX/ap, >target arm). Click any image for full size. Reply verdicts in the Cowork chat.

Checklist
# Sabour audit checklist — hand-score gate (Grok ckpt-24) — ≥20% pass

Each site_<id>_v2.1.jpg: LEFT panel = raw sheet (ground truth). RIGHT = same crop with my
decisions in the margins (blue=exact, orange=approach-only, grey=excluded; labels per arm:
det, movement letter, EX/ap, >target arm). The .txt = tech tables + shadow verdicts.
Score against the RAW panel only. Full per-site verdicts: HS23_SCORECARD.json.

## 1. The four uncertains (my calls that need your eyes)
- 3940 d7 (Carrington WB): I could not resolve hook side at zoom. Flag excluded it either way.
- 5205 d7 (Ryrie EB middle lane): I scored T lean-correct; arrows drawn between lanes.
- 2337 d15: left-hook presumed correct (SG9* collision class); verify the hook is on d15's lane.
- 556 d10/d11 + 667 d5/d6: dual-turn pairs — check my curl readings (556 both-right; 667 d5 left, d6 right).

## 2. Sanity re-checks (I scored these clean — disagree if the ink says otherwise)
- 3384 (the benchmark): 11 exacts; d11 flagged FP; d12 shared T+L.
- 3732: d18 tech-minted RIGHT (arrow lane had it wrong); d12 flagged steal; d19 swap = arrow wrong.
- 511, 982: standard exacts + flags.

## 3. v7.2 demotion evidence (AUDIT_demotion_crops.jpg)
12 lanes the composite floor demoted from exact->approach_only (sampled from 78/300 sites).
Expected: thin markers, dimension lines, hatch bars, or tiny ambiguous straights - NOT clear
full-size lane arrows. Any crop showing a REAL unambiguous lane arrow = log it as a v7.2
regression (that would send us back to Grok before HOLD lifts).

## Verdict needed from you
- [ ] Uncertains dispositioned (agree/disagree each)
- [ ] No wrong-side/wrong-class errors found in the re-checks
- [ ] Demotions are fragments/markers (or regressions logged)
- [ ] Sign-off to lift HOLD for `minted LIKE 'exact%'` consumption (flags stay non-consumable)
Reply in chat; I'll canon the outcome and (if clean) lift HOLD with Grok's final checklist.

1 · Priority packs (uncertains first)

Site 3940

UNCERTAIN: d7 hook side unresolved at zoom — flag excluded it either way

Tech extract + shadow verdicts
== TECH EXTRACT site 3940 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG4, 4->SG2, 5->SG2, 7->SG3, 8->SG4
SG4 [right_turn_partial]: SG4 is 2-aspect (Y/G) partially controlled right turn
SG5 [left_turn]: SG5 & SG6 are 2-aspect (Y/G) left turns
SG6 [left_turn]: SG5 & SG6 are 2-aspect (Y/G) left turns
-- mint shadow --
d1   arrow=-          SG=1    sem=-                ctl=none        none                 none        -
d2   arrow=-          SG=1    sem=-                ctl=none        none                 none        -
d3   arrow=left_turn  SG=4    sem=right_turn_partial ctl=partial     conflict_LR          flag_only   - [SWAP]
d4   arrow=-          SG=2    sem=-                ctl=none        none                 none        -
d5   arrow=-          SG=2    sem=-                ctl=none        none                 none        -
d6   arrow=left_turn  SG=-    sem=-                ctl=none        arrow_only           exact_arrow left_turn
d7   arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d8   arrow=-          SG=4    sem=right_turn_partial ctl=partial     tech_only            flag_only   -
d9   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d10  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "swap"
 ],
 "exact_scored": 1,
 "exact_correct": 1,
 "fp_consumable": 0,
 "fn": 0,
 "flags": {
  "d3_swap": "tech RIGHT correct - ink hook right (3rd tech-right)",
  "d7_rt_fp": "UNCERTAIN at zoom - excluded either way; Sabour audit item"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

Site 5205

UNCERTAIN: d7 scored T lean-correct; arrows drawn between lanes. Also d8 = semantics-bleed swap (arrow RIGHT correct)

Tech extract + shadow verdicts
== TECH EXTRACT site 5205 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG2, 4->SG2, 5->SG2, 6->SG5, 7->SG5, 8->SG5, 10->SG6, 11->SG7, 12->SG7
SG1 [left_turn_partial]: SG1, SG2 & SG5 are 4-aspect (R/Y/G/G arrow) split phase turns SG8 is a 2-aspect (Y/G) partially cont
SG2 [left_turn_partial]: SG1, SG2 & SG5 are 4-aspect (R/Y/G/G arrow) split phase turns SG8 is a 2-aspect (Y/G) partially cont
SG5 [left_turn_partial]: SG1, SG2 & SG5 are 4-aspect (R/Y/G/G arrow) split phase turns SG8 is a 2-aspect (Y/G) partially cont
-- mint shadow --
d1   arrow=left_turn  SG=1    sem=left_turn_partial ctl=partial     tech_only            flag_only   -
d2   arrow=right_turn SG=1    sem=left_turn_partial ctl=partial     tech_only            flag_only   -
d3   arrow=-          SG=2    sem=left_turn_partial ctl=partial     nonmotor             none        -
d4   arrow=through    SG=2    sem=left_turn_partial ctl=partial     tech_preferred       flag_only   -
d5   arrow=-          SG=2    sem=left_turn_partial ctl=partial     tech_only            flag_only   -
d6   arrow=left_turn  SG=5    sem=left_turn_partial ctl=partial     tech_only            flag_only   -
d7   arrow=through    SG=5    sem=left_turn_partial ctl=partial     tech_preferred       flag_only   -
d8   arrow=right_turn SG=5    sem=left_turn_partial ctl=partial     conflict_LR          flag_only   - [SWAP]
d9   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d10  arrow=right_turn SG=6    sem=-                ctl=none        arrow_only           exact_arrow right_turn
d11  arrow=-          SG=7    sem=-                ctl=none        nonmotor             none        -
d12  arrow=-          SG=7    sem=-                ctl=none        none                 none        -
d13  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d14  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d15  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d16  arrow=through    SG=-    sem=-                ctl=none        nonmotor             none        -
d17  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d18  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d19  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d20  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "swap"
 ],
 "exact_scored": 3,
 "exact_correct": 3,
 "fp_consumable": 0,
 "fn": 1,
 "flags": {
  "d8_swap": "arrow RIGHT correct; SEMANTICS-BLEED defect (split-phase sentence over-capture misread SG5 as left)",
  "d7_uncertain": "lean-correct T; audit item"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0,
 "notes": "5-leg, all 5 roads bound correctly incl recovered RYRIE"
}

Site 2337

UNCERTAIN: d15 left-hook presumed correct (SG9* collision) — verify hook is on d15 lane

Tech extract + shadow verdicts
== TECH EXTRACT site 2337 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG1, 4->SG1, 5->SG3, 6->SG3, 7->SG3, 8->SG3, 9->SG5, 10->SG5, 11->SG6, 12->SG6, 13->SG9, 14->SG9, 15->SG8, 16->SG9, 17->SG9, 18->SG7, 19->SG8, 20->SG10
SG7 [right_turn]: SG7, SG8 & SG9 are 3-aspect full controlled right turns
SG8 [right_turn]: SG7, SG8 & SG9 are 3-aspect full controlled right turns
SG9 [right_turn]: SG7, SG8 & SG9 are 3-aspect full controlled right turns
SG9* [left_turn]: SG9* & SG10 are 3-aspect full controlled left turns
SG10 [left_turn]: SG9* & SG10 are 3-aspect full controlled left turns
SG11 [left_turn_partial]: SG11 is a 2-aspect (Y/G) partially controlled left turn
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d4   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d5   arrow=through    SG=3    sem=-                ctl=none        arrow_only           exact_arrow through
d6   arrow=through    SG=3    sem=-                ctl=none        arrow_only           exact_arrow through
d7   arrow=through    SG=3    sem=-                ctl=none        arrow_only           exact_arrow through
d8   arrow=through    SG=3    sem=-                ctl=none        arrow_only           exact_arrow through
d9   arrow=through    SG=5    sem=-                ctl=none        arrow_only           exact_arrow through
d10  arrow=through    SG=5    sem=-                ctl=none        arrow_only           exact_arrow through
d11  arrow=-          SG=6    sem=-                ctl=none        nonmotor             none        -
d12  arrow=left_turn  SG=6    sem=-                ctl=none        arrow_only           exact_arrow left_turn
d13  arrow=-          SG=9    sem=right_turn       ctl=unspecified tech_only            flag_only   -
d14  arrow=left_turn  SG=9    sem=right_turn       ctl=unspecified tech_only            flag_only   -
d15  arrow=-          SG=8    sem=right_turn       ctl=unspecified nonmotor             none        -
d16  arrow=-          SG=9    sem=right_turn       ctl=unspecified tech_only            flag_only   -
d17  arrow=left_turn  SG=9    sem=right_turn       ctl=unspecified conflict_LR          flag_only   - [SWAP]
d18  arrow=-          SG=7    sem=right_turn       ctl=unspecified nonmotor             none        -
d19  arrow=-          SG=8    sem=right_turn       ctl=unspecified nonmotor             none        -
d20  arrow=-          SG=10   sem=left_turn        ctl=unspecified tech_only            flag_only   -
d21  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d22  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d23  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d24  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d25  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "swap"
 ],
 "exact_scored": 12,
 "exact_correct": 12,
 "fp_consumable": 0,
 "fn": 1,
 "flags": {
  "d15_swap": "presumed arrow-left correct (SG9/SG9* collision); ink left-hook"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

Site 556

PAIR: d10/d11 — I read BOTH as true rights withheld (up-left curls = right from WB)

Tech extract + shadow verdicts
== TECH EXTRACT site 556 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG1, 4->SG4, 6->SG2, 7->SG2, 8->SG2, 9->SG3, 10->SG3, 11->SG3
SG4 [right_turn]: SG4 is a 3-aspect right turn
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d4   arrow=right_turn SG=4    sem=right_turn       ctl=unspecified agree                exact_both  right_turn
d5   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d6   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d7   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d8   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d9   arrow=-          SG=3    sem=-                ctl=none        nonmotor             none        -
d10  arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d11  arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d12  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d13  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "rt_fp_multi"
 ],
 "exact_scored": 7,
 "exact_correct": 7,
 "fp_consumable": 0,
 "fn": 2,
 "flags": {
  "d10_d11_rt_fp": "BOTH true rights withheld (up-left curls = right from WB)"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

Site 667

PAIR: d5 wrong-side TP (ink LEFT), d6 true right withheld

Tech extract + shadow verdicts
== TECH EXTRACT site 667 (v2.1) ==
det->SG: 1->SG1, 2->SG4, 3->SG2, 4->SG2, 5->SG3, 6->SG3
SG4 [right_turn_full]: SG4 is a 3-aspect (R/Y/G) fully controlled right turn
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=right_turn SG=4    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d3   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d4   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d5   arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d6   arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d7   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d8   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "rt_fp_multi"
 ],
 "exact_scored": 4,
 "exact_correct": 4,
 "fp_consumable": 0,
 "fn": 1,
 "flags": {
  "d5_rt_fp": "TP - wrong-side (ink LEFT)",
  "d6_rt_fp": "true right withheld"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

Site 3384

RECHECK benchmark: 11 exacts clean; d11 flagged FP; d12 shared T+L

Tech extract + shadow verdicts
== TECH EXTRACT site 3384 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG1, 4->SG1, 5->SG5, 7->SG2, 8->SG2, 9->SG2, 10->SG6, 11->SG3, 12->SG4
SG5 [right_turn_full]: SG5 & SG6 are 3 aspect (R/Y/G) fully controlled right turns
SG6 [right_turn_full]: SG5 & SG6 are 3 aspect (R/Y/G) fully controlled right turns
SG7 [left_turn_partial]: SG7 is a 1 aspect (G) partially controlled left turn
SG8 [bus]: SG8 is a 1 aspect (W) Bus display
SG9 [bicycle]: SG9 is a 1 aspect (G) Bike display
SG10 [not_used]: SG10 - SG12 are not used
SG11 [not_used]: SG10 - SG12 are not used
SG12 [not_used]: SG10 - SG12 are not used
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d4   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d5   arrow=right_turn SG=5    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d6   arrow=left_turn  SG=-    sem=-                ctl=none        arrow_only           exact_arrow left_turn
d7   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d8   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d9   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d10  arrow=right_turn SG=6    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d11  arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d12  arrow=left_turn  SG=4    sem=-                ctl=none        none                 none        -
d13  arrow=left_turn  SG=-    sem=-                ctl=none        arrow_only           exact_arrow left_turn
d14  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d15  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d16  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d17  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d18  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d19  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d20  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d21  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d22  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d23  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d24  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "mandatory_rescore"
 ],
 "exact_scored": 11,
 "exact_correct": 11,
 "fp_consumable": 0,
 "fn": 0,
 "flags": {
  "d11_rt_fp": "TP_filter (wide-box class, lane-layer FP, not consumed)",
  "d12_shared": "correct v7.1 demotion, ink=T+L wide box"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0,
 "notes": "11/11 letter+target; A2 bus row road wrong but flagged nonmotor"
}

Site 3732

RECHECK: d18 tech-minted RIGHT (ink-correct); d12 steal caught; d19 swap=arrow wrong

Tech extract + shadow verdicts
== TECH EXTRACT site 3732 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG5, 4->SG2, 5->SG2, 6->SG2, 7->SG6, 8->SG3, 9->SG3, 10->SG9, 11->SG4, 12->SG4, 17->SG1, 18->SG10, 19->SG9
SG5 [right_turn_full]: SG5, SG6, SG9 and SG10 are 3-aspect (R/Y/G) fully controlled right turns
SG6 [right_turn_full]: SG5, SG6, SG9 and SG10 are 3-aspect (R/Y/G) fully controlled right turns
SG7 [tram]: SG7 and SG8 are 3-aspect (R/Y/G) tram displays
SG8 [tram]: SG7 and SG8 are 3-aspect (R/Y/G) tram displays
SG9 [right_turn_full]: SG5, SG6, SG9 and SG10 are 3-aspect (R/Y/G) fully controlled right turns
SG10 [right_turn_full]: SG5, SG6, SG9 and SG10 are 3-aspect (R/Y/G) fully controlled right turns
SG11 [left_turn_partial]: SG11 is a 2-aspect (Y/G) partially controlled left turn
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=right_turn SG=5    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d4   arrow=-          SG=2    sem=-                ctl=none        none                 none        -
d5   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d6   arrow=-          SG=2    sem=-                ctl=none        none                 none        -
d7   arrow=right_turn SG=6    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d8   arrow=-          SG=3    sem=-                ctl=none        none                 none        -
d9   arrow=through    SG=3    sem=-                ctl=none        arrow_only           exact_arrow through
d10  arrow=through    SG=9    sem=right_turn_full  ctl=full        tech_preferred       flag_only   -
d11  arrow=through    SG=4    sem=-                ctl=none        arrow_only           exact_arrow through
d12  arrow=right_turn SG=4    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d14  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d16  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d17  arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d18  arrow=-          SG=10   sem=right_turn_full  ctl=full        tech_only            exact_tech  right_turn
d19  arrow=left_turn  SG=9    sem=right_turn_full  ctl=full        conflict_LR          flag_only   - [SWAP]
d20  arrow=left_turn  SG=-    sem=-                ctl=none        nonmotor             none        -
d21  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d22  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d23  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d24  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "swap",
  "rt_fp",
  "tech_preferred",
  "road_mismatch"
 ],
 "exact_scored": 10,
 "exact_correct": 10,
 "fp_consumable": 0,
 "fn": 3,
 "flags": {
  "d12_rt_fp": "TRUE FP confirmed by zoom: hook belongs to d18 lane (window steal)",
  "d18_exact_tech": "CORRECT right mint - ink hook on d18 lane",
  "d10_tech_preferred": "TRUE conflict: ink=hook right, arrow read through",
  "d19_swap": "tech RIGHT correct, arrow side wrong (hook sign error)"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0,
 "notes": "swap class heterogeneous: 2042=arrow-right(starred collision), 3732=tech-right(hook sign)"
}

Site 511

RECHECK: 9 exacts clean; d9 wrong-side TP; d10 true right withheld

Tech extract + shadow verdicts
== TECH EXTRACT site 511 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG1, 4->SG4, 5->SG2, 6->SG2, 7->SG2, 8->SG2, 9->SG3, 10->SG3, 16->SG4
SG3* [left_turn_partial]: SG3* is a 2-apect (Y/G) partially controlled left turn
SG4 [right_turn_full]: SG4 is a 3-aspect (R/Y/G) fully controlled right turn
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d4   arrow=right_turn SG=4    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d5   arrow=left_turn  SG=2    sem=-                ctl=none        arrow_only           exact_arrow left_turn
d6   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d7   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d8   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d9   arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d10  arrow=right_turn SG=3    sem=-                ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d11  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d12  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d13  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d14  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d15  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d16  arrow=right_turn SG=4    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d17  arrow=left_turn  SG=-    sem=-                ctl=none        none                 none        -
My scorecard entry
{
 "strata": [
  "rt_fp_multi"
 ],
 "exact_scored": 9,
 "exact_correct": 9,
 "fp_consumable": 0,
 "fn": 1,
 "flags": {
  "d9_rt_fp": "TP - wrong-side arrow (ink LEFT, read right)",
  "d10_rt_fp": "true right withheld"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

Site 982

RECHECK: 5 exacts clean; d8 U-turn class-mismatch; d9 conservative hold

Tech extract + shadow verdicts
== TECH EXTRACT site 982 (v2.1) ==
det->SG: 1->SG1, 2->SG1, 3->SG4, 6->SG2, 7->SG2, 8->SG5, 9->SG3, 10->SG3, 11->SG3
SG3 [right_turn]: SG3 is a 3-aspect [(R/Y) circle, (G) right turn arrow] display
SG4 [right_turn_full]: SG4 is a 3-aspect (R/Y/G) fully controlled right turn
SG5 [other]: SG5 is a 3-aspect (R/Y/G) fully controlled U-turn display
SG6 [bus]: SG6 and SG9 are single-aspect white 'B' (bus) displays
SG9 [bus]: SG6 and SG9 are single-aspect white 'B' (bus) displays
-- mint shadow --
d1   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d2   arrow=through    SG=1    sem=-                ctl=none        arrow_only           exact_arrow through
d3   arrow=right_turn SG=4    sem=right_turn_full  ctl=full        agree                exact_both  right_turn
d4   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d5   arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d6   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d7   arrow=through    SG=2    sem=-                ctl=none        arrow_only           exact_arrow through
d8   arrow=right_turn SG=5    sem=other            ctl=none        arrow_rt_fp_suspect  flag_only   - [RT_FP]
d9   arrow=through    SG=3    sem=right_turn       ctl=unspecified tech_preferred       flag_only   -
d10  arrow=right_turn SG=3    sem=right_turn       ctl=unspecified agree                exact_both  right_turn
d11  arrow=right_turn SG=3    sem=right_turn       ctl=unspecified agree                exact_both  right_turn
d12  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
d13  arrow=-          SG=-    sem=-                ctl=none        nonmotor             none        -
My scorecard entry
{
 "strata": [
  "tech_preferred"
 ],
 "exact_scored": 5,
 "exact_correct": 5,
 "fp_consumable": 0,
 "fn": 1,
 "flags": {
  "d8_rt_fp": "TP class-mismatch: SG5 fully controlled U-TURN (2nd U-turn case)",
  "d9_tech_preferred": "circle+right-arrow combined display; conservative hold ok"
 },
 "roads_ok": true,
 "site_exact": true,
 "critical": 0
}

2 · v7.2 demotion evidence

12 lanes demoted exact→approach_only by the composite floor (sample of 78/300 sites). Expected: thin markers / hatch bars / dimension lines. Any REAL full lane arrow here = log a regression.

3 · Appendix — all 42 rendered packs

4 · Appendix — arrow-floor tile grids

5 · Full scorecard

HS23_SCORECARD.json
{
 "protocol": "ckpt19+ckpt23",
 "renderer": "overlay_v2.1",
 "scorer": "fable",
 "sites": {
  "3384": {
   "strata": [
    "mandatory_rescore"
   ],
   "exact_scored": 11,
   "exact_correct": 11,
   "fp_consumable": 0,
   "fn": 0,
   "flags": {
    "d11_rt_fp": "TP_filter (wide-box class, lane-layer FP, not consumed)",
    "d12_shared": "correct v7.1 demotion, ink=T+L wide box"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0,
   "notes": "11/11 letter+target; A2 bus row road wrong but flagged nonmotor"
  },
  "3002": {
   "strata": [
    "swap"
   ],
   "exact_scored": 5,
   "exact_correct": 5,
   "fp_consumable": 0,
   "fn": 0,
   "flags": {
    "d17_swap": "validated conservative: arrow ownership ambiguous betw d17/d6 turn-bay loops; not consumed"
   },
   "roads_ok": false,
   "road_errors": [
    "A3=POWER should be BARKERS (d17 turn-bay on Barkers EB)"
   ],
   "site_exact": true,
   "critical": 0
  },
  "2042": {
   "strata": [
    "swap",
    "rt_fp"
   ],
   "exact_scored": 1,
   "exact_correct": 1,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d6_swap": "arrow CORRECT (left); tech starred-collision (d6 bound to bare SG4, drives SG4* left) - filter conservative, true left withheld",
    "d7_rt_fp": "arrow CORRECT (right); SG3/SG3* starred collision - filter withholds true right (recall cost, no precision harm)"
   },
   "roads_ok": null,
   "road_errors": [
    "site not in arm_road (no assignment) - map labels exist; investigate"
   ],
   "site_exact": true,
   "critical": 0
  },
  "3732": {
   "strata": [
    "swap",
    "rt_fp",
    "tech_preferred",
    "road_mismatch"
   ],
   "exact_scored": 10,
   "exact_correct": 10,
   "fp_consumable": 0,
   "fn": 3,
   "flags": {
    "d12_rt_fp": "TRUE FP confirmed by zoom: hook belongs to d18 lane (window steal)",
    "d18_exact_tech": "CORRECT right mint - ink hook on d18 lane",
    "d10_tech_preferred": "TRUE conflict: ink=hook right, arrow read through",
    "d19_swap": "tech RIGHT correct, arrow side wrong (hook sign error)"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0,
   "notes": "swap class heterogeneous: 2042=arrow-right(starred collision), 3732=tech-right(hook sign)"
  },
  "151": {
   "strata": [
    "swap"
   ],
   "exact_scored": 1,
   "exact_correct": 1,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d8_swap": "arrow CORRECT left; SG4/SG4* starred collision",
    "d9_rt_fp": "true right withheld (SG3 unlabelled)"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "275": {
   "strata": [
    "swap"
   ],
   "exact_scored": 4,
   "exact_correct": 4,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d7_swap": "arrow right favoured by ink; SG5-left binding noise",
    "d10_rt_fp": "true right withheld",
    "d9_d12_shared": "R+T shared correct per ink"
   },
   "roads_ok": false,
   "road_errors": [
    "A0,A1=FRANKSTON FREEWAY should be DANDENONG VALLEY HIGHWAY - interchange multi-label confusion"
   ],
   "site_exact": true,
   "critical": 0
  },
  "377": {
   "strata": [
    "swap"
   ],
   "exact_scored": 12,
   "exact_correct": 8,
   "fp_consumable": 0,
   "fn": 0,
   "mint_defect": "4 lanes (d4,d8,d12,d14) arrow='turn' unresolved side MINTED exact - must be flag_only; ink shows all are real turn bays (right per tech SG5/SG6/SG3); propose tech-side resolution",
   "roads_ok": true,
   "site_exact": false,
   "critical": 0,
   "notes": "shared R+T lanes d9,d10 correct"
  },
  "845": {
   "strata": [
    "swap"
   ],
   "exact_scored": 1,
   "exact_correct": 1,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d9_swap": "arrow CORRECT left; SG2/SG2* starred collision",
    "d10_rt_fp": "true right withheld (SG1 unlabelled)"
   },
   "roads_ok": null,
   "road_errors": [
    "site not in arm_road - labels exist; older template; investigate with 2042"
   ],
   "site_exact": true,
   "critical": 0
  },
  "2337": {
   "strata": [
    "swap"
   ],
   "exact_scored": 12,
   "exact_correct": 12,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d15_swap": "presumed arrow-left correct (SG9/SG9* collision); ink left-hook"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "2982": {
   "strata": [
    "swap"
   ],
   "exact_scored": 2,
   "exact_correct": 2,
   "fp_consumable": 0,
   "fn": 0,
   "flags": {
    "d2_swap": "tech RIGHT correct - ink hook right, arrow read left (2nd tech-right case)"
   },
   "roads_ok": false,
   "road_errors": [
    "A0=RIVER should be TOORAK (arm split)"
   ],
   "site_exact": true,
   "critical": 0
  },
  "3940": {
   "strata": [
    "swap"
   ],
   "exact_scored": 1,
   "exact_correct": 1,
   "fp_consumable": 0,
   "fn": 0,
   "flags": {
    "d3_swap": "tech RIGHT correct - ink hook right (3rd tech-right)",
    "d7_rt_fp": "UNCERTAIN at zoom - excluded either way; Sabour audit item"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "4272": {
   "strata": [
    "swap"
   ],
   "exact_scored": 0,
   "exact_correct": 0,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d5_swap": "arrow LEFT correct (SG4* collision)",
    "d6_rt_fp": "true right withheld"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "5205": {
   "strata": [
    "swap"
   ],
   "exact_scored": 3,
   "exact_correct": 3,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d8_swap": "arrow RIGHT correct; SEMANTICS-BLEED defect (split-phase sentence over-capture misread SG5 as left)",
    "d7_uncertain": "lean-correct T; audit item"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0,
   "notes": "5-leg, all 5 roads bound correctly incl recovered RYRIE"
  },
  "511": {
   "strata": [
    "rt_fp_multi"
   ],
   "exact_scored": 9,
   "exact_correct": 9,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d9_rt_fp": "TP - wrong-side arrow (ink LEFT, read right)",
    "d10_rt_fp": "true right withheld"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "556": {
   "strata": [
    "rt_fp_multi"
   ],
   "exact_scored": 7,
   "exact_correct": 7,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d10_d11_rt_fp": "BOTH true rights withheld (up-left curls = right from WB)"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "667": {
   "strata": [
    "rt_fp_multi"
   ],
   "exact_scored": 4,
   "exact_correct": 4,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d5_rt_fp": "TP - wrong-side (ink LEFT)",
    "d6_rt_fp": "true right withheld"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "2166": {
   "strata": [
    "rt_fp_multi"
   ],
   "exact_scored": 6,
   "exact_correct": 6,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d3_rt_fp": "TP - class mismatch: SG4 is fully-controlled U-TURN (semantics 'other'; U-turn not in vocab) - lane is U-bay read as right",
    "d8_rt_fp": "true right withheld"
   },
   "roads_ok": false,
   "road_errors": [
    "A0='LOCATION' junk harvest from CONTROLLER LOCATION label - should be PASCOE VALE ROAD"
   ],
   "site_exact": true,
   "critical": 0
  },
  "339": {
   "strata": [
    "exact_tech",
    "tech_preferred"
   ],
   "exact_scored": 6,
   "exact_correct": 6,
   "fp_consumable": 0,
   "fn": 2,
   "flags": {
    "d8_exact_tech": "CORRECT right mint #2 - ink hook right, arrow had read left (hook-sign error)",
    "d7_d11_tech_preferred": "validated conservative; d11 true through withheld"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  },
  "982": {
   "strata": [
    "tech_preferred"
   ],
   "exact_scored": 5,
   "exact_correct": 5,
   "fp_consumable": 0,
   "fn": 1,
   "flags": {
    "d8_rt_fp": "TP class-mismatch: SG5 fully controlled U-TURN (2nd U-turn case)",
    "d9_tech_preferred": "circle+right-arrow combined display; conservative hold ok"
   },
   "roads_ok": true,
   "site_exact": true,
   "critical": 0
  }
 },
 "running_notes": {
  "swap_class_6_of_12_scored": "4x arrow-right(starred collision) 1x tech-right(3732 hook sign) 1x ambiguous-conservative(3002)",
  "rt_fp_class_6_scored": "2 TP (3384 d11, 3732 d12 - window steals on through-SG dets) vs 4 true-rights withheld (det SG unlabelled) - refinement: suspect only when det SG carries through identity",
  "mint_defect": "arrow='turn' mints exact_arrow - fix to flag_only or tech-side resolution",
  "armroad_gaps": "2042, 845 unassigned despite visible labels (older template title block?)",
  "swap_final_12": "7 arrow-right(starred-collision incl 1 semantics-bleed) / 3 tech-right(hook sign errors) / 1 ambiguous / 1 presumed-arrow-right",
  "rt_fp_9_scored": "3 TP-ish (2 confirmed window-steals + 1 uncertain) vs 6 true-rights withheld",
  "rt_fp_15_lanes": "~5 TP (wrong-side/U-turn caught) vs ~11 true-rights withheld; dual-lane minor-leg pairs -> one hook side misread; hook-sign instability = common root cause with tech-right swaps",
  "new_defects": [
   "U-turn semantic class missing (classify() -> other)",
   "'LOCATION' junk road harvest",
   "semantics-bleed on split-phase sentences (5205)"
  ]
 },
 "summary": {
  "sites_ink_scored": 23,
  "consumable_exact_scored": 99,
  "wrong_side_confirmed": 0,
  "uncertain": 2,
  "turn_mint_defect": 4,
  "true_movements_withheld_by_flags": 22,
  "missed_arrow_fns": 7,
  "site_exact_match": "22/23 (96%)",
  "critical_errors": 0,
  "road_arms_checked": "~75; 5 errors + 2 unassigned sites (93%)",
  "precision_consumable": "95/99=0.96 raw; 1.00 after 'turn'-mint rule fix",
  "recall_corpus_weighted": "~0.93-0.95 (flags withhold ~6% incl many recoverable true turns)",
  "floor": "8pt band precision ~50-60% FAILS 95%; blanket 14pt kills small-hook sheets (3727 hooks 12x5pt); composite curvature+geometry rule required (item-8.5), calibration set = FLOOR_INVENTORY 221 black-ink candidates + scored tiles",
  "root_causes": [
   "hook-sign instability (curved-head decomposition) -> tech-right swaps + one-of-pair rt_fp wrong-sides",
   "starred-SG collision (det bound to bare SG, drives starred left aux) -> arrow-right swaps",
   "U-turn semantic class missing (classify->other)",
   "semantics sentence-bleed (split-phase)",
   "arm_road: interchange multi-label + junk single-word harvest + arm-splitting"
  ]
 }
}

Generated 2026-07-30 by Cowork-Claude (Fable) · overlay v2.1 · extractor v7.2 · canon fact-handscore-gate-v72-ckpt24-2026-07-29