Shift-Left meets
Agentic AI

Harness-Driven Development

Conectemos
LinkedIn · Felipe Rangel

El repo
github.com/felirangelp/harness-driven-dev

Cada control que se puede saltar...
se salta.

Eventualmente. Bajo presión. Por alguien.

La calidad no debería depender de la voluntad.
Debería ser el comportamiento por defecto.

Y un agente IA puede hacer que eso pase.

El Problema

Lo que SABEMOS Lo que HACEMOS Lo que se CUMPLE
Convenciones de commitsA vecesCasi nunca
No secrets en el códigoDespués del incidenteEsporádicamente
Tests antes de mergeEn proyectos nuevosHasta que hay presión
Issues trazablesEn PRs "importantes"Cuando hay auditoría
Definición de TerminadoEn retrosNunca mecánicamente
7,600

dólares

cuesta detectar un bug en producción

80 USD si lo atrapas antes del commit

— IBM, 2020

¿Por qué falla?

  • Olvidamos.
  • Nos cansamos.
  • Tenemos presión.

El cumplimiento humano es incompatible con ser humano.

El carácter de un harness

"El agente no solo escribe código —
hace cumplir automáticamente las reglas
que tu equipo ya conoce
pero no logra seguir consistentemente."

Como un cinturón de seguridad.

6 capas de defensa

1Pre-commit
2CI
3Harness gates
4Webhook
5PR Approval
6Session Stop

Un bug debe atravesar las 6 para llegar a main.

Tres sistemas, un flujo

Linearplaneación
GitHubcódigo
Claudehace cumplir

Tú das 4 comandos. El sistema ejecuta 20+ acciones.

Los componentes, en metáfora

Un restaurante.

  • CLAUDE.md = El manual de operaciones
  • Skills = Las recetas del menú
  • Harness = Control de calidad
  • Hooks = Sensores automáticos (alarma del horno, timer)

El chef (agente) sigue las recetas, el control de calidad verifica,
y los sensores se activan solos.

Componentes del Sistema

/create-issue · /start-issue · /review-pr · /close-issue · /new-runbook · /status
Skills
Comandos inteligentes
CLAUDE.md
Reglas
↓ invocan
Harness Scripts
linear_client.py · close_issue.sh · gate_pr_approval.sh · stop_gate.sh · ci_failure_bridge.py
↓ se activan vía
Hooks
Triggers automáticos · Pre-commit · Stop
Linear
GitHub
CI
El agente nunca se auto-aprueba.

CI verde no significa listo para mergear.

Demo 1

El secreto que no llega

El error que todos hemos cometido.

git commitBLOQUEADO

Demo 2

El bug que se reporta solo

CI falla → Linear bug aparece automático.

git push → CI ❌ → Linear: bug #45

Demo 3 · el punchline

El agente que no se aprueba a sí mismo

Tests verdes. CI verde. Criteria verdes. Y aun así...

/close-issueGate 3: BLOCKED
"PR not approved by a human reviewer."

En los 3 demos:

4 comandos
que tipeé
20+ acciones
automatizadas
0 olvidos
· 0 cansancio · 0 presión

Eso es lo que el agente acaba de hacer.
Sin pedir permiso.

Antes vs Después

Sin Harness

×10 pasos manuales
×0 verificaciones automáticas
×0 evidencia
×0 audit trail
×Secrets pueden filtrarse

Con Harness

6 skills
10+ verificaciones automáticas
Evidencia en cada cierre
Audit trail completo
Secrets bloqueados en commit

Una sola idea

"Si tus herramientas no te dan control,
construye las tuyas —
es más simple de lo que crees."

La autonomía técnica del equipo
empieza cuando dejas de esperar la herramienta perfecta.

Imagínate iniciar la semana así…

  • Sin discusiones de "¿estaba listo?"
  • Sin perseguir tickets
  • Sin capturas para auditoría

Mientras el agente ejecuta,
tú diseñas lo que viene.

  1. Fork · gh repo fork felirangelp/harness-driven-dev
  2. 15 min · sigue docs/quick-start-15min.md
  3. Tu primer harness funcionando

Bonus: el repo incluye /new-runbook y 2 plantillas operacionales (incident · deploy).

¿Y cómo expertIA lo está haciendo hoy?

Linear · planeación

0
TICKET EXISTE Linear MCP
Creo el issue en Linear con acceptance criteria. Sin ticket, mi pre-commit me bloquea automáticamente.
Linear MCP · _linear_client.py · phase_zero_gate

Agente · build

1
AGENTE IMPLEMENTA Claude Code en mi terminal
Invoco skills como /pr-readiness o /spec-qa. CLAUDE.md le carga 18 reglas activas según el path que toca.
CLAUDE.md · 18 reglas · /spec-qa · /pr-readiness · /close-phase

GitHub · código

2
PRE-COMMIT en mi laptop, antes de git commit
pre-commit run corre 27 hooks. Si gitleaks detecta un secret o falta un test: bloqueado, no llega a GitHub.
gitleaks · hexagonal_boundaries · code_without_tests · phase_zero_gate
3
CI GitHub Actions al git push
El workflow corre tests unit + integration + contracts + security scan. Rojo en main = no se mergea, punto.
.github/workflows/ci.yml · pytest · ruff · security scan

Harness propio · enforcement

4
HARNESS GATES 50+ scripts Python que YO escribí
Checks específicos del proyecto. Cada uno nació de un incidente (LL-XXX). Bloquean lo que CI genérico no puede.
spec_qa_executor · tdd_sequence_check · adr_index_generator · pr_duplicate_check
5
WEBHOOK Linear ↔ GitHub auto-sync
Crear branch con EXP-XXX mueve el ticket a In Progress. Uso Refs, nunca Closes (preserva los gates de cierre).
Linear-GitHub bridge · branch EXP-XXX → In Progress · LL-071
6
PR APPROVAL HUMANO el clímax del Demo 3
Aunque CI esté verde, un humano debe firmar el PR. Mi "APROBADO #N" es la única autorización válida para merge.
/pr-readiness (dry-run) · gh pr create · APROBADO #N · LL-045

Linear · cierre

7
SESSION STOP 11 gates al marcar Done
El script valida acceptance, CI, PR approval y evidencia. El audit trail para INVIMA/FDA se genera automático.
close_issue_with_evidence.py --done · 3-Step Closure · IEC 62304

Linear abre el loop. Linear lo cierra. El agente nunca se sale del journey.

Gracias.

El conocimiento es para compartirlo.

github.com/felirangelp/harness-driven-dev

Preguntas duras, bienvenidas.

Volver al sitio