Files
ARCADIA-Studio/harness/experiments/auto-layout-20260925/results-j.md
T

93 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Target-join scoring experiment
**Keep experimental.** Accounting for the target turn during route-leg selection
confirms the suspected source/target scoring asymmetry, but does not establish
uniform readability improvement. The original bipartite scene becomes more
overlapped. Do not integrate this branch as a completed Arrange fix.
Production routing/test source is `497c1ad8b39788148c5f03bc8542d6d8e28dbc01`.
Successor `08656b18bf8934cf264469cf68fc6dea97c15cbb` only resolves three strict
Clippy findings in the diagnostic observer. Probe runs at both commits emitted
the same 371192 bytes, SHA256
`f9ac7c1320b1cf026259bfcaf13a39e968ae317463712d8dc793375d9a4a541f`.
The [independent source review](terminal-join-source-review.md) and
[independent results audit](terminal-join-results-audit.md) retain the scoped
claims and limitations. The latter predates the completed contact audit below.
The [evidence archive](run-j/terminal-join-08656b18.zip) contains original runs
02–06, including the failed Clippy run, source inventories, full Projects and
geometry, comparison JSON, independent contact audit/script, runners and 37
offline geometry images. It is 3178939 bytes, SHA256
`bd2146237353af05b8667dc7bd728007143a2f1b24ad9f8728fdbc50ffb3368e`.
[Manifest](run-j/manifest.json) records every member; every archived byte was
compared with its original. Paths in original receipts identify the builder's
machine, not a dependency on a peer's filesystem.
## Checks and comparison
Windows Rust 1.98.1 gnullvm, locked/offline, one job, incremental disabled;
Linux excluded. All receipts close with unchanged inputs and no runner failure.
```text
cargo test --locked --offline -p oa-core --lib --test release_routing --test routing_geometry --test routing_labels --test state_diagrams --test group_movement
cargo run --locked --offline -p oa-core --example auto_layout_probe
cargo clippy --locked --offline -p oa-core --all-targets -- -D warnings
```
Tests: 185 passed, zero failed/ignored (132 library, 7 group movement, 13 release
routing, 18 routing geometry, 2 routing labels, 13 State). Three new private tests
exercise fast/grid terminal scoring in four orientations, absent continuation,
straight/reversal and zero-length legs. Existing authored-pin/attachment/history
checks pass. Initial Clippy rejected two manual-range expressions and one nested
if in the observer; after that observer-only cleanup, strict core/all-target
Clippy passes and the rerun output is byte-identical. No whole-workspace/native
acceptance is implied.
Across all 37 before/baseline/reset/layered/manual-witness variants, complete
Projects, projected nodes, projected ports and exact route endpoints are
unchanged versus the first experiment. This isolates routing/label placement;
it is stronger than merely reusing fixture input. All nine candidate invariants,
round trips, deterministic repeats and calls 2–10 remain exact. The candidate
still has no integrated command Undo/Redo evidence.
- Layered diamond: shared length 82→36, nonterminal 46→0; all other original
metrics unchanged. Remaining 36 units are common terminal stubs.
- Layered bipartite: shared length 344→187, nonterminal 272→115; routed drawing
area 165360→175960. Labels, bends, length and other recorded metrics unchanged.
Seven other layered metric vectors are unchanged.
- **Original bipartite regression:** sharing 730→872, nonterminal 658→800;
bends 5→4 and length 2076→2064. The scoring change can favor fewer bends over
distinguishable routes. This is not a monotonic quality improvement.
- Original diamond sharing 136→36; original two-container sharing 200→54;
existing Layout/reset-only two-container sharing 148→18. The independent
audit lists the complete changed vector; 30 of 37 variants are unchanged.
The separate Python contact audit uses orthogonal interval reasoning to
reconstruct BOTH old and new contacts. Primitive witnesses pass; all 37 new
contact/proper counts match Rust, and all 37 old proper counts match v1. Layered
diamond contacts decrease 3→2. Layered bipartite contacts increase 8→9: eight bend
contacts become six bend plus three T contacts. Proper crossings remain zero.
Thus decreased coincident length partly trades into branch contacts. Details,
edge IDs, coordinates and definitions are in the archive's
`support/auto-layout-contact-audit-result-20260925.json`; script is adjacent.
There is no inferred aggregate quality pass.
The parent viewed diamond/bipartite offline images: diamond branches separate,
but bipartite horizontal tails remain visually joined despite separate vertical
channels. These are schematics of core bounds, not native application or glyph
evidence. The [residual diagnosis](residual-routing.md) confirms four genuine
shared semantic ports; distinct-port placement is not the defect. Of 187 shared
units, 72 are bounded common-port stubs and 115 are avoidable interior overlap.
## Next discriminating comparison
Retain this J result as a frozen control. Test one predeclared overlap coefficient
3.0 instead of 0.12, with the existing per-segment cap 80, crossing cost 24,
node/port geometry and edge ordering unchanged. This P variant is an isolated
experiment, not a proposed default or a release-ready source change. Preserve
the original bipartite regression as a sentinel and the entire quality vector.
If stronger penalties cannot choose useful existing alternatives, inspect
bounded parallel lane candidates separately; do not silently combine scoring,
spacing, caps and ordering changes. A candidate that shifts overlap into hard-to-
follow contacts, label collisions or large detours has not solved the user task.