hbox-docs/backend/lotes
2026-10-23 09:01:37 -06:00
..
2026-10-21_pasada-6.json Sitio: v6 rev. 1.1 (T38 y propuesta α), plan v6 rev. 1.3, avisos de biblioteca en V5.6/V5.7, lote 2026-10-21_t38-v6 2026-10-22 09:43:20 -06:00
2026-10-21_t38-v6.json Sitio: v6 rev. 1.1 (T38 y propuesta α), plan v6 rev. 1.3, avisos de biblioteca en V5.6/V5.7, lote 2026-10-21_t38-v6 2026-10-22 09:43:20 -06:00
2026-10-22_auditoria-final.json Modo crisis: semáforo, sitio por pendiente, juntas; lote de crisis 2026-10-22 13:59:27 -06:00
2026-10-22_crisis.json Modo crisis: semáforo, sitio por pendiente, juntas; lote de crisis 2026-10-22 13:59:27 -06:00
2026-10-22_fota-4g.json FOTA por 4G: factibilidad por tarjeta (D-22-6) + lote 2026-10-22 16:24:23 -06:00
2026-10-22_fota-equipo.json FOTA: qué hace falta además del código + lote de equipo 2026-10-22 17:06:50 -06:00
2026-10-22_instalaciones.json Instalaciones por sitio, acta Prueba en sitio y lote 2026-10-22_instalaciones 2026-10-22 15:58:55 -06:00
2026-10-22_junta-instalacion.json Junta del 22-oct: responsables por sitio, piloto tras los quick wins, standup diario y lote 2026-10-22 16:34:39 -06:00
2026-10-22_t39-v6.json Modo crisis: semáforo, sitio por pendiente, juntas; lote de crisis 2026-10-22 13:59:27 -06:00
2026-10-22_t40-v6.json Instalaciones por sitio, acta Prueba en sitio y lote 2026-10-22_instalaciones 2026-10-22 15:58:55 -06:00
2026-10-22_t42a-v5.json FOTA: qué hace falta además del código + lote de equipo 2026-10-22 17:06:50 -06:00
2026-10-22_t43-designadores.json T43: designadores en orden en V5.6, V5.7 y v6 (D-22-8) + D-22-9; T42a aplicado 2026-10-22 18:20:46 -06:00
2026-10-23_t44-documentos-diseno.json 23-oct: documentos de diseño V5.6/V5.7/v6 (página + PDF), T44 (serigrafía 0.8 mm, D-22-9 b) y páginas sincronizadas con los designadores de T43; lote 2026-10-23_t44-documentos-diseno 2026-10-23 09:01:37 -06:00
README.md Modo crisis: semáforo, sitio por pendiente, juntas; lote de crisis 2026-10-22 13:59:27 -06:00

Lotes del tablero

Un lote es la lista de cambios al tablero de pendientes que deja una tarea terminada: qué se cerró, qué se abrió, qué se movió y por qué. Lo escribe Claude (que no llega al servidor) y lo aplica Leo:

./scripts/tablero.sh revisar     # qué haría cada lote nuevo, contra el tablero de ahora; no escribe nada
./scripts/tablero.sh aplicar     # lo aplica y baja la foto nueva a _estado/

backend/tablero.py hace el trabajo en el servidor: llama al mismo backend que el sitio (127.0.0.1:8081) con el usuario del campo autor, así que cada cambio pasa por las mismas validaciones y queda en el historial del pendiente con su autor y su nota. En la página de inicio se ve en Actividad como cualquier otro cambio («Claude terminó …»).

Reglas

  1. Un lote por tarea terminada, con nombre AAAA-MM-DD_tema.json igual a su campo lote.
  2. Un lote aplicado no se edita. Si algo salió mal, se escribe otro lote. tablero.py se niega a seguir si un cambio ya aplicado no es igual al del archivo.
  3. Nunca se reaplica. Lo aplicado se anota en /srv/projects/drogheda/lotes-aplicados.json; si alguien deshace un cambio a mano, el lote no lo vuelve a hacer.
  4. No se toca lo que ya está en Hecho, salvo que el cambio lo diga con si_estado.
  5. Cada cambio a un pendiente existente lleva nota: el porqué, en una o dos frases (≤ 300 caracteres; si es más larga, se recorta a 300 y revisar lo avisa). Es lo que la gente lee en el historial.
  6. Un lote con errores de formato se salta (y revisar dice por qué); los demás lotes sí se aplican.
  7. Se busca antes de crear. crear usa un id fijo (si ya existe, se salta) y si_no_hay evita duplicar un pendiente que alguien ya abrió a mano con otro id.
  8. Leo revisa antes de aplicar. revisar muestra cada cambio contra el tablero real; lo que no cuadra se salta y se dice por qué (no existe, ya está en Hecho, el título coincide con varios…).

Formato

{
  "lote": "2026-10-21_pasada-6",
  "autor": "claude",
  "motivo": "Pasada 6 de V5.6 y V5.7 hecha por Claude: cobre listo para Gerber",
  "fuente": "/hardware/v56-v57-auditoria-21oct/#6-pasada-6-hecha-por-claude-t34-a-t37",
  "cambios": [
    { "id": "t-v56-pasada-2",
      "poner": { "estado": "hecho" },
      "nota": "Cerrado: le siguieron las pasadas 3 a 6." },

    { "buscar": "pasada 3", "todos": true,
      "poner": { "estado": "hecho" },
      "nota": "Cerrado: la pasada 6 dejó el cobre listo para Gerber." },

    { "buscar": ["revisión pad a pad", "-v6"],
      "si_estado": ["por-hacer", "bloqueado"],
      "poner": { "estado": "en-curso", "responsable": "leo, claude", "fecha_limite": "2026-10-22" },
      "nota": "Revisión hecha; falta el paquete de fabricación." },

    { "crear": { "id": "d-21-2-c149-c150", "titulo": "D-21-2: ¿C149/C150 se quedan?",
                 "pista": "ingenieria", "estado": "por-hacer", "responsable": "leo",
                 "version_tarjeta": "V5.7", "fecha_limite": "2026-10-22",
                 "descripcion": "…", "enlaces": [{ "titulo": "Por qué", "url": "/hardware/…" }],
                 "etiquetas": ["decisión"] },
      "si_no_hay": ["D-21-2"] }
  ]
}
Llave Dónde Qué hace
lote, autor, motivo lote Obligatorias. autor es el usuario con el que se escribe (claude; Leo usa leo). fuente: liga opcional al documento que respalda el lote
id / buscar cambio El pendiente: por su id, o por un texto de su título, sin importar acentos, mayúsculas ni signos. buscar también puede ser una lista: el título debe tener todos los textos y "-texto" quiere decir «que no lo tenga» (["piloto", "v5.6", "-banco"]). Tiene que coincidir con uno solo, primero entre los abiertos
todos cambio Con buscar: aplica el cambio a todos los abiertos que coincidan (por ejemplo, cerrar todas las «pasada 3»)
si_estado cambio Solo aplica si el pendiente está en uno de estos estados. Por omisión: por hacer, en curso o bloqueado
poner cambio Los campos que cambian: titulo, descripcion, pista, estado, responsable, fecha_limite, enlaces, etiquetas, bloqueada_por, version_tarjeta. Lo que ya tiene ese valor no se manda
nota cambio Obligatoria. Comentario en el historial; sin poner, el cambio es solo el comentario
crear cambio Pendiente nuevo, con los mismos campos que el formulario del sitio más un id fijo (t-…, d-…): titulo, pista, responsable obligatorios
si_no_hay cambio Con crear: no lo crea si hay un pendiente abierto cuyo título contenga alguno de estos textos

Valores: pista ∈ ingenieria · produccion · mecanica · compras · campo · gestion (desde el 22-oct); estado ∈ por-hacer · en-curso · bloqueado · hecho; version_tarjeta ∈ V5.5 · V5.6 · V5.7 · v6 · —; responsable, ids del Equipo separados por coma; fecha_limite AAAA-MM-DD; sitios (desde el 22-oct) = lista de icave (Veracruz) · timsa (Manzanillo) · eit (Ensenada) · lzc (LCT) · qro (Querétaro: fabricación e ingeniería) — un pendiente puede tener varios; sin sitios, cuenta como Querétaro. Con un backend sin reiniciar, revisar marca los cambios con sitios como inválidos.

La foto

./scripts/tablero.sh foto (y cada ./scripts/deploy.sh) baja el tablero a _estado/ en la Mac: tablero.json (pendientes con su historial, enfoque de la semana, actividad de 14 días y lotes aplicados) y tablero.md (lo mismo para leer). _estado/ no va a git. Claude la lee al empezar una tarea para saber qué hay, quién lo tiene y qué ids usar.