# tandas/ — ARCHIVO de campañas pasadas

**Estos 55 ficheros son historia, no la cola de trabajo.** Se conservan porque documentan qué se
importó y por qué en cada campaña (el `git log` de cada uno es la crónica del frente Go, del
base-system, del stack GUI). No se borran. Pero **el trabajo nuevo ya no sale de acá**.

## Por qué dejaron de ser la cola

Una tanda era una lista plana escrita a mano. Eso tenía tres problemas que no se veían mientras
funcionaba:

1. **No decía el orden.** 40 nombres sin aristas: cuál primero, qué destraba qué, qué se puede
   paralelizar — todo quedaba en la cabeza del que construía.
2. **No decía cuánto faltaba.** Una tanda terminada no significaba una imagen completa; nadie sabía
   la distancia al objetivo porque el objetivo no estaba escrito en ningún lado.
3. **Había que autorarla.** El worker quedaba idle esperando que un humano escribiera la próxima
   lista — el problema que [[vps-nunca-idle]] intentaba parchear a mano.

## De dónde sale el trabajo ahora

Todo se deriva del grafo de estado. El flujo completo, y qué comando corre cada paso:

```
docs/state/targets.toml          ← QUÉ debe tener la distro (perfiles = imágenes, sólo RAÍCES)
        │  scripts/build-state.py
        ▼
docs/state/build-state.json      ← QUÉ hay, qué falta (`wanted`), qué depende de qué
        │  scripts/drenar.py --todos
        ▼
docs/state/drenaje.json          ← EN QUÉ ORDEN: ondas topológicas por imagen
        │
        ▼  el worker muele la onda 1:  scripts/farm/campana-deuda.sh <recetas>
```

Y para descubrir lo que todavía no está declarado:

```
scripts/seed-graph.py --frontera <perfil>   → docs/state/seed-frontera.json   (candidatos a hueco)
scripts/triaje.py                           → docs/state/frontera-triaje.toml (veredicto humano)
scripts/triaje.py --aplicar                 → raíces nuevas para targets.toml + descarte del sembrador
```

El triaje es el único paso que **requiere un humano**: decidir si un candidato es hueco real, dep
opcional que no queremos, o andamiaje de nixpkgs. Todo lo demás se deriva.

## Qué sigue vivo acá

- `import-batch.sh -f tandas/<x>.txt` sigue funcionando para importar una lista puntual a mano. Es
  la vía de escape, no el camino principal.
- Los subdirectorios `needs-review-*` y `staged-fallidos*` son **resultados**, no colas: recetas que
  fallaron un smoke-test y esperan diagnóstico.
