fad4006f60
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
97 lines
3.9 KiB
Markdown
97 lines
3.9 KiB
Markdown
# 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.
|