--- name: night-autopilot homepage: https://github.com/cat-xierluo/legal-skills author: 杨卫薪律师(微信ywxlaw) version: "0.2.1" license: MIT description: 无人值守自主推进模式(宿主无关、领域无关)——定时触发下,Agent 自动整理任务、查找下一项、完成或派发、监测 subagent/独立 worker、验收推进并记录交接。适用于代码项目(PR/测试验收)与法律项目(文书核对+律师终审门)等任何有任务源和可定义验收判据的领域。在用户说「我要去睡觉了/今晚继续推进/不间断运行/明早给我结果」并要求定时派发验收时使用。不要用于:单次后台任务(直接派发即可)、用户在场的普通编排(用 multi-agent-orchestration)、一次性定时提醒。 --- # Night Autopilot(无人值守自主推进) 把「用户离开、Agent 通宵推进」固化为可复用循环。**v0.2.0 起宿主无关、领域无关**:定时只是触发器,循环本体是五步通用流程;验收判据按领域参数化(代码型 / 法律型)。 首战实例:dsh-plugins 仓 2026-09-30 夜(ZCode 宿主、15 分钟轮、代码域、六卡交付);泛化需求来自用户同日指示(其他宿主定时机制不同 + 法律项目也要能夜跑)。 **定位与分工**:本 skill 是**自主推进循环层**——任务自组织、定时触发、巡检验收、记录交接。通道选择、派发门禁、worker 纪律以其宿主规则 [multi-agent-orchestration](../multi-agent-orchestration/SKILL.md) 为准;Git/PR 规则用 git-workflow。本 skill 不重复它们的内容。 ## 1. 核心循环(五步,宿主无关) 1. **整理任务**:从任务源自动聚合生成/刷新候选队列——项目 TASKS 文件、issue、会话遗留待办、用户口述。去重、按依赖排序;价值判据自动分桶:**可派**(实现/验证类,交 worker)、**Agent 自留**(研究/调查类)、**需用户**(决策/在场/授权类,只登记不推进);存疑项标记待确认,不猜。 2. **查找下一项**:按桶取件——可派且活跃 worker 未满(默认 ≤3)则派发;只有自留项则本循环自己做;只剩需用户项则转纯巡检记录。 3. **完成或派发**:派发按 orchestration 通道判据选型(中小卡宿主 subagent,独立 worker 场景走其模式表);任务卡自包含(目标/allowed/禁止项/验收命令/交付协议)。 4. **验收推进**:按领域验收判据(§4)核验交付,过则收口(合并/归档/登记),不过则小修闭环或泊车——无人值守期**宁保守**。 5. **记录与交接**:每轮更新队列锚点(状态机:完成/在途/待派/泊车);结束时出三类交接报告(完成/泊车/待用户)。 ## 2. 定时触发层(与循环解耦) 循环本体不含任何定时机制;触发器契约:**输入** = 队列锚点路径 + 安全边界(谁可写/禁碰清单)+ 循环 prompt;**输出** = 锚点状态写回 + 交接产物。满足契约的任意调度器都可驱动。 | 宿主 | 定时驱动 | 状态 | |---|---|---| | ZCode | 内建定时任务(CronCreate/CronUpdate,prompt 注入本循环) | 首战实测 | | Claude Code | **原生 `/goal` 模式**(目标驱动自主迭代,progress/audit 双面)优先;次选 headless CLI(`claude -p --continue`)+ 系统调度 | 待实测(映射规范见本地 TASKS NA-D6) | | Codex | **goal mode**(迭代下一工作单元直至目标达成)优先;次选无头 CLI(`codex exec`)+ 系统调度 | 待实测 | | **OS 级兜底** | cron / launchd 调宿主 CLI 无头入口,参数喂循环 prompt 与锚点路径 | 任何宿主可用 | 兜底路径要点:调度器只负责「到点拉起 Agent + 传参」,循环状态全部落锚点文件(进程无常驻假设);每轮超时自限(如 15 分钟 kill),防调度堆积。 ## 3. 启动前核对(任一不满足不进入) | # | 前提 | 说明 | |---|---|---| | 1 | **用户明确授权** | 无人值守 + 频率 + 大致时长;无授权不得自设定时任务 | | 2 | **任务源可读** | 队列可自动聚合(§1.1),但**安全边界必须成文**:可写范围、禁碰清单(生产环境/他人领地/敏感数据)、交付通道 | | 3 | **验收判据成文** | 按领域选型(§4)并在锚点声明;法律域必须显式列出人工终审门 | | 4 | **恢复锚点落盘** | 队列状态 + rails + 停止条件写入持久文件(会话上下文可能被摘要/重启) | | 5 | **触发器就绪** | 按宿主表建定时任务;睡前报告(已派什么/护栏/醒来会看到什么) | ## 4. 验收判据(领域参数化) **代码型**(默认):全套测试绿 + lint/机械审查 0 FAIL + diff 在 allowed 范围 + NOT_VERIFIED 如实标注。交付形态 = 分支 + PR(Git 规则走 git-workflow)。 **法律型**(文书/检索类任务): - **机械可验层**(Agent 可自动核):核对清单逐项(文书要件齐全)、引用核验(法条/案号与权威库比对——工具如元典幻觉校验)、当事人与案号信息一致性、格式与期限计算复核(日期/金额/次数)、版本与留痕(文件名/修改记录)。 - **人工终审门(不可自动越过)**:律师终审、签署、对外发送(法院/对方/客户)一律留给用户——夜间产出只能是「初稿 + 核对记录 + 晨间审阅清单」。 - 交付形态 = 文件 + 核对记录(不强制 git/PR;有仓则走仓)。 - **数据红线**:实际客户材料默认不进无人值守循环——脱敏/合成先行,涉密材料永远在场处理。 自定义领域按同构扩展:定义「机械可验层 + 人工终审门 + 交付形态」三元组即可。 ## 5. 巡检与 worker 监测 - **双通道**:宿主 subagent 与独立 worker(Orca supervised/terminal-managed/tmux)——完成权威与巡检证据优先级按 orchestration §2 模式表执行,本 skill 不另造。 - **死 worker 判定(双证,2026-09-30 两次实战提炼)**:①会话/输出记录停更(转录 mtime 长期不变)②worktree/产物无进展(文件 mtime 停滞、无 commit)。双证齐 → 判死;单证不判(可能在跑长测试)。 - **处置分级**:完整交付未推送 → PM 独立复验后代交付;半途 WIP → 清理重派(任务卡可重放);同卡连续 2 次失败 → 泊车记录,不盲目重拉。 - **僵尸 UI 条目**:界面显示运行中但任务系统查无此任务——用停止接口验证(返回 No task found 即纯显示残留,刷新即消)。 - **基础设施故障回退**:如 GitHub GraphQL 建 PR 持续报错 → REST API(`gh api repos///pulls`)。 ## 6. 队列锚点模板(标准化) ```markdown ## 授权与 rails 授权(日期+频率+时长)/ 定时任务 id / 领域与验收判据型 / 禁碰清单 / 交付形态 / 停止条件 ## 队列状态(每轮更新) 1. [完成·PR/交付物] 卡名(去向) 2. [在途·workerX] 卡名(要点 + allowed) 3. [自留] 研究项 4. [待派] 卡名(派发前置) 5. [泊车] 卡名(原因 + 证据) 6. [需用户] 事项 ## 巡检日志 - HH:MM 轮:一行结论(做了什么/全静/泊车原因) ``` ## 7. 晨间交接 - 三类汇总:**已完成**(交付物清单+去向)、**泊车**(原因+证据)、**待用户决策**。 - 提醒用户停止定时任务(或用户说停即删);清理一次性资源。 ## 8. 边界与已知限制 - 触发器宿主表中 Claude Code(`/goal`)/ Codex(goal mode)两行为待实测——实测后更新本表与映射规范(NA-D6)。原生模式只替代循环驱动,不替代锚点、验收判据与人工终审门。 - 法律域机械可验层是框架不是清单——具体核对项按项目定制,且**永不把人工终审门自动化**。 - 会话绑定的内建定时器随会话终止而停;跨会话持久调度用 OS 级兜底。 - 额度共享(宿主 subagent 与主会话);每轮时长自限,不做无界长任务。