hbox-docs/backend/lotes
Leopoldo Rodríguez a844fcd979 T42b en V5.6/V5.7 (HBox_PCB 8b0a23a): página, documentos de diseño v1.5, instrucciones de Leo, índice, bitácora y lote
- docs/hardware/t42b-hv24-28oct.md (+3 figuras): qué estaba mal en la clase HV24, las reglas F-01, los arreglos de
  cobre de cada tarjeta, cómo se probó (DRC, paquete, red de cada vía/pista/pad en el Gerber) y la revisión
  independiente en 2 rondas (NO-GO por una vía de costura que el paquete sacaba como /3V3; corregido; GO).
- diseno-v56/v57 v1.5 (§12 clases y reglas, §13 E-15/T42b hechos, §14 historial), victorias rápidas (§4 hecho),
  instrucciones para Leo v1.3 (los paquetes del piloto ya llevan T42b; commit 8b0a23a o posterior).
- hardware/index.md y bitácora: entrada del 28-oct. mkdocs.yml: Auditorías y pasadas. sync-docs.sh: MAP de T42b.
- backend/lotes/2026-10-28_t42b-hv24.json: t-v5-t42b-hv24 a Hecho, nota y descripción en t-v56-piloto, lección
  para t-v6-g1-paquete (gerber_netcheck.py).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx
2026-10-28 14:23:58 -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_inventario-sitios.json Inventario por sitio: pestañas, envíos en camino y kit por instalación 2026-10-23 13:33:51 -06:00
2026-10-23_revision-independiente.json Documentos de diseño V5.6/V5.7 v1.3 y v6 v1.1 (revisión independiente: ventana NTC ≈ +8…+60 °C, renglones del BOM, formato del §6); lote 2026-10-23_revision-independiente 2026-10-23 09:47:56 -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
2026-10-23_t44b-separacion.json T44b: 0.40 mm entre textos en V5.6/V5.7 (d19c832); documentos de diseño V5.6/V5.7 v1.2 y T44 v1.2; lote 2026-10-23_t44b-separacion 2026-10-23 09:12:50 -06:00
2026-10-23_usuarios-campo.json Lote 2026-10-23_usuarios-campo como se aplicó: el espejo del cotizador ya existe; falta hacerlo privado 2026-10-23 14:52:26 -06:00
2026-10-23_usuarios-efrain-tania.json Cuentas de Efraín y Tania (administración y dirección, Querétaro) 2026-10-23 15:04:18 -06:00
2026-10-26_costeo-jlc.json 26-oct: revisión de la v6 después del fin de semana (D-26-1, regresión de la toma VIN de R80) y costeo JLC e importación (de la sesión del costeo, que estaba sin commit); lote 2026-10-26_v6-revision-fin-de-semana 2026-10-26 22:19:51 -06:00
2026-10-26_juntas-y-compras-hbox.json Lote 2026-10-26_juntas-y-compras-hbox: standup sin notas y la hoja de compras contra el paquete LFP-HT 26650 / NTC B3380 2026-10-26 22:43:13 -06:00
2026-10-26_revision-pedido-v56-v57.json 26-oct (noche): revisión independiente del pedido de V5.6/V5.7 (piloto NO-GO hasta A1–A6) 2026-10-26 23:52:56 -06:00
2026-10-26_v6-revision-fin-de-semana.json 26-oct: revisión de la v6 después del fin de semana (D-26-1, regresión de la toma VIN de R80) y costeo JLC e importación (de la sesión del costeo, que estaba sin commit); lote 2026-10-26_v6-revision-fin-de-semana 2026-10-26 22:19:51 -06:00
2026-10-26_v6-tareas-michelle.json Lote 2026-10-26_v6-tareas-michelle: tareas de Michelle en la v6 después de la revisión del 26-oct 2026-10-26 22:37:40 -06:00
2026-10-27_ardusimple-pagos-actas-eth.json Lote 2026-10-27_ardusimple-pagos-actas-eth: ArduSimple bloqueado por pagos, actas V5.6/V5.7 aprobadas, build 0.7.0-pre-eth 2026-10-27 20:58:26 -06:00
2026-10-27_backlog-equipo.json 27-oct: backlog del equipo y D-27-6 (proceso) 2026-10-27 21:15:57 -06:00
2026-10-27_costeo-al-dia.json Lote 2026-10-27_costeo-al-dia: faltantes de JLC al día con T47 (solo RET6 y L3 para el volumen) 2026-10-27 18:23:07 -06:00
2026-10-27_decisiones-leo-1306.json 27-oct, 13:06: decisiones de Leo (D-26-1 a, D-22-4 b con T41, FOTA sí, 60 v6); instrucciones para Michelle v1.1 y para Leo v1.1; lote 2026-10-27_decisiones-leo-1306 2026-10-27 13:20:15 -06:00
2026-10-27_entrada-incidencias-agentes.json 27-oct: página de entrada, incidencias, standup, vigía y agente diario; integración del cotizador 2026-10-27 14:24:06 -06:00
2026-10-27_fw070pre-banco-ardusimple.json Lote 2026-10-27_fw070pre-banco-ardusimple: 0.7.0-pre en Descargas (prueba), procedimientos y actas V5.6/V5.7, faltan ArduSimple 2026-10-27 20:33:16 -06:00
2026-10-27_piloto-listo-una-sim.json 27-oct: piloto V5.6/V5.7 listo para pedir (T47), v6 con una sola SIM (T48) y sin sondas NTC externas (T49); instrucciones para Leo y Michelle; lote 2026-10-27_piloto-listo-una-sim 2026-10-27 12:00:11 -06:00
2026-10-27_proceso-leo.json 27-oct: backlog del equipo y D-27-6 (proceso) 2026-10-27 21:15:57 -06:00
2026-10-27_t45-lista.json Lote 2026-10-27_t45-lista: título de t-v6-c-modem sin la RF LTE (pasa a T45b) 2026-10-27 14:25:55 -06:00
2026-10-27_t46-cpl.json 27-oct: T46 hecho (CPL de V5.6/V5.7 corregido en KiCad, 51dc51b): revisión, documentos de diseño, auditoría final, índice y bitácora; lote 2026-10-27_t46-cpl 2026-10-27 10:54:01 -06:00
2026-10-28_actas-galeria-documentos.json Actas: fotos de la galería y documentos terminados (PDF, Word, Excel) 2026-10-28 12:18:50 -06:00
2026-10-28_junta-direccion.json Compras: OC del cotizador en el centro de mando (fase 1) + flujo del 28-oct + 33 documentos publicados 2026-10-28 13:01:10 -06:00
2026-10-28_reabrir-v6.json Lote 2026-10-28_reabrir-v6: se reabren C, E, F-G-H1, excluir-margen y el pendiente general de la v6 (Leo, 12:50); la fuente del texto se queda por ahora 2026-10-28 12:51:48 -06:00
2026-10-28_restaurar-standup-leo.json Lote 2026-10-28_restaurar-standup-leo: 4 cambios de Leo del standup (10:30) que una página vieja deshizo a las 10:33 (INC-0005) 2026-10-28 12:48:11 -06:00
2026-10-28_revision-ingenieria-tablero.json Compras: OC del cotizador en el centro de mando (fase 1) + flujo del 28-oct + 33 documentos publicados 2026-10-28 13:01:10 -06:00
2026-10-28_t42b-hv24.json T42b en V5.6/V5.7 (HBox_PCB 8b0a23a): página, documentos de diseño v1.5, instrucciones de Leo, índice, bitácora y lote 2026-10-28 14:23:58 -06:00
2026-10-28_t45-michelle-a-mano.json Lote 2026-10-28_t45-michelle-a-mano: T45 abortó (Michelle lo hizo casi todo a mano); faltan CLN Kelvin, EP de U7 y limpieza 2026-10-28 10:41:43 -06:00
2026-10-28_t45r-aplicado.json Lote 2026-10-28_t45r-aplicado: T45 terminado con T45r (HBox_PCB fb95d15) e instrucciones de Michelle v1.3 2026-10-28 12:38:14 -06:00
2026-10-28_v6-en-curso.json Lote 2026-10-28_v6-en-curso: los 10 pendientes de Michelle en la v6 a En curso (Leo, 12:52) 2026-10-28 12:53:38 -06:00
README.md Pendientes: campeón por pendiente, flechas ← →, franja para soltar y columna en el detalle 2026-10-28 08:38:56 -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, campeon (27-oct: uno de los responsables; es quien mueve el pendiente entre columnas), 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.