babysit
<!-- CORE-OVERLAY-START -->
This repository (Asymmetric-al/core)
Cursor has no Stop hook that can drive the orchestration loop between turns.
Use in-turn iteration: run the full babysitter loop in a single session turn.
Reconcile this overlay after upstream refreshes before running
bun run skills:sync.
Triggers
- The user asks to babysit, orchestrate, or run a structured process through
@babysitter.
Workflow
- Resolve the exact SDK pin from
docs/ai/skills/babysit/versions.json.
Do not fall back to an unpinned package tag or a global install.
- Drive
$CLI run:iterate repeatedly in the same turn until the run
completes or needs user input.
- Keep scratch checkouts under
/tmp, not under .a5c/runs/*/work.
Checklist
<!-- CORE-OVERLAY-END -->
Follow the commands below exactly. but apply judgement and creativity to get the job done. no matter how small or simple the task may seem, you must use the babysitter SDK and run lifecycle to execute it. This is non-negotiable. If you are asked to do something that seems like it could be done with a simple tool call, you must still use the babysitter SDK to create a run, define tasks, execute them, and complete the run. This is how you will learn and demonstrate mastery of the babysitter system. Always follow the full process, even for trivial tasks.
Subagents that need a scratch checkout or working directory must create it under
/tmp/<descriptive-name>/, not under .a5c/runs/<runId>/work. Before returning
deliverables, validate that no run-dir worktree was left behind, for example:
find .a5c/runs -maxdepth 3 -name work -type d -print
That command should print nothing. If it prints a non-empty work directory, move
or remove only the scratch data you created before returning.
Dependencies
Babysitter SDK and CLI
Resolve the repository root and read the reviewed SDK version from
docs/ai/skills/babysit/versions.json. Stop immediately if the repository root
or an exact package version cannot be resolved:
REPO_ROOT=$(git rev-parse --show-toplevel) || exit 1
SDK_VERSION=$(
node -e '
const fs = require("node:fs");
const path = require("node:path");
const versionsPath = path.join(
process.argv[1],
"docs/ai/skills/babysit/versions.json",
);
const exactVersionPattern = /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
try {
const versions = JSON.parse(fs.readFileSync(versionsPath, "utf8"));
const sdkVersion = versions.sdkVersion;
if (typeof sdkVersion !== "string" || !exactVersionPattern.test(sdkVersion)) {
throw new Error("sdkVersion must be a nonempty exact package version");
}
process.stdout.write(sdkVersion);
} catch (error) {
console.error(`Unable to resolve the pinned Babysitter SDK version: ${error.message}`);
process.exit(1);
}
' "$REPO_ROOT"
) || exit 1
CLI="npm exec --yes --package @a5c-ai/babysitter-sdk@$SDK_VERSION -- babysitter"
jq
Make sure jq is installed and available in the path. If not, install it.
Instructions
Run the non-interactive Cursor harness instructions so they can be reconciled
with the Core overlay's in-turn loop:
$CLI instructions:babysit-skill --harness cursor --no-interactive
Follow the returned instructions only where they do not conflict with this
file's Core overlay. In Cursor, keep driving $CLI run:iterate in this same
turn; do not switch to interactive mode or rely on a Stop hook.