Files
ARCADIA-Studio/harness/experiments/scc-placement-20260925/results.md
T

156 lines
9.1 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.
# Coherent cyclic-group placement result
Branch-specific issue32 experiment. **SCC condensation and compact cyclic groups
remove the dominant shared outside corridor, but this is not ready for production
Arrange.** The corrected transfer supports all 14 frozen cases, preserves the
declared model/geometry contract and is stable across ten calls. Local label
conflicts, folded-route backtracking, bipartite sharing and area costs remain.
No native tracing, command/history integration or release acceptance is claimed.
Independent evidence: [corrected source review](source-review-v2.md),
[run02 quality review](result-review-run02.md),
[run02 conservation review](conservation-review-run02.md), and
[transfer and label-conflict diagnosis](transfer-diagnosis.md).
Tested source: `2426d286483ab0445663221cd6010a3dadb89a97`. Run01 at
`4dd764fa6cfc6920350383e523ba5a597412ddf4` is retained, including its rejected
two-container case. Read the [predeclared plan](plan.md), [diagnosis](diagnosis.md)
and [design alternatives](design.md) for why this structural experiment followed
the flat lead-clearance repair rejected on readability grounds. Production routing is unchanged.
## What the structural witness establishes
Sparse 40 has four SCCs of ten nodes. Independent graph reconstruction confirms
four coherent 720×1024 blocks in condensation ranks 0–3, replacing the old
alias-cycle-break layout's interleaving across 16 ranks. The old prototype's y28
outside corridor contributed 38880 shared units; the new geometry has no
horizontal shared interval. Total raw pairwise sharing falls 40522→32 compared
with that old prototype, crossings 17→15, area 6020910→4001536. The remaining 32
units are one local vertical group. This improvement required no router penalty
or gap sweep and does not establish general lane separation.
Against current Arrange plus eligible-route reset, sparse crossings 94→15,
contacts 158→19, sharing 1990→32, label/node 14→0, label/stroke 31→3 and route
length 39660→18784. Area grows about 5.2%; label/label remains 1. Against the
original authored input, area and route length grow, so it is not a universal
improvement over every control. All controls remain in the raw evidence.
## Complete quality comparison
Each arrow compares the current Arrange-reset control with the SCC candidate.
Labels are node / other-label / unrelated-stroke collision counts. Area is
candidate/control. Sharing is raw segment-pair length, not unique physical ink.
|Case|Proper crossings|Shared length|Labels N/L/S|Area ratio|
|---|---:|---:|---:|---:|
|flat_chain_4|0→0|0→0|0/0/0→0/0/0|0.72×|
|chain_7_row_wrap|0→0|0→0|0/0/0→0/0/0|0.53×|
|diamond|0→0|36→36|0/0/0→0/0/0|0.91×|
|crossed_bipartite|0→0|276→368|0/0/0→0/0/0|0.57×|
|nested_cross_boundary|0→0|0→0|1/0/0→0/0/0|1.60×|
|authored_detour_and_label|0→0|0→0|0/0/0→0/0/0|0.93×|
|fixed_ports|0→0|0→0|0/0/0→0/0/0|0.94×|
|two_containers_reversed_children|0→0|148→164|1/0/0→1/0/0|1.18×|
|long_ordinary_labels|0→0|36→36|2/0/0→0/0/0|1.06×|
|workshop_sa_original|6→6|1832→344|1/0/0→3/0/1|1.81×|
|workshop_sa_folded|7→8|1194→726.5|0/0/0→3/0/2|1.35×|
|mixed_dispatch|10→7|716.4→516.6|0/0/0→0/0/0|1.46×|
|mixed_dispatch_edge_ids_reversed|9→6|512.4→462.6|0/0/0→0/0/0|1.40×|
|subsystems_40_sparse|94→15|1990→32|14/1/31→0/1/3|1.05×|
All 14 successful cases report zero unrelated node penetration, zero unrelated
node collision and no incompatible mandatory leads. Four folded-workshop
PromotedEndpoints warnings remain; no NoClearPath is reported. Those checks do
not establish arrowhead clearance, native glyph readability or usability.
Mixed's fixed relation-ID permutation leaves projected node/port geometry and
the SCC plan exactly equal, while final routes differ: crossings 7 versus 6 and
sharing 516.6 versus 462.6. The placement is stable under this permutation; the
whole routed drawing is not. Mixed area grows despite shorter routes.
The folded raw shared total 726.5 includes a promoted route that retraces 6 units.
Distinct-edge occupancy counts 708.5: the 18-unit difference is raw segment-pair
multiplicity, independently reconciled rather than silently discarded.
The remaining sparse label/label pair and three label/stroke pairs have no
positive shared route interval; one pair has no route point contact at all.
Thus label association needs its own treatment after structural placement.
See the independent reviews and failure diagnosis in the evidence archive.
## Correctness repair and preservation
Run01 rejected the two-container fixture because parents intended to retain
their old 308×446 effective dimensions instead shrank to 280×416 after children
moved inward. The importer preserved authored 224×94 sizes under an overly broad
identity shortcut. Source 2426d286 restores intended unchanged effective minima
only for noncollapsed nodes whose first final position is exact and whose
dimensions are smaller/equal. It rejects every other mismatch before making
all qualified writes simultaneously, then validates and requires one exact
second projection. There is no iteration or change to SCC ordering/gaps/packing.
The original13 successful candidate Projects, metrics and plans are exactly
unchanged in run02. The new two-container result confirms both intended 308×446
parent minima and all source-derived planned positions. All 14 report exact
same-input output, nine subsequent calls equal to first/previous, and exact
JSON and textual-source roundtrips. Repeated Projects/source strings are not
serialized, so independent audits distinguish emitted Rust checks from their
own raw structural comparisons.
Independent audits reconstruct complete expected Projects with only declared
positions, required sizes and eligible-route resets changed. Semantic records,
authored anchors, route identities/order, other diagrams and hidden metadata
remain exact. Three latent folded descendants move (-680,0) with their collapsed
owner. Current fixtures do not exercise surviving dormant authored-route
translations or State-specific headers; no such coverage is claimed. Exact
intended plan nodes are not emitted, so final transfer equality remains a source
gate supplemented by independent final enclosures and the reconstructed failure
witness. No history/Undo/Redo test applies to these example-only imports.
## Verification and reproduction
Windows Rust 1.98.1 gnullvm and LLVM-mingw 20260908, locked offline dependencies,
one build job. Source 2426d286 passes 8 example tests, strict example Clippy and an
optimized build (gates 24–26). Earlier source 4dd764fa passes 5 example tests,
Clippy and build (gates 21–23). Gate 20's needless-range-loop Clippy failure and
earlier packing tests are retained, with their exact source pins. Core code is
unchanged from the previously verified lead diagnostic; this is not a new
whole-workspace suite claim.
```
cargo test --locked --offline -p oa-core --example auto_layout_probe
cargo clippy --locked --offline -p oa-core --example auto_layout_probe -- -D warnings
cargo build --release --locked --offline -p oa-core --example auto_layout_probe
auto_layout_probe --scc-fixtures
auto_layout_probe --scc-placement PROJECT_JSON DIAGRAM_UUID
auto_layout_probe --route-corpus MANIFEST
```
Both runs capture the built executable before further compiler writes, verify
source/binary/input hashes, and complete eight bounded child processes. The
five-case released route-control output is byte-identical in both runs, SHA256
`9a31a676f23dea2f41daec39497f569d68231fa0fd66e5a1a476be97d5d61ac2`.
Output process success is separate from per-case support. No latency guarantee
is inferred from these short corpus runs. The planner work counter is weighted,
not an exact instruction or elapsed-time bound.
## Decision and evidence
Retain coherent SCC blocks as the supported structural direction. Do not adopt
this complete candidate yet. Next work should target the concrete local label
association, folded retrace and cross-container ordering witnesses. Preserve
model/port/fold contracts, fixed inputs and the full quality vector; do not tune
global gaps, rerun perimeter candidates to select a score, or weaken projection
equality. Production integration and native trace/overview workflows remain
required once a candidate satisfies those constraints.
The evidence archive contains both runs, failed and successful gate receipts,
frozen inputs, controls, executable capture hashes, scripts and independent
source/result/conservation reviews. Binaries are not embedded. Final claim and
archive review is [versioned separately](final-review.md) outside the immutable archive.
Archived supervisor scripts retain machine-local paths and Windows environment
assumptions; the repository-relative build and probe commands above are the
portable entry points after obtaining the source and locked dependencies.
Archive `evidence/scc-placement-2426d286.zip`: 6041259 bytes, SHA256 `fbf40882ed807a1b40db8b3b9b9c846b060db02cbcc60611c18f9620c1fd59c9`, 168 individually verified members.
This checkpoint is local-only until confirmed Gitea publication and byte readback. Linux builds remain excluded by the user; the frozen prerelease is unchanged.