Flujo de Desarrollo SimpliRoute Agents

Cómo va una idea desde la conversación con el usuario hasta producción, usando Spec-Driven Development (SDD) con agentes Claude Code especializados.

📄 El contrato OpenAPI YAML es la fuente de verdad que conecta a todos los agentes

1 El monorepo

Dos aplicaciones independientes que se comunican solo por HTTP — no comparten código.

🖥️ agents-web

Next.js (Pages Router) · TypeScript
  • Frontend en puerto :3000
  • Workflow builder con ReactFlow
  • Consume catálogos: GET /v1/agent-catalog y GET /v1/activity-catalog
  • Auth vía NextAuth (proxy hacia agents-hub)

⚙️ agents-hub

FastAPI · Python · Temporal
  • Backend API en puerto :8000
  • Workflows DSL sobre Temporal (:7233)
  • Integraciones: Twilio, Gemini Live, Kapso, Slack
  • Postgres (:5434) · Mercure (:3100)

2 El pipeline de agentes

El agente principal orquesta los handoffs (los subagentes no pueden llamarse entre sí). Toda conversación comienza con el product-owner.

1

product-owner Discrimina y crea el ticket siempre primero

El usuario describe un problema, feature o bug. El PO discrimina si es bug o feature, hace preguntas de clarificación y crea el ticket en Notion con criterios de aceptación en formato Gherkin (Given/When/Then).

Ticket en Notion + Gherkin
1b

qa-testing-planner Plan de pruebas siempre tras el PO

Genera el plan de pruebas en Gherkin — Happy Path, No Happy Path, Bordes (+ Performance/BD cuando aplica) — y lo appendea al final del mismo ticket. En modo coordinado recibe el contenido en el prompt (sin notion-fetch); en modo autónomo el usuario lo invoca con la URL del ticket.

Plan de Pruebas en el mismo ticket
2

tech-lead Genera el contrato OpenAPI ⭐

Convierte el Gherkin en un contrato OpenAPI YAML (página hija del ticket: "Contrato OpenAPI — [nombre]"), valida la cobertura Gherkin ↔ OpenAPI y escribe la spec técnica con subtareas y estimación de complejidad.

Contrato OpenAPI (página hija en Notion) + spec técnica
3

backend-dev frontend-dev Implementan desde el contrato

Backend: lee el contrato → genera modelos Pydantic + endpoint stubs → implementa (FastAPI, Temporal, Alembic). Frontend: lee el contrato → genera tipos TS + schemas Zod + hooks → implementa (Next.js, Zustand, TanStack). Pueden trabajar en paralelo porque ambos parten del mismo contrato.

Código backend y/o frontend
4

code-reviewer Revisión + contract compliance siempre

Revisa calidad, patrones y convenciones del monorepo, detecta dead code y over-engineering, y valida que la implementación matchee el contrato OpenAPI. Cualquier desviación del contrato es un hallazgo bloqueante. Según lo que tocó el cambio, se suman los reviewers especializados (ver sección 4).

Reporte con tabla de compliance
5

debug-local Verificación local y edge cases

Genera test cases directamente desde las validaciones del schema OpenAPI (maxLength, format, enum, required) y los ejecuta contra el stack local (Docker: DB, logs, containers). Contrato del equipo: local verde antes de push.

Reporte de testing
6

devops Deploy a QA / Producción

Crea el tag de release (QA-YYYYMMDD-XX / RC-YYYYMMDD-XX), dispara el GitHub Action de build + update Argo, sincroniza secrets en GCS y vigila el rollout en GKE.

Tag + deploy

3 El contrato OpenAPI como fuente de verdad

Un solo artefacto conecta a todos los roles. Nadie implementa "de memoria": todo se deriva del contrato.

product-owner
Gherkin
tech-lead
⭐ OpenAPI YAML
todo el equipo
4 derivados
Del mismo YAML salen, en paralelo:
Modelos Pydantic backend-dev genera modelos y stubs de endpoints
Tipos TS + Zod frontend-dev genera tipos, schemas y hooks
Contract compliance code-reviewer compara implementación vs contrato
Edge cases de QA tests generados desde las validaciones del schema

4 Reviewers especializados (condicionales)

Después del code-reviewer, se activan solo cuando el cambio toca su dominio.

security-reviewer

Se activa si hay cambios en: auth, JWT, API keys, aislamiento multi-tenant, webhooks (Twilio / Kapso / Slack) o secrets en GCS. Audita OWASP top 10 en FastAPI y NextAuth.

db-reviewer

Se activa si hay: migraciones Alembic nuevas o cambios en modelos SQLAlchemy. Valida reversibilidad, detecta cambios destructivos y verifica índices de tenant_id.

doc-keeper

Se activa si el cambio afecta la forma del sistema: nuevos componentes/containers, integraciones externas, endpoints/webhooks, deployment o la plataforma de QA. Mantiene docs/architecture/*.dsl alineado con el código.

qa-engineer

Valida la story end-to-end: materializa escenarios SLATE, implementa los tests, ejecuta make test-story STORY=ADA-XXX, diagnostica fallos y reporta. Regla del equipo: local verde antes de push.

5 Las 4 reglas de oro

Estas reglas no se negocian — son lo que hace que el pipeline funcione.

Regla #1 — Todo empieza con el product-owner

Cuando alguien describe un problema, feature o bug, SIEMPRE se delega primero al product-owner para discriminar, clarificar y crear el ticket en Notion.

Regla #2 — Después del PO, siempre qa-testing-planner

Inmediatamente tras crearse el ticket, el qa-testing-planner recibe el page_id + contenido de la historia y appendea el plan de pruebas al mismo ticket (nunca reemplaza contenido existente).

Regla #3 — Sin contrato, no hay implementación

El tech-lead DEBE publicar el contrato OpenAPI YAML antes del handoff a los devs. Si no existe contrato, los devs no comienzan: piden al tech-lead que lo genere.

Regla #4 — Contract compliance es bloqueante

Si el code-reviewer detecta desviaciones entre la implementación y el contrato OpenAPI, el hallazgo es bloqueante: se corrige antes de seguir.

6 Comandos del día a día

Todo se orquesta desde el Makefile en la raíz del monorepo.

ComandoQué hace
make setupSetup inicial de ambos proyectos
make infraLevanta infraestructura: Postgres, Temporal, Mercure
make hub-apiCorre agents-hub API local en :8000
make webCorre agents-web dev server en :3000
make up / make downDocker: levanta / detiene todo el stack
make testCorre todos los tests
make db-upgradeAplica migraciones de base de datos
make lintLint de agents-web