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 1373Shell 116Rust 74Markdown 641915 Sutichaykuna

frontera: rebarrida con el triaje puesto — 334 → 319 candidatos, y CERO nuevos

El triaje sirve para algo o no sirve, y eso se mide corriendo el sembrador otra vez. Regenerados
los SIETE perfiles de `seed-frontera.json` (1,3 s cada uno: el eval de nix estaba cacheado).

  perfil               antes  ahora
  base                    41     41    +0
  cli                     44     44    +0
  escritorio-cosmic      148    143    -5
  escritorio-gnome       191    181   -10
  escritorio-kde         276    266   -10
  escritorio-mirada       39     38    -1
  escritorio-sway        175    171    -4
  UNIÓN                  334    319   -15

Los 15 que se fueron son EXACTAMENTE los que el lazo cerrado puede sacar: los siete alias
(bubblewrap, mesa-gl-headers, nlohmann_json, libxfont_2, gusb, glad2, libmpc), los nix-ismos
(CUnit, ffmpeg-headless, lzip, validate-pkg-config, python3-3.14.7-env) y tres que dejaron de ser
candidatos porque ahora TIENEN receta (bash-completion, desktop-file-utils, purpose).

Y **cero candidatos nuevos**, que era la otra mitad de la pregunta: el barrido no se movió por
debajo mientras lo triábamos.

⚠ LO QUE ESTE NÚMERO NO DICE. Los 327 veredictos `opcional` NO encogen la salida del sembrador —
sólo `nix-ismo` y `provisto` realimentan. Es correcto que así sea (un `opcional` es una decisión
nuestra, no un error de nixpkgs), pero significa que la frontera va a seguir saliendo con ~319
candidatos de los que 316 ya están contestados. Quien la lea tiene que cruzarla con
`frontera-triaje.toml`, no leerla sola: `scripts/triaje.py` sin argumentos ya lo hace y dice
«0 nuevos».

De paso: 46 candidatos quedaron marcados `ausente = true` (estaban en barridos viejos y ya no
salen). El fichero de triaje los conserva con su veredicto en vez de borrarlos, que es lo correcto
— si alguno vuelve, vuelve ya contestado.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV

d8f1280ae9f7f7fa4d9903ea6afa90770e07aa10 · ruwaq Sergio · (1 killa ñawpaq) · tayta 893b126c3 · kay commitpi sach'ata qhaway

Semántico sayk'uy

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

2 qillqakuna · +22 −128

diff --git a/docs/state/frontera-triaje.toml b/docs/state/frontera-triaje.toml
index 08bd2536..c1695b11 100644
--- a/docs/state/frontera-triaje.toml
+++ b/docs/state/frontera-triaje.toml
@@ -23,6 +23,7 @@ sugerencia = "opcional?"
 porque = "nghttp2 1.64.0 no nombra CUnit en ningún fichero: sus tests usan munit VENDORIZADO en tests/munit/. Es una dep rancia de la expresión de nixpkgs ⇒ no puede volver como hueco ni encendiendo los tests"
 perfiles = ["escritorio-gnome"]
 piden = ["nghttp2"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."SPIRV-LLVM-Translator"]
 veredicto = "opcional"
@@ -174,6 +175,7 @@ provee = "bash-completion"
 porque = "lo piden 5 recetas de la imagen — difícil que sea accesorio"
 perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
 piden = ["appstream", "colord", "gnome-shell", "modemmanager", "swayimg"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."bluez"]
 veredicto = "opcional"
@@ -208,6 +210,7 @@ provee = "bwrap"
 porque = "lo piden 2 recetas"
 perfiles = ["escritorio-cosmic", "escritorio-gnome"]
 piden = ["gnome-desktop", "xdg-desktop-portal"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."c-ares"]
 veredicto = "opcional"
@@ -295,6 +298,7 @@ provee = "desktop-file-utils"
 porque = "lo piden 3 recetas"
 perfiles = ["escritorio-gnome"]
 piden = ["gnome-shell", "libadwaita", "mutter"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."directx-headers"]
 veredicto = "opcional"
@@ -417,6 +421,7 @@ veredicto = "nix-ismo"
 porque = "lo piden 2 recetas"
 perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
 piden = ["opencv", "pipewire"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."fftw-single"]
 veredicto = "opcional"
@@ -507,6 +512,7 @@ provee = "glad"
 porque = "no falta: recipes/glad.toml pinea la 2.0.8, que ES glad2 — nixpkgs parte glad (v1) y glad2 (v2) en dos paquetes y acá hay uno solo. Ya figura en el [deps].build de libplacebo. Cuarta forma de alias: la VERSIÓN metida en el nombre"
 perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-sway"]
 piden = ["libplacebo"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."glib-networking"]
 veredicto = "pendiente"
@@ -686,6 +692,7 @@ provee = "libgusb"
 porque = "no falta: es el mismo paquete con el prefijo `lib`. recipes/incoming-gnome/libgusb.toml (0.4.9) está sellada y ya figura en el [deps].build de colord. Tercera FORMA de alias del barrido: prefijo, después de puntuación y mayúsculas"
 perfiles = ["escritorio-gnome"]
 piden = ["colord"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."hdf5-cpp"]
 veredicto = "opcional"
@@ -1091,6 +1098,7 @@ provee = "mpc"
 porque = "no falta, y cierra el enigma de libmpdclient: nixpkgs llama `libmpc` a GNU MPC y `mpc` al cliente de MPD; acá GNU MPC se llama `mpc` (recipes/mpc.toml, --with-gmp --with-mpfr) y ya figura en el [deps].build de kcalc junto a gmp y mpfr. Séptimo alias, quinta forma: el mismo nombre significa DOS paquetes distintos en los dos catálogos"
 perfiles = ["escritorio-kde"]
 piden = ["kcalc"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."libmpdclient"]
 veredicto = "opcional"
@@ -1443,6 +1451,7 @@ provee = "libXfont2"
 porque = "no falta: es el MISMO paquete con el nombre normalizado por el sembrador. recipes/incoming-kde/libXfont2.toml existe, se autoró en la misma tanda que xwayland y ya figura en su [deps].build. Alias de MAYÚSCULAS, primero de esa forma"
 perfiles = ["escritorio-kde"]
 piden = ["xwayland"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."libxft"]
 veredicto = "opcional"
@@ -1577,6 +1586,7 @@ sugerencia = "opcional?"
 porque = "es un COMPRESOR, andamiaje de empaquetado: nixpkgs lo usa para desempaquetar .tar.lz. El tarball que pinea la receta es .tar.gz"
 perfiles = ["escritorio-gnome"]
 piden = ["libpsl"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."lzo"]
 veredicto = "opcional"
@@ -1618,6 +1628,7 @@ provee = "mesa"
 porque = "no falta: es el split de cabeceras que hace nixpkgs. El artefacto de mesa instala usr/include/{GL,GLES2,GLES3,KHR,EGL} —verificado en el store, no deducido— que es lo que incluyen mutter y xwayland. El único hueco es GLES1, apagado a propósito en la receta (-Dgles1=disabled)"
 perfiles = ["escritorio-gnome", "escritorio-kde"]
 piden = ["mutter", "xwayland"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."mesa-libclc"]
 veredicto = "opcional"
@@ -1708,6 +1719,7 @@ provee = "nlohmann-json"
 porque = "no falta: es el MISMO paquete con el separador cambiado. recipes/nlohmann-json.toml está en el corpus y ya figura en [deps].build de obs-studio. Alias de puntuación, como libxcb-image→xcb-util-image"
 perfiles = ["escritorio-kde"]
 piden = ["obs-studio"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."nv-codec-headers"]
 veredicto = "opcional"
@@ -1908,6 +1920,7 @@ provee = "purpose"
 porque = "lo piden 3 recetas"
 perfiles = ["escritorio-kde"]
 piden = ["gwenview", "okular", "spectacle"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."pycparser"]
 veredicto = "opcional"
@@ -1942,7 +1955,8 @@ veredicto = "nix-ismo"
 sugerencia = "nix-ismo?"
 porque = "envoltorio de entorno de nixpkgs (python + paquetes en una derivación); hammer ya tiene la receta `python3` (3.12.10) y la libinput que lo pide YA la declara en sus deps de build. Mismo criterio que `git-minimal` unas líneas más arriba."
 perfiles = ["escritorio-cosmic", "escritorio-gnome", "escritorio-kde", "escritorio-mirada", "escritorio-sway"]
-piden = ["breeze-icons", "gnome-shell", "gobject-introspection", "kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui", "libei"]  # …y 8 más
+piden = ["breeze-icons", "gnome-shell", "gobject-introspection", "kcoreaddons", "kguiaddons", "kjobwidgets", "knotifications", "kstatusnotifieritem", "kunitconversion", "kwidgetsaddons", "kxmlgui", "libei"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."pyyaml"]
 veredicto = "opcional"
@@ -2367,6 +2381,7 @@ sugerencia = "opcional?"
 porque = "no es una librería: es un SETUP HOOK de nixpkgs (validatePkgConfig) que revisa los .pc al final del build. Andamiaje del otro sistema"
 perfiles = ["escritorio-kde"]
 piden = ["jansson"]
+ausente = true  # ya no aparece en el último barrido de la frontera
 
 [candidato."vid.stab"]
 veredicto = "opcional"
diff --git a/docs/state/seed-frontera.json b/docs/state/seed-frontera.json
index 35893628..838ce47a 100644
--- a/docs/state/seed-frontera.json
+++ b/docs/state/seed-frontera.json
@@ -134,7 +134,7 @@
      "git"
     ]
    },
-   "recetas_sembradas": 57,
+   "recetas_sembradas": 58,
    "sin_attr_en_nixpkgs": [
     "bzip2-shared",
     "ca-certificates",
@@ -293,7 +293,7 @@
      "git"
     ]
    },
-   "recetas_sembradas": 80,
+   "recetas_sembradas": 81,
    "sin_attr_en_nixpkgs": [
     "bzip2-shared",
     "ca-certificates",
@@ -332,9 +332,6 @@
     "avahi": [
      "pipewire"
     ],
-    "bash-completion": [
-     "swayimg"
-    ],
     "bluez": [
      "pipewire",
      "pulseaudio"
@@ -342,9 +339,6 @@
     "bluez-headers": [
      "python3"
     ],
-    "bubblewrap": [
-     "xdg-desktop-portal"
-    ],
     "c-ares": [
      "nodejs"
     ],
@@ -388,9 +382,6 @@
     "ffado": [
      "pipewire"
     ],
-    "ffmpeg-headless": [
-     "pipewire"
-    ],
     "fftw-single": [
      "pipewire",
      "pulseaudio"
@@ -415,9 +406,6 @@
      "json-glib",
      "pango"
     ],
-    "glad2": [
-     "libplacebo"
-    ],
     "glslang": [
      "mesa"
     ],
@@ -671,11 +659,6 @@
     "pycparser": [
      "mesa"
     ],
-    "python3-3.14.7-env": [
-     "libinput",
-     "wireplumber",
-     "xdg-desktop-portal"
-    ],
     "pyyaml": [
      "mesa"
     ],
@@ -821,7 +804,7 @@
      "ffmpeg"
     ]
    },
-   "recetas_sembradas": 159,
+   "recetas_sembradas": 160,
    "sin_attr_en_nixpkgs": [
     "adwaita-cursors",
     "atuq",
@@ -876,9 +859,6 @@
   },
   "escritorio-gnome": {
    "candidatos": {
-    "CUnit": [
-     "nghttp2"
-    ],
     "SPIRV-LLVM-Translator": [
      "mesa"
     ],
@@ -906,12 +886,6 @@
     "avahi": [
      "pipewire"
     ],
-    "bash-completion": [
-     "appstream",
-     "colord",
-     "gnome-shell",
-     "swayimg"
-    ],
     "bluez": [
      "pipewire",
      "pulseaudio"
@@ -919,10 +893,6 @@
     "bluez-headers": [
      "python3"
     ],
-    "bubblewrap": [
-     "gnome-desktop",
-     "xdg-desktop-portal"
-    ],
     "c-ares": [
      "nghttp2",
      "nodejs"
@@ -948,11 +918,6 @@
     "dejagnu": [
      "libffi"
     ],
-    "desktop-file-utils": [
-     "gnome-shell",
-     "libadwaita",
-     "mutter"
-    ],
     "directx-headers": [
      "mesa"
     ],
@@ -985,9 +950,6 @@
     "ffado": [
      "pipewire"
     ],
-    "ffmpeg-headless": [
-     "pipewire"
-    ],
     "fftw-single": [
      "pipewire",
      "pulseaudio"
@@ -1021,9 +983,6 @@
      "mutter",
      "pango"
     ],
-    "glad2": [
-     "libplacebo"
-    ],
     "glib-networking": [
      "evolution-data-server"
     ],
@@ -1088,9 +1047,6 @@
      "gjs",
      "gnome-desktop"
     ],
-    "gusb": [
-     "colord"
-    ],
     "hdrhistogram_c": [
      "nodejs"
     ],
@@ -1300,18 +1256,12 @@
     "llvm": [
      "mesa"
     ],
-    "lzip": [
-     "libpsl"
-    ],
     "lzo": [
      "cairo"
     ],
     "merve": [
      "nodejs"
     ],
-    "mesa-gl-headers": [
-     "mutter"
-    ],
     "mesa-libclc": [
      "mesa"
     ],
@@ -1376,17 +1326,6 @@
     "pygobject": [
      "libsecret"
     ],
-    "python3-3.14.7-env": [
-     "gnome-shell",
-     "gobject-introspection",
-     "libei",
-     "libical",
-     "libinput",
-     "mutter",
-     "nss",
-     "polkit",
-     "xdg-desktop-portal"
-    ],
     "pyyaml": [
      "mesa"
     ],
@@ -1562,7 +1501,7 @@
      "ffmpeg"
     ]
    },
-   "recetas_sembradas": 181,
+   "recetas_sembradas": 182,
    "sin_attr_en_nixpkgs": [
     "atuq",
     "bzip2-shared",
@@ -1691,10 +1630,6 @@
     "baloo-widgets": [
      "dolphin"
     ],
-    "bash-completion": [
-     "modemmanager",
-     "swayimg"
-    ],
     "bluez": [
      "networkmanager",
      "pipewire",
@@ -1799,10 +1734,6 @@
     "ffado": [
      "pipewire"
     ],
-    "ffmpeg-headless": [
-     "opencv",
-     "pipewire"
-    ],
     "fftw-single": [
      "pipewire",
      "pulseaudio",
@@ -1829,9 +1760,6 @@
     "gi-docgen": [
      "glib"
     ],
-    "glad2": [
-     "libplacebo"
-    ],
     "glog": [
      "opencv"
     ],
@@ -2056,9 +1984,6 @@
     "libmng": [
      "qtsvg"
     ],
-    "libmpc": [
-     "kcalc"
-    ],
     "libmpdclient": [
      "mpc"
     ],
@@ -2181,9 +2106,6 @@
     "libxdamage": [
      "gtk3"
     ],
-    "libxfont_2": [
-     "xwayland"
-    ],
     "libxft": [
      "plasma-desktop",
      "plasma-workspace"
@@ -2245,9 +2167,6 @@
     "merve": [
      "nodejs"
     ],
-    "mesa-gl-headers": [
-     "xwayland"
-    ],
     "mesa-libclc": [
      "mesa"
     ],
@@ -2276,9 +2195,6 @@
      "curl",
      "nodejs"
     ],
-    "nlohmann_json": [
-     "obs-studio"
-    ],
     "nv-codec-headers": [
      "ffmpeg",
      "obs-studio"
@@ -2350,11 +2266,6 @@
     "psqlodbc": [
      "qtbase"
     ],
-    "purpose": [
-     "gwenview",
-     "okular",
-     "spectacle"
-    ],
     "pycparser": [
      "mesa"
     ],
@@ -2371,20 +2282,6 @@
      "kwidgetsaddons",
      "kxmlgui"
     ],
-    "python3-3.14.7-env": [
-     "breeze-icons",
-     "kcoreaddons",
-     "kguiaddons",
-     "kjobwidgets",
-     "knotifications",
-     "kstatusnotifieritem",
-     "kunitconversion",
-     "kwidgetsaddons",
-     "kxmlgui",
-     "libinput",
-     "networkmanager",
-     "polkit"
-    ],
     "pyyaml": [
      "mesa"
     ],
@@ -2576,9 +2473,6 @@
      "mesa",
      "pipewire"
     ],
-    "validate-pkg-config": [
-     "jansson"
-    ],
     "vid.stab": [
      "ffmpeg"
     ],
@@ -2629,7 +2523,7 @@
      "ffmpeg"
     ]
    },
-   "recetas_sembradas": 302,
+   "recetas_sembradas": 304,
    "sin_attr_en_nixpkgs": [
     "atuq",
     "bzip2-shared",
@@ -2779,9 +2673,6 @@
     "pycparser": [
      "mesa"
     ],
-    "python3-3.14.7-env": [
-     "libinput"
-    ],
     "pyyaml": [
      "mesa"
     ],
@@ -2876,9 +2767,6 @@
     "avahi": [
      "pipewire"
     ],
-    "bash-completion": [
-     "swayimg"
-    ],
     "bluez": [
      "pipewire",
      "pulseaudio"
@@ -2941,9 +2829,6 @@
     "ffado": [
      "pipewire"
     ],
-    "ffmpeg-headless": [
-     "pipewire"
-    ],
     "fftw-single": [
      "pipewire",
      "pulseaudio"
@@ -2964,9 +2849,6 @@
      "json-glib",
      "pango"
     ],
-    "glad2": [
-     "libplacebo"
-    ],
     "glslang": [
      "mesa",
      "wlroots"
@@ -3278,9 +3160,6 @@
     "pycparser": [
      "mesa"
     ],
-    "python3-3.14.7-env": [
-     "libinput"
-    ],
     "pyyaml": [
      "mesa"
     ],
@@ -3443,7 +3322,7 @@
      "ffmpeg"
     ]
    },
-   "recetas_sembradas": 203,
+   "recetas_sembradas": 205,
    "sin_attr_en_nixpkgs": [
     "adwaita-cursors",
     "atuq",