chore(deploy): sync live-rules.json with the live rule set (#855) - #858
Merged
Merged
Conversation
Regenerated with `scripts/rule_manifest.py export` against a read-only sqlite3 backup of ~/keel/keel-live.db. The manifest now lists the seven live DCA rules (BTC $40/7d, ETH $25/7d, PAXG $25/14d, ADA/XLM/DOGE/FET $15/14d) and the six turtle rules at status=paper. test_committed_manifest_is_valid pinned exactly one DCA rule and pinned that its params equal Dca's constructor defaults. Neither holds for the live set: it now asserts every DCA rule is live, no rule is candidate, and every DCA rule differs from the constructor defaults on at least one param, so a keel init reseed shows as a value change too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eaitbrahim
commented
Sep 28, 2026
…CA status only (#855) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eaitbrahim
added a commit
that referenced
this pull request
Sep 28, 2026
…n and its read-only card (#877) MINOR: a rail changes scope for DCA (#869) and new commands and routes land (#846, #850). No schema change since 0.19.0. What lands: #846 (#831 follow-up) -- keel dca plan: schedule by target weights within rail 14's worst calendar month; [Y] writes candidate rules only. #850 -- GET /api/dca-plan and a read-only card on /rules. #869 (#853) -- rail 6 (per-asset) no longer vetoes DCA buys; the plan blocks on rail 3 and warns on rail 5. #867 (#854), #876 (#874) -- a blocked plan names the largest passing budget and smallest passing buffer, clearing rails 14, 3 and 2. #870 (#856) -- admission screen cached 5 minutes. #858 (#855) -- deploy/live-rules.json synced. #859 (#857) -- design spec for the DCA sleeve's sell side. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #855
Regenerates
deploy/live-rules.jsonfrom the live rule set. I made a read-only copy of~/keel/keel-live.dbwith Python'ssqlite3backup API (source openedmode=ro) into a scratch dir, and ranscripts/rule_manifest.py exportagainst that copy. Nothing under~/keelwas written.Live DCA rules (status
live)All seven have
dip_bonus_pct0 andlookback_days90.The turtles are paper. The six
turtle_breakoutrules (BTC, ETH, PAXG, ADA, XLM, DOGE) arestatus: paper. The old manifest listed five of them aslive.Rulings
test_committed_manifest_is_valid. It pinned exactly one DCA rule and pinned that rule's params toDca's constructor defaults. The regenerated manifest breaks both: there are 7 DCA rules, and none uses the default $50. The test comment itself says to update it when this happens. It now asserts:live;candidate;keel initreseed would show as a change in value, not only a change in status.scripts/rule_manifest.py's module docstring. It said the live DCA rule is50on purpose, matching the default. That is no longer true.Test evidence
uv run pytest -q: 7027 passed, 3 skipped (exit 0)ruff check keel tests scripts: exit 0ruff format --check keel tests scripts: exit 0mypy: exit 0budget_usdto"50", so the rule equals the defaults: the value assertion fails, naming BTC-USD;paper: the status assertion fails.🤖 Generated with Claude Code