1仕組みと動作原理
5時間枠の起算仕様の活用:枠は固定時刻でのローテーションではなく「枠内の最初のリクエスト」から起算されるため、リセット後に誰も送信しなければタイマーは開始されません。リセット直後にタイマータスクが極小メッセージを代理送信することで、枠の起算点を睡眠時間中に潜り込ませます。
Claude 订阅的 5 小时用量窗口从**窗口内第一条请求**开始计时,而不是按固定时刻轮转。
タイマー本体はデタッチされたバックグラウンドプロセスチェーン:caffeinate -is でスリープを防止して待機時間を維持 → sleep N 秒 → cd $HOME → claude -p で「Reply with exactly: ok」を1ターン送信。Bashの run_in_background で起動します。
caffeinate -is /bin/sh -c 'sleep <SLEEP_SECONDS> && cd "$HOME" && claude -p "Reply with exactly: ok"'
run_in_background が重要な仕様:フォアグラウンドの sleep はハーネスに遮断されます。デタッチされたバックグラウンドプロセスはセッションの生存に依存せず、終了時に元のセッションを起動して「二重の保険」を形成します。
**必须 run_in_background**:前台 sleep 会被 harness 拦截;后台任务是 detached 进程,且退出时会重新唤醒当前会话(见 Step 5)。
冪等性と読み戻し検証:起動前に ps で同種のタイマーが既存か確認(存在する場合は報告して置換するか確認);起動後は ps でプロセスチェーンの3行(sh/caffeinate/sleep)が揃っていることを検証。
ps -ef | grep -E 'claude -p "Reply with exactly: ok"' | grep -v grep
時間換算の計算式化:待機分数 = リセットまでの分数 + 5分のバッファ;現在時刻以前の絶対時刻は翌日の同時刻として解釈(深夜の0時またぎが標準的な入力パターン);SLEEP_SECONDS = 待機分数 × 60。
换算公式(占位符全文统一):`等待分钟数 = 距重置分钟数 + 5`;`SLEEP_SECONDS = 等待分钟数 × 60`。
完了確認と取り消し規律:指定時刻に起床後、タスクの output ファイルを読み込み、「ok」+「[exited with code 0]」を確認;実際のトリガー時刻は output ファイルの mtime(stat -f '%Sm')を正とします。取り消しは特徴文字列による pkill を行い、秒数指定での kill は厳禁とします。
**禁止按秒数 `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/: ローカルスクリプトまたはコマンドの実行: エージェントがホストのバックグラウンドで実行: caffeinate -is /bin/sh -c 'sleep <S> && cd $HOME && claude -p
- 网络端点: 外部ネットワークアクセスの宣言: 公式の claude CLI を通じて Anthropic に対して正規のサブスクリプションAPIリクエストを発行(claude -p の1ターン。これが本スキルの主目的)
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…