# Taxonomia canonica — dev/issues + dev/flows Fuente de verdad para los campos del frontmatter YAML de issues y flows. Cualquier valor fuera de las allowlists hace fallar `fn doctor issues` y el filtrado de `dev_console`. ## Dominios (allowlist) | Tag | Que entra | |---|---| | `meta` | telemetria, hooks, bucle reactivo, MCP, loops autonomos, taxonomia, dev_console | | `cpp-stack` | apps C++/ImGui + primitivos GFX, GL, ImPlot, tablas, paneles, app shell | | `kanban` | app `kanban` (features, stickers, columnas, reports, daily summary) | | `trading` | roadmap trading (market data, broker, portfolio, backtester, journal, ...) | | `gamedev` | roadmap gamedev (SDL3, sokol, runtime, asset pipeline, build targets) | | `osint` | ODR + OSINT + graph_explorer | | `data-ingest` | extractores, navegator, data_factory, dag_engine, recipes | | `registry-quality` | auditorias, drift, registry-first refactors, uses_functions, migrations | | `notify` | Matrix, Telegram, email, slack | | `imagegen` | stable-diffusion, imagegen_studio, sd-cpp | | `apps-infra` | launcher, datahub, app shell shared infra, app locations | | `dev-ux` | fricion del agente (output mudo, paths rotos, gradle_run, slash commands) | | `deploy` | deploy_server, systemd, VPS, rsync, webhooks | | `frontend` | React + Vite + Mantine + hooks + visualizaciones web | | `mcp` | MCP server, tools del registry, integracion Claude Code | | `browser` | Chrome, CDP, navegator helpers | | `telemetry` | call_monitor, function_stats, observability | | `docs` | reglas, plantillas, ADRs, capability pages | ## Tipos | Tag | Que es | |---|---| | `app` | crear app entera (apps/ o cpp/apps/) | | `feature` | accion concreta, una rama corta | | `bugfix` | corregir defecto | | `refactor` | reescribir sin cambiar comportamiento | | `chore` | auditoria, indexado, limpieza, migracion | | `docs` | solo documentacion | | `spike` | exploracion timeboxed | | `epic` | roadmap con sub-issues hijo (NNNN + NNNNa, NNNNb, ...) | | `infra` | sub-piezas de un epic | | `planning` | issue de planificacion (no entrega codigo) | ## Estados | Tag | Que significa | |---|---| | `pendiente` | no arrancado | | `in-progress` | rama abierta + commits | | `bloqueado` | espera dep no resuelta | | `completado` | merge a master + DoD verde + archivado | | `deferred` | fuera de scope actual, conservado | ## Scopes | Tag | Que toca | |---|---| | `registry-only` | solo `functions/`, `types/`, `python/functions/`, etc. | | `app-scoped` | una app concreta | | `multi-app` | atraviesa >=2 apps | | `cross-stack` | toca C++ + Go + Py + Frontend o equivalente | ## Prioridades | Tag | Que significa | |---|---| | `alta` | bloquea otros items, alto impacto | | `media` | importante pero no critico | | `baja` | nice-to-have | ## Flow patterns (solo dev/flows) | Pattern | Que es | |---|---| | `smoke-cron` | pipeline programado de prueba (HN, AEMET) | | `prod-data` | caso real con datos personales/sensibles | | `event-driven` | webhook -> fanout/notify | | `manual-deep` | humano dispara, multi-paso interactivo | | `gitops` | estado de servicio -> codigo versionado | | `realtime-loop` | bucle continuo sin trigger discreto | ## Convenciones de uso - `domain` es lista (multi-tag permitido). `scope`, `type`, `priority`, `status` son escalares. - Issue sin `type` o `priority` -> warning en `fn doctor issues` + bloquea `done`. - Issue con dominio fuera de la lista -> error en validador. - Roadmaps usan `type: epic` con sub-issues `NNNNa`, `NNNNb`, ... que son `type: infra` o `feature`. - Issue cerrado vive en `dev/issues/completed/` con `status: completado`. ## Como evolucionar la taxonomia Anadir dominio nuevo requiere: 1. PR a este archivo + a `python/functions/pipelines/migrate_issues_frontmatter.py` (heuristica). 2. Justificacion: >=3 issues actuales o previstos que encajen. 3. Frontera neta con dominios vecinos. NO crear dominios para 1 issue suelto -> usa `tags:` libre.