CULTIVA IA · Agentes-IA · Dynamic Workflow Mode

Harness: FlowTrack Onboarding Agent

Automatización disciplinada del proceso de onboarding B2B — diseñado con Dynamic Workflow Mode
Cliente: FlowTrack SaaS Tipo: Repeated task + cross-team Nivel: Avanzado Árbol: Opción 3 — Shared Skill Candidate
Decisión del árbol
OPCIÓN 3
Tarea repetida entre equipos
→ Harness + Skill Extraction
1
Árbol de Decisión del Harness
1
Tarea única (one-shot)
→ Mantener inline. No crear harness.
2
Tarea repetida con inputs cambiantes
→ Harness task-local bajo /tmp o project-local.
3
Tarea repetida entre teammates o repos
→ Extraer patrón a Shared Skill + Harness documentado.
4
Estado externo, colas o aprobaciones
→ Añadir visibilidad en control pane antes de más automatización.
5
Tarea con riesgo de seguridad
→ Eval gate + human merge gate antes de ejecución autónoma.
2
Contrato del Harness
harnesses/flowtrack-onboarding/HARNESS.md
🎯 OBJECTIVE
Ship:
Workspace configurado, emails disparados, informe CS generado, eval 7 días registrada
NOT ship:
Comunicación con cliente antes de aprobación CS. Acceso a datos de producción sin pasar eval gate.
📥 INPUTS
Repo:
flowtrack/onboarding-agent
Sistemas:
Stripe webhook · Supabase (DB) · Resend API · Notion API (plantillas)
Creds:
Solo via process.env.* — nunca hardcoded
Constraints:
Máx. 2 agentes paralelos · No tocar prod hasta gate
📤 OUTPUTS
Artefactos:
workspace_config.json
emails_dispatched.log
cs_brief_{client_id}.md
eval_7d_report.json
Estado:
status.json actualizado en cada paso
🔄 LOOP DE EJECUCIÓN
01
Discover — Leer webhook Stripe, extraer customer_id, plan, email, empresa. Verificar en Supabase que el cliente no existe ya.
02
Generate — Crear workspace en Notion desde plantilla del plan. Generar workspace_config.json con permisos según tier.
03
Eval check — Validar que config tiene todos los campos requeridos. PARAR si falla. Enviar al CS para aprobación.
04
Gate humano — Esperar aprobación CS en Slack (#onboarding-review). Solo continuar si status == "approved".
05
Dispatch — Enviar secuencia de emails via Resend (bienvenida + 3 drip). Registrar en emails_dispatched.log.
06
Record + Handoff — Escribir status.json + cs_brief.md. Programar eval de 7 días. Stop.
🛑 CONDICIONES DE STOP
Gate fail:
STOP — Config inválida o campos faltantes
Ownership:
STOP — Cliente ya existe en Supabase
Unsafe:
STOP — Intento de escribir en DB de producción sin flag --prod-confirmed
Paralelo:
QUEUE — Si hay 2 agentes activos, encolar siguiente
3
Eval Gates
Tipo de work Comando eval Señal de pass Failure owner
Config workspace node scripts/validate-config.js workspace_config.json exit 0 + "all fields valid" CS Engineer
Envío de emails node scripts/dry-run-emails.js --env staging 3 emails en Resend sandbox, no errores 4xx Growth Ops
Webhook Stripe stripe trigger customer.subscription.created Harness inicia, customer_id extraído correctamente Backend
Eval 7 días node scripts/eval-activation.js --days 7 --client <id> JSON con activated: true/false + steps_completed[] CS Lead
No-secret scan grep -r "sk_" . --include="*.js" --include="*.json" 0 matches (exit 1 = BLOCKER) Security (auto)
4
Control Pane Checkpoints
📋
PLAN
Objetivo: workspace + emails
Owner: CS Team
Aceptación: eval 7d > 60%
Riesgo: Stripe webhooks prod
📬
QUEUE
3 clientes pendientes
2 agentes activos
1 en cola
Branch: feat/onboarding-v1
⚙️
RUN
Paso actual: 04 (gate CS)
Eval: config ✓
Esperando: aprobación Slack
Coste: ~$0.12/onboarding
🔒
GATE
Config validate: PASS
Dry-run emails: PASS
No-secret scan: PASS
CS approval: PENDING
🤝
HANDOFF
Done: config + dry-run
Blocked: CS gate
Human needed: sí
ETA: 30 min
5
Artefacto de Handoff
COMPLETADO
Webhook Stripe → customer extraído (id: cus_PQ9x12)
Workspace Notion generado con permisos plan Scale
workspace_config.json validado (11/11 campos)
Dry-run emails OK en sandbox (3 mensajes)
No-secret scan: 0 matches
BLOQUEADO
🔴Envío de emails al cliente — esperando aprobación CS
🔴Escritura en Supabase prod — requiere flag --prod-confirmed
🔴Eval de activación 7 días — programada, no iniciada aún
👤CS aprueba en #onboarding-review (Slack)
▶️Harness reanuda desde paso 05 (dispatch emails)
📅Programar cron eval-7d para cliente cus_PQ9x12
📊Revisar eval-7d en sesión 2 del harness
6
Candidatos a Shared Skill
saas-client-onboarding
PROMOVER
Flujo completo webhook → workspace → emails → eval. Aparece en 3 clientes SaaS diferentes este mes.
multi-sesión multi-equipo contrato I/O estable failures repetidos control pane
stripe-webhook-parser
PROMOVER
Extracción normalizada de datos de eventos Stripe. Reutilizada en onboarding, churn, y billing.
multi-repo I/O estable un solo equipo sin gate propio
resend-email-sequence
EVALUAR
Dispatcher de secuencias drip via Resend con dry-run y sandbox. 2 usos confirmados.
multi-proyecto aún una sesión sequencing específico falta test coverage
7
Anti-Patrones Evitados en Este Harness
Sin lógica oculta — NO scripts que esconden decisiones: cada paso del loop es explícito y trazable en HARNESS.md
NO skip de tests: modo dinámico no es excusa para omitir evals. Hay 5 gates obligatorios antes de tocar producción.
NO docs one-off: el handoff.md es un artefacto de estado, no documentación estática. Se regenera cada sesión.
NO multi-agente sin ownership: 2 agentes máx con merge gate y conflict policy explícita en HARNESS.md §6.
NO datos privados en docs públicos: cs_brief_{id}.md se genera localmente, nunca se comitea. .gitignore incluye harnesses/*/output/
NO credenciales en código: política explícita de process.env.* con no-secret scan como gate obligatorio.
8
Output Standard — Resumen de Entregables
📁
Harness Path
harnesses/flowtrack-onboarding/HARNESS.md
🧪
Eval Commands
5 gates · 3 PASS · 1 PENDING · 1 QUEUED
🎛
Control Pane
status.json + handoff.md (sesión 1/2)
🔁
Extraction Candidate
skills/saas-client-onboarding/SKILL.md