Skip to content

Implement improvement items 1–17 - #5

Merged
cobusgreyling merged 1 commit into
mainfrom
improve-items-1-17
Jun 9, 2026
Merged

Implement improvement items 1–17#5
cobusgreyling merged 1 commit into
mainfrom
improve-items-1-17

Conversation

@cobusgreyling

Copy link
Copy Markdown
Owner

Summary

Delivers all 17 improvement items from the repo assessment:

  1. npm readiness — loop-init bundles starters/templates; RELEASE playbook; README fallback until publish
  2. loop-init packaging — package-root path resolution + bundle-assets.mjs
  3. loop-audit parity — dependency-sweeper + changelog-drafter state/skills
  4. CI validation — JSON schema, starter paths, loop-init sync, e2e smoke tests
  5. Starter L1 gates — audit.yml fails when any starter scores < 38
  6. Doc sync — 6 patterns in all indexes; GITHUB_PAGES fix; README HTML cleanup
  7. Examples parity — full 6×4 matrix in examples/README.md
  8. Dogfood changelog-drafter — weekly release-prep issue workflow
  9. Post-merge story — stories/post-merge-cleanup-honest-win.md
  10. L2 templates — loop-init copies minimal-fix + verifier for L2 patterns
  11. CODEOWNERS
  12. release-loop-init tests — npm test before publish
  13. Dependabot loop-init
  14. SECURITY.md contact — GitHub advisories + email
  15. Showcase og:image — social banner
  16. Discussions enabled
  17. RELEASE.md playbook

npm publish (manual follow-up)

Add NPM_TOKEN secret, then:

git tag loop-audit-v1.3.0 && git push origin loop-audit-v1.3.0
git tag loop-init-v1.1.0 && git push origin loop-init-v1.1.0

- Bundle starters/templates in loop-init for npm; resolve paths from package root
- Extend loop-audit for dependency-sweeper and changelog-drafter signals
- Harden CI: JSON schema + starter path validation, loop-init sync/e2e tests, L1 starter gates
- Add changelog-drafter dogfood workflow, CODEOWNERS, RELEASE playbook, security contact
- Sync docs (6 patterns everywhere), examples parity matrix, post-merge story
- Enable Discussions; showcase og:image; dependabot for loop-init; release tests
@cobusgreyling
cobusgreyling enabled auto-merge (squash) June 9, 2026 11:38
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Loop Readiness Audit

Score: 100/100 (L3)

Strong loop readiness — good candidate for L3 with explicit gates.

No suggestions — looking good.

Posted by audit.yml · loop-audit docs

@cobusgreyling
cobusgreyling merged commit 94b4d71 into main Jun 9, 2026
2 checks passed
50thycal pushed a commit to 50thycal/loop-engineering that referenced this pull request Jun 28, 2026
…ifier)

Adds --vol-target: size the position by target_vol/realized_vol so risk is
roughly constant (hold less in violent regimes, more in calm ones), capped at
--max-leverage (1.0 = spot, no borrow). Threaded through every mode via a merged
base_params, and generate_signals now accepts periods_per_year for correct
annualization of the vol target. No look-ahead: realized vol at bar t uses
returns ending at t.

On real BTC daily walk-forward this is a structural win: consistency 2/5 -> 5/5,
pooled OOS Sharpe 1.91 -> 2.34, pooled drawdown 65% -> 28%, per-fold drawdowns
65/52/24/36/20% -> 28/24/14/13/12%. Lower risk targeting generalizes to any
future data, so it is not curve-fit.

But it is kept HONEST: at the a-priori 0.40 default it is still REJECTED, missing
the aggregate drawdown cap by 3 points (28% vs 25%). A lower target passes, but
sweeping target_vol by hand and reporting the value that clears the gate is
uncounted multiple testing — the enforced counter tracks the grid, not the
researcher's own experimentation. Documented as the trap it is; the real verdict
can only come from forward data (cobusgreyling#5).

Tests 20/20, repo validate gates pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UcE4n3gQdVXJtD2z3mBrZX
50thycal pushed a commit to 50thycal/loop-engineering that referenced this pull request Jun 28, 2026
… + forward quarantine (cobusgreyling#5)

cobusgreyling#4 --trial-budget N: the loop halts searching once cumulative trials reach N.
An autonomous loop that searches forever turns the whole dataset into in-sample
data; the budget is the alpha-spending cap that forces a stop. Checked before
each run (a run may overshoot); once spent, further searches halt and point to
forward-testing or new data. engine/ledger.py budget_exhausted().

cobusgreyling#5 --forward-test: carve the newest slice into a quarantine window the search,
walk-forward, and lockbox never touch. Research on the earlier window, then
forward-test the survivor on the held-out tail. Forward performance gates
capital, not the backtest. engine/quarantine.py. Approval requires research AND
forward to pass. Each forward window is spent after --max-forward-evals tests
(the lockbox lesson, applied to forward data: testing 100 strategies on one tail
just relocates the multiple-testing problem).

Real BTC demonstration (vol-targeted breakout, 0.40 default): research REJECTs
(aggregate drawdown), but the forward out-of-time window actually PASSes cleanly
(Sharpe 1.38, +94%, 18% DD on unseen data) — yet the strategy is NOT approved,
because approval needs both gates. No single lucky result is sufficient.

All five hardening steps (#1-cobusgreyling#5) now implemented. Tests 23/23, repo gates pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UcE4n3gQdVXJtD2z3mBrZX
@cobusgreyling
cobusgreyling deleted the improve-items-1-17 branch July 10, 2026 05:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant