Equipo del proyecto
Tres roles. Lee las reglas compartidas a continuación, luego SOLO tu archivo de rol:
- Brainstorm: "eres el agente de lluvia de ideas" → brainstorm.md
- Coordinador: "eres el coordinador" → coordinator.md. Sesión separada, nunca numerada.
- Parte N: "eres la parte N" (también "tarea N", "agente N") → worker.md
<repo> = carpeta ~/<repo>; <proj> = nombre corto en nombres de sesión (a menudo el mismo). <NN> = número de parte de dos dígitos.
Archivos de habilidad: ~/.claude/skills/project-team/ (templates/, scripts/tokens.sh tokens por sesión, scripts/patrol.sh patrulla del coordinador).
Construido a partir de las propias ejecuciones de proyectos multi-agente del usuario (2026-10).
Diseño del proyecto (creado por Brainstorm)
CLAUDE.md solo puntero de 3 líneas (templates/CLAUDE_pointer.md)
.claude/settings.json {"crossSessionInbound": "accept"} ← las sesiones pueden recibir mensajes
docs/INTERFACES.md contratos entre partes; en git; cambiados en el mismo commit que el código
team/ estado de coordinación; `/team/` en gitignore; reside SOLO en ~/<repo>/team
TEAM.md hechos del proyecto, orden de lectura, poderes del coordinador, reglas específicas del proyecto
SCOPE.md objetivo · Decidido por el usuario (fechado) · valores predeterminados propuestos · fuera de alcance
PARTS.md tabla de partes · tabla de despacho · diagrama de flujo · oleadas
parts/P<NN>_<name>.md un resumen por parte
STATUS.md una fila por parte · Necesita usuario · últimos 10 hitos
REQUESTS.md las solicitudes/informes de errores del usuario, sus palabras, propietario, estado
ISSUES.md errores entre partes · DECISIONS.md desviaciones · log/P<NN>.md notas por parte
research/NN_<topic>.md · launch.sh (sesiones nombradas en tmux; opcional)
Los árboles de trabajo no tienen team/: siempre rutas absolutas ~/<repo>/team/....
Reglas compartidas (cada rol)
Los nombres son direcciones. <proj> coordinador, <proj> parte N; SendMessage a ese nombre exacto. Los agentes no pueden renombrarse a sí mismos: si la primera línea de ListAgents ("Esta sesión es …") no es tu nombre, pídele al usuario una vez: "/rename <proj> part N por favor", mientras tanto sigue leyendo.
Mensaje solo cuando alguien debe actuar. Una etiqueta, primera palabra:
| Etiqueta | De → a | Cuándo |
|---|---|---|
DONE P3.2 <sha> | parte → coordinador | paso nombrado en algún despacho Necesita, o parte completa, fusionada. Los hitos van SOLO aquí |
START P4.2 | coordinador → parte | cada Necesita de ese paso fusionado |
STOP / RESUME | coordinador → partes | control de ejecución |
REQ R7 <las palabras del usuario> / DONE R7 <sha> | coordinador ↔ parte propietaria | solicitud del usuario enrutada / finalizada |
DECISION <las palabras del usuario> | coordinador → partes afectadas; parte → coordinador si el usuario le dijo a la parte | el usuario decidió algo |
ISSUES N | parte → parte propietaria | N nuevas líneas para ti en ISSUES.md, agrupadas |
IFACE | parte → partes afectadas | contrato en INTERFACES.md cambiado debajo de ellas |
BLOCKED | parte → coordinador | no puede continuar Y no hay solución alternativa (si no, una línea Necesita usuario, sin mensaje) |
ASK | cualquiera → cualquiera | necesita una respuesta; la ÚNICA etiqueta que recibe una respuesta |
- Cavernícola, ≤2 líneas, ≤300 caracteres, hecho primero. Señala archivo/commit, no expliques.
- Sin respuesta a menos que sea
ASK. Nunca acuses recibo, agradezcas, "lo haré", "empezando ahora", progreso, "todo bien". - Vale la pena registrar → disco (fila de STATUS, log, ISSUES, DECISIONS), no un mensaje.
- Esperando: termina tu turno. Sin sondeos, sin bucles de espera; un mensaje te despierta.
- Agente divagando (hablador, acusando recibo, fuera de alcance): recordatorio de una línea, una vez.
Archivos compartidos. Muchos agentes escriben team/: cambia STATUS/REQUESTS solo con la herramienta Edit (rechaza escrituras obsoletas; vuelve a leer y reintenta), agrega a ISSUES/DECISIONS con >>. Nunca sed -i o Write sobre ellos.
El usuario recibe preguntas solo a través del coordinador, agrupadas y numeradas. Las partes nunca bloquean al usuario y nunca usan AskUserQuestion: línea Necesita usuario en STATUS (- [ ] P3: pregunta; solución alternativa usada; impacto), usa la sugerencia del resumen, registra en DECISIONS.md, continúa.
Cada rol es un líder. Lectura amplia, codificación, pruebas largas → subagentes con resúmenes cavernícolas (alcance, rutas absolutas que pueden editar, criterios de finalización), informes ≤100 palabras, salida larga a archivos. Los subagentes concurrentes nunca editan el mismo archivo; registros/archivos de índice compartidos solo por el líder.
Máquina compartida. Mata solo los PID que iniciaste (pkill -f vite de una parte mató los servidores de todos). Solo tu rango de puertos. nvidia-smi antes de usar GPU. Nunca declares muerto a otro agente solo por ListAgents (verifica ps, tmux, mtime de la transcripción); nunca mates ni te hagas cargo de su trabajo o procesos sin el usuario. Nunca reinicies un servicio que alguien pueda estar usando (el usuario jugando, una demo) sin verificar que está inactivo. El modo automático bloquea un comando → no reintentes ni busques soluciones alternativas; línea Necesita usuario; continúa. Las reglas globales del usuario aún aplican.
STOP: termina la acción pequeña actual, detén tus subagentes y servidores de desarrollo (los servicios de producción/en vivo permanecen activos), haz commit del trabajo en progreso en tu rama (nunca main), registra "detenido en X, próximo Y", fila stopped, termina turno. RESUME / después de compactación: vuelve a leer TEAM.md (las reglas pueden haber cambiado), tu log, tu fila, git status; continúa.