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