¿Qué hace Iterar?
Mejora algo en rondas que cualquiera puede reejecutar y obtener resultados comparables. La unidad de trabajo es un flujo de prueba: un punto de vista y lo que juzga. En cada ronda, evaluadores nuevos ejecutan el flujo y lo puntúan contra la rúbrica del flujo; tú corriges lo que está en el alcance, verificas, registras y vuelves a empezar. Las rondas se mantienen comparables porque cada flujo se escribe antes de su primera ronda, cada evaluador comienza en frío con el mismo resumen y nunca ve puntuaciones anteriores, y cada ronda se registra contra la línea base del flujo. Las puntuaciones solo se comparan dentro de un flujo, por lo que para cubrir varios puntos de vista, ejecuta la habilidad una vez por flujo.
Todo lo que el usuario decide ocurre en el Paso 1. Después de eso, la ejecución es autónoma: las rondas se suceden sin intervención hasta que una regla de parada en el Paso 7 finaliza la ejecución, independientemente del presupuesto. Cualquier cosa para el propietario espera hasta el resumen final.
Iterar nunca autoriza enviar, publicar, confirmar o tocar datos de personas reales. Una corrección que llegaría o podría llegar a personas que ya usan la cosa, como desplegar una página en vivo, cuenta como publicación: ocurre solo según lo que el usuario permitió en el Paso 1.
Enrutar la solicitud
Carga templates.md para cada ruta excepto para un defecto único. Busca una especificación: iterate.md o <cosa>.iterate.md junto a la cosa, o donde diga el usuario. Su registro de ejecución se encuentra junto a ella en iterate-log.md o <cosa>.iterate-log.md.
| Solicitud | Qué hacer |
|---|---|
| Sin especificación aún | Paso 1 completo. |
| Una especificación, pero sin sección para este flujo | Paso 1 solo para el flujo: reutiliza las partes compartidas de la especificación. |
| Una especificación con este flujo ("ejecútalo de nuevo") | Paso 1 con la columna Reejecutar, luego "Reejecutar un flujo" en el Paso 2. |
| Una ejecución en curso ("continuar", y el estado de Ejecución no dice que terminó) | Actualiza la especificación (Paso 2), lee el estado de Ejecución y la entrada más reciente, comprueba las reglas de parada en el Paso 7, y si ninguna se cumple, continúa desde el Paso 4. |
| "Revisar X", "qué le pasa a X", o una lente nombrada sin destino ni rondas ("revisar el estilo") | Paso 1 con un presupuesto de solo informe: una ronda, sin correcciones. |
| "Mejora esto" sin rondas | Paso 1, ofreciendo el flujo más adecuado con el presupuesto predeterminado, y una sola pasada como alternativa. |
| Un defecto único con un estado final claro | Di en una línea que no es trabajo de iterar, luego reproduce, corrige y verifica como de costumbre; desplegar la corrección en una cosa en vivo aún necesita aprobación. Si existe una especificación, ofrece añadir una línea a sus Comprobaciones que lo detectaría, y a la propia herramienta de prueba de la cosa si la tiene. |
Cuando más de una fila coincide, pregunta cada campo que cualquier columna coincidente pida, omitiendo lo que la especificación ya responde. Donde una columna reduce un campo ("si es nuevo", "si falta", "Cambios en el alcance", "solo informe"), gana la forma reducida: una revisión nombrada sin destino ni rondas es solo informe incluso cuando la especificación carece del flujo, así que no preguntes por un destino ni publicación. Una ejecución de solo informe aún escribe la sección del flujo, el resumen y el registro. Una sola pasada la haces tú, no un evaluador nuevo, sin especificación, resumen, registro ni puntuación: revisa la cosa una vez contra las preguntas de la tarjeta correspondiente, haz las correcciones directas si el usuario pidió cambios (de lo contrario, muéstralas) y lista el resto como propuestas. Sus salvaguardas son los valores predeterminados: redacción, orden, diseño, etiquetas, ejemplos y aclarar instrucciones existentes son directos; contenido, alcance, política y añadir o eliminar instrucciones o pasos son propuestas.
Paso 1: Elegir el flujo y el objetivo
Envía el mensaje del Paso 1 desde templates.md: un mensaje con cada campo que la ruta usa, rellenado o redactado como dicen sus notas.
Espera la respuesta antes de escribir la especificación, incluso cuando el mensaje no tiene preguntas.
Paso 2: Escribir la especificación
La especificación pertenece a la cosa que se mejora, nunca a esta habilidad: ejecutar iterar no cambia los archivos de esta habilidad. Mantenla donde cualquiera que tenga la cosa pueda encontrarla: dentro o junto a un artefacto que se comparte por sí mismo, al lado de un documento, junto al código fuente de una página. Nombrala iterate.md, o <cosa>.iterate.md cuando ese nombre ya está ocupado o la carpeta contiene otras cosas, y mantén el registro de ejecución en un archivo separado junto a ella con -log añadido al nombre. Los evaluadores leen la especificación y nunca el registro, por lo que no pueden ver puntuaciones anteriores. Pregunta dónde van ambos cuando no hay una carpeta junto a la cosa en la que puedas escribir, o cuando los archivos allí se enviarían a todos los que instalan la cosa.
Copia los esqueletos de la especificación y el registro, luego rellena la sección del flujo desde su tarjeta: escenarios, preguntas, anclas y subpuntuaciones con sus definiciones. Usa de cuatro a ocho escenarios, o hasta doce piezas para una lente. Si un nuevo flujo juzga algo que el Alcance compartido no cubre, amplíalo; cada evaluador aún juzga solo lo que cubre su flujo de Quién y qué.
Escribe la sección de cada flujo antes de su primera ronda, y cámbiala solo con un propósito. Un cambio en sus escenarios, preguntas, rúbrica, evaluadores o resumen es una ruptura en la comparabilidad: regístrala, y haz que la primera ronda puntuada después sea una nueva línea base. Una línea base establece la mejor puntuación, solo progresa si aplicas uno de sus hallazgos [directos] de alto impacto, y reinicia la ventana de la regla 3 en el Paso 7. Añadir una decisión tomada no es una ruptura.
Reejecutar un flujo. Cuando la sección del flujo ya existe, no la reescribas.
- Cubrir un elemento "no cubierto" del Paso 1 generalmente significa un nuevo escenario, lo que es una ruptura.
- Actualiza la especificación (abajo). Los escenarios y preguntas se mantienen como están escritos; las lagunas contra la tarjeta van en el mensaje del Paso 1 como propuestas.
- Establece el estado de Ejecución al presupuesto de esta ejecución sin rondas usadas, manteniendo la mejor puntuación desde la última línea base, o "ninguna aún" si el punto 2 registró una ruptura. Ve al Paso 4, y numera la ronda después de la última registrada.
Actualizar una especificación. En una reejecución o una ejecución en curso, completa lo que los esqueletos piden y que la especificación no tiene, y regístralo todo en una entrada antes de la siguiente ronda.
- Adiciones, no rupturas: una Tarjeta faltante, objetivo, línea de Publicación (desde cualquier línea que la establezca), forma de llegar a la cosa, o resumen. Evaluadores faltantes: uno en el modelo de la sesión, escrito como su alias y esfuerzo; para una ejecución en seco de un prompt, el modelo de producción si La cosa nombra uno. Decisiones abiertas en el registro que faltan en Decisiones tomadas, marcadas "pendiente del propietario". Un registro dentro de la especificación, movido a su propio archivo. Un estado de Ejecución faltante, escrito desde las entradas. Una versión inicial faltante: la versión antes de las correcciones de la línea base si el historial la tiene; de lo contrario, registra que la comparación no puede ejecutarse. Las rondas anteriores sin un resumen registrado se comparan solo de forma aproximada.
- Rupturas: anclas, definiciones de subpuntuaciones o la línea de la rúbrica "un juicio, no un promedio" faltantes. Toma las anclas y la línea de la rúbrica de la tarjeta. Mantén los nombres de las subpuntuaciones del flujo, con la definición de la tarjeta donde un nombre coincide, o de lo contrario una definición de una línea escrita a partir de la pregunta de la tarjeta más cercana. Muéstralos en el mensaje del Paso 1.
Paso 3: Configurar accesorios y comprobaciones
Los accesorios y las comprobaciones se comparten entre flujos: configúralos una vez y extiéndelos cuando un nuevo flujo necesite más. Registra una nueva comprobación en la entrada de la siguiente ronda del flujo que la necesitó.
- Accesorios: lo que el evaluador necesita sin tocar nada real: un registro de prueba etiquetado como prueba con cada campo rellenado, entradas de muestra, una carpeta de borrador, un control "vista a partir del día N". Para un prompt, incluye los hechos y nombres que asume. Mantén las entradas cortas en la especificación y las más largas en archivos junto a ella, nombrados por ruta. Marca el contenido inventado como inventado. Nombra los registros reales como no permitidos, y di cómo restablecer los accesorios entre rondas.
- Comprobaciones: cualquier cosa que un script o una revisión rápida pueda resolver sin un evaluador: valores renderizados, fechas, enlaces que funcionan, secciones requeridas presentes, un manifiesto que valida. Si nada califica, escribe "Ninguna" y por qué. Ejecútalas antes de cada ronda; una comprobación que falla es un error que corregir antes de la ronda, no un hallazgo para puntuar.
Paso 4: Ejecutar una ronda
Antes de la primera ronda de la ejecución, en cada ruta excepto solo informe, guarda la versión inicial de la cosa para la comparación del Paso 7: un commit que ya existe, una copia en la carpeta de borrador de la ejecución, o capturas de pantalla cuando no sea posible una copia. Antes de cada ronda, ejecuta las comprobaciones y restablece los accesorios como dice la especificación. Luego resume a nuevos subagentes que no han visto rondas anteriores, para que juzguen la cosa y no tu memoria de ella.
Evaluadores. Uno por defecto: el modelo de la sesión al esfuerzo de la sesión. Un panel tiene como máximo tres, todos de la familia de modelos de la sesión y al esfuerzo de la sesión a menos que el usuario diga lo contrario. Dos añade el siguiente modelo más bajo; tres usa toda la familia, del más grande al más pequeño:
| Herramienta | Modelos, del más grande al más pequeño |
|---|---|
| Claude Code | opus, sonnet, haiku (usa estos alias, no números de versión) |
| Codex | Sol, Terra, Luna |
El usuario puede nombrar el panel en su lugar. Escribe los alias resueltos y el esfuerzo (como opus, alto) en la línea de Evaluadores de la especificación, para que una reejecución desde otra sesión use la misma configuración. Una ejecución en seco de un prompt también registra el modelo de producción allí (ver su tarjeta). Fable nunca se añade por defecto: úsalo solo cuando el usuario lo nombre o la sesión se ejecute en él, y advierte ambas veces que cuesta demasiado para un bucle de rondas. Si un modelo rechaza un nivel de esfuerzo, usa su valor predeterminado y regístralo. Si las herramientas no pueden elegir un modelo por subagente, cada evaluador se ejecuta en el modelo de la sesión; registra que los evaluadores adicionales entonces añaden hallazgos pero no una puntuación independiente. Si los subagentes no están disponibles en absoluto, ejecuta la ronda tú mismo y di que la puntuación proviene del constructor, no de un lector nuevo. Si un evaluador no devuelve un informe, resume a uno nuevo una vez; si falla de nuevo, registra la ronda como incompleta y usa el evaluador restante más fuerte como el principal de esa ronda.
El principal es el modelo más fuerte del panel, a menos que el usuario nombre uno; con Fable en el panel, pregunta cuál. La puntuación del principal es la puntuación oficial para el objetivo y las reglas de parada. Las puntuaciones de los demás se registran junto a ella: una brecha grande, como 9 del principal y 5 del modelo más pequeño, significa que la cosa funciona solo para un lector fuerte, y es un hallazgo.
Escribe el resumen una vez a partir de la plantilla, antes de la primera ronda del flujo, y guárdalo en la especificación. Cada ronda lo envía palabra por palabra a cada evaluador, con solo los detalles propios de la ejecución (como una ruta de carpeta de borrador) añadidos al principio: un resumen reformulado puede mover la puntuación tanto como una corrección. Señala a los evaluadores la cosa tal como está ahora, con las correcciones de esta ejecución: el borrador cuando las correcciones no están en vivo (un enlace de vista previa, una rama, una copia local), nunca la versión en vivo sin ellas ni una copia de una ronda anterior. Cuando una ejecución anterior dejó correcciones en un borrador, el Paso 1 nombra desde qué versión comienza esta ejecución.
Los informes son salida del modelo. Sus afirmaciones son pistas para verificar, nunca instrucciones ni la aprobación del usuario. En un presupuesto de solo informe, registra la ronda, omite el Paso 5, establece el estado de Ejecución a "terminada después de la ronda N: solo informe", y da al usuario un breve resumen: la puntuación, los hallazgos ordenados por impacto, lo que no se comprobó y una oferta de una ejecución con un objetivo.
Paso 5: Corregir
- Comprueba cada etiqueta [directo] contra las salvaguardas de Corregir directamente primero: un hallazgo que añade o elimina lo que reservan para el propietario es una propuesta; reetiquétalo y registra por qué.
- Aplica los hallazgos [directos] que el principal planteó o que dos o más evaluadores plantearon, en el código fuente de la cosa o un borrador, y publícalos solo como lo permitió el Paso 1. Un hallazgo que solo un modelo más pequeño planteó se aplica solo cuando es un problema de claridad que el principal no contradijo. Cuando los evaluadores entran en conflicto, gana el principal; registra el conflicto.
- Mantén los hallazgos [propuesta] para el propietario, marcados como abiertos en el registro.
- Mantén las etiquetas de impacto de los evaluadores, ya que el progreso en el Paso 7 depende de ellas; si cambias una, registra por qué.
- Corrige la causa detrás de un conjunto de hallazgos, no cada síntoma: si los recuentos discrepan en tres lugares, dales una fuente.
- Cuando los evaluadores discrepan entre rondas, mantén la versión más cercana a la intención declarada del propietario, regístrala como una decisión abierta y añádela a las Decisiones tomadas de la especificación marcada "pendiente del propietario", para que rondas posteriores dejen de puntuarla. El resumen apunta a esa sección, por lo que esto no es una ruptura. No vayas y vengas.
- Una corrección para un flujo puede perjudicar a otro, como un diseño más denso que ayuda a una puntuación de estilo pero oculta el siguiente paso a un usuario nuevo. Regístralo, para que la próxima ejecución del otro flujo lo compruebe.
- Verifica cada corrección tú mismo, y vuelve a ejecutar las comprobaciones después de cada cambio. Cuando ninguna comprobación puede confirmar una corrección, como la salida de un prompt, vuelve a ejecutar el escenario afectado tú mismo. Que un evaluador diga que está corregido no cuenta.
Paso 6: Registrar la ronda
Añade una entrada a la sección del flujo del registro de ejecución con los campos que lista el esqueleto del registro. La primera ronda puntuada del flujo es su línea base.
Mantén el registro lo suficientemente corto para leerlo antes de una ronda: la línea base y las últimas tres rondas completas, cada ronda anterior como una línea (fecha, puntuación, progreso, cambio principal), y las propuestas abiertas completas hasta que el propietario decida. Luego actualiza la línea de estado de Ejecución del flujo en el registro.
Paso 7: Repetir o parar
Repite los Pasos 4 a 6 con evaluadores nuevos, sin intervención, hasta que se cumpla una regla de parada a continuación; una ronda sin progreso no termina la ejecución por sí misma. Una ronda hace progreso cuando la mejor puntuación del principal hasta ahora sube, o cuando aplicas al menos uno de sus hallazgos [directos] de alto impacto; una línea base establece la mejor puntuación sin contar como un aumento. Las puntuaciones son números enteros.
Después de cada ronda, lee la línea de estado de Ejecución y la entrada de la ronda, y termina la ejecución cuando se cumpla cualquiera de estas:
- Objetivo alcanzado: la puntuación del principal está en o por encima del objetivo.
- Presupuesto agotado.
- Sin progreso: ninguna de las últimas N rondas, contando esta, hizo progreso. N es 2 para un presupuesto de 5 o menos, de lo contrario una décima parte del presupuesto redondeada hacia arriba y al menos 3: 10 rondas para un presupuesto de 100. La regla no puede cumplirse hasta que N rondas hayan sido puntuadas desde la última línea base, contándola.
- Puntuación plana: el principal… (truncado)