API-контракт
00 / ownershipCONSUMES
PROVIDES
DOES NOT OWN
Режимы границы
01 / semantic modesОткрытый path соединяет две части boundary родительской области и разрезает её на компоненты.
Замкнутый path образует внутреннюю и внешнюю область.
Линия совпадает с существующей частью границы region/object.
Линия не обязана физически перекрывать весь region, если upstream явно задаёт более мягкий separator-mode.
По разные стороны линии
02 / side assignmentStraight divider
DERIVED SIDE_A/B — канонические метки. Они не означают автоматически «лево/право», «до/после» или семантические группы.
Object footprint
Центр объекта — допустимый fallback, но не доказательство, что весь объект находится по одну сторону.
Топология разделения
03 / region minus barrierCanonical model
Для идеализированной zero-width линии возможно использовать planar subdivision, но stroke-area модель ближе к реальному видимому разделителю.
Expected partition
Если линия создаёт 3–4 компонента, это не обязательно ошибка, но такое поведение не должно случайно проходить как обычный divider.
Barrier completeness
04 / does the separator actually close the route?Endpoint-to-boundary
Для open divider оба endpoint обычно должны достигать подходящих участков boundary.
Gap descriptor
HEURISTIC Только быстрый proxy; топологический partition test сильнее.
Barrier completeness
Fallback никогда не должен выдавать ту же confidence, что exact region partition.
Closed boundary / enclosure
05 / frame-like pathClosure gap
Enclosed area
DERIVED Площадь — descriptor, не эстетический score.
Self-intersection
Self-intersection relation может потребляться из 2.10 / geometry-owner topology.
frame. Enclosure semantics должны приходить из role/subrole/request, а geometry только проверяет, выполняются ли они.Boundary conformity
06 / line following an existing edgeDistance to target boundary
Для EDGE_BOUNDARY линия должна следовать заданному edge segment, а не просто быть рядом с объектом.
Tangent agreement
Позиция и направление оцениваются отдельно.
Local boundary scoring
07 / metric ownershipOWNS
DOES NOT OWN
Correction requests
08 / controlled repairEXTEND
Дотянуть endpoint до parent boundary.
REROUTE
Изменить path, если divider не создаёт ожидаемую partition.
CLOSE
Замкнуть frame/enclosure при малом closure gap.
RELABEL MODE
Если geometry не соответствует семантике, предложить upstream сменить mode — но не делать это молча.
Визуальная лаборатория
09 / partition casesДетерминированные тесты
10 / regressionTEST 01 · side sign
TEST 02 · full split
TEST 03 · floating line
TEST 04 · closure
TEST 05 · ambiguous semantics
TEST 06 · curve split
TEST 07 · balance leak
TEST 08 · fallback
TEST 09 · ownership
LIVE REFERENCE TESTS
| ID | Input | Computed | Status |
|---|