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

34 lines
2.4 KiB
Plaintext

# Runway milestone fieldtest — scenario 1: per-instrument pip honesty (#22)
#
# The task: a downstream researcher runs a real backtest on a VETTED index and
# on an UN-VETTED instrument, and must get an honest pip on the first, a clean
# REFUSAL (non-zero exit, no silent mis-scaled output) on the second.
#
# Consumer form: the canonical CLI invocation itself (aura run --real).
# Built/run via 'cargo run' so HEAD is what runs.
$ aura run --real GER40 --from 1420070400000 --to 1422748800000
{"manifest":{"commit":"0d185fb4c3d2be3002760dbb9d9a8a2ceed795e0","params":[["sma_fast",{"I64":2}],["sma_slow",{"I64":4}],["exposure_scale",{"F64":0.5}]],"window":[1420156800000000000,1422648780000000000],"seed":0,"broker":"sim-optimal(pip_size=1)"},"metrics":{"total_pips":977.3799999994587,"max_drawdown":654.9300000000931,"exposure_sign_flips":8155}}
exit=0
# ^ VETTED INDEX: broker label reports sim-optimal(pip_size=1) — the correct
# index point, NOT the FX default 0.0001. Honest PnL.
$ aura run --real EURUSD --from 1420070400000 --to 1422748800000
{"manifest":{"commit":"0d185fb4c3d2be3002760dbb9d9a8a2ceed795e0","params":[["sma_fast",{"I64":2}],["sma_slow",{"I64":4}],["exposure_scale",{"F64":0.5}]],"window":[1420156800000000000,1422654780000000000],"seed":0,"broker":"sim-optimal(pip_size=0.0001)"},"metrics":{"total_pips":-0.8768415000001664,"max_drawdown":0.9156020000001746,"exposure_sign_flips":8503}}
exit=0
# ^ VETTED FX MAJOR: broker label reports sim-optimal(pip_size=0.0001) — the
# correct forex pip, NOT the index point 1. total_pips=-0.8768 is FX-scaled
# (sub-pip on this window), NOT a mis-scaled index number (~977 on GER40 above
# over the same window). The pip promise's SECOND positive face holds: index
# point AND forex pip both demonstrated end-to-end, each at its own scale.
$ aura run --real AAPL.US --from 1420070400000 --to 1422748800000 # un-vetted (instrument_spec -> None)
aura: no vetted pip/instrument spec for symbol 'AAPL.US' — refusing to run a real instrument with a guessed pip (add it to the instrument table)
exit=2 (stdout above is the stderr diagnostic only — no mis-scaled stdout leak)
$ aura run --real FOOBAR --from 1420070400000 --to 1422748800000 # un-vetted AND no archive
aura: no vetted pip/instrument spec for symbol 'FOOBAR' — refusing to run a real instrument with a guessed pip (add it to the instrument table)
exit=2 (pip-refusal fires at the lookup, BEFORE any data access)