errands

Small, audited programs a skee can run.

Every errand is a few hundred lines, reviewed, versioned, and pinned. You pick one, fill in its parameters, set the leash, and spawn. All errands run against tokenized stocks, ETFs and stablecoins on Robinhood Chain.

The library.

dca

Buy a fixed amount of one asset on a schedule. Optional price band: skip the run if price moved more than X% since last run.

errand: dca
asset: TSLAx
amount: $25
skip_if_moved: 3%

rebalance

Hold target weights across up to eight assets. Trades only when drift exceeds a threshold, and only the minimum needed.

errand: rebalance
targets: {TSLAx: 60%, USDC: 40%}
threshold: 2%

sweep dust

Consolidate any balance under a floor into a single asset. Skips if fees would exceed a share of the value swept.

errand: sweep
floor: $1
into: USDC
max_fee_share: 5%

watch listings

Buy a fixed amount of any new asset that matches a filter. The filter is a rule; a model may classify inputs but never authorises the buy.

errand: watch
filter: us_equity && cap > 5B
amount: $50

harvest

Claim accrued yield or dividends and reinvest into a chosen asset, or route to a wallet.

errand: harvest
reinvest_into: SPYx

cancel stale

Pull limit orders older than N hours. Optionally re-place them around the current price.

errand: cancel_stale
older_than: 12h
replace: false

ladder

Place a ladder of limit orders at fixed steps below (buy) or above (sell) the current price. Re-lays the ladder each run.

errand: ladder
side: buy
steps: 5
step_size: 1%
per_step: $20

top-up

Keep a wallet above a minimum balance by selling from a reserve asset.

errand: topup
wallet: 0x…
min: $100
from: USDC

rotate

Move between two assets when a simple signal flips: moving-average cross, or a price relative to a reference.

errand: rotate
between: [SPYx, USDC]
signal: ma(50) > ma(200)

your own

Write an errand in the skee DSL, submit it for review. Accepted errands are pinned, audited and added to the library for everyone.

skee errand new my_errand
skee errand test
skee errand submit

What every errand must obey.

Deterministic given inputs. Same balances, same prices, same leash → same decision. Model calls, where present, are cached per run and only ever classify.

At most one transaction per run. Errands that need more (rebalance, ladder) batch into a single atomic call.

Idempotent. If a run is retried, it must not double-act. Every action is keyed by run id.

Explains itself. Every errand must produce a one-sentence plain-English receipt for every outcome, including "did nothing".