egutierrez a6366b4d50 feat(skill_tree): Dashboard panel + ghost-nodes + mock generate ideas
Cierra 0109k (Dashboard) + 0109h fase 1 (ghost-nodes framework con mock LLM).

Dashboard (Ctrl+3 / menu View / Dashboard):
- HUD: LV global = floor(sqrt(XP_total)) + barra de progreso al next level
- Conteo done/planned/todo/drafts
- Tabla por dominio sortable: Done/Planned/Todo/Progreso bar/LV
- Top 3 dominios masterizados
- Top 3 dominios proximos a desbloquearse (mas todo count)
- XP scheme: epic=10, infra=4, feature=3, refactor/spike/planning=2,
  bugfix/chore/docs=1, flow=5

Ghost-nodes framework:
- DraftNode struct con animacion emerge desde source -> target ring/sector
- g_drafts buffer in-memory (NO persistido, viven hasta promote/discard)
- g_sel_kind tagged: SelKind::None|Node|Draft (sustituye int g_selected)
- Inspector pivota a draft view cuando seleccion es draft
- Pass 3 de render en canvas: ghost-nodes con pulse alpha + label visible

Generate ideas button (Inspector de nodos reales):
- Color emerald
- On click: mock_generate_ideas(node) genera 3-5 drafts hardcoded
- TODO 0109h2: spawn claude -p real con prompt contextual + parse JSON

Promote buttons (Inspector de drafts):
- [Generate issue] -> escribe dev/issues/NNNN-<slug>.md (next_issue_id scan)
- [Generate flow] -> escribe dev/flows/NNNN-<slug>.md (next_flow_id scan)
- [Discard] -> elimina del buffer

Self-test: 171 nodes, parse_errors=0, unmapped=0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 20:40:43 +02:00
S
Description
Synced from fn_registry
158 KiB
Languages
C++ 99.1%
CMake 0.9%