epiphany/spikes/editor-toolkit/round1-oracle/ORACLE_SUMMARY.md

8.9 KiB

Round 1 precommitted oracle — compound-path fill correctness

Generated by round1-oracle (spikes/editor-toolkit/round1-oracle). Governed by spec/CONTRACT_EDITOR_T4_SPIKE.md Revision 6, Round 1 ("criterion 1, compound-path fill correctness"). No rendering crate was used to produce this file — every point below is derived from the typed PathCommand outline alone.

Two check classes, testing two different properties: bounded-hole (gClef, timeSig8, accidentalFlat, noteheadHalf) requires ≥3 ink and ≥3 must-be-background points inside a bounded hole; disjoint-component (fClef) has no bounded hole by design and instead requires ≥1 ink point inside each of its three filled subpaths, tagged with subpath_index.

Render transform (pinned)

device = (staff.x * scale + tx, ty - staff.y * scale); scale = 100 device px per staff space; tx/ty center the glyph's own flattened bounding box in a 1920x1080 target (pin 4); staff-space is y-up, device space is y-down

  • Flatten tolerance: 0.0005 staff-space units (Bezier chord deviation).
  • Clearance floor: 8 device px.

Overall status

glyph requirement satisfied ring_signed_areas
gClef BoundedHole true [8.702, -0.691, -1.803, -0.509]
timeSig8 BoundedHole true [2.674, -0.435, -0.515]
accidentalFlat BoundedHole true [1.040, -0.257]
noteheadHalf BoundedHole true [0.903, -0.368]
fClef DisjointComponents true [2.534, 0.153, 0.148]

fClef is satisfied = true with zero background points — that is the correct, designed-for outcome for its DisjointComponents requirement class, not a shortfall. The satisfied column above is the field to read; background_satisfied alone would make that correct outcome indistinguishable from a bounded-hole glyph's genuine failure.

gClef

  • Requirement class: BoundedHole (≥3 ink, ≥3 background inside a bounded hole)
  • Overall status: satisfied = true
  • Subpaths: 4 (matches recorded 4)
  • Ring signed areas (staff-space², shoelace, ring order): [8.702, -0.691, -1.803, -0.509]
  • Bounding box (staff space): [0.0, -2.631999969482422, 2.684000015258789, 4.392000198364258]
  • Outer contour ring index: 0
  • Transform: scale=100, tx=825.800, ty=628.000, target=1920x1080
  • background_required=true, background_satisfied=true
  • subpath_coverage_required=false, subpath_coverage_satisfied=true
  • Ink candidates found (>= 8px clearance): 27069
  • Background/hole candidates found (>= 8px clearance): 18066
  • Ink point spacing relaxed: false
  • Background point spacing relaxed: false
class subpath_index staff (x, y) device (x, y) clearance (device px) hole evidence
Ink - (0.9400, -1.9220) (919.80, 820.20) 39.879 -
Ink - (0.8500, -2.0520) (910.80, 833.20) 31.153 -
Ink - (1.2700, 1.8880) (952.80, 439.20) 29.458 -
Background - (1.7600, 3.2580) (1001.80, 302.20) 32.236 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (1.7000, 3.1180) (995.80, 316.20) 31.015 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (1.8200, 3.4080) (1007.80, 287.20) 29.839 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)

timeSig8

  • Requirement class: BoundedHole (≥3 ink, ≥3 background inside a bounded hole)
  • Overall status: satisfied = true
  • Subpaths: 3 (matches recorded 3)
  • Ring signed areas (staff-space², shoelace, ring order): [2.674, -0.435, -0.515]
  • Bounding box (staff space): [0.07999999821186066, -1.0360000133514404, 1.6640000343322754, 1.0360000133514404]
  • Outer contour ring index: 0
  • Transform: scale=100, tx=872.800, ty=540.000, target=1920x1080
  • background_required=true, background_satisfied=true
  • subpath_coverage_required=false, subpath_coverage_satisfied=true
  • Ink candidates found (>= 8px clearance): 8030
  • Background/hole candidates found (>= 8px clearance): 5882
  • Ink point spacing relaxed: false
  • Background point spacing relaxed: false
class subpath_index staff (x, y) device (x, y) clearance (device px) hole evidence
Ink - (1.3300, -0.1960) (1005.80, 559.60) 28.647 -
Ink - (1.1200, -0.0460) (984.80, 544.60) 28.211 -
Ink - (0.9600, 0.0140) (968.80, 538.60) 26.413 -
Background - (0.6900, -0.5360) (941.80, 593.60) 34.514 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (0.8400, -0.5860) (956.80, 598.60) 31.745 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (1.0000, 0.5940) (972.80, 480.60) 29.916 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)

accidentalFlat

  • Requirement class: BoundedHole (≥3 ink, ≥3 background inside a bounded hole)
  • Overall status: satisfied = true
  • Subpaths: 2 (matches recorded 2)
  • Ring signed areas (staff-space², shoelace, ring order): [1.040, -0.257]
  • Bounding box (staff space): [0.0, -0.699999988079071, 0.9039999842643738, 1.75600004196167]
  • Outer contour ring index: 0
  • Transform: scale=100, tx=914.800, ty=592.800, target=1920x1080
  • background_required=true, background_satisfied=true
  • subpath_coverage_required=false, subpath_coverage_satisfied=true
  • Ink candidates found (>= 8px clearance): 1381
  • Background/hole candidates found (>= 8px clearance): 1175
  • Ink point spacing relaxed: false
  • Background point spacing relaxed: false
class subpath_index staff (x, y) device (x, y) clearance (device px) hole evidence
Ink - (0.7500, 0.3100) (989.80, 561.80) 14.124 -
Ink - (0.7600, 0.1500) (990.80, 577.80) 13.243 -
Ink - (0.1500, 0.3800) (929.80, 554.80) 12.985 -
Background - (0.4000, 0.1200) (954.80, 580.80) 22.160 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (0.3700, -0.0300) (951.80, 595.80) 18.269 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (0.4600, 0.2600) (960.80, 566.80) 13.874 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)

noteheadHalf

  • Requirement class: BoundedHole (≥3 ink, ≥3 background inside a bounded hole)
  • Overall status: satisfied = true
  • Subpaths: 2 (matches recorded 2)
  • Ring signed areas (staff-space², shoelace, ring order): [0.903, -0.368]
  • Bounding box (staff space): [0.0, -0.5, 1.1799999475479126, 0.5]
  • Outer contour ring index: 0
  • Transform: scale=100, tx=901.000, ty=540.000, target=1920x1080
  • background_required=true, background_satisfied=true
  • subpath_coverage_required=false, subpath_coverage_satisfied=true
  • Ink candidates found (>= 8px clearance): 949
  • Background/hole candidates found (>= 8px clearance): 1919
  • Ink point spacing relaxed: false
  • Background point spacing relaxed: false
class subpath_index staff (x, y) device (x, y) clearance (device px) hole evidence
Ink - (0.4000, 0.2800) (941.00, 512.00) 12.348 -
Ink - (0.7600, -0.2900) (977.00, 569.00) 12.308 -
Ink - (0.8900, -0.2000) (990.00, 560.00) 11.678 -
Background - (0.5900, 0.0000) (960.00, 540.00) 21.286 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (0.4600, -0.0800) (947.00, 548.00) 20.683 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)
Background - (0.7200, 0.0800) (973.00, 532.00) 20.108 inside_outer_contour=true, even_odd_filled=false, nonzero_filled=false (outer ring 0)

fClef

  • Requirement class: DisjointComponents (no background requirement; ≥1 ink point per filled subpath)
  • Overall status: satisfied = true
  • Subpaths: 3 (matches recorded 3)
  • Ring signed areas (staff-space², shoelace, ring order): [2.534, 0.153, 0.148]
  • Bounding box (staff space): [-0.019999999552965164, -2.5399999618530273, 2.7360000610351563, 1.0479999780654907]
  • Outer contour ring index: 0
  • Transform: scale=100, tx=824.200, ty=465.400, target=1920x1080
  • background_required=false, background_satisfied=true
  • subpath_coverage_required=true, subpath_coverage_satisfied=true
  • Ink candidates found (>= 8px clearance): 3
  • Background/hole candidates found (>= 8px clearance): 0
  • Ink point spacing relaxed: false
  • Background point spacing relaxed: false
class subpath_index staff (x, y) device (x, y) clearance (device px) hole evidence
Ink 0 (0.5000, -0.0200) (874.20, 467.40) 41.560 -
Ink 1 (2.5160, 0.5000) (1075.80, 415.40) 21.974 -
Ink 2 (2.5240, -0.4960) (1076.60, 515.00) 21.149 -