2026-09-18 — Cómo trabaja Nef en Claude y Codex (extracción local + síntesis)

Contexto: Nef pidió traer los datos de Claude (claude.app) y Codex (codex.app) para que los agentes aprendamos cómo trabaja allí. Se extrajeron solo sus mensajes (no respuestas de los modelos) desde los almacenes locales. El corpus vive en ~/nef/ai-sessions/ (re-ejecutable con extract.py).

Qué se extrajo y de dónde

FuenteRuta localMensajes propios
Claude Code CLI~/.claude/projects/**/*.jsonl148
Codex CLI~/.codex/sessions/**/rollout-*.jsonl29
Codex Desktop~/.codex/thread_history_1.sqlite (thread_items)7
Claude.app (Cowork/local agent)~/Library/Application Support/Claude/local-agent-mode-sessions/**5
Total único (deduplicado)189

Artefactos generados:

  • ~/nef/ai-sessions/corpus.jsonl — un registro por mensaje (source, project, ts, text).
  • ~/nef/ai-sessions/corpus.md — legible, agrupado por proyecto/thread.
  • ~/nef/ai-sessions/index.md — índice de sesiones/threads (títulos, modelo, cwd).
  • ~/nef/ai-sessions/stats.json — conteos y señales de método.
  • Además, Claude ya había dejado un perfil sintetizado en ~/.claude/projects/-Users-inventiva1/memory/*.md (auditoría de ~1,877 mensajes 2024→2026) — se conserva como fuente secundaria.

No extraíble limpiamente: las conversaciones de la UI principal de Claude Desktop (viven en IndexedDB/servidor), y ~/.codex/logs_2.sqlite (200 MB, es telemetría, no conversación). El grueso real de trabajo está en los CLI.

Cómo trabaja Nef (patrones observados en el corpus)

1. Abre con brief, cierra con monosílabos

Proyecto nuevo → brief largo y estructurado (título tipo # ENCARGO: o # Prompt:, objetivo, restricciones explícitas, entregables). Una vez fijada la dirección → seguimiento telegráfico: ejecuta, continúa, sigue, arranca, proceed, ya quedó, qué sigue, persiste hasta acá, responde solo con: ok. No re-explica; espera que el contexto se mantenga.

2. Prohíbe el over-build por adelantado

Casi cada brief trae un “NO”: “no construyas DMS”, “no agregues React, Vue, Tailwind”, “no crees todavía ningún archivo”, “primero pensemos la arquitectura”, “solo dominio público”, “scope mínimo a propósito”. Cuando el agente se adelanta, lo corta. Esto es la contracara de la memoria de “sobre-planear”: él ya sabe que sobre-planea y usa el prompt para acotarse.

3. Pide el prompt, no solo el resultado

Recurrente: “dame el prompt para actualizar 02-tema”, “dame el md de la ronda de cambios”, “me das el prompt?”, “dame el prompt para la gema”. Extrae el artefacto-prompt para portarlo a otra herramienta (WP/Elementor, otro agente, otro repo). Es su unidad de trabajo reutilizable — y también su impuesto de repetición cuando no lo persistía. La corrección correcta es guardarlo (ver §4).

4. Ya incorporó “persiste”

En el periodo reciente aparece explícito: “persiste hasta acá”, “guárdala, como info desde claude-dice”, “comment… and persist the memories about the projects in ~/nef/decisions”, “persist the decisions after each session”. Es una respuesta aprendida a la auditoría de julio — hay que seguir reforzándola, no reinterpretarla.

5. Ritual de verificación y prueba de existencia

Pide pruebas, no confianza: “haz una última verificación con tdd”, “haz el chequeo final como si fueras qa de ui”, “ejecuta npm run build… si falla corrígelo… dime exactamente qué archivos creaste”, “no me des el contenido en texto, escribe el archivo de verdad”. Detesta el reporte sin evidencia.

6. Dirección de arte por incrementos y vocabulario preciso

No da specs cerradas; itera: “un 10% más de narrativa visual”, “se ve muy placeholder”, “le falta espectacularidad”, “no tienen por qué ser dos al mismo nivel”, “que se fundan en uno solo”, “a 100% de ancho”. Usa lenguaje visual/táctil (“onírico”, “entrañable”, “elegante como elementra”, “que no se sienta google system design”). Traduce opinión → corrección concreta. Ahí es donde quiere al agente.

7. Temas que se repiten (obsesiones reales)

  • CRM / ventas: Twenty (VW camiones), SICOP Rails, crm-demo, Rust CRM — 4+ intentos. Patrón documentado: sobrevive el que tiene propósito explícito (Rust = aprender).
  • Archivo y dominio público: clon de archive.org, Pottermore con personajes PD, public_domain_gem, lectura de Alicia. Coherente con su política (soberanía/anticopyright).
  • Orquestación local-first de agentes: OpenClaw, LangGraph, Ollama, ruteo de modelos.
  • Editorial / identidad: Rebeca Pal (sitio + tema WP), Somos Valientes, Espejo Humeante.
  • WebGL / Three.js: inmobiliaria 3D, Three Lab + HUD FPS.

8. Ritmo horario (mensajes propios, UTC-6)

Picos: 19–21h (creativo, 49 msgs), 8–9h y 13–14h (cliente/día, ~38), 0–2h (cola de trasnoche, 37 — pero incluye muchas sondas de test). Confirma el ritmo ya documentado: creativo de noche, cliente de mañana, sin sesiones reales de 3am (esas son pruebas de ruteo).

9. Claude vs Codex (uso diferenciado)

  • Claude Code = mesa de trabajo larga (148 msgs): builds multi-paso (VW CRM, Rebeca Pal, Somos Valientes, SICOP).
  • Codex = síntesis de datos/presentaciones para stakeholders (Excel→slides, auditoría Lakes & Soto), arquitectura de orquestador, y sitios de un solo archivo vía el plugin @sites.
  • Codex trae UX que consume: anotaciones sobre la respuesta (<response-annotations>), adjuntos locales, turn_aborted. Nef anota y responde encima — el comentario es tan importante como el prompt.

10. Modo aprendizaje (reciente)

2026-09-18, ráfaga conceptual: “explain me rust”, “explícame qué es una RAG”, “explícame qué es una GAN en 5 pasos”, “explícame redes adversariales”. Conecta con la brecha DS/ML de la memoria: usa los agentes para aprender, no solo para construir. No confundir esta curiosidad con un roadmap; es consumo puntual.

Cómo debo aplicar esto (para agentes)

  1. Brief → silencio operativo. Cuando dé un brief estructurado, ejecutar sin re-preguntar lo ya dicho; responder al seguimiento telegráfico con acciones, no con planes.
  2. Respetar los “NO” del brief como requisitos duros. Señalar si algo los viola.
  3. Entregar evidencia: archivos creados exactos, build/estado, verificación. Nunca afirmar éxito sin comprobación.
  4. Persistir sin que lo pida (prompts, fixes, decisiones) → ~/nef/decisions/. Es su impuesto #1 y ya lo sabe.
  5. Devolver el prompt cuando lo pida (lo pide seguido) y guardarlo junto al resultado.
  6. Dirección de arte: traducir sus incrementos (“10% más X”) a un cambio concreto y mostrar el antes/después; no sobre-corregir en una pasada.
  7. Checar la repetición de proyectos (sobre todo CRM): antes de “construyamos otro”, preguntar qué lo distingue o si ya cubre la necesidad.
  8. Idioma: responder en el idioma en que escriba; ES para arte/cliente, EN para técnico.

A verificar / límites

  • El corpus son solo sus mensajes; el contexto completo (lo que el modelo respondió) está en los .jsonl por si se necesita reconstruir una sesión.
  • Faltan las conversaciones de la UI de Claude Desktop: si importan, hay que ir a IndexedDB/leveldb y ver qué es recuperable (sucio, no garantizado).
  • stats.json mezcla sondas de ruteo (Responde únicamente: OK) con trabajo real; no usar los conteos como medida de productividad.