Overnight Log - 2026-07-03#

00:40 PDT#

Hypothesis: the fastest high-trust progress is evidence integrity plus a stricter RFS baseline.
Action: read attached run spec, AGENTS.md rules, graph report, M0-M3 code/tests, artifacts.
Result: confirmed stale M3 artifact and available local roots /tmp/kahlus_chbmit_subset and /tmp/kahlus_sleep_edf_subset.
Decision: regenerate artifacts from local public-data subsets after code changes.

00:47 PDT#

Hypothesis: current RFS overstates CHB-MIT because the baseline is weaker than moving average.
Action: changed _run_fixture to select the lowest-NLL gated baseline before computing RFS.
Result: M3 CHB-MIT primary RFS changed from a small positive value to -0.388076 bits against moving average.
Decision: keep this as the hardened-RFS improvement.

00:50 PDT#

Hypothesis: the residual head should be a convex offset-GLM, not a hand-rolled clipped GD path.
Action: checked opensrc paths:

  • /Users/aayu/.opensrc/repos/github.com/scikit-learn/scikit-learn/main/sklearn/linear_model/_logistic.py

  • /Users/aayu/.opensrc/repos/github.com/scipy/scipy/main/scipy/optimize/_minimize.py

Result: scikit-learn has regularized logistic solvers but no offset API; SciPy is not a project dependency.
Decision: implement minimal IRLS offset logistic locally, no new dependency.

00:53 PDT#

Hypothesis: the novel contribution should be a horizon-wise RFS curve.
Action: added M4 with patient-safe horizon labels, synthetic known/null curves, and optional Sleep-EDF smoke.
Result: synthetic known curve decays across horizons; synthetic null stays near zero. Sleep-EDF smoke runs but fails for underpower/time-shift control.
Decision: report M4 as a benchmark-method gate with honest real-smoke failure.

00:55 PDT#

Hypothesis: stale artifacts need an executable guard.
Action: added M3 artifact freshness test that recomputes gate failures from current logic and requires tusz_external schema.
Result: test failed on stale artifact, then passed after regeneration.
Decision: keep focused guard instead of broad M0 byte-equality because M0 records git state and is expected to change with dirty worktrees.

00:56 PDT#

Hypothesis: repo needs minimum CI.
Action: added .github/workflows/ci.yml with ruff, pytest, and git diff --check.
Result: local forecastability tests pass.
Decision: run full test/ruff after docs.