Repository navigation
Claude/phase 8.2 lean mvp - #160
Merged
Merged
Conversation
…iew suspended, park + module map + N4/N6/N7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…a gap, scoreboard window, parking map Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…pwire/scoreboard/notebooks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…N not green, import-only diff gate, notebook outputs check); STATE planned Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- allocation_mode_from_config enum check and the live-config pin - serving.main then weekly.main in no_regime mode: suspended regime view, mode line, no-regime target traded in full - no_regime_target is the one-state tilt over returns up to as_of Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- report.allocation_mode (absent = regime_tilt; live config no_regime, pinned) - no_regime_target: one-state belief + returns_by_regime_stats over returns <= as_of + vol_targeted_tilt - belief and hysteresis still advance; the page collapses them into a suspended regime view - page prints the active allocation mode under the trades heading Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- switch to no_regime executes the full target with a note; same-month re-run identical; next month bands - executed_weights without a mode record counts as regime_tilt; neither checkpoint gives no note - band-free configs write no mode record Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…A-15) - allocation_mode checkpoint (mode, as_of, changed_from), loaded before save, gated like executed_weights - mode_switch: executed_weights without a record counts as regime_tilt; a switch sets held=None - the switch note is shown under the trades heading and survives a same-month re-run Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- pre_band_cash beside pre_band_target_weights so parity can compare the tilt's full output Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…d ablation leg - synthetic: weekly stepped month by month equals the tilt-off driver's tilt and rebalance at rel 1e-9 - tracked data: NO_REGISTRY ablation re-run reproduces the tracked return and scale; final-step tilt equals the weekly no-regime target at 2020-11-30; registry sha and count 46 unchanged Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- the q2-ii constant-posterior sentence names the served posterior in the suspended block - the regime_tilt page keeps its sentence byte for byte Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
… 2568 - DECISIONS A-13 built (code default regime_tilt when absent, live config no_regime and pinned) - DECISIONS A-15: a mode switch executes the new target in full and says so - CLAUDE.md / README.md: recorded test count 2550 -> 2568 (test_docs_recorded_counts) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…ry test - git mv labeling/stability.py to parked/stability.py, no shim - repoint scripts/run_subsample_stability.py and the two stability tests (import lines only) - boundary test: fresh-interpreter sys.modules check over report/ and tripwire/, AST scan with scanner self-check, moved-not-copied location test Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…joint driver - QUALITY_TIER_RULE, annualized_sharpe, quality_tier move verbatim to evaluation/deflated_sharpe.py; the parked joint_driver re-imports the same objects - git mv backtest/joint_driver.py to parked/joint_driver.py, no shim - repoint scripts and record tests (import lines), plus one orchestrator-approved retarget of the monkeypatch in test_the_boundary_is_exclusive to the deflated_sharpe module (assertion unchanged) - boundary test: joint_driver location and quality_tier moved-not-copied Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- git mv labeling/classifier2.py to parked/classifier2.py, no shim - repoint the parked joint_driver, three scripts and four tests (import lines only) - boundary test: classifier2 location; no importer of an old path remains in src, scripts or tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…2576
- platform_design/MODULE-MAP.md: M0-M9+, parked modules, parked-only helpers, boundary
- guide section 3: pointer to the map; M9+ row names parked/{stability,classifier2,joint_driver}
- recorded counts 2568 to 2576 at the four test_docs_recorded_counts sites (numbers only)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
… and build_weekly_page - evaluate_tripwire: per-signal state/value/threshold/as-of, STALE after 5 business days, UNAVAILABLE on a missing input, NaN tail never green, escalation over current signals - page section: UNKNOWN unless all three signals are current; STALE (would be RED) - build_weekly_page writes into output_dir; the book ignores the tripwire - build_scratch_serving: two cold copies give byte-identical pages Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…serving (D-04) - monitor.evaluate_tripwire + value helpers (run_tripwire and the bool functions unchanged) - weekly.build_weekly_page(cfg, cm, output_dir) extracted from main; tripwire rendered before the trades heading, advisory, never an all-clear without three current signals - serving.build_scratch_serving copies the serving inputs into a scratch namespace - config: tripwire.stale_business_days 5 (ruling A1), report.scoreboard_trial_tag Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…arpe-vs-hurdle figure - common 1972-2020 window for all five legs, own-span footnote, rel 1e-9 reconciliation - run date from the 08.1-pit-tilt-vs-ablation registry rows; tracked numbers read-only - withheld columns on a mismatch, an unavailable line on a missing KPI table - baseline_curves shared by the plotting delegate; scoreboard imports no plotting Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…-hurdle figure (D-05) - report/scoreboard.py: scoreboard_table, format_scoreboard, before_after_table, E07_CAVEAT (no matplotlib); five legs on the strategy window, reconciled to the KPI table or withheld - backtest/baselines.baseline_curves: the baseline derivation moved verbatim; plotting.recompute_baseline_curves is now a one-line delegate - weekly: scoreboard rendered between the tripwire and the trades heading - plotting/backtest.plot_sharpe_vs_hurdle for N7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…headless - weekly.served_posterior_path: the served posterior over every complete full-span month - P7: two cold scratch serving builds, identical pages, scored month, STALE, mode, tripwire - P8: backtest filtered belief (499 distinct of 502) beside the served posterior (1 of 233) - P9: before/after table, scoreboard, five curves on 1972-2020, Sharpe vs the hurdle at the live count, E-07 line, a guard cell, and the answer: the regime view stays advisory (G-06) - each ends in one pending sign-off cell; scratch lives in the gitignored notebook dir Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…ata build - main() fetches fred_daily exactly once with the build cfg (mocked, network guard on) - a raising fetch logs a WARNING naming fred_daily_raw and keeps the exit code Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
… tripwire - fetch_fred_daily after build_monthly_spine; advisory input, so a failure only warns - logs the last date on success Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
- platform/checkpoints.py exposes PLATFORM_REPORT_DIR (same import statement, no new site) - scoreboard reads it at call time instead of importing OUTPUT_DIR from the package root - build_scratch_serving takes CheckpointManager from the platform checkpoints seam Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…counts 2640 - DECISIONS: A-14 built with its Form (rulings A1, A3), L1-04 parked, G-01 P7-P9, G-07 built, G-08 - README: allocation mode, suspended regime line, tripwire STALE/UNAVAILABLE, fred_daily_raw, static scoreboard with the E-07 caveat, P7-P9 headless command - recorded test counts 2576 -> 2640 (numbers only) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…TATE/ROADMAP executed 3/3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…ivered; next is Glenn's call (regime rebuild vs Phase 9) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
…an-mvp' into claude/phase-8.2-lean-mvp
…ule test files Import order only; no assertion or behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
… major version CI's Python 3.10 job runs pandas 2.x, whose pct_change() forward-fills interior gaps by default; pandas 3 does not. The tracked results were produced under pandas 3, so on 3.10 the SPY and 60/40 baselines differed (SPY TLW 5.658 vs 5.688) and the scoreboard refused to reconcile. - pass fill_method=None at all 14 platform pct_change call sites, pinning the pandas-3 behaviour everywhere (no change to any tracked number); - compare datetime indexes at one resolution (pandas 2 reads ns, pandas 3 keeps us) in the scoreboard coverage check and the no-regime parity test. Full suite 2640 passed on both Python 3.10/pandas 2.3 and 3.11/pandas 3.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018uY2PDfrfhs9KL6vSbBAvB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.