Files
Brummel 13941a24d5 fieldtest: milestone runway — real-data seam, 4 examples, 6 findings (gate green)
Milestone-close fieldtest for "Runway — real-data ergonomics & honesty
hardening". Four curated end-to-end scenarios derived top-down from the
milestone promise, run as a downstream consumer against real GER40/EURUSD M1
bars (public interface only; no crates/*/src read):

  1. per-instrument pip honesty (#22) — GER40 index pip 1.0 AND EURUSD forex
     pip 0.0001 both honest end-to-end; AAPL.US/FOOBAR un-vetted refused
     exit 2, no stdout leak
  2. real GER40 M1 open via open_ohlc from aura-ingest ALONE (#80/#81/#92) —
     no data-server dep, 53173 real bars, C4 O/H/L/C order, ts-window inverse
  3. multi-tap ts-join (#93) — two taps at different cadences, 27744 rows,
     0 by-ts mismatches; warm-up None rows where a positional zip would corrupt
  4. run-registry coherence (#73/#82) — list/rank retired exit 2, families/
     family live, two-store Registry read-back + rustdoc

Findings: 4 working, 1 friction, 1 spec_gap.
  - friction: Cell exposes only from_i64/from_f64/... while the side-by-side
    Scalar is a tagged enum with public I64(..)/F64(..) variants. The natural
    param-authoring entry point is Scalar (Cell is the hot-path buffer carrier),
    so the wrong reach is a self-correcting compile snag — ergonomic only.
    Filed as a follow-up idea.
  - spec_gap: unknown family id exits 0 empty — ratified into the C18 note in
    the preceding commit (treat-as-empty contract).

Gate verdict: GREEN. All seven axes mapped to a covering scenario and exercised
on real bars; both finding classifications and the one material coverage gap
were adversarially re-verified. That gap — #22's FX-vetted pip face, untested by
the original scenario set — was probed (EURUSD -> sim-optimal(pip_size=0.0001),
FX-scaled, not index-mis-scaled) and folded into scenario 1, so the pip promise
is demonstrated on both positive faces. Every scenario re-run independently on
HEAD before commit.
2026-06-18 21:13:56 +02:00

53 lines
2.2 KiB
TOML

# Standalone downstream-consumer crate for the MILESTONE fieldtest of "Runway —
# real-data ergonomics & honesty hardening".
#
# This is the milestone-close fieldtest: it exercises the honesty-hardened
# real-data ingestion seam end to end, the way a downstream researcher would —
# open the real GER40 M1 archive via the canonical opener from `aura-ingest`
# ALONE (the #81 promise: a real-data source builds without naming the external
# `data-server` crate), run a strategy against real bars, and fuse multi-tap sink
# traces honestly on timestamp (#93).
#
# Like the per-cycle fixtures, this is NOT a member of the aura workspace — it
# path-deps the engine crates exactly as a real C16 research project would, then
# drives the PUBLIC surface ONLY (design ledger + glossary + `cargo doc` rustdoc;
# no crates/*/src was read). NB the Runway milestone's whole point is that a
# real-data consumer no longer reaches for `data-server` directly: there is NO
# `data-server` dependency in this manifest — `aura-ingest` re-exports DataServer
# + DEFAULT_DATA_PATH + default_data_server() + open_ohlc() now (#81/#92). The
# prior milestone-18 fixture had to pull `data-server` as a git dep; this one
# proves that crutch is gone.
#
# Built/run via, e.g.:
# cargo run --manifest-path fieldtests/milestone-runway/Cargo.toml --bin rw_2_open_ohlc_real
# so HEAD source is always what runs.
#
# Empty [workspace] table: marks this fixture crate as its OWN workspace root.
[workspace]
[package]
name = "runway-fieldtest"
version = "0.0.0"
edition = "2024"
publish = false
[dependencies]
aura-core = { path = "../../crates/aura-core" }
aura-engine = { path = "../../crates/aura-engine" }
aura-ingest = { path = "../../crates/aura-ingest" }
aura-std = { path = "../../crates/aura-std" }
[[bin]]
name = "rw_2_open_ohlc_real"
path = "rw_2_open_ohlc_real.rs"
[[bin]]
name = "rw_3_multitap_ts_join"
path = "rw_3_multitap_ts_join.rs"
# Scenario 1 (per-instrument pip honesty) and scenario 4 (run-registry coherence)
# are exercised directly through the `aura` binary, since the canonical consumer
# form for a CLI tool is the CLI invocation itself, not a Rust program. Their
# transcripts live in out_rw_1_pip_honesty.txt / out_rw_4_runs_coherence.txt;
# there is no [[bin]] for either.