Propagate semantic series kinds from producer contracts through the graph #293
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?
Parked from the 2026-07-20 tap-drain design discussion on #283 — an architecture direction that is deliberately NOT needed there, filed so the trigger is named.
The idea
Semantic series kinds (bounded level in [-1,+1], R-multiple event sequence, price level, monotone counter, ...) originate at the producing node's contract and propagate through the graph, exactly the way scalar kinds already do: node signatures carry
FieldSpec { name, kind: ScalarKind }, and composite boundary ports derive their kind from the interior producer instead of annotating it (crates/aura-engine/src/blueprint.rs:122-127,interior_slot_kindatblueprint.rs:138). A semantic kind would be a refinement layer overScalarKindwith a minimal propagation algebra: kinds originate only where a node contract fixes them (a strategy's bias output is a bounded level by contract; a RiskExecutor's net-R output is an R-sequence), structure-preserving nodes pass them through, semantics-destroying ops degrade honestly to plainf64— never guessed. Metadata beside the hot path, propagated once at bootstrap, zero runtime cost.A tap then carries nothing but its name and surfaces whatever the port already knows. Consumer-side annotation would be duplication that can lie; a producer-contract kind cannot drift from reality because it defines it.
Why it is NOT needed now
Each candidate consumer has a semantics-free path (established on #283, 2026-07-20):
f64.reduce_for_tap(crates/aura-cli/src/main.rs:197), which infers decimation policy from the tap name (exposure), remains a tolerated convention shortcut for the wrap-convention taps — it is the ad-hoc reconstruction of exactly this information at the wrong end of the pipeline, and the smell that motivated the idea.Trigger
Becomes worth building when a generic viewer must do better than the safe degradation for arbitrary declared taps without the author in the loop — e.g. shared y-scales across foreign taps, or semantic aggregation in the trace explorer, surfacing as a real requirement.
Closed as mis-filed against the forward-queue discipline, 2026-07-20: the body demonstrates the absence of a need rather than a benefit — no concrete consumer of propagated semantic kinds exists today, and every candidate examined has a semantics-free path. A hypothetical trigger is not a queue item. The architectural rationale stays recorded on the originating discussion (the no-semantics refinement on the tap-drain issue); a future filing requires a demonstrated concrete consumer, not a named hypothesis.