Files
takana/docs/state/seed-frontera.json
T
sergioandClaude Opus 4.8 0093c1f19c catálogo objetivo P3: sembrador de aristas desde nixpkgs, calibrado contra la verdad
seed-graph.py extrae deps de la metadata de nixpkgs sin construir nada (leerla
no viola el ADR 0004, que prohíbe *construir* con nix). `--calibrar` mide la
semilla contra la única verdad disponible: las recetas escritas a mano.

VEREDICTO (60 recetas, 686 deps):
   directas     recall 39%*, precisión 59% (269 de 455)
   transitivas  recall 84%,  precisión  6% (390 de 6760)
   * contra la verdad APLANADA — comparación injusta, y el modo transitivo
     prueba que la información sí está; sólo falta aplanarla.

Decisión: sembrar aristas DIRECTAS, la transitividad la hace el grafo. hammer
aplana la clausura en [deps].build (cada dep = capa --overlay-src), nixpkgs
declara directas y propaga; reproducir el aplanado arrastra 4629 nodos fantasma
del bootstrap de nixpkgs.

Lo que enseñó la calibración (3 rondas, cada fix salido de un dato):
· 4 clases de discrepancia, no 1: convención hammer (make/binutils/linux-headers,
  implícitas en el stdenv de nix), variante nuestra (zlib vs zlib-shared),
  provisto por el lab (cargo/rustc — las recetas Rust declaran deps=[]), y recién
  después ruido real. Contarlas juntas hacía parecer irreducible lo clasificable.
· desalineación aburrida y arreglable: caja (libx11/libX11), implementación
  (gettext→gettext-tiny, ninja→samurai), versión pegada al pname, hooks del
  stdenv. Precisión 45%→59%; "sin attr en nixpkgs" 22/40 → 6/60.
· el escritorio KDE cuelga de kdePackages., no del top-level: sin ese fallback
  el perfil objetivo era insembrable.

Hallazgo de secuencia: hay 0 nodos `wanted` (targets.toml se pobló por
lift-and-shift de lo existente), así que el sembrador no tenía a quién sembrar.
De ahí `--frontera <perfil>`: siembra las recetas que YA existen y reporta lo que
nixpkgs pide y hammer no puede construir. 137 candidatos en escritorio-kde
(kdoctools ×6, milou, polkit-qt-1, libkscreen, y mesa-libgbm/libglvnd/spirv-tools
= el muro de GBM/EGL ya documentado), 51 en cli, 46 en escritorio-mirada.

Cada candidato es una HIPÓTESIS a clasificar a mano: dep opcional no habilitada,
nix-ismo por filtrar, o hueco real. Nada se promueve a receta automáticamente.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-22 18:01:08 -04:00

841 lines
12 KiB
JSON

{
"advertencia": "HIPÓTESIS desde metadata de nixpkgs. Cada candidato es (a) dep opcional que hammer no habilitó, (b) nix-ismo por filtrar, o (c) hueco real. Clasificar a mano; NO promover a receta automáticamente.",
"perfiles": {
"cli": {
"candidatos": {
"acl": [
"rsync"
],
"adns": [
"gnupg"
],
"audit": [
"dbus"
],
"autoconf": [
"util-linux"
],
"autoconf-archive": [
"python3"
],
"automake": [
"util-linux"
],
"bluez-headers": [
"python3"
],
"check": [
"parted"
],
"cmocka": [
"shadow"
],
"db": [
"iproute2"
],
"ed": [
"lsof"
],
"fuse": [
"e2fsprogs"
],
"gdbm": [
"python3"
],
"git-minimal": [
"starship"
],
"glibc": [
"go"
],
"gnutls": [
"gnupg"
],
"groff": [
"sudo"
],
"help2man": [
"flex"
],
"iptables": [
"iproute2"
],
"jemalloc": [
"fd"
],
"kmod": [
"pciutils"
],
"krb5": [
"curl"
],
"libapparmor": [
"dbus"
],
"libbpf": [
"iproute2"
],
"libbsd": [
"shadow"
],
"libcap-ng": [
"dbus",
"util-linux"
],
"libidn2": [
"curl",
"iputils"
],
"libmnl": [
"iproute2"
],
"libpsl": [
"curl"
],
"libunwind": [
"strace"
],
"libxcrypt": [
"perl",
"shadow",
"util-linux"
],
"lvm2": [
"parted"
],
"mpdecimal": [
"python3"
],
"nghttp2": [
"curl"
],
"nghttp3": [
"curl"
],
"ngtcp2": [
"curl"
],
"openldap": [
"gnupg"
],
"pandoc-cli": [
"eza"
],
"po4a": [
"util-linux"
],
"popt": [
"rsync"
],
"remove-references-to": [
"jq"
],
"systemd-minimal": [
"dbus"
],
"systemd-minimal-libs": [
"dhcpcd",
"htop",
"util-linux"
],
"tcb": [
"shadow"
],
"texinfo": [
"e2fsprogs",
"git",
"gnupg"
],
"tinyxxd": [
"dosfstools"
],
"tpm2-tss": [
"gnupg"
],
"uname": [
"git"
],
"xclip": [
"gitui"
],
"xmlto": [
"git"
],
"xxhash": [
"rsync"
]
},
"recetas_sembradas": 74,
"sin_attr_en_nixpkgs": [
"ca-certificates",
"libusb",
"linux-headers",
"make",
"procps-ng",
"sed"
]
},
"escritorio-kde": {
"candidatos": {
"SPIRV-LLVM-Translator": [
"mesa"
],
"acl": [
"kio"
],
"appstream-qt": [
"frameworkintegration",
"plasma-workspace"
],
"aspell": [
"sonnet"
],
"at-spi2-core": [
"qtbase"
],
"attr": [
"kfilemetadata",
"kio"
],
"audit": [
"dbus",
"linux-pam"
],
"aurorae": [
"kwin"
],
"autoconf": [
"util-linux"
],
"autoconf-archive": [
"python3"
],
"automake": [
"util-linux"
],
"avahi": [
"kdnssd"
],
"baloo": [
"plasma-workspace"
],
"bluez-headers": [
"python3"
],
"clang": [
"mesa"
],
"cups": [
"qtbase"
],
"db": [
"linux-pam"
],
"dejagnu": [
"libffi"
],
"directx-headers": [
"mesa"
],
"docbook5": [
"linux-pam"
],
"docutils": [
"libdrm"
],
"double-conversion": [
"qtbase"
],
"doxygen": [
"libqalculate",
"libxkbcommon",
"wayland"
],
"ebook-tools": [
"kfilemetadata"
],
"editorconfig-core-c": [
"ktexteditor"
],
"flatpak": [
"plasma-workspace"
],
"flite": [
"qtspeech"
],
"gdbm": [
"python3"
],
"glslang": [
"mesa"
],
"gmp-with-cxx": [
"mpfr"
],
"gpgmepp": [
"kwallet"
],
"gpsd": [
"plasma-workspace"
],
"graphviz": [
"wayland"
],
"gst-libav": [
"qtmultimedia"
],
"gst-plugins-bad": [
"qtmultimedia"
],
"gst-plugins-base": [
"libcanberra",
"qtmultimedia"
],
"gst-plugins-good": [
"qtmultimedia"
],
"gstreamer": [
"libcanberra",
"qtmultimedia"
],
"gtk+3": [
"qtbase"
],
"help2man": [
"flex"
],
"hunspell": [
"sonnet"
],
"jasper": [
"qtsvg"
],
"kdegraphics-mobipocket": [
"kfilemetadata"
],
"kdoctools": [
"kded",
"kio",
"kpackage",
"kservice",
"kwallet",
"kwin"
],
"kio-extras": [
"plasma-workspace"
],
"kuserfeedback": [
"plasma-workspace"
],
"libapparmor": [
"dbus"
],
"libappimage": [
"kfilemetadata"
],
"libb2": [
"qtbase"
],
"libcap-ng": [
"dbus",
"util-linux"
],
"libclc": [
"mesa"
],
"libdatrie": [
"qtbase"
],
"libdmtx": [
"prison"
],
"libei": [
"kwin"
],
"libglvnd": [
"libepoxy",
"mesa",
"qtbase"
],
"libimobiledevice": [
"solid"
],
"libkexiv2": [
"plasma-workspace"
],
"libmng": [
"qtsvg"
],
"libpciaccess": [
"libdrm"
],
"libpq": [
"qtbase"
],
"libproxy": [
"qtbase"
],
"libpulseaudio": [
"libcanberra",
"qtmultimedia"
],
"libqaccessibilityclient": [
"kwin"
],
"libsecret": [
"kwallet"
],
"libselinux": [
"qtbase"
],
"libsepol": [
"qtbase"
],
"libthai": [
"qtbase"
],
"libunwind": [
"mesa",
"qtmultimedia"
],
"libva-minimal": [
"mesa"
],
"libwacom": [
"libinput"
],
"libxcb-cursor": [
"qtbase"
],
"libxcb-image": [
"qtbase",
"xcb-util-cursor"
],
"libxcb-keysyms": [
"mesa",
"qtbase"
],
"libxcb-render-util": [
"qtbase",
"xcb-util-cursor"
],
"libxcb-util": [
"qtbase"
],
"libxcb-wm": [
"qtbase"
],
"libxcomposite": [
"qtbase"
],
"libxcrypt": [
"linux-pam",
"perl",
"util-linux"
],
"libxft": [
"plasma-workspace"
],
"libxrandr": [
"mesa",
"qtmultimedia",
"vulkan-loader"
],
"libxscrnsaver": [
"kidletime"
],
"libxshmfence": [
"mesa"
],
"libxxf86vm": [
"mesa"
],
"lksctp-tools": [
"qtbase"
],
"llvm": [
"mesa"
],
"lndir": [
"qtbase"
],
"lttng-ust": [
"qtbase"
],
"lua": [
"libinput"
],
"mariadb-connector-c": [
"qtbase"
],
"mariadb-connector-odbc": [
"qtbase"
],
"md4c": [
"qtbase"
],
"mesa-libgbm": [
"kwin",
"mesa",
"qtbase"
],
"milou": [
"kwin",
"plasma-workspace"
],
"mpdecimal": [
"python3"
],
"orc": [
"qtmultimedia"
],
"oxygen-icons": [
"frameworkintegration"
],
"packagekit-qt": [
"frameworkintegration",
"plasma-workspace"
],
"plasma-nano": [
"plasma-workspace"
],
"ply": [
"mesa"
],
"po4a": [
"util-linux"
],
"polkit-qt-1": [
"kauth",
"plasma-workspace"
],
"poppler-qt6": [
"kfilemetadata"
],
"psqlodbc": [
"qtbase"
],
"pycparser": [
"mesa"
],
"pyside6": [
"kcoreaddons",
"kguiaddons",
"knotifications",
"kstatusnotifieritem",
"kwidgetsaddons",
"kxmlgui"
],
"python3-3.14.6-env": [
"kcoreaddons",
"kguiaddons",
"knotifications",
"kstatusnotifieritem",
"kwidgetsaddons",
"kxmlgui",
"libinput"
],
"pyyaml": [
"mesa"
],
"qca": [
"kwallet"
],
"qqc2-breeze-style": [
"kscreenlocker",
"plasma-workspace"
],
"qtquick3d": [
"kwin",
"qtmultimedia"
],
"qtsensors": [
"kwin"
],
"qtserialport": [
"qtpositioning"
],
"qtvirtualkeyboard": [
"kwin",
"plasma-workspace"
],
"qtwebsockets": [
"qcoro"
],
"rhash": [
"cmake"
],
"rust-bindgen": [
"mesa"
],
"rust-cbindgen": [
"mesa"
],
"setxkbmap": [
"libxkbcommon"
],
"shared-mime-info": [
"kcoreaddons"
],
"shiboken6": [
"kcoreaddons",
"kguiaddons",
"knotifications",
"kstatusnotifieritem",
"kwidgetsaddons",
"kxmlgui"
],
"speech-dispatcher": [
"qtspeech"
],
"spirv-tools": [
"kdeclarative",
"mesa",
"plasma-workspace"
],
"sqlite-connector-odbc": [
"qtbase"
],
"syndication": [
"knewstuff"
],
"systemd": [
"libcanberra",
"qtbase"
],
"systemd-minimal": [
"dbus",
"mako"
],
"systemd-minimal-libs": [
"libinput",
"linux-pam",
"mesa",
"qtbase",
"util-linux"
],
"taglib": [
"kfilemetadata"
],
"unixodbc": [
"qtbase"
],
"v4l-utils": [
"libdisplay-info"
],
"valgrind": [
"libdrm",
"mesa"
],
"w3m": [
"linux-pam"
],
"wayland-scanner": [
"kscreenlocker",
"libxkbcommon",
"mako",
"mesa",
"qtbase",
"wayland",
"wayland-protocols"
],
"xkbcomp": [
"libxkbcommon"
],
"xmlto": [
"wayland"
],
"xvfb": [
"libxkbcommon"
],
"xwayland": [
"kwin"
]
},
"recetas_sembradas": 162,
"sin_attr_en_nixpkgs": [
"extra-cmake-modules",
"gettext-tiny",
"icu4c",
"kdecoration",
"layer-shell-qt",
"libkscreen",
"libksysguard",
"linux-headers",
"lm-sensors",
"make",
"markupsafe",
"packaging",
"perl-xml-parser",
"xcb-util",
"xcb-util-image",
"xcb-util-keysyms",
"xcb-util-renderutil",
"xcb-util-wm"
]
},
"escritorio-mirada": {
"candidatos": {
"SPIRV-LLVM-Translator": [
"mesa"
],
"audit": [
"linux-pam"
],
"autoconf-archive": [
"python3"
],
"bluez-headers": [
"python3"
],
"clang": [
"mesa"
],
"db": [
"linux-pam"
],
"dejagnu": [
"libffi"
],
"directx-headers": [
"mesa"
],
"docbook5": [
"linux-pam"
],
"docutils": [
"libdrm"
],
"doxygen": [
"libxkbcommon",
"wayland"
],
"gdbm": [
"python3"
],
"glslang": [
"mesa"
],
"graphviz": [
"wayland"
],
"help2man": [
"flex"
],
"libclc": [
"mesa"
],
"libglvnd": [
"mesa"
],
"libpciaccess": [
"libdrm"
],
"libunwind": [
"mesa"
],
"libva-minimal": [
"mesa"
],
"libwacom": [
"libinput"
],
"libxcb-keysyms": [
"mesa"
],
"libxcrypt": [
"linux-pam"
],
"libxrandr": [
"mesa"
],
"libxshmfence": [
"mesa"
],
"libxxf86vm": [
"mesa"
],
"llvm": [
"mesa"
],
"lua": [
"libinput"
],
"mesa-libgbm": [
"mesa"
],
"mpdecimal": [
"python3"
],
"ply": [
"mesa"
],
"pycparser": [
"mesa"
],
"python3-3.14.6-env": [
"libinput"
],
"pyyaml": [
"mesa"
],
"rust-bindgen": [
"mesa"
],
"rust-cbindgen": [
"mesa"
],
"setxkbmap": [
"libxkbcommon"
],
"spirv-tools": [
"mesa"
],
"systemd-minimal": [
"mako"
],
"systemd-minimal-libs": [
"libinput",
"linux-pam",
"mesa",
"seatd"
],
"valgrind": [
"libdrm",
"mesa"
],
"w3m": [
"linux-pam"
],
"wayland-scanner": [
"libxkbcommon",
"mako",
"mesa",
"wayland",
"wayland-protocols"
],
"xkbcomp": [
"libxkbcommon"
],
"xmlto": [
"wayland"
],
"xvfb": [
"libxkbcommon"
]
},
"recetas_sembradas": 40,
"sin_attr_en_nixpkgs": [
"make",
"markupsafe",
"mesa-swrast",
"mirada-compositor",
"mirada-ctl",
"mirada-greeter",
"packaging"
]
}
},
"schema": "hammer-seed-frontera/1"
}