A Pattern for Running Claude Code on Overnight Unattended Sessions Without Drift

Chain Runner
Run a fixed sequence of skills for N iterations:
bin/skill-chain.py --chain dev-cycle-with-review-looped --loop 10
Each iteration: a dev skill picks the next item from docs/TODO.md, ships it (code + tests + docs in one commit), then a review skill critiques what landed and queues follow-ups in TODO. Standard agent loop made explicit.
Supervisor at Session End
After the loop finishes, a separate skill reads the run's transcripts, evaluates each skill against its stated job, and proposes rewrites to the skill prose itself. With auto-promote on, those rewrites land. Auto-promote off writes them as SKILL.patch.md sidecars for human review.
Single Handoff Contract
Every skill reads docs/SPEC.md (canonical plan) and docs/TODO.md (In flight / Just shipped / Next up) at the start, updates them in the same commit as the code change. No side channels, no second TODO format, no per-skill plan docs. The framework dogfoods this contract on its own development. The contract does most of the drift-killing work.
Additional Features
- Proprietary / transferable split: Skills under
skills/framework/are transferable; each project keeps its proprietary counterpart in.claude/skills/. A sanitization skill checks promotions across that boundary so secrets don't leak. - Schema validation:
bin/validate-frontmatter.pyagainstschema/skill-set.schema.jsonandschema/skill-chain.schema.jsoncatches malformed skills before a chain run. - Optional Telegram steering: Status messages at session start, every iteration boundary, every rate-limit pause/resume, and session end. Queue commands back via
/cmdthat the next iteration drains. - Overnight chain: Loops until failure, budget cap, or Ctrl-C, with a randomized 5min-2h inter-iteration delay so commit cadence stays human-shaped.
Repo
https://github.com/toadlyBroodle/skill-set
📖 Read the full source: r/ClaudeAI
👀 See Also

LLMs Leak Reasoning into Structured Output Despite Explicit Instructions
A developer building a tool that makes parallel API calls to Claude and parses structured output found that validation models intermittently output reasoning text before corrected content, despite explicit instructions to return only corrected text. The fix involved prompt tightening plus a defensive strip function that runs before parsing.

Community-voted Model Leaderboard for OpenClaw Released
A new community-voted leaderboard for models compatible with OpenClaw is now available, with Opus 4.5 currently leading.

git-prism v0.9.0: Give AI Coding Agents Structured Diffs via MCP
git-prism is an MCP server that replaces raw git diff text with structured JSON for AI coding agents. v0.9.0 intercepts git calls at the PATH layer, catching subprocess and gh commands.

Femtobot: Efficient Rust Agent for Low-Resource Environments
Femtobot is a lightweight Rust-based AI agent designed to run efficiently on low-resource machines, such as older Raspberry Pis, through a ~10MB binary without large runtime dependencies.