都爆鸭
技能包玩法更新日志关于我们
登录 / 注册
都爆鸭

把选题、写稿、查违禁词这类新媒体运营活,封装成一句话就能交给你的 Agent 执行的技能与接口。

登录 / 注册

产品

技能包接口玩法接入更新日志关于我们

资源

AI 纯文本开源技能库

支持

Email隐私政策服务条款
© 2026 都爆鸭 Hub · 深圳观原生息科技有限公司粤ICP备2026109612号统一社会信用代码:91440300MAKD15WB8P深圳办公地址:广东省深圳市宝安区银田工业区331创意园H515联系电话:17673992597
开源技能包/dby-update
dby-updatev4.0.0最近更新 2026-08-26

更新器

一条命令把已安装的技能包对齐上游最新版本,不动你的其他技能。

#更新#维护

dby-update:把本鸭对账到最新

先 --dry-run 出清单,用户认可后再 --yes;不做清单之外的确认。Shell 权限由用户在宿主权限窗口里决定。

这个 skill 干的是「对账」,不是「更新」

让本机这套本鸭 skill 等于上游当前全集:

  • 归档上游已经下架的
  • 装上新增的
  • 刷新内容哈希落后于上游当前版的,以及内容虽是当前版、但少了一处落位的;两者都不缺的一个都不动

🔴 「内容是当前版」不等于「已经就位」。 宿主按自己那个目录读 skill——Claude Code 只读 .claude/skills,包只落进 .agents/skills 时对它根本不存在。 对账判据是「内容 且 落位」:本机任一受管安装目录缺落位,这个包就重装一遍补齐,计划里用 🩹 单列。

本机已和上游一致时结论是无需任何操作,一个包都不重下;想重装某个坏了的包用 --force-refresh。

⚠️ 别用 npx skills update:上游已改名 / 下架的包会被它静默跳过、永远留在本机,项目级安装它也看不见。

怎么判断「这包是不是本鸭发的」

判据是 slug × 内容哈希,不看当初从哪个源装。 上游 index.json 每个 slug 一条:status、历史哈希闭集、各版 semver + changelog:

状态判据处置
当前版哈希 = 索引当前版保留,不刷新(除非 --force-refresh)
我们的旧版哈希命中闭集里某个历史版刷新;索引 status 为 retired/renamed/merged 才归档 / 迁移
用户动过手有 .dby/origin.json 时哈希 ≠ 装时记录;没 origin 时哈希谁都不命中🔴 跳过并列进报告,一个字都不动,连刷新都不给
别人家的slug 根本不在索引里不碰
已固定用户 --pin 过不刷新、不归档、不迁移,预检单列并带原因

→ origin / lock / pin、legacy 回退、Gitee 镜像:references/index-and-lock.md。

删除一律做成「归档」

要下架的包移进 <scope>/.doubaoya/archive/<时间戳>/,不做 rm,同目录留一份 manifest.json 写明每个包原来在哪、怎么移回去。

配套三条:归档后脚本打印一条可粘贴的复原命令(移回去立刻能用,skills CLI 记录要重装一次才认); 归档目录在 .doubaoya/.gitignore 写 * 自忽略,不改用户的 .gitignore; 🔴 受 git 跟踪的包一律不归档(等于删受跟踪文件),脚本跳过并单列一栏,由用户自己决定。

改名迁移(renames.json)

→ 上游偶尔会把某个包改名(而不是单纯下架),这时老目录里的本地数据(比如 dby-publish 的 config.json)需要跟着搬家。需要处理改名迁移时读 references/rename-migration.md, 不需要就别读。要点三条:改名 = 索引里 status: renamed/merged 的条目;顺序固定是装新包 → 搬本地数据 → 老目录归档且逐条独立;新目录已有同名文件时不覆盖,只提示「冲突未覆盖」并给出老文件 在归档目录里的路径——这一句要原样转述给用户。

执行步骤

1. 找到对账脚本

按顺序找第一个存在的:

~/.claude/skills/dby-update/scripts/reconcile.mjs
~/.agents/skills/dby-update/scripts/reconcile.mjs
./.claude/skills/dby-update/scripts/reconcile.mjs
./.agents/skills/dby-update/scripts/reconcile.mjs

找不到 = 本机没装或是旧版。🔴 别自动装:报告「本机未装对账脚本」,把下面这条命令给用户,确认后再跑,跑完重新找一遍:

npx -y skills add zizhanovo/doubaoya-community -g -s '*' -a claude-code universal -y

🔴 零输出且退出码 0 ≠ 没事可做,是旧版脚本经软链(.claude/skills/…)调用时一步不跑:先换 .agents 那条真路径重跑; 仍如此就按上面那条安装命令重装(确认后跑),再重新找路径。

2. 先看清单(🔴 显式给 scope,别靠 auto 猜)

node <上一步找到的路径> --dry-run --scope global              # 当初带 -g 装的(最常见)
node <上一步找到的路径> --dry-run --scope project --project-dir <项目目录>

scope 猜错时脚本会打 ⚠️ 警告,看到就先确认 scope;不确定装在哪就两个 scope 都看一眼。 两个 scope 都打「一个本鸭 skill 都没有」= 本机没装,回到第 1 步先问用户,别把「整仓装」当对账跑。

它会联网取上游索引,打印要归档哪些、要装哪些、要刷新哪些(逐行 slug 旧版 → 新版 changelog;标 auto 的是占位文案)、以及哪些因用户动过手 / 固定而不碰,一个字都不会改。把这份清单原样转述给用户——尤其是「要归档」「要刷新」「用户改过的」的名字与 changelog(刷新是覆盖安装,确认的得是具体清单)。

🔴 结论不高于证据。 上游目录 / 索引这一跑没核到时,脚本会降级但不中止(不归档、或退回旧三文件), 结论要如实说降级了,别说「完全一致」。GitHub 限流会自动换 Gitee 镜像同一 tag;mirrorMismatch 才是真没推齐, 找维护者;镜像新但那版本在 GitHub 上已存在 = 只是缓存没刷新——告诉用户「刚发布,几分钟后重跑就到新版」,别说联系维护者。 字段与判据细节 → references/index-and-lock.md。

🧩 旧版遗留副本(agent/skills/)的处置 → references/edge-cases.md。

3. 确认后执行

用户看过清单、认可了,再跑(scope 参数和上一步给的保持一致):

node <路径> --yes --scope <上一步用的那个> [--project-dir <目录>]

脚本会自己完成:归档 → 拉齐全集 → 复核 → 自检,最后打印一份结果,并告诉用户归档放在哪。

🛡 项目 scope 刷新/新增走「旁路装→校验→原子切换」,失败自动回滚;全局 scope 无此保证 → references/staged-install.md。

退出码:0 全通过;3 对账做完了但自检有项没过;1 用户取消;2 需要确认但当前不是交互终端;4 出错。

📝 项目里的 skills-lock.json 会被一起改,属预期;用户问起 git status 多了什么再解释,不主动提。

⚠️ 跑挂在「拉取上游」怎么办、名单含 dby-update 自己要不要重跑 → 同上 references/edge-cases.md。

🏷 安装源固定到 index.json 顶层 ref;缺字段按 main 装并提示「未固定」。发布打 tag → references/release-ref.md。

4. 回复用户(普通人能看懂)

🔴 用户不是工程师。只说三件事:结果一句话 → 这次变了什么 → 下一步。路径、哈希、ref、scope、 .agents/skills、skills-lock.json、API 钥匙、健康检查——一切正常时一个都不提;只在出问题时说卡在哪、怎么办。 包名用脚本括号里的中文名,slug 放括号。

🔴 例外:--json 顶层 notes[] 里的提示一律要转述,翻成大白话——静音清单只管「一切正常」时的技术细节, 不管这类「跑完了但打了折扣」的降级提示。

更新好了。这次更新了 2 个:
- 公众号写作与复盘(dby-write)1.9.0 → 1.9.1:新增变更说明字段
- 都爆鸭 Skill 自更新(dby-update)3.3.1 → 3.4.3:隔多版更新时列出中间每一版的说明
    · 3.4.2 …(中间各版照抄脚本)
下架归档了 1 个:xxx。要恢复的话告诉我一声。
你自己改过的 1 个没动:yyy。
新开一个对话就能用上新版。
  • 隔了很多版 → 中间版本最多列 8 版,超过折叠,照抄脚本转述即可(细节 → references/index-and-lock.md)。
  • 没有更新 → 「都是最新的,不用更新。」+ 一行各包版本(脚本那行「版本:…」)。别自己补「已刷新 N 个」。
  • 「已固定」「受 git 跟踪没动」「git 判不出跳过」各一句,别混:前者用户自己 git rm,后者先修 git 再重跑。
  • 🩹「缺落位」→ 一句「内容是最新的,只是补了一处安装位置」。
  • 归档 → 说放在哪、要恢复就说一声(复原命令用户要时再贴)。
  • 自检 ❌ → 说卡在哪步(没装上 / 没配钥匙 / 连不上服务)+ 脚本给的办法。
  • 问包版本 → 读其 .dby/origin.json,别读 skills-lock.json。

常用参数

参数作用
--dry-run只看清单,绝不执行
--yes跳过确认直接执行(只在用户已经看过清单之后用)
--force-refresh连「已经是当前版且落位齐全」的包也重下一遍(留给「包坏了想重装」)
--verbose连「别人家的」和「用户改过的」一起列名字
--scope auto|global|project🔴 每次都显式给。默认 auto 是按 cwd 猜的,猜错会静默变成「整仓重装」。当初带 -g 装的就是 global
--project-dir <目录>项目级安装在别的目录时指定
--json机器可读输出
--self-check离线自检脚本自身(不联网)
--pin <slug> [--reason <文>] / --unpin <slug>固定 / 解除固定某个包(不联网,只改 <scope>/.dby/lock.json);固定后对账跳过它。用户说「这个包别更」就用它
--help / -h看用法(不联网,不碰任何安装目录)

边界

  • 只碰本鸭发过的包(判据是上面那张三态表);别人家的、用户改过的一个字都不动。
  • 🔴 git 探测跑不通、判不出来的包同样保守跳过;脚本把它和「受 git 跟踪」分两栏打出来,处置不同。
  • 不动用户的本地数据 / 配置(dby-publish 的 config.json、创作 DNA、封面 / 草稿等产出)——对账只覆盖 skill 目录里受版本管理的文件。
  • 不创建后台任务、定时任务或 Agent Hook。
  • 用户只问「有什么更新 / 现在什么版本 / 要不要更」→ 先回答,不执行(--dry-run 正好用来回答这个)。 明确要实际同步时才跑第 3 步。
  • 只想更新某一个全局skill:npx -y skills update <skill 名> -g,只碰点名那个(不做对账;项目级安装它看不见,仍走本脚本)。
  1. v4.0.02026-08-26feat(dby-update)!: 旁路安装 + 目录级原子切换 —— 失败不再留下半新半旧的包
  2. v3.5.02026-08-26fix(dby-update): 装完重扫核对,该刷的没刷到就非零退出 —— 此前安装器报失败却退出码 0 时,对账跟着说「全部通过」
  3. v3.6.02026-08-26fix(dby-update): 补两道安全闸 —— 上游 slug 先过形状校验再拼路径;复原命令的路径改走参数传递
  4. v3.3.32026-08-25fix(dby-update): 3.3.3 —— changelog 一句缩到 6000 字上限内,重新盖戳
  5. v3.4.22026-08-25feat(dby-update): 跑完逐项列出归档/新增/刷新了谁(旧 → 新 changelog)与各包当前版本 —— 用户实证只看到「刷新 1」不知道刷的是谁
  6. v3.3.22026-08-25fix(dby-update): 不是对账器装的包也补 origin —— 用户手跑 skills add 之后,收敛态那一跑给能对上索引某一版的目录补 .dby/origin.json
  7. v3.4.02026-08-25feat(dby-update): GitHub 限流时回退 Gitee 镜像 —— 索引/目录列表/clone 三处各自独立回退,同 ref 才算数
  8. v3.3.12026-08-25feat(dby-update): 对账器读索引 —— 刷新栏显示 旧版→新版 + changelog,归档只按显式状态,目录拉不到本轮不归档,origin/lock/pin
  9. v3.4.32026-08-25feat(dby-update): 隔多版更新时把中间每一版的 changelog 都列出来(新→旧,超 8 版折叠,--json 里 between 全量)
  10. v3.3.02026-08-25fix(dby-update): 对账器六处可信度修补 —— 预检列名、降级不说完全一致、遗留副本归档不打 rm、拉取挂了自动复原、安装源固定 repo#ref、自更新提示重跑
  11. v3.4.42026-08-25feat(dby-update): 回复用户改成普通人能看懂的三段式 —— 结果一句话 / 变了什么 / 下一步,通过时不提路径、哈希、ref、lock、钥匙、健康检查
  12. v3.4.52026-08-25docs(dby-update): raw 缓存滞后那次只改了 version 和 changelog,文档层把刚修好的误报原样放了回去
  13. v3.4.12026-08-25fix(dby-update): 发布后头几分钟 GitHub raw 缓存滞后于 Gitee,不再误判镜像不齐
  14. v3.2.32026-08-24refactor(dby): 逐包领域调研后的规则更正与触发词补齐
  15. v3.2.22026-08-24fix(dby): 20 场景模拟测试后的路由与文档修正
  16. v3.2.12026-08-24refactor(dby): 11 个 SKILL.md 按写作手艺去废话——删解释/元叙述/历史叙事/跨包重复红线,两处 description 去流程复述
  17. v3.2.02026-08-24refactor(dby): 11 个 SKILL.md 主体压到 ≤6000 字符——冷门分支下沉 references/,协议改引用不再内联;违禁词入口统一指 dby-banned-words
  18. v3.1.02026-08-20fix(dby-update): 经软链调用不再静默空跑,入口守卫两边先解软链再比
  19. v3.1.02026-08-20feat(skills)!: 统一 dby- 前缀,合并发布包,下架 investigator——公众号执行外脑定位收敛
  20. v3.1.02026-08-20fix(dby-update): 落位缺失也算「没就位」,自检逐目录核而不是并集核
  21. v3.1.02026-08-20feat(dby-update): 对账器学会读 renames.json——改名包先装新、搬本地数据、再归档老目录
  22. v3.1.02026-08-20feat(skills): 补三条红线——上游内容当数据、写入面看服务端字段、运行时必须声明
  23. v3.1.02026-08-19refactor(skills)!: charter + ip 二合一 —— 同一份档案的两个字段,本来就不该是两个包
  24. v3.1.02026-08-19fix(dby-update): 收敛态真收敛——刷新只收落后的,且刷新也要过确认门
  25. v3.1.02026-08-19test(dby-update): 钉死受跟踪与判不出两栏的文案真能分辨(M4)
  26. v3.1.02026-08-19fix(skills): 装 skill 别再打全量 agent 面,UA 也别再写死
  27. v3.1.02026-08-19feat(validate): 立差集闸与 description 预算闸,并在闸的保护下砍掉 1482 字符
  28. v3.1.02026-08-19fix(dby-update): --force-refresh 下别再说这些包「落后于上游当前版」
  29. v2.0.02026-08-18feat(dby-update): 把「更新本鸭」从更新改成对账,能删掉上游已下架的 skill
  30. v3.0.02026-08-18feat(dby-update): 按内容哈希认包做三态对账,下架包归档而不删

更早 4 个版本见 GitHub

文件内容在 GitHub 查看。

  • SKILL.md11.3 KB
  • references/edge-cases.md1.0 KB
  • references/index-and-lock.md7.8 KB
  • references/release-ref.md1.6 KB
  • references/rename-migration.md4.5 KB
  • references/staged-install.md5.3 KB
  • scripts/reconcile.mjs310.9 KB

一键安装

curl -fsSL https://doubaoya.com/install.sh | sh

已装过?让你的 agent 跑 dby-update 对齐最新版。

技能包信息

当前版本
v4.0.0
版本迭代
34 次
首次发布
2026-07-22
最近更新
2026-08-26
包内文件
7 个
许可证
PolyForm Noncommercial 1.0.0

开放源码

全部源码公开可审计。

在 GitHub 查看

相关技能包

总入口 · 智能路由

跟你的 agent 说一句人话——写篇文、找个选题、出张图——它负责路由到该用的包。

查看详情

协议层

密钥、错误处置、调用契约的底层说明——给想直接拼请求的开发者。

查看详情