Scheduled autonomy
Skill ChainGPT-org/chaingpt-claude-skill/skills/scheduled-autonomy
Run trading/DeFi strategies on a schedule — DCA every morning, grid rebalances, recurring health checks — using saved plans + the execution journal (due_steps/mark_step) + Claude Code scheduled agents, with the agent wallet executing inside hard policy caps. Triggers - run this daily, schedule a DCA, recurring buy, set and forget, autonomous strategy, cron strategy, execute my plan on a schedule, walk away.From its SKILL.md
npx -y skills add ChainGPT-org/chaingpt-claude-skill --skill scheduled-autonomyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, as published. Nobody here has run it
Scheduled Autonomy — strategies that run while the user sleeps
The full loop for hands-off strategy execution. Three layers make it safe:
- The plan is explicit and saved to disk (what to do, when).
- The execution journal makes runs idempotent (crashes and re-runs never double-buy).
- The agent-wallet policy gate caps what any single run, or day, can spend —
maxTxValueWeiper tx,maxDailySpendWei+maxDailyTxCountper rolling 24h. The schedule cannot exceed the policy even if it fires a thousand times.
The loop (memorize this shape)
ONE-TIME SETUP
1. chaingpt_strategy_dca_plan ... # produces steps + a JSON payload
2. chaingpt_risk_token / chaingpt_research_token # pre-flight the asset ONCE
3. chaingpt_strategy_save_plan name=eth-dca type=dca payload=<the JSON>
4. Agent wallet ready: chaingpt_agent_wallet_status
→ recommend the "DCA bot" policy template (single chain, single router, small caps)
5. Create the schedule (see below)
EVERY SCHEDULED TICK (this is the prompt the schedule runs)
1. chaingpt_strategy_due_steps name=eth-dca # what's due? nothing → done, exit
2. For each due step:
a. chaingpt_dex_quote ... # fresh quote, sanity-check price impact
b. execute:
- agent-wallet mode: chaingpt_agent_wallet_sign_and_send (policy gate decides)
- user-signs mode: chaingpt_dex_build_swap_tx acknowledgeMainnet=true → present tx
c. chaingpt_strategy_mark_step name=eth-dca stepId=<id> txHash=<hash> # IMMEDIATELY
3. Report: step(s) executed, spend vs daily cap, next step time
Creating the schedule (Claude Code)
Use Claude Code's scheduled agents (/schedule) or any cron that invokes claude:
/schedule create "eth-dca tick" --cron "0 9 * * *" --prompt
"Run one tick of the saved plan 'eth-dca': call chaingpt_strategy_due_steps name=eth-dca;
if nothing is due, stop. For each due step: fresh chaingpt_dex_quote (abort the step and
mark it skipped with a note if price impact > 1%), execute via the agent wallet
(chaingpt_agent_wallet_sign_and_send, memo 'eth-dca step <id>'), then immediately
chaingpt_strategy_mark_step with the tx hash. Finish with a one-line summary."
Cadence note: schedule ticks MORE often than the plan cadence if you want catch-up behavior (a daily plan + daily tick that fails once skips a day; a daily plan + 6-hourly tick self-heals). due_steps returns everything overdue, so catch-up is automatic — the daily-spend cap bounds how much catch-up can execute at once.
Hard rules
- Mark immediately after execution. An executed-but-unmarked step is returned again next tick. The journal is the only memory the schedule has.
- Never mark before the tx is sent. A marked-but-unexecuted step is silently lost money on the table.
- Already-marked refusal means double-fire. If
mark_stepsays the step is already recorded, do NOT overwrite — investigate why the tick ran twice. - The policy gate's refusal is final. If
sign_and_sendis refused (daily cap reached, kill switch on), mark NOTHING, report the refusal, and stop. Never coach the user into widening caps mid-run; that decision belongs to a non-scheduled session. - Pre-flight the asset once at setup, and re-check risk weekly (
chaingpt_risk_token) for long-running plans — tokens get compromised after launch too. - Plans + journal are local files (
~/.chaingpt-mcp/plans/). Nothing is uploaded.
Failure handling
| Situation | Behavior |
|---|---|
| RPC/quote upstream down | Skip the tick (steps stay due; next tick catches up) |
| Price impact above the user's threshold | mark_step status=skipped note="impact 2.3%" — a skipped step is a decision, not a failure |
| Policy refusal (caps/kill switch) | Stop the tick, report, leave steps due |
| Plan complete | due_steps says COMPLETE — tell the user to remove the schedule |
Modes
- Agent-wallet mode (fully autonomous): the wallet signs inside policy caps. Pair with the
dca-basepolicy template. The PreToolUse mainnet guard will ask for confirmation in interactive sessions; for headless scheduled runs, the policy gate + velocity caps are the (deliberate) safety boundary — setCHAINGPT_GUARD=offONLY in the scheduled environment, never globally. - User-signs mode (semi-autonomous): the tick prepares unsigned transactions and the summary asks the user to sign. Zero custody risk; the user is the scheduler's hands.
Solana plans (v1.19+): same loop with chaingpt_dex_jupiter_quote → chaingpt_dex_jupiter_build_swap_tx → chaingpt_agent_wallet_solana_sign_and_send → chaingpt_strategy_mark_step. The lamport velocity caps (policy.solana.maxDailySpendLamports / maxDailyTxCount) are the third safety layer, exactly like the wei caps on EVM.
Related: skills/strategy/SKILL.md (planners), skills/agent-wallet/SKILL.md (policy gate), reference/scheduled-autonomy.md (10-minute end-to-end walkthrough).