Informe posterior a la misión
ARGUS genera un informe posterior a la misión estructurado bajo demanda, usando los
datos de Firestore de la misión (campos de planificación, tareas, flags, logs de vuelo, comms) como contexto
para un agente GPT-4o. El resultado es un objeto tipado MissionReport que se renderiza en línea en
un diálogo y se exporta a un PDF con formato.
Disparar un informe
Desde la página de detalle de operación, haz clic en GENERATE REPORT. Ese
botón es visible cuando tienes el permiso ai.reports; si tu clave de OpenAI no está
configurada, la generación falla con una pista para configurarla en Configuración → AI Copilot.
El diálogo auto-inicia la generación en cuanto se abre (no hay un paso extra de confirmación). Puedes cancelar cerrando el diálogo antes de que termine.
No existe hoy un toggle “habilitar esta op para informes de IA en el momento de creación” — los informes pueden generarse en cualquier misión independientemente del estado, siempre que la clave de API esté configurada.
Fases
El progreso se muestra como tres puntos en la parte inferior del diálogo:
- Load Data — obtiene la misión, assets, polígonos, flags, tareas, comms y logs de vuelo en paralelo desde Firestore.
- AI Analysis — la llamada del agente a
https://api.openai.com/v1/chat/completionscon un contexto compacto de briefing de inteligencia. El modelo por defecto esgpt-4opero respeta el modelo seleccionado en la configuración de Copilot. - Build Report — resuelve el nombre para mostrar del comandante, ensambla el objeto
MissionReportfinal.
Qué contiene el informe
El objeto tipado MissionReport incluye:
Campos de portada
missionName,codename,classification,missionType,status,priority.startTimeLabel,endTimeLabel,commanderName,headquartersNoteopcional.
Datos de planificación (literales del documento de misión)
objectives[]con texto, prioridad, estado de completado.roe[]como cadenas planas.
Secciones narrativas generadas por IA
executiveSummary— narrativa formal de 2-3 párrafos para mando superior.missionAssessment— uno deSUCCESS,PARTIAL_SUCCESS,FAILURE,INCONCLUSIVE.situationalOverview— narrativa contextual.keyFindings[]— bullets de una sola frase.lessonsLearned[].recommendations[].commanderNotes— evaluación específica para el comandante: qué fue bien, qué necesita atención, acciones de seguimiento requeridas.
Secciones de datos estructurados
stats— duración, activos desplegados (total + drones + operativos), tareas (total / completadas / fallidas / abortadas), objetivos (total / completados), flags colocadas, flags de alta prioridad (code_red / casualty / hazard / person_detected), entradas de comms, sesiones de vuelo, tiempo total de vuelo, distancia total, recuento de áreas de búsqueda, detecciones de personas.tasks[]— título, tipo, estado, prioridad, assets asignados, progreso, sitrep, nota de completado, duración.findings[]— tipo de flag, nombre, coordenadas, timestamp, notas.commsHighlights[]— hora, remitente, transcripción, duración.assetsDeployed[]— nombre y tipo.
Vista previa en línea
Una vez que el informe está listo, el diálogo muestra:
- Un banner de evaluación coloreado (verde / ámbar / rojo / gris con icono a juego).
- Una fila de cinco estadísticas — Tasks Done, Objectives, Flags, Duration, Flights.
- Las primeras cinco líneas del resumen ejecutivo (recortadas con CSS
-webkit-line-clamp). - Hasta cuatro hallazgos clave como bullets, con un pie “+N more in PDF” cuando es más largo.
- La evaluación del comandante en un bloque de cita con borde izquierdo en cursiva.
- Una nota de que el informe completo (tareas, inteligencia de campo, log de comunicaciones, lecciones aprendidas, recomendaciones) está solo en el PDF exportado.
Exportar a PDF
Haz clic en Export PDF. MissionReportPdfService.generate(report) construye el PDF en el navegador
vía jsPDF. El PDF incluye la insignia de evaluación, resumen ejecutivo, cuadrícula de estadísticas,
objetivos con estado de completado, ROE, resumen situacional, hallazgos clave, lecciones
aprendidas, recomendaciones, tabla de tareas, hallazgos, highlights de comms, activos desplegados y
el bloque de notas del comandante.
Regenerar
El botón Regenerate en el diálogo llama a generate() de nuevo, que produce un informe fresco
desde el estado actual de Firestore. Hoy no hay regeneración por sección — es
el informe completo o nada.
Edición
El diálogo es solo lectura. No hay editor de prosa en la app, ni reordenación de media, ni acción “Guardar ediciones al informe”. Exporta el PDF y edita externamente a mano si necesitas ajustar la redacción.
Distribución
No hay acción incorporada de email, webhook o “enviar a participantes”. La distribución es manual — descarga el PDF y adjúntalo a tu propio canal.
- Webhook
mission.report_ready— no implementado aún. Considera cualquier documentación que lo mencione como aspiracional. - Auto-generación programada al completar la op — no implementado aún.
Retención
El informe no se persiste de vuelta a Firestore. Cada generación es fresca; cierra el diálogo y el informe en memoria desaparece. Exporta el PDF si necesitas un artefacto duradero.
Errores
Si la generación falla, el diálogo cambia a un estado de error rojo con el mensaje de error y una pista para comprobar la clave de OpenAI. Pulsa Try Again para reintentar, o Close para abandonar.