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 |
- |