Skip to content
Back to skills

Night Shift

ASecurity

Unattended overnight runs: while the user sleeps or is away for hours, the agent works through a written to-do list on its own — self-paced /loop wake-ups, one item at a time, sub-agents for the legwork, evidence and a commit for every 'done', the most conservative default for anything it would have to ask about, and a five-part report in the morning. 夜间无人值班:用户睡觉或离开几个小时,让 agent 按一份待办清单自己推进——/loop 自定节奏、一次一项、子代理分工、每项有证据和提交、要拍板的事先用最保守的默认值、早上交五段式报告。用户说「我要睡了 / 出门几小时,你自己接着做」「挂一晚上」「夜间值班」时使用。

  • 75 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentsgit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add Cynthia-wlan9509/offline-game-revival --skill night-shift --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Night Shift?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Night Shift
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cynthia-wlan9509-night-shift/badge)](https://www.skillsdirectory.com/skills/cynthia-wlan9509-night-shift)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: night-shift
description: "Unattended overnight runs: while the user sleeps or is away for hours, the agent works through a written to-do list on its own — self-paced /loop wake-ups, one item at a time, sub-agents for the legwork, evidence and a commit for every 'done', the most conservative default for anything it would have to ask about, and a five-part report in the morning. 夜间无人值班:用户睡觉或离开几个小时,让 agent 按一份待办清单自己推进——/loop 自定节奏、一次一项、子代理分工、每项有证据和提交、要拍板的事先用最保守的默认值、早上交五段式报告。用户说「我要睡了 / 出门几小时,你自己接着做」「挂一晚上」「夜间值班」时使用。"
metadata:
  short-description: 夜间无人值班推进待办
---

# 夜间值班(Night Shift)

用户要睡觉或离开几个小时,想让 agent 在没人回答问题的情况下,自己把一份待办清单往前推。这套机制在 case C(一个停服手游的离线化项目)上跑过两整晚:开跑前人做两分钟检查,之后 agent 自己醒来、干活、记账、停下、写报告。

值班的人不叫醒老板,但每一笔都记在账上。

它不绑定游戏项目。只要有一份待办清单、每项能自动验证(测试、模拟器、截图、日志),就能用。

## 怎么开始

1. 把 [`templates/NIGHT-RUN.md`](templates/NIGHT-RUN.md) 复制进项目(建议 `docs/NIGHT-RUN.md`),把所有 `<占位>` 填掉,尤其是「绝对不做」一节。
2. 人过一遍下面的「开跑前检查」。
3. 在项目的会话里输入,**不给间隔**,让 agent 自己定节奏:

```
/loop 读 docs/NIGHT-RUN.md 并严格按它执行;每次醒来都重新读一遍它
```

之后不用管,回来看 `docs/NIGHT-REPORT.md`。

`NIGHT-RUN.md` 是指令本身。运行时 agent 自己写三个状态文件:`NIGHT-PLAN.md`(计划表,每项一行带状态)、`NIGHT-LOG.md`(一行一件事,带时间)、`NIGHT-REPORT.md`(停止前写的报告)。每次醒来都从这些文件恢复进度,不靠对话记忆,所以上下文被压缩也不会丢进度。

## 开跑前人做的检查(两分钟)

- **权限模式是 auto。** 不是的话,一个确认框就能把整晚卡死。
- **主会话模型**用平时的主力模型,不用最贵那档:整晚大部分是体力活和等待,最强模型的判断优势体现不出来,额度却烧得最快。子代理用便宜的:scout 用最便宜的,worker 用中档。
- **设备**:测试设备开着、在线;别的项目或用户自己在用的设备拔掉,或者在 `NIGHT-RUN.md` 里写明不许碰。
- **电源**:电脑插电。防睡眠 agent 自己会调,但合盖之类的操作要人自己避免。
- **git 基线**:项目最好已经是 git 仓库、工作区干净;不是的话 agent 第一次醒来会 init 并做基线提交,之后每晚都有能回退的点。

## 机制

**每次醒来的固定步骤**(按顺序,不跳):
1. 读 PLAN 和 LOG 最后几十行,弄清上次做到哪;查有没有子会话、子代理或后台命令还在跑。只读 PLAN 引用到的文档章节,不重读大文件。
2. 调 keep-awake,防止电脑睡眠。
3. 查额度。低于阈值(默认 15%)就只做收尾。
4. 查设备在线;不在线按 `NIGHT-RUN.md` 写的办法拉起,两次不行就只做不需要设备的事。
5. 看本地时间,过了截止时间就进停止流程。

**第一次醒来**:建基线(需要时 `git init`、写 `.gitignore`、基线提交),在 LOG 第一行记下开始时间、额度、基线哈希和设备;再从项目的状态文档生成 PLAN。每项写:优先级、做什么、完成标准(状态真的变了,而且重启后还对)、涉及文件、验证方式。排序:先验证「已写未验证」的,再做收益大且独立的新东西,依赖外部条件的放最后。

**执行规则**:
- 一次只开一项,PLAN 里同时只有一项 in_progress。
- 按分工派活:大范围搜索、读长日志、通读反编译产物给 scout;规格已定的实现、补测试、批量改表给 worker;主会话只做判断、定规格、收货和上设备验证。几次工具调用能做完的小活自己做,不拆。
- 派活要写全:目标、背景(文件和行号)、只许改哪些文件、完成标准、交付格式、时限。收货时自己重跑测试、抽查 diff、确认没越界改文件;子代理说「完成了」不算数。
- 并行会话最多两个,只给互不依赖、文件不重叠的实现项。构建脚本、补丁入口、存档结构和这几个状态文件只有主会话能改。
- 验收必须有证据:截图、日志片段或存档 diff,放进 `<证据目录>/<日期>/<事项>/`,路径写进 LOG。没证据就写「已实现,待验证」。
- 同一项连续失败两次,或在它上面耗了一小时,就标 blocked,LOG 里写现象、日志路径和猜测,换下一项。不在一个坑里转圈。
- 每完成一项提交一次,提交信息写清验证状态;新踩的坑追加到项目的坑记录。
- 省上下文:长输出先落盘再让 scout 摘要;大文件不整读;给子会话的 brief 自己写全,不写「见上文」。
- 需要用户拍板的事(资源来源、数值取舍、砍不砍功能、账号和协议):选最保守的默认值继续,记进报告的「待你决定」,不停下来等。

**绝对不做**:模板里是一张按项目填空的清单。至少要写:不碰哪些设备、不用哪些清数据或卸载类命令、哪些目录不许删、不 push 不发布不上传、不改系统设置、子会话上限和不许用的模型、不写「应该没问题」。改用户自己的数据之前先备份,确认备份在了再动。

**停止条件**(任一满足就停 loop):PLAN 全部 done 或 blocked;额度低于阈值;连续三次醒来没有任何事项状态变化;到了截止时间。

**报告**五段,每段要短:
1. 已验证:事项、证据路径、提交哈希
2. 已实现未验证:为什么没验上
3. 阻塞:现象、日志路径、猜测、建议用户怎么查
4. 待你决定:每条写出用了哪个默认值、备选是什么
5. 额度消耗、回来能直接用的产物路径、所有子会话和子代理的名字与状态

**醒来间隔与 noop**:有子会话、子代理或后台命令在跑时,只定一个 1200 秒左右的兜底唤醒,主要靠它们的完成通知叫醒;没有在跑的,做完一项马上做下一项,不为「看一眼」而醒。每次调 `ScheduleWakeup` 都如实填 noop:有事项状态变化才填 false。连续的 noop 会在界面上折叠成一串,用户一眼就能看出它在空转。

## 依赖的环境

下面这些都是 Claude Code 桌面版提供的能力。换到别的环境时缺哪个,按表里的办法退化。

| 能力 | 用来做什么 | 缺了怎么办 |
|---|---|---|
| `/loop`,不给间隔 | agent 自己决定下次什么时候醒 | 用固定间隔(如 `/loop 20m …`),或外部定时任务定时发同一句提示 |
| `ScheduleWakeup` | 安排下次醒来、标 noop、停止循环 | 同上;要停时在 PLAN 顶部写 `stopped`,之后每次醒来读到就直接结束 |
| `request_keep_awake` | 防止电脑睡眠 | 开跑前人手动关掉睡眠 |
| `get_usage` | 查剩余额度、决定是否收尾 | 开跑前人看一眼额度,在 `NIGHT-RUN.md` 里用「最晚几点 / 最多几项」代替额度阈值 |
| `start_session` | 开并行会话 | 退化成子代理 |

纯命令行版本里不能开并行会话:把并行实现项交给后台跑的 worker 子代理,其余规则不变(文件不重叠、最多两个、brief 写全、收货自己验)。另外,从自动唤醒的回合里开会话可能被应用拒绝;case C 两晚实际都只用了子代理。被拒一次就直接退化,不要反复重试。

## 两晚跑出来的经验

- **子代理会卡住。** 一个 scout 跑了 `cat > 文件` 却没给输入,一直在等标准输入;一个 worker 早上 8 点多开工、下午 1 点才交,中间多半在空等。每次醒来查一遍后台任务,超过时限的停掉;主会话手里已经有上下文的活,自己做更快。
- **开始时就记额度。** 第一晚开头没记,早上报告算不出这一晚用了多少。
- **用了用户自己的数据就要还原。** 测试时换掉了用户的存档:先备份、记哈希,停止前逐字节还原,再释放共用设备的登记。
- **用户中途改规矩要落到文件里。** 用户半夜醒来说「手机也可以用」「继续,别停」,就在 PLAN 里加一个带时间的新段落,原话照抄;不要自己推断「那别的应该也可以」。
- **随机点击压测(Android `monkey`)要限定包名,并关掉轨迹球和导航键事件**:`-p <包名> --pct-trackball 0 --pct-nav 0 --pct-majornav 0 --pct-anyevent 0`。模拟器上这些事件会触发系统语音搜索,没有应用接手,把系统进程弄崩,看起来像游戏闪退。
- **「已验证」只放有证据的。** 证据目录按事项编号,报告里直接给路径,用户早上能一项项点开看。

## 效果(case C)

- 第一晚 4 小时 25 分钟:模拟器上验证了 11 项,每项都有截图或日志和一次提交;派了 5 个 worker;结束时 5 小时额度窗口显示用了 51%。
- 另一晚在模拟器上跑随机点击压测,两轮各 3000 次,0 闪退。

Files in this skill

  • SKILL.md9.4 KB
  • templates/NIGHT-RUN.md9.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.