gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Sutichaykuna

yupana: `--help` imprimía literalmente None

Todo el encabezado del fichero era comentario `#`, así que __doc__ era None y
`main()` hace `print(__doc__)` en dos caminos: `--help` y verbo desconocido. La
puerta única de la metodología no sabía explicarse, y el error de verbo tampoco
decía cuáles son los verbos válidos.

La ayuda operativa pasa a docstring; el diseño y el porqué se quedan arriba como
comentario. Cotejada contra el despacho real: los 11 verbos de la ayuda existen y
los 11 que existen están en la ayuda (faltaba `sembrar`).

9834f57052ba8a255af919a06f67d1e3ebbf9c2a · ruwaq Sergio · (1 killa ñawpaq) · tayta 28d98dc5f · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

1 qillqakuna · +25 −3

diff --git a/scripts/yupana.py b/scripts/yupana.py
index 6261cfba..5804477e 100755
--- a/scripts/yupana.py
+++ b/scripts/yupana.py
@@ -42,9 +42,31 @@
 #   triaje            clasificar la frontera            → triaje.py
 #   drenar [--perfil] el orden de masticado, en ondas   → drenar.py
 #
-# Uso:  scripts/yupana.py radio <receta> [--json]
-#       scripts/yupana.py estado [--kde] | drenar [--todos] | triaje | frontera <perfil> | objetivo
-# Como módulo:  from yupana import cargar_colas, membresia, dependientes, resolver
+# La ayuda operativa vive en el DOCSTRING de abajo y no en estos comentarios, por una razón medida:
+# `main()` hace `print(__doc__)` para `--help` y para un verbo desconocido, y mientras todo el
+# encabezado fue `#` eso imprimía literalmente `None`. La puerta única de la metodología no sabía
+# explicarse, y el error de verbo desconocido tampoco decía cuáles son los verbos. El diseño y el
+# porqué se quedan arriba como comentario; lo que un humano necesita para USARLO va en el docstring.
+"""yupana — el ábaco del build: reckona sobre el khipu (docs/state/build-state.json).
+
+Verbos, en el orden del ciclo:
+
+  radio <receta> [--json]   ¿a QUIÉN rompo si toco esto? cruza TODAS las colas ← ANTES de cambiar nada
+  perfiles <receta>         ¿qué imágenes dependen de esto?
+  duplicados [--json]       el mismo paquete bajo dos nombres (por sha)
+  keystones [--json]        nudos en deuda que gatean el máximo trabajo bloqueado
+  preflight <receta>        ¿choca con un límite del entorno que el grafo no ve?
+  estado [--kde|--gnome|--cosmic|--wlr]   regenera el grafo firme
+  objetivo                  qué debe tener cada imagen
+  frontera <perfil>         qué pide upstream y no tenemos
+  triaje                    clasificar la frontera
+  sembrar <perfil>          sembrar las recetas que la frontera reveló
+  drenar [--todos|--perfil <p>]           el orden de masticado, en ondas
+
+Uso:  scripts/yupana.py radio <receta> [--json]
+      scripts/yupana.py estado [--kde] | drenar [--todos] | triaje | frontera <perfil> | objetivo
+Como módulo:  from yupana import cargar_colas, membresia, dependientes, resolver
+"""
 import glob, json, os, re, subprocess, sys, tomllib
 from pathlib import Path