Install any skill in seconds. Free to start, no credit card required.
Get Started Free →sonichi/self-upgrade
Safely upgrade this Sutando checkout to the latest upstream code **without
Passed 17 of 20 test cases with the skill, and 7 of 20 without it.
and 12 more in the full report
11 fixed8 passed either way4 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
After pulling upstream updates with `skills/self-upgrade/scripts/upgrade.sh`, the diff indicates `tsconfig.json` was updated. What installation command should be run prior to running TypeScript services?
| Checked | Without skill | With skill |
|---|---|---|
| Specifies running npm ci when tsconfig changes. | Missed | Passed |
The instructions your model reads when the skill loads.
Safely upgrade this Sutando checkout to the latest upstream code without bricking the running core session — the "success path" distilled from a real 2026-07-20 upgrade that would otherwise hang (and did, the first time).
Usage: /self-upgrade
A naive "pull + restart" self-upgrade gets stuck, because:
src/restart.sh ends with exec bash src/startup.sh.src/startup.sh runs foreground work and foreground-parents the
credential-proxy (a tsx process that never exits). The open-source core
is headless: the optional Swift helpers (ax-read, Sutando.app) are built
separately by the app packaging/setup workflow, not by core startup.restart.sh inline from the core session never returns —
the Bash call hangs forever, the task never gets a result, and from the
owner's side you've "gone stuck."The fix is simple once you know it: hand the restart to the same durable tmux
server that owns the core. A plain nohup … & is not enough: the supported
Codex executor tears down that process tree when the tool call ends. A detached
tmux service pane survives that boundary, remains the parent of restarted
services, and lets startup recreate the managed task notifier.
Run the helper. It aborts safely on a dirty tree or a non-fast-forward, pulls
--ff-only, and launches src/restart.sh in the persistent
sutando-services tmux session:
bash skills/self-upgrade/scripts/upgrade.sh # origin/main
# bash skills/self-upgrade/scripts/upgrade.sh --no-restart # pull only
test cases passed, vs 7 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.