Config area of the server: venue profiles, known gaps, model kinds (#175)
Data root: required --data or SBT2_DATA, known gaps in known_gaps.toml (#152) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: describe the uv workspace and the sbt2 namespace packages (#145) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Data sources: Source is an abstract base class owning shared behaviour Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop provenance, code identity, result identity and the data fingerprint
docs: sources live in data; the catalog is a reader and writer package (#52) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run pre-flight: source symbol, known gaps in the summary, new errors
Library: settle the open questions and bring every page in line Two parts (in-sample / out-of-sample) replace train / validation / test; Holdout by fraction or date, no embargo; only the final out-of-sample part is locked, per lineage by date overlap; every run stored; code identity replaces the git SHA; one root replaces data/ and config/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Source Bybit: parsers, funding interval in the snapshot, mark price at kline close (#30)
docs(sources): adapter interface, Bybit raw files, fees on the venue Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Data: empty days are written as zero-row files; resolve the zero-row spike (#28)
Simplify architecture to six modules: data, spec, strategy, run, results, cli Merge download/ingest/data into data; spec/runner/engine into spec + run; results/metrics/analysis into results. Drop core and venue as modules. Access log moves to spec. ResultStore and output sink interfaces kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refine architecture: core and metrics modules, output sink, split safety, strategy pipeline - core leaf module for shared types; pure metrics module shared by runner and analysis - full dependency graph including plug-ins; drop research module until the optimizer lands - engine writes through an output sink; runner commits staging on success - venue profile names venue + asset class; resolve maps symbols to InstrumentIds - splits frozen by access log; new test windows may not overlap seen data - notebook loaders lock every split's test window - strategy pipeline: strategy -> sizing -> risk guards -> pure reconciler -> thin adapter - fresh process per run; result identity; valuation price; per-source known gaps - benchmark moved out of the run spec; perp benchmark uses the perp price without funding Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Separate the general framework from the crypto-perps use case
Make data sources pluggable; move Bybit specifics to their own page