Prepare complete-scene diagram readability fixtures and probe

This commit is contained in:
2026-10-01 17:42:24 -07:00
parent 715036e132
commit 2aac3e8353
11 changed files with 2560 additions and 0 deletions
@@ -0,0 +1,2 @@
# Preserve checksum-bound fixtures and provenance through Git round trips.
*.json -text whitespace=cr-at-eol
@@ -0,0 +1,105 @@
# Issue 38 bounded geometry experiment
Source preparation for `715036e132677dd2bc2fb37ed316d93dc9987aec`. No compilation,
current-router execution, GUI selection, or feature acceptance is claimed by this
directory. The parent owns execution/publication. Windows only; Linux/WSL excluded.
The Rust example uses `persistence::decode`, `validation::validate`,
`projection::project_view`, and `routing::route_diagram`. It accepts schema JSON or
single-file Arcadia source, not a multi-file source bundle. No production modules
are changed. It records the complete admitted Project, all projected nodes/ports/
edges, semantic endpoint identities, authored and effective route data, settled
geometry, labels, warnings, query occluders, and alternate geometric samples.
Its input source is read-only. Generation preserves original input bytes alongside
normalized complete projects. Individual probe output includes the exact UTF-8
input. Output files use create-new, and generation refuses an existing directory.
## Inputs and independent answer keys
`mixed-dispatch-original.json` is the exact 32,787-byte archived corpus member
`inputs/corpus/mixed_dispatch.json` (see provenance hashes). It has ten function
cards, fourteen Functional Exchanges, two saved views, and authored feedback route
`...01adbd` with waypoint `(300,-100)`, label fraction `.4`, offset `(-30,-70)`.
The secondary view is a conservation sentinel. The original full archive is
linked/hashes recorded in `provenance.json`; it is not duplicated here. Only the
historical **before** geometry from producer `3e21c1bc...` informed the declared
query. The paused boundary-order planner is neither imported nor executed.
`eight-card-view.json` adds one view to the complete, unchanged
`examples/release1/model.json`. Its positions approximate the user's screenshot;
the exact saved user view/camera/pins have not been recovered. The mixed OA Process
and SA cards use an inferred SA/Traceability view, not SA/Overview. This is a
representative reconstruction, not proof of the original projection or identities.
No authored routes are invented. All five original views remain unchanged.
The fixed answer keys were derived from input semantic records and endpoint-owner
placements, independently of the router. `eight-answer-key.json` has **12** edges:
four Allocation, four PortAllocation, two FunctionalExchange, one BoundaryExchange,
and one OA ChainInvolvement. No traces have both endpoints shown. PortAllocation
and BoundaryExchange semantic endpoints are ports; projected endpoints are their
owner placements. `mixed-answer-key.json` has fourteen FunctionalExchanges.
The probe fails if a recognized fixture view's full projected inventory differs,
including kind, semantic endpoints, ports, projected endpoints, and trace flag.
Do not treat the eight-card count alone as a semantic acceptance check.
The explicit archived warning baseline is ten `work_without_behavior_context`
and fourteen `exchange_without_behavior_context` diagnostics. It was prepared
from the input records and coverage rules; first execution must confirm it, not
silently regenerate it from observed diagnostics. The release1 baseline is its
existing one-warning `expected-diagnostics.json`. Every error, missing warning,
extra warning, or changed warning field/message fails admission. No automatic
warning acceptance or migration-based fixture replacement is performed.
## Query policy and limits
The declared historical query is world `(1982,375)`, zoom `1`. Reproduction requires
exactly the two genuine edges `...01adb8` (Actuator dispatch) and `...01adb9`
(Operator dispatch copy), zero segment distance, no node/port/label occluder,
and common vertical x1982 span y336..414 beyond the common port lead. The flag is
false when current routing no longer reproduces this geometry; that is a valid
experiment result, not an implementation failure. The eight-card default query
`(600,450)` is merely a declared inspection point, not an asserted overlap witness.
Line candidates use seven screen pixels converted to world units. Port occlusion
uses the desktop's **axis-aligned square** half-width `max(10/zoom,10)` world units.
It is not a radius-eight circle: `(9,9)` relative to a port center is inside the
square at zoom1 and zoom2 although its Euclidean distance exceeds10. The earlier
local historical audit's radius-eight assumption is superseded; its original
record remains historical and must not be cited as the current port-policy proof.
Node rectangles, nonempty ordinary label rectangles, and association-end label
rectangles are reported independently. Candidates are distinct edge identities,
with every matching segment recorded; a bend does not count as two edges.
Alternate access is a conservative sample at each segment's quarter/middle/three-
quarter points and each label center across the complete scene. A positive result
identifies geometric access under this query policy; a negative result proves
nothing about global accessibility. Native selected handles, gesture state,
viewport clipping, Inspector selection, keyboard behavior, pan/redraw, and actual
input dispatch are excluded. Ordinary labels precede association labels in desktop
dispatch; this probe conservatively rejects either overlap for an unoccluded sample.
It never claims native selection or global inaccessibility.
Read-only Project equality is a capture/conservation control, not an edit/undo test.
Neither automatic route stability after edits nor preview/committed settlement
identity is promised. Native evaluation must separately cover unaided tracing,
assisted selection, creating an intended relation in the populated scene, moving
labels/connections, undo/redo, save/reload, and preservation of authored metadata.
Inherited navigation defects (#43) must be recorded separately from routing (#38).
## Run and review
From the pinned worktree, with a fresh output path:
```powershell
cargo test --locked -p oa-core --example diagram_readability_probe
cargo run --locked -p oa-core --example diagram_readability_probe -- generate .local/issue38-probe-run01
cargo run --locked -p oa-core --example diagram_readability_probe -- probe harness/experiments/diagram-readability-20260929/mixed-dispatch-original.json harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json 00000000-0000-0000-0000-0000000186a1 1982 375 1 .local/issue38-probe-query01.json
```
Record `git rev-parse HEAD`, local diff, executable hash, Rust version, commands,
stdout/stderr, and output hashes. Verify `provenance.json` source/input SHA256s before
making a pinned-router claim. The output's declared base is not executable identity.
Tests check original-project conservation, full semantic inventories, sentinel and
authored route preservation, deterministic snapshots, failed admission, the port
corner, and analytical distinct-edge/label controls. Reuse current generated
geometry for subsequent native work; do not relabel historical geometry as a new run.
@@ -0,0 +1,134 @@
[
{
"id": "09eaa992-4cdf-5ea3-b748-f10fd74b8cba",
"kind": "PortAllocation",
"source": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"target": "d2113fb0-a531-54ef-9484-13951b00ab8f",
"source_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"target_port": "d2113fb0-a531-54ef-9484-13951b00ab8f",
"projected_source": "00000000-0038-4000-8000-000000000102",
"projected_target": "00000000-0038-4000-8000-000000000105",
"trace": false
},
{
"id": "3cc9ab52-2b00-57fd-8709-aabc75e5d3e3",
"kind": "Allocation",
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
"target": "09342ccb-044b-5483-ac58-87dc3cf7831c",
"source_port": null,
"target_port": null,
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000106",
"trace": false
},
{
"id": "55ec4dbf-bd17-5b0c-b3a3-95b2194aa8b9",
"kind": "PortAllocation",
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target": "24a6850e-b819-57e0-af88-ca4ab76581b7",
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target_port": "24a6850e-b819-57e0-af88-ca4ab76581b7",
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000103",
"trace": false
},
{
"id": "568c5c01-de21-52a2-83bd-afdddc158085",
"kind": "PortAllocation",
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target_port": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000108",
"trace": false
},
{
"id": "628cb4fc-fe63-5f6b-b364-6268f26b5740",
"kind": "ChainInvolvement",
"source": "022d3cfa-bbaf-5e13-924a-8e55099b8745",
"target": "6a30b763-cc51-546d-907f-5c63657cfd03",
"source_port": null,
"target_port": null,
"projected_source": "00000000-0038-4000-8000-000000000101",
"projected_target": "00000000-0038-4000-8000-000000000107",
"trace": false
},
{
"id": "63009b5f-539e-5914-b630-ec6b7fefb4d5",
"kind": "BoundaryExchange",
"source": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"source_port": "98d411e7-7c65-5c3f-b543-8bf0f2522ea2",
"target_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000102",
"trace": false
},
{
"id": "684eadc3-e670-5779-a60f-bbc9a5bfb062",
"kind": "FunctionalExchange",
"source": "9497e10f-04c4-5586-8738-2464a6f00bd4",
"target": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
"source_port": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
"target_port": "391af7c4-b07d-53a7-8ddd-5c81461fc4f8",
"projected_source": "00000000-0038-4000-8000-000000000105",
"projected_target": "00000000-0038-4000-8000-000000000108",
"trace": false
},
{
"id": "725f2e1b-aa2c-5615-9b1f-28da178168fa",
"kind": "Allocation",
"source": "c05b9422-b9da-5de5-b21d-07ad23bd2b8a",
"target": "9497e10f-04c4-5586-8738-2464a6f00bd4",
"source_port": null,
"target_port": null,
"projected_source": "00000000-0038-4000-8000-000000000102",
"projected_target": "00000000-0038-4000-8000-000000000105",
"trace": false
},
{
"id": "93474111-f23e-56c1-b61b-b7c2396b91bd",
"kind": "FunctionalExchange",
"source": "dddae020-a444-5d48-acc8-139d2696a672",
"target": "9497e10f-04c4-5586-8738-2464a6f00bd4",
"source_port": "24a6850e-b819-57e0-af88-ca4ab76581b7",
"target_port": "d2113fb0-a531-54ef-9484-13951b00ab8f",
"projected_source": "00000000-0038-4000-8000-000000000103",
"projected_target": "00000000-0038-4000-8000-000000000105",
"trace": false
},
{
"id": "9b9356d7-2db2-5a94-a47e-ea892cf02afe",
"kind": "Allocation",
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
"target": "dddae020-a444-5d48-acc8-139d2696a672",
"source_port": null,
"target_port": null,
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000103",
"trace": false
},
{
"id": "b76bf8de-2fa4-563f-a540-dd30f30e6c49",
"kind": "Allocation",
"source": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
"target": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
"source_port": null,
"target_port": null,
"projected_source": "00000000-0038-4000-8000-000000000104",
"projected_target": "00000000-0038-4000-8000-000000000108",
"trace": false
},
{
"id": "e53b7a40-e8a3-5b3f-826d-c2b5c164a84a",
"kind": "PortAllocation",
"source": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"target": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
"source_port": "e6d69cbd-99d7-596b-bbe3-dada6118a600",
"target_port": "994faed7-dbc8-5b96-9d62-7604ac0fbc3a",
"projected_source": "00000000-0038-4000-8000-000000000102",
"projected_target": "00000000-0038-4000-8000-000000000105",
"trace": false
}
]
@@ -0,0 +1,132 @@
{
"id": "00000000-0038-4000-8000-000000000001",
"alias": "issue38_representative_mixed",
"name": "Issue 38 representative eight-card mixed view",
"description": "Research approximation of screenshot positions; not recovered user source. Traceability inferred from OA Process with SA Functions. No authored routes inferred.",
"layer": "Sa",
"projection": "Traceability",
"nodes": {
"00000000-0038-4000-8000-000000000101": {
"id": "00000000-0038-4000-8000-000000000101",
"alias": "issue38_oa_assessment_procedure",
"element": "022d3cfa-bbaf-5e13-924a-8e55099b8745",
"position": {
"x": 314,
"y": 40
},
"size": {
"width": 243,
"height": 101
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000102": {
"id": "00000000-0038-4000-8000-000000000102",
"alias": "issue38_sa_technician",
"element": "c05b9422-b9da-5de5-b21d-07ad23bd2b8a",
"position": {
"x": 1180,
"y": 18
},
"size": {
"width": 265,
"height": 143
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000103": {
"id": "00000000-0038-4000-8000-000000000103",
"alias": "issue38_sa_assess",
"element": "dddae020-a444-5d48-acc8-139d2696a672",
"position": {
"x": 54,
"y": 245
},
"size": {
"width": 265,
"height": 143
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000104": {
"id": "00000000-0038-4000-8000-000000000104",
"alias": "issue38_sa_control",
"element": "435bf87c-73fd-5e4d-978a-4c471bc9eaf0",
"position": {
"x": 736,
"y": 245
},
"size": {
"width": 265,
"height": 143
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000105": {
"id": "00000000-0038-4000-8000-000000000105",
"alias": "issue38_sa_repair",
"element": "9497e10f-04c4-5586-8738-2464a6f00bd4",
"position": {
"x": 1083,
"y": 343
},
"size": {
"width": 266,
"height": 143
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000106": {
"id": "00000000-0038-4000-8000-000000000106",
"alias": "issue38_sa_reset",
"element": "09342ccb-044b-5483-ac58-87dc3cf7831c",
"position": {
"x": 227,
"y": 516
},
"size": {
"width": 266,
"height": 119
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000107": {
"id": "00000000-0038-4000-8000-000000000107",
"alias": "issue38_oa_triage",
"element": "6a30b763-cc51-546d-907f-5c63657cfd03",
"position": {
"x": 1317,
"y": 581
},
"size": {
"width": 243,
"height": 103
},
"collapsed": false
},
"00000000-0038-4000-8000-000000000108": {
"id": "00000000-0038-4000-8000-000000000108",
"alias": "issue38_sa_confirm",
"element": "d75eb3fa-a27d-52d5-8782-8b342b3865f6",
"position": {
"x": 227,
"y": 689
},
"size": {
"width": 266,
"height": 143
},
"collapsed": false
}
},
"routes": [],
"view_options": {
"work_contexts": "All",
"participant_categories": "All",
"coverage": "All",
"hidden_edges": [],
"exchange_labels": "Name",
"work_categories": "All",
"relation_kinds": "All"
}
}
@@ -0,0 +1,156 @@
[
{
"id": "00000000-0000-0000-0000-00000001adb0",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018704",
"target": "00000000-0000-0000-0000-000000018708",
"source_port": "edb626b5-7d99-5015-9faf-71a06232d86e",
"target_port": "ebfcf690-4ac5-5976-864c-337d844b6cd6",
"projected_source": "00000000-0000-0000-0000-000000018705",
"projected_target": "00000000-0000-0000-0000-000000018709",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb1",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018706",
"target": "00000000-0000-0000-0000-000000018708",
"source_port": "d9647cdb-2fcd-5b3f-94b4-ed2a3b8ebf66",
"target_port": "ebfcf690-4ac5-5976-864c-337d844b6cd6",
"projected_source": "00000000-0000-0000-0000-000000018707",
"projected_target": "00000000-0000-0000-0000-000000018709",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb2",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018708",
"target": "00000000-0000-0000-0000-00000001870a",
"source_port": "9244d718-d53a-54cb-a920-5b5312576da6",
"target_port": "14c74a31-2041-59ac-877a-bc8aa0548896",
"projected_source": "00000000-0000-0000-0000-000000018709",
"projected_target": "00000000-0000-0000-0000-00000001870b",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb3",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018708",
"target": "00000000-0000-0000-0000-00000001870c",
"source_port": "9244d718-d53a-54cb-a920-5b5312576da6",
"target_port": "fe1b5efc-983a-593c-a02f-affd40ff5a2f",
"projected_source": "00000000-0000-0000-0000-000000018709",
"projected_target": "00000000-0000-0000-0000-00000001870d",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb4",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-00000001870a",
"target": "00000000-0000-0000-0000-00000001870e",
"source_port": "b4b5d6dc-a2b2-59b0-8898-32dc2e7aa906",
"target_port": "d865e245-0fe6-5c21-a872-d57863a1f857",
"projected_source": "00000000-0000-0000-0000-00000001870b",
"projected_target": "00000000-0000-0000-0000-00000001870f",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb5",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-00000001870c",
"target": "00000000-0000-0000-0000-00000001870e",
"source_port": "f9d7dbf7-a221-5e51-a58f-530d4ca176e7",
"target_port": "51641731-5387-5d58-9bcb-2074acdbe23d",
"projected_source": "00000000-0000-0000-0000-00000001870d",
"projected_target": "00000000-0000-0000-0000-00000001870f",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb6",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-00000001870e",
"target": "00000000-0000-0000-0000-000000018710",
"source_port": "224d8f5f-2a81-5315-b7b6-24fe0cd9e95d",
"target_port": "406e76e5-affd-59a2-bf1b-c3b3b22d3dd2",
"projected_source": "00000000-0000-0000-0000-00000001870f",
"projected_target": "00000000-0000-0000-0000-000000018711",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb7",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018710",
"target": "00000000-0000-0000-0000-000000018712",
"source_port": "8661fe68-51aa-5c8c-827f-e7abea0f6b66",
"target_port": "1c6a0a70-81b3-5c39-a2fd-c3d5b9a112c0",
"projected_source": "00000000-0000-0000-0000-000000018711",
"projected_target": "00000000-0000-0000-0000-000000018713",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb8",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018712",
"target": "00000000-0000-0000-0000-000000018714",
"source_port": "169224b3-b692-540d-ac73-1435e2a87b04",
"target_port": "b1949371-949b-5cb5-acab-485dc4de2e80",
"projected_source": "00000000-0000-0000-0000-000000018713",
"projected_target": "00000000-0000-0000-0000-000000018715",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adb9",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018712",
"target": "00000000-0000-0000-0000-000000018716",
"source_port": "169224b3-b692-540d-ac73-1435e2a87b04",
"target_port": "01abf25b-82c2-51bc-adbc-73cf6f411b2d",
"projected_source": "00000000-0000-0000-0000-000000018713",
"projected_target": "00000000-0000-0000-0000-000000018717",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adba",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018716",
"target": "00000000-0000-0000-0000-000000018714",
"source_port": "bbee14f0-a8d5-5a0d-90e3-01f2d4c5e088",
"target_port": "e9dc0338-4237-5cc0-9e7f-7031b51c4772",
"projected_source": "00000000-0000-0000-0000-000000018717",
"projected_target": "00000000-0000-0000-0000-000000018715",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adbb",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-00000001870c",
"target": "00000000-0000-0000-0000-000000018714",
"source_port": "7d27cb1e-8dc7-5ebe-9407-a1d05e547562",
"target_port": "193bd9b2-e1dd-5764-8f41-777884d3a5ea",
"projected_source": "00000000-0000-0000-0000-00000001870d",
"projected_target": "00000000-0000-0000-0000-000000018715",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adbc",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018706",
"target": "00000000-0000-0000-0000-00000001870c",
"source_port": "2fcb392a-80e8-5be4-990c-79de2be0a19b",
"target_port": "fdf21c35-cd98-5e9a-9a35-faa453f137ca",
"projected_source": "00000000-0000-0000-0000-000000018707",
"projected_target": "00000000-0000-0000-0000-00000001870d",
"trace": false
},
{
"id": "00000000-0000-0000-0000-00000001adbd",
"kind": "FunctionalExchange",
"source": "00000000-0000-0000-0000-000000018710",
"target": "00000000-0000-0000-0000-000000018704",
"source_port": "6f72f5b2-e6c2-5700-a7d5-f945d076fcb8",
"target_port": "e3f59e03-53c7-5d99-97f0-f52542e939c7",
"projected_source": "00000000-0000-0000-0000-000000018711",
"projected_target": "00000000-0000-0000-0000-000000018705",
"trace": false
}
]
@@ -0,0 +1,170 @@
[
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018704",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018706",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018708",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001870a",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001870c",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001870e",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018710",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018712",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018714",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Include this leaf activity/function in a process/chain or scenario through a work action or exchange occurrence.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-000000018716",
"code": "work_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb0",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb1",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb2",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb3",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb4",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb5",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb6",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb7",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb8",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adb9",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adba",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adbb",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adbc",
"code": "exchange_without_behavior_context",
"field": null
},
{
"message": "Use this exchange in a process/chain or scenario.",
"severity": "Warning",
"element": "00000000-0000-0000-0000-00000001adbd",
"code": "exchange_without_behavior_context",
"field": null
}
]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,89 @@
{
"declared_base": "715036e132677dd2bc2fb37ed316d93dc9987aec",
"status": "Source preparation only; no compiled or runtime evidence",
"files": [
{
"path": "crates/oa-core/src/model.rs",
"bytes": 68387,
"sha256": "05a6bd5eef14c77e7cafd2bc72eb3bb6b19f33c6d06184b4e7d21173a2684078"
},
{
"path": "crates/oa-core/src/persistence.rs",
"bytes": 31774,
"sha256": "1c01474f906a63e552c0d590b272c95821c00a100b3e79e58e67dbbeac341a14"
},
{
"path": "crates/oa-core/src/projection.rs",
"bytes": 21687,
"sha256": "3521bf3041502f3a3a970d7799894a5ae16c1e8da754deeea5290ac1f8ba11e8"
},
{
"path": "crates/oa-core/src/routing.rs",
"bytes": 53958,
"sha256": "b377fe80cece3892d64f62ba5e1578d8974eeefc2a317620f343a86f2f257fbd"
},
{
"path": "crates/oa-core/src/routing/attachments.rs",
"bytes": 5918,
"sha256": "cfb4200cdb99e4d86eb6e5ac1b123e4075fb7d4c788860d154365ad8ece139d7"
},
{
"path": "crates/oa-core/src/projection/port_layout.rs",
"bytes": 13474,
"sha256": "a08d17d10a58bb8b206dd001b19b91d5aa3a9f743b298a4da57d503223c20079"
},
{
"path": "crates/oa-core/src/validation.rs",
"bytes": 113436,
"sha256": "f440bfe0f6493e5155eb377eaa766f903abea6006c02325a4b1f09a0b349b8f8"
},
{
"path": "crates/oa-core/src/validation/coverage.rs",
"bytes": 6478,
"sha256": "b08e4b344ecad055714168c83beff7fe29ba4edc53edbffa2eae04e5580a4d5f"
},
{
"path": "crates/oa-desktop/src/diagram.rs",
"bytes": 124738,
"sha256": "3170397b82236d6db2a57a1bb860c3c44fd8ec16172701e6784d4bf1314d140f"
},
{
"path": "examples/release1/model.json",
"bytes": 134520,
"sha256": "ef0ef4006c3e09d5db6e1b621256b3f7d6642f3a7b09cc34607cfbcca830c727"
},
{
"path": "harness/experiments/diagram-readability-20260929/mixed-dispatch-original.json",
"bytes": 32787,
"sha256": "81d25af021cbad18af4262a220ba60372e51ca19083b7e80f2b19196baf05990"
},
{
"path": "harness/experiments/diagram-readability-20260929/eight-card-view.json",
"bytes": 3641,
"sha256": "f851e7e96fc6f5b1edb328b94eb991aa8e94b14cc1bcd07b2c42d32310c4527b"
},
{
"path": "harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json",
"bytes": 6187,
"sha256": "240033ff6b0664580234e5211521a533d9227c8e250e8afaf3c85e95c485cec1"
},
{
"path": "harness/experiments/diagram-readability-20260929/mixed-answer-key.json",
"bytes": 6683,
"sha256": "1696f06e8a4099c2863ad6a5c444ca41ade0848a183b7cd8311400553a0c3d5f"
},
{
"path": "harness/experiments/diagram-readability-20260929/eight-answer-key.json",
"bytes": 5337,
"sha256": "8968fcc625e8584168ebb6b82f622307bdeb3db4c9c4fdbbc9fbdde3683a6efb"
}
],
"historical_archive_url": "http://217.177.34.108:3000/sorokin.oleg.edu/ARCADIA-Studio/raw/commit/4fcb65c0d3ec7aabf2315bb3f08b64a7cdd2af99/harness/experiments/boundary-order-20260925/evidence/boundary-order-3e21c1bc.zip",
"historical_archive_sha256": "bb6b896ff2401290869a904f7768ebb52b6f0ab36fada06badbe9abb301c37b8",
"historical_producer": "3e21c1bca245944ae0ec7bb02aaa920f45f2cc30",
"historical_geometry": "before only; candidate planner is paused and not used",
"probe_source": {
"path": "crates/oa-core/examples/diagram_readability_probe.rs",
"sha256": "41e2d5b3f170138b87bf30c9b40971c221a62864558294db2be4e61b7b139989"
}
}
@@ -0,0 +1,31 @@
# Independent preparatory review
Read-only review of the new Rust probe, fixed inputs/answer keys, experiment
contract and production projection/picking code. No compiler, probe or GUI was
run by the reviewer. No remaining source blocker was identified before execution.
The author addressed these consequential findings:
- Port-owner mapping adds five valid relationships to the representative view:
its complete inventory is twelve, rather than seven. Kind, semantic endpoints,
ports, projected endpoints and trace identity are checked independently.
- Port occlusion follows the actual square half-width `max(10/zoom, 10)` world
units, with a corner control; association-end label rectangles also precede
ordinary line picking and are included.
- Query candidates count semantic edges separately from their matching segments.
Empty ordinary labels do not occlude a point merely because bounds remain.
- Historical reproduction requires both declared real identities, zero distance,
no occluder and the recorded common span. Declared source provenance requires
actual build/fixture verification before a current-router claim.
Admission, warning baselines and current routing remain execution gates.
Two flat scenes cannot establish nested/folded behavior; Traceability removes
visual parents. Geometric samples do not establish native selection, readability
or global inaccessibility. Read-only Project equality does not verify edit
transactions, Undo/Redo or save/reopen. Drawing a new relation requires a separate
declared post-change answer key and Project delta.
The next workflow should trace, deliberately select, repair one label or bend,
then undo in the complete scene, with unique labels/unshared spans as controls.
Creating a valid relation, refusal and cancellation are separate tasks. A chooser
that prints correct endpoints cannot substitute for unaided diagram readability.