SkillHub 团队 Skill 更新助手
下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/letmetry--skillhub-team-update-v2.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @letmetry/skillhub-team-update-v2。在 skillhub.cn 网页端无头更新已发布的团队 Skill(进「我的 Skills」/enterprise/dashboard → 点卡片蓝色「更新」→ 弹出更新模态框 → 重传 zip + 设新版本号 → 提交)。最少只需传新 zip 包。首次需人工登录一次,之后用持久化 cookie / 已登录 CDP 浏览器无头自动更新,支持手机远程触发。
适用于 macOS + 系统 Chrome。已去除个人信息。
阅读全文 (展开查看完整说明)
概述
更新 skillhub.cn 团队 Skill 库里已发布的 Skill:重新上传 zip + 填新版本号即可,其他字段可保持原样。
前置依赖
- macOS + 系统 Chrome:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome - Node + Playwright:
~/.workbuddy/binaries/node/workspace/node_modules/playwright - 团队管理员账号:需在 skillhub.cn 完成团队 Skill 入驻并登录(首次登录走腾讯 OneID 手机+短信验证码)。
与发布(publish)skill 的关系
- 首次上架用
skillhub-team-publish(--zip/--slug/--name/--category必填)。 - 已上架后改 zip用本 skill(
--slug/--zip即可,最少只传 zip;更新必须设新版本号)。 - 两者共用同一套 cookie 会话模型(
~/.skillhub-session/cookies.json)。
真实更新页流程(2026-09-06 实测 /enterprise/dashboard 验证)
- 进
/enterprise/dashboard(顶部导航「我的 Skills」——这才是团队管理页;/team-skills是对外公开列表,卡片上没有「更新」入口)。 - 每个技能卡片右侧有一个蓝色「更新」span(
class含text-[#3957FF] cursor-pointer)。点它 → 弹出「更新 Skill」模态框(URL 不变,仍在 /enterprise/dashboard)。 - 模态框内容:
- 标题「更新 Skill」,副标题「上传新版本文件,提交后将重新进入审核流程」。
- zip 上传:
input[type=file][accept=".zip,application/zip"](视觉隐藏,由「选择 zip 文件」按钮代理;setInputFiles直接打隐藏 input 即可)。 #skill-version版本号(预填为下一个建议版本,如提交过 1.0.1 后再次打开会预填 1.0.2)。#skill-changelog变更说明(可选)。#skill-summaryZh描述(可选覆盖)。- 提交按钮文本精确为「更新 Skill」(注意模态框 H2 标题也是「更新 Skill」但不是 button,脚本用
button:hasText('更新 Skill')唯一定位)。
- 提交后模态框关闭,技能重新进入审核(
安全审核中+团队管理员审核中)。新版本号在审核通过前不会出现在版本历史(版本历史只显示最近一个已通过版本)。
会话模型(三种启动方式,取一)
CDP_URL(推荐,最稳):chromium.connectOverCDP(CDP_URL)复用已登录的浏览器(本机用--remote-debugging-port自起 Chrome、profile 拷到/tmp/chrome-rd后可在此端口连接)。无需 cookie、不弹 Allow 对话框。CHROME_USER_DATA_DIR:launchPersistentContext加载原生 profile cookie。- 否则:
launch(headless)+addCookies(cookies.json)(同 publish skill;cookie 失效会SESSION_EXPIRED,需login.cjs重新抓取)。 - ⚠️ 首次必须人工登录一次(
login.cjs,腾讯 OneID 滑块+短信)。之后无头复用,手机可远程触发。
更新(默认无头)
node ~/.workbuddy/skills/skillhub-team-update/update.cjs
--slug skillhub-team-publish
--zip ~/skills-publish/skillhub-team-publish-v1.0.1.zip
--version 1.0.1
[--changelog "小版本修复"]
[--desc "覆盖用的描述"]
[--cookies ~/.skillhub-session/cookies.json]
[--headed]- 脚本进
/enterprise/dashboard→ 校验「发布团队 Skill」按钮(确认登录)→ 由 slug 链接定位卡片 → 点蓝色「更新」span(精确,避免误中其他卡片)→ 等模态框 → 上传 zip → 设#skill-version(不传则自动 +1)→(可选 changelog/desc)→ 点「更新 Skill」提交 → 模态框关闭判定成功。 - 最少只需
--slug + --zip(版本号沿用模态框预填值)。
选择器映射(2026-09-06 实测,已 live 验证)
| 步骤 | 选择器 / 文本 | 备注 |
|---|---|---|
| 我的 Skills | /enterprise/dashboard | 注意不是 /team-skills |
| 登录校验 | button:hasText('发布团队 Skill') | 不存在即 SESSION_EXPIRED |
| 定位卡片 | a[href="/team-skills/<slug>"] 向上走到含「更新」span 的卡片 | 精确,避免误中 |
| 更新链接 | 卡片内 span 文本精确 更新(class 含 #3957FF) | 用 ElementHandle 真实点击触发模态框(el.click() 不触发 React 句柄) |
| zip 上传 | input[type=file][accept*="zip" i] | 视觉隐藏,只判 attached 不判 visible;setInputFiles 直接打 |
| 版本号 | #skill-version | 预填下一版本;更新必须设新版本 |
| 变更说明 | #skill-changelog | 可选 |
| 描述覆盖 | #skill-summaryZh | 可选 |
| 提交 | button:hasText('更新 Skill') | 精确匹配,模态框标题 H2 同名但非 button |
验证提交是否成功
- 提交后模态框关闭即视为成功;技能进入审核(卡片状态变
安全审核中/团队管理员审核中,详情链接在审核期间可能被隐藏)。 - 确证技巧:再次打开该 Skill 的更新模态框,看
#skill-version预填值——若已从1.0.1变为1.0.2,说明上一次 1.0.1 已落库。 - 版本历史(详情页「版本历史」标签)在审核通过前只显示最近已通过版本。
⚠️ 边界 / TODO
- 更新提交后进入人工/安全审核,不会即时上架;版本历史需审核通过才出现新版本。
- 收费 Skill 更新走 SkillPay 入驻,不在本 skill 覆盖。
- 若 skillhub 改版导致「更新」入口或模态框字段位移,按上面选择器映射逐一核对即可。
会话前置(首次必须)
~/.skillhub-session/cookies.json不存在时需先跑login.cjs(同 publish skill 目录),人工完成 OneID 登录写 cookie。- cookie 失效时重跑
login.cjs。