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

7.3 KiB
Raw Blame History

Corridor sharing diagnosis

Read-only UTF-8 analysis of frozen elk-reference-20260925/rust-run03/arrange-corpus/stdout.jsonl and placement-clearance-20260925/run02/subsystems_40_sparse-elk/stdout.jsonl. No engine/router/compiler/native execution. Full source hashes, grouped intervals, edge identities/names/endpoints/sides, largest pairs and independently reconstructed SCC/ranks are in connection-corridor-sharing-groups-20260925.json (SHA256 f9114eaafa22f1d618783b4a62a570d24387645451aafc2123561b53ed16968f).

Main finding

The dominant layered failure is rank stretching plus aligned obstacle-boundary corridors. SCC-aware placement is a more direct first controllable experiment than requiring a joint routing engine. Routing channel choice contributes, but these records do not show that a coupled router is necessary. They also do not prove that any proposed SCC packing will improve the full metric vector.

Independent sweep: group all positive orthogonal segments by axis and fixed coordinate, split at every endpoint, count distinct edge identities on each atomic interval, and accumulate length × choose(edge count,2). This exactly reproduces all four raw shared-length totals. Edge contribution counts each incident pair once per edge, so summing contributions doubles the total; this is not unique physical ink length.

Scene Raw pairwise sharing Horizontal Vertical Common-terminal excluded
Sparse layered 40522 39174 1348 0
Mixed layered 4228 4042 186 54
Sparse ELK placement + Rust 666 0 666 0
Sparse clearance repair + Rust 761 0 761 0

All four scenes are flat: no visual parents or compound-header explanation. Sparse sharing is entirely nonterminal; mixed remains4174 after the54 common-terminal units. Shared endpoint ownership is not itself a common physical terminal: distinct port channels remain distinct connections.

Sparse: five long routes crowd the same top boundary

At y28 alone, shared pairwise length is38880, 95.95% of40522. This is exactly the top y40 node row minus12 clearance. The dominant interval x1746..3926 has five edges over2180 units, contributing21800 pairwise units. Adjacent x3926..5878 has four edges and contributes11712; x1258..1746 has four and contributes2928. Thus a few continuous outside runs, not thousands of independent intersections, dominate the score.

Five edges on the largest interval:

  • flow_15 Assessment Decode to Validate: source x528,y40 Right → target x5896,y40 Left; total incident sharing17046.
  • flow_16 Assessment Validate to Enrich: x5896,y40 Left → x40,y220 Right;17890.
  • flow_41 Communications Decide handoff to Assessment Aggregate: x6384,y40 Left → x40,y428 Right;18676, the maximum contributor.
  • flow_42 Communications Publish handoff to Assessment Package: x7360,y40 Left → x1016,y220 Right;16590.
  • flow_46 Assessment Publish handoff to Planning Package: x1504,y40 Right → x3944,y40 Left;8720.

These are distinct semantic ports, not a legitimate shared bus. Both forward long edges and backwards edges use the same corridor. Automatic side selection follows the stretched final geometry; sparse has no authored anchors to explain those choices.

Independent directed reachability finds four SCCs of10 nodes, not one40-node SCC. Reproducing the prototype's alias-ordered cycle breaking yields16 global ranks and exactly the observed x positions40,528,…7360 (488 pitch =224 node width +264 global gap). SCC members span ranks0..9,0..12,0..13 and2..15: components are interleaved and stretched rather than treated as compact units. Cycle breaks are Assessment Acquire, Assessment Aggregate, Assessment Enrich and Assessment Package. Source layered.rs::ranks breaks the first canonical remaining vertex even if an upstream SCC is still cyclic; later longest-path assignment uses already assigned predecessors. Thus even edges between different SCCs can become long backward connections in the resulting global order.

The global horizontal gap is derived from the maximum estimated edge-label width plus24, rather than local edge needs. It multiplies the cost of long rank spans. Three incoming-neighbour ordering passes only sort existing ranks; they cannot repair rank assignment, and do not introduce virtual vertices for long edges. Source place starts each rank at the same top y40, supplying a common outer obstacle boundary. This chain explains the geometry without attributing the entire problem to a routing coefficient.

Mixed: same mechanism at smaller scale

Mixed has one6-node SCC plus four singletons. The SCC spans ranks1..6; the whole graph uses seven ranks with474 pitch (224+250 global gap). Cycle breaks Actuator, Archive and Correlate include an initially blocked singleton, again showing that canonical cycle breaking is not condensation-DAG ordering.

At y28, three dominant routes contribute4006/4228 (94.75%). Interval x1230..2178 carries flow_04 Validated observations, flow_08 Actuator dispatch and flow_10 Operator acknowledgement:948×3=2844. Another948-unit interval carries dispatch/acknowledgement; the final214 units carry validated observations/acknowledgement. The largest contributor is acknowledgement3212; dispatch2892, validated observations2110. Unlike sparse, Dispatch's Right port is authored, so any future layout must honor that side rather than solving the overlap by changing its anchor.

ELK and repair are a different, local channel issue

The666→761 increase has no horizontal sharing. Largest unchanged interval is x8517,y938..1030: three edges (flow_12,flow_17,flow_38) contribute276; this is18 units left of target-column x8535. Some terminate on different ports of Communications Package; another targets Assessment Aggregate, so the full interval is not common-terminal reuse.

Exact pairwise delta decomposition: flow_19/flow_42 gains152; flow_30/flow_51 loses11; flow_50/flow_53 loses57; flow_29/flow_48 gains11. Net95. The new152-unit channel is x4504,y526..678, again18 units left of x4522. This is a side effect of changed placement and derived rerouting after clearance repair, not persistence of the huge layered top trunk.

The released router processes routes sequentially and uses a soft collinear penalty min(overlap×0.12,80) per occupied segment; this is not a global no-sharing allocation rule. That source fact explains why channel reuse remains permitted, but does not establish why every alternative was rejected or that changing the penalty is the right solution. No cost tuning follows from this diagnosis.

Next falsifiable comparison

Freeze these same input graphs and unchanged released routing. First compare an SCC-condensation ordering with explicit local packing/feedback treatment against the current alias cycle break. Preserve semantic ports/anchors and evaluate actual reprojection, rank span, backwards-edge span, shared interval multiplicities, crossings, labels, area and leads. Failure to reduce the y28 corridor without trading it for comparable hidden contacts/area falsifies the proposed structural benefit. A separate long-edge virtual-vertex ordering experiment is meaningful after ranks are coherent; it cannot by itself repair the present stretched SCC assignment. Local channel allocation can then be evaluated for the residual ELK/repair vertical runs at fixed geometry. Neither stage should be declared necessary or successful before measurement.