night-autopilot · v0.1.0 · 2026-09-29 · sha256 a5fc4fd5066e3f39

night-autopilot v0.1.0A

Immutable. This exact content never changes and is served at /api/v1/blob/a5fc4fd5066e3f39.

---
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 验证、生产实例操作、付费授权等——这些留在「待用户决策」清单里,夜间不碰。
- 每轮时长自限(巡检+验收+一卡推进),不做无界长任务。