Export a named frozen strategy (blueprint-as-values collection) — #55 export fork #60
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Deferred from #55 (the third fork, explicitly out of scope for the bind-overlay
cycle 0034). #55 shipped
PrimitiveBuilder::bind— a node param can now be fixedas a structural constant, removed from
param_space. The remaining open question:How is a named frozen strategy exported? Once a blueprint has its
structural constants bound (e.g. "SMA2-entry" = an SMA blueprint with
lengthbound to 2 + its surrounding topology), it is a distinct, reusable strategy
value — not a point in another strategy's sweep space. The export fork is how
such a frozen, named blueprint becomes a first-class value a future
blueprint-as-values collection can hold and a researcher can pull by name.
Constraints (from #55's C9 boundary)
A future "blueprint registry" must stay a Rust module of blueprint values
(cargo-native reuse, C9-ok) — NOT a by-name runtime node resolution
("SMA" -> constructor), which is the node-registry C9 forbids and the RustAst/DSL
trap C10 forbids. Blueprints are already first-class values
(
Composite/param_space/compile_with_params); "create a node from ablueprint dynamically" already IS
compile_with_params. This fork adds only theexport/naming surface, no registry layer.
Open forks (needs its own brainstorm)
.bind()ergonomics for a fully-frozen strategy (all knobs bound vs a mix).depends on: nothing blocking (#55 bind overlay shipped, cycle 0034)
context: design fork — needs brainstorm when picked up; not blocking
Triage 2026-07-09 (tree at
68317ec) — assessed superseded; every fork this issue kept open has since been resolved by shipped design:aura graph register); pull-by-reference exists via content id / identity id, and campaign documents reference strategies exactly that way.Re-anchoring note, ahead of #60's still-pending own brainstorm.
This issue's opening framing predates two things that now bear directly on it and should seed its eventual brainstorm rather than be silently worked around:
Cycle 0090 (#155/#156/#157, 2026-06-30) shipped topology-as-data: a round-trippable JSON op-script format, a loader, and a construction service, proven end to end (author -> serialize -> load -> construct -> introspect -> reproduce) in fieldtests/milestone-topology-as-data/. Runtime construction of a blueprint from a serialized artifact is therefore already the shipped, sanctioned path — the issue's original constraint ("a future blueprint registry must stay a Rust module of blueprint values ... NOT a by-name runtime node resolution") needs to be read against this shipment, not assumed to rule out a data-artifact-shaped registry.
The C25 amendment landed with #295 (2026-07-20, docs/design/INDEX.md, C25 section) establishes the text-artifact vocabulary — "blueprints, process/campaign documents, registry records" — as the canonical layer that every control surface (CLI executor verbs, any future host, an MCP face, a World program) projects over, never a second home for intent. "Registry records" is now named vocabulary in the ledger for exactly the kind of artifact this issue's third open fork ("relationship to the blueprint-as-values collection, the eventual home") is asking about. Content-addressed blueprint identity (topology_hash, #158, cycle 0094) is also available as a building block for how such a named export would be addressed.
The owner's decided direction on #300 (document-first completion of the run quintet's flag vocabulary) is scoped narrower than this issue and doesn't resolve it directly, but it reinforces the same posture: new intent-bearing surfaces are text artifacts first, control-surface projections second.
No code changes are implicated (crates/aura-core/src/node.rs:226 PrimitiveBuilder::bind and crates/aura-engine/src/blueprint.rs's collect_params/param_space remain the accurate dock sites, unmoved by #295). This is a scope note for whenever #60's own brainstorm is picked up: start from "a named frozen strategy is a text artifact in the same family as blueprints/op-scripts/campaign documents, addressed like a registry record" rather than from the original "Rust module of blueprint values" framing, which is now the more constrained of the two options rather than the only C9-safe one.
Closed as ratified drop (owner decision, 2026-07-21, idea-cull round): topology-as-data (cycle 0090) undercut the original Rust-module-only constraint, and C25's registry-records vocabulary answers the remaining fork. On real export demand the ledger dictates the shape.