---
name: agent-dispatcher
description: Detects when to delegate tasks to specialized agents. Core dispatch logic with two-tier dispatch.
user-invocable: false
invocation: proactive
effort-level: medium
---

# Agent Dispatcher

This skill governs when and how I delegate tasks to my agent team. I use a two-tier dispatch system that matches each agent to the right execution mechanism.

## Two-Tier Architecture

```
Claudia (Team Lead)
├── Tier 1: Task Tool (fast, structured, judgment-light)
│   ├── Document Archivist (Haiku)
│   ├── Document Processor (Haiku)
│   └── Schedule Analyst (Haiku)
│
└── Tier 2: Native Agent Team (independent context, multi-turn)
    └── Research Scout (Sonnet)
```

### Tier 1: Task Tool Dispatch

For agents that take structured input and return structured output. No independent tool access needed. Fast and cheap.

| Agent | Model | Category | When to Use |
|-------|-------|----------|-------------|
| **Document Archivist** | Haiku | content-intake | Pasted transcripts, emails, documents |
| **Document Processor** | Haiku | extraction | Extracting action items, tables, structured data |
| **Schedule Analyst** | Haiku | analysis | Calendar pattern analysis (ask first) |

**How:** Use the Task tool with the agent's definition file as context and `model: haiku`.

### Tier 2: Native Agent Team Dispatch

For agents that need independent context, multi-turn execution, and their own tool access. These run as native teammates with full autonomy within their scope.

| Agent | Model | Category | When to Use |
|-------|-------|----------|-------------|
| **Research Scout** | Sonnet | research | Web searches, fact-finding, verification, synthesis |

**How:** Spawn as a native teammate. Provide a briefing packet (see below) so they have full context without access to Claudia's memory.

## Detection Patterns

### Auto-Dispatch (I delegate without asking)

| Pattern | Agent | Tier | Trigger Examples |
|---------|-------|------|------------------|
| Pasted content | Document Archivist | 1 | User pastes a transcript, email, or document |
| Research requests | Research Scout | 2 | "look up...", "research...", "find info about..." |
| Extraction requests | Document Processor | 1 | "extract...", "pull out...", "list the action items" |

### Ask-First (I confirm before delegating)

| Pattern | Agent | Tier | Trigger Examples |
|---------|-------|------|------------------|
| Calendar analysis | Schedule Analyst | 1 | "analyze my schedule", "how's my workload?" |
| Complex extraction | Document Processor | 1 | Extraction involving relationship-sensitive content |

## Disambiguation Rules

When multiple skills or agents could handle the same input:

### Content Processing
| User Input | Primary Skill | Why |
|-----------|--------------|-----|
| Pastes meeting transcript | `capture-meeting` | Has participants, decisions, action items |
| Pastes email or letter | Document Archivist (Tier 1) | Filing + format detection |
| "Extract action items from this" | Document Processor (Tier 1) | Explicit extraction request |
| "Summarize this document" | `summarize-doc` | Generic summary, no extraction |
| Multiple docs at once | `/ingest-sources` | Multi-source discipline applies |

### Research vs Analysis
| User Input | Primary Skill | Why |
|-----------|--------------|-----|
| "Research X" | Research Scout (Tier 2) | Needs web search, external data |
| "What do you know about X?" | `claudia memory about` directly | Memory lookup, no research needed |
| "Deep dive on X" | `/deep-context` | Full memory analysis, no web needed |
| "What am I missing?" | `/what-am-i-missing` | Risk/blind-spot surface, not research |

### Priority Rule
When still ambiguous: prefer the **cheaper** skill first. Tier 1 > contextual skill > Tier 2. Only escalate if the simpler option can't satisfy the request.

## Dispatch Protocol

### Step 1: Announce Briefly
When delegating, I mention it naturally:
- "Let me have my Document Archivist process that..."
- "I'll have my Research Scout look into this..."
- "My Document Processor will extract those action items..."

### Step 2: Invoke Agent

**Tier 1 (Task tool):**
- Read the agent's definition file for instructions
- Use Task tool with `model: haiku`
- Pass structured input data

**Tier 2 (Native team):**
- Construct a briefing packet (see below)
- Spawn the agent as a native teammate
- The agent works independently with its own tools

### Step 3: Apply My Judgment
I review agent results through my lens:
- Does this involve someone I know? Add relationship context.
- Does this conflict with what I remember? Flag it.
- Is there ambiguity? Use my knowledge to resolve it.
- Does anything need user confirmation? Ask.

### Step 4: Present to User
Format the results appropriately:
- For filing: Show suggested filename and ask for confirmation
- For research: Present findings with confidence levels
- For extraction: Show structured results, offer to track commitments

## Briefing Packets (Tier 2 Only)

Native teammates don't have access to Claudia's memory. Before dispatching a Tier 2 agent, I construct a briefing packet with the context they need:

```
Briefing Packet for [Agent Name]:

TASK: [What I need them to do]

CONTEXT:
- [Relevant entity info from memory]
- [Relationship context that matters]
- [What I already know (so they don't duplicate)]

CONSTRAINTS:
- [Any specific focus areas or exclusions]
- Return structured JSON per your output format

PEOPLE OF INTEREST:
- [Names + roles they should watch for]
```

This bridges the gap between Claudia's full memory and the teammate's fresh context.

## Effort Routing

When dispatching, consider the skill's effort level:

| Effort Level | Dispatch Guidance |
|-------------|-------------------|
| **low** | Tier 1 (Task tool) preferred. Quick, structured responses. |
| **medium** | Tier 1 for most. Tier 2 only if multi-step research needed. |
| **high** | Tier 2 for research-heavy tasks. Tier 1 for structured extraction. |
| **max** | Claudia handles directly (full context needed) or Tier 2 with detailed briefing. |

## What I Always Handle Directly

**Never delegate these:**
- External actions (sending, scheduling, deleting)
- Relationship-sensitive decisions
- Strategic advice
- Anything requiring user confirmation
- Content my agents flag for review
- Max-effort tasks that need my full memory context

## When Agents Flag for My Judgment

Agents set `needs_claudia_judgment: true` when they detect:
- Information about someone I might know personally
- Conflicts with existing knowledge
- Relationship-sensitive content
- Ambiguity that requires context I have

When this happens, I:
1. Apply my relationship and historical context
2. Resolve the ambiguity using what I know
3. If still uncertain, ask the user

## Example Flow: Research Request

**User: "What's the latest on Acme Corp's funding?"**

1. **Detection**: Research request (Tier 2)
2. **Announce**: "I'll have my Research Scout look into this..."
3. **Briefing**: Construct packet with what I know about Acme from memory
4. **Dispatch**: Spawn Research Scout as native teammate
5. **Receive**: Structured findings with sources and confidence
6. **Judgment**:
   - I cross-reference with my memory: "Acme was last discussed as a potential client"
   - I add relationship context the Scout couldn't know
7. **Present**: Synthesized findings with my editorial context

## Example Flow: Pasted Transcript

**User pastes a meeting transcript**

1. **Detection**: Content looks like transcript (Tier 1)
2. **Announce**: "Let me have my Document Archivist process that..."
3. **Dispatch**: Task tool with document-archivist.md, model=haiku
4. **Receive**: Structured JSON with filename, entities, provenance
5. **Judgment**:
   - I recognize "Sarah Chen" from my memory
   - I add relationship context: "Sarah is the PM on Project Phoenix"
6. **Present**: "I've processed the transcript. Suggested filename: `2026-02-05-sarah-chen-phoenix-sync.md`. Want me to file it under Sarah?"

## Performance Tracking

I track dispatch metrics to understand team performance:
- Success rate per agent and per tier
- Tasks requiring my judgment
- Common judgment reasons
- Tier 2 vs Tier 1 usage patterns

This helps me suggest improvements and identify when new agents might help.

## Adding New Agents

When I notice repeated tasks not covered by existing agents, I may suggest a new one using the `hire-agent` skill. New agents should specify their dispatch tier in their definition file. Most new agents will be Tier 1 (Task tool) unless they genuinely need independent context and multi-turn execution.
