Name the core calls the CLI and the server share (#180)
Studies: named collections of runs that differ only in their parameters (#157)
Results: subpackages of sbt2.core.results and their layers (#162)
Run, Results, Decisions: the run child's order is JSON, the store travels as a locator Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results: runs(where) takes a RunFilter, run_ids included (#128)
Results: benchmarks take a PricedRun; prices and equity read once
CLI, Results, Spec: sbt2 report, the run summary table, stored_run and from_document Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results: a step ending at midnight belongs to the day before (#110) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results, Decisions, Quality, Deferred: single-run tearsheet (#110) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results: costs, exposure, holding time and turnover (#108) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results, Run, Glossary: batch id and part and batch comparisons (#111)
Results: full metrics through nautilus's analyzer, how trades are counted, the PSR
Results: benchmarks carry prices across known gaps; external files must cover the part end
Benchmarks: variants, factory, buy-and-hold convention, nautilus statistics; type-only imports
Add overfitting statistics, the ask-and-tell optimiser and References
M4 done: bracket-and-risk golden run, carry order
Strategy, Spec, Results, Run, Glossary: the risk table and the drawdown guard as built (#98) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Results, CLI: sbt2 runs list, show and delete (#59)
Run, CLI, Results, Quality: run.batch and sbt2 run's memory options (#58)
Drop provenance, code identity, result identity and the data fingerprint
Spec, Results: splits as built in #55 (required split, rounding, split JSON in the summary)
Run pre-flight: source symbol, known gaps in the summary, new errors
Splits: train / validation / test, with only test locked The optimiser tunes on train and ranks on validation; validation runs as often as you like; the lock becomes the test lock. Walk-forward is deferred until M10. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
docs: thin nautilus strategy base; asset profiles keyed by nautilus Strategies are nautilus Strategy subclasses on a thin sbt2 base that submit their own orders; the plain-Python pipeline (intents, reconciler, adapter) is gone (PR #18). Asset profiles are keyed by nautilus's AssetClass + InstrumentClass and venue profiles name them with nautilus enum names (issue #19). Results notes that annualization must be passed as nautilus's period (default 252) and that benchmark-relative stats come from nautilus. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move to nautilus v2: native funding, portfolio equity snapshots, run-time bars, public catalog writers, nautilus tearsheets Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move to nautilus: run config, venue profiles, mark-price valuation, brackets, RiskEngine, bar aggregators, instrument provider, reports Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Index as a DuckDB view over per-run summaries; drop the pre-flight memory estimate Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop results staging: runs write straight to their folder, a failed run crashes the program Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop lockbox and access log, keep strategies in this repo, remove host OS from deployment Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>