Persist a price/signal tap pair so measure ic is reachable from the release binary
#312
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?
aura measure ic <RUN> --signal <tap> --price <tap>computes the Information Coefficient as a pure post-run reduction over two tap series read from a persisted trace (crates/aura-cli/src/main.rs:2073-2092). Via the release binary alone, no trace satisfying those inputs can be produced:--traceis accepted on exactly two verbs,sweep --realandwalkforward --real(#224 delivered these two and retired the rest:run --traceis hard-refused —crates/aura-cli/src/main.rs:1290-1292, exit atmain.rs:1721-1724— andmc --realand the synthetic sweep/walkforward paths refuse it,main.rs:2458,main.rs:2259,main.rs:2371).{equity, exposure, r_equity, net_r_equity}— the closed-vocabulary decision from #201 (crates/aura-research/src/lib.rs:780-782); any otherpersist_tapsentry is anUnknownTapfault (lib.rs:2088-2091). None of the four works as--price(all are cumulative result curves, not a price series), and there is no bias/signal tap.Consequence: every trace the release binary can produce lacks both inputs
measure icrequires, so the subcommand is unreachable for a downstream user. Reaching it needs a source-side change — extending the closed tap vocabulary (or an equivalent persisted price/signal channel) so a recorded run carries a price series and a signal series.Field evidence (2026-07-22 external field test; an LLM agent driving the release binary with no source or docs access): the agent reached for
measure icto score raw signal quality independently of the execution layer, hit the--tracerefusals, concluded that CLI-side trace persistence is disabled in the installed version, and abandoned the measurement path entirely.Related: #294 (IC offline-join duplicate-timestamp semantics), #309 (echoing a run's recorded trace handle), #307 (compact on-disk trace format).
Fieldtest evidence (binary-only M1 milestone fieldtest, 2026-07-24)
The dead-end is confirmed end-to-end from the release binary (
d26f0c8): the only persistable taps are the presentation set (equity | exposure | r_equity | net_r_equity), someasure icruns only on semantically-wrong inputs (--signal exposure --price equity→ IC ≈ 0.0019, noise). The missing mechanism is now pinned one level deeper: declared taps ARE serialized bygraph buildbut stripped on the registration path — see #327 (bug). Persisting declared taps through register + trace would supply exactly the signal/price pair this issue asks for. Corpus:fieldtests/m1-self-description/s5_trace_measurement/.Prerequisite surfaced by the #310 skeptic pass (2026-07-24)
Two disjoint tap namespaces exist and this milestone is where they meet: the presentation channel (
Presentation.persist_tapsover the closedequity|exposure|r_equity|net_r_equityset, routedtap_channel→TapChannel, crates/aura-research + aura-runner/src/runner.rs) vs the C27 declared taps (FlatGraph.tapsbound viabind_tap_plan/FoldRegistry — which the campaign/sweep path does not bind at all today). Persisting declared taps through the campaign path (this issue + #327) must first decide the relationship between the two — do NOT graft a declared-tap or fold-bearing field ontopersist_tapsbefore that reconciliation. The #310 cycle ships the one-shot-path fold selector only and leaves this untouched.