Use when creating, inspecting, updating, assigning to, or debugging a Multica squad, including how leader routing picks who runs.
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
If debugging why a squad did or did not run, inspect first:
multica issue get <issue-id> --output json
multica squad get <squad-id> --output json
multica squad member list <squad-id> --output json
multica issue comment list <issue-id> --roots-only --summary --output json
multica issue comment list <issue-id> --thread <thread-id> --tail 30 --output jsonThe two comment reads are a sequence: scan the roots first, then open the threads that look relevant — mention triggers, failure reasons, and user instructions usually live in the replies, which the roots scan never returns.
If the command shape is unclear, check help instead of guessing:
multica squad --help
multica squad member --help
multica issue update --help
multica issue comment add --helpDo not assign, comment, mention, update, delete, or record squad activity just to test. These can mutate workspace state or trigger agent runs.
A Multica squad is a workspace routing and coordination object.
A squad is not an agent. It does not run work by itself. Current behavior:
squad-routed work runs through the squad's leader_id agent.
Important consequences:
instructions are leader briefing content, not member prompts.Squad commands:
multica squad list --output json
multica squad get <squad-id> --output json
multica squad create --name <name> --leader <agent-name-or-id> --output json
multica squad update <squad-id> --instructions "<leader coordination policy>" --output json
multica squad delete <squad-id>Member commands:
multica squad member list <squad-id> --output json
multica squad member add <squad-id> --member-id <id> --type agent|member --role <role> --output json
multica squad member remove <squad-id> --member-id <id> --type agent|member
multica squad member set-role <squad-id> --member-id <id> --member-type agent|member --role <role> --output jsonSquad leader evaluation command:
multica squad activity <issue-id> action|no_action|failed --reason "<why>" --output jsonactivity is a write: it records the leader's evaluation decision on an issue.
Use it only when acting as the squad leader after evaluating a trigger.
Which issue it accepts: the issue your current turn is running on. The
target issue does NOT need to be assigned to your squad — a @squad mention on
an issue owned by an individual agent, or a leader task bound to a child issue,
all record fine. What the server checks is your task row (is_leader_task plus
a stamped squad_id), not the issue's assignee. A leader woken by a stage
barrier runs on the PARENT issue, so record against the parent, not the child
you just read; passing an unrelated issue id is rejected and the error names the
issue you should have used.
If the call fails, do not exit silently — the comment prohibition on no_action
only applies once the recording succeeded. Post one short comment with the
outcome instead, and only when this turn has not already commented: on the
action path your delegation comment is already that record.
Issue/comment commands often needed with squads:
multica issue get <issue-id> --output json
multica issue update <issue-id> --help
multica issue comment list <issue-id> --roots-only --summary --output json
multica issue comment add <issue-id> --helpComment reads stay bounded — the scan-then-expand sequence from the quick
start above — never one unbounded issue comment list pull.
Prefer --output json for reads. Use --help before writes.
id — squad UUID.workspace_id — workspace the squad belongs to.name — display name; unique per workspace.description — human-facing metadata/display text. Do not assume runtime
prompt impact unless source proves a consumer.instructions — squad-level instructions added to the squad leader briefing.
They are not directly injected into every squad member.avatar_url — optional squad avatar URL.leader_id — agent ID of the squad leader; the runtime target for
squad-routed work.creator_id — creator of the squad.archived_at / archived_by — archive metadata. Archived squads are rejected
by assignment/autopilot routing paths.member_count — list response count of squad members.member_preview — list response preview of squad members.Use instructions for leader-facing coordination policy: squad responsibility,
delegation expectations, when to ask humans, and review/handoff rules. Do not
write it as if every member automatically receives it.
member_type — agent or member.member_id — ID of the agent or workspace member.role — roster role label. Current behavior: non-empty role appears in the
leader briefing roster. Do not assume it creates scheduling, permissions, or
routing behavior.Creating a squad requires leader_id. The leader must be a workspace agent.
Create/update does not reject an archived leader: the lookup only checks the
agent exists in the workspace. An archived leader fails closed later, at
routing/dispatch — assignment, autopilot admission, and the comment/mention
readiness gate all reject an archived leader before any task is enqueued.
On create, the backend attempts to add the leader as a squad member with role
leader. When updating leader_id, if the new leader is not already a member,
the backend adds the new leader as a squad member with role leader.
For squad leader tasks, Multica appends a squad leader briefing to the leader agent instructions. The briefing includes:
instructions is non-empty.Roster entries include member name, member type, mention markdown, and non-empty
role. For agent members the roster also lists their assigned skills
(skills: a, b, or no skills assigned when the agent has none) so the leader
can delegate by capability instead of guessing from the role label; human
members carry no skills segment. Builtin multica-* skills are not listed —
only the workspace skills explicitly attached to the agent. Archived agent
members are skipped from the briefing roster.
Issues can be assigned to squads with:
assignee_type = "squad"
assignee_id = <squad-id>Current behavior:
squad.leader_id;backlog does not immediately start work;backlog can trigger the leader;in_progress
and keep it there while members work; the leader moves the parent to
in_review only when a later re-trigger confirms the overall goal is met.
Completing a leader task (including the first dispatch) does not itself
change issue status;assignee_type /
assignee_id point at THIS squad. The leader briefing is injected on every
leader path, including an @squad mention on an issue owned by a plain agent
— on those paths the protocol instead carries an explicit "do not change this
issue's status".The status names above are category rules: a workspace may define custom statuses beyond the built-ins, and each one inherits its category's behavior in full (the runtime brief lists the workspace catalog when any exist).
Assignment validation rejects a missing type/id pair, non-existent squad, archived squad, archived leader, and private leader when the actor cannot access it.
If an issue is assigned to a squad, a new comment can wake the squad leader. This is leader routing, not member fan-out.
Squad mention format:
[@Squad Name](mention://squad/<squad-id>)Current behavior: resolve the squad, read leader_id, enqueue a leader task,
and use the current comment as the trigger comment. It does not enqueue every
squad member.
Autopilots can be assigned to squads. For assignee_type = "squad":
squad.leader_id;For create_issue autopilots, the created issue keeps assignee_type = "squad"
and assignee_id = <squad-id>, while the actual executing agent is the resolved
leader. For run_only autopilots, no issue is created; the task is created
directly for the resolved leader agent.
When the user says squad behavior is wrong, confusing, or disappointing, do not immediately assume code is broken and do not defend current behavior just because it exists. Classify first:
Explain the current source-backed behavior. If the behavior is technically correct but product-wise bad, say so and propose a scoped product/code change.
Do not silently change squad routing, member fan-out, leader briefing, autopilot behavior, or comment-trigger behavior without confirmation. These are product contract changes with side effects.
These actions can trigger agent work or mutate durable state:
leader_id;multica squad activity;Do not perform side-effecting actions as tests unless the user explicitly authorizes them.
leader_id, not every member.instructions are leader briefing content, not automatic member prompts.description is not proven runtime prompt content.role is roster context, not automatic scheduling.in_progress
until the leader later confirms the overall goal and moves it to in_review.in_review when wrapping up).@-mentioned into an issue assigned to someone else is a guest: roster and
delegation rules yes, multica issue status no.For source paths, tests, edge cases, and exact routing details, see:
references/squad-source-map.md11ab949
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.