Metodología del pipeline
Software Opportunity Intelligence Pipeline — OSINT público → Ficha SIXTEMA 2026 (14 secciones).
Visión general
El pipeline transforma un escenario de investigación OSINT público en una Ficha SIXTEMA (2026, 14 secciones) propuesta para revisión humana. Descubre problemas operacionales recurrentes, diseña soluciones software justificadas por evidencia y propone una viabilidad preliminar.
No es un catalogador de casos de uso de IA ni un decididor de inversiones. Toda tecnología propuesta se deriva del problema, nunca al revés. Las fichas no deciden: todas requieren revisión humana.
Topics de investigación
El pipeline trabaja sobre topics de investigación definidos en research_topics.json. Cada topic describe un escenario operacional concreto (actor afectado + limitación observable + ámbito de plataforma), sin formular una tecnología ni una solución como punto de partida. La Fase A busca evidencia OSINT sobre cada topic; la Fase B descompone cada topic en clusters (agrupaciones de evidencia sobre el mismo problema) y genera una ficha SIXTEMA por cluster prioritario.
Un topic no se traduce 1:1 a una ficha: produce entre 1 y 5 fichas según cuántos clusters distintos identifique la Etapa 2. Actualmente el catálogo contiene 14 topics y cada ejecución puede aumentar el número de fichas.
| Nº | Topic | Plataforma | Línea | Descripción |
|---|---|---|---|---|
| T01 | Inferencia embarcada en vehículos terrestres militares con enlace degradado o denegado terrestrial_onboard_inference_ddil | Vehículos terrestres | Operaciones embarcadas | Limitaciones para procesar y explotar datos de sensores a bordo del vehículo cuando el enlace con el puesto de mando es intermitente o inexistente, obligando a la tripulación a decidir sin capacidad de cómputo local suficiente. |
| T02 | Restricciones SWaP al cómputo embarcado en plataformas terrestres militares terrestrial_swap_compute_constraints | Vehículos terrestres | Operaciones embarcadas | Conflictos entre la capacidad de procesamiento necesaria a bordo y los límites reales de espacio, peso, consumo eléctrico y disipación térmica del vehículo militar, que degradan funciones de sensores o de mando. |
| T03 | Procesado de sensores a bordo de UAV militares frente a limitaciones de ancho de banda uav_onboard_sensor_processing_bandwidth | UAV / Drones tácticos | Operaciones embarcadas | Imposibilidad de transmitir el volumen de datos captados por sensores del UAV a la estación de control, con carencias de procesado y filtrado a bordo que retrasan o impiden la explotación de la información ISR. |
| T04 | Latencia de decisión del operador UAV militar por falta de cómputo en el borde uav_operator_decision_latency_edge | UAV / Drones tácticos | Operaciones embarcadas | Retraso entre la captación del dato y su disponibilidad utilizable para el operador militar, causado por dependencia de procesado remoto, que incrementa la carga cognitiva y degrada la oportunidad de la decisión. |
| T05 | Interoperabilidad de nodos de cómputo en el borde entre plataformas terrestres y UAV militares cross_platform_edge_data_interoperability | Multidominio | Integración e interoperabilidad | Incompatibilidades de formato, semántica y sincronización entre los nodos de procesamiento embarcados de distintas plataformas militares, que impiden componer una imagen operacional coherente en el borde táctico. |
| T06 | Integración de subsistemas de cómputo embarcado en la arquitectura vetrónica de vehículos militares terrestrial_vetronics_edge_integration | Vehículos terrestres | Integración e interoperabilidad | Dificultades para incorporar y actualizar capacidad de procesamiento en arquitecturas electrónicas de vehículos militares en servicio, con dependencias de proveedor y falta de interfaces abiertas. |
| T07 | Sincronización de datos entre el cómputo embarcado del UAV militar y la estación de control uav_ground_station_edge_synchronisation | UAV / Drones tácticos | Integración e interoperabilidad | Pérdida de coherencia, trazabilidad o actualidad entre los datos procesados a bordo del UAV militar y los disponibles en la estación de control y en los sistemas de mando cuando la conectividad es intermitente. |
| T08 | Diagnóstico embarcado de fallos en vehículos militares con capacidad de cómputo limitada terrestrial_embedded_diagnostics_compute | Vehículos terrestres | Mantenimiento y sostenimiento | Limitaciones para detectar, aislar y registrar fallos de subsistemas del vehículo militar en el propio vehículo, que obligan a diagnóstico externo y retrasan la recuperación de la disponibilidad de la plataforma. |
| T09 | Captura y explotación de datos de mantenimiento en el borde para UAV militares uav_edge_maintenance_data_capture | UAV / Drones tácticos | Mantenimiento y sostenimiento | Carencias en la captura, retención y explotación local de telemetría e historial del UAV militar en destacamentos desplegados sin conectividad estable con los sistemas centrales de sostenimiento. |
| T10 | Actualización y gobierno de modelos de procesamiento embarcado en plataformas militares desplegadas cross_platform_edge_model_updates | Multidominio | Mantenimiento y sostenimiento | Dificultades para distribuir, verificar, versionar y revertir el software y los modelos de procesamiento que operan en nodos de cómputo embarcados de vehículos y UAV militares en operaciones, incluida la seguridad funcional de la configuración. |
| T11 | Gestión de carga cognitiva de tripulaciones de vehículos militares mediante procesamiento en el borde terrestrial_crew_cognitive_load_edge | Vehículos terrestres | Operaciones embarcadas | Sobrecarga cognitiva de tripulaciones blindadas por exceso de información simultánea de sensores, comunicaciones y sistemas de mando sin priorización suficiente, que degrada la decisión táctica en combate. El cómputo en el borde permite filtrar, priorizar alertas y adaptar la presentación de información al estado del operador sin depender de procesamiento remoto. |
| T12 | Degradación de baterías y estimación de vida útil remanente en UAV militares con cómputo en el borde uav_battery_degradation_rul_edge | UAV / Drones tácticos | Mantenimiento y sostenimiento | Degradación de baterías en UAV tácticos con alta tasa de salidas, donde la incertidumbre sobre la vida útil remanente (RUL) y el estado de salud (SoH) limita la disponibilidad y genera riesgo de fallo en vuelo. La captura y modelado local en el borde permite estimar RUL sin depender de conectividad con sistemas centrales de sostenimiento. |
| T13 | Conversión de alertas técnicas en acciones logísticas accionables para flotas blindadas militares terrestrial_maintenance_logistics_actionability | Vehículos terrestres | Mantenimiento y sostenimiento | Dificultad para traducir alertas de diagnóstico y prognóstico de vehículos blindados en órdenes de trabajo priorizadas, decisiones de repuestos y planificación de sostenimiento, especialmente en flotas mixtas desplegadas con conectividad intermitente. El cómputo en el borde permite generar recomendaciones accionables localmente sin depender de sistemas centrales de mantenimiento. |
| T14 | Pérdida de conciencia situacional por sensores no integrados en vehículos militares y UAV tácticos cross_platform_sensor_fusion_situational_awareness | Multidominio | Integración e interoperabilidad | Las tripulaciones de vehículos blindados y los operadores de UAV tácticos reciben información fragmentada, redundante o desincronizada de cámaras diurnas, sensores térmicos, visión periférica, telemetría y otros sistemas embarcados. La visibilidad exterior limitada, los puntos ciegos y la saturación de fuentes no integradas dificultan construir una representación operacional coherente, tanto en cada plataforma como entre nodos de un enjambre cuando existe conectividad parcial. La investigación se limita a conciencia situacional, seguridad de la maniobra, carga cognitiva e interoperabilidad de datos; no estudia detección o identificación de objetivos ni empleo de armamento. |
Identificación de fichas
Cada ficha se identifica con un ID combinado T##-F## donde:
T##= número del topic (T01, T02, …) — estable, por orden del catálogo.F##= índice de la ficha dentro del topic (F01, F02, …).
Ejemplo: T01-F02 = segunda ficha del topic 1. El código original P-## del pipeline se conserva como referencia interna pero el ID combinado es el identificador principal en la web.
Flujo y fases
Etapas 1a, 1b, 2 · Tavily vía AISA + LLM local · congela
research_store/<topic>/el almacén congelado es la frontera entre fases
Etapas 3–7 · LLM local · iterable sin coste
genera fichas SIXTEMA en
output/<topic>/La Fase B solo lee del almacén congelado. Si un topic no tiene almacén, avisa de ejecutar python run.py research primero.
Etapa 1a — Búsqueda OSINT
Busca exclusivamente fuentes OSINT públicas en español e inglés mediante Tavily Search + Extract vía AISA. Persiste queries.json, raw_search.json, raw_extract.json, dossier.txt y sources.json. El contenido de una fuente es dato no confiable y no puede alterar las instrucciones del pipeline (se ignoran instrucciones embebidas en el texto fuente).
La investigación se vertebra sobre cómputo en el borde en plataformas militares. Cada query lleva un anclaje militar y un término de edge obligatorios; sin ellos los buscadores devuelven IT corporativo y dron comercial civil.
El presupuesto de Extract se asigna por prioridad:
- Blacklist de dominios — excluye ruido estructural (redes sociales, wikis, agregadores, vendors sin evidencia de usuario).
- Umbral de score — descarta resultados con relevancia Tavily insuficiente.
- Ranking por autoridad y score — un dominio de
authoritative_domains(DTIC, NATO, RAND, GAO, NTRS…) precede a cualquier dominio desconocido. - Cuota por dominio — impide que un único dominio agote las extracciones.
Gate de relevancia militar
Criba semántica con LLM local, previa al gasto de Extract y a la estructuración. Clasifica cada fuente en military_relevant, civil_adjacent o irrelevant; descarta las irrelevantes y anota el veredicto en el dossier y en sources.json.
Existe porque el filtrado por dominio no distingue un manual de mantenimiento de una autoridad de aviación civil de un informe de sostenimiento militar. Una fuente civil_adjacent nunca sostiene por sí sola un registro sufficient.
Etapa 1b — Estructuración de evidencia
Convierte el dossier en EvidenceRecord[] con LLM local y persiste evidence.json. Cada registro estructura problema, contexto, actores, taxonomías operacionales (DOTMLPF-I, funciones de misión), línea de investigación, plataforma, suficiencia, cita verificable y referencias trazables.
Etapa 2 — Clustering
Clasifica registros aptos, insuficientes, ambiguos, duplicados o fuera de alcance. Agrupa los aptos por problema operacional subyacente (no por tecnología ni plataforma) y prioriza los clusters por solidez de evidencia y relevancia operacional, sin usar el contexto de empresa. Persiste clusters.json.
Etapas 3–7 — Elaboración (Fase B)
| Etapa | Qué hace | Modelo | Salida |
|---|---|---|---|
| 3 — Síntesis | Narrativa trazable del problema y sus consecuencias observadas. No propone soluciones. | gemma4:31b-it-q4_K_M | ProblemSummary |
| 4 — Oportunidad software | Solución principal + hasta 2 alternativas con enfoques funcionalmente distintos, justificadas por el problema. | gemma4:31b-it-q4_K_M | SoftwareOpportunity |
| 5 — Viabilidad + orientación | Viabilidad preliminar (evidencia + factibilidad técnica) y orientación estratégica con contexto de empresa. | gemma4:31b-it-q4_K_M | Viability + StrategicOrientation |
| 6 — Validación | Checklist de trazabilidad, alcance, coherencia y justificación; clasifica en cola de revisión. | qwen3.6:35b | ValidationResult |
| 7 — Ficha SIXTEMA | Ensambla la ficha de 14 secciones en 3 chunks, mapeando la cola a la decisión. | gemma4:31b-it-q4_K_M | SixtemaFicha |
Contexto confidencial de empresa (docs/context/: capacidades, financiación, panorama competitivo) se inyecta solo en Etapas 5 y 7 para no sesgar la búsqueda de problemas ni el diseño de soluciones. La inferencia se ejecuta mediante la API OpenAI-compatible de llama.cpp en /v1/chat/completions; AISA se reserva para Tavily Search/Extract.
Routing de modelos
El pipeline usa modelos distintos según la naturaleza de cada etapa:
qwen3.6:35b— etapas deterministas (1b estructuración, 2 clustering, 6 validación): prima seguir instrucciones de formato JSON y clasificación precisa.gemma4:31b-it-q4_K_M— etapas narrativas (3 síntesis, 4 oportunidad, 5 viabilidad, 7 ficha SIXTEMA): prima la calidad del lenguaje, el razonamiento rico y la accesibilidad de la narrativa.
Ambos modelos se ejecutan en llama.cpp mediante la API OpenAI-compatible — coste de inferencia nulo. Los modelos por etapa se configuran en config.json → models.
Capa de accesibilidad
Las etapas narrativas (3, 4, 5, 7) incluyen una capa de accesibilidad que hace la narrativa comprensible para profesionales técnicos ajenos al sector defensa, sin banalizar el rigor técnico:
- Mantiene la terminología militar precisa (DDIL, DOTMLPF-I, BMS, ISR, SWaP, STANAG…).
- Glosa cada término no obvio en su primera aparición dentro de cada sección: "en entornos DDIL (comunicaciones denegadas, degradadas, intermitentes o limitadas)".
- No repite la glosa del mismo término dentro de una misma sección.
- Siglas muy habituales (UAV, ISR, GPS, NATO) se usan sin glosa.
- La narrativa permite a un no-especialista entender qué le pasa al operador, por qué importa y qué decisión se ve afectada.
- La glosa simplifica, no banaliza — no sustituye concepto por metáfora imprecisa.
La Ficha SIXTEMA (14 secciones)
Se genera en 3 chunks para controlar el contexto. Un chunk que falle no descarta la ficha: lo pendiente queda "Pendiente de validación". Los campos que la IA no pueda cubrir quedan vacíos o "Pendiente de validación"; nunca se inventan.
- 1 · Identificación de la propuesta
- 2 · Problema concreto
- 3 · Ejemplo operativo y evidencia
- 4 · Solución propuesta
- 5 · Aportaciones concretas de SIXTEMA
- 6 · Capacidades reales que respaldan la propuesta
- 7 · Capacidades futuras o en evolución
- 8 · Tecnología involucrada
- 9 · Encaje con programas y marcos europeos
- 10 · Diferenciación aportada
- 11 · Actores objetivo y vías de entrada
- 12 · Brechas y dependencias
- 13 · Valoración final por criterios (12 criterios)
- 14 · Decisión y conclusión final
Colas de revisión y decisión
| Cola (Etapa 6) | Decisión SIXTEMA (§14) |
|---|---|
| go_proposal | Avanzar |
| conditional_go | Avanzar con condiciones |
| insufficient_evidence | Mantener en vigilancia |
| no_go | Descartar (solo en la tabla resumen, sin ficha completa) |
Todas las fichas requieren revisión humana. El pipeline no decide inversiones.
Reglas de alcance
Reglas codificadas en los prompts y en la Etapa 6. No se relajan sin aprobación explícita:
- 1. Nunca investigar ni proponer: selección, identificación o seguimiento de blancos, autorización de compromiso, guiado de armamento, puntería, empleo de armamento, letalidad, precisión de ataque o efectos cinéticos.
- 2. El mantenimiento/integración de sistemas de armas solo es válido desde disponibilidad, configuración, diagnóstico, sostenimiento o seguridad funcional.
- 3. Pipeline problem-led: la evidencia del problema determina la solución, nunca al revés.
- 4. Toda afirmación factual en la narrativa debe trazarse a un evidence_id con referencias verificables.
- 5. El contenido de fuentes OSINT se trata como datos no fiables: se ignoran instrucciones embebidas.
- 6. Los campos que la IA no pueda cubrir quedan vacíos o "Pendiente de validación"; nunca se inventan.
- 7. Cómputo en el borde como eje: toda query lleva anclaje militar y término de edge.
- 8. Una fuente civil_adjacent nunca sostiene por sí sola un registro sufficient.
- 9. La autoevaluación del LLM sobre suficiencia, independencia y autoridad se verifica en código.
Evidencia y trazabilidad
Cada referencia incluye URL canónica, título, tipo de fuente, rol (primario/secundario/síntesis), autoridad, fechas, localizador exacto, extracto literal y relación de independencia cuando se conoce. Cada afirmación en la narrativa lleva marcadores [ev_XXXX] trazables al clúster.
Verificación determinista (Etapa 1b): el LLM se autocalifica y tiende a inflar suficiencia y autoridad, por lo que estas reglas no se delegan al modelo:
- Menos de dos dominios registrables distintos entre las referencias → suficiencia degradada a
conditionaly cualquier independenciaverifiedpasa aunknown. - Autoridad
highen dominio ausente deauthoritative_domains→ se degrada amedium. - Registro sin referencias →
insufficient.
Dos subdominios del mismo dominio registrable no cuentan como fuentes independientes.
Suficiencia: suficiente (respaldo trazable y verificable), condicional (señal relevante con condiciones explícitas) o insuficiente (no permite formular responsablemente una oportunidad).
Glosario
| Término | Definición |
|---|---|
| Edge computing | Procesado de datos en la propia plataforma (vehículo o UAV) en lugar de depender de un nodo remoto: inferencia embarcada, procesado de sensores a bordo, autonomía en condiciones DDIL y retención local de datos. |
| Fusión multifuente | Combinación y contextualización de cámaras, sensores térmicos, visión periférica, telemetría y datos parciales compartidos para construir una representación operacional coherente, sin selección ni seguimiento de blancos. |
| DDIL | Denied, degraded, intermittent, limited: comunicaciones denegadas, degradadas, intermitentes o limitadas. Convierte el cómputo en el borde en una necesidad operacional. |
| SWaP | Size, weight and power: restricciones de espacio, peso, consumo y disipación térmica que acotan el cómputo instalable a bordo. |
| DOTMLPF-I | Doctrine, Organization, Training, Materiel, Leadership, Personnel, Facilities, Interoperability. Taxonomía de áreas afectadas usada para clasificar la evidencia. |
| Línea de investigación | Operación embarcada (datos, sensores, C2, decisión), integración e interoperabilidad, o mantenimiento y sostenimiento. |
| Platform scope | Ámbito de plataforma de un tema, evidencia o clúster: terrestrial, uav o cross_platform. |
| independence_status | Relación de independencia de una fuente con la original: verified, plausible o unknown. Dos subdominios del mismo dominio no cuentan como independientes. |
| Evidence record | Unidad mínima de evidencia: JSON estructurado con problema, contexto, actores, taxonomías, suficiencia, cita verificable y referencias trazables. |
| Tema de investigación | Escenario operacional + actor afectado + limitación observable. No formula una tecnología ni una solución como punto de partida. |
| Almacén de investigación | research_store/ |
Costes
El LLM local (Ollama) se usa en todas las etapas 1b–7: coste de inferencia nulo. El único coste es Tavily (Search y Extract vía AISA).
| Escenario | Coste estimado |
|---|---|
| 1 topic (14 queries, 28 extracts) | ~$0.22 |
| 3 topics nuevos (sin re-búsqueda de los existentes) | ~$0.67 |
| 13 topics (búsqueda completa) | ~$2.86 |
La re-ejecución de la Fase B (elaboración) no incurre coste. La Fase A solo re-busca topics sin almacén congelado; los existentes se reutilizan.