karpathy-guidelines
Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid…
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 consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences',
Claude Code
$ npx -y skills add microsoft/SkillOpt --skill skillopt-sleep --agent claude-code
Codex
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a codex -y
Cursor
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a cursor -y
Gemini CLI
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a github-copilot -y
OpenCode
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a opencode -y
Windsurf
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a windsurf -y
name: skillopt-sleep description: "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 consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences', 'consolidate what you learned', 'run the sleep cycle', or wants to schedule background self-optimization. Drives the skillopt_sleep engine: harvest past sessions -> mine recurring tasks -> replay through a selected backend -> consolidate validated CLAUDE.md/SKILL.md behind a held-out gate."
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:
edits; accepted only through a held-out gate; rejected edits are recorded in the run report for review.
inside protected learned blocks; the input is never mutated, and output is reviewed before adoption.
Trigger when the user wants any of:
1. **Harvest** — read `~/.claude/projects/*/<session>.jsonl` + `~/.claude/history.jsonl` (READ-ONLY) → session digests. 2. **Mine** — digests → `TaskRecord`s (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. 4. **Consolidate** — reflect on failures → propose bounded edits → **gate** on a held-out slice; with the default gate enabled, accept only if it strictly improves. 5. **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. 6. **Adopt** — explicit (or opt-in auto): copy staged files over live ones, backing up first.
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)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.
project into the current run's configured targets.
the data-boundary rules below before using one with sensitive sessions.
"${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.
| 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 <
Train agent skills like you train neural networks — with epochs, (mini-)batchsize, learning rates, and validation gates — but without touching model weights.
Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid…
Converts books and documents (PDF, EPUB, DOCX, HTML, Markdown, plain text, RTF, MOBI/AZW with Calibre) into structured agent…
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…