Skip to content
Development
Command

/skillopt-sleep-handoff

Run the SkillOpt-Sleep cycle with the handoff backend — no API subprocess; this session answers the engine's model calls via prompt/answer files, in isolated fresh-context subagents

From plugin
skillopt
16k2 skills2 commands
Install
$ npx -y skills add microsoft/SkillOpt --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/skillopt-sleep-handoff

Context preview

What this command does when you run it.

Run the SkillOpt-Sleep cycle with the handoff backend — no API subprocess; this session answers the engine's model calls via prompt/answer files, in isolated fresh-context subagents

Command definition

skillopt-sleep-handoff.md
description: Run the SkillOpt-Sleep cycle with the handoff backend — no API subprocess; this session answers the engine's model calls via prompt/answer files, in isolated fresh-context subagents
argument-hint: "[run | dry-run] [--preferences \"...\"] (default: run)"
allowed-tools: Bash, Read, Write, Task

/skillopt-sleep-handoff — session-executed sleep cycle

You are driving **SkillOpt-Sleep in handoff mode**: the Python engine runs every deterministic stage (harvest → mine → replay scoring → gate → stage) and outsources each model call (attempt / judge / reflect) to YOU via prompt files. No `claude -p` subprocess, no API key — the model work runs on this session's budget, but each prompt MUST be answered in a fresh, isolated context so the validation gate stays honest.

Requested action: $ARGUMENTS

(If `$ARGUMENTS` is empty, treat it as `run`.)

The loop

Repeat until the engine exits 0 (done) — at most 8 rounds:

1. **Run the engine** via the bundled runner. Split `$ARGUMENTS` into the action and remaining options, and preserve those options on every resumed round:

   "${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" <action> --backend handoff --project "$(pwd)" --scope invoked <remaining options>
  • exit 0 → the night is complete; go to "Finish" below.
  • exit 3 → pending model calls; continue with step 2.
  • anything else → stop and show the user the error output.

2. **Read the batch**: `Read` `.skillopt-sleep-handoff/pending.json` in the project. Each entry has `id`, `prompt`, `max_tokens`, `answer_file`.

3. **Answer each prompt in ISOLATION** — this is the integrity rule:

  • For each entry, launch a subagent (Task tool) whose ENTIRE input is

the `prompt` text verbatim. Add nothing: no summary of this session, no mention of SkillOpt, no other prompts from the batch.

  • Take the subagent's reply and `Write` the raw answer text (no

commentary, no code fences) to the entry's `answer_file`.

  • NEVER answer from this session's own context — you have seen the

mined tasks and their references, so inline answers would contaminate the held-out gate and fake the improvement score.

4. **Re-run the same engine command** — it resumes from the answers directory and either finishes or stages the next batch.

Finish

  • For `run`, if the engine prints a staging directory, `Read` its `report.md`

and show the user: held-out baseline → candidate score, the gate decision, the proposed edits, and where the proposal is staged. If an accepted proposal was staged, tell the user nothing live changed and offer `/skillopt-sleep adopt`.

  • For `dry-run`, no staging directory or `report.md` is created; summarize the

final stdout instead.

  • The engine archives `.skillopt-sleep-handoff/` on a completed real run;

do not delete it yourself.

Safety reminders

  • **Never** edit `CLAUDE.md` or `SKILL.md` yourself — only `adopt` does

that, with a backup.

  • Mined tasks are pinned to `.skillopt-sleep-handoff/tasks.json` on round

one, so sessions created while answering prompts cannot shift the task set. Do not edit that file.

  • If a batch looks like it contains secrets or content the user would not

want re-processed, stop and ask before answering.

  • Handoff files apply pattern-based secret redaction, but that is not a

guarantee that prompts are free of sensitive data. Treat the pending batch as private user data and do not copy it into chat, logs, or commits.

Read more
Ships withskillopt

Train agent skills like you train neural networks — with epochs, (mini-)batchsize, learning rates, and validation gates — but without touching model weights.

Get the whole plugin
Stats
15,815
Stars
1,467
Forks
Active
Maintenance
Python
Language
MIT
License
10h ago
Last commit
3mo ago
Created

Repo: microsoft/SkillOpt