← スキル一覧に戻る

business-logistics
by F4TB0Yz
⭐ 0🍴 0📅 2026年1月25日
SKILL.md
name: business-logistics description: Especialista en lógica de negocio de logística. Define reglas, flujos de trabajo y validaciones específicas de la app de delivery para Fusagasugá.
Responsabilidad Única
Lógica de negocio y reglas específicas de la aplicación de logística. NO incluye stack técnico, arquitectura, UI/UX, ni detalles de implementación.
Contexto de Negocio
Región de Operación
- Ciudad: Fusagasugá, Cundinamarca, Colombia
- Área de cobertura: Zona urbana y rural cercana
- Coordenadas aproximadas: 4.3369° N, 74.3636° W
Modelo de Operación
- Repartidores independientes con rutas diarias asignadas
- Múltiples paquetes por ruta (sin límite)
- Operación offline-first (conexión intermitente)
- Confirmación en tiempo real cuando hay conexión
Gestión de Rutas
Estados de Ruta
- Pending: Ruta asignada, no iniciada
- Active: Ruta en progreso
- Completed: Todos los paquetes entregados o gestionados
- Cancelled: Ruta cancelada (excepcional)
Reglas de Negocio - Rutas
- Una ruta puede tener N paquetes (sin límite superior)
- Un repartidor solo puede tener 1 ruta activa a la vez
- No se puede iniciar nueva ruta si hay una activa
- La ruta se completa automáticamente cuando todos los paquetes están en estado final (delivered/failed/returned)
- Fecha de ruta: Solo rutas del día actual pueden ser activadas
Flujo de Trabajo - Ruta
- Repartidor ve rutas asignadas del día
- Selecciona ruta y la activa (estado → Active)
- Sistema muestra paquetes ordenados por prioridad/ubicación
- Repartidor gestiona paquetes uno por uno
- Al completar todos los paquetes, ruta → Completed
Gestión de Paquetes
Estados de Paquete
- Pending: Paquete en bodega, no asignado
- In Transit: Asignado a ruta activa
- Out for Delivery: Repartidor en camino a dirección
- Delivered: Entregado exitosamente
- Failed: Intento fallido (cliente ausente, dirección incorrecta, etc.)
- Returned: Devuelto a bodega
Reglas de Negocio - Paquetes
- Tracking Number: Único, alfanumérico, 8-20 caracteres
- Dirección: Obligatoria, debe ser validable en Fusagasugá
- Teléfono: Obligatorio, formato colombiano (10 dígitos)
- Peso: Opcional, en kilogramos
- Notas: Opcional, máximo 500 caracteres
- Foto de entrega: Obligatoria para estado Delivered
- Firma/Nombre: Obligatorio para estado Delivered
- Razón de fallo: Obligatoria para estado Failed
Transiciones de Estado Válidas
Pending → In Transit (al asignar a ruta)
In Transit → Out for Delivery (repartidor en camino)
Out for Delivery → Delivered (entrega exitosa)
Out for Delivery → Failed (intento fallido)
Failed → Out for Delivery (reintento)
Failed → Returned (después de 3 intentos)
In Transit → Returned (cancelación)
Validaciones de Negocio
- No se puede marcar como Delivered sin foto
- No se puede marcar como Failed sin razón
- Máximo 3 intentos de entrega antes de Returned
- No se puede modificar paquete en estado Delivered/Returned
Scanner Inteligente (QR/Barcode)
Propósito
Captura rápida de tracking numbers para agregar paquetes a ruta.
Formatos Soportados
- QR Code: Tracking number codificado
- Code 128: Estándar de logística
- Code 39: Alternativa común
- EAN-13: Para paquetes con código de barras comercial
Lógica de Negocio - Scanner
- Abrir cámara en modo scanner
- Detectar código automáticamente
- Validar formato de tracking number
- Buscar paquete en base de datos local
- Si existe: Mostrar detalles y permitir agregar a ruta
- Si no existe: Permitir entrada manual o crear nuevo paquete
Fallback Manual
- Si código no escanea (dañado, borroso), permitir entrada manual
- Validar formato mientras se escribe
- Sugerir autocompletado si hay coincidencias parciales
Reglas de Validación
- Tracking number debe ser único en el sistema
- No se puede agregar mismo paquete dos veces a una ruta
- Paquete debe estar en estado Pending o In Transit para agregarse
Confirmación de Entregas
Entrega Exitosa (Delivered)
Datos requeridos:
- Foto de entrega: Captura de paquete en ubicación
- Nombre de quien recibe: Texto libre, mínimo 3 caracteres
- Firma digital: Opcional pero recomendada
- Coordenadas GPS: Automáticas, para verificación
- Timestamp: Automático
Flujo:
- Repartidor llega a dirección
- Presiona "Confirmar Entrega"
- Toma foto del paquete
- Ingresa nombre de quien recibe
- Opcionalmente captura firma
- Presiona botón "Hold to Confirm" (3 segundos)
- Sistema guarda localmente y sincroniza cuando hay conexión
Entrega Fallida (Failed)
Datos requeridos:
- Razón de fallo: Selección de lista predefinida
- Foto de evidencia: Opcional pero recomendada
- Notas adicionales: Opcional
- Coordenadas GPS: Automáticas
- Timestamp: Automático
Razones de Fallo Predefinidas:
- Cliente ausente
- Dirección incorrecta
- Dirección incompleta
- Cliente rechaza paquete
- Zona insegura
- Otro (requiere nota)
Flujo:
- Repartidor intenta entrega
- Presiona "Reportar Fallo"
- Selecciona razón de fallo
- Opcionalmente toma foto de evidencia
- Opcionalmente agrega notas
- Confirma fallo
- Sistema incrementa contador de intentos
- Si intentos < 3: Paquete vuelve a In Transit
- Si intentos >= 3: Paquete → Returned
Botones de Seguridad (Safety Actions)
Hold to Confirm
Para acciones críticas e irreversibles:
- Confirmar entrega
- Marcar como fallida
- Completar ruta
Comportamiento:
- Presionar y mantener por 3 segundos
- Mostrar progreso circular visual
- Feedback háptico al inicio y al completar
- Si se suelta antes de 3s, cancelar acción
Propósito
Prevenir confirmaciones accidentales que afecten métricas de negocio.
Priorización de Paquetes
Criterios de Ordenamiento
- Prioridad manual: Si fue marcado como urgente
- Intentos previos: Paquetes con intentos fallidos primero
- Proximidad geográfica: Más cercano al punto actual
- Hora de compromiso: Si tiene ventana de entrega específica
Reglas de Negocio
- Paquetes urgentes siempre al inicio de la lista
- Después de fallo, paquete sube en prioridad
- Repartidor puede reordenar manualmente si es necesario
Notificaciones al Cliente (Futuro)
Eventos que Generan Notificación
- Paquete asignado a ruta (In Transit)
- Repartidor en camino (Out for Delivery)
- Paquete entregado (Delivered)
- Intento fallido (Failed)
Nota: Implementación futura, definir canales (SMS, WhatsApp, Push).
Métricas de Negocio
KPIs del Repartidor
- Tasa de entrega exitosa: Delivered / Total paquetes
- Promedio de intentos: Total intentos / Total paquetes
- Paquetes por hora: Entregas / Horas trabajadas
- Tiempo promedio por entrega: Desde Out for Delivery hasta Delivered
Reglas de Cálculo
- Solo contar paquetes en estado final (Delivered/Returned)
- Excluir paquetes cancelados de métricas
- Actualizar métricas en tiempo real cuando hay conexión
Validaciones de Datos
Tracking Number
bool isValidTrackingNumber(String value) {
// Alfanumérico, 8-20 caracteres, sin espacios
return RegExp(r'^[A-Z0-9]{8,20}$').hasMatch(value.toUpperCase());
}
Teléfono Colombia
bool isValidColombianPhone(String value) {
// 10 dígitos, puede empezar con 3 (móvil) o no
return RegExp(r'^\d{10}$').hasMatch(value);
}
Dirección Fusagasugá
bool isValidAddress(String value) {
// Mínimo 10 caracteres, debe contener número
return value.length >= 10 && RegExp(r'\d').hasMatch(value);
}
Reglas de Sincronización (Lógica de Negocio)
Prioridad de Sincronización
- Alta: Confirmaciones de entrega (Delivered/Failed)
- Media: Cambios de estado de paquetes
- Baja: Actualización de datos de ruta
Conflictos
- Mismo paquete editado offline y online: Última modificación gana
- Ruta completada offline pero modificada online: Notificar al repartidor
- Paquete eliminado online pero editado offline: Marcar como conflicto, requiere resolución manual
Ejemplo de Flujo Completo
Día del Repartidor
-
Inicio de jornada:
- Abrir app
- Ver rutas asignadas del día
- Seleccionar ruta y activarla
-
Durante la ruta:
- Ver lista de paquetes ordenados
- Navegar al primer paquete
- Intentar entrega
- Si exitosa: Tomar foto, nombre, confirmar
- Si fallida: Seleccionar razón, agregar notas
- Repetir con siguiente paquete
-
Fin de jornada:
- Completar todos los paquetes
- Ruta se marca como Completed automáticamente
- Sincronizar datos cuando haya WiFi
- Revisar métricas del día
スコア
総合スコア
50/100
リポジトリの品質指標に基づく評価
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
レビュー
💬
レビュー機能は近日公開予定です