From fabrik
Spawns a team of agents running the garden skill in parallel to fix multiple small project issues, coordinating via shared task list to avoid duplicates. Use for broad sweeps of independent fixes.
npx claudepluginhub maragudk/fabrik --plugin fabrikThis skill uses the workspace's default tool permissions.
A team version of the `garden` skill. Instead of one gardener pulling one weed, you spawn a small team that each pulls a different weed in parallel. They share a task list so two gardeners don't fight over the same issue.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
A team version of the garden skill. Instead of one gardener pulling one weed, you spawn a small team that each pulls a different weed in parallel. They share a task list so two gardeners don't fight over the same issue.
Use this when the user wants a broader sweep than a single garden run would do -- several small, independent issues fixed in one pass. For a single focused fix, use the garden skill directly instead.
garden skill with coordination rulesUse TeamCreate to make a team named gardeners (or similar -- match to the session if helpful):
TeamCreate({team_name: "gardeners", description: "Gardeners running /garden in parallel, coordinating via shared task list"})
This gives the team a shared task list. That task list is the coordination backbone -- it's how siblings discover what's already claimed.
Default to five gardeners unless the user asks for a different count. More gardeners means more coverage but more collisions; fewer means less parallelism.
Spawn each one with the Agent tool, passing team_name: "gardeners" and a distinct name. Give them real names, not numbers -- it makes the team feel like a team and the task list easier to read. Pick from the default roster of gardener names and extend it if you need more than five:
Give each the same prompt -- the coordination rules are what keep them from stepping on each other.
Each gardener needs:
garden skill to completion and report back the PR URLThe coordination rules (include these verbatim in every gardener prompt):
1. Before scanning, call TaskList to see what other gardeners have already claimed or completed. Avoid duplicating their work.
2. When you pick an issue, immediately call TaskCreate with a specific subject (e.g. "Fix typo X in file Y") and TaskUpdate to set yourself as owner and status=in_progress. This tells siblings what you're working on.
3. If another gardener has already claimed the issue you'd have picked, scan for a different one -- don't open a duplicate PR.
4. On collision (two gardeners on the same issue), earliest claim wins. The later claimer stands down and picks something else.
5. When done, TaskUpdate status=completed and include the PR URL.
6. You fix exactly one issue. If the scan surfaces others, leave them for the next gardening pass -- don't spin up more tasks or expand scope.
Run gardeners in the background (run_in_background: true) so they work in parallel. You'll get a notification as each reports in.
Gardeners will:
SendMessage) if they detect a collision, citing earliest-claim-winsYou generally don't need to intervene. If a gardener seems stuck, send them a message or check the task list for blocked tasks.
As each gardener reports in, note the PR URL. Expect between N-2 and N PRs from a team of N -- some gardeners may find nothing new to pick after coordination, which is fine.
Review the PRs together. Look for:
Then:
garden/* branches that are left over from the team runSendMessage a shutdown_request to each gardener, then TeamDeleteTaskList for status; reserve SendMessage for collision alerts and direct asks.garden -- each gardener is just running garden with extra coordination. If the single-gardener flow changes, this one benefits automatically.