--- id: "0123" title: "fn-meta-orquestador + fn-priorizador + fn doctor issues/flows" status: pendiente type: feature domain: - meta - dev-ux scope: agent priority: media depends: - "0122" blocks: [] related: - "0069" - "0102" created: 2026-05-18 updated: 2026-05-19 tags: [meta-orquestador, paralelo, priorizador, doctor] --- **REVISION 2026-05-19:** `/flow run` y `/fix-flow` se ELIMINAN del scope. Absorbidos por `/autopilot` v2 (delega a fn-orquestador que ganara modo `task_type=flow`). Issue queda con 3 piezas: meta-orquestador + priorizador + doctor. # 0123 — Flows ejecutables + meta-orquestador paralelo ## Problema 1. 12 flows declarados en `dev/flows/`, 0 cerrados. Fase 2 (`/flow run`) NUNCA implementada. Flows son docs estaticos sin musculo ejecutivo. Ningun subagente los consume. 2. `parallel-fix-issues` lanza N agentes Claude vanilla en worktrees. `fn-orquestador` lanza 1 issue autonomo en worktree. NO existe combinacion: N issues autonomos coordinados respetando dep-graph. 3. `/work today` prioriza con regla fija (prio+deps+DoD%). NO usa errores e2e, blast radius ni huerfanas para reordenar. ## Decision (revision 2026-05-19) Tres piezas: 1. **`fn-meta-orquestador`** (subagente nuevo): lee `dev/issues/` con `status=pendiente` + dep-graph + telemetria. Spawn N `fn-orquestador` en worktrees paralelos respetando deps. Reusa `parallel-fix-issues/scripts/setup-worktrees.sh`. 2. **`fn-priorizador`** (subagente nuevo): lee issues + telemetria call_monitor (error_rate, blast radius, huerfanas, violations). Output: top-N reordenado para `/work today`. 3. **`fn doctor issues` + `fn doctor flows`**: valida TAXONOMY allowlist + DoD presente + user-facing surface declarada. **ELIMINADAS del scope original (absorbidas por `/autopilot` v2):** - `/flow run ` — ahora `/autopilot flow:` delega a `fn-orquestador` con `task_type=flow`. - `/fix-flow ` — mismo, fusion en `/autopilot`. Implica que `fn-orquestador` necesita ganar soporte `task_type=flow` (parsear `## Flow` + ejecutar steps). Sub-tarea trackeada en 0123 reducido o issue propio (decidir). ## Tareas 1. Anadir soporte `task_type=flow` a `fn-orquestador/SKILL.md` (parser `## Flow` + ejecutor steps + evaluator `## Acceptance` checkboxes via heuristicas). 2. Escribir `.claude/agents/fn-meta-orquestador/SKILL.md` con dep-graph resolver + spawner paralelo. 3. Escribir `.claude/agents/fn-priorizador/SKILL.md` que consulta `call_monitor.operations.db` + `task_runs`. 4. Anadir subcomandos `fn doctor issues` + `fn doctor flows` con funciones auxiliares via `fn-constructor`. 5. Test: lanzar `/autopilot flow:0001` (hn-top-stories) end-to-end + verificar acceptance. ## Acceptance - [ ] `/autopilot flow:0001` ejecuta cada step y reporta pass/fail por step (delegado a fn-orquestador con task_type=flow). - [ ] `/autopilot flow:0001` cierra DoD verde y mueve a `dev/flows/completed/`. - [ ] `fn-meta-orquestador` lanza N orquestadores paralelos sobre issues sin dep entre si. - [ ] `fn-priorizador` output incluye senal de telemetria (no solo prio+deps). - [ ] `fn doctor issues --json` detecta drift TAXONOMY. - [ ] `fn doctor flows --json` detecta flows sin DoD ni user-facing surface. - [ ] 1 flow real cerrado (`status=done` + en `completed/`). ## DoD User-facing surface: - **Donde**: `/flow run` + `/work today` en terminal + tab Work del dashboard. - **Latencia**: `/flow run` reporta progreso live por step. - **Como vuelve**: `/work today` cada manana muestra top reordenado. - **Onboarding**: "Para arrancar el dia, `/work today`. Para cerrar un flow, `/fix-flow `. Para lanzar varios issues a la vez, `fn-meta-orquestador` via skill o spawn manual."