josemoreupeso.es
ar2-referencia-tecnica.md — TLOTP
# 👑 AR2 - El Consejo de Guerra: Referencia Técnica

## Intro de ejecución

```
👑 Aragorn despliega los mapas de guerra sobre la mesa...
   Todo general debe conocer a sus soldados antes de la batalla.
   Consultando la documentación oficial de Claude Code.
```

---

## Paso 1 — Consultar documentación oficial (WebFetch)

Antes de mostrar nada, obtener la documentación actualizada:

```
WebFetch: https://code.claude.com/docs/en/sub-agents.md
```

Si el WebFetch falla, usar el conocimiento interno marcando con ⚠️ "información puede no estar actualizada".

---

## Paso 2 — Mostrar referencia completa

### 1. ¿Qué son los Subagents?

Explica con la información obtenida de la documentación oficial qué son los subagents de Claude Code, cómo se definen y para qué sirven.

---

### 2. Campos del YAML Frontmatter

Muestra la tabla completa de campos disponibles para definir un agente en su fichero `.md`:

```
---
name: nombre-del-agente
description: |
  Para qué sirve este agente y cuándo Claude lo invoca.
  Cuanto más detallada, mejor la invocación automática.
tools:
  - Read
  - Write
  - Bash
  - Grep
  - Glob
model: claude-sonnet-4-6
permissionMode: default
maxTurns: 10
---

Instrucciones adicionales para el agente en Markdown...
```

| Campo | Tipo | Obligatorio | Descripción |
|-------|------|-------------|-------------|
| `name` | string | ✅ | Nombre único del agente |
| `description` | string | ✅ | Para qué sirve — clave para invocación automática |
| `tools` | lista | Recomendado | Herramientas permitidas (Read, Write, Bash, Grep, Glob...) |
| `disallowedTools` | lista | No | Herramientas explícitamente prohibidas |
| `model` | string | No | Modelo a usar (ej: `claude-opus-4-6`, `claude-sonnet-4-6`) |
| `permissionMode` | string | No | `default`, `acceptEdits`, `bypassPermissions` |
| `maxTurns` | int | No | Límite de turnos. Sin valor: sin límite |
| `skills` | lista | No | Skills inyectadas al agente |
| `mcpServers` | map | No | MCPs específicos del agente |
| `hooks` | map | No | Hooks específicos del agente |
| `memory` | lista | No | Ficheros de memoria del agente |
| `background` | bool | No | Si corre en background |

---

### 3. Scopes y Jerarquía

```
~/.claude/agents/       ← Global (todos los proyectos)
.claude/agents/         ← Proyecto (solo este repositorio)
```

El scope **proyecto** tiene prioridad sobre **global** si existe un agente con el mismo `name`.

---

### 4. Cómo se Invocan los Subagents

**Automático** — Claude decide:
- Claude lee la `description` de todos los agentes instalados
- Si la tarea encaja con la descripción, lo invoca solo
- Ejemplo: si hay un `symfony-expert`, Claude lo usará al tocar código Symfony

**Explícito** — El usuario decide:
- Mencionar `@nombre-agente` en el mensaje
- Ejemplo: `@code-reviewer revisa este PR`

---

### 5. Subagents vs Agent Teams

| Aspecto | Subagents | Agent Teams |
|---------|-----------|-------------|
| Contexto | Compartido con el agente padre | Independiente por agente |
| Estabilidad | Estable | Experimental |
| Uso ideal | Tareas delegadas simples | Trabajo paralelo complejo |
| Overhead | Bajo | Alto (múltiples instancias) |
| Activación | Automático desde `~/.claude/agents/` | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` |
| Fichero | `.md` en `agents/` | `.md` en `agents/` |

---

### 6. Agent Teams (Experimental)

Agent Teams permite ejecutar múltiples agentes en paralelo, cada uno con su propio contexto independiente.

**Activación**:
```bash
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
```

**Diferencia clave**: cada agente en un Team es una instancia Claude Code independiente. Se coordinan mediante una lista de tareas y un mailbox compartido. Úsalos para trabajo genuinamente paralelo (ej: analizar backend y frontend simultáneamente).

---

### 7. Ejemplo Completo de Agente

```markdown
---
name: symfony-expert
description: |
  Experto en Symfony y PHP para este proyecto.
  Invócame cuando necesites analizar servicios, repositorios,
  configuración de bundles, queries Doctrine u optimizaciones PHP.
tools:
  - Read
  - Write
  - Bash
  - Grep
  - Glob
model: claude-sonnet-4-6
permissionMode: acceptEdits
maxTurns: 20
---

Eres un experto senior en Symfony 7 y PHP 8.3.

Cuando analices código, prioriza:
1. Principios SOLID y arquitectura hexagonal
2. Tipado estricto (PHPStan level 9)
3. Buenas prácticas de Doctrine ORM
4. Performance y seguridad
```

---

## Paso 3 — Volver al menú

Tras mostrar la referencia, pregunta al usuario (AskUserQuestion):
- Volver al menú de Aragorn
- Buscar agentes en marketplaces (ir a Opción 2)
- Salir