ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenRig 技能库镜像与变更治理机制:从 skills/CHANGELOG.md 读懂 _canonical 技能集的发布与漂移防护

OpenRig 技能库镜像与变更治理机制:从 skills/CHANGELOG.md 读懂 _canonical 技能集的发布与漂移防护 人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载导读OpenRig 在仓库根目录维护了一个公开的技能库镜像skills/_canonical/并配套一份按策展周期curation cycle追加的变更日志skills/CHANGELOG.md。本文以这份变更日志为核心线索完整拆解 OpenRig 技能集的发布链路——技能如何从 daemon 内置目录镜像到仓库根目录、mirror-skills脚本如何做内容级漂移检测、变更日志为何必须手工维护且新条目置顶以及当前仓库中 spec / canonical / plugin 三 edge 布局的演进形态。读完本文你将掌握 OpenRig 技能库的目录所有权约定、镜像命令与 CI 门禁、变更治理规范并能对照源码自行验证镜像是否漂移。背景OpenRig 的 skills 是什么在进入变更日志之前先建立一个最小上下文。OpenRig 的 skill 不是字典意义上的“能力单元”而是一种渐进式披露progressive-disclosure的上下文注入原语每个 skill 是带 YAML frontmatter 的 Markdown 文档核心文件名为SKILL.mdfrontmatter 里的description是触发条件trigger常驻在 Agent 的“热层”hot tier用于廉价模式匹配正文body在触发时加载文件夹内的 references 等附属文件按需加载。OpenRig Agent 会自动发现技能一般不需要显式调用——编写一个 skill 的本质是用足够精确的触发词命名一个反复出现的需求让 Agent 在正确时机“够到”它。这一机制在 skills/README.md 中有完整说明也可直接阅读 skills/_canonical/core/openrig-skills/SKILL.md 这份索引来观察真实 skill 的形态。技能库目录结构与严格所有权约定skills/目录是 OpenRig 技能集的公开可见镜像publicly-visible mirror其结构如下路径内容所有权skills/_canonical/镜像出的技能集按core/、pm/、pods/、process/分类另有少量未分类项严格复制品禁止直接编辑skills/CHANGELOG.md技能变更的追加式日志按策展周期收尾记录手工维护hand-authoredskills/README.md技能库使用与作者指南手工维护skills/LICENSEApache-2.0与父项目一致手工维护这里的“严格所有权strict-ownership”约定是整套机制的地基镜像脚本只会触碰_canonical/内部绝不会覆盖与_canonical/平级的手工文件。正如 skills/CHANGELOG.md 初始发布条目所记录的——这样做的目的是让 README、CHANGELOG、LICENSE 以及未来可能出现的插件清单等顶层文件在每次镜像运行后都得以存活而不是被镜像脚本当作目标目录的一部分清掉。对应地scripts/mirror-skills.mjs 头部注释也明确写了这一约定。变更日志的定位与格式规范skills/CHANGELOG.md本身是一份追加式append-only日志其角色由技能库运营规范operating-the-skill-library/SKILL.mdv1.9 第 8 节的两条规则定义“In-repo skills hub仓库内技能枢纽”与“skills/CHANGELOG.md”。该规范位于技能库运营层的 substrate 工厂目录详见 skills/README.md 中的 Authoring 小节不在公开镜像树内但变更日志首页明确引用了它作为治理依据。日志的格式与用途在文件头有精确表述新条目永远落在顶部New entries land at the top保持“越新越靠前”的阅读顺序每个条目必须记录三要素策展周期日期cycle date、变更内容what changed、受影响技能which skills affected之所以要独立维护这样一份日志是为了让跟踪技能集的用户可以独立于 daemon 二进制版本拉取技能更新——技能可以随一个 PR 原子性地与加载它的 daemon 一起发布但阅读者不必翻 daemon 版本号就能知道技能集发生了什么变化。一个典型的条目骨架如下## YYYY-MM-DD — 版本/主题 curation 标题 本次变更的一句话概括 Mechanism: 底层机制描述例如从哪个目录移除、更新了什么资源池、镜像到了哪里 Why: 为什么做这次变更 References: - 依据的规范规则 - 机制对比文档两条历史条目从初始发布到 0.3.0 策展变更日志目前收录了两条完整记录恰好构成“从无到有、再到第一次收敛”的完整叙事。2026-05-09 — Initial publish: skills hub bootstrap这是技能库的初始发布记录了三个关键事实镜像方向从 daemon 内置技能目录packages/daemon/specs/agents/shared/skills/首次镜像到repo-root/skills/_canonical/初始规模共发布27 个技能横跨 4 个分类core/、pm/、pods/、process/另有未分类的顶层技能例如claude-compact-in-place/与rig-architect/。需要说明的是这 27 个是 2026-05-09 当日的基线数量当前仓库的_canonical/已进一步演进见下文“当前清单”小节Why把技能集暴露在仓库根目录让公开技能库无需在packages/daemon/specs/里掘地三尺即可发现同时遵循_canonical/严格所有权约定保证手工维护的顶层文件在每次镜像后存活。2026-05-10 — 0.3.0 starter-skill curation这是第一次策展收敛从内置 starter 技能集中移除了一个已废弃的 HA 取向HA-oriented技能。starter Agent 转而依赖与其随附启动指引相匹配的更窄的角色role、流程process与原地压缩compact-in-place技能。该条目同样记录了机制细节从packages/daemon/specs/agents/shared/移除该技能更新共享的 AgentSpec 资源池将更新后的 canonical 清单重新镜像到skills/_canonical/。从这条记录可以读出技能集治理的完整闭环策展决策 → 产品源product source变更 → 资源池更新 → 重新镜像公开副本任何一步缺失都会造成产品源与公开镜像之间的漂移——这正是下一节源码级拆解要解决的问题。镜像机制源码级拆解变更日志指明的机制是npm run mirror-skills调用 scripts/mirror-skills.mjs一个封装 rsync 的 Node 脚本。其核心常量与参数如下对应 scripts/mirror-skills.mjsexport const SOURCE_DIR packages/daemon/specs/agents/shared/skills/; export const TARGET_DIR skills/_canonical/; export const EXCLUDES [ feedback.md, // 策展周期的记账文件不进入公开面 evals/, // 每个技能的评价试点基础设施可能泄漏测试夹具 .DS_Store, *.local.md, ];rsync 的调用参数scripts/mirror-skills.mjs值得逐项解释return [ -a, // archive 模式保留权限与时间戳 --delete, // 目标端多余文件一律删除严格镜像语义 --delete-excluded, // 被排除的模式在目标端同样删除 --itemize-changes, // 输出逐项变更明细供解析 ...(dryRun ? [-n, --checksum] : []), // 检查模式加 -n 与 --checksum ...EXCLUDES.map((p) --exclude${p}), SOURCE_DIR, TARGET_DIR, ];这里有一个值得注意的工程细节检查模式--check使用--checksum按文件内容哈希而非 mtimesize 判断差异。这意味着git checkout或cp这类只更新 mtime 的操作不会误报漂移——只要字节一致就算同步而在应用模式下保持默认的 mtimesize 以追求速度同时 archive 标志保留 mtime保证后续检查依然干净。EXCLUDES中的每一项都有明确的治理理由见 scripts/mirror-skills.test.mjs 中的测试注释feedback.md是策展周期记账文件evals/是技能评价试点基础设施cases.yaml、harness、outcomes其中可能嵌套.agents/skills/测试夹具会干扰技能盘点工具。变更解析与漂移判定parseChangesscripts/mirror-skills.mjs从 rsync 的--itemize-changes输出中提取真正的变更行按 rsync(1) 首列编码过滤/— 文件内容已传输内容变更c— 新建条目文件/目录/符号链接/设备.f...p.....— 纯权限变更镜像必须保留的唯一元数据字段mtime 漂移则被忽略*deleting— 目标端删除。对应测试scripts/mirror-skills.test.mjs用一个包含f core/openrig-user/SKILL.md、.f...p.....与*deleting行的样例验证了解析结果并断言干净的同步输出返回空数组。测试还覆盖了 rsync 3.x 的 11 位 itemization 与 openrsync 的 9 位宽度差异scripts/mirror-skills.test.mjs保证解析器对字段宽度不敏感。一旦检测到漂移buildStaleMessagescripts/mirror-skills.mjs会生成明确指引Skills mirror is stale at skills/_canonical/. Run: npm run mirror-skills Changes that would land: f core/openrig-user/SKILL.md *deleting removed/SKILL.md检查模式与 CI 门禁镜像脚本支持两种运行模式命令行为npm run mirror-skills应用模式执行 rsync将产品源同步到_canonical/npm run mirror-skills:check检查模式以--checksum做内容级 dry-run 漂移检测漂移则退出码为 1两条命令定义在 package.json。更关键的是mirror-skills --check已被接入仓库级测试门禁npm run test:repo的脚本链中包含node scripts/mirror-skills.mjs --checkpackage.json。因此如果有人在产品源改了技能却没有重跑镜像npm run test:repo会直接失败并用上面那条 stale 消息指明修复命令。测试文件中的“mirror is in sync with source”用例scripts/mirror-skills.test.mjs正是这条门禁的承载断言注释明确写着失败意味着“有人在未运行npm run mirror-skills的情况下编辑了源”。从镜像到三 edge 布局机制的演进变更日志记录的是 0.2 版机制单一 rsync 镜像而当前 scripts/mirror-skills.mjs 已经演进为三 edgecanonical / plugin / spec布局 控制面清单control-plane manifests驱动的流水线。生成的控制面文件包括scripts/skill-edge-layout.generated.json — 定义三个 edge 的路径与布局scripts/skill-edge-digests.generated.json — 每个 edge 下每个文件的 SHA-256 摘要scripts/product-public-skills.generated.json — 技能成员资格哪些技能属于产品公开集、哪些 not_publicscripts/internal-tokens.generated.json — 内部令牌与路径规则用于公开面泄漏扫描。从布局文件scripts/skill-edge-layout.generated.json可以看到三个 edge 的分工edge路径布局specpackages/daemon/specs/agents/shared/skillscategorized按分类组织canonicalskills/_canonicalmirror-of-spec规范镜像pluginpackages/daemon/assets/plugins/openrig-core/skillsflat扁平即同一技能集在“产品源spec→ 公开镜像canonical→ 插件分发plugin”三处保持内容一致checkGeneratedEdgesscripts/mirror-skills.mjs按布局与摘要双向比对能区分missing缺文件、digest内容漂移、unexpected多余文件、layout-missing布局要求但磁盘缺失、layout-category分类不符等各类漂移。此外公开面发布前还会经过scanInternalLeaks内部泄漏扫描与 frontmatter 清洗stripPublicSkill确保operator-agent、openrig-work/等内部令牌、distribution_scope等内部键不会泄漏到公开镜像——详见 scripts/mirror-skills.mjs 及对应的多条stagePublicSkills测试scripts/mirror-skills.test.mjs。当前 _canonical 清单与分类概况对照当前仓库的 skills/_canonical/ 目录公开技能集已从初始 27 个增长到35 个 SKILL.md分布如下core/17 个agent-starters、agent-startup-and-context-ingestion、cross-host-rig-commands、human-in-the-loop、messaging-the-human、openrig-architect、openrig-cmux、openrig-herdr、openrig-skills、openrig-software-factory、openrig-upgrade、rig-bundles-and-shareable-artifacts、rig-lifecycle、session-source-fork、specification-system、topology-mutation-and-seat-management、watchdogpm/7 个backlog-capture、context-builder、exec-summary、office-hours、plan-review、requirements-writer、ui-mockuppods/4 个development-team、orchestration-team、oversight-team、review-teamprocess/7 个agent-browser、context-engineering、dogfood、frontend-design、systematic-debugging、test-driven-development、verification-before-completion。部分技能携带附属资产例如openrig-software-factory/references/worked-example.md、openrig-upgrade/scripts/下的迁移脚本、process/dogfood/的报告模板、process/systematic-debugging/的find-polluter.sh等——这些附属文件同样由镜像脚本负责同步。值得一提的是初始发布条目中提到的顶层未分类技能claude-compact-in-place/与rig-architect/已不在当前清单中rig-architect已演进为分类内的core/openrig-architect这本身就是策展日志后续应记录的“迁移”类变更样本。作者工作流从 substrate 工厂到公开镜像skills/README.md 的 Authoring 小节给出了技能的两段生命周期这也是理解变更日志“为什么存在”的关键Substrate 工厂substrate/shared-docs/openrig-work/skills/——新技能的创作、审计与策展循环发生地每个技能带feedback.md策展记账与evals/评价试点基础设施。这是技能团队持续工作的真相源产品源packages/daemon/specs/agents/shared/skills/——随 daemon 发布的那部分技能。技能从工厂毕业后进入产品源才会被打包进 npm 包。repo-root/skills/_canonical/从产品源镜像而来严格是一份复制品。规则是永远不要直接编辑_canonical/产品源中的编辑必须在提交前重跑镜像脚本。这套“工厂 → 产品源 → 公开镜像”的流水线加上mirror-skills --check的 CI 门禁构成了技能集的事实单一来源保证。Future-state为 git subtree split 预留的形态变更日志与 README 都提到了技能库的未来形态当前目录结构被刻意组织成“仿佛它自己就是一个独立仓库”以便在规模增长到合适时机时git subtree split --prefixskills HEAD可以机械地完成拆分。在拆分之前仓库内镜像就是正确的作用域技能变更与加载它们的 daemon 二进制原子性地一起发布无版本错位风险一个 PR 同时覆盖技能与其加载器。关键文件速查变更日志skills/CHANGELOG.md技能库指南skills/README.md镜像脚本scripts/mirror-skills.mjs镜像门禁测试scripts/mirror-skills.test.mjs三 edge 布局控制面scripts/skill-edge-layout.generated.jsonnpm 脚本接线package.json公开技能集skills/_canonical/产品源技能集packages/daemon/specs/agents/shared/skills/插件分发 edgepackages/daemon/assets/plugins/openrig-core/skills赞分享人工智能AI Agent多智能体Agent 编排代码智能体CLI【免费下载链接】openrigBuild your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.项目地址https://gitcode.com/GitHub_Trending/op/openrig点击查看免费下载相关推荐3 步搞定视频号视频下载与解密res-downloader 资源嗅探完整指南3 步搞定视频号视频下载与解密res downloader 资源嗅探完整指南 刷到视频号短视频想存下来菜单里只有「分享」没有「保存」。res downloa桌面应用网络音视频Product-Manager-Skills 仓库 Agent 协作指南从 AGENTS.md 读懂技能治理与质量规范Product Manager Skills 仓库 Agent 协作指南从 AGENTS.md 读懂技能治理与质量规范 本文以仓库根目录的 AGENTS.mdAI 技能AI 插件SpacetimeDB Codex 插件维护指南Skills 同步机制、漂移检查与发布流程SpacetimeDB Codex 插件维护指南Skills 同步机制、漂移检查与发布流程 导读 本文围绕 codex plugin/DEVELOP.md 展数据库关系型数据库后端上一篇微信网页版访问难题一个免费插件帮你轻松解决下一篇微信网页版访问困境的破局者wechat-need-web插件深度解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表