El contenedor no se elige ni se crea: se autora cargándolo. La primera caja lo da a luz
—hereda su destino—; su identidad la presta el acero, leído al sellar, nunca tecleado.
El operador deja de pensar en contenedores: toca cajas reales y la pantalla se vuelve
una ventana al contenedor que se llena. Nada que elegir, nada que configurar, nada que escribir.
Mismo hardware — iData T1 Pro + Q3000 · la reducción llevada al hueso Las otras dos · V1 planificada /mogos/salida · V2 consolidación /mogos/salida-consolidacion
AcercaNaceLlenaApartaSellaListo
·Lo que Ive borraría
La V2 todavía hacía elegir un contenedor de una lista — la comodidad de la base de datos filtrándose al mundo del operador. Aquí no hay lista, ni botón “crear”, ni ficha, ni selector de destino, ni precinto tecleado. Queda el bucle más puro: una caja → encuentra su lugar → el nivel sube → la sellas. La pantalla deja de ser un tablero y se vuelve el objeto.
1Comienzola página en blanco
08:1884%
al día
Acerca la primera caja
El contenedor nace de lo que cargas primero. Sin elegir, sin crear.
Q3000 · listo
La página en blanco. Salida no abre en un menú: abre en una invitación. El operador llega al muelle con una caja y la app no le pide nada — solo esperar el primer gesto. La emergencia del contenedor empieza en este vacío deliberado: nada existe hasta que la realidad actúa.
2Nace↦ la primera caja lo crea
08:1884%
Q3000 · leyó
Marielena Rodríguez
Caracas · Marítimo
Nace un contenedor a Caracas.
hereda el destino de la primera caja · su número de acero se leerá al sellar
Empezar a llenar
El momento de la creación, invisible y a la vez inevitable. No “creas un contenedor” — pones la primera caja y existe. El destino no se elige: lo dijo la caja. Una sola afirmación tranquila confirma a dónde va este acero, y se acabó el ceremonial. De aquí en adelante, solo llenar.
3La ventana↦ la pantalla es el contenedor
09:0671%
Q3000
Caracas · Marítimo
96
cajas a bordo
21.6 de 28 m³ · 77%
Barrer para sincronizar
El objeto, no un gráfico. La pantalla se inunda: es el contenedor visto por dentro. El nivel sube con cada caja, las cajas se apilan en el cristal, y un solo número callado —96— dice cuántas van. El volumen se ve, no se lee. La pistola solo susurra al fondo: barre cuando quieras, para ponerte al día.
4Otra ruta↦ la única fricción
09:3171%
Q3000
No es de este contenedor
Esta caja va a Panamá.
(4)-PTY-8830-1
Este contenedor nació a Caracas. Esta caja va a Panamá — no entra aquí.
Apartarsu contenedor a Panamá nace cuando la cargues allá
Corregir destinosi en verdad va a Caracas
La única vez que la app habla. Un contenedor sabe a dónde va —lo heredó de su primera caja—, así que rechaza con calma lo que no es suyo. Un contenedor a la vez: la caja de Panamá se aparta, y su propio contenedor nacerá cuando el operador empiece a cargar hacia allá. Nada se mezcla, nada se pierde.
5Sella↦ leer, nunca teclear
10:5261%
al día
Lleno · 97%
El manifiesto ya existe
121 cajas · Caracas
27.2 de 28 m³ · 23 órdenes · 2 420 kg
Número del contenedorMSKU 224418-8leído
Precinto0098822leído
Sellar y despachar
Cero teclado. El acero trae su número; el sello, el suyo — los dos se leen con la cámara. El operador no transcribe nada: la identidad del contenedor la presta el objeto físico. Y el manifiesto no se “genera” como un acto aparte — ya existía, hecho de cada caja que entró. Solo se sella.
6Listo↦ despachado
10:5361%
en cola
Despachado
MSKU 224418-8 · Caracas · Marítimo
121
a bordo
97%
lleno
23
órdenes
Manifiesto guardado · subirá al volver la red
La próxima caja que escanees abre el siguiente contenedor.
Listo
No hay “abrir otro”. Ni siquiera ese botón sobrevive: el siguiente contenedor nace solo, con la próxima caja. El operador nunca vuelve a un menú. Termina uno, toma la siguiente caja, y el ciclo se reinicia sin que nadie lo declare. El trabajo es el flujo; la app, su sombra.
±Estados que el diseño contempla
Aun en su forma más reducida, el diseño sostiene los bordes — sin pedir más atención de la necesaria.
·
Pistola desconectada
El nivel se congela; sube el chip Q3000 · reconecta. Lo cargado vive en SQLite — el contenedor en curso no se pierde.
·
Reanudar el contenedor
Si muere la batería, al volver el contenedor abierto sigue en su nivel: 77%, Caracas. No renace — continúa.
·
Sin tag de acero
Si el contenedor no tiene número legible, se genera uno provisional (CNTR-tmp) y USA lo concilia. El almacén nunca espera.
·
Tag sin dueño
Un EPC que no resuelve a ninguna orden es desconocido: se aparta y se reporta, no entra al contenedor.
·
Sobrepeso antes que volumen
Si el peso llega al límite antes que el volumen, el número cambia a kg y avisa: cierra por peso.
·
Caja dañada
Una caja rota se marca dañada; no suma al nivel y se reporta — no se cuela como cargada.
Tres formas, una escalera de reducción
No son tres productos rivales: son tres grados de la misma idea. Cada peldaño le quita una suposición al sistema y se la devuelve a la realidad física. La V3 es el extremo — el que Ive perseguiría: nada existe hasta que una caja real lo crea.
V1 · planificada
Verifica un plan
El manifiesto y el contenedor ya existen. El operador reconcilia la realidad contra la lista. /mogos/salida
V2 · consolidación
Llena un contenedor
El contenedor existe pero vacío; el manifiesto nace al cerrar. /mogos/salida-consolidacion
V3 · emergente
Lo autora cargando
Ni el contenedor existe: la primera caja lo crea, el acero le da identidad, la pantalla es el objeto. /mogos/salida-emergente
La interfaz desapareceNada que elegir, crear, configurar o teclear. El gesto físico manda; la app es su sombra.
El objeto, no el tableroLa pantalla se vuelve el contenedor que se llena. El volumen se ve, no se grafica.
La identidad la presta lo físicoEl destino lo dice la caja; el número, el acero; el cierre, el sello. Todo se lee.
InevitableEn cada instante hay exactamente una cosa que hacer, y se siente como la única posible.
BLa ingeniería — el contenedor append-only
La V3 reusa todo de la V2 —el módulo idata-rfid, el EPC de recepción, el medidor por CBM, la cola offline-first— y le quita una sola cosa: el contenedor deja de pre-existir. Se crea en el dispositivo con la primera caja (append-only puro), y su número de acero se captura al sellar. China produce hasta el contenedor; nada baja de USA.
El contenedor emergente — creado en el dispositivo
nuevo
openContainer(firstBox)la primera caja lo crea
apps/warehouse/hooks/shipment/use-container-fill.tsx — al primer onTagRead sin contenedor abierto: crea { localId, destino: order.destino, capacityM3, status:'abierto' } en SQLite local (synced:false)
Identidad del aceroleída, no tecleada
al sellar: cámara lee el nº del contenedor (OCR/QR) y el precinto → steelId + sealNumber; si no hay nº legible, localId provisional y USA concilia
Una caja → un destinoun contenedor a la vez
order.destino ≠ container.destino → offRoute (apartar); su propio contenedor nace cuando el operador cargue hacia ese destino
la altura del líquido = fillPct (de capacity.ts); el número = box count; render nativo con Reanimated para que el nivel suba fluido al cargar/barrer — la app es una ventana, no un dashboard
Sin rutas de menúel flujo no vuelve atrás
app/load.tsx arranca en “Comienzo”; al sellar (app/sealed.tsx) el siguiente escaneo reabre load.tsx con un contenedor nuevo — sin pantalla de selección
La tercera hermana. Esta es la V3 · Emergente (design.cresco.so/mogos/salida-emergente), la más reducida. Junto a V1 · Planificada y V2 · Consolidación forman la escalera completa — del “verifica un plan” al “nace al cargarlo”. Mismo hogar, mismo hardware, mismo módulo idata-rfid. Tú eliges en qué peldaño vive el producto.