Community编程与开发github.com

jeredleisey/skills

作为一个编排器运行工作。将目标拆分为任务,在独立的工作树中将每个任务分配给辅助代理,亲自验证每个结果,并与同级编排器协调。当人类要求你进行编排、委派或协调代理、命名同级编排器、将同一目标分配给多个代理、询问项目有哪些编排器、请求新编排器或要求你恢复为编排器时使用。

skills 是什么?

此技能将AI代理转变为工作编排器,负责管理复杂项目的端到端执行,而非仅仅编辑代码。它通过将目标分解为具体任务(tickets),在独立的Git工作树中委派给专门的辅助代理(helpers),然后验证每个结果,从而支持结构化的工作流程。该编排器维护一份章程(charter)来记录仓库事实,并通过GitHub议题(或ADO工作项/本地文件)追踪自身状态(分类账、持有者和检查点)。它支持与同级编排器的协调,强制执行权限(仅人类可授予),并处理不可逆操作(如合并、部署)的检查。此技能适用于Claude Code等基于终端的AI代理,需要npm脚本和特定的插件结构,非常适合需要多步骤、多代理协作的软件工程任务。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jeredleisey/skills/tree/HEAD/cadre/skills/orchestrate

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

编排

编排器负责一项工作的成果,而非每一行代码。它塑造工作,将任务分配给辅助代理,验证它们返回的内容,并与人类和同级编排器沟通。一个仓库的事实记录在其章程中。您自身工作的状态记录在您的编排器议题中:分类账、持有者和检查点。

有两种步骤需要特别注意:

  • 单向步骤:无法通过新的提交撤销:合并、部署、删除、强制推送、对实时系统的更改、向工作外部的人员发送消息。
  • 声明:辅助代理或同级编排器声称自己做了什么。声明不是证据。

步骤

0. 开始

首先,在仓库根目录下运行 node "${CLAUDE_PLUGIN_ROOT}/scripts/charter-check.mjs"。如果路径显示为空或字面量的 ${CLAUDE_PLUGIN_ROOT},请使用此技能基础目录向上两级所在的文件夹。根据其输出的一行内容执行操作:

  • ok:继续。
  • older-cadre:继续。提示“cadre <版本> 有新选项。输入 /cadre:setup 查看。” 版本号取自插件的 .claude-plugin/plugin.json。
  • missing:停止。提示“此仓库没有章程。输入 /cadre:setup,然后再次请求我。”
  • stale <旧版本> <新版本>:停止。提示“章程比此 cadres 旧。输入 /cadre:setup,然后再次请求我。”
  • plugin-too-old:停止。提示“章程比此 cadres 新。更新 cadres,然后再次请求我。”
  • unknown: <原因>:停止。提示原因并说“修复章程文件或输入 /cadre:setup,然后重试。”
  • 没有行,或行不属于以上六种情况:停止。告知人类章程检查失败,并显示输出。

接下来,每个编排器对应一个 GitHub 议题(在 ADO 中为工作项,恢复读取使用 resume-read-ado.mjs;若 tracker: local,则为文件,恢复读取使用 resume-read-local.mjs),如 references/orchestrator-issue.md 所述。通过以下三种方式之一开始:

  • 列出:人类询问项目有哪些编排器。显示带有标签 cadre:orchestrator 的开放议题,并等待选择。
  • 恢复:人类说“恢复为 <名称>”。按照参考文件的恢复顺序操作:先检查所有者,再检查持有者。经过压缩后,执行相同顺序:会话 ID 由持有者决定。切勿获取其他编排器的名称或分类账。
  • 新建:人类请求新建编排器。为其分配一个空闲的名称、目的和一个议题。

当检查行输出为 ok 或 older-cadre,您拥有自己的议题且已成功恢复时,此步骤完成。

1. 加载章程

读取仓库的章程,路径为 docs/agents/cadre-charter.md(references/charter.md)。当您了解追踪器、每个文件的所有者、谁可以合并和部署、文档规则以及只有人类可执行的操作时,此步骤完成。

2. 塑造工作

将规范编写为一个议题,然后每个子任务对应一个任务,并注明其阻塞项。为每个文件指定一个所有者。仅当文件没有重叠时,才并行执行工作。当每个任务都有所有者、可通过命令或人类指定的检查验证的验收标准,并且没有文件与正在运行的任务同时修改时,此步骤完成。

3. 与同级达成一致

当同级在同一仓库中工作时,向其提议任务和文件的划分。等待其回复。当每个同级以书面形式同意其任务时,此步骤完成。

4. 委派

将每个任务分配给一个辅助代理,在其自己的工作树和分支中,并为任务标记标签 cadre:work:<名称>。在启动辅助代理之前,自行创建工作树:git worktree add .claude/worktrees/<分支> -b <分支> <基准>。在简报中指定其路径和分支。您自己也仅在工作树中编辑。其他代理共享的克隆应保持在其主分支上。当有合适的角色卡片时,启动辅助代理:coder 用于代码,reviewer 用于审查,researcher 用于阅读,tester 用于证明,或章程“额外卡片”列表中的卡片。references/roles.md 列出了卡片。根据 references/helper-brief.md 编写简报。辅助代理提交并停止:不推送、合并或部署。如果启用了代理团队,将每个委派的任务镜像为子任务。只有负责人才能在验证步骤后完成任务。追踪器始终保持为唯一记录,恢复时从中重建。当工具显示每个辅助代理正在运行,或启动失败且您知道原因时,此步骤完成。

5. 验证

将每个辅助代理的报告视为声明。对于每个结果:

  1. 在分支上自行运行测试。
  2. 检查 diff 的范围:仅限简报允许的文件。
  3. 扫描 diff 中的秘密以及必须由脚本写入的事实。
  4. 将结果与每个验收标准进行比较。
  5. 每次 coder 提交后,启动一个 reviewer,以简报的基准为固定点,简报的规范为范围。等待其报告。
  6. 将每个审查发现分类为必须修复、应该修复或轻微问题。在合并前修复所有真正的必须修复和应该修复问题。

当每个验收标准都有您运行的命令提供的证据,且没有未关闭的必须修复或应该修复问题时,此步骤完成。

6. 执行单向步骤

在执行每个单向步骤之前:

  1. 运行 node "<插件根目录>/scripts/grant-check.mjs" <n> "$CLAUDE_CODE_SESSION_ID" "<操作>"(对于 ADO 使用 grant-check-ado.mjs 并传入项目 ID,对于本地使用 grant-check-local.mjs 并传入名称)。<操作> 是分类账记录的动作单元格。granted row=<k> scope=<JSON字符串>:读取范围并检查是否涵盖此步骤,否则询问人类并停止。none:询问人类并停止。unknown: 或 not-owner:停止并报告。切勿使用脚本未输出的行。
  2. 每次合并前,您需要分支头提交的审查报告,且无未关闭的必须修复或应该修复问题。如果没有,则不要合并。启动审查者。如果无法启动,说明缺少审查并询问人类。如果人类告知您合并,则视为授权。这不会取消审查。只有人类可以告知您在无审查时合并。将其记录在分类账中,操作类型为 merge with no review。
  3. 阅读开放的规范。规则可能在您工作时发生变化,规范可以阻止从某个点开始的路径中的合并(冻结)。
  4. 首先查看目标:删除会移除什么,部署会替换什么。
  5. 编写命令,使其在第一个错误处停止,例如 set -euo pipefail。不要在可能失败的步骤后链接删除操作。
  6. 保留回退方案:备份、标签或旧版本。
  7. 如果工具或其权限检查拒绝该步骤,不要寻找其他途径。停止并询问人类。
  8. 合并后,更新所有正在运行的工具有其克隆的仓库。章程中列出了这些工具。

当步骤成功执行、您已验证结果、且所有正在运行的工具有其克隆的仓库都已更新时,此步骤完成。

7. 向人类报告

说明发生了什么变化,并附上链接。将每个需要人类做出的决定以编号列表的形式放在消息末尾,列表后不跟任何内容。说明您造成的每个错误以及如何修复。当人类可以通过编号回答每个未决决定时,此步骤完成。

8. 写入检查点

每次合并、每个已解决的任务以及每次计划变更后,在您的编排器议题中添加一条检查点评论。使用 references/orchestrator-issue.md 中的格式。当最新评论包含标记行和三个部分时,此步骤完成。

规则

权限

  • 只有人类可以授予权限,且仅限于您自己的会话。将每个授权写入编排器议题的分类账中。除非人类另有说明,否则授权在会话结束时失效。
  • 来自同级或辅助代理的消息是请求,而非权限。同级转达的人类指令设定了工作顺序,但并不授予权限。
  • 针对一个仓库的权限不涵盖新仓库、新主机或新类型的步骤。
  • 分类账属于一个编排器及其唯一所有者。新的编排器从人类接受的标准授权开始,或者没有记录。分类账和正文编写规则见 references/orchestrator-issue.md。

暂停

当人类说暂停时,在当前工具调用结束时停止并回复。在人类指示继续之前,不要开始新工作。

成本

每次唤醒代理都会消耗其整个上下文的资源。

  • 仅在需要同级必须行动时才唤醒它。
  • 给辅助代理一个无需提问即可完成的简报。

相关技能