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:
@@ -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.
|
||||
Reference in New Issue
Block a user