Create and maintain a macOS-only WorkBuddy desktop auto-checkin workflow. Prefer the internal IPC chain codebuddy:getCheckinStatus → codebuddy:claimDailyCheckin → codebuddy:getAccountUsage over DOM clicks so the workflow stays stable when the profile panel or button layout changes.
scripts/setup_checkin.py 生成工作区文件。--catchup。按下面顺序确认前提条件:
/Applications/WorkBuddy.app。playwright 已安装在 WorkBuddy 的托管 Node 工作区;如果未安装,先安装依赖后再继续。tools/workbuddy-checkin/.workbuddy/workbuddy-checkin/执行 scripts/setup_checkin.py,为当前工作区生成一套可运行文件。生成结果应至少包括:
tools/workbuddy-checkin/checkin.cjstools/workbuddy-checkin/run.shtools/workbuddy-checkin/install-launchd.shtools/workbuddy-checkin/README.md.workbuddy/workbuddy-checkin/com..workbuddy-checkin.plist .workbuddy/workbuddy-checkin/logs/.workbuddy/workbuddy-checkin/profile/默认约定:
run.sh 使用托管 Node 运行 checkin.cjsrun.sh 默认附带 --catchup.workbuddy/workbuddy-checkin/logs/.workbuddy/workbuddy-checkin/profile/将签到核心逻辑固定为下面这套流程:
Agents 页面并等待桥接对象可用。codebuddy:getCheckinStatus 读取当日状态。codebuddy:claimDailyCheckin。codebuddy:getCheckinStatus 与 codebuddy:getAccountUsage 验证结果。禁止回退到以下脆弱路径,除非用户明确要求做兼容性兜底:
首次部署时,单独处理登录态,而不是把“登录流程”塞进主签到链路:
tools/workbuddy-checkin/run.sh --keep-open --debug。claimed-now 或 already-claimed。将“登录态失效”与“签到接口变更”分开排查,不要混在一起判断。
需要定时执行时,优先使用 launchd,而不是 cron。操作顺序:
.workbuddy/workbuddy-checkin/。tools/workbuddy-checkin/install-launchd.sh。~/Library/LaunchAgents/com..workbuddy-checkin.plist 已安装。launchctl list | grep workbuddy-checkin 检查任务是否存在。launchctl kickstart -k gui/$(id -u)/com..workbuddy-checkin 做一次手动触发验证。默认调度规则:每天 12:00 执行;脚本以 --catchup 模式运行,尽量覆盖休眠或错过时间窗口后的补执行场景。
优先按这个顺序排查:
launchd.log、launchd.err 是否暴露错误。读取 references/publish_and_usage.md 获取更完整的部署、验证和发布检查项。
对外发布前,执行下面流程:
SKILL.md 的元数据与描述是否完整。scripts/setup_checkin.py 与 scripts/checkin.cjs 已能支撑复用安装。scripts/setup_checkin.py根据当前工作区生成签到工具目录、运行脚本、launchd 安装脚本、plist 与 README。优先复用这个脚本,不要手写散落的路径和模板。
scripts/checkin.cjs实际执行签到的 Node 脚本。复制到工作区后再运行,不要直接在技能目录里拿它当用户产物。
references/publish_and_usage.md包含部署注意事项、手动验证命令、launchd 管理命令与发布前检查清单。需要完整上下文时再读取。
共 1 个版本