Meta-level (composable analysis + project-as-crate authoring): keep in focus, resolve the CLI-vs-Rust authoring line #109
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?
Status: discussion / focus-keeper — NOT for automatic dispatch. This records a
design direction the user wants kept in focus; it is deliberately not being tackled
yet. Decide direction (the open fork below) before any cycle.
Why this issue exists
aura's differentiator is the meta-level (C21 — the World is the product): not
the single backtest, but dynamically constructing and orchestrating families of
harnesses. The big late layers that realize it currently live only as ledger
direction with no tracker presence — exactly how a load-bearing layer slips
out of focus. This issue is the durable home for it until it becomes a milestone.
The vision (user, 2026-06-22)
Every project is fully Rust-based (C16: a project is a Rust crate; C17: all
logic — nodes, strategies, experiments — is native Rust via builder APIs, no DSL).
The low-level nodes are written in Rust. On the future meta-level, however,
"developing a strategy" is no longer writing new node code — it is:
(sweep / Monte-Carlo / walk-forward / compare) as composable tools a user
wires into an analysis workflow, rather than today's hard-wired CLI verbs (C21).
The user wants this meta-level driven entirely via the CLI, and later also
via the interactive server / playground (C14 two faces; C22 playground).
The load-bearing open fork (resolve in a future brainstorm)
"Driven via the CLI / playground" hides a line that must be drawn, because two
activities are being conflated:
this firmly in Rust: C22 forbids constructing/wiring topology in the UI
("topology is Rust + hot-reload; the UI tunes runtime params"), C17 forbids an
experiment/strategy DSL (the RustAst trap), and C9/#60 forbid a by-name runtime
node registry.
playground's job (C12 runtime-param tuning, C22 trace explorer).
So the fork: does "wiring via the CLI" mean (a) running a Rust-authored
experiment via the CLI / playground (compatible with C16/C17/C22), or (b)
composing/wiring nodes through the CLI itself (which tensions with C17's no-DSL,
C22's no-UI-topology, and C9's no-node-registry)? If the intent is (b), it is a
deliberate amendment to those contracts and needs that case made; if (a), it is the
project-env + composable-orchestration design with no contract change. This is the
first thing the brainstorm must settle.
What this layer is made of (all currently unbuilt, ledger-direction only)
aura newscaffolder, the experiment-builder API(harness wiring, structural axes, sweep combinators), the
Aura.tomlstatic-contextschema, cdylib project loading. Ledger: "not yet designed" (INDEX.md open threads;
C16/C17/C20). Code recon (#28 comments): zero cdylib / Aura.toml / project-loader
machinery in the repo.
meta-level tools instead of hard-wired CLI verbs (
sweep_family/walkforward_familyin aura-cli). Ledger names it "the orchestration-composabilityrebuild … its own later cycle, deliberately deferred" (C22 amendment, #107).
playground (#72 is the discussion-only web-frontend idea; the families-comparison
view #107 is the first read-side step on the playground track).
Relation to existing items
(decoupled "set of runs" consumer); does NOT build the orchestration layer.
(Rust module of blueprint values, C9-ok), a sibling fork.
facets of the experiment-authoring surface.
Sequencing
Per the ledger sequencing note + the project-env memory: the runnable single-harness
substrate first (done), then the World/meta layer (C21) and the playground (C22) as
the differentiating follow-on; the project-as-crate authoring comes late, after the
World layer + experiment API harden. When picked up, this becomes a milestone
container seeded by a brainstorm that first resolves the open fork above.
context: captured from a design conversation (2026-06-22) so the meta-level does not
slip out of focus; not for auto-dispatch.
Requirement-spec for the composable-analysis half (strategy-research vision)
Recorded from a 2026-06-28 design discussion (the same one that reworked C10, commit
29cdc8c). This is the why the analysis meta-level must be composable rather than a fixed scalar-metric list.The research unit is not "a profitable signal" but "a conditionally predictive signal + the orthogonal context that selects its regime."
conviction_terciles_ris the seed; the general capability is unbuilt.stop-rule → [Veto] → position-management).What this demands of the meta-level (#109):
Caution (load-bearing): conditional slicing = degrees of freedom = false discovery. This capability MUST ride on the already-built anti-false-discovery machinery (deflation, cross-instrument generalization,
aura generalize); orthogonality is the antidote only if measured, not assumed.Fit with the C10 rework: gross R (cost optional) gives the cheap brutto-testing of non-profitable blocks; removing compounding makes the curve's shape signal-faithful; R + feed-forward + C9 is the clean composable substrate this analysis sits on. The rework cleared the ground; this is the house that #109 must build.
The meta-level question this issue holds open now has a broader anchor: issues/188 records the ratified role model (nine user roles cut by artifact + surface + iteration cost), the diagnosis that the methodology and campaign layers lack artifact types entirely, and the resolved fork that both become closed-vocabulary data documents (the op-script pattern one level up) — never a Rust builder API, never an open DSL. The (a)-vs-(b) fork recorded here resolves toward (a) generalized: experiments are Rust-free data artifacts referencing strategies by content/identity id; node logic stays Rust. This issue remains the home of the composable-orchestration substrate question; the artifact-vocabulary design pass is anchored on issues/188.