关于 mcode-delegate
mcode-delegate 是将范围明确的编码任务交给 MiniMax Code CLI 执行、再审查并落地变更的技能。它让协调 Agent 负责任务说明、验证和提交,MiniMax Code 则在工作树中实现。
主要功能
- 01通过中继委派任务
- 02向 mcode 传递任务说明
- 03将结果写入 result.json
- 04审查差异并重跑项目检查
- 05由协调 Agent 负责提交
适用场景
- 01实现范围明确的仓库变更
- 02请求只读的第二意见
- 03用增量说明继续处理任务
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ amelnagdy/ delegate-skills --skill mcode-delegate安装后在 Claude Code 中输入/mcode-delegate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/dispatch-and-poll.mdmulti-task-queues.mdreview-and-land.mdwriting-the-brief.mdscripts/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)。变更只会在事后被检测到,而非阻止;被忽略的路径或仓库外路径不在检测范围内。
前置条件(检查一次即可)
mcode --version能成功运行,并且你已登录(在 TUI 中运行mcode→/status)。如果尚未登录,请安装 MiniMax Code 并运行mcode login。- 确认中继运行所在的 shell 已将
mcode加入 PATH。 官方安装程序会将其放在~/.minimax-code/bin,只有你的 shell 配置文件会把它加入 PATH;协调者使用的非登录 shell 可能找不到它。如果command -v mcode返回空值,请传入--mcode-path <file>或设置MCODE_CLI。中继会在result.json中记录运行时使用的版本。 - 你当前位于目标 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。
参考资料
- references/writing-the-brief.md — 如何撰写一份 MiniMax Code 可在盲目执行时使用的简报:结构、XML 块、报告约定,以及如何嵌入真实的门禁命令。
- references/dispatch-and-poll.md —
relay.mjs标志、result.json约定、不同编排器的后台运行方式,以及运行异常时的恢复方法。 - references/review-and-land.md — 审查清单、提交边界,以及精确到会话的返工周期。
- references/multi-task-queues.md — 如何运行顺序队列:延续约束、跟踪进度,以及运行结束时的一致性检查。