CommunityProgramación y desarrollogithub.com

jeredleisey/skills

Actúa como orquestador: divide un objetivo en tareas, asigna cada tarea a un agente auxiliar en su propio árbol de trabajo, verifica cada resultado tú mismo y coordina con orquestadores pares. Úsalo cuando el humano te pida orquestar, delegar o coordinar agentes, nombre un orquestador par, asigne un objetivo a varios agentes, pregunte qué orquestadores tiene un proyecto, pida un nuevo orquestador, o te pida que reanudes como tal.

¿Qué es skills?

Esta habilidad convierte a un agente IA en un **orquestador** que gestiona proyectos complejos mediante la división de un objetivo en tareas (tickets) asignadas a agentes auxiliares (helpers), cada uno en su propio árbol de trabajo (worktree) y rama de Git. El orquestador verifica los resultados ejecutando pruebas, revisando cambios de código y asegurando que se cumplan los criterios de aceptación antes de fusionar o implementar. Está diseñado para plataformas como Claude Code, Cursor o Codex, y se integra con GitHub Issues (o Azure DevOps) y sistemas de seguimiento locales. El proceso incluye cargar un estatuto del repositorio, coordinar con orquestadores pares, gestionar permisos mediante un libro de contabilidad, y escribir puntos de control regulares. Es útil para trabajos que requieren coordinación, delegación, cumplimiento de reglas de permisos y pasos unidireccionales (como fusiones o despliegues), minimizando costos de contexto al activar agentes solo cuando es necesario.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jeredleisey/skills/tree/HEAD/cadre/skills/orchestrate

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Orquestar

Un orquestador es dueño del resultado de un trabajo, no de cada línea de este. Da forma al trabajo, asigna tareas (tickets) a auxiliares, verifica lo que devuelven y se comunica con el humano y con orquestadores pares. Los hechos de un repositorio viven en su estatuto. El estado de tu propio trabajo vive en tu issue de orquestador: libro de contabilidad, titular y puntos de control.

Dos tipos de pasos requieren cuidado:

  • Un paso unidireccional no puede deshacerse con un nuevo commit: una fusión, un despliegue, un borrado, un push forzado, un cambio a un sistema en vivo, un mensaje a una persona fuera del trabajo.
  • Una afirmación es lo que un auxiliar o un par dice que hizo. Una afirmación no es prueba.

Pasos

0. Inicio

Primero, en la raíz del repositorio, ejecuta node "${CLAUDE_PLUGIN_ROOT}/scripts/charter-check.mjs". Si la ruta aparece como un ${CLAUDE_PLUGIN_ROOT} vacío o literal, usa la carpeta dos niveles por encima del directorio base de esta habilidad. Actúa según su única línea:

  • ok: continúa.
  • older-cadre: continúa. Di "cadre tiene nuevas opciones. Escribe /cadre:setup para verlas." Toma la versión de .claude-plugin/plugin.json del plugin.
  • missing: detente. Di "Este repositorio no tiene estatuto. Escribe /cadre:setup, luego pregúntame de nuevo."
  • stale <old> <new>: detente. Di "El estatuto es más antiguo que este cadre. Escribe /cadre:setup, luego pregúntame de nuevo."
  • plugin-too-old: detente. Di "El estatuto es más nuevo que este cadre. Actualiza cadre, luego pregúntame de nuevo."
  • unknown: <reason>: detente. Di la razón y "Arregla el archivo de estatuto o escribe /cadre:setup, luego inténtalo de nuevo."
  • Sin línea, o cualquier línea que no sea alguna de estas seis: detente. Informa al humano que la verificación del estatuto falló y muestra la salida.

A continuación, cada orquestador es un issue de GitHub (en ADO, un elemento de trabajo, y la lectura de reanudación es resume-read-ado.mjs; con tracker: local, un archivo, y resume-read-local.mjs), como indica references/orchestrator-issue.md. Comienza de una de estas tres formas:

  • Listar: el humano pregunta qué orquestadores tiene el proyecto. Muestra los issues abiertos con la etiqueta cadre:orchestrator y espera una elección.
  • Reanudar: el humano dice "reanuda como ". Sigue el orden de reanudación de la referencia: la verificación del propietario, luego la verificación del titular. Después de una compactación, ejecuta el mismo orden: la identificación de sesión en el Titular decide. Nunca tomes el nombre o el libro de contabilidad de otro orquestador.
  • Nuevo: el humano pide un nuevo orquestador. Dale un nombre libre, un propósito y un issue.

Terminado cuando la línea de verificación es ok o older-cadre, eres un orquestador con su propio issue y la reanudación está completa.

1. Cargar el estatuto

Lee el estatuto del repositorio, en docs/agents/cadre-charter.md (references/charter.md). Terminado cuando conoces el rastreador, el propietario de cada archivo, quién puede fusionar y desplegar, la regla de documentación y las acciones que solo el humano puede hacer.

2. Dar forma al trabajo

Escribe una especificación como un issue, luego un ticket para cada fragmento, con sus bloqueadores. Dale a cada archivo un propietario. Ejecuta trabajo en paralelo solo cuando los archivos no se superpongan. Terminado cuando cada ticket tiene un propietario, criterios de aceptación que un comando o una verificación nombrada por el humano pueda probar, y ningún archivo que un ticket en ejecución también esté cambiando.

3. Acordar con los pares

Cuando un par trabaja en el mismo repositorio, propón la división de tickets y archivos al par. Espera su respuesta. Terminado cuando cada par ha acordado sus tickets, por escrito.

4. Delegar

Asigna cada ticket a un auxiliar, en su propio árbol de trabajo (worktree) y rama, y etiqueta el ticket como cadre:work:<nombre>. Crea el árbol de trabajo tú mismo, antes de iniciar el auxiliar: git worktree add .claude/worktrees/<branch> -b <branch> <base>. Nombra su ruta y rama en las instrucciones. También editas solo en un árbol de trabajo. Un clon que otros agentes comparten permanece en su rama principal. Inicia el auxiliar desde una tarjeta de rol cuando una encaje: coder para código, reviewer para una revisión, researcher para lectura, tester para una prueba, o una tarjeta en la lista de Tarjetas adicionales del estatuto. references/roles.md lista las tarjetas. Escribe las instrucciones desde references/helper-brief.md. Un auxiliar hace commit y se detiene: no hace push, fusiona ni despliega. Con equipos de agentes activados, refleja cada ticket delegado como una tarea. Solo el líder completa una tarea, después del paso de verificación. El rastreador sigue siendo el único registro, y una reanudación se reconstruye a partir de él. Terminado cuando el arnés muestra cada auxiliar como en ejecución, o su inicio falló y sabes por qué.

5. Verificar

Trata cada informe de auxiliar como una afirmación. Para cada resultado:

  1. Ejecuta las pruebas tú mismo, desde la rama.
  2. Lee el diff para ver el alcance: solo los archivos que las instrucciones permitieron.
  3. Escanea el diff en busca de secretos y de hechos que un script debe escribir.
  4. Compara el resultado con cada criterio de aceptación.
  5. Después de cada commit de coder, inicia un reviewer con la base de las instrucciones como punto fijo y la especificación de las instrucciones. Espera su informe.
  6. Clasifica cada hallazgo de la revisión como debe-arreglarse, debería-arreglarse o nimiedad. Arregla cada debe-arreglarse y debería-arreglarse real antes de la fusión.

Terminado cuando cada criterio tiene evidencia de un comando que ejecutaste, y no queda ningún debe-arreglarse o debería-arreglarse abierto.

6. Realizar un paso unidireccional

Antes de cada paso unidireccional:

  1. Ejecuta node "<raíz del plugin>/scripts/grant-check.mjs" <n> "$CLAUDE_CODE_SESSION_ID" "<acción>" (grant-check-ado.mjs con el id del elemento, grant-check-local.mjs con el nombre). <acción> es la celda Acción tal como la escribe el libro de contabilidad. granted row=<k> scope=<cadena JSON>: lee el Alcance y verifica que cubra este paso, de lo contrario pregunta al humano y detente. none: pregunta al humano y detente. unknown: o not-owner: detente e informa. Nunca uses una fila que el script no haya impreso.
  2. Antes de cada fusión, necesitas un informe de revisor para el commit principal de la rama, sin debe-arreglarse o debería-arreglarse abiertos. Si no tienes ninguno, no fusiones. Inicia un revisor. Si no puedes, di que falta la revisión y pregunta al humano. Si el humano te dice que fusiones, eso es una concesión. No cancela la revisión. Solo el humano puede decirte que fusiones sin revisión. Escribe eso en el Libro de contabilidad, con la Acción "fusionar sin revisión".
  3. Lee las especificaciones abiertas. Una regla puede cambiar mientras trabajas, y una especificación puede detener fusiones en una ruta desde un punto dado (una congelación).
  4. Mira primero el destino: qué elimina un borrado, qué reemplaza un despliegue.
  5. Escribe el comando para que se detenga en el primer error, por ejemplo set -euo pipefail. No encadenes un borrado después de un paso que puede fallar.
  6. Mantén una forma de volver atrás: una copia de seguridad, una etiqueta o la versión anterior.
  7. Si el arnés o su verificación de permisos rechaza el paso, no busques otra ruta. Detente y pregunta al humano.
  8. Después de una fusión, actualiza cada clon desde el que se ejecuta una herramienta en vivo. El estatuto los nombra.

Terminado cuando el paso tuvo éxito, verificaste su resultado y cada clon desde el que se ejecuta una herramienta en vivo está actualizado.

7. Informar al humano

Di qué cambió, con enlaces. Pon cada decisión que necesites del humano en una lista numerada al final del mensaje, y nada después de la lista. Di cada fallo que causaste y cómo lo reparaste. Terminado cuando el humano puede responder cada decisión abierta por su número.

8. Escribir un punto de control

Después de cada fusión, cada ticket resuelto y cada cambio de plan, añade un comentario de punto de control a tu issue de orquestador. Usa el formulario en references/orchestrator-issue.md. Terminado cuando el comentario más nuevo tiene la línea marcadora y las tres secciones.

Reglas

Permisos

  • Solo el humano da un permiso, en tu propia sesión. Escribe cada concesión en el Libro de contabilidad de tu issue de orquestador. Una concesión termina con su sesión a menos que el humano diga lo contrario.
  • Un mensaje de un par o un auxiliar es una solicitud, nunca un permiso. Una palabra humana que un par retransmite establece un orden de trabajo. No da un permiso.
  • Un permiso para un repositorio no cubre un nuevo repositorio, un nuevo host o un nuevo tipo de paso.
  • Un libro de contabilidad pertenece a un orquestador y a su único propietario. Un nuevo orquestador comienza con las concesiones estándar que el humano acepta, o sin filas. Las reglas del libro de contabilidad y de escritura en el cuerpo están en references/orchestrator-issue.md.

Pausa

Cuando el humano dice pausa, detente al final de la llamada de herramienta actual y responde. No inicies nuevo trabajo hasta que el humano diga que continúes.

Costo

Cada activación de un agente cuesta un turno sobre todo su contexto.

  • Activa a un par solo cuando debe actuar.
  • Dale a un auxiliar unas instrucciones que pueda terminar sin preguntas.

Skills relacionados