1实现原理 · 为什么它能做到
迁移被定义为「结构重排」而非复制文件:至少同时解决项目级规则文件、skill 真源位置、bridge 命名规则、多端一致、可持续维护五件事。
**这不是安装教程。也不是脚本执行器。**
真源优先:项目内 skills/ 是理想真源,~/.claude|.codex|.grok|.agents/skills 只是 bridge 或宿主安装入口,长期逻辑不得写在 bridge 里。
- `~/.claude/skills/`、`~/.codex/skills/`、`~/.grok/skills/`、`~/.agents/skills/` 都只是 bridge 或宿主安装入口
不假设项目已规范:显式枚举 4 类规则层现状(齐全半迁移 / 只有 CLAUDE.md / 只有 AGENTS.md / 完全散落)× 5 类宿主现状(只有 Claude / 只有 Codex / 只有 Grok / 只有通用 Agents / 多端但不一致)作为分支依据。
- **D 类**:没有规范,skill 散落
六阶段流程每段都以「写入前确认」收口:审计 → 规则文件迁移 → 真源识别/建立 → 命名与 frontmatter → 生成多端 bridge → 验证。
不要一口气做完再汇报。
Grok bridge 有硬约束与精确模板:frontmatter 必须含 user_invocable: true,description 必须写明在 Grok TUI 中的触发方式与「先读真源」,正文推荐 Grok Bridge 小节 + Source of truth 绝对路径。
Grok bridge **必须** 在 frontmatter 里包含 `user_invocable: true`,否则用户在 Grok TUI 输入 `/` 后搜不到这个 skill。
通用 Agents 侧优先用软链而非复制,并对同名冲突给出保守策略:不覆盖、报告目标路径与当前类型、由用户确认是否迁出旧目录。
`~/.agents/skills/<name>` 优先使用软链指向真源目录。这个目录已知会被豆包 Mac App、Trae Solo 和 Codex 读取。
命名统一有可判定规则:每个 Skill 只保留 1 个可调用名、小写英文 kebab-case、dbskill 正式 Skill 用 dbs- 前缀、目录名与 frontmatter name 与 bridge 目录名必须完全一致、Codex display_name 必须等于英文标准名、short_description 禁止模板套用。
可调用名使用小写英文 kebab-case;dbskill 正式 Skill 使用 `dbs-` 前缀,例如 `dbs-good-question`。
2核心能力
4风险提醒 风险提醒:蓝色 · 知晓即可
- 会改动用户主目录下的宿主 skill 目录 — 在 ~/.agents/skills/<name> 建/更新软链会影响其它宿主应用(豆包 Mac App、Trae Solo、Codex)读到的 skill 集合;SKILL.md 要求冲突时不覆盖并要求用户确认,但确认后的影响范围超出当前项目——建议在受控环境先行验证。
- 写入/移动文件的风险依赖用户确认纪律 — 「不经确认不移动文件」是提示层约束;若宿主自动批准工具调用,Phase 2/3 的批量改写可能在用户未细看清单时执行。迁移前建议对项目做版本控制备份。
- 被收编的第三方 skill 文档成为长期指令源 — 候选发现模式会把项目内散落的 *skill*.md 认定为真源,之后每次调用都经它驱动行为;来源不明的文档一旦被收编,等于把外部文本升格为常驻规则。收编清单必须人工过目。
- 模板路径插值可能破坏 YAML/frontmatter — bridge 模板把「/绝对路径/到/项目/skills/技能规范名/SKILL.md」与技能名直接插入 YAML;含特殊字符、空格或换行的路径/名称可能产出不可解析的 frontmatter,需在生成后按 Phase 6 逐项验证。
- 不负责内容质量 — 它只做结构迁移:不评审方法论质量、不做知识库内容优化(SKILL.md 明确列在「不负责」清单),不应对迁移结果产生「内容也已整理好」的错觉。
5第二遍独立确认
- [ok] 无脚本、无网络、无凭证 — 目录仅 SKILL.md + agents/openai.yaml;token 扫描(curl|wget|http|API_KEY|token|secret|\.env|bash|exec|python|npx)零命中;文中所有「写入」都是给 agent 的指令,不是自带代码。
- [ok] Grok 硬约束 user_invocable 逐字存在且被反复强调 — grep 命中 8 处,含约束条款、模板内字段、生成期校验、Phase 6 验证项与禁止事项「Grok bridge 绝对不能漏写 user_invocable: true」。
- [ok] bridge 模板为薄指针、不承载逻辑 — Claude/Codex 模板含 source_of_truth 与 bridge_mode: passthrough,正文仅「请读取真源:…本文件为薄 bridge,仅做入口指向。长期逻辑维护在真源。」;Grok 模板同样只指向 Source of truth。
- [ok] 「不覆盖既有同名真实目录/文件」是否有落地条款 — 「通用 Agents 目录策略」一节给出三条:不覆盖;报告目标路径和当前类型;让用户确认是否迁出旧目录。Phase 6 另列软链冲突/悬空软链检查项。
- [ok] 是否承诺执行安装(夸大检查) — SKILL.md 开篇即否认「这不是安装教程。也不是脚本执行器。」;全文无 npx/claude plugin install 之类命令,与自述一致。
- [ok] 与同仓库既有命名实践一致 — 命名规则第 2 条要求 dbs- 前缀;任务涉及的 8 个 skill 目录名(dbs-action、dbs-ai-check…)与各自 frontmatter name、agents/openai.yaml display_name 三处逐字一致,规则与仓库现状吻合。
- [ok] 元数据(license/stars/last_push/installs/commit) — GitHub API:stars 10121、pushed_at 2026-09-07T03:48:59Z、license.spdx_id NOASSERTION(根 LICENSE 为 CC BY-NC 4.0,非商业);本地 HEAD = 8b8e33f1ecaed8cee606fe950c4426b525ead314 = 任务 pin。
- [discrepancy] meta.installs 值域校正(批4 质检 2026-09-15) — 原记录为 skills.sh 仓库级聚合徽标(579.6K(skills.sh 徽标 /b/dontbesilent2025/…),并非本 skill 的单体安装量;站内惯例只记可定位的单 skill 数值 → 校正为 null(其他 25 份 dbs 报告本就为 null,修此 8 份以齐平)
6结论
d64fe9dda1661834…8b8e33f1ec