多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

如何为 delegate-skills 贡献新实现者技能:4 条不变式与合并清单(开发者指南)

如何为 delegate-skills 贡献新实现者技能:4 条不变式与合并清单(开发者指南) 如何为 delegate-skills 贡献新实现者技能4 条不变式与合并清单开发者指南【免费下载链接】delegate-skillsDelegate a coding task to a separate coding agent CLI, review the diff, land the commit yourself — one per implementer.项目地址: https://gitcode.com/gh_mirrors/de/delegate-skillsdelegate-skills是一个 AI 编码代理委派delegation技能包由编排代理orchestrator把编码任务委派给独立的 CLI 编码代理implementer再由你自己审阅 diff、跑测试并提交。本文是贡献一个新实现者技能implementer skill的完整开发者指南——先看懂所有技能必须满足的4 条不变式invariants再照着合并清单merge checklist逐项落地让你的新 relay 一次通过评审。 开工前先记住项目第一条规矩claim an implementer before you build先认领再动手。这个项目已经发生过两次两人独立构建了同一技能、结果都白费的事。提交前务必查看开放认领open claims与开放 PR。贡献前 2 分钟认领与仓库准备确认你要支持的 CLI尚未被认领也没有人正在做检查开放 issues 与 PR 列表。克隆仓库并开始开发git clone https://gitcode.com/gh_mirrors/de/delegate-skills通读两份宪法文件并把它们指给你的 AI 代理一起读CONTRIBUTING.md — 4 条不变式、合并清单、发布流程AGENTS.md — 受控词汇表别自造新词与发布前检查单核心关键词一4 条不变式新技能的硬门槛以下 4 条不变式适用于仓库里的每一个*-delegate技能也是新技能能否被接受的验收标准#不变式一句话解释1独立 CLI 修改真实工作树diff 即交付物不是 API 包装、不是托管网关——成果必须能用git diff审阅。没有工作树就不属于这里2relay 永不提交提交权永远属于审阅者你relay 只负责派工和收集结果3仅用 Node 内置模块零依赖、无自有网络调用、不读写凭据、无遥测relay 只启动实现者 CLI 与git4自治能力用 CLI 自己的术语描述CLI 强制不了的就在文档里直说如无只读模式。没有只读模式的 CLI 可以合并暗示它有只读模式的技能不行⚠️ 第 4 条最容易被忽视像 Grok 这类无法强制只读的 CLIrelay 会报告三态readOnlyViolation触发器——这种如实说明局限正是可合并的做法。标准目录结构形状即契约每个实现者技能是一个目录命名cli-delegate动词属于仓库名目标代理才是技能名。参照现有样板 skills/codex-delegate/SKILL.mdskills/name-delegate/ ├── SKILL.md ├── scripts/ │ └── relay.mjs └── references/ ├── writing-the-brief.md ├── dispatch-and-poll.md ├── review-and-land.md └── multi-task-queues.md两个容易踩坑的细节正好 4 个 references不是 3 个也不是 5 个——the shape is the contract形状即契约。可对照 skills/codex-delegate/references/writing-the-brief.md 理解每篇该写什么。SKILL.md的description是唯一触发信号只写做什么 何时用且必须 1024 字符部分编排器如 ZCode 会硬性截断拒收。name必须等于目录名还要写compatibility:指明二进制与其认证步骤。核心关键词二合并清单Merge Checklist逐项过以下是 CONTRIBUTING.md 中合并清单的完整复刻逐项打勾再开 PRskills/name-delegate/SKILL.md—description只在该 CLI 被委派时触发compatibility:写明二进制与认证步骤4 个references/*.mdwriting-the-brief、dispatch-and-poll、review-and-land、multi-task-queues1 个scripts/relay.mjs如 relay.mjs 的结构仅 Node 内置模块永不提交result.json说delegate-relay.result.v1协议status、exitCode、signal、最终报告、touchedFilesgit 无法报告时为null工作树干净时为[]、CLI 暴露时的会话 id用法错误在写结果文件之前以退出码 2 结束二进制缺失以 127 退出并写出结果文件注册进 test/harness/constants.mjs — 新 relay 像所有兄弟技能一样进入 timeout / abort 测试矩阵README.md 技能表格加一行AGENTS.md 词汇表加一行用该 CLI 自己的术语skills.sh.json 增加一个条目README 的Verification status加一行验证记录——只声明你真实跑过的contract-tested, live run pending 是可合并的回答没跑却写 verified 不是✅ 好消息测试套件会自我检查——如果你的技能目录漏登矩阵、缺一篇 reference 或没进skills.sh.json整个测试直接失败不用评审人帮你抓漏。加入冒烟矩阵新 relay 的第一堂课把技能名加入 test/harness/constants.mjs 的SKILLS数组后你的 relay 就自动进入与所有兄弟相同的超时/中断路径验证。本地开发时不必每次跑全量# 只跑你新增的模块逗号分隔可跑多个 node test/relay-smoke.mjs --only yourskill # 全量冒烟提交前必须跑 node test/relay-smoke.mjs冒烟套件会用假 CLI驱动 relay 做端到端验证timeout 场景要求看门狗杀掉实现者的整个进程树并写出status: timeoutabort 场景要求杀掉 relay 本身后仍产出status: aborted的结果文件。机制细节见 test/relay-smoke.mjs 头部注释。共享 helper字节级一致契约所有 relay 共享一小撮 helper如killChild、gitTouchedFiles、parseDuration它们的契约是字节级完全相同byte-identical。修改前先检视每一个存在分歧的兄弟实现把最强的行为包括边界值与超时处理带过来然后运行一致性门禁node test/relay-parity.mjs node test/relay-smoke.mjsdocs/plans/relay-core-dedup.md 记录了这套一致性门禁的来龙去脉——它诞生于真实的漂移事故是维护者最在意的事之一。提交前验证Pre-publish Checklist开 PR 前按 AGENTS.md 的Before publishing a change走一遍# 本地验证包结构 npx skills add . --list # relay 帮助 一次性仓库上的只读/无写入运行 node skills/name-delegate/scripts/relay.mjs --help另外两条高频检查点改了 relay 的启动方式在 Windows 原生 PowerShell/cmd 上也要冒烟不只是 Git Bash/WSL——.cmdshim 解析问题只在那里暴露。改了完成判定或touchedFiles先读该技能的结果契约并对干净树、预置脏文件、子模块、git 不可用等场景断言精确的delegate-relay.result.v1字段而不是笼统的成功/失败。PR 描述里写明你跑了什么——维护者会逐行读 relay并对验证声明中的每一句提出追问。发布流程git tag 才是版本号安装固定install pinning使用git tag而非metadata.version把发布落到master将所有技能的metadata.version提升到本次发布的 semver如0.2.0创建带注释的 tag 并推送git tag -a v0.2.0 -m v0.2.0→git push origin v0.2.0用户以npx skills add amElnagdy/delegate-skillsv0.2.0安装固定版本。用户可见的技能或 relay 契约变更要升 tag纯文档或纯冒烟可以是 patch。Schema iddelegate-fleet.v1等在 JSON 结构破坏时独立升版。常见问题速答Q能不能直接复制一个现有技能改可以——选与目标 CLI 行为最接近的兄弟作模板如都走 stdin 派 brief 的可参考 Cline 系但形状即契约4 篇 reference、1 个 relay、字节级一致的共享 helper 一个都不能少。Q只想修现有 relay 的 bug不需要认领。保持 diff 单一关注点跑node test/relay-smoke.mjs和npx skills add . --list在 PR 里说明你验证了什么即可。Q我要做的是配置类工具技能和实现者技能一样吗不一样。skills/delegate-setup/SKILL.md 是唯一的**工具技能utility skill**例外它发现 CLI、写入 lane 配置但永不派工。不要发明第二个重复 lane 配置的工具——扩展delegate-setup而不是新建。Q评审流程是什么样的一名维护者逐行审查 relayCodeRabbit 等自动评审仅供参考其不可用时记录并继续不等待。两个 PR 撞同一实现者时以本清单满足度定胜负——满足更多项的先合并。把这份清单贴在 PR 模板旁边4 条不变式保你方向正确合并清单保你一次通过冒烟矩阵替你把漏登注册这类低级失误挡在门外。祝合并顺利 【免费下载链接】delegate-skillsDelegate a coding task to a separate coding agent CLI, review the diff, land the commit yourself — one per implementer.项目地址: https://gitcode.com/gh_mirrors/de/delegate-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表