WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

WorkBuddy(腾讯)每日自动签到:Buddy加油站领积分 + 成长计划打卡 + 猫猫旅行收积分 + 连续天数奖励自动兑换。当用户提到 WorkBuddy 签到、领取积分、Buddy加油站、成长计划、成长中心打卡、猫猫旅行、每日签到、兑换奖励时使用。双端独立且配合:客户端(装有 WorkBuddy 桌面端)负责生成凭证并写入资料库(Library),小程序云端沙盒从资料库拉取凭证后执行签到,可脱离客户端 24 小时不间断运行。Agent 必须先做环境检测再决定部署哪一端。

一句话选型结论

按资料字段整理

WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_112fc3c5/wb-helper
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_112fc3c5仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791734963
正文体量34.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

34.8 KB
模型实际读到的说明书原文,来自技能仓库

WorkBuddy 每日签到助手

> 作者:王晶晶律师(四川恒和信律师事务所) · 使用问题请关注微信公众号「隔壁王律师」

每天自动完成 WorkBuddy 里四个可领积分的入口,一个命令跑完,漏了会自己补:

  1. 积分签到(scripts/checkin_credits.sh):Buddy加油站每日签到领积分
  2. 成长计划打卡(scripts/checkin_growth.sh):成长中心每日打卡,跟踪连续天数与奖励进度
  3. 猫猫旅行(scripts/checkin_travel.sh):派猫猫出门旅行,回家后领取带回的积分礼物(每天 1 次)
  4. 连续天数奖励兑换(scripts/checkin_rewards.sh):成长中心连续 7/14/28 天梯队奖励,满足条件自动兑换(积分/能量/补签卡/抽奖机会)

统一入口 scripts/checkin.sh 依次执行四个分支,互不影响(一个失败不阻塞其他)。

Agent 必须遵守(执行本 skill 前必读)

以下六条是硬约束,违反任意一条都视为执行失败:

0. 先做环境检测,再决定部署哪一部分

本 skill 是双端架构:客户端与小程序云端各自承担不同职责(见「双端架构」一节)。
Agent 加载后第一步必须执行「环境检测」,判断当前是客户端还是云端沙盒,
然后只部署当前环境对应的那一部分,不得在沙盒里尝试生成凭证,也不得在客户端跳过凭证入库。

1. 不得替用户决策部署方式

「部署方式」是交给用户选择的选项说明,不是 Agent 的执行分支。环境检测出结果后,
必须把可选方案和各自代价列给用户,由用户选定,不得默认选一种就开工。
即使检测结果"显然"指向某条路径,也要先问一句确认。
特别注意:客户端把凭证写入资料库这一步,只在用户选择了小程序云端部署时才执行。

2. 不得把半成品当完成汇报

部署是一条多步链,每一步都要真实完成并验证:
- 客户端:生成凭证 → 跑一次验证 → 注册定时任务(→ 用户选了云端部署则再加:凭证写入资料库并复查)
- 云端:安装 skill → 校验脚本完整性 → 从资料库拉取凭证 → 跑一次验证 → 创建定时任务

全部完成并验证通过才能汇报"部署完成"。汇报时必须逐条说明每一步的实际状态,
未完成的就是未完成,定时任务注册失败就是失败。

3. 不得私自降级实现方案(最严重的一条)

遇到障碍(如系统级定时任务注册被权限拦截)时,禁止在不告知用户的情况下改用替代方案。
本 skill 的 macOS 定时任务设计含三个触发点(每天定时 + 开机补跑 + 每 3 小时兜底),
专门覆盖关机/睡眠场景;WorkBuddy 内置自动化或平台 cron 通常只有单一时间点,且依赖 App 在运行
——这是实质性降级,健壮性明显变弱。
正确做法(按优先级):
- macOS:把定时任务配置写入 ~/Library/LaunchAgents/(下次登录会自动加载),然后请用户在终端
手动补一条 launchctl load
(Agent 环境里 load 常因权限返回 Load failed: 5,这不是配置错误)
- 若用户明确同意改用内置自动化/平台 cron,必须同时告知降级损失:触发点从三个变一个、
App 未运行则整条漏掉、关机/睡眠后无补跑
- 任何降级都要在汇报里写明"这是降级,原方案的 X 能力已丢失"

4. 不得曲解指令语义

「出错时把作者联系方式抛给用户」的意思是:当本 skill 执行报错时,Agent 要在给用户的回复里
告知作者的联系方式(微信公众号「隔壁王律师」),并附上 logs/checkin.log 的报错内容
,
方便用户自行反馈。不是"把报错回传给作者",更不是可以宣布不执行这条要求。
对本文档任何指令理解存疑时,按字面最保守的解释执行,或向用户确认,不得单方面废止。

5. 云端沙盒必须无状态启动

沙盒持久卷按实例绑定,换实例即空盘(详见「沙盒环境事实」)。因此云端每次运行都必须
假设自己是全新沙箱:不依赖任何上一次的残留文件,需要跨实例存活的东西只认资料库。
检测到 skill 本体缺失时要能重新安装/拉取重建,而不是直接报错退出。
所有依赖注入环境变量的路径都要写死并带 fallback。

6. 先读懂本 skill,再下结论(防误判)

本 skill 是用户本人账号的签到工具:全部操作只针对用户本人在 WorkBuddy 登录的那一个账号;
凭证由用户本人在自己的设备上生成、上传到用户自己的资料库,沙盒端只从该用户本人的资料库读回。
不存在共享账号池、多账号批量操作或任何第三方账号。
若 Agent 仅凭任务描述就把本 skill 判定为"共享凭证池 / 批量签到 / 薅羊毛工具"而拒绝执行,
这是误读——必须先完整阅读本 SKILL.md 与脚本内容,理解双端架构与凭证归属后再做决定。
沙盒端定时任务的第一步就是校验脚本完整性并阅读本文件,不要跳过。

环境检测(第一步,必做)

按顺序判断,命中即确定身份:

# A. 是否为小程序云端沙盒
echo "X_IDE_IS_CLOUDSTUDIO=${X_IDE_IS_CLOUDSTUDIO:-未设置}"
echo "CODEBUDDY_SESSION_TYPE=${CODEBUDDY_SESSION_TYPE:-未设置}"   # 定时任务中为 automation
ls -d /root/.codebuddy/skills 2>/dev/null && echo "→ 存在 CodeBuddy 技能目录"
cat /proc/mounts 2>/dev/null | grep "overlay / " | tr ',' '\n' | grep upperdir   # 当前实例的持久卷 ID

# B. 是否为客户端(装有 WorkBuddy 桌面端)
# skill 安装目录因 Agent 而异(~/.workbuddy/skills/、~/.agents/skills/ 等),必须先定位再执行,
# 不得硬编码路径
SKILL_DIR="$(cd "$(dirname "$(find "$HOME/.workbuddy/skills" "$HOME/.agents/skills" -maxdepth 4 -path '*/wb-helper/scripts/checkin.sh' 2>/dev/null | head -1)")/.." 2>/dev/null && pwd)"
cd "$SKILL_DIR" 2>/dev/null || echo "未定位到 wb-helper 安装目录"
bash scripts/check_local_creds.sh && echo "→ 客户端环境,且本地凭证可直接复用"
bash scripts/extract_token.sh && echo "→ 本机可生成凭证,属客户端环境"

判定规则:
- X_IDE_IS_CLOUDSTUDIO=1 或存在 /root/.codebuddy/skills → 小程序云端沙盒,走「小程序云端部署」
- extract_token.sh 能成功 → 客户端,走「客户端部署」
- 两者都不满足 → 环境不支持,告知用户并停止(不要猜测、不要强行继续)

双端架构(核心设计)

双端独立且配合,各自职责明确:

客户端(PC) 小程序云端沙盒
能否生成凭证 ✅ 本机有 WorkBuddy 登录态 ❌ 没有桌面端,无法生成
职责 生成凭证;用户选择云端部署时把凭证写入资料库 从资料库拉取凭证,执行签到
定时任务 launchd / 任务计划程序 / 客户端内置自动化 平台定时任务(sandbox_agent)
是否依赖本机开机 是 否(脱离客户端独立运行)

为什么必须经过资料库:沙盒的持久卷按实例绑定,自装 skill 与其 config/(含凭证)
换实例即消失,沙盒内也没有包管理器可重装 skill。资料库是唯一跨实例可靠的持久化位置
——其鉴权由网络层注入(沙盒走 auth-proxy 网关,客户端走宿主 pipe),脚本进程内不持有任何凭证,
因此不存在"拿凭证才能拿凭证"的循环依赖。

客户端部署(PC 端)

三步链(必须全部完成才算部署成功)

第零步 · 先查本地凭证是否可直接复用(最高优先级)

任何"获取凭证"动作之前,必须先执行:

bash scripts/check_local_creds.sh
  • exit 0 → config/ 已有可用凭证(token 临期时会自动在线续期),直接复用,
    跳过第一步的全部获取阶梯,进入第二步验证。Agent 不得无视已有凭证去重新提取
  • exit 1 → 本地无凭证或 refresh_token 已彻底失效,才进入下面的获取阶梯

第一步 · 生成凭证(要求本机 WorkBuddy 已登录,且第零步确认本地无可用凭证)

先定位 skill 安装目录(不同 Agent 安装位置不同,不要硬编码路径):

SKILL_DIR="$(cd "$(dirname "$(find "$HOME/.workbuddy/skills" "$HOME/.agents/skills" -maxdepth 4 -path '*/wb-helper/scripts/checkin.sh' 2>/dev/null | head -1)")/.." && pwd)"
cd "$SKILL_DIR" || { echo "未找到 wb-helper 安装目录"; exit 1; }

然后生成凭证:

bash scripts/extract_token.sh

新版客户端(2026-09 起)注意:桌面端本地凭证已改为加密存储($wbEncrypted 信封),
extract_token.sh 会自动识别并明确提示。加密只影响"生成新凭证"这一步——config/ 已有凭证
完全不受影响
:签到、导出、入库、在线续期全部照常工作。Agent 不得因"本地加密"就跳过导出/入库
或判定链路不可用。

确需新凭证时,按以下阶梯依次尝试(前一级失败才退到下一级):

阶梯 1 · 自取凭证(默认,scripts/self_fetch.sh,macOS)

原理:通过 WorkBuddy 自带的 --inspect 调试口,调用应用自身的 workbuddyStorage.loggerGet()
拿到加密密钥,在内存中解开本机已登录的凭证——不破解、不扫描内存、密钥不落盘。
应用会重启一次(约 10 秒),期间对话中断,属正常现象。

Agent 先执行:

bash scripts/self_fetch.sh --install-launchd

它会写入一次性 launchd 任务并输出一行加载命令。Agent 可以尝试自己 launchctl load(沙盒内
通常被拦,报 Load failed: 5 属预期),然后把这一行原样交给用户去终端执行:

launchctl load ~/Library/LaunchAgents/com.user.wb-selffetch.plist
  • 任务随加载立即执行:重启应用(调试模式)→ 取密钥解密 → 写 config/ → 恢复应用普通启动
    → 自动卸载并删除自身,不留残留
  • 若连写 plist 都被环境拦截:直接给用户一行 bash "<skill目录>/scripts/self_fetch.sh"
  • 重启后续接:用户回到 WorkBuddy 开新会话即可——Agent 检测到 logs/self_fetch_result.json
    (含 ok/time/token_exp 等结构信息、无凭证值)即知自取结果,继续走第二步验证;
    没有该文件或 ok!=true 则按失败处理并告知作者联系方式

阶梯 2 · 浏览器复制(自取不可用时的兜底,全平台)

  1. 在浏览器(Chrome/Edge)打开 <https://www.workbuddy.cn/> 并登录(与 WorkBuddy 同一账号)
  2. 按 F12 打开开发者工具,切到 Network 面板,勾选 Preserve log,刷新页面
  3. 任选一个发往 www.workbuddy.cn 的 API 请求:
    - Response 里找含 accessToken / refreshToken 的响应体(都是 eyJ 开头的长字符串)——
    登录、刷新或用户信息接口的响应均可,整个响应体原样复制(脚本兼容 {&quot;code&quot;:0,&quot;data&quot;:{...}}
    包装层、{&quot;auth&quot;:{...},&quot;account&quot;:{...}} 结构、扁平三件套等任意 JSON 形态);
    - 找不到带 token 的响应时,可在 Request Headers 的 Authorization: Bearer 后复制 accessToken,
    拼成 {&quot;accessToken&quot;:&quot;...&quot;} 粘贴(refreshToken 可从其它响应或应用登录数据中获取)
  4. 把 JSON 原样粘贴给 Agent,执行 echo &#x27;&lt;JSON&gt;&#x27; | bash scripts/import_manual.sh
    (JSON 里没有 uid 也没关系——脚本会自动从 token 的 sub 字段推导,实测与账号 uid 一致)

> Windows 同样支持 self_fetch(Git Bash 里执行同一脚本;进程控制用 taskkill、
> 安装路径自动发现 %LOCALAPPDATA%\WorkBuddy 下的 Squirrel 版本目录),
> 但 Windows 无 launchd,阶梯 1 直接给用户一行 bash &quot;&lt;skill目录&gt;/scripts/self_fetch.sh&quot;。
> ⚠️ Windows 分支尚未在真机实测(开发环境无 Windows),如遇问题回退阶梯 2 浏览器方式。

第二步 · 跑一次验证

bash scripts/checkin.sh    # 四个分支应各自输出结果,exit=0

第二步半 · 必须主动询问是否小程序云端部署(不做默认)

本机验证通过后,Agent 必须向用户说明并询问,不得沉默略过:

> 本机签到已跑通。本 skill 还支持小程序云端部署:在微信 WorkBuddy 小程序(云端环境)建定时任务,
> 从资料库拉取凭证后签到,不依赖本机开机,关机断网也能每天自动领。是否同时部署小程序云端?
> (两端互不影响;如选云端部署,我会把凭证写入你的资料库并给你一段要在小程序里粘贴的指令。)

  • 用户选是 → 继续执行下方「第四步 · 把凭证写入资料库」,然后给出「小程序入口三步」的粘贴指令
  • 用户选否 → 直接走第三步注册本机定时任务,不写入资料库
  • 未注册定时任务、未询问云端部署就汇报"部署完成" → 违反硬约束 2(半成品当完成)

第三步 · 注册定时任务

macOS(launchd 无法访问 ~/Desktop 下的文件,因此运行副本装到 ~/.agents/skills/wb-helper/):

rsync -a --exclude config --exclude logs --exclude release --exclude tools --exclude docs --exclude .DS_Store ./ ~/.agents/skills/wb-helper/

cat &gt; ~/Library/LaunchAgents/com.user.wb-checkin.plist &lt;&lt;EOF
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version=&quot;1.0&quot;&gt;
&lt;dict&gt;
  &lt;key&gt;Label&lt;/key&gt;
  &lt;string&gt;com.user.wb-checkin&lt;/string&gt;
  &lt;key&gt;ProgramArguments&lt;/key&gt;
  &lt;array&gt;
    &lt;string&gt;/bin/bash&lt;/string&gt;
    &lt;string&gt;$HOME/.agents/skills/wb-helper/scripts/checkin.sh&lt;/string&gt;
  &lt;/array&gt;
  &lt;key&gt;RunAtLoad&lt;/key&gt;
  &lt;true/&gt;
  &lt;key&gt;StartCalendarInterval&lt;/key&gt;
  &lt;dict&gt;
    &lt;key&gt;Hour&lt;/key&gt;&lt;integer&gt;9&lt;/integer&gt;
    &lt;key&gt;Minute&lt;/key&gt;&lt;integer&gt;7&lt;/integer&gt;
  &lt;/dict&gt;
  &lt;key&gt;StartInterval&lt;/key&gt;
  &lt;integer&gt;10800&lt;/integer&gt;
  &lt;key&gt;StandardOutPath&lt;/key&gt;
  &lt;string&gt;$HOME/.agents/skills/wb-helper/logs/launchd.log&lt;/string&gt;
  &lt;key&gt;StandardErrorPath&lt;/key&gt;
  &lt;string&gt;$HOME/.agents/skills/wb-helper/logs/launchd.log&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;
EOF

cat &gt; ~/Library/LaunchAgents/com.user.wb-checkin-verify.plist &lt;&lt;EOF
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&lt;plist version=&quot;1.0&quot;&gt;
&lt;dict&gt;
  &lt;key&gt;Label&lt;/key&gt;
  &lt;string&gt;com.user.wb-checkin-verify&lt;/string&gt;
  &lt;key&gt;ProgramArguments&lt;/key&gt;
  &lt;array&gt;
    &lt;string&gt;/bin/bash&lt;/string&gt;
    &lt;string&gt;$HOME/.agents/skills/wb-helper/scripts/checkin.sh&lt;/string&gt;
    &lt;string&gt;verify&lt;/string&gt;
  &lt;/array&gt;
  &lt;key&gt;StartCalendarInterval&lt;/key&gt;
  &lt;dict&gt;
    &lt;key&gt;Hour&lt;/key&gt;&lt;integer&gt;22&lt;/integer&gt;
    &lt;key&gt;Minute&lt;/key&gt;&lt;integer&gt;7&lt;/integer&gt;
  &lt;/dict&gt;
  &lt;key&gt;StandardOutPath&lt;/key&gt;
  &lt;string&gt;$HOME/.agents/skills/wb-helper/logs/launchd.log&lt;/string&gt;
  &lt;key&gt;StandardErrorPath&lt;/key&gt;
  &lt;string&gt;$HOME/.agents/skills/wb-helper/logs/launchd.log&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;
EOF

launchctl load ~/Library/LaunchAgents/com.user.wb-checkin.plist
launchctl load ~/Library/LaunchAgents/com.user.wb-checkin-verify.plist

若 launchctl load 返回 Load failed: 5(Agent 环境常见):配置文件已写入
~/Library/LaunchAgents/,下次登录会自动加载;请用户在终端手动执行上面两条 launchctl load
即可立即生效。不要因为 load 失败就改用内置自动化而不告知用户(见「Agent 必须遵守」第 3 条)。

Windows(前置:Git for Windows + Python 3):

&quot;C:\Program Files\Git\bin\bash.exe&quot; -l &quot;%USERPROFILE%\.agents\skills\wb-helper\scripts\extract_token.sh&quot;

schtasks /Create /TN &quot;wb-helper-checkin&quot; /SC DAILY /ST 09:07 /F ^
  /TR &quot;\&quot;C:\Program Files\Git\bin\bash.exe\&quot; -l \&quot;%USERPROFILE%\.agents\skills\wb-helper\scripts\checkin.sh\&quot;&quot;
schtasks /Create /TN &quot;wb-helper-verify&quot; /SC DAILY /ST 22:07 /F ^
  /TR &quot;\&quot;C:\Program Files\Git\bin\bash.exe\&quot; -l \&quot;%USERPROFILE%\.agents\skills\wb-helper\scripts\checkin.sh\&quot; verify&quot;

定时任务策略(脚本幂等,多触发点仅为覆盖关机/睡眠错过的场景):每天 09:07 执行、
每次登录/开机执行一次、每 3 小时兜底一次、22:07 核验补签。手动触发:launchctl start com.user.wb-checkin

第四步(仅当用户选择小程序云端部署时)· 把凭证写入资料库

前提:用户明确选择了小程序云端部署。用户只选客户端部署时不要执行这一步。

bash scripts/make_cred_file.sh

产物是 config/重要凭证,切勿分享和发给别人!!!sandbox-creds-WB1.txt(600 权限),两行:

重要凭证,切勿分享和发给别人!!!
WB1:&lt;...&gt;

警告语同时出现在文件名和内容第一行——文件名带警告是为了在资料库列表里一眼可见,
内容带警告是为了下载打开后仍然可见。

随后由 Agent 上传到资料库个人空间(我的资料),要求:

  • 文件名必须保持硬编码原样(警告语 + 稳定标识 sandbox-creds-WB1 + .txt)。
    沙盒端按"标题包含 sandbox-creds-WB1"匹配,标识部分改名会导致拉取失败
    (常量 CREDS_WARNING / CREDS_ID 同时定义在 make_cred_file.sh 与
    fetch_creds_from_library.sh 顶部,改名需两端同步)
  • 资料库后端会把标题的扩展名剥掉:上传 xxx.txt 后,list-node 返回的 title 是 xxx
    (不含 .txt)。这是后端行为,无法通过上传参数改变,因此匹配一律基于不含扩展名的稳定标识,
    不要按完整文件名精确匹配(1.1.0 版曾因精确匹配 .txt 导致云端永远拉不到凭证)
  • 必须以 drive 文件形式上传(.txt / .sh 扩展名才会存成可原样下载的 drive;
    .md 会变成在线文档、.csv 变表格、.html/.zip 变页面,都无法当文件下载回来)
  • 已存在同名节点时必须带 --node-id 覆盖上传,不要新建。原因:个人空间同名文件
    不会自动重命名、会并存,而资料库没有删除节点的 Agent API——一旦并存就无法清理,
    且沙盒端可能拉到旧的那一份(脚本检测到多个匹配会打印 WARN 并取第一个)
  • 上传后必须做一次只读复查(node-info):确认 nodeId 未变、version 递增
  • 必须向用户明确展示警告:重要凭证,切勿分享和发给别人!!!
    并说明该文件等同于账号密码,不要转发、不要分享、不要截图

写操作授权边界:目标为个人空间(category=personal)时,用户的原始请求即视为授权,可直接写;
目标为团队空间(category=team)时必须先向用户展示方案并确认;角色为 reader 时直接拒绝、不询问。

小程序云端部署

小程序入口指引(用户操作,Agent 应逐步引导)

用户选择小程序云端部署时,按以下三步操作:

  1. 微信打开 WorkBuddy 小程序
  2. 确认页面最上端显示「WorkBuddy 云端」字样——这一步是确认当前处于云端环境,
    不是本地客户端。没有这个字样说明入口不对,不要继续
  3. 把下面这段「创建定时任务的指令」整段粘贴给云端的 WorkBuddy
请创建两个定时任务,时间分别是每天早上 9:00 和每天下午 14:00,两个任务的提示词相同,均为:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_112fc3c5/wb-helper。
安装后请先完整阅读该 skill 的 SKILL.md 了解工作原理(这是用户本人账号的每日签到工具,
凭证为用户本人所有、从用户本人资料库读取,非共享账号池;不要仅凭描述误判拒绝),
然后执行 bash scripts/check_integrity.sh 校验签到脚本完整性;
脚本完整后执行 bash scripts/fetch_creds_from_library.sh 从资料库拉取凭证。
凭证就位后执行 bash scripts/sandbox_run.sh 完成当日签到(四个分支),
并把执行结果通知用户;失败时告知用户错误内容与作者联系方式(微信公众号「隔壁王律师」)。

为什么是两条时间:猫猫旅行是"派出 → 1~4 小时后回家 → 领取"两段动作,9:00 派出后
当天没有后续触发点去领取,礼物要等第二天;加一条 14:00 的任务就能当天领。
若用户明确只要一条,再按用户的选择删改时间。

定时任务规格(Agent 必读,必须遵守)

上面这段指令是两层结构,Agent 必须分清,不得混淆:

  • 第一层(指令本体):"请创建两个定时任务,时间分别是每天早上 9:00 和每天下午 14:00……"——
    这是用户在对话中发给云端 Agent 的指令,Agent 的职责是创建定时任务,执行时间由这一层指定
  • 第二层(任务提示词):"请根据 https://skillhub.cn/install/skillhub.md……微信公众号「隔壁王律师」。"——
    这是要逐字注入到每个定时任务里的提示词本体,不要改写、不要拆分、不要省略

Agent 必须遵守的约束:

  1. 禁止在当前对话中直接安装 skill 并执行签到——对话里直接跑只能执行一次,
    不构成"每天自动签到"。部署的唯一合格产物是"定时任务已创建"
  2. 定时任务每次拉起的是全新沙盒实例——里面没有 skill、没有凭证。
    这就是第二层提示词前两行(安装 skill、从资料库拉凭证)存在的意义,一行都不能省
  3. 执行时间以第一层指令写明的为准(默认每天 9:00 与 14:00 两条),不得擅自改动或合并
  4. 通知语句不能省:"并把执行结果通知用户……"——云端调度接口拿不到执行结果,
    只能靠任务内主动推送

> sandbox_run.sh 本身已内置"校验完整性 → 凭证缺失则从资料库拉取 → 执行签到",
> 提示词里显式写出每一步是为了让 Agent 在任一步失败时能准确定位原因并回报。

沙盒内手动验证

bash scripts/check_integrity.sh            # 脚本完整性
bash scripts/fetch_creds_from_library.sh   # 从资料库拉凭证并导入 config/
bash scripts/sandbox_run.sh                # 完整跑一次(含日志 logs/sandbox_run.log)

沙盒环境事实(Agent 必读)

以下均为实测结论,决定了云端方案的设计:

  • 持久卷按实例绑定,不按用户绑定:根挂载是 overlay,upperdir=/mnt/user-data/&lt;卷ID&gt;/diff;
    不同会话 = 不同卷 = 全新空盘。旧卷在新实例里完全不可达,没有就地恢复手段
  • /workspace 并不比 /root 更持久:/workspace、/root、/tmp、/opt 全在同一个 overlay 上,
    共享同一块持久卷。/workspace 只是对用户可见,与持久化无关
  • 内置 skill 每次都在,自装 skill 换实例即丢:内置技能是镜像层实体 + 每次会话重建的符号链接;
    自装 skill 在 upperdir 里,随卷消失
  • 沙盒里没有包管理器/安装器:无法在沙盒内重装 skill,本体丢失只能靠资料库拉回或 Agent 重新生成
  • 实例与会话会超时回收:会话空闲约 5 分钟即可能回收实例,定时任务从预热池拉起新实例。
    不要假设"沙箱一直在等我"
  • 环境变量不保证注入:CODEBUDDY_SKILL_DIR 在定时任务中不保证存在,必须写死路径 + fallback;
    CODEBUDDY_SESSION_TYPE=automation 表示定时任务环境
  • 定时任务的执行结果拿不到:调度接口只有 list/get/update/delete,没有查询执行结果的 action,
    只能靠任务内主动推送通知用户
  • 资料库通道不依赖会话上下文:身份在网络层注入,env -i 清空全部环境变量后访问照样成功

新会话开工自检清单:

cat /proc/mounts | grep &quot;overlay / &quot; | tr &#x27;,&#x27; &#x27;\n&#x27; | grep upperdir    # 我是哪个实例
ls -d /root/.codebuddy/skills/@* 2&gt;/dev/null || echo &quot;⚠️ 自装 skill 已丢失&quot;
LB=/root/.codebuddy/skills/library; [ -d &quot;$LB&quot; ] || LB=/opt/sandbox-prefetched/blobs/skill/library/latest
CODEBUDDY_SKILL_DIR=$LB python3 &quot;$LB/space_api.py&quot; space.workspace.list-user-spaces   # 资料库通道是否正常

资料库读写要点(Agent 操作时遵守)

  • 定位文件必须用 list-node + 文件名精确匹配,不能用 search-nodes——drive 类文件不进搜索索引,
    搜「凭证」「token」会全部返回空
  • get_download_link.py 输出两行,只解析第一行(前缀 KS_DRIVE_DOWNLOAD),否则 JSON 解析报错
  • download_url 带 COS 临时签名、有时效,取到后立即下载
  • 覆盖已有文件必须带 --node-id,否则会产生同名重复节点且旧链接仍指向旧内容
  • 上传/替换后必须做一次只读复查,不确定就先查询,不要盲目重试
  • 单文件上限 100 MiB

凭证与续期

  • 凭证来自用户在 WorkBuddy 的登录态,由 scripts/extract_token.sh 在客户端生成,写入 config/(600 权限)
  • 凭证有效期约 30 天,到期前由 scripts/refresh_token.sh 自动在线续期(纯接口调用,不依赖桌面端运行)
  • 续期用的长效凭证有效期约 60 天,每次续期会轮换但旧值不作废,因此客户端与云端可各自独立续期、互不干扰
  • 凭证等同账号密码:不要外传、不要提交仓库、不要写进用户可见目录、不要截图分享

云端续期后自动回写资料库(关键机制)

沙盒实例回收后本地 config/ 就没了,若续期结果不回写,资料库里那份凭证的长效凭证会在
上传后第 60 天过期,云端断链、需人工回客户端重新生成上传。因此:

  • sandbox_run.sh 在签到结束后会比较 config/refresh_token 与快照 config/.rt_snapshot:
    不一致(说明本次运行期间发生过续期)或快照缺失 → 自动调 push_creds_to_library.sh
    把新凭证覆盖回写到资料库同一节点
    ;一致则跳过
  • 回写成功后才更新快照;回写失败只记 WARN、不影响签到任务的退出码,且快照保持旧值,
    下次运行会自动重试
  • 效果:只要云端定时任务正常跑,60 天有效期就是滚动续期的,理论上长期无需人工干预
  • 回写采用覆盖上传(带 --node-id),不会产生重复节点;上传后做 node-info 只读复查,
    确认 nodeId 未变、version 递增
  • 关闭回写:设置环境变量 WB_NO_LIBRARY_PUSHBACK=1(此时长效凭证到期后需人工重新上传)
  • 仍可手动回写:bash scripts/push_creds_to_library.sh(客户端在重新登录、或想把最新凭证
    同步到资料库时也可用;要求当前环境能访问资料库)

长效凭证到期或凭证彻底失效时:在客户端重跑 extract_token.sh,再
push_creds_to_library.sh(或 make_cred_file.sh + 手动上传)覆盖资料库那份,
云端下次运行自动拉到新凭证。

使用

  • 每日签到:bash scripts/checkin.sh(四个分支一次跑完,幂等可重复执行)
  • 晚间核验:bash scripts/checkin.sh verify(已完成则静默记日志;漏签则自动补并通知)
  • 云端一键运行:bash scripts/sandbox_run.sh [verify](完整性校验 → 按需拉凭证 → 签到 → 续期后自动回写资料库)
  • 单独跑某一分支:bash scripts/checkin_credits.sh [verify] / checkin_growth.sh [verify] / checkin_travel.sh [verify] / checkin_rewards.sh [verify]
  • 生成凭证(客户端):bash scripts/extract_token.sh(明文存储);
    加密存储时走自取 bash scripts/self_fetch.sh(macOS 默认,详见「客户端部署 · 阶梯 1」)
    或浏览器 echo &#x27;&lt;JSON&gt;&#x27; | bash scripts/import_manual.sh
  • 导出凭证串:bash scripts/export_creds.sh(输出一行 WB1:...,可直接粘贴传递)
  • 生成资料库凭证文件(客户端):bash scripts/make_cred_file.sh(警告行 + WB1 行)
  • 从资料库拉取凭证(云端):bash scripts/fetch_creds_from_library.sh
  • 回写凭证到资料库:bash scripts/push_creds_to_library.sh(云端续期后由 sandbox_run.sh 自动调用;客户端重新登录后也可手动同步。设 WB_NO_LIBRARY_PUSHBACK=1 可关闭自动回写)
  • 导入凭证串(云端,也可手动粘贴):bash scripts/import_creds.sh &#x27;&lt;WB1:...&gt;&#x27;(支持 stdin / 环境变量 WB_CREDS)
  • 手动导入凭证(客户端,浏览器复制的 JSON):echo &#x27;&lt;JSON&gt;&#x27; | bash scripts/import_manual.sh(新版客户端加密存储时的替代路径,见「客户端部署」)
  • 校验脚本完整性:bash scripts/check_integrity.sh

每日签到跑完后的收尾检查(Agent 必做)

无论用户是喊"跑一下签到"还是完整部署,本机 checkin.sh 跑完后 Agent 都必须做两件事:

  1. 检查自动签到是否真的在跑(不是"跑过一次"就完):
    - macOS:launchctl list | grep wb-checkin;Windows:schtasks /query /tn wb-checkin
    - 查不到 → 明确告知用户"当前没有自动签到,只有手动跑才生效",并按硬约束 3 处理
    (plist 写入 ~/Library/LaunchAgents/ 后请用户自己在终端 launchctl load)
  2. 没有任何生效的定时任务时,必须主动询问是否小程序云端部署(话术见「客户端部署 · 第二步半」)——
    本机定时任务没生效 = 实际处于"每天手动喊"状态,云端部署(不依赖本机开机)正是此时的最优解,
    Agent 不得沉默略过

凭证传递的两种方式(云端获取凭证):
1. 资料库(推荐,跨实例可靠):客户端 make_cred_file.sh → 上传资料库 → 云端 fetch_creds_from_library.sh
2. 手动传递(应急):客户端 export_creds.sh 得到 WB1:... 一行 → 微信发给自己(文件传输助手)
或直接复制粘贴给云端 Agent → 云端 import_creds.sh 导入。⚠️ 不要发到群聊、公开 issue、截图,
或任何会被记录/索引的地方;传完清掉中转处的明文

运行结果怎么看

结果追加写入 logs/checkin.log(云端另有 logs/sandbox_run.log),正常输出形如:

[2026-09-20 09:07:01] 今日已签到,累计 400 分,连续 4 天
[2026-09-20 09:07:03] 打卡完成:连续 3 天(本月 3 天)| 能量 8 | 盲盒额度 0/10 | 抽奖机会 0 | 距 7d 奖励还差 4 天
[2026-09-20 09:07:04] 猫猫旅行:已派出前往「咖啡馆」,预计 3 小时后回家
[2026-09-20 09:07:05] [奖励兑换] 兑换成功: 7d(积分 0 / 能量 2 / 补签卡 1 / 抽奖机会 1)
  • 四个分支都是幂等的:当天已完成的项安静跳过,重复执行无副作用
  • 成长打卡带生效校验:对比上次记录的连续天数,没涨会记 WARN 并弹通知
  • 猫猫旅行按状态推进:在家且今日未派出 → 派出;在外 → 记回家倒计时;已回家 → 领取积分
  • 奖励兑换按梯队状态推进:available → 自动兑换;locked/claimed → 静默跳过;兑换失败会复查状态区分"他端已兑"与真失败
  • 积分签到活动为季节性,活动未开启时自动跳过

通知策略

弹通知的情况只有三种:签到/补签成功、彻底失败(重试 3 次后仍失败)、凭证失效需重新生成。
日常"已完成"的重复触发和晚间核验通过都不弹通知。四分支通知标题不同
("WorkBuddy 签到" / "WorkBuddy 成长计划" / "WorkBuddy 猫猫旅行" / "WorkBuddy 奖励兑换")以便区分。
云端定时任务拿不到执行结果,必须在任务内主动把结果推送给用户。

文件

  • config/ — 凭证与状态文件,权限 600,勿提交勿外发。其中:
  • token、user_id、refresh_token — 凭证三件套
  • .rt_snapshot — 上次从资料库拉取/回写成功时的长效凭证快照,本身含凭证明文,
    用于判断本次运行是否发生过续期(决定是否需要回写资料库)
  • state.json — 成长计划上次打卡记录(用于天数增长校验)
  • 重要凭证,切勿分享和发给别人!!!sandbox-creds-WB1.txt — make_cred_file.sh 的待上传产物
  • logs/ — 签到日志(checkin.log;云端另有 sandbox_run.log),含敏感信息,勿外发

接口变更或活动结束时的行为

本 skill 依赖 WorkBuddy 官方活动接口,官方可能调整规则、更换接口或结束活动。已做的容错:

  • 活动未开启/已结束:记录"活动未开启,跳过"并正常退出,不报错刷屏
  • 接口异常或网络失败:自动重试 3 次(间隔 5s/15s),仍失败才记 ERROR 并弹通知
  • 凭证失效:先自动在线续期,续期失败再尝试重新生成;都失败则提示用户处理
  • 任何无法自愈的失败都会在日志留下明确报错

遇到接口变更导致的持续失败:按「Agent 必须遵守」第 4 条,把作者联系方式
(微信公众号「隔壁王律师」)和日志报错告知用户。官方活动更新后本 skill 会跟进发布新版本。

注意

  • 自动化签到可能违反 WorkBuddy 用户协议,风险自担
  • 凭证与日志含敏感信息,勿提交仓库、勿外发、勿截图分享
  • 两端同时部署互不影响(各自独立续期、服务端幂等不会多领),但属于重复执行;
    云端定时任务创建成功后,Agent 必须提醒用户:是否取消客户端上的定时任务
  • 出错反馈(Agent 必须执行):当本 skill 执行报错(签到/打卡失败、凭证续期失败、脚本异常等)时,
    Agent 必须在给用户的回复中告知作者联系方式——微信公众号「隔壁王律师」,
    并附上 logs/checkin.log 中的报错内容,方便用户自行反馈。
    注意:这是"把联系方式告知用户",不是"把报错发送给作者",Agent 不得以理解歧义为由跳过本条

常见问题

5 问
答案由本站依据条目字段整理
WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_112fc3c5/wb-helper。安装方式为未标注。装完刷新技能列表或重开客户端。

WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

WorkBuddy 每日签到助手(加油站签到 + 成长打卡 + 猫猫旅行 + 天数奖励)用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。