name: wb-growth-center-daily
display_name: 成长计划看板
display_name_en: Growth Center Dashboard
version: 1.0.6
category: productivity
author: <茫泰科技>
allowed-tools: Bash, Read, Glob, Grep
description: WorkBuddy(workbuddy.cn)成长计划的成长看板。一屏给全:连登天数、距 28 天档还差几天、12 档里程碑状态(每档标 已兑 / 可兑 / 未解锁·还差几天)、盲盒能量到没到 10、抽奖次数、加油站本期累计积分、猫猫旅行到没到站、本月累计积分。另附两块提醒:断签预警(今天还没打卡 / 只差一天就断 / 有 2 张补登卡可兜底)、漏领清单(旅行已回站没去收、抽奖次数月底清零、能量满了不兑就浪费)。台账月报给连登曲线、月度积分收入、断签记录,--stats 查累计。适合问:还差几天到 28 天档、里程碑兑到哪了、能量满没满、抽奖还剩几次、加油站本期多少、这个月签了几天、有没有漏领的。只做统计与提醒:不点任务列表里的「去完成」,不花能量开盲盒。装好想问「怎么用」「第一次要做什么」,也问这个技能。
description_zh: 成长看板一屏看全:连登天数、距 28 天档还差几天、12 档里程碑状态、能量到没到 10、抽奖次数、加油站本期累计、旅行到没到站、本月累计积分。另给断签预警(今天还没打卡 / 只差一天就断 / 有 2 张补登卡兜底)与漏领清单(旅行已回站没去收、抽奖次数月底清零、能量满了不兑就浪费)。台账月报有连登曲线、月度积分收入、断签记录,--stats 查累计。
description_en: A growth dashboard for the WorkBuddy (workbuddy.cn) Growth Center. One screen shows streak length, days left to the 28-day tier, all 12 milestone tiers with per-tier status (redeemed / redeemable / locked with days remaining), whether blind-box energy has reached 10, lottery draws left, the fuel-station total for the period, whether the cat travel has arrived, and this month's credits. Also includes break-streak warnings (not checked in today / one day away from breaking / 2 makeup cards as a fallback) and a missed-claim list (travel back but not collected, lottery draws expiring at month end, energy full and going to waste), plus a monthly ledger report with a streak curve, monthly credit income and break records, and --stats for running totals. Read-only reporting and reminders: it never clicks "go complete" task buttons and never spends energy on blind boxes.
headline: 连登、里程碑、能量、抽奖一屏看全,断签和漏领早一步知道
summary: 一块成长看板:连登天数、距 28 天档还差几天、12 档里程碑状态、能量、抽奖次数、加油站本期累计、旅行到没到站、本月累计积分;再加断签预警、漏领清单和台账月报。
keywords:
- 成长看板
- 成长计划
- 成长中心
- WorkBuddy 成长计划
- 连登
- 连续登录
- 连登天数
- 距 28 天档
- 里程碑
- 里程碑状态
- 已兑 可兑 未解锁
- 盲盒能量
- 能量满
- 抽奖次数
- 加油站积分
- 加油站本期累计
- 猫猫旅行
- 旅行到站
- 旅行积分
- 本月累计积分
- 断签预警
- 断签
- 补登卡
- 漏领清单
- 漏领
- 台账月报
- 月报
- 连登曲线
- 月度积分收入
- 断签记录
- 签到台账
- 签到记录
- 签到
- 打卡
- 积分
- 通用积分
- growth center
- streak
- milestone tiers
- dashboard
search_aliases:
- 看下成长看板
- 看下签到情况
- 还差几天到 28 天档
- 里程碑兑到哪了
- 12 档里程碑什么状态
- 能量满了吗
- 抽奖还剩几次
- 加油站本期累计多少
- 旅行到站了吗
- 这个月一共多少积分
- 会不会断签
- 今天还没打卡
- 只差一天就断了
- 补登卡还有几张
- 有没有漏领的
- 这个月签了几天
- 生成本月月报
- 连登曲线
- 月度积分收入
- 断签记录
- 想看签到台账
- 装好了怎么用
- 这个技能怎么用
- 使用说明
- 首次使用
use_when:
- 想看连登天数、距 28 天档还差几天
- 想看 12 档里程碑逐档状态:已兑 / 可兑 / 未解锁还差几天
- 想知道盲盒能量到没到 10、抽奖次数还剩几次
- 想看加油站本期累计积分、猫猫旅行到没到站、本月累计积分
- 想要断签预警:今天还没打卡 / 只差一天就断 / 有 2 张补登卡兜底
- 想要漏领清单:旅行已回站没去收 / 抽奖次数月底清零 / 能量满了不兑就浪费
- 想每月复盘:连登曲线、月度积分收入、断签记录、--stats 累计
- 刚装好这个技能,想知道第一次要做什么
tags:
- 成长计划
- 成长看板
- 连登
- 里程碑
- 盲盒能量
- 抽奖次数
- 加油站积分
- 猫猫旅行
- 本月积分
- 断签预警
- 漏领清单
- 台账月报
- 月报
- 补登卡
成长计划看板
把 WorkBuddy(workbuddy.cn)成长计划里的状态读出来,摆成一块看板:
- 成长看板:连登天数、距 28 天档还差几天、12 档里程碑状态(已兑 / 可兑 / 未解锁·还差几天)、
盲盒能量到没到 10、抽奖次数、加油站本期累计积分、猫猫旅行到没到站、本月累计积分 - 断签预警:今天还没打卡 / 只差一天就断 / 有 2 张补登卡可兜底
- 漏领清单:旅行已回站没去收 / 抽奖次数月底清零 / 能量满了不兑就浪费
- 台账月报:连登曲线、月度积分收入、断签记录,
--stats查累计
一句话:一次读完,八个数字一块看板;该担心什么、漏了什么,都写在下面。
> 1.0.5 / 1.0.6 四块新能力:上面这四块全是读出来的 —— 打开成长计划页读状态、
> 读兑换弹窗里的档位行、读台账,不多点任何一个按钮(不点「去完成」、不开盲盒、不代用补登卡)。
> 1.0.6 只改文案:名称与介绍按「看板 / 预警 / 漏领 / 月报」重写,不再以签到领取作卖点,
> 对外文案(名称 / 卖点 / 简介 / 介绍)里不出现「自动」字样;脚本行为一行没改。
👋 用户刚装好、问「怎么用」——先给这三步(强制)
技能安装时不会弹任何东西,也没有通知(平台机制如此)。所以用户装完往往一脸茫然,
第一句就是「怎么用」「装好了要做什么」「下一步呢」。这时:
不要先跑脚本,也不要把整篇文档倒给用户。 先给三步,每步一句话:
- 登录一次(只此一次):说「登录一下」→ 我弹出浏览器,你扫码,10 秒。
登录态只存在你自己电脑上,不外传、不能给别人用。 - 跑一次:说「跑一次」→ 状态读出来,看板 + 断签预警 + 漏领清单一起来,报告同时生成。
- 按天定时(可选):跑完我会问要不要每天 9:00 定时看一次,你说「要」,之后不用每次开口。
给完这三步,直接追问第一句:「现在就开始登录吗?」——
不要让用户自己再想「那我该说什么」。这一步是新手流失最多的地方。
怎么判断「是第一次」
命中任一条就按首次处理:
- 用户问「怎么用 / 装了要做什么 / 下一步呢 / 我需要配什么 / 有什么要求」
~/.workbuddy-growth-center/wb-auth.json不存在(从没登录过)checkin-log.md不存在,且logs/下也没有任何成功记录(从没跑通过)
跑成功之后,也必须追问定时(强制)
只要本次 FINAL_CODE=OK 且当前还没有配置定时任务,结尾必须带上这一句:
> 要不要每天 9:00 定时看一次?你说「要」,我就建好,以后连这句都不用说了。
建定时任务时,脚本路径必须用技能安装位置 ~/.workbuddy/skills/wb-growth-center-daily/scripts/wb_daily.py
的绝对路径,不要指向任何工作区里的旧副本(见「4. 定时」里的警告)。
它能替你做什么(能力清单)
四块主能力(对外介绍就是这四块):
| 能力 | 具体做什么 | 你原本要自己做的 |
|---|---|---|
| 成长看板 | 打印并写 dashboard.md:连登天数、距 28 天档还差几天、12 档里程碑状态、盲盒能量到没到 10、抽奖次数、加油站本期累计、旅行到没到站、本月累计积分 |
打开页面逐个数字对 |
| 断签预警 | 今天还没打卡 / 只差一天就断 / 有 2 张补登卡可兜底 | 自己算日子,容易忘 |
| 漏领清单 | 旅行已回站没去收、抽奖次数月底清零、能量满了不兑就浪费 | 逐页翻有没有红色小点 |
| 台账月报 | --month:连登曲线、月度积分收入(按来源拆)、断签记录;--stats 查累计 |
自己拉表格 |
支撑上面四块的读数动作(读页面、读台账,都是读取侧):
| 动作 | 具体做什么 |
|---|---|
| 读连登与签到 | 打开成长计划页,读当日签到状态与连登天数 |
| 读里程碑 | 打开兑换弹窗,逐档读 已兑 / 可兑 / 未解锁(纯读,锁着的档不碰) |
| 读能量与抽奖 | 记下盲盒能量 x/10、手上抽奖次数(不替你开盲盒) |
| 读加油站 | 读 Buddy 加油站本期累计与连签天数 |
| 读旅行 | 读猫猫旅行到没到站、带回来多少积分 |
| 出报告 | daily/<日期>.md:看板 / 预警 / 漏领三节 + 当日明细 |
| 记台账 | checkin-log.md:一行一天,含当天积分,可回看整月 |
它不会替你做什么(故意的,见「行为红线」):不点任务列表里的「去完成」、
不花能量开盲盒、不伪造任何使用记录。
> 1.0.4 新增三项:派猫猫旅行 + 收旅行积分、领「已完成待领取」的任务奖励、
> 套餐与积分页的补偿积分 / 限时加赠。三者都只走「领取」这一侧,
> 没有任何一项会替你去「做任务」。
什么时候用
用户这样说的时候,就是这个技能:
- 看板类(主入口):「看板」「我现在什么进度」「还差几天到 28 天档」「里程碑兑到哪了」
「能量满了吗」「抽奖还剩几次」「加油站累计多少」「旅行到站了吗」→ 跑--board,一眼看全 - 预警类:「会不会断签」「今天还没打卡」「只差一天就断了」「有没有漏领的」
「旅行回来了没」「补登卡还有几张」→ 跑--board,然后照漏领清单逐条处理 - 月报类:「月报」「这个月复盘一下」「连登曲线」「月度积分收入」「断签记录」
「--stats 累计」→ 跑--month/--stats - 签到 / 连登类:「每日签到」「帮我签到」「打卡」「连登快断了」「连续登录」「连签」
- 领奖 / 待领类:「帮我领积分」「领奖励」「每日礼物」「抽奖次数别浪费」
「旅行积分没领」「有没有补偿积分」「任务做完了奖励忘了领」 - 配置类:「每天定时跑」「配个定时任务」「定时任务在哪儿设置」
→ 命中这一类必须走「4. 定时」那四段,不许只回一句「建个定时任务」 - 找入口:「成长计划在哪」「成长中心」「growth center」
反过来,以下请求不属于本技能(要拒绝):让我替你把「去完成」的任务点了、
帮我刷几个模板/对话凑活跃、帮别人也签一下(登录态不能共用)。
效果长什么样
跑完终端只会输出一行结论,比如:
FINAL_CODE=OK
对应报告 ~/.workbuddy-growth-center/daily/<日期>.md 里是这样(1.0.4 版):
- 当前连续登录:23 天
- 连登抽奖次数:0(领取后 0)
- 盲盒能量:3/10(领取后 3/10)
- Buddy 加油站:今日已签到(+100 积分 · 本期累计 2400)
- 派猫猫旅行:领到 8 积分;已派往咖啡馆(当前 idle · 地点 咖啡馆 · 奖励 8 积分)
- 任务奖励:领取 2 项(+400 积分 +10 能量):体验「设计创意模式」、和 AI 聊天 5 次
- 补偿/加赠积分:补偿积分+500
- 本次领取:旅行积分+8、任务奖励「体验「设计创意模式」」+300积分
看到 FINAL_CODE=OK 就说明今天这一趟成了,不用再管。
前提条件
- Node.js(跑
agent-browser用)+ Python 3(脚本只用标准库,无需 pip 安装)。 - agent-browser:
npm install -g agent-browser;用scripts/check_env.py --install可自动装。 - 每个使用者各自的登录态:必须各自登录一次,登录态不可与任何人共用。
数据落在哪
默认 ~/.workbuddy-growth-center/(可用环境变量 WB_GC_HOME 覆盖):
| 文件 | 内容 |
|---|---|
wb-auth.json |
登录态(Cookie + localStorage)。属于凭据,绝不可外传或提交进仓库 |
daily/<日期>.md |
每日报告(附 _body.txt / _snapshot.txt / _page.png),含看板 / 预警 / 漏领三节 |
logs/<日期>.log |
运行日志(脚本所有输出都写这里) |
checkin-log.md |
签到台账,首次运行自动创建 |
dashboard.md |
最新一期成长看板(人看;每次运行覆盖) |
dashboard.json |
最新一期看板快照(机器读;--board 就是读它 + 台账重算预警) |
使用流程
> 第一次用就按 0 → 1 → 2 → 4 走一遍,大约 1 分钟。之后就只剩「2」,或者干脆交给 4 的定时任务。
> 对外只需要让用户记三句话:「登录一下」→「跑一次」→ 问你配定时就答「要」。
0. 环境自检(新机器第一件事)
python scripts/check_env.py # 只体检,不改动任何东西
python scripts/check_env.py --install # 缺 agent-browser 时自动装
1. 首次登录(必须由本人在场,只需一次)
python scripts/wb_relogin.py 1200 # 最多等 20 分钟(默认被动自愈)
python scripts/wb_relogin.py 1200 --keepalive 30 # 额外每 30 秒主动刷一次(二维码会重置)
会弹出有头浏览器窗口,并每 10 秒自动把它抬到最前。请使用者在该窗口里登录
(微信扫码 / 手机号 / 邮箱 / SSO 均可)。脚本检测到连续稳定跳出登录页后自动导出登录态。
登录页偶尔会变空白:脚本会自动用 reload 把浏览器目标修回来,不需要人工干预。
默认不主动刷新(--keepalive 0),这样页面存活期间二维码一直有效、不会打断正在扫的人;
只在真的变空白时才自愈。若你那边页面空白得特别频繁,可以 --keepalive 30 提高存活率。
关键:这一步必须在同一条命令里跑完。若调度器把命令包在作业对象(job object)里,
命令结束时整棵进程树会被清掉,拆成两步就留不下登录态。
2. 每日巡检 + 领奖
python scripts/wb_daily.py # 巡检 + 自动领取(含旅行 / 任务奖励 / 补偿积分)
python scripts/wb_daily.py --dry # 只看不动(排障时先跑这个)
python scripts/wb_daily.py --no-travel # 不派新行程(已到站的仍然会领)
python scripts/wb_daily.py --board # 只看看板(读上次快照 + 台账,不开浏览器)
python scripts/wb_daily.py --month # 台账月报(连登曲线 / 月度积分 / 断签记录)
python scripts/wb_daily.py --month 2026-09 # 指定月份
python scripts/wb_daily.py --stats # 只读台账:近 30 天签到/连登/累计积分(不开浏览器)
python scripts/wb_daily.py --stats 90 # 同上,统计最近 90 天
这一趟具体做了什么(顺序固定,不要随意调换):
- 打开成长计划页 → 维持连登 / 抓当天状态
- 连登里程碑兑换(只兑已解锁档)+ 连登抽奖(有次数才转)
- Buddy 加油站每日签到(今日没签才签)
- 派猫猫旅行:先领「已回来但没领」的行程,再在空闲且今日未派时派一趟
- 任务奖励:只领
progress.current >= target且未领、未锁的任务 - 补偿 / 加赠积分:
active && !claimed才领 - 出报告 + 记台账 + 刷新登录态
> 旅行的节奏天然是「今天领昨天的、派今天的」—— 因为每天只能派一次、
> 单趟 1~4 小时。所以每天跑一次刚好闭环;想当天就领回来,可以在下午再补跑一次。
3. 查签到记录 / 累计积分
python scripts/wb_daily.py --stats # 近 30 天
python scripts/wb_daily.py --stats 90 # 近 90 天
纯本地读台账:不开浏览器、不发任何请求,秒回。输出长这样:
WorkBuddy 成长计划 · 签到统计(2026-10-21 ~ 2026-10-23,近 30 天)
有记录 2 天 | 运行成功 2 次 | 本地未运行 1 天(2026-10-22)
当前连登 23 天 | 区间内最长连登 23 天
区间内到手积分:0(报告里没有来源明细,只有合计)
累计到手积分(全部记录):0
平台口径:加油站本期累计 2400 积分(截至 2026-10-23)
积分口径要说清楚:只统计服务端回了数值的来源 —— 加油站、猫猫旅行、
任务奖励、补偿积分、限时加赠、连登里程碑档位(从「+50 积分」文案里取)。
每日礼物、连登抽奖是纯页面点击、不返回数值,记 0 而不是估一个数。
退出码:0 = OK;2 = 需要人工介入。报告末尾的 FINAL_CODE 是权威结论:
| FINAL_CODE | 含义 | 处理 |
|---|---|---|
OK |
正常 | — |
NEED_LOGIN |
登录态失效 | 重跑 wb_relogin.py |
OPEN_FAILED |
浏览器没起来 | 检查 agent-browser;重跑一次 |
PAGE_LOAD_FAIL |
页面没落到成长计划页 | 重跑一次,仍失败则读日志 |
STATE_EMPTY |
本次战果有效,但登录态导出是空壳 | 尽快重跑 wb_relogin.py,否则下次会 NEED_LOGIN |
TIMEOUT |
登录等待超时 | 重跑 wb_relogin.py,本人在场扫快一点 |
NO_BROWSER |
没装 agent-browser | 跑 check_env.py --install |
BUSY |
已有一个流程在跑(run.lock 被占) |
等它跑完,别并行;确认没在跑就删掉 ~/.workbuddy-growth-center/run.lock |
NEED_LOGIN 别急着重登:先看日志里 url=、body len=,再在页面上 eval document.cookie
看有没有 KEYCLOAK_* / session:
url=about:blank或body len=0→ 浏览器目标错位,不是登录态失效(1.0.2 已修);- url 是
/login/、body≈157、且document.cookie里没有KEYCLOAK_*
→ 登录态没被注入,是 1.0.3 修掉的那个坑(旧版open --state参数被静默忽略),
升级到 1.0.3 即可,重登没用; - url 是
/login/但document.cookie里有KEYCLOAK_*→ 才是真的过期,重跑wb_relogin.py。
3.5 看板 / 断签预警 / 漏领清单 / 月报(1.0.5 起,1.0.6 沿用)
每次跑完都会打印这三块,同时写进报告 daily/<日期>.md,并落一份最新快照
dashboard.md + dashboard.json:
=== 成长看板 2026-10-27 ===
连登 23 天|距 28 天档还差 5 天(本月已连登 23 天)
里程碑 共 12 档:7天[已兑] 14天[已兑] 28天[未解锁·还差5天] …(逐档列出)
盲盒能量 10/10|抽奖 2 次(已满,不兑就浪费)
加油站 本期累计 2400 积分(连签 23 天)
猫猫旅行 已回站未收(咖啡馆 · 奖励到手,下去领)
本月累计积分 1008(本地记账口径)
--- 断签预警 ---
[ok] 今天已打卡
[ok] 只差一天就断:不适用(今天已续上,明天记得再来)
[ok] 兜底:补登卡 ×2(可补 2 天)
--- 漏领清单 ---
- 旅行已回站没去收(咖啡馆,奖励 9 积分待领)
- 抽奖次数 2 次没用(月底清零,攒着等于没领)
- 盲盒能量 10/10 已满(不兑就浪费;脚本不会替你开,那属于消费)
口径与边界,说清楚免得误会:
- 里程碑档位按页面实际渲染的档数报(页面上有几个
.gs-reward-row就报几个)。
你的账号是 12 档,就逐档列出 12 档;平台改档数也不用改代码。 - 断签预警只认两类证据:页面上的连登天数、台账里有没有
OK记录。
「本地没跑」≠ 断签(可能本人手动签过),所以措辞上分开写。 - 能量满了只提示、不代开盲盒;补登卡只报数量、不代用 —— 两者都是消费或人工决定。
- 月报
--month:连登曲线用方块字符画,断签只认「连登被重置」(降到 ≤2 天或一次掉 2 天以上),
掉 1 天多是跨天复跑的口径差,不误报。
python scripts/wb_daily.py --board # 只看看板:读快照 + 台账,不开浏览器
python scripts/wb_daily.py --month # 本月月报
python scripts/wb_daily.py --month 2026-09
月报长这样:
WorkBuddy 成长计划 · 月报 2026-10(27 天有记录 / 成功 27 次)
连登曲线 ▁▁▁▂▂▃▃▄▄▄▅▅▆▆▆▇▇██
最高 24 天 | 最低 1 天 | 现在 23 天(2026-10-27)
月度积分收入 1850(加油站 1500 / 猫猫旅行 120 / 补偿积分 230)
断签记录(连登天数被重置)
2026-10-08 连登 5 -> 1
本地未运行 2 天:05、06
(只代表脚本没跑,不等于断签 —— 断没断以平台连登天数为准)
4. 怎么按天定时看 —— 用户问「怎么做成定时任务」时必须给足 4 段
> 本节是硬要求:用户问「怎么配成定时任务 / 怎么做成自动化 / 能不能不用我管」时,
> 只回一句「建一条定时任务就行」等于没答 —— 他不知道点哪儿、填什么、怎么确认成功,
> 最后一定放弃。必须按下面顺序给,缺哪段补哪段。
先问一句(或自己判断):电脑上会一直开着 WorkBuddy 客户端吗?
开着 → 走 ① / ②;经常关机、不想依赖客户端 → 走 ③。
① 最省事:让用户对你说一句话(0 配置,推荐先给这个)
每天 9:00 帮我看一次 WorkBuddy 成长看板
收到这句就直接调用自动化能力把任务建好,建完必须回报三件事:
执行时间、脚本绝对路径、下次执行时间。不要只回「好的,已配置」。
② 用户想自己在界面里建(他会问「在哪儿建」)
- 左侧栏找「自动化」入口(不同版本可能叫「定时任务」,找不到就用搜索)
- 新建 → 频率选「每天」→ 时间填
09:00(别填 23:59 附近,网络慢会跨天) - 提示词整段粘贴下面命令打印出来的内容(原文即可,别让用户手写):
bash python scripts/print_schedule_prompt.py --prompt - 保存后立刻点「立即运行」验一次,别等第二天
- 看返回:有
FINAL_CODE=OK且台账多了今天一行,才算成功
③ 真无人值守:系统计划任务(客户端关着也能跑)
python scripts/print_schedule_prompt.py --os
Windows 打印的是 schtasks /Create ...(用户级,不需要管理员),
macOS / Linux 打印的是 crontab 一行。查/改/删的命令也一并打印:
- 查看:
schtasks /Query /TN "WorkBuddy-GrowthCenter" - 立刻试跑:
schtasks /Run /TN "WorkBuddy-GrowthCenter" - 删除:
schtasks /Delete /TN "WorkBuddy-GrowthCenter" /F
想当天就把猫猫带回来的积分收掉,就加 --two,生成 09:00 与 14:00 两条
(旅行每天只能派一次、单趟 1~4 小时,只跑一次的话积分要压到第二天)。
④ 配完当场验(最容易漏,漏了就等于没配)
python scripts/wb_daily.py --dry # 看到 FINAL_CODE=OK 才算通
python scripts/wb_daily.py --stats # 台账里应该有今天这一行
提前讲清三个坑(别等用户来问)
| 用户会看到的现象 | 真实原因 | 怎么办 |
|---|---|---|
| 自动化天天「成功」,台账一条记录都没有 | 提示词指向了历史工作区里的旧副本 | 脚本路径必须是技能目录下那份 .../skills/wb-growth-center-daily/scripts/wb_daily.py |
| 某天压根没跑 | WorkBuddy 自动化要客户端在运行 | 改用 ③ 系统计划任务 |
突然报 NEED_LOGIN |
登录态过期(约 2~4 周一次) | 说一句「重新登录」,扫码 10 秒 |
排查口诀:不只看 FINAL_CODE,还要看报告落在哪个目录 —— 落在工作区旧目录,
说明跑的是旧副本。
> 无人值守可行性(实测):脚本全命令行、无交互、有单实例锁、FINAL_CODE 可判定、
> 退出码给调度器用,首次登录只需一次。唯一需要人的环节是登录态过期后的重新扫码。
行为红线(不可越过)
脚本只领取已经到手的奖励。以下事情一律不做:
- 不点任务列表里的「去完成」。那些任务(召唤专家、用模板、装技能、关注公众号等)本质是
「真去用一次产品」,脚本代点就是伪造。平台条款明确写了严禁刷量/作弊,被识别会取消获奖资格。
→ 代码层面:绝不调用/activity/growth/tasks/accept,只调/tasks/<code>/claim。 - 不主动花能量开盲盒(那是消费,不是领取)。
- 不伪造对话、模板、技能使用记录。
1.0.4 三个新能力为什么不算越线
| 能力 | 为什么是「领取」不是「刷量」 |
|---|---|
| 派猫猫旅行 | 免费的每日互动:不消耗能量、不消耗积分,也不产生任何「使用产品」的假记录。每天限一次、单趟 1~4 小时,本身就是设计给用户点的。 |
| 收旅行积分 | 行程到点后那笔积分是已经赚到手的,只是要手动点一下才入账。 |
| 任务奖励 | 只领 progress.current >= target 的(真的做完了)。没做完的任务脚本一根手指都不碰。 |
| 补偿 / 加赠积分 | 官方主动发给你的,active && !claimed 才领,纯领取。 |
若发现脚本在替用户「完成任务」,那已经越线,必须停下来向用户说明。
权限与网络
- 网络:仅访问
https://www.workbuddy.cn(读写成长计划页与其 XHR 接口)。
环境自检时若需安装依赖,会访问 npm 官方源https://registry.npmjs.org。
除此之外不向任何第三方域名发送数据,不上传任何本地文件。 - 凭据:登录态由使用者本人在有头浏览器里输入,脚本仅将其写入使用者本机
~/.workbuddy-growth-center/wb-auth.json,不外传、不上云、不打印到日志。 - 本地写入:仅写入上述数据目录(报告、日志、台账、登录态)。
- 权限边界:不申请管理员权限;不注册系统服务/计划任务(定时由使用者自行用
WorkBuddy 自动化或系统计划任务发起);不修改系统设置。 - 可执行内容:本技能只会在使用者机器上运行
scripts/下的 Python 脚本,
以及agent-browser(无头 Chromium)。
详细说明见 @references/permissions-and-network.md。
排障
先看 logs/<日期>.log。所有踩过的坑(参数被二次解析、SPA 弹回首页、抽奖按钮只开弹窗、
兑换弹窗里未解锁档位不能点等)都记在 @references/gotchas.md —— 改脚本前务必先读它。
1.0.2 之后,gotchas.md 第 20~29 条专讲「页面莫名全白 / 登录态存成 36 字节空壳」这件事,
核心结论只有三句:
1. open <url> 会留下僵尸 target,一律改用 ab.open_tab() / ab.goto();
2. 空白 tab 会让受控指针掉过去,落地后立刻 ab.close_blank_tabs();
3. 两个流程共用同一个会话必然错乱,所以有 run.lock 单实例锁。
排查任何"页面空白"问题前,先看日志里的 body len=,为 0 就是目标错了,不是登录失效。
1.0.3 新增第 30 条,一句话:恢复登录态必须 open → state load <file> → tab new。
新版 agent-browser 会静默忽略 open --state,导致"刚重登完又报 NEED_LOGIN"。
判断口诀:eval document.cookie 里没有 KEYCLOAK_* 就是没注入,重登无效。
1.0.4 新增第 31 条:旅行 / 任务 / 补偿三组接口的完整契约(路径、方法、请求体、
错误码语义、状态机)都记在里面。改这三块之前别猜,先读第 31 条。
第 37 条是文档写法本身:凡「配定时 / 装环境 / 首次登录」这类一次性操作,
只写一句结论就等着用户问起来答空。所以「4. 怎么按天定时看」必须给足四段。
脚本清单
| 脚本 | 作用 |
|---|---|
scripts/check_env.py |
环境自检 + 安装 agent-browser |
scripts/wb_relogin.py |
首次登录 / 登录态失效时重登(有头窗口,等扫码,含页面自愈) |
scripts/wb_daily.py |
每日主脚本:巡检 + 领取 + 出报告 + 刷登录态;跑完顺带打印成长看板 / 断签预警 / 漏领清单并写 dashboard.md. 另有 --board(只看看板)、--month(台账月报:连登曲线 / 月度积分 / 断签记录)、--stats(累计) |
scripts/ab.py |
agent-browser 薄封装。所有页面操作都走它的 open_tab() / goto() / current_url() / safe_reload() / save_state(),别自己拼 open <url>。恢复登录态必须 open → state load <file> → tab new,open --state 新版已失效(见 gotchas 第 30 条) |
scripts/winraise.py |
把浏览器窗口强制置前(仅 Windows 需要) |
scripts/market_copy.py |
从本文件 frontmatter 生成 MARKETPLACE.md(市场发布文案)。--write 重新生成,--check 校验是否漂移,打包/发布前必须 --check 返回 0(见 gotchas 第 36 条) |
scripts/print_schedule_prompt.py |
打印「配成每天自动跑」需要的全部内容,路径已按本机填好,复制即用:--prompt 给自动化提示词,--os 给 schtasks / crontab 命令,--two 生成 09:00 + 14:00 两条。用户问「怎么配定时」时先跑它,别让用户手抄路径 |
包内文档:SKILL.md(本文件,技能定义)· README.md(市场详情页正文,用户看这个)·
MARKETPLACE.md(发布表单要填的各字段原文,自动生成,勿手改)·
references/examples.md(对话示例)· references/gotchas.md(踩坑记录)·
references/permissions-and-network.md(权限与网络边界)。