# Unify the Blueprint Main-Graph Render — Implementation Record > **Parent spec:** `docs/specs/0023-unify-blueprint-render.md` > > **This is NOT a task-by-task plan.** Cycle 0023 was implemented through an > exploratory spike→refactor path under direct user steering, not the standard > `planner → implement` decomposition. This file exists to keep the > spec/plan counter pairing intact (`naming.counter_dirs: [docs/specs, docs/plans]`) > and to record *why* the standard plan artefact is absent, so the next cycle > takes slot 0024 and a future reader does not mistake the gap for a lost file. **Goal:** one shared render path for the blueprint main graph and the composite `where:` interior — the blueprint is the root composite. ## Why no task-by-task plan The spec named the direction but left one detail to "the planner/implementer call against ascii-dag's actual capability": *where* a multi-output producer's selected field surfaces. Resolving it needed an **empirical** answer, not a paper decision: 1. The obvious default (an ascii-dag per-edge label) turned out to be unreliable — ascii-dag 0.9.1's `can_place_label` silently drops a label it cannot place without collision (verified by throwaway probe against the real macd topology). The Plain path drops it with no legend; the colored path shifts it to a legend. 2. So the field had to move to the **consumer node label** (`[histogram → Exposure(scale)]`), which also removed the `render_flat` signature change entirely (no edge-label slot). A placeholder-free plan could not be written before that probe, so the work ran as a spike (validate the notation visually with the user) → refactor (collapse the duplication into one shared `render_graph` over borrowed slices — `LeafFactory` is not `Clone`, so an owned root-composite adapter is impossible). ## What shipped (commits) - `5dd9503` — spec: 0023 unify blueprint main-graph render - `481172a` — feat(aura-cli): unify blueprint main-graph render through one shared core (`render_graph`; `ParamNames` {Aliases, Factory}; `Entry` unifying `Role`/`SourceSpec`; deleted the duplicated `blueprint_leaf_label`) Production change confined to `crates/aura-cli/src/graph.rs`; goldens re-captured in `crates/aura-cli/src/main.rs`. No engine change. Build/test/clippy green. ## Deferred / debt (filed, not lost) - **Issue #49** — top-level blueprint multi-input leaves render without `#`-slot stubs (`stub_ctx: None`); `fan_in_identifiers`/`signature_of` stays composite-coupled. User-signed deferral. - **Latent, untested** — `multi_output_field_name`'s leaf-producer fallback (`from_field > 0` → index string) is unexercised (no multi-output leaf in the current corpus); carried as latent code, no anchoring test this cycle.