Skip to main content
skill CX Codex

agent-task-splitter — Claude Code skill: plan a subagent fan-out

Plans a fan-out of two or more subagents or CLI delegates on one goal: roles, model tiers, disjoint file scopes, capped returns.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add WenyuChiou/agent-collab-skills --skill agent-task-splitter -a claude-code
Open on GitHub

What agent-task-splitter does

Reach for this skill right before you hand one goal to several lanes. It does the planning only; the host does the launching. What you get is a lane table — role, executor, model tier, paths a lane may write, paths it must leave alone, an acceptance check, and a return cap — plus one brief per lane.

Two modes. Native covers lanes that run inside a single session with you watching: the table and briefs live in the conversation, no plan files. Harness mode is for rounds that span sessions or tools, unattended loops, or work that has to resume after an interruption; it writes .coord/plan.yml and task packets. A configured AGENT_COLLAB_POLICY always forces harness mode, and an unreadable policy fails closed.

Some rules are non-negotiable. Two parallel writers never own the same file. A lane cannot sign off on its own output, so author and reviewer stay separate. Mechanical work goes to a cheap tier, while review, verdicts and root-cause work go to a strong one. Returns stay short: a summary plus file paths, not raw logs. Research routing that owns .research, Zotero, Obsidian or NotebookLM is out of scope — that is what research-hub-multi-ai is for.

What it helps with

  • split one goal into lanes that do not depend on each other
  • give every lane its own file scope
  • match model tier to the kind of work
  • settle merge and verification before launch
  • keep each lane's report short

Example prompts for the agent

  • Plan a fan-out for this task: three lanes, table and briefs
  • Split this into an executor lane and a reviewer lane with disjoint file scopes
  • Write a harness plan for an unattended run with a resume point

How to install agent-task-splitter

1Skills CLI (Vercel)

npx skills add WenyuChiou/agent-collab-skills --skill agent-task-splitter -a claude-code

2Manually: put the files in place

~/.claude/skills/agent-task-splitter/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/agent-task-splitter/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about agent-task-splitter

How do I install agent-task-splitter in Claude Code?

Run npx skills add WenyuChiou/agent-collab-skills --skill agent-task-splitter -a claude-code. The skill lands at ~/.claude/skills/agent-task-splitter/SKILL.md.

What does agent-task-splitter do?

It writes a lane table and one brief per lane: role, model tier, allowed and forbidden paths, an acceptance check, and a return cap. Launching the lanes is left to the host.

How is harness mode different from native?

Native runs inside one session and creates no plan files. Harness mode is for work across sessions, unattended runs or resuming after an interruption, and writes .coord/plan.yml with task packets.

Source text

SKILL.md · MIT
---
name: agent-task-splitter
description: Use when about to run two or more subagents, workflow lanes, or delegated CLI executors on one goal. Gives each lane a role, a pinned model tier, a disjoint file scope, a bounded brief, and a capped return, and fixes the merge and verification step before launch. Not for research-domain routing that owns .research, .paper, Zotero, Obsidian, or NotebookLM workflows; use research-hub-multi-ai for those.
---

# agent-task-splitter (fan-out planner)

Plan a fan-out before launching it. This skill plans; the host launches the
lanes. The name stays `agent-task-splitter` so existing prompts and plans keep
working.

## Pick the mode

| Mode | Use when | Artifacts |
|---|---|---|
| Native (default) | All lanes run inside one host session: parallel or background subagents, workflow lanes, one-shot CLI delegates, with the user present | Lane table in the conversation and one brief per lane. No `.coord/` plan, packets, or checkpoint. |
| Harness | A round spans sessions or tools, an unattended loop runs, work must resume after an interruption, a signed human gate is needed, or `AGENT_COLLAB_POLICY` is configured | `.coord/plan.yml` (schema v2) and `.ai/task_<NNN>_<slug>.md` packets; see [references/harness-plan.md](references/harness-plan.md) |

A configured policy always selects harness mode, and an unreadable configured
policy fails closed. Native mode follows the host's own limits and
permissions and adds no numeric limits of its own. Host mechanics are in
[native lanes](../../docs/native-lanes.md).

## Fan out only when

- two or more pieces are independent (none needs another's result) and each
  has a checkable result; or
- implementation and independent review must be separate lanes.

Do not split exploratory debugging before the cause is known, a small
coherent change, or work where every lane needs the same context in tight
sequence. Doing it directly is the default.

## The lane table

Write it before launching anything:

| Lane | Role | Executor | Model tier | May write | Must not touch | Acceptance | Return | Depends on |
|---|---|---|---|---|---|---|---|---|
| L1 | delegated-executor | subagent in a worktree | cheap | `src/a/**` | everything else | `pytest tests/a -q` | summary + paths | none |
| L2 | delegated-executor | CLI delegate | cheap | `docs/x.md` | `src/**` | link check passes | summary + paths | none |
| L3 | reviewer | read-only subagent | strong | nothing | `**/*` | verdict with evidence | verdict + findings | L1, L2 |

Rules:

1. Roles are `primary-agent`, `delegated-executor`, `reviewer`, and
   `synthesizer`, defined in the
   [public contract](../../docs/public-harness-contract.md). The executor
   and model columns are host-adapter choices, not public plan fields.
2. The orchestrator assigns the model tier; a lane never picks its own.
   Mechanical, pattern-following work goes to a cheap tier. Review, verdicts,
   root-cause analysis, security, governance, and anything ambiguous go to a
   strong tier.
3. Write scopes are disjoint. Two parallel writers never own the same file.
   If scopes might touch, isolate the writers or run them in sequence.
4. Every lane has at least one runnable or objectively checkable acceptance
   criterion.
5. Every lane has a capped return: a short summary plus file paths, never raw
   logs or full diffs. `agent-context-budget` covers sizing.
6. A lane cannot approve its own output. Author and reviewer are different
   lanes.

[references/task_splitter_heuristics.md](references/task_splitter_heuristics.md)
helps when a task could fit more than one role or DAG shape.

## Fix the merge step before launch

Write down, before any lane starts:

- who merges the results (normally the primary-agent) and in what order;
- the verification command run on the merged result, not only per lane;
- which `agent-acceptance-gate` presets the merged diff will trigger;
- commit boundaries: one reviewed commit per writing lane, or one commit
  after the merged result passes. Read-only lanes need no commit.

## Brief per lane

    # Lane <id>: <one bounded deliverable>
    Repo/worktree: <absolute path>
    Role: <role>. Model tier: <tier>.
    Depends on: <lane ids and artifact paths>

    Before editing, list the exact paths you may write and must not touch.
    Stop and report if they conflict with this brief.

    May read: <paths>
    May write: <paths>
    Must not touch: <paths>
    External actions: none unless named here.
    Edits required: yes | unchanged output allowed because <reason>

    Acceptance: <runnable check>
    Return (capped): status; short summary; files changed; checks run and
    results; risks; blockers. Put long output in a file and return its path.

## Drift guards

- Copy identifiers (slugs, paths, field names, version strings) verbatim into
  the brief. Do not paraphrase them.
- Record the pre-lane baseline (commit or file hashes) so the result can be
  attributed. File times and a process exit status do not prove the work was
  done; use the [task-content evidence review](../../docs/task-content-evidence.md).
- State whether edits are required. A lane that reports success without
  changing its required files has failed unless the brief allowed unchanged
  output.
- Missing, null, failed, declined, cancelled, and timed-out lanes stay
  non-success. Filter them out of synthesis but keep their records.
- Agent agreement never replaces running the checks.

## Harness mode

1. Write `.coord/plan.yml` (schema_version 2) and one packet per non-inline
   task, using [references/harness-plan.md](references/harness-plan.md).
2. Immediately before each spawn the host runs
   `agent-collab policy evaluate --policy <policy_ref> --checkpoint <checkpoint_ref> --json`
   and spawns only on `decision=continue` with `spawn_allowed=true`. The plan
   never overrides that decision.
3. Coordination files are scratch and gitignored. Promote only an explicit
   checkpoint snapshot, shipping artifact, or acceptance record.
4. Do not encode retries in the plan; the policy decides them.

Historical schema-less plans and provider-specific task paths are parse-only;
see [migration 0.4](../../docs/migration-0.4.md).

## Output

Return the lane table, each brief (or its path), the ready lanes in launch
order, and the merge-and-verify step. Do not launch lanes from this skill and
do not turn a planning-only request into implementation.

© WenyuChiou · MIT · WenyuChiou/agent-collab-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set3

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor