From f754ad85d3674a709d10054e6fe23079f977c547 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Thu, 1 Oct 2026 17:50:45 -0700 Subject: [PATCH] Correct archived probe warning baseline from validation rules --- .../diagram-readability-20260929/README.md | 19 +- .../mixed-dispatch-expected-diagnostics.json | 252 ++++++++++++++++++ .../provenance.json | 22 +- .../warning-baseline-review.md | 65 +++++ 4 files changed, 347 insertions(+), 11 deletions(-) create mode 100644 harness/experiments/diagram-readability-20260929/warning-baseline-review.md diff --git a/harness/experiments/diagram-readability-20260929/README.md b/harness/experiments/diagram-readability-20260929/README.md index 8bc68587..d8a7e2c3 100644 --- a/harness/experiments/diagram-readability-20260929/README.md +++ b/harness/experiments/diagram-readability-20260929/README.md @@ -1,8 +1,11 @@ # 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. +Core source baseline `715036e132677dd2bc2fb37ed316d93dc9987aec`. The parent compiled +the probe at `2aac3e83532166dc45cd3519cc5d89b3e84d57f3`; its first test run passed +one test and failed four at admission because the expected warning baseline was +incomplete. The corrected baseline awaits rerun; geometry generation did not run. +No GUI selection or feature acceptance is claimed. The parent owns execution and +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 @@ -42,10 +45,12 @@ 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 +The explicit archived warning baseline is **60**: ten `work_without_behavior_context`, +fourteen `exchange_without_behavior_context`, one `missing_system`, and ten +`unallocated_leaf`, and 25 `empty_port_contract` diagnostics. The first 24-warning +baseline omitted the last three families. [The correction review](warning-baseline-review.md) derives their +identities, fields, and messages independently from input records and validation +rules; it does not regenerate expectations 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. diff --git a/harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json b/harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json index 6ca882da..6fc01279 100644 --- a/harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json +++ b/harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json @@ -166,5 +166,257 @@ "element": "00000000-0000-0000-0000-00000001adbd", "code": "exchange_without_behavior_context", "field": null + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-0000000186a0", + "code": "missing_system", + "field": "elements", + "message": "Identify the SA system of interest." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018704", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Sensor A' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018706", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Sensor B' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018708", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Ingest' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-00000001870a", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Validate' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-00000001870c", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Archive' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-00000001870e", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Correlate' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018710", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Plan' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018712", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Dispatch' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018714", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Actuator' to a performer." + }, + { + "severity": "Warning", + "element": "00000000-0000-0000-0000-000000018716", + "code": "unallocated_leaf", + "field": "allocation", + "message": "Allocate leaf 'Operator' to a performer." + }, + { + "severity": "Warning", + "element": "01abf25b-82c2-51bc-adbc-73cf6f411b2d", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "14c74a31-2041-59ac-877a-bc8aa0548896", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "169224b3-b692-540d-ac73-1435e2a87b04", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "193bd9b2-e1dd-5764-8f41-777884d3a5ea", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "1c6a0a70-81b3-5c39-a2fd-c3d5b9a112c0", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "224d8f5f-2a81-5315-b7b6-24fe0cd9e95d", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "2fcb392a-80e8-5be4-990c-79de2be0a19b", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "406e76e5-affd-59a2-bf1b-c3b3b22d3dd2", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "51641731-5387-5d58-9bcb-2074acdbe23d", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "6f72f5b2-e6c2-5700-a7d5-f945d076fcb8", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "7d27cb1e-8dc7-5ebe-9407-a1d05e547562", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "8661fe68-51aa-5c8c-827f-e7abea0f6b66", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "9244d718-d53a-54cb-a920-5b5312576da6", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "b1949371-949b-5cb5-acab-485dc4de2e80", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "b4b5d6dc-a2b2-59b0-8898-32dc2e7aa906", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "bbee14f0-a8d5-5a0d-90e3-01f2d4c5e088", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "d865e245-0fe6-5c21-a872-d57863a1f857", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "d9647cdb-2fcd-5b3f-94b4-ed2a3b8ebf66", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "e3f59e03-53c7-5d99-97f0-f52542e939c7", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "e9dc0338-4237-5cc0-9e7f-7031b51c4772", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "ebfcf690-4ac5-5976-864c-337d844b6cd6", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "edb626b5-7d99-5015-9faf-71a06232d86e", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "f9d7dbf7-a221-5e51-a58f-530d4ca176e7", + "code": "empty_port_contract", + "field": "outgoing_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "fdf21c35-cd98-5e9a-9a35-faa453f137ca", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." + }, + { + "severity": "Warning", + "element": "fe1b5efc-983a-593c-a02f-affd40ff5a2f", + "code": "empty_port_contract", + "field": "incoming_items", + "message": "This function port has no declared exchange items." } ] diff --git a/harness/experiments/diagram-readability-20260929/provenance.json b/harness/experiments/diagram-readability-20260929/provenance.json index 8caef392..a76949e2 100644 --- a/harness/experiments/diagram-readability-20260929/provenance.json +++ b/harness/experiments/diagram-readability-20260929/provenance.json @@ -1,6 +1,6 @@ { "declared_base": "715036e132677dd2bc2fb37ed316d93dc9987aec", - "status": "Source preparation only; no compiled or runtime evidence", + "status": "Initial probe compilation succeeded at 2aac3e83532166dc45cd3519cc5d89b3e84d57f3; first test run: 1 passed, 4 failed due to incomplete expected warnings. Source-derived baseline corrected to 60; rerun and geometry generation pending.", "files": [ { "path": "crates/oa-core/src/model.rs", @@ -64,8 +64,8 @@ }, { "path": "harness/experiments/diagram-readability-20260929/mixed-dispatch-expected-diagnostics.json", - "bytes": 6187, - "sha256": "240033ff6b0664580234e5211521a533d9227c8e250e8afaf3c85e95c485cec1" + "bytes": 14337, + "sha256": "be6747f4bec4f285b411dfbc934ab63ee46e64403354652d73ec7a801d1c0b2d" }, { "path": "harness/experiments/diagram-readability-20260929/mixed-answer-key.json", @@ -76,6 +76,11 @@ "path": "harness/experiments/diagram-readability-20260929/eight-answer-key.json", "bytes": 5337, "sha256": "8968fcc625e8584168ebb6b82f622307bdeb3db4c9c4fdbbc9fbdde3683a6efb" + }, + { + "path": "crates/oa-core/src/ports.rs", + "bytes": 45413, + "sha256": "5cac12eea70a54ebebbd6be77b63ce92e3195325c4bc7d27705c518686cbac80" } ], "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", @@ -85,5 +90,14 @@ "probe_source": { "path": "crates/oa-core/examples/diagram_readability_probe.rs", "sha256": "41e2d5b3f170138b87bf30c9b40971c221a62864558294db2be4e61b7b139989" - } + }, + "initial_test_failure": { + "source_commit": "2aac3e83532166dc45cd3519cc5d89b3e84d57f3", + "log": ".local/probe-tests-failed24.log", + "log_sha256": "897de362a2d001a83a6880138bc498a28b92602a350ac25405ee38fe81124cc8", + "result": "1 passed; 4 failed admission; geometry generation not run", + "correction": "Add 1 missing_system, 10 unallocated_leaf, and 25 empty_port_contract warnings from model records and validation/ports rules; no model or probe changes", + "rationale": "warning-baseline-review.md" + }, + "baseline_review": "Independent critic verified all 60 exact rows, no duplicates, original 24 rows unchanged, and original input hash preserved. Rerun pending." } diff --git a/harness/experiments/diagram-readability-20260929/warning-baseline-review.md b/harness/experiments/diagram-readability-20260929/warning-baseline-review.md new file mode 100644 index 00000000..67f7fb48 --- /dev/null +++ b/harness/experiments/diagram-readability-20260929/warning-baseline-review.md @@ -0,0 +1,65 @@ +# Archived warning baseline correction + +The parent compiled source `2aac3e83532166dc45cd3519cc5d89b3e84d57f3` and reported +one test passed / four failed at strict admission. The original expected baseline +contained 24 warnings. Geometry generation did not run. The failed log remains at +`.local/probe-tests-failed24.log`; its SHA256 is recorded in `provenance.json` for later +publication by the parent. This correction has not been compiled or executed by +the research agent. + +Independent source inspection establishes the following additional 36 warnings. +An intermediate, unexecuted 35-warning correction covered system/allocation rules +only; independent critique caught the additional 25 typed-port warnings before rerun. +No diagnostic output was imported to construct them, and the original model bytes +remain unchanged (SHA256 81d25af021cbad18af4262a220ba60372e51ca19083b7e80f2b19196baf05990). + +* `crates/oa-core/src/validation.rs:253–264` warns when any element is SA and no + element is a System. The archived model has 10 SA Functions and 25 SA Ports, + with no System. Therefore exactly one `missing_system` warning belongs to + project `00000000-0000-0000-0000-0000000186a0`, field `elements`, message + `Identify the SA system of interest.` +* `validation.rs:339–351` warns for each leaf work element with no effective + performer. All ten Functions below have no Function child (their own parents + are null; any children are Ports). All 14 relations are FunctionalExchanges; + there are no Allocations, RoleAssignments, or RoleRealizations. The resolver + at `validation.rs:2865–2893` consequently returns no performer for each. + Each receives severity `Warning`, code `unallocated_leaf`, field `allocation`, + and message `Allocate leaf '' to a performer.` The warning helper at + `validation.rs:45–53` retains the supplied element ID and severity. + +| Element ID suffix (prefix `00000000-0000-0000-0000-000000`) | Exact name | +| --- | --- | +| 018704 | Sensor A | +| 018706 | Sensor B | +| 018708 | Ingest | +| 01870a | Validate | +| 01870c | Archive | +| 01870e | Correlate | +| 018710 | Plan | +| 018712 | Dispatch | +| 018714 | Actuator | +| 018716 | Operator | + +* `crates/oa-core/src/ports.rs:774–815` warns for an empty typed FunctionInput or + FunctionOutput item list. All 25 archived Ports have these SA typed contracts: + 13 FunctionInputs with empty `incoming_items`, and 12 FunctionOutputs with empty + `outgoing_items`. Their warning element is the exact Port identity, severity + `Warning`, code `empty_port_contract`, field respectively `incoming_items` or + `outgoing_items`, and message `This function port has no declared exchange items.` + The expected JSON records each identity explicitly. `validation.rs:413` dispatches + these elements to the port validator. No generic legacy or component contracts + occur, so the separate legacy/orientation warning rules do not apply. + +The complete model inventory is 35 elements (10 Functions and 25 Ports), 14 relations +(all FunctionalExchange, with empty carried-item lists), two views, and no traces. +There are no sequences, occurrences, states, capabilities, data objects, or other +relation families to trigger their specific warning rules. The behavior-context, +system, allocation, and typed-port rules exhaust the applicable warning families. + +The existing 24 expected warning records remain intact. The corrected 60-record +baseline remains exact: missing, extra, changed-field, changed-message, or error +diagnostics still fail. These warnings describe the deliberately incomplete +archived synthetic architecture; accepting them as a fixture baseline does not +certify architectural completeness. No production rule, probe admission policy, +model record, route, or test was weakened. The parent must rerun the tests before +claiming successful admission or current-router geometry.