一键导入
grove-multi-agent
// Use when multiple independent tasks need to be executed in parallel, each in an isolated workspace with warm build state
// Use when multiple independent tasks need to be executed in parallel, each in an isolated workspace with warm build state
Use when configuring Grove for a repository that does not yet have a `.grove/config.json`, or when a user asks to configure Grove in their project
Use when something in the Grove setup is not working as expected, or when a user asks to diagnose or troubleshoot their Grove installation
Use when starting feature work that needs isolation from the current workspace, or before executing implementation plans in a Grove-enabled repository
Use when implementation is complete, all tests pass, and the agent is operating inside a Grove workspace that needs to be resolved or cleaned up
| name | grove-multi-agent |
| description | Use when multiple independent tasks need to be executed in parallel, each in an isolated workspace with warm build state |
I'm using the grove-multi-agent skill to orchestrate parallel agents across isolated Grove workspaces.
digraph {
"Multiple tasks?" [shape=diamond];
"Independent?" [shape=diamond];
"grove-multi-agent" [shape=box];
"Sequential execution" [shape=box];
"Single grove:using-grove" [shape=box];
"Multiple tasks?" -> "Single grove:using-grove" [label="1 task"];
"Multiple tasks?" -> "Independent?" [label="2+ tasks"];
"Independent?" -> "grove-multi-agent" [label="yes"];
"Independent?" -> "Sequential execution" [label="no - shared state"];
}
Use grove-multi-agent only when tasks are truly independent: no shared file modifications, no ordering dependencies between them.
Accept a list of independent tasks. Tasks may come from a decomposed plan, directly from the user, or from a dispatching agent (e.g., superpowers:dispatching-parallel-agents). Each task must be a self-contained unit of work.
Before creating any workspaces, review the task list for overlapping file scope. If two tasks would modify the same file or directory, they are not truly independent.
Use the current branch name as the prefix, or ask the user for one. Workspace branches will follow the pattern:
agent/<prefix>/<task-slug>
Example: if the prefix is feature/auth-overhaul and the task is "Add OAuth login", the branch becomes agent/feature-auth-overhaul/add-oauth-login.
For each task, run:
grove create --branch agent/<prefix>/<task-slug> --json
Collect the path and id from each JSON response:
{
"id": "abc1",
"path": "/tmp/grove/myapp/abc1",
"branch": "agent/<prefix>/<task-slug>",
"created_at": "2026-02-17T10:20:00Z",
"golden_copy": "/Users/chris/dev/myapp"
}
Store a mapping of task -> workspace path and workspace ID for later use.
Issue one Task tool call per workspace, all in parallel (not sequentially). Use the subagent prompt template below.
Subagent prompt template:
Task tool (general-purpose):
description: "Task N: <task-name>"
prompt: |
You are working in a Grove workspace at <workspace-path>.
cd <workspace-path>
Your task: <full task description>
Instructions:
1. Implement the task
2. Write tests
3. Verify tests pass
4. Commit your work
5. Report back: what you changed, test results, any concerns
Each subagent operates in isolation. It cannot see or affect other workspaces.
Wait for all subagents to return. Gather each agent's summary: files changed, test results, and any concerns raised.
Even if tasks were validated as independent in Step 2, verify that agents did not unexpectedly edit overlapping files (e.g., due to generated files, lock file updates, or auto-formatters touching shared files).
Compare the changed file lists across workspaces. If conflicts are found, flag them before proceeding to cleanup.
Present a summary of what each agent accomplished:
Flag any failures clearly so the user can decide how to handle them.
Present these options for the set of workspaces as a whole, plus individual handling if needed:
grove:finishing-grove-workspace)For option 1, derive each PR title from the branch name and body from commit summaries since the golden copy:
git push -u origin <branch>
gh pr create --title "<title>" --body "<body>"
grove destroy <workspace-id>
| Command | Purpose |
|---|---|
grove create --branch <name> --json | Create a workspace, capture path and ID |
grove list | List all active workspaces |
grove destroy <id> | Remove a workspace |
gh pr create --title "<t>" --body "<b>" | Open a PR from a pushed branch |
grove:using-grove instead.grove update on the golden copy and retry.max_workspaces limit from .grove/config.json. If the limit is hit, create and dispatch agents in batches, or increase the limit with grove config.superpowers:dispatching-parallel-agents runs agents in parallel but they share the same working directory. grove-multi-agent gives each agent its own isolated workspace with warm build state — agents can build, modify files, and run tests without interfering with each other. Use this skill when agents need build isolation, not just logical separation.
grove create and grove destroy CLI commandsgrove:grove-config) and CLI available (grove:grove-doctor)superpowers:dispatching-parallel-agents — same parallel dispatch pattern, but with isolated workspaces instead of a shared directorysuperpowers:test-driven-developmentgrove:finishing-grove-workspace for individual workspace resolution