night-looplisted
Install: claude install-skill wookat/ai-research-skills
# Night Loop(无人值守夜跑循环)
完整红线见 `shared-references/research-integrity.md`。
"睡觉时做科研"的安全实现:**只自动化有客观停止条件的工作**,裁决类决策留给
早晨的人。提炼自 ARIS 的 auto-review-loop / dse-loop 机制与其安全教训。
## 允许 / 禁止自动循环的边界
**允许(Type-A,机器可判停止条件)**:
- 实验队列执行:baseline 复现、消融矩阵、种子重复、超参 sweep
- 目标导向调优:指标达到阈值 / 收敛 / 预算耗尽即停
- 论文编译修错、图表批量重绘、引用格式统一
**禁止(Type-B,裁决类——夜跑只准备材料,不做决定)**:
- 立项/放弃/pivot 判断、投稿决定(决策卡是人的)
- 评审打分循环(见 cross-model-review:按时钟重评 = 自我开脱)
- 因结果不好而改指标、换数据集、换切分(实验纪律红线,夜里也不例外)
## 循环参数(启动前写入 night_plan.md,人确认后开跑)
| 参数 | 默认 | 说明 |
|---|---|---|
| TIMEOUT | 8h | 总时钟预算 |
| MAX_ITERATIONS | 30 | 评估的配置/实验数上限 |
| PATIENCE | 8 | 连续无改进即早停 |
| OBJECTIVE | 领域模块指标 | 必须机器可判(如 val MSE) |
## 启动前 preflight(硬性检查,任一不过即不开跑)
1. `night_plan.md` 存在且含全部循环参数(TIMEOUT/MAX_ITERATIONS/PATIENCE/OBJECTIVE)
与人类确认记录(谁、何时确认)。
2. git 工作树干净(`git status --porcelain` 为空),或脏文件已列入 night_plan 的
已知例外清单——夜跑绝不能在未提交的手工改动上叠加自动改动。
3. 写入目录白名单已在 night_plan 中列出(如 `night_runs/`、`checkpoints/`、
实验输出目录);循环内一切写操作只落白名单内。
4. 磁盘/显存余量满足预算;不足则缩减计划并在 night_plan 标注。
## 安全铁律
- 禁止:`sudo`、递归删除、删除非本会话创建的文件、覆盖未读过的源文件、
任何 git push/reset、杀死非本会话启动的进程。需要其中任何一项 → 停止并留言。
- **明示边界**:以上禁令是对 agent 的行为约定,不是操作系统级 sandbox——本 skill
不提供技术性隔离。若需要硬隔离(容器、只读挂载、受限用户),由人类在启动前
自行配置,并把配置记入 night_plan.md;不要向用户暗示禁令具有技术强制力。
- 每次迭代前检查磁盘/显存余量;资源不足优雅收尾而不是崩掉半夜的队列。
- 崩溃可恢复:迭代状态落盘(`night_runs/<日期>/state.json`),重启后从断点续跑。
## 每迭代日志(night_runs/<日期>/iteration_log.md)
`迭代号 | 改动的唯一变量 | 预期 | 实际指标 | 判定(改进/退化/持平)| 下一步依据`。
一次只改一个变量的纪律在无人值守时同样生效。
## 晨报(morning_report.md,人醒来后 5 分钟能读完)
1.