chore: snapshot WIP previo + flow 0008 + 7 sub-issues (0112-0119)

Snapshot de WIP acumulado de sesiones previas antes de merge wave 1
del flow 0008 (kanban_cpp + agent_runner_api + DoD schema).

Incluye:
- dev/flows/0008-kanban-cpp-and-agent-workflows.md
- dev/issues/0112-0119*.md (7 sub-issues)
- WIP previo en cmd/fn/doctor.go, registry/*, modules/, cpp/, etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-18 18:17:08 +02:00
parent ddb5366884
commit b9716a7cd6
119 changed files with 14929 additions and 3084 deletions
@@ -0,0 +1,60 @@
---
id: "0109a"
title: "skill_tree app shell + parsers issues/flows"
status: completado
type: feature
domain:
- meta
- cpp-stack
scope: app-scoped
priority: media
depends: []
blocks:
- "0109b"
related:
- "0109"
created: 2026-05-17
updated: 2026-05-17
tags:
- skill-tree
- cpp
- imgui
- parsers
---
# 0109a — skill_tree shell + parsers
Primer slice del epic 0109. Foco: app C++ scaffoldada, compilando, leyendo los 79 issues + 7 flows y reportando conteos en stdout. Sin render del grafo todavia — solo plumbing.
## Tareas
1. Scaffolder `./fn run init_cpp_app skill_tree --domain tools --desc "..." --tags "dashboard,meta"`.
2. Editar `app.md` generado: trio icon (`tree-structure`, `#c026d3`), `e2e_checks`, `uses_functions` iniciales.
3. Generar `appicon.ico` via `generate_app_icon_py_infra`.
4. Crear funcion `parse_md_frontmatter_cpp_core` (delegar a fn-constructor):
- Input: `std::string content` (texto del .md completo).
- Output: `MdFrontmatter` struct con `std::unordered_map<std::string, YamlValue>` y `std::string body`.
- `YamlValue` = variant `{string, list<string>, null}`. Subset YAML suficiente para issues actuales.
- Pure. Test golden: parsea los 79 issues + 7 flows sin error.
5. En `main.cpp` (scaffold inicial): al arrancar, scan `dev/issues/*.md` + `dev/flows/*.md`, parse cada uno, contar por status/domain. Log a stdout:
```
skill_tree v0.1.0
issues: 79 (28 pendiente, 3 in-progress, 72 completado, ...)
flows: 7 (5 pending, 2 completed)
parse errors: 0
```
6. `e2e_checks` build + self-test warning.
7. Compilar + deploy Windows via `redeploy_cpp_app_windows`.
8. Refrescar hub via `refresh_app_hub`.
## DoD
- [ ] App existe en `apps/skill_tree/` con `.git/` apuntando a `dataforge/skill_tree`.
- [ ] `app.md` con trio completo + `e2e_checks` + `uses_functions` declarados.
- [ ] `appicon.ico` generado.
- [ ] `fn index` exitoso, `mcp__registry__fn_show id="skill_tree"` muestra metadata.
- [ ] `parse_md_frontmatter_cpp_core` indexado en registry.
- [ ] `cmake --build cpp/build --target skill_tree` exitoso.
- [ ] `./skill_tree` (Linux) o `skill_tree.exe` (Windows) imprime conteos correctos.
- [ ] Tarjeta visible en `app_hub_launcher`.
- [ ] `fn doctor cpp-apps` limpio.