claude-skills/engineering/skillopt-sleep/skillopt_sleep/__init__.py
Claude cf6ca763ec
feat(engineering): vendor SkillOpt-Sleep from microsoft/SkillOpt
Verbatim copy of the stdlib-only skillopt_sleep engine + Claude Code
plugin surface (skills/hooks/commands/scripts) into
engineering/skillopt-sleep/. Gives a local agent a nightly gated
self-improvement cycle: read-only harvest of past Claude Code session
transcripts -> mine recurring tasks -> offline replay -> held-out-gated
CLAUDE.md/SKILL.md edits -> staged for explicit /skillopt-sleep adopt.
Nothing live changes without that explicit step.

The heavier skillopt training package (needs numpy/openai/azure-* +
hand-labeled benchmarks per task) was deliberately not vendored, since
it optimizes one narrow scoreable task at a time and doesn't fit this
repo's broad domain-expertise skills or no-ML-in-scripts convention.

Attribution preserved in plugin.json + LICENSE + README.md (MIT,
Microsoft Corporation / Yifan Yang), following the same verbatim-vendor
pattern already used for loop-library/. Registered as its own
marketplace plugin; headline counters in README.md/CLAUDE.md/
marketplace.json trued up via scripts/derive_counters.py --check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TX374i2YGrjNV4Yi3AmaKS
2026-07-08 05:42:44 +00:00

20 lines
826 B
Python

"""SkillOpt-Sleep — nightly offline self-evolution for a local Claude agent.
A Claude Code plugin engine that gives a user's agent a "sleep cycle":
harvest the day's real session transcripts, mine recurring tasks, replay
them offline, and consolidate short-term experience into long-term memory
(CLAUDE.md) and skills (SKILL.md) behind a SkillOpt validation gate.
Synthesizes three ideas:
* SkillOpt — validation-gated bounded text optimization (this repo)
* Dreams — offline memory consolidation, input never mutated
* Sleep — short-term experience -> long-term competence, offline
Public entry points:
* skillopt_sleep.cli — `python -m skillopt_sleep ...`
* skillopt_sleep.cycle.run_sleep_cycle(...)
"""
from __future__ import annotations
__all__ = ["__version__"]
__version__ = "0.2.0"