1# grafo-nav
2
3*Read this in English: [README.md](README.md).*
4
5El contrato del DAG navegable, una sola vez (PLAN-GRAFO F1)
6
7Un DAG cualquiera del repo (Mónadas, commits, celdas, mensajes) se vuelve
8navegable y gestionable implementando `GrafoNavegable`: dice sus nodos, sus
9aristas dirigidas `(padre → hijo)`, y qué `Verbo`s permite para la
10selección. Todo lo estructural — raíces, cabezas, cono, bifurcación — se
11deriva solo, puro, de las aristas.
12
13El cockpit compartido (`llimphi-widget-navigator::cockpit_grafo_view`) toma
14cualquier `impl GrafoNavegable` y lo pinta con pan/zoom/selección y la paleta
15de verbos. Esta caja NO conoce la UI: sólo topología y vocabulario.
16
17Convención de dirección de arista: `(from, to)` = `ancestro → descendiente`
18(padre → hijo). Así una **raíz** no tiene aristas entrantes (commit inicial)
19y una **cabeza** no tiene salientes (tip / mensaje sin respuesta) — coincide
20con `minga::GrafoCommits` y con el layout por rango del nodegraph.
21
22---
23
24Parte de **shared** — ver [shared](../LEEME.md).
LEEME.md
grafo-nav
Read this in English: README.md.
El contrato del DAG navegable, una sola vez (PLAN-GRAFO F1)
Un DAG cualquiera del repo (Mónadas, commits, celdas, mensajes) se vuelve
navegable y gestionable implementando GrafoNavegable: dice sus nodos, sus
aristas dirigidas (padre → hijo), y qué Verbos permite para la
selección. Todo lo estructural — raíces, cabezas, cono, bifurcación — se
deriva solo, puro, de las aristas.
El cockpit compartido (llimphi-widget-navigator::cockpit_grafo_view) toma
cualquier impl GrafoNavegable y lo pinta con pan/zoom/selección y la paleta
de verbos. Esta caja NO conoce la UI: sólo topología y vocabulario.
Convención de dirección de arista: (from, to) = ancestro → descendiente
(padre → hijo). Así una raíz no tiene aristas entrantes (commit inicial)
y una cabeza no tiene salientes (tip / mensaje sin respuesta) — coincide
con minga::GrafoCommits y con el layout por rango del nodegraph.
Parte de shared — ver shared.