--- id: "0101" title: "dev_console Go binario: /issue /flow /work unificados" status: pendiente type: app domain: - meta scope: registry-only priority: alta depends: [] blocks: [] related: [] created: 2026-05-17 updated: 2026-05-17 tags: [] --- # 0101 — dev_console Go binario: /issue /flow /work unificados **Status:** pendiente **Created:** 2026-05-16 **Type:** app **Priority:** alta **Domain:** meta **Scope:** registry-only **Depends:** 0100 (frontmatter migration) **Blocks:** 0102 (work dashboard tab consume `dev_console --json`) **Related:** 0103 (slash commands llaman al binario) ## Problema Issues y flows hoy se gestionan a ojo: `ls dev/issues/`, `grep`, edit manual de tablas en `README.md` / `INDEX.md`. Sin un comando unificado: - No hay `/issue list --domain trading --status pendiente`. - No hay `/flow status 0001` que cuente checkboxes + DoD %. - No hay vista cross-cutting "que hacer hoy" mezclando issues + flows. Necesitamos un binario unico (`dev_console`) con la misma forma que `fn`: subcomandos consistentes, output texto + `--json`, latencia <200ms. ## Objetivo v1 App Go en `apps/dev_console/` con subcomandos: ### issue | Subcomando | Que hace | |---|---| | `dev_console issue list [--domain X] [--type Y] [--status Z] [--prio P] [--epic NNNN]` | tabla filtrable + DoD % | | `dev_console issue show NNNN` | imprime archivo | | `dev_console issue status NNNN` | % acceptance + estado deps (resuelto si todos los `depends` estan `completado`) | | `dev_console issue board` | output TUI o tabla columnas pendiente/in-progress/bloqueado/done | | `dev_console issue dep NNNN` | arbol bloquea/depende navegable | | `dev_console issue roadmap NNNN` | epic + sub-IDs (auto-detecta `NNNNa`, `NNNNb`, ...) | | `dev_console issue tag NNNN +X -Y` | mantenimiento tags | | `dev_console issue done NNNN` | mueve a `completed/`, valida deps, actualiza README | | `dev_console issue stale [--days 30]` | sin update >N dias | | `dev_console issue create --type T --domain D` | scaffold con frontmatter canonico | ### flow | Subcomando | Que hace | |---|---| | `dev_console flow list [--app X] [--pattern P] [--risk R]` | tabla filtrable + DoD % | | `dev_console flow create ` | scaffold (rechaza si falta DoD user-facing) | | `dev_console flow show NNNN` | imprime archivo | | `dev_console flow status NNNN` | Acceptance % + DoD % separados + checks user-facing destacados | | `dev_console flow dod NNNN` | solo bloque DoD + checklist live | | `dev_console flow trace NNNN` | join `call_monitor.calls` + `data_factory.runs` filtrados por funciones/apps del flow | | `dev_console flow user-test NNNN` | abre superficie usuario declarada en DoD (URL, lanza .exe, abre tab) | | `dev_console flow run NNNN` | fase 2 — ejecuta steps con `function:` | | `dev_console flow chain N M` | declara composicion N -> M | | `dev_console flow done NNNN` | exige DoD 100% (incluyendo user-facing) antes de mover | ### work (cross-cutting) | Subcomando | Que hace | |---|---| | `dev_console work today` | top items prio alta + deps satisfechas (issues + flows) | | `dev_console work weekly` | review semanal: closed vs planeados (lookup en git log + completed/) | | `dev_console work search "texto"` | FTS sobre issues + flows + completed | | `dev_console work dashboard` | imprime JSON consumible por tab Work (issue 0102) | ## Reglas tecnicas - Go + parser YAML (gopkg.in/yaml.v3) + tabwriter. Sin DB propia — fuente de verdad = archivos `.md`. - Cache opcional en `~/.cache/dev_console/index.json` invalidada por mtime. - `--json` en TODOS los subcomandos para consumo por dashboards/agentes. - Latencia objetivo <200ms en lookup, <500ms en list (71 issues + 7 flows). - Build canonico: `CGO_ENABLED=0 go build -tags fts5 -o dev_console .` ## Acceptance - [ ] `dev_console issue list --status pendiente` lista los issues abiertos. - [ ] `dev_console flow status 0001` muestra Acceptance + DoD + user-facing %. - [ ] `dev_console work today` produce lista util (no vacia, no flood). - [ ] `dev_console flow done 0001` rechaza si DoD <100%. - [ ] Tests con fixtures en `apps/dev_console/testdata/`. ## Definition of Done ### Generico - [ ] **Repetibilidad**: tests verdes 3x; latencia consistente. - [ ] **Observabilidad**: cada invocacion registrada en `call_monitor.calls` (hook PostToolUse Bash detecta `dev_console *`). - [ ] **Error-path**: archivo malformado -> mensaje claro + exit code != 0. - [ ] **Idempotencia**: `done` 2x sobre mismo issue = 0 cambios la segunda. - [ ] **Secrets**: N/A. - [ ] **Docs**: `apps/dev_console/app.md` + `README.md` con ejemplos. - [ ] **Registry-first**: reusa `parse_yaml_frontmatter_*`, `checklist_count_*`, etc. - [ ] **INDEX + status**: issue cerrado. ### User-facing - [ ] **User-facing**: usuario teclea `/issue list` en Claude Code o `dev_console issue list` en terminal y ve tabla limpia con prio/domain/status. - [ ] **User-facing repeat**: comando responde igual cada vez, sub-segundo, sin reset de estado. - [ ] **User-facing onboarding**: `apps/dev_console/app.md` lista comandos canonicos + casos comunes. - [ ] **User-facing latencia**: <500ms p95 para list, <200ms para show.