tipre
1/0
Metodología agnóstica · v3 · de la idea a producto, con evidencia

spec-loop
traés la idea; el método arma el resto.

Independiente de herramienta. Empieza antes de la SPEC: de una idea vaga + material de referencia, el asistente propone la forma del sistema, vos decidís, y recién ahí se especifica, se construye y se avanza solo con evidencia.

Idea → Discovery → SPEC → ADR? → Build → Verify → Evidence → Human gate
REFVocabulario mínimo
glosario
Hoja de referencia

Glosario operativo.

acceptance
Criterios verificables que definen "aceptado". Si no pueden fallar, no sirven.
adapter
El "cómo" por stack: el método pide cierta evidencia; el adapter la produce (Maven, npm, etc.).
ADR
Registro de una decisión técnica: alternativas, decisión y consecuencias.
baseline
Deuda legacy conocida que se congela (no se limpia ahora, pero no se empeora).
blocker
Condición que impide merge/release aunque el número parezca alto.
change budget
Límite de iteraciones/archivos/scope; superarlo dispara escalación.
contract test
Verifica compatibilidad entre sistemas: API, eventos, schemas.
Discovery
Fase previa: de una idea vaga, el asistente propone entidades/endpoints/arquitectura; el humano decide.
DoR / DoD
Definition of Ready / Done: listo para empezar / listo para declarar completo.
evidence
Hechos producidos por la ejecución (no narrados): comandos, resultados, artefactos.
gate
Control que bloquea avance: tests rojos, security HIGH, contrato roto.
human gate
Punto donde una persona decide merge/release/trade-off. No se automatiza.
ledger
Registro factual de la evidencia. Ausente = sin evidencia, no "OK".
readiness
Estado de "listo", definido por blockers + capas; el número, si está, sale con fórmula.
rollback
Cómo se vuelve atrás o se neutraliza el cambio si falla en real.
SPEC
Especificación verificable: comportamiento, reglas, errores, aceptación, tests, operación.
INTROPara cualquiera que abra esto
de qué va
En simple, sin tecnicismos

Qué buscamos, en una idea.

Una forma ordenada de construir software con una IA en la que vos solo traés la idea y las restricciones. El método se encarga de convertirla en algo verificable, construirlo con control de calidad, y decir con evidencia cuándo está terminado de verdad.

Cómo suele pasar

  • Para un sistema nuevo te piden que definas vos las entidades, los endpoints, las reglas… antes de saber siquiera el cómo.
  • "¿Está listo?" se responde con una sensación.
  • Cada persona lo hace distinto.

Cómo lo proponemos

  • Traés la idea y el material; el asistente propone la forma y vos decidís.
  • Se construye con un control de calidad que se repite hasta quedar limpio.
  • Un estado honesto, con evidencia, dice cuán listo está.
La mejoraNo es documentar más. Es bajar el costo de entrada (no tenés que diseñar para poder empezar) y subir la certeza de salida (sabés con un dato cuándo terminó).
00El eslabón que faltaba
dos modos
El método tenía un solo modo de conversación; necesita dos

Discovery vs Specification.

La entrevista clásica (precisión adversarial) sirve cuando ya sabés el qué y falta pulir. Pero un sistema nuevo arranca antes: solo sabés qué querés lograr, no el cómo, ni las entidades, ni los endpoints. Ahí hace falta otro modo.

Discovery — "no sé el cómo"

Greenfield / sistema nuevo. Traés idea + restricciones + material de referencia. El asistente propone dominio, superficie de API y opciones de arquitectura; vos reaccionás y decidís. Divergente y después convergente.

Specification — "sé el qué, falta precisión"

Feature dentro de un sistema existente. La entrevista adversarial pinta los bordes: casos sucios, errores, idempotencia, out-of-scope. La forma ya se conoce.

La inversión clave: en Discovery vos no autorás la estructura — la aprobás. El asistente trae la forma; vos traés el criterio.
01De idea vaga a forma de sistema
discovery
El asistente propone; el humano decide

La fase de Discovery.

Vos traés (poco)

  • La idea: qué querés lograr.
  • Las restricciones: stack, plazos, integraciones obligadas.
  • El material de referencia: manuales, PDFs, sistemas existentes.

El asistente trae (mucho)

  • Un modelo de dominio propuesto (entidades núcleo).
  • Una superficie de API/operaciones propuesta.
  • Opciones de arquitectura, con trade-offs.
  • Las incógnitas que de verdad importan (no 30 preguntas).

Criterio de salida

Discovery termina cuando hay una forma de sistema compartida: entidades, operaciones, decisiones grandes tomadas y las incógnitas marcadas. Suficiente para escribir SPECs — no más.

Lo que NO hace

No implementa, no cierra cada detalle, no reemplaza tu criterio de negocio. Es para bajar la idea a algo especificable.

02El asistente propone, vos decidís
discovery en vivo
Caso real: gateway de CAE para ARCA

Discovery en vivo.

vosNecesito un server que atienda muchos POS por SOAP y REST para obtener CAE de ARCA (WSFE), basándome en el manual del desarrollador. Java 21, Spring Boot 4.0.3, UI React, base MSSQL. Quiero SPEC, ADR y un prompt inicial para Claude Code.
claudePerfecto — traés la idea y el stack; yo propongo la forma y vos decidís. Del dominio WSFE deduzco estas entidades núcleo: Comprobante, TicketAcceso (WSAA), SolicitudCae (idempotente), RespuestaArca, PuntoVenta. ¿Te cierran o falta alguna?
vosCierran.
claudeSuperficie propuesta hacia los POS: REST POST /cae (idempotente por cuit+pv+nro), GET /comprobantes/{pv}/{tipo}/ultimo, GET /health; y un wrapper SOAP equivalente para los POS viejos. Tres decisiones que necesito que tomes (van a ADR): (1) cache del TicketAcceso ¿en MSSQL o en memoria? (2) SOAP ¿a mano con templates o stub del WSDL? (3) ¿una instancia por CUIT o multi-CUIT?
vosTA en MSSQL; SOAP a mano; multi-CUIT.
claudeCon eso tengo forma suficiente. Te dejo SPEC-001 (gateway CAE), ADR-001 (cache TA), ADR-002 (SOAP a mano), ADR-003 (multi-CUIT), ACCEPTANCE.md y un prompt de arranque para Claude Code.

Vos nunca escribiste entidades ni endpoints — solo reaccionaste a propuestas y tomaste 3 decisiones. Ese es el cambio.

SKILLEl frente, empaquetado
discovery como skill
Inspirado en el patrón grill-with-docs

Discovery como skill.

No es solo una conversación: es un skill invocable (/discovery) cuyo input inicial es solo la idea + material de referencia, y que escribe los .md directo en el repo.

Cómo funciona

  • Pregunta de a una, con respuesta recomendada. Propone (entidad, endpoint, decisión por defecto); vos confirmás o corregís.
  • Explora en vez de preguntar. Lee el manual/PDF/URL, el código y el CONTEXT.md antes de molestarte.
  • Escribe inline. Cuando una decisión se cristaliza, la guarda — no junta todo para el final.
  • ADRs con criterio. Solo si la decisión es difícil de revertir, sorprendente sin contexto y fruto de un trade-off real.
# una pregunta del grill (propone)
Recomiendo idempotencia por clave natural
cuit+pv+nro (no hash de payload), por
compat con integradores legacy. ¿Lo tomo?

Escribe el paquete

CONTEXT.md
SPEC.md
docs/adr/*.md
ACCEPTANCE.md
RISKS.md
HANDOFF.md

/discovery
paquete .md
/dev-loop

Para un feature ya conocido (no hace falta proponer la forma), el frente es /adr-refine. Mismo paquete de salida.

03El puente
de discovery a spec
La forma compartida se vuelve documentos

De Discovery a SPEC + ADR.

Idea + refs
Discovery (propone/decidís)
forma del sistema
SPEC interview (precisión)
SPEC + ADR + ACCEPTANCE

Discovery decide la forma

Qué entidades, qué operaciones, qué decisiones grandes. El "mapa".

SPEC interview pinta los bordes

Sobre esa forma, ahora sí: errores, idempotencia, seguridad, out-of-scope.

Salida especificable

SPEC verificable + ADRs durables + acceptance — listo para construir.

04La corrección que ordena todo
spec ≠ adr
Trabajan juntos pero responden cosas distintas

SPEC ADR.

SPEC — ¿qué debe pasar?

Comportamiento observable, reglas, entradas/salidas/errores, criterios de aceptación, tests, operación. Es el contrato de construcción y verificación. Casi todo cambio no trivial necesita una.

ADR — ¿por qué así?

Registra una decisión técnica, las alternativas descartadas y las consecuencias. Memoria arquitectónica, no lista de tareas. Solo decisiones con impacto durable.

Si describe comportamiento observable, va en SPEC. Si justifica una elección entre alternativas, va en ADR.
05Tienen que ser testeables / justificadas
anatomía
Ni literatura ni decisión sin alternativas

Anatomía de SPEC y ADR.

# SPEC-001: gateway de CAE
## Objetivo / Valor
## Riesgo (A..E)
## Scope / Out of scope
## Comportamiento (reglas observables)
## Entradas / salidas / errores
## Acceptance criteria (verificable)
## Test plan (unit/integration/contract)
## Operación (logs, métricas, flags)
## Rollback
# ADR-001: cache del TicketAcceso
## Estado: Aceptado
## Contexto / Fuerzas
## Alternativas: A) memoria  B) MSSQL  C) Redis
## Decisión: B) MSSQL
## Consecuencias (+ / -)
## Relación con SPECs: SPEC-001

La SPEC suma Objetivo/Valor y Riesgo arriba: si no se justifica el valor ni se clasifica el riesgo, no debería entrar al loop.

06No todo cambio pesa igual
workflow por riesgo
Antes de escribir, clasificar

Workflow basado en riesgo.

PerfilEjemploDocumentosGates mínimos
A · BajoUI menor, config no críticaSPEC minibuild + test relevante
B · Normalfeature local, bugfixSPEC + acceptancetests + static + review
C · Críticopagos, facturación, seguridadSPEC formal + ADRunit+integration+security+rollback
D · Multi-sistemaAPI pública, eventosSPEC + contratos + ADRcontract tests + versionado
E · Legacy granderefactor, migraciónSPEC incremental + baselinecharacterization + no regression

Pregunta inicial: ¿qué puede romper esto y cuánto cuesta si se rompe? El riesgo escala el aparato — el perfil A no arrastra toda la maquinaria.

07El freno más barato
ready + acceptance
No se codea con niebla; la aceptación debe poder fallar

Definition of Ready + acceptance.

## Definition of Ready
- [ ] Objetivo y valor / por qué ahora
- [ ] Scope + out-of-scope explícito
- [ ] Entradas / salidas / errores
- [ ] Reglas de negocio escritas
- [ ] Riesgo clasificado (A..E)
- [ ] ADR requerido: sí/no
- [ ] Rollback esperado: sí/no
- [ ] Ambiente de prueba disponible

Acceptance que puede fallar

  • "Debe ser robusto / seguro / rápido."
  • "API key inválida → 401 y no persiste."
  • "Importe inconsistente → 422 AMOUNT_MISMATCH."
  • "p95 < 300ms con 50 req concurrentes en staging."

Agregué valor / por qué ahora al DoR: el riesgo mide el downside; el valor evita construir bien algo que no valía.

08Lo ejecuta persona, agente o CI
el loop
Tool-agnostic

El loop de entrega verificable.

Idea
Discovery
Ready
SPEC
ADR?
Build
Verify
Evidence
Human gate

La SPEC se puede enmendar

Si durante Build la realidad obliga a cambiar la SPEC, se versiona y vuelve a Ready. Y ese evento es señal de un DoR flojo → retroalimenta el DoR. La implementación nunca cambia la SPEC a escondidas para parecer correcta.

09No todo verde significa lo mismo
capas de verificación
Las capas SON las dimensiones del readiness (1:1)

Seis capas de verdad.

1 · Funcional

¿Cumple la SPEC y los acceptance criteria?

2 · Técnica

¿Compila, tiene tests, respeta estándares, sin bugs obvios?

3 · Regresiva

¿No rompió lo existente, especialmente legacy?

4 · Contractual

¿No rompió APIs, schemas, eventos, clientes?

5 · Seguridad

¿Sin findings HIGH/CRITICAL nuevos? ¿Secretos fuera de logs? (capa propia para perfil C+).

6 · Operacional

¿Se puede desplegar, observar, apagar o revertir?

Antes había dos taxonomías que no cerraban. Ahora cada capa es una dimensión del readiness — la evidencia rolea limpio hacia el estado. Coverage alto no prueba operación; CI verde no prueba contrato.

10Estado manda; el número es secundario y definido
readiness
Una sola máquina de estados — sin vocabularios que choquen

Readiness honesto.

86/100
DEV DONE
funcional
OK
técnica
OK
regresiva
OK
contractual
WARN
seguridad
OK
operacional
MISS
bloquea: falta smoke test + rollback validado

Una sola máquina de estados: DRAFT → READY TO BUILD → DEV DONE → MERGE READY → RELEASE READY. Se acabaron los dos vocabularios que se pisaban.

El número, con regla

El estado lo definen los blockers, no el promedio. Si mostrás un número, sale de las 6 capas con pesos y caps definidos — nunca un número suelto. Sin fórmula, no hay número: eso sería la numerología que el método dice evitar.

Mostrar siempre: estado + blockers + evidencia + riesgo residual. El score es auxiliar y derivado.

11El corazón anti-alucinación
evidencia
Producida por la ejecución, no narrada por el autor

Evidencia capturada, no narrada.

# Evidence entry (la emite la ejecución)
change_id: SPEC-001
commit: a1b2c3d
command: mvn test
exit_code: 0
tests: 42 passed / 0 failed
coverage: 71%
security: 0 HIGH/CRITICAL new
artifacts:
  - target/surefire-reports
  - target/site/jacoco/jacoco.xml

La grieta que cerramos

Si el mismo agente que hace el cambio escribe el ledger, puede poner exit_code: 0 sin correr nada. La garantía solo vale si la evidencia la produce la ejecución (CI o un script que parsea artefactos reales), no si la transcribe el autor.

Regla dura

Ausente = sin evidencia, nunca "OK". Una herramienta que no corrió no se inventa en verde.

12Avanzar sin caos
legacy + presupuesto
No limpiar todo; no empeorar nada · los loops necesitan límites

Baseline legacy y change budget.

## Legacy baseline
- No new HIGH/CRITICAL findings
- No regression in existing tests
- Touched files: no new warnings
- Deuda fuera de scope → backlog
- Refactor solo con characterization

Exigir "cero findings" en legacy es no entregar nunca. Se congela la deuda vieja y se bloquea la nueva.

## Change budget (blast radius)
Máx: 3 iteraciones · 12 archivos
0 cambios de schema sin ADR
0 dependencias nuevas sin aprobación
Escalar si:
- un fix revierte otro
- aparece un test rojo nuevo
- cambia un contrato público

Escalar no es fallar: es que apareció una decisión humana. El proceso detectó que no debía seguir solo.

13Listo también significa reversible
rollback
La pregunta que suele llegar tarde

Rollback y operación.

## Rollback
- Código: revert del PR
- DB: sin migration destructiva
- Config: feature flag off
- API: backward compatible
- Smoke post-rollback: /health + flujo base

Migration peligrosa

Si hay schema forward-only o transformación de datos, el rollback es una decisión explícita, no se asume.

Operabilidad = readiness

Cuando el cambio toca producción, logs/métricas/alertas/flags/runbook son parte de la capa operacional.

14Una metodología madura define sus bordes
cuándo no
Cuándo NO usar spec-loop

Modo hotfix y excepciones.

Spike / exploración

Código descartable para aprender. No SPEC; sí una nota de qué se aprendió. Lo que sobreviva, se especifica después.

Prototipo throwaway

Demo que no va a producción. Marcado como tal, aislado, con fecha de muerte.

Hotfix P0

Incidente en producción: arreglás primero. Pero la evidencia mínima (qué se cambió, cómo se revierte) y la SPEC/ADR retroactivos son obligatorios dentro de 24h.

Sin válvula de escape, la gente le hace cargo-cult a los descartables o abandona el método bajo presión. Definir el borde es lo que lo hace usable.
15El método pide evidencia; el stack la produce
templates + adapter
Qué lo hace de verdad agnóstico

Plantillas + adapters.

Paquete documental

  • SPEC.md — comportamiento, reglas, errores, tests, operación.
  • docs/adr/*.md — solo decisiones durables.
  • ACCEPTANCE.md — checklist verificable contra evidencia.
  • RISKS.md — riesgos residuales y supuestos.
  • HANDOFF.md — instrucciones para quien implemente.

El concepto de adapter

El método define qué evidencia se exige (las 6 capas). Cada stack provee el cómo: en Java/Maven es JaCoCo+Surefire+SpotBugs; en Node es jest+coverage+eslint; en un pipeline de datos son otros. Mismo contrato de evidencia, distinto adapter.

Por eso es agnóstico de verdad: la metodología gobierna, el adapter ejecuta. Sirve para backend, frontend o data.

16El output no es texto lindo: son archivos
del chat al repo
Si es todo Claude Code, ¿para qué el handoff?

El handoff es conversación → repo.

No es un handoff entre herramientas — es entre fases. El modelado termina escribiendo el paquete en el repo; el build (/dev-loop) lo lee de los archivos, no del chat. Aunque sea todo en una sesión de Claude Code.

/discovery (decidís)
archivos en el repo
/dev-loop (lee y construye)

¿Por qué importa igual?

  • El contexto se resetea: una sesión nueva (o tras un /clear o una compactación) no tiene el chat — lee el repo.
  • Los sub-agentes leen los archivos, no tu conversación.
  • Un compañero o el CI construyen desde el repo.
  • Auditoría: el rastro de decisiones queda durable, no efímero.
# lo que el build lee antes de tocar código
SPEC.md · ACCEPTANCE.md · docs/adr/*.md
1. Resumí el comportamiento esperado.
2. Marcá ambigüedades o contradicciones.
3. Proponé plan de archivos + tests.
4. Implementá SOLO el scope de la SPEC.
5. Corré build/tests/gates disponibles.
6. Entregá evidence summary + blockers.
No cambies contratos fuera de SPEC ni
edites la SPEC para que tu implementación
parezca correcta.

Layout: CLAUDE.md/AGENTS.md (reglas estables) · SPEC.md · ACCEPTANCE.md · docs/adr/

La verdad vive en archivos versionados. Nada importante queda solo en el chat — por eso el trabajo es retomable, auditable y compartible.
CCEl modelo agnóstico, instanciado
todo en claude code
Tool-specific: de la entrevista inicial al fin del desarrollo

¿Se puede hacer todo en Claude Code? Sí.

Fase (agnóstica)En Claude Code
Discovery / entrevista/discovery — grilla y escribe CONTEXT/SPEC/ADR/ACCEPTANCE
SPEC + ADRarchivos versionados en el repo (los escribe el skill)
Build + QA loop/dev-loop + qa_ledger.py + sub-agentes
Evidenceqa_ledger parsea artefactos reales → ledger
Readinessqa_ledger readiness — estado + blockers
Human gatevos aprobás el PR (no se automatiza)
Docs del sistema/sys-doc
Una sola herramienta, una sola sesión. No saltás entre un chat para modelar y otra cosa para ejecutar.
CCDe la idea al PR, sin salir
una sesión
El gateway de ARCA, end to end

Una sesión, de la idea al PR.

claude code · sesión única
$ claude > /discovery claude grilla 1x1, propone entidades/endpoints, vos decidís 3 cosas CONTEXT.md · SPEC-001 · ADR-001/2/3 · ACCEPTANCE.md · RISKS.md · HANDOFF.md > /dev-loop claude plan → build → coverage gate → QA loop (sub-agentes) → CONVERGED PR abierto. Paro en el merge. > !python3 .claude/skills/dev-loop/qa_ledger.py readiness READINESS: 88/100 — RELEASE CANDIDATE > /sys-doc # deck del sistema # (vos) revisás el PR y mergeás — el human gate no se automatiza
CCQué de Claude Code lo hace posible
las piezas
No es magia: son features concretas

Las piezas que lo sostienen.

CLAUDE.md / AGENTS.md

Protocolo estable del repo: comandos, no-go zones, DoD, cómo registrar evidencia. Lo permanente vive acá; lo puntual en SPEC/ADR.

Skills (/comando)

discovery, dev-loop, sys-doc en .claude/skills/. Invocables, versionables, compartibles con el equipo.

Sub-agentes

Paralelizan las tools de QA (review, security, mejoras) sin ensuciar el contexto principal.

Hooks

Corren gates solos: tests post-edit, lint pre-commit. La evidencia se captura por ejecución, no se narra.

Multi-repo (--add-dir)

Montás varios repos en una sesión para QA de integración/contratos (tu caso TipreSuite).

Remote Control

Seguís y manejás la sesión desde el celular mientras corre el loop.

+ plan mode para planificar · settings.local.json para permisos · ccusage para monitorear uso.

CCAporte del adr-skill de Vercel
adr ejecutable
El ADR como especificación que el agente ejecuta

ADR ejecutable + disparadores.

Implementation Plan en el ADR

El ADR no solo justifica: incluye archivos a tocar, patrones a seguir, tests y verificación. Claude Code lo lee y ejecuta sin volver a preguntar.

Disparadores proactivos

Si Claude Code, codeando, está por meter una dependencia nueva, crear un patrón nuevo, elegir entre alternativas o contradecir un ADR aceptado → para y propone un ADR.

Link código ↔ ADR

El ADR nombra los affected paths; el código lleva // ADR: … ver docs/adr/…. Cuando un ADR se supersede, encontrás todo lo que hay que tocar.

Consultar antes de tocar

Antes de trabajar en un área gobernada por un ADR, el agente lo lee y respeta — o marca el conflicto. No lo resuelve a escondidas.

Tomado del adr-skill de Vercel y ya integrado al dev-loop (triggers + consultar/linkear) y al template de ADR (implementation plan + verificación).

WBEl toolchain base, sin el stack del proyecto
armado del workbench
Lo genérico que sirve para cualquier repo

Armar el workbench.

Componentes

  • Claude Code — el agente/orquestador (cuenta Pro/Max/Team/Enterprise).
  • Python 3.8+ — corre qa_ledger.py (stdlib, sin deps).
  • git + gh — versionado y PRs.
  • Skills del kit — discovery/adr-refine/dev-loop/sys-doc en ~/.claude/skills/.
  • Skills de QA — code-review/judgment-day/improve (los orquesta, no los trae).
# Claude Code (native, sin Node)
curl -fsSL https://claude.ai/install.sh | bash
# Windows: irm https://claude.ai/install.ps1 | iex
claude            # login OAuth

# Skills del kit (global)
cp -r dev-loop-kit/.claude/skills/* ~/.claude/skills/

# Verificar
claude --version && claude doctor

Lo específico del stack (Java/Maven, MSSQL, linters) es el adapter por repo — va en el CLAUDE.md, no en el workbench.

17El núcleo independiente de herramientas
cierre
Resumen ejecutivo

Evidencia antes que confianza.

Idea, no diseño

Traés el qué; el método propone el cómo.

SPEC verificable

Comportamiento que puede fallar, no deseos.

Evidencia capturada

Hechos de la ejecución, no narrados.

El humano aprueba

El merge y el release no se automatizan.

La herramienta ejecuta. La metodología gobierna. La evidencia decide. El humano aprueba.
FlujoIdea → Discovery → Ready → SPEC → ADR? → Build → Verify → Evidence → Human gate
navegar · Home inicio · End final