Diagnosticar
Objetivo: Obtener el score base de tu proyecto y entender qué subsistemas necesitan atención.
Ejecuta el scanner en la raíz de tu proyecto para obtener un diagnóstico completo en formato JSON:
harness scan . --json
Expected output
{
"score": 45,
"grade": "NEEDS_IMPROVEMENT",
"subsystems": [
{ "id": "instructions", "score": 60, "weight": 0.25 },
{ "id": "state", "score": 40, "weight": 0.20 },
{ "id": "verification", "score": 10, "weight": 0.20 },
{ "id": "scope", "score": 50, "weight": 0.15 },
{ "id": "lifecycle", "score": 55, "weight": 0.10 },
{ "id": "skills", "score": 30, "weight": 0.10 }
]
}
Revisa los scores por subsistema. Los más bajos suelen ser Verification (falta de tests) e Instructions (falta de docs estructuradas). Anota tu score base: lo compararás al final.
Generar archivos faltantes
Objetivo: Crear stubs automáticos para todos los archivos de harness que faltan en tu proyecto.
El comando harness fix . analiza tu repo y genera archivos de scaffolding con contenido mínimo viable:
harness fix .
Expected output
✅ AGENTS.md creado
✅ ROADMAP.md creado
✅ TASK.md creado
✅ docs/vision.md creado
✅ scripts/verify.sh creado
✅ tests/ creado
⚠️ Revisa los stubs generados y reemplázalos con contenido real.
Importante: harness fix . no cubre los siguientes archivos — debes crearlos manualmente si aplican a tu proyecto:
SOUL.md— identidad y filosofía del proyectoTOOLS.md— stack y herramientas permitidasUSER.md— perfil del usuario objetivoMEMORY.md— convenciones de memoria y estadoBOOTSTRAP.md— instrucciones de setup inicialRULES.md— reglas de negocio y constraints.gitignore— exclusiones de version controlLICENSE— licencia del proyecto
Personalizar cada archivo
Objetivo: Transformar los stubs genéricos en documentación viva que refleje la identidad real de tu proyecto.
Abre cada archivo generado y reescríbelo con contenido específico. No dejes placeholders. Algunos ejemplos:
- SOUL.md: "Este proyecto es un motor de backtesting cuantitativo. Su razón de ser es permitir a traders individuales validar estrategias sin código."
- AGENTS.md: Define quién es el agente, qué puede hacer y qué no debe hacer nunca.
- ROADMAP.md: Lista milestones reales con fechas o versiones objetivo.
- docs/vision.md: Describe el north star del proyecto en 3 párrafos máximo.
Regla de oro: si un archivo tiene más del 30% de texto genérico o placeholders ("TODO", "FIXME", "[NOMBRE]"), el harness score no subirá.
Re-escanear
Objetivo: Medir el impacto de la documentación y los stubs generados.
Vuelve a ejecutar el scanner y compara los scores:
harness scan . --json
Expected output
{
"score": 62,
"grade": "FAIR",
"subsystems": [
{ "id": "instructions", "score": 85, "weight": 0.25 },
{ "id": "state", "score": 70, "weight": 0.20 },
{ "id": "verification", "score": 15, "weight": 0.20 },
{ "id": "scope", "score": 65, "weight": 0.15 },
{ "id": "lifecycle", "score": 60, "weight": 0.10 },
{ "id": "skills", "score": 45, "weight": 0.10 }
]
}
Lo más probable es que Instructions y Scope hayan subido drásticamente. Sin embargo, Verification seguirá bajo hasta que agregues tests.
Agregar tests
Objetivo: Cerrar el gap de Verification creando al menos 2 archivos de test.
Crea el directorio tests/ y al menos 2 archivos de test con casos reales:
mkdir tests
touch tests/test_core.py
touch tests/test_validation.py
Escribe al menos un test que pase y uno que valide un error. Ejemplo mínimo:
# tests/test_core.py
def test_something_real():
assert True # reemplaza con una prueba real de tu dominio
# tests/test_validation.py
def test_invalid_input_raises():
with pytest.raises(ValueError):
process_input(None)
Luego re-escanea para ver el salto en Verification:
harness scan . --json
Expected output
{
"score": 78,
"grade": "GOOD",
"subsystems": [
{ "id": "instructions", "score": 85, "weight": 0.25 },
{ "id": "state", "score": 70, "weight": 0.20 },
{ "id": "verification", "score": 80, "weight": 0.20 },
{ "id": "scope", "score": 75, "weight": 0.15 },
{ "id": "lifecycle", "score": 70, "weight": 0.10 },
{ "id": "skills", "score": 55, "weight": 0.10 }
]
}
Con solo 2 archivos de test bien escritos, el subsistema de Verification puede saltar de ~15% a ~80%.
Score final
Objetivo: Alcanzar 80%+ de harness score y planificar mejoras continuas.
Con los 5 pasos anteriores, tu score debería estar en el rango 75–85%. Si aún no llegas a 80%, revisa estos ajustes rápidos:
- Skills: Si usas skills o recetas, asegúrate de que cada una tenga un
SKILL.mdcon frontmatter. - Lifecycle: Agrega un
scripts/init.shoscripts/verify.shejecutable. - State: Crea
progress.mdosession-handoff.mdcon estado actual del proyecto. - Scope: Define un
Definition of Doneexplícito enAGENTS.mdoTASK.md.
Cuando alcances 80% o más, ejecuta una última vez:
harness scan . --json | jq '.score'
Y celebra. Tu proyecto ahora tiene un harness que cualquier agente puede entender y usar de manera confiable.
🎉 ¡Tutorial completado!
Has elevado tu harness score de ~45% a 80%+. Tu proyecto ahora tiene documentación estructurada, tests y un entorno que cualquier agente puede navegar con confianza.
📋 Referencia rápida de comandos
| Comando | Descripción |
|---|---|
harness scan . --json |
Diagnóstico completo del proyecto en JSON |
harness scan . --json | jq '.score' |
Ver solo el score total |
harness scan . --json | jq '.subsystems[] | select(.id=="verification")' |
Ver solo un subsistema específico |
harness fix . |
Generar stubs automáticos para archivos faltantes |
harness -h |
Ayuda general del CLI |