mcode-delegate
Delegate a coding task to the MiniMax Code CLI (`mcode`) as a background implementer, then review its diff and land it yourself. Use this whenever the user wants to hand implementation work to MiniMax Code or a MiniMax model — phrasings like "have MiniMax do X", "delegate this to mcode", "run it through MiniMax Code", or "use MiniMax to implement/fix/refactor" — or to run a queue of coding tasks through MiniMax Code while staying the reviewer. DO NOT USE for tasks small enough to do inline, or when the user wants the code written directly without delegating.
Try your first task
A source-grounded starter task has not been verified for this skill yet.
SKILL.md
name: mcode-delegatedescription: >- Delegate a coding task to the MiniMax Code CLI (`mcode`) as a background implementer, then review its diff and land it yourself. Use this whenever the user wants to hand implementation work to MiniMax Code or a MiniMax model — phrasings like "have MiniMax do X", "delegate this to mcode", "run it through MiniMax Code", or "use MiniMax to implement/fix/refactor" — or to run a queue of coding tasks through MiniMax Code while staying the reviewer. DO NOT USE for tasks small enough to do inline, or when the user wants the code written directly without delegating.license: MITcompatibility: Requires the MiniMax Code CLI (`mcode`, from agent.minimax.io) installed and signed in with `mcode login`, Node 22+, and git. The orchestrating agent must be able to run shell commands and read files. Shell examples assume bash/zsh (macOS/Linux).metadata: version: 0.5.0MiniMax Code Delegate
You are the orchestrator. This skill lets you hand a bounded coding task to a separate
implementer — the MiniMax Code CLI (mcode) — then review what it produced and land it yourself.
You write the brief and own the judgment; MiniMax Code does the typing in your working tree; you
verify and commit.
Nothing here is specific to one orchestrating agent. The loop needs only the ability to run a shell command and read a file, so it works the same whether you are Claude Code, OpenCode with a selected model, or any comparable agent. (It is designed for and run on Claude Code; treat other orchestrators as designed-for, not yet proven.)
When NOT to use this
- The task is small enough to just do inline — delegation overhead is not worth it.
mcodeis not installed or not signed in (runmcode login, ormcode login --region global).- You want to write the code yourself, or you only need a review of local changes (
mcode exec reviewdoes that directly). - You need writes outside the target tree to be impossible, not just unlikely. MiniMax Code has no
sandbox; use an OS-enforced one such as
codex-delegate, or run this inside a container.
Read this before the first dispatch: the autonomy model
mcode exec takes a permission policy — smart, full, or off — and has no sandbox and no
read-only or plan setting for a headless run (ask needs the TUI or ACP).
smart(the relay's default; TUI Auto): already approves file writes and deletions headlessly. A live probe asked for anrmand got it with no prompt. Sosmartis not a guardrail: the brief and a clean working tree are the real scope.full(TUI Full access): skips normal confirmation entirely. The relay passes it only on an explicit--permission full.off: refused by the relay; MiniMax Code does not document what it disables.
--read-only is advisory: the relay appends a system prompt forbidding edits, keeps smart, and
then runs a Git-visible change tripwire (readOnlyViolation). A change is detected after the fact,
not prevented, and ignored or outside-repository paths are not covered.
Prerequisites (check once)
mcode --versionsucceeds and you are signed in (mcode→/statusin the TUI). If not, install MiniMax Code and runmcode login.- Confirm
mcodeis on PATH in the shell the relay runs from. The official installer puts it in~/.minimax-code/bin, which only your shell profile adds to PATH; an orchestrator's non-login shell may not see it. Pass--mcode-path <file>or setMCODE_CLIwhencommand -v mcodecomes back empty. The relay records the version it ran inresult.json. - You are in (or will point
--cdat) the target git repository, and its tree is clean before you dispatch — a run with no sandbox is much easier to review against a clean baseline.
The loop
Run these five steps per task. Steps 1, 4, and 5 are your judgment; 2 and 3 are mechanical.
1. Write the brief
MiniMax Code sees only the text you send — no repo memory, no chat history, no shared context
(beyond the repo's own AGENTS.md, which it reads). Everything the task needs goes in the brief: the
goal, the current state, what to change, what to leave untouched, the project's actual gate
commands (discover them from the repo's AGENTS.md/CLAUDE.md/Makefile — do not assume), and a report
contract. Tell it that it will not commit (you will). Keep one task per brief. Full guidance and a
template: references/writing-the-brief.md.
2. Dispatch
Send the brief to MiniMax Code with the bundled helper. It wraps mcode exec, captures the run, and
writes a structured result.json — so your only job is "run a command, read a file." (<skill-dir>
below is this skill's installed directory — the folder containing this SKILL.md, i.e. the directory
you loaded the skill from. Claude Code prints it as "Base directory for this skill" when the skill
loads; on other orchestrators use that same directory — if unsure where it landed, run
find ~ -name relay.mjs -path '*mcode-delegate*' and substitute the directory above it.)
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
The helper defaults to a write-capable (--permission smart) run, which intentionally edits the target
repository. Its temp directory keeps only relay artifacts out of that repository. The relay never
commits — see step 5. Mechanics, flags, and the result.json shape:
references/dispatch-and-poll.md.
3. Wait for completion
The helper blocks until MiniMax Code finishes, so back it with whatever your orchestrator offers and resume when it returns:
- Claude Code: run the Bash call with
run_in_background: true; you are notified on completion. - Plain shell / other agents: run it in the foreground for short tasks, or background it and poll
the result file —
… &in bash/zsh, or your shell's equivalent. The run is done whenresult.jsonexists with astatus. (A pre-run usage error — bad args or an empty brief — instead exits with code 2 and a stderr message and writes no result file, so check the exit code too. A missingmcodebinary exits 127 but does write aresult.jsonwith statusmcode_unavailable.)
A run is finished when result.json is written and the process has exited — read the working tree,
not a status line. The implementer's full report is the finalMessage field in result.json (also
printed in full on stdout between the report markers).
4. Review — do not trust the self-report
result.json includes MiniMax Code's own summary and gate claims. Re-verify, don't accept:
- Re-run the project's gates yourself (the test/lint/build commands from step 1). Never take "gates passed" on faith.
- Read the diff against the brief: did it do what was asked, nothing more (scope creep) and
nothing less?
touchedFilesin the result is your starting point — and because there was no sandbox, check for edits and deletions outside the paths the brief named, not just inside them. - Run the relevant guard skills on the diff if you have them installed (clean-code-guard,
test-guard, etc. from
guard-skills) — this skill produces the work; those skills judge it. - For schema/migration changes, round-trip them; for removals, grep for dangling references.
Full checklist: references/review-and-land.md.
5. Land it
The relay never commits, but nothing stops MiniMax Code from writing .git. The brief forbids
implementer commits, and the reviewer compares HEAD with the recorded pre-dispatch baseline before
landing anything. The orchestrator commits. Only after the gates pass and the diff holds:
- Commit the verified work yourself, with a clear message.
- If it needs changes, send a delta brief with
--session <sessionId>from the priorresult.json, and review again.
Read-only second opinions
The relay doubles as a way to get an adversarial second opinion: dispatch --read-only with a brief
that lists the agreed points, then each contested point with both positions, and ask MiniMax Code to
defend or concede each — deliverable in its final message, touching no files. Because that read-only
state is only a prompt, read the verdict every time: readOnlyViolation: false means the Git-visible
detector saw no change (ignored or outside-repository paths are not covered); true means it saw
one; null means git could not tell. Dispatch second opinions on a clean tree you can afford to
restore.
Authorization model
Delegation is something the human opts into. Once they have ("run this queue", "proceed"), committing verified, gate-passing work is the agreed contract — that is the whole point. Two limits on that mandate: surface, don't absorb (report MiniMax Code's design decisions, defensible-but-unasked turns, and non-blocking nitpicks rather than silently keeping them) and stop for scope changes (if correct completion needs going beyond the brief, ask — don't expand the mandate yourself). The full treatment is in references/review-and-land.md.
References
- references/writing-the-brief.md — how to write a brief MiniMax Code can execute blind: structure, XML blocks, the report contract, embedding the real gate commands.
- references/dispatch-and-poll.md —
relay.mjsflags, theresult.jsoncontract, backgrounding per orchestrator, and recovery when a run misbehaves. - references/review-and-land.md — the review checklist, the commit boundary, and the exact-session rework cycle.
- references/multi-task-queues.md — running a sequential queue: carrying constraints forward, progress tracking, and the end-of-run coherence check.