Communitygithub.com

asamblea

Bucle de revisión iterativa con múltiples modelos. Cuatro modelos se turnan para mejorar y verificar una respuesta, rotando roles (constructor, escéptico, casos límite, simplificador) a lo largo de rondas de 4x4, luego 3x4, luego 2x4 (36 turnos), deteniéndose antes cuando la respuesta converge.

¿Qué es asamblea?

Esta habilidad, llamada 'asamblea', implementa un bucle de revisión iterativa donde cuatro modelos de IA trabajan en equipo para refinar una única respuesta, diseño, plan o fragmento de código. Cada modelo asume un rol específico en cada turno —constructor, escéptico, casos límite y simplificador—, rotando roles a lo largo de pasadas para garantizar una revisión equilibrada desde todas las perspectivas. El progreso se almacena en archivos (task.md, answer.md, state.md) en lugar de en la conversación, lo que permite que cada turno comience con un contexto fresco, siguiendo la técnica Ralph Wiggum. La habilidad es compatible con múltiples plataformas: puede utilizar subagentes integrados (Cursor, Claude Code, Kiro), ejecutar scripts CLI de varios proveedores, o funcionar con un solo modelo que asume todos los roles. El proceso se divide en tres bloques (4, 3 y 2 pasadas de los cuatro modelos, totalizando 36 turnos), pero se detiene antes si la respuesta converge (sin cambios durante una pasada completa) o si se atasca (los MUST abiertos no disminuyen). Al finalizar, genera un informe detallado con la respuesta final, el recuento de turnos, los cambios principales, y una estimación de tokens y costos. Esta herramienta es especialmente útil para tareas que requieren una revisión rigurosa y multifacética, como la validación de código complejo, diseños arquitectónicos o planes detallados.

Compatible con✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/DigiAye/agent-skills/tree/HEAD/skills/assemble

Preguntar en tu IA favorita

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

Documentación

¿Qué hace asamblea?

Cuatro modelos, una respuesta, muchas rondas. Cada turno lee la mejor respuesta actual, la critica desde un rol determinado y escribe una versión mejorada. El progreso vive en archivos, no en la conversación, por lo que cada turno comienza con un contexto fresco (la técnica Ralph Wiggum).

Comandos

ComandoQué hacer
asamblea <tarea>Iniciar una ejecución con el plan predeterminado (36 turnos).
asamblea --rápido <tarea>Un bloque de 2 pasadas x 4 modelos (8 turnos).
asamblea reanudar [<slug>]Continuar la ejecución inacabada más reciente (o con nombre).
asamblea cancelar [<slug>]Establecer estado: cancelado en el archivo de estado y detener.
asamblea estadoMostrar iteración, bloque, elementos MUST abiertos y modelos utilizados.

Antes de comenzar

  1. Cargar .asamblea/config.json si existe; de lo contrario, assets/config.ejemplo.json.
  2. Elegir el adaptador de modelo (ver más abajo) e informar al usuario qué cuatro modelos se ejecutarán y dónde se enviará el texto de su tarea. Si algún modelo está fuera de modelosPermitidos, o soloLocal es verdadero y un modelo es remoto, eliminarlo y notificarlo.
  3. Reformular la tarea y los criterios de aceptación en un párrafo breve. Si la tarea no está clara, preguntar al usuario antes de gastar rondas.
  4. Crear .asamblea/<slug>/ con tarea.md, respuesta.md (vacío) y estado.md según se describe en referencias/formato-estado.md. Asegurarse de que .asamblea/ esté en .gitignore.

El plan

Una ronda es un turno de modelo. Una pasada son los cuatro modelos tomando un turno cada uno, en orden.

BloquePasadasTurnosTotal acumulado
141616
231228
32836

Después del turno 36, mostrar el informe y preguntar al usuario si desea ejecutar otro bloque. Nunca pasar de 36 sin preguntar.

Los roles rotan en cada pasada para que cada modelo desempeñe todos los roles: en la pasada p (basada en 0), el modelo m desempeña roles[(m + p) % 4] de referencias/roles.md.

Cada turno

Construir el mensaje del turno solo a partir de archivos, utilizando referencias/formato-relevo.md:

  • tarea.md
  • la respuesta.md actual
  • la crítica del turno anterior (del último ronda-NN.md)
  • la tarjeta de rol para este turno

No incluir rondas anteriores ni indicar qué modelo escribió la respuesta actual. Luego:

  1. Enviar el mensaje al modelo de este turno usando el adaptador elegido.
  2. Analizar la respuesta en una crítica (cada problema etiquetado como MUST o NICE), una respuesta revisada y un veredicto.
  3. Si la tarea es código y verificaciones están configuradas, aplicar la respuesta revisada en una copia temporal, ejecutar las verificaciones y añadir cualquier fallo a la crítica como elementos MUST.
  4. Escribir ronda-NN.md (rol, id del modelo, crítica, resultados de verificación, veredicto, tamaño del diff de líneas) y sobrescribir respuesta.md con la respuesta revisada.
  5. Actualizar estado.md: iteración, bloque, pasada, recuento de MUST abiertos y la racha de cambios nulos.
  6. Dar al usuario una nota de progreso de una línea: Ronda 7/36 · escéptico · 2 MUST, 1 NICE · diff 14 líneas.

Si un modelo da error o se agota el tiempo, registrarlo en ronda-NN.md, saltar el turno y continuar. Si fallan dos modelos seguidos, pausar e informar al usuario.

Detención

Un turno cuenta como sin cambios cuando no plantea elementos MUST y cambia menos de lineasSinCambio líneas de respuesta.md.

Detener anticipadamente cuando:

  • cuatro turnos seguidos (una pasada completa) son sin cambios, o
  • un turno termina con <promesa>CONVERGIDO</promesa> y el siguiente turno lo confirma sin elementos MUST.

Si el recuento de MUST abiertos no ha disminuido durante un bloque completo, detenerse y escribir una nota breve de "atasco": qué está bloqueando, qué se intentó y qué podría decidir el usuario para desbloquearlo.

Informe

Cuando la ejecución termine, escribir .asamblea/<slug>/informe.md y mostrarlo:

  • la respuesta final
  • rondas ejecutadas y por qué se detuvo
  • los cambios principales en cada bloque
  • cualquier elemento NICE abierto
  • modelos utilizados, con fallos
  • una estimación aproximada de tokens y costos (suma de tamaños de mensaje y respuesta, multiplicada por precios en la configuración si se proporcionan)

Adaptadores de modelo

Usar el primero que esté disponible e informar al usuario cuál se eligió.

  1. Subagentes dentro de la herramienta. Si el anfitrión puede generar subagentes y elegir su modelo, usar uno por turno. Cursor puede mezclar proveedores. Claude Code y Kiro solo ofrecen modelos Claude aquí, por lo que los cuatro serán variantes de Claude.
  2. CLIs de proveedores. Ejecutar scripts/ejecutar-modelo.sh <id-modelo> <archivo-mensaje> una vez por turno. Esta es la opción verdaderamente multi-proveedor. Verificar que cada CLI existe (comando -v) antes de que comience la ejecución.
  3. Modelo único. Ejecutar cada turno uno mismo, desempeñando el rol de ese turno. Leer solo los archivos del turno y tratar cada turno como un inicio fresco.

Los ayudantes opcionales específicos de la herramienta, como un gancho de detención de Claude Code para ejecuciones desatendidas, están en la carpeta adaptadores/ del repositorio.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados