6ad82167bb
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.2 KiB
4.2 KiB
name, id, status, created, updated, priority, risk, related_issues, apps, trigger, schedule, expected_runtime_s, tags
| name | id | status | created | updated | priority | risk | related_issues | apps | trigger | schedule | expected_runtime_s | tags | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| osint-person-lookup | 0005 | pending | 2026-05-16 | 2026-05-16 | medium | medium |
|
|
manual | 300 |
|
Goal
Probar paralelismo (multiples scraping jobs concurrentes) + agregacion a grafo. Demuestra que graph_explorer cierra el circulo visualizando datos extraidos.
Pre-requisitos
- odr_console activa (jobs queue).
- Chrome con sesiones activas en LinkedIn / Twitter / GitHub (no automatizar login).
projects/osint_graph/operations.dbaccesible (graph_explorer la lee).- claude CLI para resumen final.
Flow
- Input: nombre + apellido (
Juan Perez). - odr_console crea 3 jobs concurrentes:
- Job A: navegator recipe
osint_linkedin_search.yamlcon query{name}. - Job B: navegator recipe
osint_twitter_search.yamlcon query{name}. - Job C: navegator recipe
osint_github_search.yamlcon query{name}.
- Job A: navegator recipe
- Cada job extrae snippets:
{source, url, title, snippet, timestamp}. - Cada snippet -> insert en
projects/osint_graph/operations.dbcomo entitySnippet+ relationsmentions(Person, Snippet). - graph_explorer abre el operations.db -> renderiza red de menciones.
claude -presume hallazgos en Markdown: dada lista de snippets, devuelve{summary, confidence, suggested_next_steps}.- Sink: report
.mdenprojects/osint_graph/reports/<person>-<date>.md. - Matrix bot envia link al report.
Acceptance
- 3 recipes osint creadas (LinkedIn, Twitter, GitHub).
- odr_console lanza 3 jobs paralelos sin race conditions.
- >= 5 snippets totales en operations.db.
- graph_explorer renderiza grafo con >=1 Person + N Snippets.
- Claude resumen generado y valido (no error).
- Report .md commiteado en repo osint_graph.
Telemetria esperada
- 3 runs en
data_factory.runs(uno por source). operations.dbde osint_graph: entities += N, relations += N.function_stats.claude_cli_prompt_py_infra: calls += 1.
Definition of Done
Ver README.md seccion DoD + user-facing. Risk=medium -> attention en datos personales.
Generico
- Repetibilidad: 3 lookups distintos (3 personas test) producen reports completos sin re-config.
- Observabilidad: 3 jobs visibles en
odr_console.operations.db+call_monitor.callschain por job. - Error-path: si LinkedIn devuelve 429 → job marcado failed, otros 2 continuan (no aborta el flow entero).
- Idempotencia: re-lookup misma persona → upsert por
snippet_hash, no duplica nodos Person. - Secrets: creds Twitter/GitHub en
pass; LinkedIn usa sesion del navegador (cookie via navegator). - Docs:
## Notascon onboarding + check legal. - Registry-first: recipes + agregacion + render reusan funciones registry.
- INDEX + status:
status: done+ INDEX + movido.
User-facing
- User-facing: usuario abre
graph_explorer.exe→ File → Load datasetosint/<persona>→ ve grafo Person + N Snippets navegable (zoom, click → snippet content). - User-facing repeat: persona nueva → comando lanza job, dataset aparece en lista de graph_explorer en <5min.
- User-facing onboarding: parrafo en
## Notas: "Para investigar persona:/flow run 0005 --target '<nombre>'(oodr_console.exe→ New Job → 3 recipes). Esperar ~5min. Abrirgraph_explorer.exe→ Loadosint/<nombre>. Resumen LLM enreport.mddel repo." - User-facing latencia: job lanzado → grafo listo en <5min (3 jobs paralelos).
Custom
- Paralelismo medido: 3 jobs concurrentes <60s wall vs ~180s en serie.
- Race-condition test: 2 corridas simultaneas del flow no corrompen operations.db.
- Red-team: nada de menores/info no publica en snippets capturados.
- Report
.mdfirmado por commit en repoosint_graph.
Notas
- Consideracion legal: extracciones publicas (perfiles abiertos). NO bypassear paywalls/captchas.
- LinkedIn detecta scraping agresivo -> usar rate-limit por job en navegator.
- Caso ambicioso (5 apps + paralelismo + LLM). Reservar como hito.