Pack OSINT: Shadow, investigación en fuentes abiertas con gobernanza
Shadow investiga en fuentes abiertas por fases, con puerta de base legal obligatoria para personas con nombre. Instalación, claves de API, presupuesto, siete prompts, salidas y límites.
El pack OSINT instala a Shadow, un agente que convierte un nombre, un alias o una empresa en un dosier de investigación calificado a partir de fuentes públicas (OSINT significa inteligencia de fuentes abiertas). Encadena búsquedas rápidas, verificación de fuentes, extracción en redes sociales con scrapers de Apify y contraste de datos, y siempre escala de lo barato y rápido a lo caro y profundo. Como investigar a una persona con nombre es un tratamiento de datos personales, el pack tiene gobernanza: Shadow debe registrar una base legal y una finalidad antes de tocar a nadie identificable.
Advertencia· Léelo antes de usarlo sobre una persona
El responsable del tratamiento eres tú, no BMAD+. Investigar a una persona identificable exige una base legal documentada (RGPD artículo 6, y una condición del artículo 9(2) para cualquier inferencia de personalidad o categorías especiales) antes de la primera petición. El scraping puede infringir las condiciones de uso de una plataforma. El resultado lo genera una IA, puede ser erróneo y necesita verificación humana antes de cualquier decisión. Esta página no es asesoramiento jurídico.
Un agente, Shadow, en .agents/skills/agent-shadow/, más dos habilidades copiadas del paquete incluido osint-agent-package a .agents/skills/: bmad-osint-investigate (el pipeline de investigación y sus scripts de proveedores) y bmad-osint-investigator (un segundo punto de entrada heredado del paquete; carga _bmad/bmm/agents/osint-investigator.md, un archivo que una instalación de BMAD+ no crea, así que empieza por Shadow). El registro no enumera habilidades propias de este pack; las dos anteriores proceden del paquete. El menú de Shadow nombra, para QS, LI, IG, FB, PP, CE y DG, archivos de instrucciones que el paquete no incluye: esas entradas se ejecutan a partir de la línea del menú y de las instrucciones del pipeline de bmad-osint-investigate.
Menú de Shadow
Código
Capacidad
Puerta de base legal
INV
Investigación completa, fases 0 a 6, dosier puntuado
Sí, para una persona con nombre
QS
Búsqueda rápida multimotor sobre un nombre o alias
No para un alias público
LI / IG / FB
Extracción de perfiles públicos de LinkedIn, Instagram y Facebook con Apify
Sí
PP
Perfil de personalidad (MBTI, Big Five)
Sí, más una condición del artículo 9
CE
Enriquecimiento de contacto: correo, teléfono, datos de contacto
Fase -1, puerta de base legal: registrar la base, la finalidad, el responsable, el plazo de conservación y cómo se atienden las solicitudes de acceso o supresión. Sin base, no hay trabajo sobre una persona con nombre.
Fase 0, autodiagnóstico de herramientas: ejecutar el diagnóstico y anotar qué herramientas y claves faltan.
Fase 1, recogida inicial: primero búsquedas baratas, luego verificar las fuentes citadas y fusionar identificadores.
Fase 1.5, inteligencia interna: mirar lo que ya tienes (historial de conversaciones, correo, un directorio local de contactos) si hay herramientas configuradas, antes de salir al exterior.
Fase 2, extracción por plataforma: datos estructurados de redes sociales con scrapers de Apify.
Fase 3, contraste y puntuación de confianza: tabla de hechos, comprobaciones cruzadas, contradicciones, homónimos.
Fase 4, perfil psicológico, solo con la condición jurídica adicional.
Fase 5, evaluación de completitud: cobertura, puntuación de profundidad, diversidad de fuentes, criterios de parada.
Fase 6, salida del dosier según la plantilla, con puntuación de profundidad, número de fuentes y gasto total.
Core se añade automáticamente. Python 3.10 o superior debe estar disponible en la máquina que ejecuta los scripts.
En la terminal del proyecto
npx bmad-plus install --packs osint
02
Definir al menos una clave de API como variable de entorno
Una sola clave basta para empezar; Jina es la primera sugerida. No escribas nunca una clave en un archivo del proyecto. Los nombres que lee Shadow son JINA_API_KEY, APIFY_API_TOKEN, PERPLEXITY_API_KEY, EXA_API_KEY, TAVILY_API_KEY, PARALLEL_API_KEY y BRIGHTDATA_MCP_URL.
En la terminal del proyecto
$env:JINA_API_KEY = "tu-clave"
03
Preguntar a Shadow qué hay disponible
El diagnóstico no toca datos personales e indica qué proveedores responden.
En la terminal del proyecto
Shadow, haz el diagnóstico de las herramientas y API de OSINT disponibles.
Ejecútalo justo después de definir tus claves. Está exento de la puerta de base legal.
En tu asistente de IA
Shadow, haz el diagnóstico de las herramientas y API de OSINT disponibles.
Lo que deberías obtener Un mapa de los proveedores de búsqueda y scraping: qué claves están definidas, cuáles faltan y qué limita eso (por ejemplo, sin Apify los datos estructurados de redes sociales son limitados).
Investigar una empresa no exige la puerta de base legal. Indica qué quieres decidir con el resultado y nombra la carpeta de salida: el paquete trae dos convenciones (consulta Qué escribe y dónde).
En tu asistente de IA
Shadow, lanza INV sobre la sociedad Acme Ltd, una persona jurídica y no una persona física: forma jurídica, actividad, depósitos públicos, menciones en prensa, sanciones o litigios publicados. Quiero decidir si la incorporo como proveedor. Guarda el dosier en _bmad-output/osint-reports/, califica cada hecho y enumera lo que no pudiste verificar.
Lo que deberías obtener Un dosier sobre la sociedad, guardado donde lo pediste (_bmad-output/osint-reports/), con un grado de confianza de A a D en cada hecho (Shadow indica la escala que aplica) y la lista de lo que no se pudo verificar. Shadow indica la calidad de las fuentes y sus límites, y va informando del coste; gasta hasta 0,50 dólares sin preguntar y pregunta por encima.
Declara desde el principio la finalidad, la base y la conservación; Shadow las registra antes de buscar.
En tu asistente de IA
Shadow, realiza una comprobación de diligencia debida sobre la directora general del proveedor Acme Ltd, Jane Doe. Finalidad: alta del proveedor. Base: interés legítimo, ponderación anotada en nuestro expediente de alta. Responsable del tratamiento: Acme Client. Conservación: 12 meses. Las solicitudes de los interesados van a privacy@acme-client.example. Guarda el dosier en _bmad-output/osint-reports/.
Lo que deberías obtener La fase -1 va primero: se registran la base, la finalidad, el responsable y la conservación con la plantilla de base legal. El dosier se abre después con el bloque de gobernanza y el aviso de que el resultado lo genera una IA, puede contener errores, no es asesoramiento jurídico y exige verificación humana. Se guarda en la carpeta que indicaste (aquí _bmad-output/osint-reports/), con el objetivo y la fecha en el nombre, como pide el archivo del agente Shadow.
El punto de entrada más barato: un pase rápido multimotor, sin scraping de redes sociales.
En tu asistente de IA
Shadow, búsqueda rápida sobre el alias público @acme_support: ¿qué organización lo gestiona y qué páginas oficiales enlazan a él?
Lo que deberías obtener Resultados de los proveedores de búsqueda cuya clave definiste, fusionados y sin duplicados (la búsqueda volley.py del pipeline envía una misma consulta a todos). Shadow indica la calidad de las fuentes y sus límites, y dice qué hechos se apoyan en una sola fuente.
Exige el token de Apify y la puerta de base legal. Da la base completa en la petición: Shadow solo puede leer lo que está en la conversación o en el proyecto. El scraping puede infringir las condiciones de la plataforma; compruébalas antes.
En tu asistente de IA
Shadow, extrae el perfil público de LinkedIn https://www.linkedin.com/in/jane-doe-example para el expediente de alta de Acme Ltd. Finalidad: alta del proveedor. Base: interés legítimo, ponderación anotada en nuestro expediente de alta. Responsable del tratamiento: Acme Client. Conservación: 12 meses. Las solicitudes de los interesados van a privacy@acme-client.example. Indica el coste antes de lanzar el scraper.
Lo que deberías obtener Shadow comprueba que la base, la finalidad, el responsable y la conservación están registrados, lanza el scraper de Apify para ese perfil y añade los datos estructurados al dosier. Por encima de 0,50 dólares de gasto acumulado se detiene y te pregunta.
Este prompt no declara finalidad ni base, a propósito: muestra la puerta en acción.
En tu asistente de IA
Shadow, construye un perfil de personalidad de mi nueva vecina, Jane Doe. Encuentra cuanto puedas.
Lo que deberías obtener Shadow rechaza el perfilado de la persona con nombre: una petición abierta del tipo «encuentra cuanto puedas» no tiene finalidad específica, ni base del artículo 6, ni condición del artículo 9 para inferir la personalidad. Ofrece alternativas no personales, como investigar una empresa, un producto o un mercado, o una entidad pública.
Úsalo con una finalidad declarada, por ejemplo para responder a un socio que te contactó.
En tu asistente de IA
Shadow, encuentra el correo y el teléfono profesionales de la directora comercial de Acme Ltd, tal como constan en fuentes públicas. Finalidad: responder a su solicitud de colaboración. Base: interés legítimo. Responsable del tratamiento: Acme Client. Conservación: 6 meses. Las solicitudes de los interesados van a privacy@acme-client.example.
Lo que deberías obtener Primero se establece el registro de la puerta (base, finalidad, responsable, conservación, atención de las solicitudes). Después se buscan los datos de contacto en fuentes públicas y se califican de A a D; Shadow indica la escala que aplica y señala los datos que solo respalda una fuente.
Carpeta del dosier: el archivo del agente Shadow indica _bmad-output/osint-reports/, con el objetivo y la fecha en el nombre (la carpeta sigue el ajuste output_folder de _bmad/config.yaml), mientras que las instrucciones de la habilidad de investigación indican recherches/personnes-physiques/<nombre>.md o recherches/personnes-morales/<nombre>.md en la raíz del proyecto, sin fecha. El paquete trae las dos indicaciones, así que nombra la carpeta en tu petición para obtener la que quieres.
El registro de base legal, de la plantilla assets/lawful-basis-record.md, figura al principio del dosier.
Grados de confianza: cada hecho recibe A, B, C o D. El archivo del agente Shadow los define por número de fuentes (A tres o más fuentes, B dos, C una, D sin verificar); el archivo del pipeline los define por la evidencia (A confirmado por dos o más fuentes independientes o un perfil oficial, B una fuente creíble, C inferido, D sin verificar). Pregunta a Shadow qué escala usó y lee cada grado junto a las fuentes citadas.
Flujo fuera de la máquina osint-providers: los scripts de Shadow llaman a Apify, Exa, Jina, Parallel, Perplexity, Tavily y Bright Data por HTTPS, con tus propias claves. Base de consentimiento: la credencial que defines. Lo que investigas sale de tu máquina como consulta a esos proveedores.
Claves: ninguna es obligatoria. Cada script de proveedor comprueba solo su propia clave, así que basta una clave de cualquier proveedor para empezar. Los scripts leen APIFY_API_TOKEN (los scrapers de redes sociales), PERPLEXITY_API_KEY, EXA_API_KEY, TAVILY_API_KEY, JINA_API_KEY, PARALLEL_API_KEY y BRIGHTDATA_MCP_URL; el registro las declara todas como opcionales.
Requisitos: Python 3.10 o superior; los scripts usan solo la biblioteca estándar de Python, sin paquetes adicionales.
Los costes corren por tus cuentas. Shadow lleva el gasto por sesión y pregunta por encima de 0,50 dólares por objetivo.
Advertencia· La fase 1.5 puede leer tu propio correo y chats
Antes de salir al exterior, el pipeline consulta fuentes internas como el historial de conversaciones, el correo y un directorio local de contactos, si hay herramientas configuradas para ello. Si no lo quieres, dilo en la petición o no configures esas herramientas. Los hallazgos internos van en una sección aparte marcada como interna y confidencial.
Nota· Scripts de proveedores
El paquete incluye sus scripts de proveedores como archivos Python (apify.py, exa.py, jina.py, perplexity.py, tavily.py, brightdata.py, parallel.py, volley.py, diagnose.py) que solo usan la biblioteca estándar de Python. Ejecútalos con Python 3.10 o superior.
Nota· Procedencia
El pipeline de investigación está adaptado de una habilidad de código abierto con licencia MIT, y el ejecutor de Apify se inspira en las agent skills de Apify (Apache-2.0). Los avisos exactos están en THIRD-PARTY-LICENSES.md del paquete.