From icm
Canonical ICM primitive — dispatch a subagent that spawns as a generic ICM agent. The subagent reads `AGENTS.md`, self-routes to a named room, finds its own data and output target, and completes the job. Use when you want work done in another room (e.g. a gated edit in the maintenance room) or a review pre-pass before requesting human review. Model (haiku/sonnet/opus) scales to the work's expected value. The dispatcher names WHERE (the room) and WHAT (the job); the subagent finds its own way.
How this skill is triggered — by the user, by Claude, or both
Slash command
/icm:dispatch-subagentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The subagent is **a generic ICM agent**, not a special tool. You tell it WHERE (which room) and WHAT (the
The subagent is a generic ICM agent, not a special tool. You tell it WHERE (which room) and WHAT (the
job); it enters the workspace, reads AGENTS.md, routes to that room, reads the room CONTEXT.md, loads
the Inputs it names, does the work in that room's output target, and drops markers — exactly as any ICM
agent would. You do not pre-load its context; the frontdoor protocol does.
mode — worker | reviewer.room — the target room (worker) or the path to review (reviewer), as an absolute path or a routing
target the subagent can resolve from AGENTS.md.model — haiku (default) | sonnet | opus, scaled to the work's value tier. For a maintenance
room, the tier is canonical in maintenance/docs/model-tiers.md (one editable table) — read it and use
that room's model. Otherwise scale by value: low/medium → haiku · high → sonnet · critical → opus. Model
IDs: claude-haiku-4-5-20251001 · claude-sonnet-4-6 · claude-opus-4-8.You are an ICM agent dispatched into this workspace, model {model}, mode {mode}.
ENTRY (do this first):
- Read {workspace_root}/AGENTS.md, then root CONTEXT.md for routing. Match your mission to a Routing row
and navigate to {room}.
Read that room's CONTEXT.md and load ONLY the Inputs it names. Find your own data and output target.
MISSION:
- {one-paragraph statement of WHAT to accomplish}
IF mode=worker:
- Do the job per the room's contract. Write ONLY to that room's output target. Drop the room's markers.
Honor its Boundaries. You are a full ICM agent — follow the structure exactly.
IF mode=reviewer (transitory):
- Review the TARGET at {room}. Read everything via absolute paths.
- Write ONLY `{room}/review_provisional.md` (problems + suggested fixes, specific, citing the workspace's
Layer-3 identity files where relevant).
- DO NOT create junctions, markers (`_handoff`/`_done`/`_rejected`/`_awaiting-human`), or touch state/memory.
- DO NOT dispatch a subagent. Terminate by returning "review complete".
Agent tool — subagent_type: general-purpose, model: per the arg, prompt: the filled
text, description: "{mode} in {room}".{room}/review_provisional.md, decide apply/discard, record the decision in the
run's review sidecar (e.g. review.json auto_review[]), remove the provisional
file, then proceed to the human gate.review_provisional.md behind, or applying feedback without recording it.icm — the meta-skill (the frontdoor protocol the subagent follows).Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub pinguinzz/icm-plugin --plugin icm