跳到主要内容
知仓学习社ZHICANG

skillopt-sleep

Use when the user wants their Claude agent to self-improve from past usage, asks about a nightly/offline 'sleep' or 'dream' cycle, memory/skill cons…

不碰外部(只输出文字)无严重或高危命中microsoft/SkillOpt

它会碰到什么

扫了多少1 个文本文件,9 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

SkillOpt-Sleep: usage-driven self-evolution for a local Claude agent

SkillOpt-Sleep gives the user's agent a sleep cycle. On demand or on a

nightly schedule, it reviews real past Claude Code sessions, re-runs recurring

tasks through the selected backend, and consolidates what it

learns into memory (CLAUDE.md) and skills (SKILL.md). With the

default validation gate enabled, it keeps only changes that improve a held-out

score. Live files change only through explicit adoption or a user-requested

--auto-adopt. It aims to improve this user's recurring work, while making

each accepted proposal measurable on the run's held-out tasks,

with no model-weight training. It is the deployment-time analogue of training:

short-term experience → long-term competence.

It synthesizes three ideas:

  • SkillOpt — the skill/memory doc is trainable text; bounded add/delete/replace

edits; accepted only through a held-out gate; rejected edits are recorded in

the run report for review.

  • Claude Dreams — consolidation that reads past sessions and proposes changes

inside protected learned blocks; the input is never mutated, and output is

reviewed before adoption.

  • Agent sleep — periodic background replay turns episodes into durable skill.

When to use this skill

Trigger when the user wants any of:

  • "make my agent learn from how I use it" / "get better the more I use it" / "remember my preferences across sessions"
  • a nightly/scheduled or on-demand offline self-improvement / dream / sleep run
  • to review past sessions/trajectories and distill recurring tasks
  • to consolidate feedback into CLAUDE.md or a managed skill
  • to schedule the cycle (cron) or adopt a staged proposal

The cycle (six stages)

  1. Harvest — read ~/.claude/projects/*/<session>.jsonl + ~/.claude/history.jsonl (READ-ONLY) → session digests.
  2. Mine — digests → TaskRecords (recurring intents + outcome labels + checkable refs where possible).
  3. Replay — re-run tasks through the selected backend under the current

skill+memory → (hard, soft) scores.

  1. Consolidate — reflect on failures → propose bounded edits → gate on a held-out slice; with the default gate enabled, accept only if it strictly improves.
  2. Stage — write the accepted proposed_CLAUDE.md and/or

proposed_SKILL.md, plus report.md, report.json, manifest.json, and

diagnostics.json into <project>/.skillopt-sleep/staging/<timestamp>/.

Nothing live changes. A rejected run still has a report but no proposed

live-file replacement.

  1. Adopt — explicit (or opt-in auto): copy staged files over live ones, backing up first.

How to drive it

Prefer the /skillopt-sleep command. Under the hood it calls the bundled runner:

"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" status                       # what's happened
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" dry-run --project "$(pwd)"    # no-staging preview
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" run --project "$(pwd)"        # full cycle, stages a proposal
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" adopt --project "$(pwd)"      # apply staged proposal (with backup)
  • Default backend is mock (deterministic, no API spend) — good for trying the plumbing.
  • Add --backend claude or --backend codex to spend the user's real budget

for model-driven optimization. A held-out gain is run-specific evidence, not

a guarantee of broader improvement; results depend on the tasks, model, and

checks.

  • Scope defaults to the invoked project; --scope all harvests every Claude

project into the current run's configured targets.

  • A real backend sends truncated transcript/task content to its provider. See

the data-boundary rules below before using one with sensitive sessions.

Scheduling

"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" schedule --project "$(pwd)" --hour 3 --minute 17
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" unschedule --project "$(pwd)"

Installs a nightly cron entry. unschedule --all removes every managed entry.

Common CLI flags

| Flag | Default | Description |

|------|---------|-------------|

| --project PATH | cwd | Project directory to evolve |

| --scope all\|invoked | invoked | Harvest scope |

| --backend mock\|claude\|codex\|copilot\|handoff\|azure_openai | mock | Backend (mock = no provider calls) |

| --model NAME | backend default | Override the model used for replay |

| --source claude\|codex\|auto | claude | Transcript source |

| --lookback-hours N | 72 | Harvest window |

| --max-sessions N | derived | Cap harvested sessions; defaults to 3 × max tasks (120 with current defaults) |

| --max-tasks N | 40 | Cap mined tasks |

| --target-skill-path PATH | ~/.claude/skills/skillopt-sleep-learned/SKILL.md | Explicit SKILL.md to evolve |

| --tasks-file PATH | — | Reviewed TaskRecord JSON (skip harvest) |

| --progress | off | Print phase progress to stderr |

| --auto-adopt | off | Auto-adopt if gate passes |

| --edit-budget N | 4 | Max bounded edits per night |

| --preferences TEXT | empty | Add house rules to the optimizer's reflection prior |

| --json | off | Machine-readable JSON output |

The CLI also has source/runtime path overrides (--claude-home, --codex-home,

and --codex-path) and action-specific flags. Use

python -m skillopt_sleep <action> --help as the authoritative surface.

Config keys (~/.skillopt-sleep/config.json)

Beyond the CLI flags, advanced behavior is controlled via config:

  • preferences — free-text house rules injected into the optimizer's reflect step (e.g. "Always use async/await", "Answers in \boxed{}").
  • gate_modeon (default, validation-gated) or off (greedy, accept all edits).
  • gate_metrichard, soft, or mixed (default). Controls how the held-out gate scores.
  • gate_no_regressionfalse by default. Set to true to reject a candidate when any validation task's configured gate score decreases.
  • dream_rollouts — >1 enables multi-rollout contrastive reflection per task.
  • recall_k — >0 recalls K similar past tasks into the dream (long-term memory).
  • evolve_memory / evolve_skill — independently toggle CLAUDE.md vs SKILL.md consolidation.

Memory consolidation

The sleep cycle can consolidate both:

  • SKILL.md — the managed skill file (bounded edits: add/delete/replace)
  • CLAUDE.md — the project memory (same bounded edits)

With the default gate enabled, both are evaluated by the same held-out score.

Set evolve_memory: false to consolidate only skills, or evolve_skill: false

for only memory.

Hard rules

  • Never hand-edit the user's CLAUDE.md / SKILL.md as part of this skill.

Let the engine's explicit adopt or user-requested --auto-adopt path apply

the staging manifest and back up existing live files first.

  • Harvest is read-only. mock replay has no side effects.
  • Real backends send truncated transcript excerpts and derived tasks to the

selected provider for mining, replay, judging, and reflection. The Claude

transcript path is not guaranteed to remove every secret before those calls.

Review provider policy and session contents first. For sensitive data, use

mock or run harvest --output <file>, inspect/redact the JSON, set

"reviewed": true, and replay it with --tasks-file; real backends refuse an

unreviewed task file.

  • Always show the user the held-out baseline → candidate score and the

exact proposed edits before suggesting adoption. Evidence before adoption.

  • If asked to demonstrate the mechanism without provider calls, run

python -m skillopt_sleep.experiments.run_experiment --persona researcher --json

— a deterministic synthetic demo of held-out lift and gate rejection. It

validates the mechanism, not effectiveness on the user's own tasks.

Validate / demo

# deterministic synthetic demo (no API): score rises and the gate blocks a regression
python -m skillopt_sleep.experiments.run_experiment --persona researcher --assert-improves
python -m skillopt_sleep.experiments.run_experiment --persona programmer  --assert-improves

See the SkillOpt-Sleep documentation

for recorded results, limitations, and the supported integration surface.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 17,158
本站分层T1
该仓技能数5
原文件路径plugins/claude-code/skills/skillopt-sleep/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 5 个技能

同名技能的其他版本

有 5 个不同仓库或目录里都有叫 skillopt-sleep 的技能。它们内容并不相同,别混用:

  • microsoft/SkillOpt — Use when the user wants Codex to self-improve from past usage, asks about a nightly/offlin
  • microsoft/SkillOpt — Use when the user wants Cursor to learn from recent local sessions, asks for an offline sl
  • microsoft/SkillOpt — Use when the user wants the dsh agent to self-improve from past usage, asks about a nightl
  • microsoft/SkillOpt — Reference-only OpenClaw adaptation of SkillOpt-Sleep. Use it to study or port the contribu