chore: auto-commit (286 archivos)
- .claude/agents/fn-orquestador/SKILL.md - .claude/commands/fn_claude.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - .claude/rules/ids_naming.md - CHANGELOG.md - apps/dag_engine/README.md - apps/dag_engine/api.go - apps/dag_engine/dags_migrated/example.yaml - apps/dag_engine/dags_migrated/example_lineage_tracking.yaml - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
---
|
||||
name: osint-person-lookup
|
||||
id: 0005
|
||||
status: pending
|
||||
created: 2026-05-16
|
||||
updated: 2026-05-16
|
||||
priority: medium
|
||||
risk: medium
|
||||
related_issues: [0098]
|
||||
apps:
|
||||
- navegator_dashboard
|
||||
- odr_console
|
||||
- graph_explorer
|
||||
- agents_and_robots
|
||||
trigger: manual
|
||||
schedule: ""
|
||||
expected_runtime_s: 300
|
||||
tags: [osint, multi-tab, parallel, graph]
|
||||
---
|
||||
|
||||
## 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.db` accesible (graph_explorer la lee).
|
||||
- claude CLI para resumen final.
|
||||
|
||||
## Flow
|
||||
|
||||
1. Input: nombre + apellido (`Juan Perez`).
|
||||
2. odr_console crea 3 jobs concurrentes:
|
||||
- Job A: navegator recipe `osint_linkedin_search.yaml` con query `{name}`.
|
||||
- Job B: navegator recipe `osint_twitter_search.yaml` con query `{name}`.
|
||||
- Job C: navegator recipe `osint_github_search.yaml` con query `{name}`.
|
||||
3. Cada job extrae snippets: `{source, url, title, snippet, timestamp}`.
|
||||
4. Cada snippet -> insert en `projects/osint_graph/operations.db` como entity `Snippet` + relations `mentions(Person, Snippet)`.
|
||||
5. graph_explorer abre el operations.db -> renderiza red de menciones.
|
||||
6. `claude -p` resume hallazgos en Markdown: dada lista de snippets, devuelve `{summary, confidence, suggested_next_steps}`.
|
||||
7. Sink: report `.md` en `projects/osint_graph/reports/<person>-<date>.md`.
|
||||
8. 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.db` de osint_graph: entities += N, relations += N.
|
||||
- `function_stats.claude_cli_prompt_py_infra`: calls += 1.
|
||||
|
||||
## 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.
|
||||
Reference in New Issue
Block a user