用途
quota-resilience 处理的是“会话自身用量上限/配额硬停止”。它把这种停止视为一次关停,而不是需要绕开的障碍:重试被阻断的调用、降级方案或“再推一把”只会消耗关停所需的剩余窗口,使续作变得昂贵。该技能用剩余窗口让续作变便宜:提交完成的工作、保持工作树干净、写一份承载状态的说明,并在宿主能够调度时安排一次有界重启。
第一阶段——遇到上限错误时(停止)
硬性规则按顺序执行:
- 停止发起工作。不重试被阻断的调用,不新建子代理,不为被阻断任务做降级替代。
- 打捞工作树:
- 已完成:通过自身检查(测试、lint、构建)或可独立成立(文档、配置)的,用诚实的提交信息提交。
- 未完成:不留下悬空内容。若是有用的基础,以明确标注的 wip: checkpoint 提交;若是噪音则回退。无论哪种,git status 最终干净,下一会话从已提交状态开始,而不是从需要逆向工程 diff 开始。
- 不为“凑完整”而开始新工作。
- 写续作说明 QUOTA-RESUME.md,位于仓库根目录,与打捞提交一起提交。若本会话的 handoff-<session-id>.md(或明确属于该工作的 handoff-*.md)存在,将其内容并入本说明并删除该文件——只留一座桥。不要动其他会话的 handoff 文件。必需章节:
- Goal:一行,任务的完成定义。
- Done:带提交哈希的条目。
- In flight:file:line,已有什么、缺什么。
- Next steps:有序,每条无需重新推导上下文即可执行(准确命令、路径)。
- Verify:证明目标达成的命令。
- Context:已做出的决定;指向计划/规格/任务列表。
- Hops:重启计数器,n/2。每次安排重启时递增;读到 2/2 的停止阶段不得再安排。
- 报告确切状态。最终消息说明已提交什么(哈希)、什么未完成、说明在哪里、如何恢复。绝不用读起来像已完成的表述。
- 提供一次有界重启。重置时间因计划而异且会话内不可知,因此保守调度,并把调度运行本身当作探测:若能执行,说明限制已解除;若不能,则什么也不发生。
- 优先宿主自带调度器。ZCode:工作可等时优先用非高峰队列(不消耗计划配额);否则用一个一次性定时自动化。
- 否则用操作系统调度器驱动 CLI 的无头模式。编码 CLI 可以非交互续作会话,因此本地一次性 cron/launchd/systemd 条目可行。已验证的续作命令(依赖前先查 <cli> --help,参数会随版本变动):
- Claude Code:claude --resume <session-id> -p "<prompt>"(首选,精确恢复被中断会话),回退 claude -c -p "<prompt>"(仅当该目录此后无其他运行才安全)。传无人值守权限集——--permission-mode acceptEdits 加窄范围 --allowedTools——绝不用一键跳过权限,绝不用全量 Bash 允许:Bash 限定到续作所需命令前缀(Bash(git:)、Bash(python3 tests/:))以及本技能自身产物的窄清理命令(rm wrapper/plist/log、launchctl unload、crontab)。
- Codex:codex exec resume --last "<prompt>"。
- OpenCode:opencode run -c "<prompt>"。
- Cursor / Augment / Continue:无已验证的无头续作路径——打印准确的续作说明给用户,不要猜测。
- 把命令包进仓库外每用户目录中的小脚本(例如 "${TMPDIR:-$HOME/.cache}/superskills-quota/resume-<repo>.sh",用 mkdir -p 创建;${TMPDIR:-/tmp} 回退绝不用共享可写的 /tmp,以保持树干净且文件不被其他本地账户替换)。脚本第一动作是在调用 CLI 之前移除自己的调度条目(unload 并删除 plist、剥离 crontab 行),使一次性保证不依赖模型运行成功。然后 cd 进仓库并把输出追加到自身旁边的日志。只注册一次触发:
- Linux(及 WSL):systemd-run --user --on-active=<delay> --unit=quota-resume <script>——临时定时器,无需清理。可用时优先。
- macOS:~/Library/LaunchAgents 下的 LaunchAgent plist,用 StartCalendarInterval 把 Month、Day、Hour、Minute 固定为 <delay> 之后的具体时间——只写时分秒的间隔会每天重复,即重复花费,正是本技能禁止的。不要依赖 at,macOS 默认禁用。
- 最后手段:crontab 行标记 # superskills-quota-resume;续作运行时精确剥离该行,保留其他所有条目——crontab -l | grep -v '# superskills-quota-resume' | crontab -——绝不整体重写 crontab。
- 同意:调度运行是无人值守的模型工作,是一次花费决定。提议将运行什么、何时、大致成本;只有明确同意后才创建。零成本的非高峰路径例外。
- 有界:一次触发,绝不重复。调度提示必须写明:遵循 /quota-resilience——读 QUOTA-RESUME.md,跑 Verify 步骤,按序继续 Next steps,若再次触限,递增说明的 Hops 计数器并最多再安排一跳;到 2/2 则等待用户。
第二阶段——停止后恢复
- 先读 QUOTA-RESUME.md,再探索仓库或重新推导状态。它是在上次会话停止处的权威。
- 用最便宜方式重新验证:在基于声明的状态构建之前先跑说明中的 Verify 命令。
- 按序执行 Next steps。目标达成且验证通过后:删除说明(其存在即表示“被中断”),提交删除,并移除你或上一会话创建的任何续作调度残留(LaunchAgent plist、systemd unit、crontab 行、wrapper 脚本与日志)。
- 恢复中途再次触限 → 回到第一阶段,更新现有说明而不是新增第二份。
边界
- 本技能针对代理自身的计算预算(用量上限、配额耗尽、硬停止)。用户应用收到的 HTTP 429 / 速率限制属于应用行为,应使用 /debug 或 /qa,不是本技能。
- 除上述打捞提交外不做任何变更,且从不推送。