---
name: night-autopilot
homepage: https://github.com/cat-xierluo/legal-skills
author: 杨卫薪律师（微信ywxlaw）
version: "0.1.0"
license: MIT
description: 无人值守夜间自主推进模式——用户睡前授权后，PM 会话以定时任务驱动「巡检在途 worker → 验收 PR（测试+审查+合并）→ 按队列续派 → 记录泊车」循环，持续把项目往前推，醒来自动获得交接报告。在用户说「我要去睡觉了/今晚继续推进/不间断运行/明早给我结果」并要求定时派发验收时使用。不要用于：单次后台任务（直接派发即可）、用户在场的普通编排（用 multi-agent-orchestration）、一次性定时提醒。
---

# Night Autopilot（夜间自主推进）

把「用户睡觉、PM 通宵干活」固化为可复用流程。首战：dsh-plugins 仓 2026-09-30 夜（15 分钟轮、宿主 subagent worker、两卡在途起步，用户授权全晚连续运行）。

**定位与分工**：本 skill 是**场景编排层**——定时节奏、队列锚点、验收收口、晨间交接。通道选择、派发门禁、worker 纪律、清理协议一律以其宿主规则 [multi-agent-orchestration](../multi-agent-orchestration/SKILL.md) 为准；Git/PR 规则用 git-workflow。本 skill 不重复它们的内容。

## 1. 启动前核对（任一不满足不进入夜间模式）

| # | 前提 | 说明 |
|---|---|---|
| 1 | **用户明确授权** | 无人值守 + 巡检频率（默认 30 分钟，用户可改）+ 大致时长（过夜）。无授权不得自设定时任务 |
| 2 | **工作队列已盘点** | 可派卡与需用户项分离；卡片须过价值判据（实现类/可复用验证类可派 worker；纯调查/研究类 PM 自留）；每卡有 allowed files 与验证命令 |
| 3 | **安全边界成文** | 生产环境（如真实桌面/服务器）、主检出归属（并行会话）、禁改目录、禁装依赖、禁发布——写进 worker prompt 与队列锚点 |
| 4 | **交付通道明确** | worker 只交 PR 不合并；PM 独立验收（角色分离）后才合并 |
| 5 | **恢复锚点落盘** | 队列状态（在途/待派/泊车/完成）写入持久文件——会话上下文可能被摘要，锚点必须独立可恢复（项目记忆文件或仓库内 notes） |

## 2. 启动序列（用户睡前完成，五步）

1. **加载 SOP**：读 multi-agent-orchestration，按其通道判据选型——中小任务卡（≤1h）、质量敏感、宿主额度充裕时**宿主 subagent 首选**（无进程/分支开销，完成权威=PM 验收）。
2. **建定时任务**（CronCreate 或宿主等价物）：
   - 频率按用户（如每 15 分钟：cron `*/15 * * * *` + intervalUnit minute + interval 15）；title 带自然语言频率（改频率时 title 同步改）。
   - prompt 用 §3 模板，必须自包含（不假设用户在场回答问题）。
3. **写队列锚点**：持久文件记录队列状态 + rails + 停止条件（模板见 §5）。
4. **立即派发首批 worker**（睡前把机器跑起来）：每卡一个后台 subagent，prompt 含任务卡/allowed files/禁止项/scoped 验证命令/交付协议/四段自陈模板。活跃 worker ≤3、PM 待验收 >2 时停止扩波。
5. **睡前报告**：已派什么、护栏是什么、早上会看到什么（完成/泊车/待决策三类）。

## 3. 每轮巡检模板（cron prompt 骨架）

按序执行，全部走工具调用，不向用户提问：

1. **在途巡检**：非阻塞查后台 worker 状态。
2. **验收完成的**：读报告与 PR → diff 范围核对（allowed files 内）→ 跑全套测试 + 机械审查/lint → **全过才合并** + 删远端分支 + 同步本地 main + 更新任务源；不过则在 worker 分支上修（小修）或留 PR 评论待晨审（夜间宁保守）。
3. **续派检查**：活跃 <3 且待验收 ≤2 时，从锚点队列取下一卡派发。
4. **PM 自留项**：研究/巡检类（如上游版本差异、并行会话 PR 审查）——不派 worker，PM 轮内自己做或推进。
5. **纪律执行**：越界/停滞/失败按退避处理（worker 连续 2 次同类失败 → 泊车记录，不盲目重拉）；不可判定 → 记录后跳过。
6. **更新锚点**：每轮结束写回队列状态；队列只剩需用户项 → 本轮只巡检记录，不空转派发。

## 4. 验收纪律（夜间与白天的差别）

- **合并标准不降**：全套测试绿 + lint 0 FAIL + diff 在范围 + 声明如实（NOT_VERIFIED 不拔高）。夜间无人兜底，**宁可留 PR 待晨审，不勉强合并**。
- **小修闭环**：验收发现小问题，PM 在 worker 分支补修后重验（注明）；大问题整卡泊车。
- **每完成节点即提交**（合并/泊车都落账），锚点随时反映真实状态。

## 5. 队列锚点模板

```markdown
## 夜间运行授权与 rails
授权（日期+频率）/ 禁碰清单（生产环境、主检出归属、禁改目录）/ worker 纪律（专属 worktree + 基线 + PR 交付 + 合并即删）/ 停止条件。定时任务 id。

## 工作队列状态（每轮更新）
1. [在途·workerX] 卡名（要点 + allowed）
2. [PM 自留] 研究项（已知线索）
3. [待派] 卡名（派发前置）
4. [巡检项] 依赖项（如并行会话 PR）

## 停止条件
只剩需用户项时只巡检；用户醒后删除定时任务。
```

## 6. 晨间交接

- 汇总三类：**已完成**（PR 列表+去向）、**泊车**（原因+证据，通常是验收不过/语义不可判定/依赖未出现）、**待用户决策**。
- 提醒用户删除定时任务（或用户说停即删）。
- 清理一次性资源：worker worktree、已删分支残留。

## 7. 边界与已知限制

- **会话绑定**：定时任务属当前会话，会话终止即停（不自称持久控制器；跨会话持久调度需宿主级方案）。
- **额度共享**：宿主 subagent 与 PM 共享额度，撞限时在途全灭——巡检发现额度停滞按 multi-agent-orchestration 的 429 恢复纪律退避。
- **不能做需用户在场的事**：GUI 验证、生产实例操作、付费授权等——这些留在「待用户决策」清单里，夜间不碰。
- 每轮时长自限（巡检+验收+一卡推进），不做无界长任务。
