Saltar a contenido

Historias de usuario

125 historias trazando a requisitos · 80 completadas. Fuente: stories/*.md (ADR 0007). El estado se deriva de los criterios de aceptación; el Issue de GitHub es un espejo generado.

INT-05 — Arquitectura de sistema: malla de nodos, telemetría y distribución de datos (13)

Historia Título Progreso Issue
INT-05.1 Topología de nodos y roles (HQ / Edge / Mirror) ✅ 8/8 #13
INT-05.10 Failover HQ→Mirror (detección, promoción, re-apuntado y failback) 🟡 0/5 #25
INT-05.11 Servicios compartidos de malla (proveedor/consumidor y licencias por servicio) ✅ 5/5 #285
INT-05.2 Stack del nodo (Docker: Mongo, MQTT, Vault, API, front, sync + DNS/VPN/GIS) ✅ 5/5 #14
INT-05.3 Bus MQTT: telemetría de drones 🟡 5/6 #15
INT-05.4 Bus MQTT: eventos de dominio (refresco de clientes en vivo) 🟡 5/6 #16
INT-05.5 Sincronización de datos entre nodos (upstream básico) ✅ 4/4 #17
INT-05.5b Sincronización entre nodos: resiliencia (cola offline, conflictos, mirror) ✅ 4/4 #18
INT-05.6 Relay de telemetría al HQ (visión de flota desde el mando) ✅ 6/6 #19
INT-05.7 Usuarios, roles y permisos (RBAC) ✅ 5/5 #20
INT-05.8 Secretos del nodo con Vault (generados por despliegue) ✅ 5/5 #21
INT-05.8b Arranque sellado del nodo (Vault sealing con clave física) ✅ 3/3 #22
INT-05.9 Filtrado de telemetría por latencia (acumulativo hacia la raíz) 🟡 4/5 #23

INT-06 — Geofencing y contención del volumen de operación (3)

Historia Título Progreso Issue
INT-06.1 Geofence: imposición desde la GCS — aviso predictivo y retención dentro del volumen 🟡 4/5 #91
INT-06.2 Geofence: fence de salvaguarda en el autopiloto (contención sin C2) 🟡 0/6 #92
INT-06.3 Geofence: asistencia al pilotaje manual por niveles (muro con deslizamiento y toma de control) 🟡 0/9 #230

INT-07 — Fail-safes de energía y enlace (retorno por batería y pérdida de C2) (2)

Historia Título Progreso Issue
INT-07.1 Fail-safe de energía: retorno por batería con perfil configurable 🟡 0/5 #93
INT-07.2 Fail-safe de enlace: pérdida de C2 con acción por tipo de vuelo 🟡 0/4 #94

SW-02 — Revisión de gestión de flotas (6)

Historia Título Progreso Issue
SW-02.1 Flota con el método: drones y modelos de dron 🟡 2/4 #45
SW-02.2 Flota: asignaciones, grupos operacionales y entidades nuevas 🟡 1/3 #46
SW-02.3 Flota: entidad vertiports — la base de operaciones de cada dron 🟡 6/7 #95
SW-02.4 Flota: asignación de drones a un vertipuerto (entidad-join, exclusiva por dron) ✅ 6/6 #108
SW-02.5 Flota: asignar drones a un piloto desde su formulario (multi-picker, sin exclusividad) ✅ 4/4 #115
SW-02.6 Flota: tipología del modelo de dron — multirrotor VTOL ✅ 5/5

SW-03 — Definición y codificación de misiones (20)

Historia Título Progreso Issue
SW-03.1 Misiones: entidad theatres (teatros de operaciones) con backend y workspace ✅ 4/4 #62
SW-03.10 Misiones: panel jerárquico teatro → misiones y guardia de cambios sin guardar ✅ 6/6 #105
SW-03.11 Misiones: sub-misiones y multi-dron — el plan se parte en subdivisiones asignadas ✅ 8/8 #121
SW-03.12 Misiones: Recursos antes del Objetivo — asignación en las subzonas y cámara del dron asignado ✅ 6/6 #123
SW-03.13 Misiones: flujo v3 — el Objetivo concentra vertipuerto y configuración por sub-misión ✅ 9/9 #126
SW-03.14 Misiones: hito Programación — trigger por sub-misión (a demanda / single / recurrente) ✅ 5/5 #127
SW-03.15 Misiones: Flight plan por sub-misión — puntos y perfil de terreno expandible (HIVE2) ✅ 6/6 #128
SW-03.16 Misiones: destino de ejecución explícito — simulador o dron real ✅ 5/5 #145
SW-03.17 Misiones: las tablas de entidades de misión son solo lectura (las gobierna el flujo) 🟡 4/5 #152
SW-03.18 Misiones: borrado en cascada (soft) de un plan, bloqueado si hay ejecuciones activas ✅ 8/8 #153
SW-03.19 Misiones: HOME y vertipuerto al lanzar — forzado en simulador, validación en real 🟡 0/10 #281
SW-03.2 Misiones: modelo plan/ejecución con los cuatro tipos 🟡 3/4 #65
SW-03.20 Reset de una ejecución simulada atascada y apagado sin dejar huérfanas 🟡 7/8 #227
SW-03.3 Misiones: tipo fotogramétrica — port del generador de HIVE2 ✅ 4/4 #66
SW-03.4 Misiones: tipo target — aproximación con standoff (pipeline de ejecución E2E) ✅ 4/4 #67
SW-03.5 Misiones: tipo SAR — patrones de búsqueda y parámetros de objetivo ✅ 4/4 #68
SW-03.6 Misiones: SAR — comportamiento al detectar (loiter, timeout y decisión del operador) 🟡 0/4 #69
SW-03.7 Modo de vuelo manual (gamepad) desde la GCS, registrado como ejecución 🟡 0/5 #70
SW-03.8 Misiones: flujo común de definición por hitos (wizard blando sobre el mapa) ✅ 7/7 #71
SW-03.9 Misiones: ejecución en vivo — lanzamiento, seguimiento y control desde la GCS ✅ 6/6 #96

SW-06 — Pilotado manual asistido con gamepad (7)

Historia Título Progreso Issue
SW-06.1 Gamepad: lectura en la GCS y configuración del mapeo ✅ 5/5 #186
SW-06.2 Gamepad: modo de pilotado asistido gobernado por el despachador ✅ 6/6 #187
SW-06.3 Gamepad: el operador elige la ley de control (asistido / directo) 🟡 6/7 #225
SW-06.4 Gamepad: el pitch volaba invertido (CH2 de ArduCopter) 🟡 2/3 #226
SW-06.5 Gamepad: medición de latencia real del mando (eco de ida y vuelta) ✅ 5/5 #242
SW-06.6 Gamepad: repetidor RC en el puente — robustez ante jitter de red ✅ 6/6 #243
SW-06.7 Gamepad: aviso háptico de proximidad a la geofence (nivel 1 de asistencia) 🟡 0/5 #282

SW-16 — Plataforma software base de GUARDIAN (patrón HIVE2) (19)

Historia Título Progreso Issue
SW-16.1a Setup del proyecto front (Vite + React 19 + Tailwind 4) ✅ 3/3 #8
SW-16.1b Estructura de carpetas y convenciones del front ✅ 2/2 #9
SW-16.1c Routing y layout raíz (React Router 7 + ProtectedRoute) ✅ 2/2 #10
SW-16.1d Cliente API y proxy dev (/api → backend) ✅ 2/2 #11
SW-16.2a Página de login (estilo HIVE, sin secuencia unshield) ✅ 5/5 #34
SW-16.2b Home de módulos: mapa del mundo de fondo + fichas ✅ 5/5 #35
SW-16.2c API del nodo: rebanada de autenticación (JWT desde Vault) ✅ 5/5 #36
SW-16.3a Settings: tres tamaños de letra y densidad de paneles ✅ 5/5 #47
SW-16.3b Contrato de entidades (collections.js) y primitivas UI ✅ 4/4 #48
SW-16.3c Workspace CRUD genérico: grid + form derivados del contrato 🟡 3/4 #49
SW-16.3d Backend genérico de entidades: router CRUD factory + eventos de dominio ✅ 4/4 #50
SW-16.3e Configurador de vistas en runtime (ficha Configuration) 🟡 3/4 #51
SW-16.3f Seeder de datos fake (pilotos con fotos IA, drones, asignaciones) ✅ 3/3 #52
SW-16.3g CRUD genérico: seleccionar varios elementos de otra colección (relation-multi) ✅ 6/6 #109
SW-16.4a Plataforma: lienzo de mapa (GlobeView) con capas enchufables 🟡 5/6 #72
SW-16.4b Plataforma: rectángulo con handles + perfil de terreno bajo polilínea 🟡 3/4 #73
SW-16.4c Plataforma: sección GIS en Configuration — estilos de capas, rampas e iconos 🟡 4/5 #103
SW-16.5a Pestaña /network: estructura de pestañas y visor MQTT en vivo 🟡 0/7 #210
SW-16.5b Salud e identidad del nodo: endpoint en la API y pestaña Servicios 🟡 2/5 #211

SW-17 — Consola de despliegue de GUARDIAN (patrón hive-deploy) (4)

Historia Título Progreso Issue
SW-17.1 UI de topología de nodos (editor de árbol) ✅ 7/7 #24
SW-17.2 nodeRegistry y API de topología (el modelo del nodo) ✅ 5/5 #26
SW-17.3 Motor de despliegue (generación de config + deploy local/SSH como servicio del nodo) 🟡 0/6 #27
SW-17.4 Mecánica de licencias (emisión firmada, transferencia, retorno) 🟡 0/7 #28

SW-18 — Programación de misiones (scheduling recurrente) (5)

Historia Título Progreso Issue
SW-18.1 Planificación: entidad calendario recurrente por sub-misión y su editor ✅ 4/4 #129
SW-18.2 Planificación: lanzador runtime en el edge — de calendario a ejecuciones ✅ 5/5 #130
SW-18.3 Planificación: intervalo mínimo y reserva RTH por voltaje (defaults del modelo de dron) ✅ 5/5 #131
SW-18.4 Planificación: calendario visual del hito Programación — vuelo, recarga y conflictos ✅ 6/6 #134
SW-18.5 Planificación: despachador de ejecuciones en el edge — del planned al vuelo sin UI ✅ 5/5 #146

SW-21 — Herramienta de teatros de operaciones con geofence (definición y compilación) (3)

Historia Título Progreso Issue
SW-21.1 Teatros: editor por pasos — encuadre y fuente de datos ✅ 9/9 #78
SW-21.2 Teatros: editor — contorno, envolvente de vuelo y reglas locales (vectores) ✅ 6/6 #79
SW-21.3 Teatros: compilación del raster de geofence en el edge + previsualización 🟡 8/9 #80

SW-22 — Panel de operaciones: estado y control de las misiones en vivo (11)

Historia Título Progreso Issue
SW-22.1 Operaciones: tablero agregado de ejecuciones + monitor del dispatch log ✅ 6/6 #147
SW-22.10 C2: interpolación de la telemetría en el render (movimiento continuo) ✅ 5/5 #244
SW-22.11 C2: widget de energía del dron (voltaje contra los límites de su modelo) ✅ 7/7 #257
SW-22.2 Operaciones: vista C2 de la ejecución seleccionada — mapa, instrumentos y mandos ✅ 6/6 #148
SW-22.3 Operaciones: tablero en el HQ — subárbol replicado, solo lectura y testigo C2 ✅ 5/5 #149
SW-22.4 Operaciones: globo de situación — teatros agregados y vuelos en vivo 🟡 0/6 #156
SW-22.5 Operaciones: doble nivel de lectura — por estado y por misión 🟡 0/5 #157
SW-22.6 Operaciones: capa histórica de actividad (mapa de calor) 🟡 0/5 #158
SW-22.7 C2: perfil de altitud en vivo — terreno, plan de vuelo y dron ✅ 6/6 #179
SW-22.8 C2: cámara FPV sintética — vista inclinada desde el dron ✅ 6/6 #180
SW-22.9 C2: modos de vuelo semánticos gobernados por el despachador ✅ 5/5 #181

SW-23 — Navegación temporal de la programación (proyección y ensayo) (2)

Historia Título Progreso Issue
SW-23.1 Tiempo: navegador temporal del calendario de programación 🟡 0/5 #173
SW-23.2 Tiempo: proyección de despacho — motor discreto y control play/stop 🟡 0/5 #174

SW-24 — Entornos de ejecución: simulación avanzada con ArduPilot SITL (7)

Historia Título Progreso Issue
SW-24.1 Simulación avanzada: canal sim_advanced + servicio ArduPilot SITL ✅ 5/5 #188
SW-24.2 Simulación avanzada: puente MAVLink↔MQTT con el contrato del sim-lite ✅ 5/5 #189
SW-24.3 Política de mensajería del nodo: aceptación, cadencia y sello de tiempo en los productores ✅ 8/8 #212
SW-24.4 Edición de la política de mensajería desde el C2, con aviso de reinicio pendiente 🟡 0/5 #213
SW-24.5 Ciclo de vida del dron: encendido bajo demanda y apagado tras el vuelo ✅ 8/8 #218
SW-24.6 Panel de aeronaves en la red: qué drones están vivos y por qué canal 🟡 1/7 #219
SW-24.7 Simulación: el voltaje emitido deriva del modelo del dron, no de constantes fijas ✅ 4/4 #258

SW-25 — Entorno virtual 3D: escenario de terreno real para pilotaje y conciencia situacional en C2 (6)

Historia Título Progreso Issue
SW-25.1 VR: motor de terreno 3D a pantalla completa desde la C2 ✅ 6/6 #195
SW-25.2 VR: dron en vivo en el escenario 3D con telemetría real ✅ 6/6 #196
SW-25.3 VR: overlay de instrumentos, FPV y perfil sobre el escenario 3D ✅ 6/6 #197
SW-25.4 VR: pilotaje gamepad y mandos de ejecución dentro del entorno 3D ✅ 6/6 #198
SW-25.5 Config: pestaña VR — todos los parámetros del escenario 3D, persistidos ✅ 6/6 #199
SW-25.6 VR: ambiente, minimapa y verificación E2E del entorno completo 🟡 6/7 #200

SW-26 — Radar de proximidad a la geofence para pilotaje manual (10)

Historia Título Progreso Issue
SW-26.1 Radar: motor de márgenes de geofence en el edge (rejilla orientada al rumbo) ✅ 8/8 #231
SW-26.10 Radar: selector de nivel de asistencia y feedback del recorte en el puesto de pilotaje 🟡 0/6 #283
SW-26.2 Radar: widget de proximidad en la C2, relevando al perfil al tomar el control 🟡 7/9 #232
SW-26.3 Radar: display de alertas de proximidad con causa, margen y registro 🟡 6/8 #233
SW-26.4 Config: pestaña del radar de proximidad — geometría, escala, umbrales y rampa 🟡 5/6 #234
SW-26.5 Radar: overlay del instrumento dentro del entorno virtual 3D 🟡 2/5 #235
SW-26.6 Radar: layout del puesto de pilotaje asistido (instrumentos al panel) ✅ 7/7 #248
SW-26.7 Radar: barra de altura única (suelo · corredor · techo) ✅ 7/7 #249
SW-26.8 Radar: transición animada auto ↔ asistido con retorno diferido al waypoint ✅ 6/6 #250
SW-26.9 Radar: la barra de altura arranca en el suelo real, con la franja vedada hasta el mínimo 🟡 6/7 #261

SW-27 — Interfaz multiidioma: toda la UI y todo mensaje al usuario via tabla de traducciones (7)

Historia Título Progreso Issue
SW-27.1 Infraestructura i18n: tabla de traducciones, selector de idioma y lint anti-literales ✅ 7/7 #267
SW-27.2 Migración i18n del área C2 y pilotaje (instrumentos, radar, gamepad, VR) ✅ 6/6 #268
SW-27.3 Migración i18n del área de misiones (editores, flujo, calendario, teatros) ✅ 5/5 #269
SW-27.4 Migración i18n del mapa y la vista de operaciones ✅ 5/5 #270
SW-27.5 Migración i18n de componentes comunes, navegación, workspaces y autenticación ✅ 6/6 #271
SW-27.6 Migración i18n de flota y red de nodos ✅ 4/4 #272
SW-27.7 Backend sin prosa: mensajes al usuario como código + parámetros ✅ 5/5 #273