用途:Overnight 面向“给一个大目标、离开一段时间、回来看到可运行代码”的场景。它不写代码,而是充当编排者:拆解、派发、监控、合并。
主要能力:
- 拆解:读取项目 CLAUDE.md、README 与关键源码后,把目标拆成尽可能多的单一职责任务。每个任务必须用 EARS 语法(WHEN/IF/WHILE ... THE SYSTEM SHALL),并给出机器可验证的完成命令(成功返回 0),以及 always/ask/never 权限边界。
- 隔离执行:从当前 HEAD 创建 overnight/<日期> 分支,计划写入 overnight-plan.md 并提交;每个任务在独立 worktree 会话中由 worker 执行,主分支不被触碰。
- 编排循环:逐项检查终止条件、派发 worker、轮询 jobs -l 与 git log、评估成功或 BLOCKED、squash 合并到 overnight 分支、清理 worktree、更新计划勾选状态。
- 挖掘更多工作:计划完成后不停止,会跑测试、lint、查 TODO,寻找边界用例、错误处理、集成测试、文档、性能与安全加固等新任务,追加到计划后继续循环。
- 恢复:worker 名称即 session ID,可用 claude -r <name> -p "..." 带完整上下文恢复。
使用方式:以 /overnight 触发,无需审批门。关键命令包括创建分支 git checkout -b "$OVERNIGHT_BRANCH"、派发 claude -w <name> -p "..." --session-id <name> --permission-mode auto --max-budget-usd 5、合并 git merge --squash worktree-<name>、清理 git worktree remove 与 git branch -D。
状态与终止:overnight-plan.md 即状态机,git 历史即审计轨迹。硬停止条件为存在 .overnight-stop 文件(读取后删除)或连续 3 个任务 BLOCKED;结束时统一输出“I'm going to bed too...”。
限制与注意:任务必须单一职责、顺序执行、无前向依赖;完成命令必须机器可验证,不能写“手动验证”;编排者不得自己写代码;质量取决于 CLAUDE.md 质量,缺失时应先创建。资料未提供具体收费、平台支持范围与效果保证。