# π AR7 - Los EjΓ©rcitos de Gondor: Team Builder
## Intro de ejecuciΓ³n
```
π Aragorn convoca a los ejΓ©rcitos de Gondor...
Cada team es un batallΓ³n que marcha unido hacia la victoria.
```
---
## Paso 1 β MenΓΊ principal del Team Builder
Mostrar el menΓΊ:
```
βοΈ TEAM BUILDER - Configurar Agent Teams
ββββββββββββββββββββββββββββββββββββββββββ
Los Agent Teams permiten que mΓΊltiples agentes trabajen
en paralelo, cada uno con su propio contexto independiente.
ΒΏQuΓ© quieres hacer?
```
**Usar AskUserQuestion** con estas opciones:
- π Crear nuevo team
- π Ver teams configurados
- π§ Editar team existente
- ποΈ Eliminar team
- β ΒΏQuΓ© son los Agent Teams?
- π Volver al menΓΊ de Aragorn
---
## OpciΓ³n A β Crear nuevo team
### Paso A1 β Recopilar agentes disponibles
Ejecutar AR1 en modo silencioso para obtener la lista de agentes instalados:
```bash
ls ~/.claude/agents/ 2>/dev/null
ls .claude/agents/ 2>/dev/null
```
Si no hay ningΓΊn agente instalado:
```
β οΈ No hay agentes instalados todavΓa.
Para crear un team necesitas tener al menos 2 agentes instalados.
β OpciΓ³n: Instalar agentes primero (ir a AR5)
β OpciΓ³n: Volver al menΓΊ
```
### Paso A2 β Nombre del team
**Usar AskUserQuestion** para pedir el nombre:
```
π NUEVO TEAM β Paso 1/4
ββββββββββββββββββββββββββββββββββββββββββ
ΒΏCΓ³mo se llamarΓ‘ este team?
(ej: full-stack-review, deploy-guard, security-audit)
```
Validar el nombre:
- Solo letras minΓΊsculas, nΓΊmeros y guiones
- Sin espacios ni caracteres especiales
- Si invΓ‘lido, pedir de nuevo con indicaciΓ³n del formato correcto
### Paso A3 β Seleccionar agentes
Mostrar todos los agentes disponibles (global + proyecto) y pedir selecciΓ³n:
```
π NUEVO TEAM β Paso 2/4
ββββββββββββββββββββββββββββββββββββββββββ
Agentes disponibles para incluir en el team:
π Global (~/.claude/agents/):
β’ code-reviewer β Revisa cΓ³digo buscando bugs y mejoras
β’ test-writer β Genera tests unitarios y E2E
β’ symfony-expert β Experto en Symfony/PHP
β’ security-auditor β AuditorΓa de seguridad
π Proyecto (.claude/agents/):
β’ deploy-guardian β Supervisa deploys
Selecciona los agentes para "[nombre-del-team]"
(necesitas al menos 2 para que tenga sentido un team)
```
**Usar AskUserQuestion** con multiSelect: true listando todos los agentes disponibles.
Si el usuario selecciona menos de 2: advertir y volver a preguntar.
### Paso A4 β DescripciΓ³n del team
**Usar AskUserQuestion**:
```
π NUEVO TEAM β Paso 3/4
ββββββββββββββββββββββββββββββββββββββββββ
Team: [nombre]
Agentes: [agente1], [agente2], ...
ΒΏPara quΓ© se usarΓ‘ este team?
(ej: RevisiΓ³n completa de cΓ³digo Symfony: calidad + seguridad)
```
### Paso A5 β ActivaciΓ³n de Agent Teams
Comprobar si la variable de entorno ya estΓ‘ activa:
```bash
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
```
Si NO estΓ‘ activa, mostrar:
```
π NUEVO TEAM β Paso 4/4
ββββββββββββββββββββββββββββββββββββββββββ
Para usar Agent Teams necesitas activar la feature experimental:
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
ΒΏQuΓ© quieres hacer con esta variable?
```
**Usar AskUserQuestion**:
- β
AΓ±adir permanentemente a `.bashrc`/`.zshrc`
- π Copiar el comando (lo harΓ© yo manualmente)
- βοΈ Saltar por ahora (lo aΓ±adirΓ© despuΓ©s)
Si elige **aΓ±adir permanentemente**, detectar el shell del usuario:
```bash
echo $SHELL
```
- Si es `zsh`: aΓ±adir a `~/.zshrc`
- Si es `bash`: aΓ±adir a `~/.bashrc`
AΓ±adir la lΓnea al final del fichero:
```bash
echo '' >> ~/.zshrc
echo '# Agent Teams (Claude Code experimental)' >> ~/.zshrc
echo 'export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1' >> ~/.zshrc
```
Confirmar con:
```
β
Variable aΓ±adida a ~/.zshrc
Recarga tu terminal o ejecuta: source ~/.zshrc
```
Si ya estaba activa, mostrar:
```
β
Agent Teams ya estΓ‘ activado en tu entorno.
```
### Paso A6 β Generar fichero de configuraciΓ³n
Crear el directorio si no existe:
```bash
mkdir -p .claude/teams/
```
Comprobar si ya existe un team con ese nombre:
```bash
ls .claude/teams/[nombre].yml 2>/dev/null
```
Si ya existe, preguntar (AskUserQuestion):
- π Sobreescribir β reemplazar la configuraciΓ³n existente
- π Ver configuraciΓ³n actual β mostrar el contenido antes de decidir
- β Cancelar
Generar el fichero `.claude/teams/[nombre].yml`:
```yaml
# .claude/teams/[nombre].yml
# Generado por Aragorn Team Builder
name: [nombre]
description: [descripciΓ³n introducida por el usuario]
agents:
- [agente1]
- [agente2]
experimental: true
```
Usar la herramienta Write para crear el fichero.
### Paso A7 β Confirmar creaciΓ³n
```
β
TEAM CREADO CORRECTAMENTE
ββββββββββββββββββββββββββββββββββββββββββ
ποΈ Team: [nombre]
π [descripciΓ³n]
βοΈ Agentes: [agente1], [agente2], ...
π Fichero: .claude/teams/[nombre].yml
βοΈ Feature: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
π‘ CΓ³mo usar este team:
Invoca a los agentes normalmente y Claude Code
los ejecutarΓ‘ en paralelo con contextos independientes.
ββββββββββββββββββββββββββββββββββββββββββ
```
**Usar AskUserQuestion**:
- Crear otro team
- Ver todos los teams configurados
- Volver al menΓΊ de Aragorn
- Salir
---
## OpciΓ³n B β Ver teams configurados
### Paso B1 β Escanear teams existentes
```bash
ls .claude/teams/ 2>/dev/null
```
Si no hay ninguno:
```
π No hay teams configurados todavΓa.
β OpciΓ³n: Crear nuevo team
β OpciΓ³n: Volver al menΓΊ
```
### Paso B2 β Mostrar inventario de teams
Para cada fichero `.yml` encontrado, leer su contenido y mostrar:
```
π TEAMS CONFIGURADOS
ββββββββββββββββββββββββββββββββββββββββββ
1. full-stack-review
π RevisiΓ³n completa de cΓ³digo Symfony: calidad + seguridad
βοΈ Agentes: code-reviewer, symfony-expert
π .claude/teams/full-stack-review.yml
2. security-audit
π AuditorΓa de seguridad antes de releases
βοΈ Agentes: security-auditor, code-reviewer
π .claude/teams/security-audit.yml
ββββββββββββββββββββββββββββββββββββββββββ
π Total: 2 teams configurados
```
**Usar AskUserQuestion**:
- Crear nuevo team
- Editar un team (ir a OpciΓ³n C)
- Eliminar un team (ir a OpciΓ³n D)
- Volver al menΓΊ de Aragorn
---
## OpciΓ³n C β Editar team existente
### Paso C1 β Seleccionar team
Listar teams disponibles y preguntar (AskUserQuestion) cuΓ‘l editar.
### Paso C2 β Mostrar configuraciΓ³n actual
```
π§ EDITAR TEAM: [nombre]
ββββββββββββββββββββββββββββββββββββββββββ
ConfiguraciΓ³n actual:
π DescripciΓ³n: [descripciΓ³n actual]
βοΈ Agentes: [lista actual]
ΒΏQuΓ© quieres modificar?
```
**Usar AskUserQuestion**:
- Cambiar agentes del team
- Cambiar descripciΓ³n
- Volver sin cambios
### Paso C3 β Aplicar cambios
Reutilizar los pasos A3/A4 segΓΊn lo que el usuario quiera editar.
Reescribir el fichero `.yml` con la nueva configuraciΓ³n usando Write.
Confirmar los cambios al usuario.
---
## OpciΓ³n D β Eliminar team
### Paso D1 β Seleccionar team
Listar teams disponibles y preguntar (AskUserQuestion) cuΓ‘l eliminar.
### Paso D2 β Confirmar eliminaciΓ³n
```
ποΈ ELIMINAR TEAM: [nombre]
ββββββββββββββββββββββββββββββββββββββββββ
π [descripciΓ³n]
βοΈ Agentes: [lista]
β οΈ Esta acciΓ³n no se puede deshacer.
ΒΏConfirmas la eliminaciΓ³n?
```
**Usar AskUserQuestion**:
- β
SΓ, eliminar
- β Cancelar
### Paso D3 β Ejecutar eliminaciΓ³n
```bash
rm .claude/teams/[nombre].yml
```
Confirmar al usuario:
```
β
Team "[nombre]" eliminado correctamente.
```
---
## OpciΓ³n E β ΒΏQuΓ© son los Agent Teams?
Mostrar la secciΓ³n educativa:
```
β AGENT TEAMS vs SUBAGENTS
ββββββββββββββββββββββββββββββββββββββββββ
Agent Teams es una feature EXPERIMENTAL de Claude Code
que permite ejecutar mΓΊltiples agentes EN PARALELO.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SUBAGENTS AGENT TEAMS β
β βββββββββββββββββ ββββββββββββββββββββββ β
β Secuencial Paralelo β
β Un agente orquesta Todos arrancan a la vez β
β al resto con contextos propios β
β Coordinados Independientes β
β Contexto compartido Contexto aislado β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Requisitos:
β’ Variable de entorno: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
β’ Agentes definidos en ~/.claude/agents/ o .claude/agents/
β’ Cada agente = instancia de Claude Code independiente
π‘ CuΓ‘ndo usar cada uno:
β’ Subagents: tareas que requieren coordinaciΓ³n o resultados
de un agente para alimentar al siguiente
β’ Agent Teams: anΓ‘lisis paralelos independientes donde
quieres mΓΊltiples perspectivas simultΓ‘neas
ββββββββββββββββββββββββββββββββββββββββββ
```
**Usar AskUserQuestion**:
- Crear un team ahora
- Volver al menΓΊ de Aragorn
---
## Notas de implementaciΓ³n
- Los ficheros de teams se guardan en **scope proyecto** (`.claude/teams/`) porque son especΓficos del contexto de trabajo
- Si el directorio `.claude/teams/` no existe, crearlo automΓ‘ticamente antes de guardar
- Los agentes referenciados en un team deben existir en `~/.claude/agents/` o `.claude/agents/`; si alguno no se encuentra al cargar la configuraciΓ³n, advertir al usuario
- La variable `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` es a nivel de entorno y afecta a toda la sesiΓ³n de terminal, no solo a Claude Code