Install any skill in seconds. Free to start, no credit card required.
Get Started Free →archive228/init-script-contract
Author idempotent init.sh under 120s plus sibling test.sh, stop.sh, reset.sh, serve.sh with fixed names the harness relies on.
Passed 19 of 20 test cases with the skill, and 6 of 20 without it.
and 20 more in the full report
15 fixed7 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 13 test cases the skill fixed. Same model, same prompt, with and without the skill.
Write a one-line shell command chain to verify that a fresh repository's session harness works completely from scratch without left-over state, covering clean execution, testing, and teardown.
| Checked | Without skill | With skill |
|---|---|---|
| Begins the verification pipeline with git clean to remove untracked files. | Passed | Passed |
| Chains execution of root scripts in sequence: init.sh, test.sh, and stop.sh. | Missed | Passed |
The instructions your model reads when the skill loads.
Every coding session in a multi-session project starts by bringing the dev server up. If the entry point is named differently each time, or takes four minutes, or prompts for input, you burn tokens and wall-clock on every single session. The fix is a fixed set of script names at the project root with a hard contract. The initializer agent writes them once; every downstream session relies on them.
The names are load-bearing — [[shift-notes]] and [[broken-window-check]] both refer to them by name. Do not invent your own.
| Script | Contract |
|---|---|
init.sh | Clean clone → dev server up on localhost. Idempotent. Under 120s. Zero prompts. |
serve.sh | Start the dev server only. Written when init.sh cannot fit under 120s. |
test.sh | Run the full test suite. Exit non-zero on any failure. |
stop.sh | Cleanly kill the dev server. Sessions run this before exiting. |
reset.sh | Wipe local DB and ephemeral state. Leave code untouched. Used by [[broken-window-check]]. |
init.sh to run end-to-end from an empty clone. Pin every dependency (lockfile, ==, Pipfile.lock). Answer every prompt non-interactively (-y, --yes, DEBIAN_FRONTEND=noninteractive).time ./init.sh on a clean clone. If it exceeds 120s, split — move one-time setup into init.sh and server launch into serve.sh. Have init.sh call serve.sh at the end so single-command startup still works../init.sh twice back-to-back. If the second run errors or duplicates state, guard each step with existence checks (if [ ! -d node_modules ], createdb --if-not-exists, etc.).stop.sh to kill by PID file or port, not by process name grep. Grep kills sibling agents on shared sandboxes.test.sh with a single end-to-end smoke test that proves init.sh produced a serving app. No feature tests — those belong to future sessions.reset.sh to drop and recreate the DB, clear caches, wipe /tmp artifacts. Never touch tracked files.git clean -fdx && ./init.sh && ./test.sh && ./stop.sh. Every script exits 0.bootstrap.sh, setup.sh, dev.sh. Downstream sessions grep for the fixed names. A cute alias silently disables the harness.yarn install asking about peer deps, createdb asking for a password, npm audit waiting for input. Every prompt is a stall the session cannot answer.npm install foo without a lockfile means the next session gets a different transitive graph. See the Feb 2026 incident where an agent ran npm update --save and broke twelve sessions.pkill node. Kills every node process in the sandbox. Use a PID file written by serve.sh.init.sh create files outside the project directory. Sandbox will reject it and the failure mode is opaque.test cases passed, vs 6 / 20 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.