SAM3 refine guard: off | on | on + guard | human
332 frozen holdout (test-holdout-ids-canonical.json, frozen 2026-08-25), v29 finder, unified chain, 2026-09-29. Lines-perfect: SAM3 off 262 · SAM3 on 187 · SAM3 on + guard 261. Guard = keep a SAM3 line only if it moves the finder line by at most 3% of the image diagonal. "err" = mean line distance from human (% diag; miss/extra = 5).
Guard keeps SAM3 clean-ups (prior gallery BETTER ids) (31)
Photos Alex saw improve with SAM3; err off vs guard.
0f6e6446-8fb8-455d-bfbe-de26f09eefd2 · err off 1.52 · on 1.38 · guard 1.38

301a8bbf-f797-47c6-ae7c-ea73ac1abd7f · err off 2.04 · on 1.83 · guard 1.83

3a951997-0e8f-4988-a03b-629c32423f0d · err off 0.35 · on 0.2 · guard 0.2

45ac5c40-de3c-48a7-a2e4-4d2e35ffa295 · err off 0.33 · on 0.12 · guard 0.12

522f3e04-0242-482d-965d-dcd3aa7e02d7 · err off 0.43 · on 0.08 · guard 0.08

53694a34-355d-4a5b-a840-33e17d3fe8cf · err off 0.31 · on 0.11 · guard 0.11

56e036ce-5c31-4aa6-8140-9c255f0e1060 · err off 0.3 · on 0.16 · guard 0.16

61810429-f4cb-4bb2-b21e-8bfe08860d1b · err off 0.46 · on 0.22 · guard 0.22

69957601443405551b9fa83f · err off 0.24 · on 0.18 · guard 0.18

699715b67e37b6370385b8a3 · err off 1.06 · on 0.85 · guard 0.71

69bac4ee630c918d087bf580 · err off 0.39 · on 2.38 · guard 0.28

69c44d5c8c718d5d543a2010 · err off 0.22 · on 1.84 · guard 0.12

69e6c64b5e24eefa6fe383d3 · err off 0.65 · on 0.22 · guard 0.63

69e9db7d500996e6f1b74c95 · err off 0.39 · on 0.24 · guard 0.24

69f09238270a835330087b8c · err off 10.0 · on 8.52 · guard 10.0

6a041bd3065edc0805862206 · err off 5.0 · on 5.0 · guard 5.0

6a04bedf065edc0805862212 · err off 0.71 · on 0.86 · guard 0.86

6a0b0cd2f1700585b2a2ea61 · err off 1.9 · on 1.9 · guard 1.9

6a0c0839707878e84c12fcbc · err off 0.37 · on 0.18 · guard 0.18

6a2839a8814eb7b517af9a21 · err off 0.4 · on 0.32 · guard 0.32

6a3a90bc1f2499a7cd5f8ab9 · err off 0.5 · on 2.25 · guard 0.52

6a4e9ec4c92b93d3597eea36 · err off 0.36 · on 0.22 · guard 0.22

6cb1b894-a716-4a8b-b43d-3eec1868df7e · err off 0.47 · on 0.34 · guard 0.34

6e03a539-4d62-4013-9696-8c870c37ee82 · err off 0.29 · on 0.32 · guard 0.32

903b76d3-792f-4f39-ae12-83c1058606db · err off 0.26 · on 0.17 · guard 0.17

9a9bf03c-3ca7-4657-95df-27854f96ca1e · err off 0.29 · on 0.09 · guard 0.09

a9b92597-14ce-45ab-9251-f7d5cb6f8421 · err off 0.31 · on 0.16 · guard 0.16

c721b1b7-5d73-4a04-b496-c6a6c9025c4e · err off 0.44 · on 0.3 · guard 0.3

e27c97c2-2dfd-4ef3-be71-3be10a9a19ec · err off 0.44 · on 0.3 · guard 0.3

f1753171-8e94-4ad0-9d43-baeabaa8aa29 · err off 0.32 · on 0.19 · guard 0.19

f8a02b2a-6548-474d-9515-e64a66f9dc1d · err off 3.43 · on 0.12 · guard 3.42

Guard fixed what SAM3 broke (on not perfect, guard perfect) (40)
0ac738e0-20e8-490f-8c1c-568387bed433 · on->guard gained

1153ea94-b235-4d64-a13c-5833d6dcedc7 · on->guard gained

1a2cdec6-9fc0-4483-9380-67cfa8462c7f · on->guard gained

29d1cbf5-cb92-4419-bd71-18f55c107883 · on->guard gained

2d4768fe-d369-4f93-8b4d-418d8ca262eb · on->guard gained

2fc51b49-44ea-48a8-b85e-d326e77f2f15 · on->guard gained

44e0c409-2ffd-4535-98c6-697beecb292b · on->guard gained

4a8f14d5-3584-485a-aa07-c643343a8beb · on->guard gained

59448c98-a593-415c-b14a-194e16ba9867 · on->guard gained

68d28725ad361b3bb79ce87f · on->guard gained

69008e349264e691fd1120da · on->guard gained

69028174ad76bbe1dff9bb72 · on->guard gained

691217d9e05a8133399d027e · on->guard gained

6914d3ff106b899d3b58b153 · on->guard gained

69935b1fdf1675b371e9c291 · on->guard gained

6993969edb7956f74534f476 · on->guard gained

6994f87966293f7fd25a5147 · on->guard gained

699649075940ef60b9951537 · on->guard gained

6999eeea7e37b6370385b8cb · on->guard gained

69a20e5040043e516bbf86eb · on->guard gained

69a6de5e8d0a3e30f5ad0884 · on->guard gained

69afc9c7ab578cafd5995ed1 · on->guard gained

69b0324cab578cafd5995ee4 · on->guard gained

69bac4ee630c918d087bf580 · on->guard gained

69bbd2cfc73b02df6f09e863 · on->guard gained

69bc6709a43e8f768f2b15b0 · on->guard gained

69c44d5c8c718d5d543a2010 · on->guard gained

69cd6833ff1309d410514961 · on->guard gained

69ce4d660079da88e9ac9cb1 · on->guard gained

69cfbfe32b1792f6c6e98621 · on->guard gained

69d95bd7d52b6bc2d8090bcf · on->guard gained

69e22c1513569618c9ace5ce · on->guard gained

69e32023f82b375040537ab1 · on->guard gained

69e79f87c95a901d97c33267 · on->guard gained

69e8891cb5165b7c70a07056 · on->guard gained

69eaeb47755c1b22c56f805b · on->guard gained

69fb43f41a52e27ff879271b · on->guard gained

69fb469b814ff18a4dc8452a · on->guard gained

69fbb0408c5ea70616cc22df · on->guard gained

69fbcd82f3170197ba0edb1d · on->guard gained

Guard lost vs SAM3 on / vs off (2)
f8a02b2a-6548-474d-9515-e64a66f9dc1d · on->guard lost

788356aa-7d0d-4523-a062-b6727b213788 · off->guard lost

Rules-engine misses: served hairpin/kink >30° (off or guard column) (28)
maxTurnDeg / production geometryViolationReasons per stripe
1a2cdec6-9fc0-4483-9380-67cfa8462c7f · s0 170.4° hasHairpin,hasSharpLocalKink,excessReverseTurn,nonMonotonicProgress

2d4768fe-d369-4f93-8b4d-418d8ca262eb · s0 74.1° hasHairpin,hasSharpLocalKink,excessReverseTurn,nonMonotonicProgress

3797a0a1-f76a-435b-8e82-5a31dce962e9 · s0 175.7° hasHairpin,nonMonotonicProgress

3a57b31f-9804-4d14-9fc9-a40b945b9b71 · s1 149.3° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

3a951997-0e8f-4988-a03b-629c32423f0d · s0 179.3° hasHairpin

44e0c409-2ffd-4535-98c6-697beecb292b · s0 20.2° excessReverseTurn

5e2a465c-9aaf-4d04-9ef0-2c830450d263 · s0 177.8° hasHairpin,hasSharpLocalKink,excessReverseTurn,nonMonotonicProgress

5f0ae07e-73f3-47a4-86ec-a72d9ce1bfe1 · s0 177.2° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

61632de3-8dc9-403b-a2e5-d9ec128769c3 · s0 178° hasHairpin,excessReverseTurn,nonMonotonicProgress

658ba7e5-61b1-47c1-a292-d130b6469e52 · s0 32.2°

699715b67e37b6370385b8a3 · s0 178.8° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

69fb43f41a52e27ff879271b · s0 179.5° hasHairpin,hasSharpLocalKink,excessReverseTurn,nonMonotonicProgress

69fc867c423270442082c665 · s0 178.5° hasHairpin,nonMonotonicProgress

6a04bedf065edc0805862212 · s0 161.7° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

6a0c4f07482a96f4c6a53544 · s1 43° hasSharpLocalKink,excessReverseTurn

6a0d90806a75200cf346f67b · s0 179.4° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

6a0d9a07455d55d696170a40 · s0 178° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

6a414d8fc425fdfed0e5f5a1 · s1 31°

6ca1ca46-85eb-4cde-881d-7813579f26e2 · s2 31.2°

7f3e673a-976c-4e5a-90e9-ff3bcc23dbc9 · s2 164° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

85e3e22a-aa1f-477f-a7e9-5b42240490d3 · s1 30.6°

9ad0a1f4-ee77-40f9-a507-25c29984c824 · s0 178.1° hasHairpin,nonMonotonicProgress; s1 176.1° hasHairpin,hasSharpLocalKink,excessReverseTurn,nonMonotonicProgress

b89aa759-62ff-4fd0-85fb-9483fa7651e0 · s0 179.7° hasHairpin,nonMonotonicProgress; s1 176.9° hasHairpin

bbd5d738-666f-4665-a7ec-25f78f1c4326 · s0 26.5° excessReverseTurn

c28257a4-0807-49c5-88dd-66800bfe00b9 · s2 171.9° hasHairpin

c7dfbc8d-82de-4a9a-8ebf-12e0501be4d7 · s2 156° hasHairpin,nonMonotonicProgress

f8a02b2a-6548-474d-9515-e64a66f9dc1d · s2 179° hasHairpin,hasSharpLocalKink,nonMonotonicProgress

fd203e72-4c9f-417d-8920-33247905e968 · s0 177.9° hasHairpin,excessReverseTurn,nonMonotonicProgress
