agent-coordination-discipline
The agent-coordination-discipline skill establishes criteria for deciding whether to launch an agent, which agent type to use, and how to coordinate multiple agents effectively. Use this skill when considering task delegation, evaluating whether a problem requires agent involvement versus native tools, selecting between agent types or external models, or debugging coordination failures between multiple agents in a workflow.
git clone --depth 1 https://github.com/MadAppGang/claude-code /tmp/agent-coordination-discipline && cp -r /tmp/agent-coordination-discipline/plugins/dev/skills/discipline/agent-coordination-discipline ~/.claude/skills/agent-coordination-disciplineSKILL.md
# Agent Coordination Discipline
**Iron Law:** "NO AGENT LAUNCH WITHOUT CLEAR DELEGATION CRITERIA"
## When to Use
Use this skill when:
- Considering launching an agent with the Task tool
- Evaluating whether a task requires agent delegation
- Selecting between different agent types or external models
- Coordinating multiple agents in a workflow
- Implementing external-model for external model delegation
- Debugging agent coordination failures
This skill prevents premature agent launches, redundant agent usage, and poor task isolation that wastes thinking budget and causes coordination failures.
## Red Flags (Violation Indicators)
- [ ] **Agent for single grep** - Launching agent to run one grep/glob command (trivial-task anti-pattern)
- [ ] **Missing external-model model** - Using external-model without explicit model name specification
- [ ] **No task isolation** - Agent task description lacks independent context or success criteria
- [ ] **No success criteria** - Task description doesn't define what "done" looks like
- [ ] **Default thinking pattern** - Not considering whether task needs deep thinking vs. fast execution
- [ ] **Multiple agents without coordination** - Launching 2+ agents without clear result routing plan
- [ ] **Result not used** - Launching agent but not routing/validating its output
- [ ] **Agent for trivial decision** - Using agent to make decision you could make directly
- [ ] **No tool exhaustion check** - Launching agent before trying native tools first
- [ ] **Missing timeout consideration** - Not evaluating if task needs extended thinking time
- [ ] **No error handling plan** - Not defining what happens if agent fails or returns partial results
- [ ] **Skill gap unclear** - Not identifying what specific expertise the agent provides
## Key Concepts
### 1. Agent vs. Native Tools Decision Tree
```
Does the task require:
├─ Single tool call (grep, read, edit)?
│ └─ ✗ NO AGENT - Use native tool directly
├─ 2-3 sequential tool calls?
│ └─ ✗ NO AGENT - Use tools directly in sequence
├─ Multi-step investigation with branching logic?
│ └─ ✓ AGENT - Task tool with developer/architect agent
├─ External model expertise (Grok, DeepSeek, etc.)?
│ └─ ✓ AGENT - external-model pattern with model specification
├─ Parallel exploration of multiple code paths?
│ └─ ✓ AGENT - Multiple Task calls with coordination
└─ High-risk change needing isolation?
└─ ✓ AGENT - Task tool with sandbox/review focus
```
### 2. Task Isolation Requirements
Every agent task must be independently executable:
**Bad (not isolated):**
```
Task: "Fix the bug we discussed earlier"
```
**Good (properly isolated):**
```
Task: "Debug the TypeError in src/components/UserProfile.tsx line 42.
Context: User reports 'Cannot read property name of undefined' when viewing profile page.
Evidence: Error occurs after recent commit abc123 that changed user data structure.
Success criteria: Identify root cause, propose fix, verify with test scenario."
```
### 3. External Model Pattern
When delegating to external models via claudish CLI:
**Structure:**
```bash
claudish --model {model_id} --stdin --quiet <<EOF > output.md
{Task Description}
Context:
- {Relevant file paths}
- {Current state}
- {Related decisions}
Success Criteria:
- {What constitutes success}
- {Expected output format}
Constraints:
- {Time limits}
- {Tool restrictions}
- {Quality requirements}
EOF
```
**Example:**
```bash
claudish --model x-ai/grok-code-fast-1 --stdin --quiet <<EOF > analysis.md
Analyze the React component rendering performance issue in Dashboard.tsx.
Context:
- File: src/components/Dashboard.tsx (247 lines)
- Issue: Component re-renders 40+ times on data updates
- Recent changes: Added real-time WebSocket updates in commit f4a2c1b
Success Criteria:
- Identify unnecessary re-renders (provide line numbers)
- Propose memoization strategy
- Estimate performance improvement
Constraints:
- Max 3 minutes analysis time
- Focus on React 19 compiler-friendly patterns
EOF
```
## When to Use Agents
### Multi-Step Investigation
**Trigger:** Task requires 5+ tool calls with conditional branching
**Agent:** developer, architect
**Example:** "Trace data flow through 3 layers to find where user.email becomes null"
### External Model Expertise
**Trigger:** Need specialized model capabilities (code speed, vision, reasoning)
**Agent:** external-model with specific model
**Example:** "Use Grok Code Fast to refactor 15 files for consistency in < 2 minutes"
### Parallel Work
**Trigger:** Multiple independent tasks that can run simultaneously
**Agent:** Multiple Task calls with result aggregation
**Example:** "Analyze frontend performance (Task 1) while auditing API security (Task 2)"
### Risk Isolation
**Trigger:** High-risk changes needing review before merging to main workflow
**Agent:** review-focused agent with checkpoint
**Example:** "Evaluate if this database migration will cause downtime"
### Skill Gaps
**Trigger:** Current agent lacks specific skill that another agent has
**Agent:** specialist agent (security, performance, accessibility)
**Example:** "Launch accessibility agent to audit ARIA compliance"
## When NOT to Use Agents
### Single Grep/Glob
**Instead:** Use native Grep or Glob tool directly
```
# ✗ DON'T
Task: "Find all files using the deprecated API"
# ✓ DO
Grep("oldApiCall", output_mode: "files_with_matches", type: "js")
```
### Simple Tool Execution
**Instead:** Use tool directly
```
# ✗ DON'T
Task: "Read the config file and tell me the API URL"
# ✓ DO
Read("/path/to/config.json")
// Parse and extract apiUrl field
```
### Decision Already Made
**Instead:** Execute the decision
```
# ✗ DON'T
Task: "I think we should use React Query. What do you think?"
# ✓ DO
// Just implement React Query since decision is made
Write("src/hooks/useApiQuery.ts", reactQueryCode)
```
### Sequential Tool Calls
**Instead:** Chain tools directly
```
# ✗ DON'T
Task: "Find the function, read it, and edit it"
# ✓ DO
Grep("func|
|
|
Common agent patterns and templates for Claude Code. Use when implementing agents to follow proven patterns for Tasks integration, quality checks, and external model invocation via claudish CLI.
YAML frontmatter schemas for Claude Code agents and commands. Use when creating or validating agent/command files.
XML tag structure patterns for Claude Code agents and commands. Use when designing or implementing agents to ensure proper XML structure following Anthropic best practices.
YAML format for Claude Code agent definitions as alternative to markdown. Use when creating agents with YAML, converting markdown agents to YAML, or validating YAML agent schemas. Trigger keywords - "YAML agent", "agent YAML", "YAML format", "agent schema", "YAML definition", "convert to YAML".
Linear API patterns and examples for autopilot. Includes authentication, webhooks, issue CRUD, state transitions, file attachments, and comment handling.