f9db99853b
Restructure into plugins/{claude-code,codex,copilot}/ — one engine, three thin
shells, all calling the shared plugins/run-sleep.sh -> python -m skillopt_sleep.
- claude-code/: existing plugin moved here; runner delegates to the shared
launcher (fixes repo-root resolution after the move).
- codex/: ~/.codex/prompts/sleep.md custom prompt + ~/.agents/skills SKILL.md +
install.sh + AGENTS.md hint — Codex's documented, stable extension surfaces.
- copilot/: a stdlib-only MCP server (mcp_server.py) exposing sleep_* tools,
plus mcp-config.example.json and a copilot-instructions snippet. Verified end
to end (initialize -> tools/list -> tools/call returns real engine output).
- plugins/README.md overview table; main README News + a dedicated SkillOpt-Sleep
section; pyproject lists skillopt_sleep as a first-class package.
Decoupling emphasized throughout: open-source tool (skillopt_sleep/) with zero
dependency on the research package. 29 tests pass; all three shells resolve.
Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
name, description
| name | description |
|---|---|
| skillopt-sleep | Nightly offline self-evolution for a Codex agent. Reviews past sessions, replays recurring tasks, and consolidates validated memory + skills behind a held-out gate. Use when the user wants Codex to learn from past usage, run a "sleep"/"dream" cycle, or schedule offline self-optimization. |
SkillOpt-Sleep (Codex skill)
This skill drives the skillopt_sleep engine — an offline "sleep cycle" that
makes a Codex agent better at the user's recurring work without retraining.
When to use
Trigger when the user wants to: review past sessions, learn their preferences, consolidate feedback into long-term memory/skills, run a nightly/offline self-improvement cycle, or adopt a staged proposal.
How to run it
Invoke the bundled runner via shell (Codex exec has shell access). The runner
finds the engine and a Python ≥ 3.10 automatically:
# point at the repo if it isn't auto-detected from CWD:
export SKILLOPT_SLEEP_REPO=/path/to/SkillOpt-Sleep
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" <action> --project "$(pwd)"
<action> ∈ status | dry-run | run | adopt | harvest. Use --backend codex
for real improvement on the user's own Codex budget (default mock = no spend).
Steps
- Run the requested action; capture stdout.
- For
run/dry-run: read the stagedreport.mdit prints and show the user the held-out baseline → candidate score and the exact proposed edits. runonly stages a proposal under<project>/.skillopt-sleep/staging/; nothing live changes untiladopt. Offer/sleep adopt.- Never hand-edit the user's
AGENTS.md/ skills yourself — onlyadoptdoes, and it backs up first.
Validate
python -m skillopt_sleep.experiments.run_gbrain --backend codex \
--seeds brief-writer --data-root /path/to/gbrain-evals/eval/data/skillopt-v1 \
--nights 2 --limit-replay 3 --limit-holdout 3
A deficient skill goes 0.00 → 1.00 on a held-out set; the optimizer's edits are gated on real-task performance.