{
    "format": "skillpro/v1",
    "skill_id": "cat-xierluo-legal-skills-skills-workbuddy-checkin-skill-md",
    "name": "workbuddy-checkin",
    "version": "1.0.0",
    "description": "WorkBuddy 每日积分自动签到。自动解密本地登录令牌，调用官方签到 API 完成每日积分领取（100 积分/天，连续第 7 天 1000 积分），并支持配置定时任务。触发词：WorkBuddy 签到、每日积分、check-in、credits。",
    "category": [
        "开发编程"
    ],
    "trigger_words": [],
    "tags": [
        "api"
    ],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=cat-xierluo-legal-skills-skills-workbuddy-checkin-skill-md",
    "exported_at": "2026-09-16T07:52:07+08:00",
    "system_prompt": "name workbuddy-checkin description WorkBuddy 每日积分自动签到。自动解密本地登录令牌，调用官方签到 API 完成每日积分领取（100 积分/天，连续第 7 天 1000 积分），并支持配置定时任务。触发词：WorkBuddy 签到、每日积分、check-in、credits。 version 1.0.4 license MIT WorkBuddy 每日积分签到 自动领取 WorkBuddy 每日积分（100 积分/天，连续第 7 天 1000 积分）。 全流程在本机完成：读取本地登录态 → 调用腾讯官方签到接口。无后端服务。 原理 WorkBuddy 桌面端登录后，会在本地保存登录态。 v5.3.8+ 的新版桌面端 改为明文 JSON 文件： macOS： ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info 结构 { account, auth: { accessToken, refreshToken, expiresAt, ... }, accounts } ，桌面端临近过期会自动刷新，纯 Node 即可读取 auth.accessToken 。 旧版 WorkBuddy/CodeBuddy 仍把 auth session 用 Electron safeStorage 加密存于 state.vscdb ；新版明文文件缺失时回退到此路径，用 Electron 运行时执行 safeStorage.decryptString() 解密（macOS 命中钥匙串；Windows/Linux 走 DPAPI/keyring）。 运行时策略： Node 优先 （读新版明文文件，无需 Electron），缺失时回退 Electron（解旧版 state.vscdb ）。 调用腾讯官方签到 API： 查状态： POST https://copilot.tencent.com/v2/billing/meter/checkin-status 执行签到： POST https://copilot.tencent.com/v2/billing/meter/daily-checkin 认证： Authorization: Bearer <accessToken> ，并按桌面端 buildHeaders 附带 X-User-Id: <account.uid> ；有 auth.domain 时加 X-Domain ，企业账号另加 X-Enterprise-Id / X-Tenant-Id 兼容说明： checkin.ps1 走上述 /v2/ 全量签名（对齐桌面端）； checkin.sh 仍走不带 /v2/ 前缀、仅 Authorization 的旧写法。 两种写法实测均返回 200 （见 CHANGELOG 1.0.3 的验证矩阵），网关当前未强制 /v2/ 或 X-User-Id ；对齐桌面端属前向兼容加固，不是修复 401 的必要条件 脚本幂等：先查状态（命中即跳过）； daily-checkin 返回 code=10001 （今天已签到）同样视为成功，避免重复请求被误报为失败。 ⚠️ v5.3.8 实测 checkin-status 的 today_checked_in 字段不可靠（签到成功后仍可能为 false ）。因此幂等性主要靠 daily-checkin 的 code=10001 兜底。 兼容旧版应用名 CodeBuddy （仅旧版 state.vscdb 分支需要，macOS 需设环境变量 WB_CHECKIN_APP_NAME=CodeBuddy ）。 文件结构 workbuddy-checkin/ ├── SKILL.md ├── references/ │ └── dependencies.md # 依赖清单与平台差异 └── scripts/ ├── decrypt-token.js # 解密令牌（跨平台） ├── checkin.sh # macOS / Linux / Git Bash ├── checkin.ps1 # Windows PowerShell ├── setup.sh # macOS / Linux 一键安装 └── setup.ps1 # Windows 一键安装 logs/ 目录运行后自动创建，存放签到日志。 依赖 系统依赖 依赖 用途 安装方式 WorkBuddy 桌面端（已登录） 提供本地登录态（v5.3.8+ 明文文件 / 旧版 state.vscdb ） 官网下载，必须登录过至少一次 Node.js（推荐 20+，v5.3.8+ 主路径必需） 读取新版明文登录态、解析 JSON nodejs.org 下载，或系统包管理器 curl（macOS/Linux 自带）/ curl.exe 调用签到 API Windows 10 1803+ 自带 Electron 运行时（≥ 30，推荐 37） 仅旧版 state.vscdb 分支解密令牌用 仅旧版账户需要，运行 scripts/setup.sh 或 setup.ps1 v5.3.8+ 用户：装好 Node.js 并登录桌面端即可直接签到， 无需安装 Electron 。Electron 仅用于尚未迁移到新版明文存储的旧版 WorkBuddy/CodeBuddy 账户。 开箱即用 vs 需安装 开箱即用（v5.3.8+） ：已装 WorkBuddy 桌面端并登录 + 系统已有 Node.js → 直接运行签到脚本。 需安装 Node.js ：提示「未找到 Node」时，到 nodejs.org 安装，或用 WB_CHECKIN_NODE=<path> 指定。 旧版账户需 Electron ：使用旧版 WorkBuddy/CodeBuddy（ state.vscdb ）且提示「未找到 Electron」时，执行： # macOS / Linux bash scripts/setup.sh # Windows（PowerShell） powershell -ExecutionPolicy Bypass -File scripts\\setup.ps1 可选 / 回退依赖 依赖 缺失时行为 Electron 运行时 仅旧版 state.vscdb 账户需要；v5.3.8+ 新版明文路径不需要 Node.js 内置 node:sqlite （Electron 37 / Node 22+ 自带） 旧版分支自动回退到 python3 读取 sqlite python3 sh 版 JSON 解析降级为 unknown ，签到请求仍会执行 npm （仅旧版 setup 首次安装 Electron 用） 手动放置 Electron 后用 WB_CHECKIN_ELECTRON=<path> （sh）/ -ElectronPath <path> （ps1）指定 完整依赖说明见 references/dependencies.md 。 快速开始 macOS / Linux： bash scripts/setup.sh # 检测运行时并验证令牌链路（v5.3.8+ 用 Node，旧版才需 Electron） bash scripts/checkin.sh # 立即签到一次（验证） Windows（PowerShell）： powershell -ExecutionPolicy Bypass -File scripts\\setup.ps1 powershell -ExecutionPolicy Bypass -File scripts\\checkin.ps1 前提：本机已安装并 登录 WorkBuddy 桌面端；系统已安装 Node.js（v5.3.8+ 主路径）。 设置定时任务 电脑非全天开机时，建议配置多个时间点补签（脚本幂等，重复运行无副作用）。推荐 09:00 / 12:00 / 15:00 / 18:00 / 21:00 各尝试一次，只要电脑在任一时间点开机就能签上。 macOS / Linux（crontab） crontab -e 0 9,12,15,18,21 * * * /path/to/scripts/checkin.sh >> /path/to/logs/checkin.log 2>&1 Windows（任务计划程序） schtasks /Create /TN WorkBuddyDailyCheckin /TR \"powershell -ExecutionPolicy Bypass -File C:\\path\\checkin.ps1\" /SC DAILY /ST 09:00 /F schtasks /Create /TN WorkBuddyDailyCheckin2 /TR \"powershell -ExecutionPolicy Bypass -File C:\\path\\checkin.ps1\" /SC DAILY /ST 12:00 /F # （schtasks 单任务只支持一个 /ST，多时间点需建多个任务） macOS launchd（长期后台） 创建 ~/Library/LaunchAgents/com.user.workbuddy-checkin.plist ， StartCalendarInterval 用数组配置多时间点： < key > StartCalendarInterval </ key > < array > < dict > < key > Hour </ key > < integer > 9 </ integer > < key > Minute </ key > < integer > 0 </ integer > </ dict > < dict > < key > Hour </ key > < integer > 12 </ integer > < key > Minute </ key > < integer > 0 </ integer > </ dict > < dict > < key > Hour </ key > < integer > 15 </ integer > < key > Minute </ key > < integer > 0 </ integer > </ dict > < dict > < key > Hour </ key > < integer > 18 </ integer > < key > Minute </ key > < integer > 0 </ integer > </ dict > < dict > < key > Hour </ key > < integer > 21 </ integer > < key > Minute </ key > < integer > 0 </ integer > </ dict > </ array > 然后 launchctl load ~/Library/LaunchAgents/com.user.workbuddy-checkin.plist 。 在 WorkBuddy 内（Agent 自动化） WorkBuddy 环境下可调用自动化任务工具（ automation_update ，recurring 类型），RRULE 多值 BYHOUR 实测生效： { \"name\" : \"WorkBuddy 每日积分签到\" , \"scheduleType\" : \"recurring\" , \"rrule\" : \"FREQ=DAILY;BYHOUR=9,12,15,18,21;BYMINUTE=0;BYSECOND=0\" , \"cwds\" : [ \"<用户工作目录>\" ] , \"status\" : \"ACTIVE\" , \"prompt\" : \"运行 Bash 脚本 scripts/checkin.sh（Windows 用 checkin.ps1）。该脚本幂等：今日已签到会直接跳过。读取输出并汇报：签到成功领取多少积分 / 今日已签到 / 令牌失效需打开 WorkBuddy 刷新。\" } 注意： update 已有任务时必须显式传 rrule ，否则可能被重置； cwds 不能用 Claw 工作区。 平台说明 新版明文登录态（v5.3.8+，主路径，Node 读取）与旧版 state.vscdb （回退路径，Electron 解密）均自动探测。 平台 脚本 新版明文登录态（v5.3.8+，主路径） 旧版 state.vscdb（回退） macOS checkin.sh ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info ~/Library/Application Support/WorkBuddy/User/globalStorage/state.vscdb Windows checkin.ps1 （或 Git Bash 跑 checkin.sh ） %LOCALAPPDATA%\\CodeBuddyExtension\\Data\\Public\\auth\\workbuddy-desktop.info （回退 %APPDATA% ） %APPDATA%\\WorkBuddy\\User\\globalStorage\\state.vscdb Linux checkin.sh ~/.config/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info ~/.config/WorkBuddy/User/globalStorage/state.vscdb Windows PowerShell 执行策略用 -ExecutionPolicy Bypass ；需 curl.exe （Win10 1803+ 自带）。 旧版 state.vscdb 分支在 Linux 需桌面会话 + 系统 keyring（GNOME Keyring / KWallet）；新版明文分支无此要求。 环境变量 变量 作用 WB_CHECKIN_NODE=<path> 指定 Node 二进制路径（v5.3.8+ 主路径用，sh/ps1 通用） WB_CHECKIN_ELECTRON=<path> 指定 Electron 二进制路径（仅旧版 state.vscdb 回退用，sh 版） -ElectronPath <path> 同上（ps1 版参数） WB_CHECKIN_APP_NAME=CodeBuddy 兼容旧版应用名（仅旧版 state.vscdb 分支的 macOS 钥匙串密钥） WB_CHECKIN_JITTER=<秒> 启动前随机等待 0~N 秒，避免整点风暴 排错 「获取令牌失败（未知原因）」/ 未找到本地登录态 ：先确认 WorkBuddy 桌面端已登录并打开过至少一次。v5.3.8+ 用户检查 Node.js 是否安装（ node -v ），或用 WB_CHECKIN_NODE 指定。 v5.3.8 已登录但仍报令牌失败 ：本机 skill 版本过旧（< 1.0.2），不识别新版明文存储；升级到 1.0.2+。 当日重跑提示「签到未成功 / code=10001」 ：旧版本（< 1.0.2）未把 code=10001 识别为「已签到」；1.0.2+ 会正确报告「今日已签到」。 401 令牌过期 ：打开 WorkBuddy 刷新登录态，脚本每次运行会重新读取最新 token，次日自动恢复。 偶发「令牌已过期（401）」但次日又正常（< 1.0.3） ：401 判定原为扫响应体子串，响应体里的随机 requestId 恰好含 401 时会误判（约 0.57%/次），当日签到被跳过且连续签到中断。1.0.3 起改用真实 HTTP 状态码判定。 Windows 已登录却持续 401（< 1.0.3） ：1.0.2 的 win32 候选只探 %APPDATA% ，而桌面端实际把明文登录态写在 %LOCALAPPDATA% ；读不到新文件时会回退旧版 state.vscdb ，取到 过期的历史会话令牌 ，表现为「能拿到 token 但接口 401」。1.0.3 起优先探 %LOCALAPPDATA% 。 排查 401 请先确认令牌来源，而非怀疑请求路径或请求头 （实测网关不强制 /v2/ 与 X-User-Id ，见 CHANGELOG 1.0.3）。 macOS 解密报错但已登录（旧版账户） ：旧版迁移应用名仍是 CodeBuddy ，设 export WB_CHECKIN_APP_NAME=CodeBuddy 后重试（仅走 state.vscdb 分支时生效）。 Electron 下载慢/失败（旧版账户） ：配置 npm 镜像（见 references/dependencies.md ）后重跑 setup；或手动放置 Electron 后用环境变量/参数指定。v5.3.8+ 新版账户无需 Electron。 Windows 提示不是内部或外部命令 ：用 powershell -ExecutionPolicy Bypass -File … 运行；确认 curl.exe 存在。 沙箱里 require('electron') 报错 ：Agent 沙箱默认设 ELECTRON_RUN_AS_NODE=1 ，脚本已用 env -u （sh）/ Remove-Item Env: （ps1）处理；v5.3.8+ 主路径用纯 Node，不受此影响。 Windows 兼容性修复（1.0.4） 1.0.3 及之前版本的验证全部在 macOS 完成（见 CHANGELOG「已知限制」）。1.0.4 修复 Windows（Git Bash / PS 5.1）实跑暴露的 3 处问题： # 文件 症状 根因 修复 1 checkin.ps1 表达式或语句中包含意外的标记\"}\" ，脚本完全跑不起来 文件是 无 BOM 的 UTF-8 ，PS 5.1 按 GBK 解析，中文注释变乱码破坏语法 补 UTF-8 BOM（零代码改动） 2 checkin.ps1 签到未成功：PARSE_ERR [Console]::OutputEncoding 中文 Windows 默认 GB2312，把 UTF-8 JSON 解成乱码并 吃掉闭合引号 ， ConvertFrom-Json 抛错 Invoke-CheckinApi 内调用 curl.exe 期间临时切 UTF-8，结束后还原 3 checkin.sh 未找到 Node 或 Electron 运行时 （但 node -v 正常） SCRIPT_DIR 是 MSYS 的 /c/... ，传给原生 node.exe 被拼成 C:\\c\\Users\\... → Cannot find module → 令牌为空 用 cygpath -w 归一化传给 Node 的路径；JSON 解析改为 Node 优先、python3 回退 （Node 本就是必需依赖） 排错提示 ：第 3 条的报错文案极具误导性——它让你去装 Node.js，但 Node 是好的，真实原因被 decrypt 调用的 2>/dev/null 吞掉。遇到这条， 先直接跑 node \"<脚本绝对路径>/decrypt-token.js\" 看真实报错 。 已知行为（非 bug） 重复签到时 daily-checkin 返回 HTTP 400 （首次签到才是 200），业务体为 code=10001 。判定依据始终是业务体的 code=10001 ，两个脚本均已将其视为成功。 安全说明 ⚠️ 凭据即账号密码 ：本 skill 解密的 accessToken 等同你的 WorkBuddy 账号密码，具有高敏感性。请务必遵守以下红线： 令牌仅在内存中使用，通过管道立即被签到请求消费， 不写入任何日志文件、不落盘、不回显到终端、不提交到仓库 。 logs/ 仅记录签到结果（积分 / 连续天数 / 成功失败）， 绝不含令牌原文 。切勿将日志或脚本输出粘贴分享。 网络访问仅发往腾讯官方接口 copilot.tencent.com/billing/meter/* 与 copilot.tencent.com/v2/billing/meter/* ，不上传任何第三方。 解密成功时脚本会向 stderr 打印一行安全提示（不影响 stdout 的 token 管道），便于你确认凭据正在被使用。 请勿用于他人账户、批量注册刷分或任何违反 WorkBuddy 用户协议的用途；使用者自行承担使用风险。 为何需要这些能力（上下文说明） 本 skill 自述为\"每日签到\"，但完整链路需以下能力，均为本机运行、无后端，且对完成签到必不可少： 读取本地令牌 ：WorkBuddy 桌面端登录后把登录态存于本地——v5.3.8+ 为明文 JSON 文件（ workbuddy-desktop.info ，纯 Node 可读），旧版为 Electron safeStorage 加密的 state.vscdb 。必须读到 accessToken 才能调用官方签到接口，这是签到功能的核心，无法绕过。 Node.js 运行时 ：v5.3.8+ 主路径用 Node 直接读取明文登录态并解析 JSON。推荐手动指定已校验的 Node（设 WB_CHECKIN_NODE ）。 Electron 运行时（仅旧版账户） ：只有使用旧版 WorkBuddy/CodeBuddy（ state.vscdb ）时才需要，执行 safeStorage.decryptString() 解密令牌（macOS 命中钥匙串、Windows/Linux 走系统 DPAPI/keyring）。推荐手动指定已校验的 Electron（设 WB_CHECKIN_ELECTRON ），不依赖自动下载。 python3 回退（默认关闭） ：仅当旧版分支的 node:sqlite 不可用时，设 WB_CHECKIN_ALLOW_PY_FALLBACK=1 才会调用外部 python3 读取会话库。默认关闭以缩小信任边界。 定时任务（crontab / launchd / 任务计划程序） ：用于多时间点幂等补签，脚本本身不写入系统定时，需你显式配置。 供应链提示 安装 Electron 默认 不自动下载 （避免静默引入第三方大二进制）。如需自动安装，须显式设置环境变量 WB_CHECKIN_AUTO_INSTALL_ELECTRON=1 确认从官方 npm registry 下载 electron@37 。 所需权限 本 skill 运行需以下本地权限，均限定在最小范围： 权限 范围 说明 本地代码执行 仅本 skill 的 checkin.sh/.ps1 、 decrypt-token.js 、 setup.sh/.ps1 用户手动或定时触发，非后台常驻 本地文件读取 用户目录下的 WorkBuddy 登录态（v5.3.8+ 明文 workbuddy-desktop.info / 旧版 state.vscdb ） 读取登录态以获取调用官方接口所需的 accessToken 网络访问 仅 copilot.tencent.com 官方签到接口 不访问任何其他域名 环境变量读取 WB_CHECKIN_* （Node/Electron 路径、应用名、错峰、回退开关） 均为本机用户显式配置 定时任务 由用户显式配置 crontab / launchd / 任务计划程序 skill 不自动写入系统定时",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用workbuddy-checkin帮我处理问题",
            "output": "好的，我是workbuddy-checkin。WorkBuddy 每日积分自动签到。自动解密本地登录令牌，调用官方签到 API 完成每日积分领取（100 积分/天，连续第 7 天 1000 积分），并支持配置定时任务。触发词：WorkBuddy 签到、每日积分、check-in、credits。 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是workbuddy-checkin，专注于开发编程领域。WorkBuddy 每日积分自动签到。自动解密本地登录令牌，调用官方签到 API 完成每日积分领取（100 积分/天，连续第 7 天 1000 积分），并支持配置定时任务。触发词：WorkBuddy 签到、每日积分、check-in、credits。"
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# workbuddy-checkin - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// workbuddy-checkin - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: workbuddy-checkin\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}