Add a sum / weighted-sum combinator to aura-std (north-star combine-signals move) #11

Closed
opened 2026-06-04 17:37:01 +02:00 by Brummel · 0 comments
Owner

The cycle-0007 fieldtest (docs/specs/fieldtest-0007-signal-quality.md) surfaced
this as friction: the project's stated north-star research move — "backtest one
signal, combine it with another, backtest the combination" (C10,
docs/design/INDEX.md) — cannot be expressed from the shipped aura-std blocks.

aura-std ships Sma, Sub, Exposure, SimBroker. To combine two signal
streams into one exposure the fieldtester had to hand-author a project-local
Add2 node (two f64 inputs, one f64 output summing the newest values). That is
legitimate per C16, but it is boilerplate every consumer attempting the headline
move must rewrite — Sub (difference) ships, but not its companion sum.

Scope

Add a small combinator to aura-std so the north-star combine move is expressible
from shipped blocks. Candidates:

  • Add — two f64 inputs -> their sum (the direct companion to Sub); or
  • LinComb { weights } — N f64 inputs -> weighted sum (generalizes Add and is the
    natural form for "combine signal A and B with weights", which is also where a
    meta-signal's tuning params live, C12).

A weighted sum is the more useful primitive for signal research (it carries the
combination weights as tunable params); a plain Add is the minimal version.
Decide scope when planning. Pairs naturally with the existing Sub.

Anchors

  • C10 — the primary research loop: combine signals, backtest the combination.
  • C16 — aura-std is the home of universal blocks.
  • fieldtest-0007 friction: "the north-star combine move needs a combinator
    aura-std does not ship".

Acceptance

[ ] aura-std ships a sum / weighted-sum combinator node (decide Add vs LinComb at
plan time).
[ ] The cycle-0007 fieldtest's two-signal combine example can drop its
hand-authored Add2 in favour of the shipped node.
[ ] Hand-driven unit tests in the established aura-std style.

The cycle-0007 fieldtest (docs/specs/fieldtest-0007-signal-quality.md) surfaced this as friction: the project's stated north-star research move — "backtest one signal, combine it with another, backtest the combination" (C10, docs/design/INDEX.md) — cannot be expressed from the shipped aura-std blocks. aura-std ships `Sma`, `Sub`, `Exposure`, `SimBroker`. To combine two signal streams into one exposure the fieldtester had to hand-author a project-local `Add2` node (two f64 inputs, one f64 output summing the newest values). That is legitimate per C16, but it is boilerplate every consumer attempting the headline move must rewrite — `Sub` (difference) ships, but not its companion sum. ## Scope Add a small combinator to aura-std so the north-star combine move is expressible from shipped blocks. Candidates: - `Add` — two f64 inputs -> their sum (the direct companion to `Sub`); or - `LinComb { weights }` — N f64 inputs -> weighted sum (generalizes Add and is the natural form for "combine signal A and B with weights", which is also where a meta-signal's tuning params live, C12). A weighted sum is the more useful primitive for signal research (it carries the combination weights as tunable params); a plain `Add` is the minimal version. Decide scope when planning. Pairs naturally with the existing `Sub`. ## Anchors - C10 — the primary research loop: combine signals, backtest the combination. - C16 — aura-std is the home of universal blocks. - fieldtest-0007 friction: "the north-star combine move needs a combinator aura-std does not ship". ## Acceptance [ ] aura-std ships a sum / weighted-sum combinator node (decide Add vs LinComb at plan time). [ ] The cycle-0007 fieldtest's two-signal combine example can drop its hand-authored Add2 in favour of the shipped node. [ ] Hand-driven unit tests in the established aura-std style.
Brummel added the feature label 2026-06-04 17:37:01 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Aura#11