Pinguy Learning
Temario · lección 66 de 74
0Empieza aquí
1Por qué fallan los agentes
2Qué es un harness
3Patrones de agentes
4Herramientas
5Ingeniería de contexto
6El repositorio como memoria
7Tareas largas
8Alcance y “hecho” de verdad
9Observabilidad y estado limpio
10Loops y grafos
11Harness reales
12Proyecto final
Proyecto final· 7 min de lectura

Proyecto 1, solo prompt contra harness mínimo

En 30 segundos

Haz la misma tarea dos veces, una con un simple prompt y otra con AGENTS.md, init.sh y feature_list.json en el repo, y mide cuánto cambia el resultado.

El experimento más barato del curso

Para saber si unas gafas te sirven, te las pruebas y comparas. Aquí haces lo mismo con un harness. Una tarea sencilla, dos intentos: uno «en crudo» y otro con tres archivos de preparación. Es la prueba de que el entorno importa tanto como el modelo, que viste en el mismo caballo.

La tarea

Construir el esqueleto mínimo de una app de escritorio (Electron) de base de conocimiento: ventana con lista de documentos a la izquierda, panel de preguntas y respuestas a la derecha y una carpeta local de datos. Cuatro funciones concretas:

  1. Lanzar la ventana.
  2. Lista de documentos.
  3. Panel de preguntas y respuestas.
  4. Creación del directorio de datos local.

No es difícil. Lo difícil es conseguir que el agente la complete de forma fiable. Si no quieres Electron, vale cualquier proyecto pequeño con cuatro funciones comprobables: lo importante es el método.

Los dos intentos

Intento A: baselineIntento B: harness mínimo
Qué hay en el repoSolo task-prompt.md con la descripciónAGENTS.md, init.sh, feature_list.json (y CLAUDE.md, claude-progress.md)
Qué midesQué completa sin estructuraLo mismo, con reglas y verificación

Usa el mismo agente (Claude Code o Codex) en ambos, con un cronómetro y git para comparar ramas. El repo del curso indica que cualquier diferencia de tiempo es ilustrativa, no un resultado fijo: tus números serán los tuyos.

Los tres archivos del harness mínimo

init.sh instala, verifica y dice cómo arrancar:

INSTALL_CMD=(npm install)
VERIFY_CMD=(npm test)
START_CMD=(npm run dev)

feature_list.json fija qué cuenta como terminado, una función a una con su verificación:

{
  "id": "window-001",
  "priority": 1,
  "title": "Lanzar la ventana",
  "status": "not_started",
  "verification": ["Ejecutar init.sh", "Abrir la app", "Ver la ventana con dos paneles"],
  "evidence": ""
}

AGENTS.md dice qué hacer al empezar (leer progreso, elegir la función de mayor prioridad, ejecutar init.sh) y las reglas: una función a la vez, no marcar como hecho sin evidencia. Tienes plantillas en checklist final y plantillas.

Qué comparar

  • Tiempo hasta tener algo funcionando.
  • Cuántas de las cuatro funciones están realmente verificadas (no solo «escritas»).
  • Cuánto tuviste que corregir o preguntar.
  • Si una persona nueva sabría qué falta mirando solo el repo.
Comprueba lo aprendido

¿Por qué se usa el mismo agente y la misma tarea en los dos intentos?

Es un experimento controlado: si cambias varias cosas a la vez, no puedes saber a cuál se debe la mejora.

Fuentes: Learn Harness Engineering, projects/project-01