refactor: split the aura-std roster into C28 layer crates

Phase 4 of the Stratification milestone. aura-std held four C28 ladder
layers in one roster; this cuts them into layer-aligned, aura-core-only
node crates so the import direction is enforced by the crate graph:

- aura-std        — engine nodes only (arithmetic/logic/rolling + sinks)
- aura-market     — session, resample
- aura-strategy   — bias, stops, sizer, cost-model machinery
- aura-backtest   — sim_broker, position_management
- aura-vocabulary — the relocated closed std_vocabulary roster

Node modules move verbatim (byte-identical renames); consumers are
rewired by import path only. A new structural test
(aura-vocabulary/tests/c28_layering.rs) asserts each node crate's
[dependencies] stay within its C28-permitted inner set, catching the
acyclic-but-outward violation the compiler misses.

Behaviour byte-identical: full workspace suite green (1448 tests), no
golden edited, clippy -D warnings clean. C28 Status block updated.

closes #288
This commit is contained in:
2026-07-19 20:28:20 +02:00
parent 34ff539143
commit b39fd63396
66 changed files with 398 additions and 152 deletions
+18 -12
View File
@@ -2684,23 +2684,29 @@ cleanly by layer, so the layering is realized only partially:
The stratification supplies the *second* metric consumer (measurement) that the
deferral was waiting on, so retiring #147 and cutting this edge are one coupled
decision — reserved to the user, since it reverses a ratified deferral.
- The interweaving is mostly *inside* crates. `aura-std` holds four layers in one
roster: engine (arithmetic/logic/rolling + the generic sinks), market
(`session.rs`, `resample.rs`), strategy (`bias.rs`/`stop_rule.rs`/`sizer.rs` +
the cost nodes) and backtest (`sim_broker.rs`, `position_management.rs`);
`aura-analysis` holds backtest reductions and generic hurdle math together. No
crate exists yet for *measurement* (its run verb is the additive shape dispatch,
#286) or *execution* (unbuilt — the C10/C13 edge only). Under this model the
`aura-registry → aura-research` edge is column-internal and legal.
- The `aura-std` four-layer roster is now cut by layer (phase 4, #288): `aura-std`
holds the engine nodes only (arithmetic/logic/rolling + the generic sinks);
`aura-market` (`session`, `resample`), `aura-strategy` (`bias`/`stop_rule`/
`sizer` + the cost nodes) and `aura-backtest` (`sim_broker`,
`position_management`) carry the outer rungs, each depending only on `aura-core`;
the closed node roster moved to `aura-vocabulary`. The remaining in-crate
interweave is `aura-analysis`, which still holds backtest reductions and generic
hurdle math together (phase 5). No crate exists yet for *measurement* (its run
verb is the additive shape dispatch, #286) or *execution* (unbuilt — the C10/C13
edge only). Under this model the `aura-registry → aura-research` edge is
column-internal and legal.
- Phased realization (each independently shippable; behaviour byte-identical
except the purely additive shape dispatch): (1) this contract; (2) cut the
`engine → analysis` edge — coupled to the #147 decision above; (3) the #286
shape dispatch plus the per-run scaffold as a library (seeds an `aura-backtest`
crate, gives *measurement* its run verb, removes the measured O(cycles) run-time
retention); (4) split the `aura-std` roster along engine / market /
strategy+backtest; (5) split `aura-analysis` into generic statistics and
backtest metrics; (6) generify the column's metric interface (demand-driven —
this is #147). Crate names provisional; full evidence on #286 and the milestone.
retention); (4) split the `aura-std` roster along engine / market / strategy /
backtest — **done** (#288: four `aura-core`-only node crates, the closed roster
moved to `aura-vocabulary`, the ladder direction enforced by a structural test);
(5) split `aura-analysis` into generic statistics and backtest metrics; (6)
generify the column's metric interface (demand-driven — this is #147). Crate
names now realized (`aura-market`/`aura-strategy`/`aura-backtest`/
`aura-vocabulary`); full evidence on #288, #286 and the milestone.
---