mcpField
M
mcode-delegate

mcode-delegate

github.com/amelnagdyAgent 工作流2.6k13 次安装3 天前更新
代码仓库

关于 mcode-delegate

mcode-delegate 是将范围明确的编码任务交给 MiniMax Code CLI 执行、再审查并落地变更的技能。它让协调 Agent 负责任务说明、验证和提交,MiniMax Code 则在工作树中实现。

主要功能

  1. 01通过中继委派任务
  2. 02向 mcode 传递任务说明
  3. 03将结果写入 result.json
  4. 04审查差异并重跑项目检查
  5. 05由协调 Agent 负责提交

适用场景

  1. 01实现范围明确的仓库变更
  2. 02请求只读的第二意见
  3. 03用增量说明继续处理任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/amelnagdy/delegate-skills --skill mcode-delegate

安装后在 Claude Code 中输入/mcode-delegate确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
dispatch-and-poll.md
multi-task-queues.md
review-and-land.md
writing-the-brief.md
scripts/
relay.mjs

详细介绍

MiniMax Code 委派

你是协调者。这项技能可让你把一项范围明确的编码任务交给独立的实现者——MiniMax Code CLI(mcode),然后审查其成果并亲自提交。 你负责撰写任务说明并作出判断;MiniMax Code 在你的工作树中编写代码;你负责验证并提交。

这里的内容并不专属于某一种协调 Agent。这个工作循环只需要能够运行 shell 命令并读取文件,因此无论你使用的是 Claude Code、选择了模型的 OpenCode,还是其他同类 Agent,操作方式都一样。(本技能是为 Claude Code 设计并在其上运行的;其他协调者只能视为设计上适用,尚未经过验证。)

不适用的情况

  • 任务小到可以直接完成——委派带来的额外开销不值得。
  • 尚未安装 mcode 或尚未登录(运行 mcode login,或 mcode login --region global)。
  • 你想亲自编写代码,或者只需要审查本地更改(mcode exec review 可以直接完成这项工作)。
  • 你必须确保目标树之外绝不可能发生写入,而不只是希望这种情况不太可能发生。MiniMax Code 没有沙箱;请使用由操作系统强制执行的沙箱,例如 codex-delegate,或在容器中运行本技能。

首次派发前请阅读:自主权限模型

mcode exec 接受 smart、full 或 off 权限策略;无头运行时没有沙箱,也没有只读或计划模式(ask 需要使用 TUI 或 ACP)。

  • smart(中继的默认设置;TUI Auto): 无头运行时已会批准文件写入和删除。 一次实时探测请求执行 rm,没有提示就获准了。 因此,smart 不是安全防护措施:真正限定范围的是任务说明和干净的工作树。
  • full(TUI Full access): 完全跳过常规确认。只有明确指定 --permission full 时,中继才会传入该设置。
  • off: 中继会拒绝此设置;MiniMax Code 未说明它会禁用什么。

--read-only 只是建议性设置:中继会追加一条禁止编辑的系统提示,保留 smart,然后运行 Git 可见的变更触发器(readOnlyViolation)。变更只会在事后被检测到,而非阻止;被忽略的路径或仓库外路径不在检测范围内。

前置条件(检查一次即可)

  1. mcode --version 能成功运行,并且你已登录(在 TUI 中运行 mcode → /status)。如果尚未登录,请安装 MiniMax Code 并运行 mcode login。
  2. 确认中继运行所在的 shell 已将 mcode 加入 PATH。 官方安装程序会将其放在 ~/.minimax-code/bin,只有你的 shell 配置文件会把它加入 PATH;协调者使用的非登录 shell 可能找不到它。如果 command -v mcode 返回空值,请传入 --mcode-path <file> 或设置 MCODE_CLI。中继会在 result.json 中记录运行时使用的版本。
  3. 你当前位于目标 Git 仓库中(或会通过 --cd 指定该仓库),并且派发前工作树是干净的——没有沙箱时,对照干净的基线更容易审查运行结果。

工作循环

每项任务都按以下五个步骤执行。步骤 1、4 和 5 需要你作出判断;步骤 2 和 3 是机械操作。

1. 撰写任务说明

MiniMax Code 只能看到你发送的文本——没有仓库记忆、没有聊天记录,也没有共享上下文(但它会读取仓库自带的 AGENTS.md)。任务所需的一切都要写进任务说明:目标、当前状态、要更改的内容、要保持不变的内容、项目实际使用的门禁命令(从仓库的 AGENTS.md/CLAUDE.md/Makefile 中查找——不要臆测),以及报告要求。告诉它不要提交(由你提交)。每份任务说明只包含一项任务。完整指南和模板:references/writing-the-brief.md。

2. 派发

使用随附的辅助工具将任务简述发送给 MiniMax Code。该工具会封装 mcode exec、捕获运行结果并写入结构化的 result.json,所以你只需“运行命令,读取文件”。(下文的 <skill-dir> 是此技能的安装目录,也就是包含此 SKILL.md 的文件夹,即你加载此技能时所在的目录。加载技能时,Claude Code 会将其显示为“此技能的基础目录”;在其他编排器中使用同一目录——如果不确定其位置,请运行 find ~ -name relay.mjs -path '*mcode-delegate*',并将上一级目录填入其中。)

node "<skill-dir>/scripts/relay.mjs" --brief brief.txt --cd /path/to/repo
# read-only (review/diagnosis; advisory):   add --read-only
# continue the exact session:               add --session <sessionId>  (from result.json; send only the delta brief)
# model / effort for this run:              add --model minimax/<model> --effort high
# hard time limit (watchdog):               add --timeout 2h  (default: off; implementation runs routinely need 1-2h)
# see all options:                          node .../relay.mjs --help

辅助工具默认以可写模式(--permission smart)运行,并会有意修改目标仓库。它的临时目录只会将中继产物保留在该仓库之外。中继绝不会提交——请参阅第 5 步。运行机制、标志和 result.json 的结构: references/dispatch-and-poll.md。

3. 等待完成

辅助工具会一直阻塞,直到 MiniMax Code 完成,因此请使用编排器提供的任意方式运行,并在其返回时继续:

  • Claude Code: 使用 run_in_background: true 运行 Bash 调用;完成后你会收到通知。
  • 普通 shell / 其他 Agent: 对于短任务,在前台运行;也可以将其放到后台运行并轮询结果文件——在 bash/zsh 中使用 … &,或使用相应 shell 的等效方式。result.json 存在且包含 status 时,表示运行已完成。(运行前的用法错误——例如参数错误或任务简述为空——会以代码 2 退出,并输出 stderr 消息,且不会写入结果文件,因此也要检查退出代码。找不到 mcode 二进制文件时会以代码 127 退出,但仍会写入 status 为 mcode_unavailable 的 result.json。)

只有在写入 result.json 且进程已退出后,运行才算完成——应查看工作树,而不是状态行。实现者的完整报告位于 result.json 的 finalMessage 字段中(也会在报告标记之间完整输出到 stdout)。

4. 审查——不要轻信自我报告

result.json 包含 MiniMax Code 自己的摘要和对检查结果的说明。请重新验证,不要直接采信:

  • 亲自重新运行项目的检查(第 1 步中的测试、lint 和构建命令)。不要盲信“检查已通过”。
  • 根据任务简述阅读差异: 是否完成了要求,没有多做(范围蔓延),也没有少做?result 中的 touchedFiles 是你的起点;由于没有沙箱,还要检查指定路径之外是否存在修改和删除,不能只检查指定路径内的内容。
  • 如果已安装相关守护技能(如 guard-skills 中的 clean-code-guard、test-guard 等),请对差异运行它们——此技能负责产出工作,其他技能负责评判。
  • 对于架构或迁移变更,进行往返验证;对于删除操作,使用 grep 检查是否存在悬空引用。

完整检查清单:references/review-and-land.md。

5. 落地

中继绝不会提交,但 MiniMax Code 仍可能修改 .git。任务简述禁止实现者提交,审查者会在落地任何内容前,将 HEAD 与记录的派发前基线进行比较。由编排器提交。 只有在检查通过且差异符合要求后,才进行以下操作:

  • 亲自提交已验证的工作,并使用清晰的提交说明。
  • 如果需要修改,使用先前 result.json 中的 sessionId 和 --session <sessionId> 发送增量任务简述,然后再次审查。

只读的第二意见

中继也可以用来获取对抗性的第二意见:使用 --read-only 分派任务,简报中列出已达成共识的要点,然后列出每个有争议的要点及双方立场,并要求 MiniMax Code 为每项立场辩护或让步——交付内容放在最终消息中,不触碰任何文件。由于只读状态仅由提示词设定,因此每次都要查看判定结果:readOnlyViolation: false 表示 Git 可见的检测器未发现任何更改(不包括被忽略的路径或仓库外路径);true 表示检测器发现了更改;null 表示 Git 无法判断。请在可以恢复的干净工作树上分派第二意见任务。

授权模型

委派任务需要由人类主动选择。一旦人类同意(“运行此队列”“继续”),提交已验证且通过门禁的工作就是双方约定的契约——这正是整个流程的目的。该授权有两项限制:明确指出,不要擅自采纳(报告 MiniMax Code 的设计决策、有依据但未被要求的改动,以及不阻塞任务的小问题,而不是默默接受),以及遇到范围变更时停下(如果正确完成任务需要超出简报范围,请先询问,不要自行扩大授权)。完整说明见 references/review-and-land.md。

参考资料

评论

支持 Markdown