--- 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` y `std::string body`. - `YamlValue` = variant `{string, list, 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.