Integración InfoQ → grafo second-brain (revisión + limpieza, sesión 2026-09-04)

Contexto: los 24 nodos derivados del curso curado InfoQ (ver [CREDENCIAL].md) se integraron al grafo como content/nodes/*.md + content/projects/curso-curado-infoq-ecommerce.md. Esta sesión revisó la integración y la alineó con las convenciones del second-brain. Commit fab60ab.

## ESTADO DE LA INTEGRACIÓN
- 24 nodos nuevos (kind: concept, status: unseen, level: 0) — todos en `uses` del project.
- Project `curso-curado-infoq-ecommerce`: status `active` (started 2026-09-04), 6 grants
  (context-engineering L3, five-layer-evaluation L3, feature-store L3, multi-agent-systems L2,
  mcp-security L2, agentic-commerce L3). Grants solo aplican al pasar a `shipped` (regla del grafo).
- Build OK: 303 nodos / 20 projects, sin aristas colgantes.
 
## CONVENCIONES APLICADAS (para no volver a repetir este trabajo)
1. Nodos `unseen` NO llevan `hours` ni `reviewed`/`next_review` — eso lo pone
   `npm run node:log` al estudiar. Los nodos importados de un curso se crean limpios.
2. Dirección de aristas: `X applies Y` = "X usa Y en la práctica". Un concepto no debe
   apuntar a su propio experimento con `applies`; es el experimento el que `applies` el concepto.
3. Tags de seguridad: `ai-security` (o `cybersec`), nunca `security` suelto.
4. `generalizes` = "es un caso MÁS amplio de". Un patrón específico (ephemeral-agents) NO
   generaliza su paraguas (multi-agent-systems); usa `requires`.
 
## CAMBIOS HECHOS
- Quité `hours: 0` + `reviewed` de los 24 nodos unseen.
- `reranking`: eliminé `applies → rag-reranker-eval`; en su lugar `rag-reranker-eval applies → reranking`.
- `ephemeral-agents`: `generalizes` → `requires` (multi-agent-systems).
- `five-layer-evaluation`: `generalizes` → `applies` (evaluation-debt).
- Tags `[security, ai-systems]` → `[ai-security, ai-systems]` (mcp-security, guardrails).
- `.gitignore`: añadí `tmp/`.
 
## PENDIENTES (decisión del usuario)
- `.tool-versions` (`latest nodejs`, no reproducible) — sin trackear.
- `agentic-commerce.md` (tracked) tiene `hours: 1` sin `reviewed` — inconsistencia menor.

Sin secretos. Fuentes de InfoQ públicas.