Skip to content

Cómo funciona

← Primeros pasos · English


El pipeline

Cada tarea sigue la misma historia:

Requisito → Plan → Tareas → Código → Revisión

mermaid
flowchart LR
  subgraph fases [Fases del flujo]
    R[Refining<br/>task.md]
    D[Designing<br/>plan.md + tasks.md]
    I[Implementing<br/>código fuente]
    V[Reviewing<br/>review.md]
  end
  R --> D
  D -->|/approve| I
  I --> V
  V -->|PASS| A[Archivo + flow off]
  V -->|FAIL| I
Fase en phase.mdAgente¿Escribe código?Salida principal
refiningRefinerNotask.md con AC1, AC2
designingSDDNoplan.md, tasks.md
implementingImplementerCódigo + casillas en tasks.md
reviewingReviewerNoreview.md

Proyectos antiguos pueden tener sdd.md en lugar de plan.md — se prefiere plan.md.


Modo directo vs modo flujo

Modo directoModo flujo
CuándoPor defectoTras nueva tarea, flow on, etc.
SeñalSin .flow-enabledArchivo presente
ComportamientoAsistente normalOrquestador elige agente
OverheadNingunoArtefactos en current/

Por qué dos modos: los arreglos pequeños deben seguir siendo rápidos. El trabajo estructurado se elige a propósito.


Qué revisar en cada fase

Guía de lectura — abre el archivo, mira la sección, decide si intervenir.

Refining — lee task.md

RevisaBuena señalAlerta
AC*Concretos y verificablesVagos (“mejóralo”)
ConstraintsLista lo que no debe romperseVacío en cambios arriesgados
Out of ScopeExclusiones clarasFalta en tareas grandes

No hace falta editar el archivo — responde en el chat.

Designing — lee plan.md y tasks.md

RevisaBuena señalAlerta
plan.mdArchivos y enfoque acordadosRefactors sorpresa
tasks.mdPasos pequeños y ordenadosTareas gigantes vagas
TrazabilidadACs ligados a escenariosACs sin plan

Aprueba solo si el diff descrito te parece aceptable.

Implementing — tasks.md + diff git

RevisaBuena señalAlerta
Orden[test] antes de [impl]Tests saltados
AlcanceCoincide con el planArchivos ajenos
BloqueosPregunta a tiSuposiciones silenciosas

Reviewing — lee review.md

RevisaBuena señalAlerta
Cada ACFila con evidenciaAC sin fila
VerificaciónComandos exit 0Tests fallidos ignorados
DecisiónPASS o FAIL claroResumen ambiguo

Cuatro agentes en lenguaje claro

Refiner

Convierte la idea en task.md claro. Pocas preguntas por ronda si el input es vago; resume si ya trajiste un ticket largo. Nunca edita código fuente.

SDD

Plan técnico y checklist desde task.md. Espera /approve. Nunca edita código hasta entonces.

Implementer

Único agente que puede cambiar código. Sigue tasks.md. Para ante huecos de spec.

Reviewer

Evidencia por AC, ejecuta verification.md, escribe review.md. En PASS, archiva y apaga el flujo.


Frases de activación

Iniciar flujoTerminar flujo
nueva tarea · activar flujo · flow onmodo directo · flow off · desactivar flujo
nueva tarea desde TEAM-123 · URL del issue(mismas frases de cierre)

El orquestador lee phase.md en cada mensaje.


Sync con Linear (opcional)

Con .specflow-linear.json "enabled": true, el agente en Cursor usa MCP para cargar el ticket y actualizar estados.

Evento SpecFlowEstado Linear por defecto
Refining terminadoTodo
/approveIn Progress
Review PASSDone

La conexión real es Cursor ↔ Linear — ver Integración Linear.


Archivos en .agents-state/current/

ArchivoFasePropósito
phase.mdSiempreFase actual
refinement-log.mdRefiningPreguntas y respuestas
task.mdRefining+Requisito + ACs
plan.mdDesigning+Diseño (legacy: sdd.md)
tasks.mdImplementing+Checklist
review.mdReviewingResultado
linear.jsonTareas LinearId del issue activo (opcional)

Sin flujo activo, current/ puede estar vacío — es normal.


Puerta de aprobación

/approve

También: aprobado, dale.

Por qué: separa “me gusta el plan” de “empieza a codear”.


Verificar el setup

bash
specflow doctor
specflow doctor --run

← Primeros pasos · Referencia CLI →

Publicado bajo licencia MIT.