Explorar la documentación

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.

En esta página
  1. Cuándo usarlo
  2. Qué se instala
  3. Inicio rápido
  4. Ejemplos para copiar
  5. Qué escribe y dónde
  6. Flujos de datos y requisitos
  7. Límites y trampas

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.

Cuándo usarlo

  • Diligencia debida sobre un proveedor, socio o contraparte, con finalidad y base legal declaradas.
  • Investigación de empresas, productos o mercados: no requiere la puerta de base legal porque no se perfila a ninguna persona física.
  • Investigación de seguridad o encargada por mandato, cuando el mandato y la base son explícitos y auditables.
  • No sirve para la curiosidad sobre un particular, el acoso ni el perfilado de un vecino, expareja, empleado o candidato sin base. Shadow las rechaza.

Qué se instala

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ódigoCapacidadPuerta de base legal
INVInvestigación completa, fases 0 a 6, dosier puntuadoSí, para una persona con nombre
QSBúsqueda rápida multimotor sobre un nombre o aliasNo para un alias público
LI / IG / FBExtracción de perfiles públicos de LinkedIn, Instagram y Facebook con ApifySí
PPPerfil de personalidad (MBTI, Big Five)Sí, más una condición del artículo 9
CEEnriquecimiento de contacto: correo, teléfono, datos de contactoSí
DGDiagnóstico de las API y herramientas disponiblesNo

Las fases de la investigación

  1. 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.
  2. Fase 0, autodiagnóstico de herramientas: ejecutar el diagnóstico y anotar qué herramientas y claves faltan.
  3. Fase 1, recogida inicial: primero búsquedas baratas, luego verificar las fuentes citadas y fusionar identificadores.
  4. 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.
  5. Fase 2, extracción por plataforma: datos estructurados de redes sociales con scrapers de Apify.
  6. Fase 3, contraste y puntuación de confianza: tabla de hechos, comprobaciones cruzadas, contradicciones, homónimos.
  7. Fase 4, perfil psicológico, solo con la condición jurídica adicional.
  8. Fase 5, evaluación de completitud: cobertura, puntuación de profundidad, diversidad de fuentes, criterios de parada.
  9. Fase 6, salida del dosier según la plantilla, con puntuación de profundidad, número de fuentes y gasto total.

Inicio rápido

  1. Instalar el pack

    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

  2. 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"

  3. 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.

Ejemplos para copiar

Comprobar primero la caja de herramientas (DG)

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 una persona

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.

Investigación completa con base registrada (INV)

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.

Extraer un perfil público de LinkedIn (LI)

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.

Qué recibe una petición sin base (PP)

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.

Enriquecimiento de un contacto profesional (CE)

Ú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.

Qué escribe y dónde

  • 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.

Flujos de datos y requisitos

  • 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.

Límites y trampas

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.

Véase también