flow — gated build harness for coding agents
PRUEBAS, NO SENSACIONES.

flow

Lo hueco no avanza.

Un harness con gates alrededor del coding agent que ya usas. Flow es dueño de los gates y la evidencia, nunca del runtime. Descartar una idea débil en un gate es un resultado válido.

El gate solo se abre cuando ambos están de acuerdo.

NODE ≥22
npx @manhquy/flow-skill@latest

FUNCIONA CON TUS CODING AGENTS

Claude CodeCodex CLIGemini CLICursorAiderClineContinueZed

Seis gates antes de construir

Cada stage escribe un archivo real en tu repo. /flow next no desbloqueará el siguiente hasta que el runner y el skill estén de acuerdo. Esos archivos existen después de cruzar los gates, no después de instalar.

  1. 01Idea
  2. 02Research
  3. 03Scope
  4. 04PRD
  5. 05ADR
  6. 06Contract
01

Idea

flow/00-idea.md

Descarta las malas ideas antes de que exista el código.

MDflow/00-idea.mdHALT
1# Problem statement
2[FILL: describe user problem]
3# Proposed solution
4<empty>
FAIL · KILLED AT GATE

Lo que no pasará

Vacío, un [FILL] sin rellenar, o «tests pass» ofrecido como terminado.Una idea débil se descarta en el gate.

  • Un archivo vacío.
  • Un [FILL] sin rellenar en el archivo.
  • «Tests pass» ofrecido como terminado.
$ /flow next
refusing: flow/00-idea.md is empty (line 1)
descartar es un resultado válido.
02

Research

flow/01-research.md

Cita fuentes reales o detente aquí.

MDflow/01-research.md3/3 CITED
1## Primary sources
2• [RFC-9110] §4.2 Idempotent methods
3• github.com/owner/repo#412 (repro)
4## Competitive diff & failure modes
02EVIDENCE · PRIMARY SOURCES

Ground truth antes que arquitectura

Diferencias con competidores, citas de documentación verificada y modos de fallo reales registrados en archivos del repo.

$ /flow check 01-research
✓ 3 primary sources cited (verified URLs)
✓ competitive diff & failure modes locked
03

Scope

flow/02-scope.md

Dibuja el límite. Descarta el resto.

MDflow/02-scope.mdFROZEN
1IN-SCOPE S-01 CLI harness gate loop
2IN-SCOPE S-02 Receipt schema validator
3NON-GOAL Telemetry / analytics tracking
4NON-GOAL Custom cloud daemon runtime
03PERIMETER · NON-GOALS

Non-goals explícitos congelados

Entregas acotadas. El scope creep se detecta antes de generar cualquier código.

$ /flow check 02-scope
✓ 3 deliverable slices locked
✓ non-goals explicitly frozen (scope creep blocked)
04

PRD

flow/03-prd.md

Define la prueba antes de escribir código.

MDflow/03-prd.mdCRITERIA
1INV-01: exit 1 on empty spec file
2INV-02: refusal line emitted to stderr
3INV-03: receipt JSON conforms to schema
4INV-04: degraded mode creates debt entry
04CONTRACT · ACCEPTANCE

Solo criterios observables

Historias de usuario con invariantes comprobables. El agente no puede redefinir el éxito a mitad de camino.

$ /flow check 03-prd
✓ observable acceptance criteria specified
✓ error states & degraded paths defined
05

ADR

flow/04-adr.md

Registra el compromiso antes de hacer commit.

ADRflow/04-adr.mdACCEPTED
1Status: Accepted (2026-10-11)
2Context: File state vs SQLite daemon
3Decision: Git-tracked Markdown files
4Consequence: Portable; zero background server
05DECISION · TRADE-OFFS

Registros de decisiones de arquitectura

Contexto, decisión y consecuencias registrados antes de empezar la implementación.

$ /flow check 04-adr
✓ context, decision, consequences documented
✓ reversibility & negative test cases mapped
06

Contract

flow/05-contract.md

Ambas partes están de acuerdo o nada avanza.

SIGflow/05-contract.mdUNLOCKED
[✓] human-signoff: approved by @dev
[✓] harness-attest: sha256:7f3a..9e1b
[✓] doctor-check: READY (skills verified)
[✓] dual-agreement: UNLOCKED -> advance
PASS · READY

Después de instalar

El skill está en disco. Escribe /flow (Codex: $flow).flow doctor imprime READY./flow next en un archivo de idea vacío se niega e indica números de línea.

  • Los archivos del skill quedan en el home del agente.
  • Escribe /flow (Codex: $flow).
  • doctor puede imprimir READY.
  • /flow next en un archivo de idea vacío se niega e indica números de línea.
$ flow doctor
doctor: READY (skills/flow/SKILL.md verified)
El gate solo se abre cuando ambos están de acuerdo.

Luego /flow card. Terminado significa prueba en el mundo: una URL desplegada, un CLI que se instala y ejecuta, una API pública o una ejecución real del skill.

No es un agente de código IA. Es un harness alrededor de uno.

flow no escribe tu código. El agente sigue escribiendo; el harness decide si ese trabajo puede avanzar.