feat(projects): osint_graph project + graph_explorer sub-repo bootstrap

Cierra 0049a. Estructura local en projects/osint_graph/ (gitignored):

- project.md con frontmatter (name, description, tags).
- vaults/vault.yaml + symlink osint_data → ~/vaults/osint_graph/{raw,
  processed,exports}.
- apps/graph_explorer/ inicializado como sub-repo Gitea
  (dataforge/graph_explorer, branch master) con commit vacio.

Indexado verificado: 4 projects, 2 vaults; fn show osint_graph OK.
This commit is contained in:
2026-04-29 21:08:47 +02:00
parent 7c09255c8a
commit 9904d5cd63
2 changed files with 101 additions and 1 deletions
+1 -1
View File
@@ -55,7 +55,7 @@
| [0047](completed/0047-cpp-tests-foundation.md) | C++ tests foundation (Catch2 + top-20 primitivos) | completado | alta | feature | 0048 |
| [0048](completed/0048-cpp-visual-tests-ci-gate.md) | Visual tests via primitives_gallery + CI gate tested:true | completado | media | feature | — |
| [0049](0049-osint-graph-viewer.md) | OSINT graph viewer + GPU graph rendering system (multi-issue) | pendiente | alta | feature | — |
| [0049a](0049a-osint-graph-setup.md) | Setup proyecto osint_graph + sub-repo graph_explorer | pendiente | alta | infra | parte de 0049 |
| [0049a](completed/0049a-osint-graph-setup.md) | Setup proyecto osint_graph + sub-repo graph_explorer | completado | alta | infra | parte de 0049 |
| [0049b](0049b-cpp-bump-gl-43.md) | Bump OpenGL 3.3 → 4.3 core en cpp/framework | pendiente | alta | infra | parte de 0049 |
| [0049c](0049c-graph-renderer-tier1.md) | graph_renderer Tier 1: RGBA8, orphan, frustum cull, auto-pause | pendiente | alta | perf | parte de 0049 |
| [0049d](0049d-graph-edges-vertex-pulling.md) | Aristas via vertex pulling con TBO | pendiente | alta | perf | parte de 0049 |
@@ -0,0 +1,100 @@
# 0049a — Setup proyecto `osint_graph` + sub-repo `graph_explorer`
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | 0049a |
| **Estado** | pendiente |
| **Prioridad** | alta |
| **Tipo** | infraestructura — parte de [#0049](0049-osint-graph-viewer.md) |
## Dependencias
**Bloqueada por:** ninguna.
**Desbloquea:** todos los demas sub-issues de 0049 (la estructura del proyecto debe existir antes).
---
## Objetivo
Dejar la infraestructura del proyecto `osint_graph` lista: estructura de directorios, `project.md`, vault con symlink, sub-repo Gitea vacio para `graph_explorer`, e indexado en `registry.db`.
## Contexto
Sigue las reglas `projects.md` (estructura) y `cpp_apps.md` (sub-repo + ubicacion). El analisis `analysis/ontology_graph` ya existente sera la fuente de datos de pruebas — pero NO se mueve dentro del proyecto en este sub-issue (ortogonal).
## Arquitectura
```
projects/osint_graph/ # NEW
├── project.md # NEW (ver template docs/templates/project.md)
├── apps/
│ └── graph_explorer/ # NEW dir + .git apuntando a dataforge/graph_explorer
│ └── (vacio — el contenido se anade en 0049k)
├── analysis/ # vacio inicial
└── vaults/
├── vault.yaml # NEW
└── osint_data -> ~/vaults/osint_graph/ # symlink
~/vaults/osint_graph/{raw,processed,exports}/ # NEW dirs reales (fuera del repo)
dataforge/graph_explorer (en Gitea) # NEW repo vacio, branch master
```
## Tareas
### Fase 1 — Estructura local
- [ ] **1.1** Crear `projects/osint_graph/{apps,analysis,vaults}/`.
- [ ] **1.2** Crear `projects/osint_graph/project.md` con frontmatter:
```yaml
---
name: osint_graph
description: "Visualizacion + recoleccion de datos OSINT con grafos ontologicos. Visor agnostico GPU-accelerated capaz de consumir operations.db de cualquier app del registry."
tags: [osint, graph, visualization, ontology, gpu]
repo_url: ""
---
```
- [ ] **1.3** Crear `~/vaults/osint_graph/{raw,processed,exports}/` y symlink en `projects/osint_graph/vaults/osint_data`.
- [ ] **1.4** Crear `projects/osint_graph/vaults/vault.yaml`:
```yaml
vaults:
- name: osint_data
description: "Datos OSINT crudos + procesados + exports para graph_explorer"
path: "/home/lucas/vaults/osint_graph"
tags: [osint, graphs]
```
### Fase 2 — Sub-repo Gitea
- [ ] **2.1** Crear repo Gitea `dataforge/graph_explorer` (vacio, branch `master`). Usar `gitea_create_repo_*` o el flujo de `/full-git-push`.
- [ ] **2.2** En `projects/osint_graph/apps/graph_explorer/`: `git init -b master` + `git remote add origin <url>` + commit vacio inicial + push.
- [ ] **2.3** Anotar `repo_url` en el futuro `app.md` (creado en 0049k) y, si conviene, en el `project.md` actual.
### Fase 3 — Indexado
- [ ] **3.1** `./fn index` desde la raiz.
- [ ] **3.2** Verificar:
```sql
SELECT id, description FROM projects WHERE id='osint_graph';
SELECT id, name, path FROM vaults WHERE project_id='osint_graph';
```
### Fase 4 — Cleanup
- [ ] Push del repo principal a master con commit `feat(projects): osint_graph project + graph_explorer sub-repo bootstrap`.
- [ ] Verificar con `fn show osint_graph`.
## Criterio de done
- [ ] `fn show osint_graph` muestra el proyecto con vault correctamente indexado.
- [ ] `projects/osint_graph/apps/graph_explorer/.git` existe y `git remote -v` apunta a `dataforge/graph_explorer`.
- [ ] El symlink de vault funciona (`ls projects/osint_graph/vaults/osint_data/`).
## Riesgos
| Riesgo | Mitigacion |
|---|---|
| Repo Gitea ya existe | Reusar; `git remote set-url origin` |
| Vault path absoluto rompe en otros PCs | Documentar en project.md; cada PC monta `~/vaults/osint_graph/` |