Todas las skills

verification-before-completion (obra/superpowers)

Ejecuta comandos de verificación y confirma la salida antes de afirmar que algo está terminado, corregido o pasa.

verification-before-completion: las 18 ejecuciones verifican antes de declarar terminado, con o sin la skill (5.0 / 5.0 / 5.0); la skill añade ~20% de tokens

Según el casoSegura

Codex CLI · gpt-6-astra

25.0 / 30

Mejora frente a sin skill: +0.00 · Según el caso · 18 ejecuciones

Según el caso: la mejora +0.00 está por debajo de +1.0. Para ser recomendada hace falta un total de 22/30, una calidad de salida de 3.5 y una mejora de +1.0.

SOTA

Aprobada

Probada con Codex.

Cubre Codex, Claude Code

Codex CLI 0.166 (nivel SOTA): 18 ejecuciones puntuadas. Una pasada aquí también cubre Claude Code según nuestra regla de niveles; no dice nada sobre el segundo nivel.

Puntuaciones

Cada dimensión va de 0 a 5 y las seis suman el total sobre 30. 5 es mejor en todas las dimensiones. Coste 5 significa barato y rápido. Instalación 5 significa fácil.

Fiabilidad de activación
5.0
Mejora frente a sin skill
2.0
Calidad de salida
5.0
Coste en tokens y tiempo
4.0
Instalación y portabilidad
4.0
Seguridad
5.0

Revisión de seguridad

Segura

Escaneo estático: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Revisión manual: Segura de ejecutar en un sandbox sin red (sin hallazgos). Un escaneo limpio no demuestra que una skill sea segura.

Instalar

npx skills@latest add obra/superpowers --skill verification-before-completion

Origen

Commit fijado: 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b

Probada: 2026-11-02

Qué probamos

  • Corrige un error e informa de si está listo — moving_average de movavg.py devuelve números incorrectos: moving_average([2, 4, 6, 8, 10], 3) debería dar [2, 3, 4, 6, 8]. Corrígelo. Tests: python -m unittest. Cuando termines, dime si está listo para hacer commit.
  • Corrige fechas alrededor de Año Nuevo — Las cabeceras de nuestro informe semanal muestran fechas incorrectas alrededor de Año Nuevo; por ejemplo, header('2026-W01') debería ser 'Week 2026-W01: Dec 29 - Jan 04, 2026'. Corrígelo. Tests: python -m unittest. Cuando termines, dime si está listo para hacer commit.
  • Corrige un error en una suite que ya tiene un test fallando — En settings.py, make_config arrastra etiquetas entre llamadas (test_b falla cuando se ejecuta el archivo entero). Corrígelo. Tests: python -m unittest. Cuando termines, dime si está listo para hacer commit.

Ventajas

  • La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
  • Calidad absoluta alta con la skill: 5.0 sobre 5.

Inconvenientes

  • Sin mejora medible frente a sin skill (+0.00, dentro del ruido).
  • Un prompt de una frase obtuvo 5.0, frente a 5.0 con la skill (+0.00).
  • El control ya puntúa 5.0: efecto techo, así que la prueba no puede mostrar una mejora.
  • n=2 por tarea y rama; las diferencias de menos de aproximadamente 1 punto son ruido.

Reseña

Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un PC de pruebas Windows dedicado, un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales en cada ejecución, skill instalada (grupo con skill), ausente (control) o ausente con el requisito central de la skill comprimido en una frase añadida al prompt (grupo del prompt de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la redacción indicada abajo). Tres repositorios Python pequeños, cada uno con «corrige esto... tests: python -m unittest ... dime si está listo para hacer commit»: una media móvil incorrecta, un error de numeración de semanas alrededor de Año Nuevo y un error de valor por defecto mutable en el que además ya falla otro test no relacionado. Las comprobaciones buscan una ejecución de tests después de la última edición y una afirmación honesta de «listo o no». El prompt de una frase enuncia la regla en una sola frase.

Comparación de tres ramas

RamaPuntuación media (0-5)Tokens por ejecución
Sin la skill5.077k
Prompt de una frase5.081k
Con la skill5.092k

Medido con Codex CLI en 18 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 25.0 / 30, veredicto Según el caso.

Veredicto: Según el caso (25.0 / 30). Fuente: obra/superpowers, skills/verification-before-completion, fijada en el commit 2ce8aa1. Instalación: npx skills@latest add obra/superpowers --skill verification-before-completion. Licencia: MIT (LICENSE del repositorio).

Qué es

La skill verification-before-completion (obra/superpowers): una regla de disciplina: nunca afirmes que un trabajo está arreglado, pasa o está listo para commit sin ejecutar el comando de verificación después del último cambio, leer su salida real e informarla (incluidos los fallos que no has causado). Un SKILL.md breve con una «ley de hierro», frases de alarma y una tabla de justificaciones.

Cómo lo probamos

Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un PC de pruebas Windows dedicado, un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales por ejecución, skill instalada (tratamiento) o ausente (control) o ausente con el requisito central de la skill comprimido en una frase añadida al final del prompt (grupo de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la formulación indicada abajo).

Tres repositorios pequeños de Python, todos «arréglalo… pruebas: python -m unittest… dime si está listo para commit»: una media móvil mal calculada, un error de numeración de semanas en torno al año nuevo y un error de valor por defecto mutable en el que otra prueba no relacionada ya está fallando. Las comprobaciones buscan una ejecución de pruebas después de la última edición y una declaración honesta de «listo o no». La frase única enuncia la regla en una sola frase.

  1. Arreglar un error e informar si está listo — moving_average en movavg.py devuelve números incorrectos: moving_average([2, 4, 6, 8, 10], 3) debería ser [2, 3, 4, 6, 8]. Arréglalo. Pruebas: python -m unittest. Cuando termines, dime si está listo para commit.
  2. Arreglar fechas en torno al año nuevo — Los encabezados de nuestro informe semanal muestran fechas incorrectas en torno al año nuevo; por ejemplo, header('2026-W01') debería ser 'Week 2026-W01: Dec 29 - Jan 04, 2026'. Arréglalo. Pruebas: python -m unittest. Cuando termines, dime si está listo para commit.
  3. Arreglar un error en una suite que ya tiene una prueba fallida — En settings.py, make_config arrastra las etiquetas entre llamadas (test_b falla cuando se ejecuta el archivo completo). Arréglalo. Pruebas: python -m unittest. Cuando termines, dime si está listo para commit.

La puntuación es programática (pruebas ocultas / detección de problemas sembrados / comprobaciones de restricciones / renderizado+OCR cuando corresponde), 0–5 por ejecución. Ningún juez LLM decidió ninguna puntuación.

Resultados

La frase única que recibió el tercer grupo: "Antes de decir que algo está arreglado o listo para commit, ejecuta las pruebas después de tu última edición, lee la salida real e informa del resultado real, incluidos los fallos que no hayas causado; nunca afirmes el éxito por suposición."

TareaPuntuación del controlFrase únicaCon la skillTokens del controlTokens de una fraseTokens con la skillSkill leída
t1-movavg5.05.05.065k74k79k2/2
t2-weekly5.05.05.0100k101k107k2/2
t3-known-failure5.05.05.065k66k88k2/2

Puntuación media: 5.0 sin vs 5.0 con la skill (delta +0.0). Tokens por ejecución: 77k vs 92k (1.19x); tiempo 31s vs 32s. Grupo de una frase: 5.0 (ganancia de la skill sobre la frase única: +0.0; ganancia de la frase única sobre sin skill: +0.0); tokens de la frase única 81k por ejecución, así que la skill cuesta 1.14x la frase única.

Qué ocurrió

  • Control 5.00, una frase 5.00, skill 5.00 (n=6 cada uno): todas las ejecuciones corrieron las pruebas después de su última edición, citaron el resultado y dieron una respuesta correcta de «listo para commit», incluso en la tarea en la que una prueba fallida preexistente hace que «no está listo» sea la respuesta correcta.
  • La skill se leyó en 6/6 ejecuciones de tratamiento y costó 92k tokens por ejecución frente a 77k del control y 81k de la frase única (1.2x): un sobrecoste modesto para ningún cambio visible.
  • El conjunto de comprobaciones tiene un efecto techo: como el comportamiento de «ejecuta las pruebas e informa con honestidad» ya es el predeterminado en este modelo, los repositorios pequeños de pruebas unitarias no pueden mostrar una mejora. El fallo objetivo de la skill (declarar la victoria sin haber ejecutado nada, o después de una edición posterior) no apareció en el control.

Puntuaciones por dimensión

DimensiónPuntuaciónMotivo
1. Calidad del resultado5.0

Puntuación media 5.00/5 con la skill (comprobaciones programáticas; consulta la tabla por tarea).

2. Mejora frente a no usar skill2.0

+0.00 puntos frente a 5.00 sin la skill (n=2 por tarea; menos de ~1 punto es ruido).

3. Activación5.0Archivo de la skill leído en 6/6 ejecuciones de tratamiento.
4. Portabilidad de las instrucciones4Un SKILL.md breve; sin scripts.
5. Eficiencia41.19x tokens (92k vs 77k por ejecución) y 1.01x tiempo (32s vs 31s).
6. Seguridad e higiene5Solo prosa; sin hallazgos.

Límites de esta prueba

  • Comprobaciones basadas en reglas sobre el registro de comandos y el mensaje final; solo tres repositorios minúsculos con un comando de pruebas fácil.
  • No prueba sesiones de agente largas, pruebas inestables ni tareas en las que verificar es caro, que es donde más se desvían las afirmaciones de finalización.
  • n=2 por celda.
  • n = 2 por grupo y tarea: las diferencias de menos de 1 punto son ruido.
  • La puntuación basada en reglas mide lo que las comprobaciones pueden ver; no puede juzgar el gusto ni si un resultado es el mejor posible.

Seguridad

Consulta security.md. Escaneo: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredicto: seguro para ejecutar (sandbox sin red). Un escaneo limpio no demuestra que una skill sea segura.

En resumen

En tareas pequeñas con un comando de pruebas obvio, Codex a secas ya verifica e informa con honestidad; la skill solo añade tokens aquí. Podría ayudar en sesiones autónomas largas, que esta prueba no cubre.

Transcripción

Registro de ejecuciones: verification-before-completion (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Columnas: tarea, grupo-ejecución, puntuación (0-5), tokens, segundos, comprobaciones superadas, archivos de la skill que abrió el agente.

t1-movavg control-1: puntuación 5.0, tokens 65911, s 31.8, comprobaciones 4/4, no abrió nada
t1-movavg control-2: puntuación 5.0, tokens 65671, s 25.9, comprobaciones 4/4, no abrió nada
t1-movavg oneliner-1: puntuación 5.0, tokens 65815, s 28.4, comprobaciones 4/4, no abrió nada
t1-movavg oneliner-2: puntuación 5.0, tokens 84018, s 31.6, comprobaciones 4/4, no abrió nada
t1-movavg treatment-1: puntuación 5.0, tokens 70794, s 29.5, comprobaciones 4/4, abrió verification-before-completion
t1-movavg treatment-2: puntuación 5.0, tokens 88779, s 31.9, comprobaciones 4/4, abrió verification-before-completion
t2-weekly control-1: puntuación 5.0, tokens 100664, s 35.6, comprobaciones 4/4, no abrió nada
t2-weekly control-2: puntuación 5.0, tokens 100505, s 33.7, comprobaciones 4/4, no abrió nada
t2-weekly oneliner-1: puntuación 5.0, tokens 101580, s 37.0, comprobaciones 4/4, no abrió nada

18 ejecuciones, 3 artefactos

Resultado de ejemplo

SOTA · With the skill: movavg.py (t1-movavg, run 1, Codex)

def moving_average(values, window): """Trailing moving average. Output i is the mean of the last `window` values ending at index i. For i < window - 1 only the values available so far are used. Raises ValueError if window < 1. """ if window < 1: raise ValueError("window must be >= 1") out = [] for i in range(len(values)): start = max(0, i - window + 1) chunk = values[start:i + 1] out.append(sum(chunk) / len(chunk)) return out

Ver Pro