1实现原理 · 为什么它能做到
利用 5 小时窗口的起算语义:窗口从『窗口内第一条请求』起算而非固定时刻轮转,所以额度耗尽后没人发消息窗口就不开始计时;重置后立刻由定时任务代发一条极简消息,把窗口计时的起点藏进睡眠时间。
Claude 订阅的 5 小时用量窗口从**窗口内第一条请求**开始计时,而不是按固定时刻轮转。
定时器本体是一条 detached 后台进程链:caffeinate -is 防睡眠撑住等待期 → sleep N 秒 → cd $HOME → claude -p 发『Reply with exactly: ok』单轮消息,由 Bash run_in_background 启动。
caffeinate -is /bin/sh -c 'sleep <SLEEP_SECONDS> && cd "$HOME" && claude -p "Reply with exactly: ok"'
run_in_background 是关键语义:前台 sleep 会被 harness 拦截;后台 detached 进程不依赖会话存活,且退出时会唤醒原会话形成『双保险』。
**必须 run_in_background**:前台 sleep 会被 harness 拦截;后台任务是 detached 进程,且退出时会重新唤醒当前会话(见 Step 5)。
幂等与读回验证:启动前 ps 检查是否已有同款定时器(有则报告并问是否替换);启动后用 ps 验证进程链三行(sh/caffeinate/sleep)都在。
ps -ef | grep -E 'claude -p "Reply with exactly: ok"' | grep -v grep
时间换算公式化:等待分钟数 = 距重置分钟数 + 5 分钟缓冲;绝对时刻早于/等于当前时间按次日同刻理解(深夜跨零点是常态输入);SLEEP_SECONDS = 等待分钟数 × 60。
换算公式(占位符全文统一):`等待分钟数 = 距重置分钟数 + 5`;`SLEEP_SECONDS = 等待分钟数 × 60`。
收尾核实与取消纪律:到点被唤醒后读任务 output 文件,预期 'ok' + '[exited with code 0]';实际触发时刻以 output 文件 mtime 为准(stat -f '%Sm');取消用特征串 pkill 且明令禁止按秒数杀。
**禁止按秒数 `pkill -f 'sleep <SLEEP_SECONDS>'`**:本机长驻脚本的心跳 sleep 可能恰好同秒数,实测发生过误杀
2核心能力
3外部依赖
| Kind | Dependency / Endpoint |
|---|---|
| cli | claude(官方 Claude Code CLI;claude -p 单轮 print 模式) |
| cli | caffeinate(macOS 防睡眠) |
| cli | sleep / date / ps / pkill / stat(macOS/BSD 系统工具) |
| cli | 宿主 Bash 的 run_in_background 后台任务 + task-notification 唤醒(harness 能力) |
4管控建议与判定依据
- scripts/: 执行本地脚本或命令: agent 在宿主后台执行:caffeinate -is /bin/sh -c 'sleep <S> && cd $HOME && claude -p
- 网络端点: 声明外部网络访问: 经官方 claude CLI 对 Anthropic 发起一次真实订阅 API 请求(claude -p 单轮;这是 skill 的目的本身)
5第二遍独立确认
- [ok] 无自带脚本/资产(纯指令 skill) — glob 确认目录仅 SKILL.md;external_deps/internal_assets 不夸大(asset 列表为空)。
- [ok] caffeinate/sleep/claude -p 命令链存在且为固定模板 — Step 2 代码块逐字存在;命令解剖表逐组件解释;无 shell 拼接注入(数字换算后入占位符)。
- [ok] run_in_background 语义与双保险 — SKILL.md 原文『后台任务是 detached 进程,且退出时会重新唤醒当前会话』与 Step 5『被唤醒本身也是一次 API 请求』一致。
- [ok] 幂等检查与 ps 读回验证 — Step 0 的 ps grep 命令与 Step 3 的三行预期存在;Step 4 交代 output 路径进对话历史。
- [ok] 凭证接触面为零 — token 扫描(API_KEY/token/cookie/secret/Authorization)零命中;无 env/keychain/文件读取。
- [ok] pkill 取消纪律(防误杀) — 禁止按秒数 pkill 的原文与实测误杀背景存在;特征串 pkill 为唯一取消路径。
- [ok] 功能声明 vs 夸大检查 — 『5 小时窗口从窗口内第一条请求起算』是描述性机制声明(对 Claude 订阅语义的表述,标注 2026-08-29 实测);skill 边界(macOS/一次性/不查询重置时刻)自我声明清晰,无越界承诺。
- [ok] 元数据(license/stars/commit) — 仓库级 MIT、stars=1385、pushed_at=2026-09-09T12:33:29Z;本地 HEAD==pin d5c4678cb5d4fd6acc9c922690df035dbd33d247。
6结论
c6f9d07b09144f82…