b9716a7cd6
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>
61 lines
2.2 KiB
Markdown
61 lines
2.2 KiB
Markdown
---
|
|
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.
|