Files
SkillOpt/plugins/devin/README.md
T
khashayar bec23ed020 Add Devin plugin (plugins/devin): MCP server + ATIF-v1.7 harvest
Wires the skillopt_sleep engine into Devin (Cognition) via an MCP server,
following the same thin-shell pattern as plugins/copilot.

- mcp_server.py: stdlib-only stdio MCP server exposing the standard sleep_*
  tools (status, dry-run, run, adopt, harvest). REPO_ROOT defaults to ../.. so
  it finds skillopt_sleep automatically when run from plugins/devin/.
- harvest_devin.py: converts Devin ATIF-v1.7 transcripts, agentmemory, and
  .devin/skills/*/SKILL.md into the Claude Code-compatible JSONL the engine
  consumes; enriches with taskKey + outcome envelopes (hard test/build signal
  or judge rubric). Workspace auto-detection; cross-platform paths.
- judge.py, mcp-config.example.json, devin-rules.snippet.md, README.md.
- plugins/README.md: add Devin to the platform + install tables.

No changes to skillopt_sleep; shells out to `python -m skillopt_sleep` like the
other plugins. Pure stdlib; default backend mock (no API spend).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 10:42:52 +02:00

2.6 KiB

SkillOpt-Sleep — Devin integration

Give Devin (Cognition) a nightly sleep cycle via a tiny MCP server that exposes the skillopt_sleep engine as tools. MCP is Devin's supported way to add custom tooling, so this works in Devin's CLI and IDE.

Devin doesn't write transcripts in the format the engine consumes, so this plugin adds a Devin-specific harvester that converts every locally available source into the Claude Code-compatible JSONL the engine reads.

What's here

File Purpose
mcp_server.py stdlib-only MCP (stdio) server exposing sleep_* tools
harvest_devin.py converts Devin ATIF-v1.7 transcripts + agentmemory + .devin/skills into JSONL, with taskKey + outcome envelopes
judge.py reference judge for the deferred/judge branch of the validation gate
mcp-config.example.json drop-in MCP server config
devin-rules.snippet.md paste into .devin/rules/skillopt-sleep.md

What it harvests

Source Where
Devin transcripts (ATIF-v1.7) ~/.local/share/devin/cli/transcripts/*.json
agentmemory ~/.agentmemory/standalone.json
Skill files .devin/skills/*/SKILL.md

Workspaces are auto-detected from ~/.config/Devin/User/workspaceStorage/*/workspace.json. After sleep_adopt, the evolved skill is synced to .devin/skills/skillopt-sleep-learned/SKILL.md.

Install

Requires Python ≥ 3.10. No third-party packages — the server is pure stdlib.

  1. Register the MCP server. Use mcp-config.example.json as a template; set args to the absolute path of this mcp_server.py. The engine is found automatically (this plugin lives inside the SkillOpt repo). Or via the Devin CLI:

    devin mcp add skillopt-sleep \
      --env "SKILLOPT_DEVIN_CLAUDE_HOME=$HOME/.skillopt-sleep-devin" \
      -- python3 /abs/path/to/SkillOpt/plugins/devin/mcp_server.py
    
  2. (Optional) copy devin-rules.snippet.md to .devin/rules/skillopt-sleep.md so Devin proactively offers the tools.

  3. Ask Devin: "run the sleep cycle", "what did the last sleep propose?", "adopt it".

Tools

Tool What it does
sleep_status nights run so far + latest staged proposal
sleep_dry_run preview cycle — no staging, no changes
sleep_run full cycle; stages a proposal for review
sleep_adopt apply the staged proposal; syncs skill to the workspace
sleep_harvest debug: list the recurring tasks mined

Default backend is mock (no API spend); --backend claude|codex uses your own budget. Same engine as the other plugins — all call python -m skillopt_sleep.