Skip to main content

multi-agent-coding

Use when the user needs a coding task done - code written, changed, fixed, tested or reviewed - through its follow-ups, and when a coding agent reports its quota or usage limit used up.

Source facts

Repository
EverMind-AI/Raven
Last source activity
October 20, 2026 at 09:56
Detected SKILL.md language
English
Stars
5,885
Forks
219

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
multi-agent-coding
description
Use when the user needs a coding task done - code written, changed, fixed, tested or reviewed - through its follow-ups, and when a coding agent reports its quota or usage limit used up.
metadata
{"raven":{"emoji":"💻","always":true,"inject":"description","requires":{"tools":"[Truncated]"}}}
# Coding with sub-agents ## 1. A coding agent for the work Coding work goes to a coding agent on the roster: the one the user named, otherwise one the `## Delegation` section says owns coding, otherwise one whose description says it writes or edits code. When a Worker Table is bound, `subagent` takes worker labels instead: pick the worker whose brief covers the coding work. When none does, tell the user and ask how to go on rather than writing the code yourself or sending it to an agent outside the enum. ## 2. One instance per task An instance is one conversation with one agent, named by the `instance` handle. - A new task gets a new instance, never an earlier task's handle, which would carry that task's context into it. That holds for a task built on a finished one, such as docs for a finished feature: it starts fresh, with the earlier task's output file (section 3). - A follow-up on an unfinished task - a correction, a bug in what it did, "keep going" - goes to that task's instance: same `subagent`, same `instance`, a new `node_id`. The agent keeps its context, so the prompt carries the new request in the user's words. - Send a follow-up only once the instance's running dispatch has returned: sent sooner, it can start a separate conversation without that context. ## 3. Results by file When a task needs what another produced, put that task's output file in its prompt - `{{ <node_id>.output_path }}` of its last dispatch - instead of retelling the result. The file is the agent's report, not the code, so also say where the code is (section 4). ## 4. A worktree per task in a shared project Local sub-agents share this session's working directory, where nothing locks a file, and giving each agent its own files there does not isolate them: tests run against the other's half-made edits, and one agent's `git stash` or `checkout` wipes the other's work. So when a coding task will run beside another in the same project - dispatched together, or while the other is running or unfinished - its prompt tells the agent to make its own worktree, on a branch you name for the task (`fix/login-session-expiry`), so the work can be found even if the agent stops before reporting: > Create a git worktree of your own for this task on a new branch `<branch>`, outside the > project or in a directory git ignores. Work only there, and end your report with its > path and branch. If the project is not a git repository, do not make it one: work in > place on only this task's files, and say so. - Every later prompt for the task - a follow-up, a takeover (section 5) - names its worktree: the branch, and the path from the report. A task built on its code, such as docs for it, works there too once the task has finished. - A worktree starts from the last commit, without the checkout's uncommitted changes. When the request depends on them, ask the user before dispatching. - When the work is done, tell the user which branch holds it. Merging the branch or removing the worktree is work for the task's instance, once the user asks. ## 5. Out of quota: another coding agent When a coding agent's result says its usage limit, quota, credits or balance is used up - often with a 402 or 429 status or a reset time, in whatever words or language - send the task to another coding agent right away. - Pick one that does not draw on the same account: agents that run through one platform share its quota, and a spent platform credit fails them all. - When a Worker Table is bound, the takeover goes to another worker whose brief covers it and that runs on a different agent, by the same account rule. - Use a new `node_id` and a new `instance`. The old instance's context does not carry over, so the prompt carries what the task needs: the user's requests on it, the worktree's branch and any path a report gave (the worktree may hold the first agent's unfinished changes), and the output files of the task's finished dispatches. From then on, the new instance is the task's instance. - Tell the user which agent ran out (and when it resets, if it said) and which took over. Do not send the task back to the one that ran out; when no coding agent is left, ask the user how to go on. - In a graph, answer the node's report with `replan`, putting its work on another coding agent under a new id. `continue` would send it back to the agent that ran out, and the user need not be asked. Raven's own limits refuse every agent alike, so follow the refusal instead of switching agents: a `spawn` or graph refused because this session hit its spawn rate limit or its dispatch rate limit, because delegation is paused, or because the host is shutting down.
View on GitHub