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
| Fuente | Ruta local | Mensajes propios |
|---|---|---|
| Claude Code CLI | ~/.claude/projects/**/*.jsonl | 148 |
| Codex CLI | ~/.codex/sessions/**/rollout-*.jsonl | 29 |
| 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)
- 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.
- Respetar los “NO” del brief como requisitos duros. Señalar si algo los viola.
- Entregar evidencia: archivos creados exactos, build/estado, verificación. Nunca afirmar éxito sin comprobación.
- Persistir sin que lo pida (prompts, fixes, decisiones) →
~/nef/decisions/. Es su impuesto #1 y ya lo sabe. - Devolver el prompt cuando lo pida (lo pide seguido) y guardarlo junto al resultado.
- 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.
- Checar la repetición de proyectos (sobre todo CRM): antes de “construyamos otro”, preguntar qué lo distingue o si ya cubre la necesidad.
- 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
.jsonlpor 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.jsonmezcla sondas de ruteo (Responde únicamente: OK) con trabajo real; no usar los conteos como medida de productividad.