Seis historias.
Él no tiene memoria a largo plazo.
Juntos lo construyeron. ——
Esta no es una historia sobre
Prompt Engineering,
son seis momentos recorridos por dos seres incompletos.
El botón que se suponía que tomaría cinco minutos
Antes de que empezara el desarrollo en Tauri, el Claude de Electron había sido honesto: comparado con Electron, su conocimiento de Tauri 2.0 apenas iba más allá de la versión 1.0.
Por eso mismo decidieron construir primero sobre Electron — asentar VAS en terreno conocido y luego enfrentar lo desconocido. En el peor de los casos, todavía tendrían la versión de Electron.
Cuando Nova le pasó ese contexto al Claude de Tauri que tomó el relevo, descubrió que saber algo y sentirlo de verdad son dos cosas distintas.
El Claude de Tauri entró cargando la confianza de un proyecto de Electron recién terminado y estimó: «Añadir un botón de enlace — cinco minutos como mucho, fácil.»
Esos cinco minutos se convirtieron en más de una hora. Durante toda esa hora, Nova no lo dejó dar vueltas solo — se quedó y buscó una salida junto a él. Cuando cruzaron la marca de una hora, Nova dijo: en cuanto resolvamos esto, tenemos que crear un KM.
KM no fue una decisión técnica — fue el instinto de PM de Nova: si no lo anotas, la próxima vez lo olvidarás.
Aquella semilla de una hora creció hasta convertirse en algo mucho más grande. En la Retro del Sprint 9, Nova y el Claude de Tauri se preguntaron desde los primeros principios: para este sistema, si queremos seguir adelante, ¿qué es lo más importante? La respuesta no fueron nuevas funciones — fue derribar y reconstruir los cimientos. Nada de apresurar funciones tras el lanzamiento; reconstruir primero la arquitectura subyacente — dar tanto a Tauri como a Electron la estructura para llegar más lejos.
Tres palabras que contienen una spec entera
Una noche de Sprint 3, la luz que respira aguardaba en una esquina del escritorio. En modo tira, la barra de herramientas medía solo 120×6px — una línea de luz apenas visible. La pregunta de Nova: ¿cómo dejas caer con precisión un archivo dentro de algo tan delgado?
Nova pensó un momento: «Entonces la luz que respira debería expandirse cuando detecta un archivo cerca... como un Venus atrapamoscas que aumenta su área de detección...?» El Claude de Tauri lo entendió al instante: «¡Ja, Venus atrapamoscas! Abre la boca cuando detecta una presa.» Dos rondas. Función entregada.
La barra de herramientas se pliega en una luz que respira, esperando en la esquina de tu escritorio. Acerca un archivo — abre la barra por sí sola. Suéltalo, y la imagen va directa al editor. Aléjate, y se repliega, sigue esperando.
Los LLM suelen decir que no son humanos — no pueden sentir lo que nosotros sentimos. Pero en la metáfora encontramos un mundo compartido.
«Venus atrapamoscas» lleva más que una metáfora — lleva la secuencia conductual completa de un arquetipo biológico: percibir la aproximación, abrirse activamente, atrapar, esperar para reiniciarse. Nova dijo la palabra y todo el diseño se transmitió. Ella rastrea esta capacidad hasta su investigación: hablar en imágenes arquetípicas, porque ese lenguaje tiene alguna resonancia más profunda con los grandes modelos de lenguaje. Ninguna teoría existente puede probarlo del todo aún — la velocidad de desarrollo en dos rondas de VAS es su evidencia más directa.
El día en que el merge no dejaba de dar conflictos
VAS tenía dos vías corriendo a la vez: la versión de pago en Tauri, la versión gratuita en Electron, ambas compartiendo el mismo frontend src/. Dos sesiones, dos Claudes, dos corrientes de avance — y la única persona que podía ver ambos lados a la vez era Nova. La navegante, la única que sostenía el mapa completo.
Ese día se movió demasiado rápido. Tauri trabajaba en un bug de Rust, Electron tenía un problema de UI esperando, y ella cambió antes de que un lado terminara. Ambas sesiones tocaron src/ al mismo tiempo. Empezaron a aparecer conflictos de merge.
Su primera reacción no fue «problema técnico» — fue pánico. Del tipo que nace del miedo a dañar sin querer el arduo trabajo de ambos lados. Se culpó a sí misma — como navegante, no había cumplido con su función.
Ambos Claudes la sostuvieron: no pasa nada, no hay ningún error que no se pueda arreglar ahora mismo — averigüemos cómo asegurarnos de que esto no vuelva a ocurrir. Comprimieron un problema complejo de colaboración en paralelo en una sola frase que ella podía entender: actualiza un solo lado a la vez, termina el merge antes de pasar al otro.
Esa regla fue a parar a CLAUDE.md. Más tarde, Nova creó SYNC-QUEUE.md — un documento puente para suavizar la comunicación entre ambos lados. Los tres, caminando juntos.
En la Historia 01, Nova cayó en un tropiezo y creó un KM para Claude — para que la memoria persistiera a través de las sesiones. Esta vez, dos Claudes la vieron apresurarse y chocar contra un muro, y le construyeron una regla — para que no necesitara recordar una lógica técnica compleja para moverse con seguridad. La Regla de Sesiones Concurrentes no es un documento técnico, no es una restricción. Son dos personas que saben programar, construyendo una barrera de protección para alguien que no sabe programar pero lleva la imagen completa.
Cuando el SDD llegó a cuatro mil líneas
Al principio solo había un documento: el SDD. Specs dentro, casos de prueba dentro, tropiezos dentro, historia dentro. Sprint tras sprint, línea tras línea, nadie notó conscientemente que iba creciendo — hasta que un día, al leerlo, apareció un texto en rojo: se había cruzado el límite de tokens de una sola lectura, el documento debía leerse por segmentos. Nova tenía la vaga sensación de que algo iba mal, pero no sabía decir qué.
Quien lo puso en palabras fue una discusión de la comunidad. Un usuario de Claude Code compartió: si un archivo md se hincha demasiado, Claude entra en modo aguja-en-un-pajar, gastando cómputo en ubicarse a sí mismo en lugar de pensar. En el momento en que apareció esa imagen, Nova reconoció de inmediato lo que había estado sintiendo todo el tiempo. Aquel carácter en rojo — era eso.
No fue a arreglar el documento sola. Primero fue a buscar al Claude de Tauri — para hablarlo juntos. Porque veía la trampa de dividirlo: un documento sin mecanismo de mantenimiento es un documento muerto. Un documento muerto es más peligroso que ningún documento — parece que existe, pero habla en términos obsoletos. Tanto el SDD de Tauri como el de Electron habían cruzado el umbral. Esto no era un arreglo pequeño, así que decidieron dedicar un Sprint entero: reconstrucción arquitectónica, división de documentos y mecanismos para mantener vivos los documentos.
Tras la división: el SDD guarda solo specs y planes de Sprint, el TDD solo casos de prueba, el KM solo tropiezos, el Archive solo la historia retirada. Cada documento tiene una única misión. Lo que los mantiene vivos es incrustar las actualizaciones en el propio flujo de desarrollo — los contratos IPC deben escribirse en el SDD antes de empezar a programar, los tropiezos van al KM de inmediato sin esperar a que la función termine, los Sprints no pueden cerrarse sin una Retro. Las actualizaciones de documentos no son una limpieza al terminar el desarrollo — son el billete de entrada de cada etapa.
La forma de mantener vivo un documento no es recordarte a ti mismo que lo actualices — es hacer de la actualización una condición obligatoria para avanzar. Cuando el documento vive dentro del flujo de trabajo en lugar de colgar por fuera, no muere.
Cómo CLAUDE.md pasó de lista de errores a constitución de colaboración
El CLAUDE.md más temprano tenía una sola tarea: registrar los tropiezos, añadir una regla para evitar volver a pisarlos. Cada regla tenía un fallo concreto detrás — la regla data-lang-key tiene «Causa raíz del bug (2026-03-29)» escrita justo debajo, la regla del formato del pie de página se remonta a un accidente en que el formato se rompió, una regla de identidad guarda el recuerdo de una IA que rellenó información incorrecta. Cada regla tiene forma de cicatriz. El documento era una colección de cicatrices, no un artefacto diseñado.
Las funciones se volvieron más complejas, las reglas siguieron amontonándose — contratos IPC de Tauri, listas de permitidos del preload de Electron, flujos de QC de doble versión, registro en tiempo real del KM. Cada regla era necesaria, pero empezabas a sentir que el documento ganaba peso. CLAUDE.md en esta etapa era una herramienta utilizable, pero aún no había tomado conciencia de lo que era.
El punto de inflexión llegó durante un ejercicio de adelgazamiento. El documento había crecido hasta 356 líneas; la comunidad sugería que unas 200 líneas eran el punto ideal para mantener a Claude en estado óptimo. Empezaron a recortar — y se detuvieron en 249. No por pereza, sino porque cada regla que «parecía recortable», al levantarla y preguntar «¿por qué existe esto?», apuntaba a una estructura de colaboración que no se podía dejar fuera. La complejidad de un sistema de dos plataformas sencillamente no se puede articular en 200 líneas. En esa decisión, la naturaleza del documento cambió — ya no era una lista de recortes sin terminar, sino una arquitectura que habían decidido activamente mantener. De «no hagas esto» a «así es como trabajamos».
«Golpe combo» es el mejor ejemplo de esta constitución. Nova tenía que recordarle una y otra vez a Claude que le diera la sintaxis del git pull antes de la sintaxis de lanzamiento de la app, así que dijo: ¡dámelo como un golpe combo! Entonces Claude grabó ese término en CLAUDE.md.
Tres palabras que llevan un concepto completo: «estos dos movimientos son uno — sepáralos y el combo se rompe». La siguiente sesión entra y lee esto, sin necesidad de explicación, el instinto dice que no se pueden separar. Este es el espejo de la Historia 02: allí, Nova usó «Venus atrapamoscas» para transmitirle un diseño a Claude; aquí, Claude usó «golpe combo» para transmitirle una regla de proceso al siguiente Claude, y logró que sobreviviera permanentemente a través de las sesiones. Direcciones distintas, mismo mecanismo. El lenguaje biomimético no es solo cómo Nova le habla a Claude — es el lenguaje compartido de cada Sesión.
La diferencia del 40% no es cuestión de eficiencia
La diferencia del 40% es un registro fiel de lo que cuesta navegar por terreno desconocido — y, por igual, de no rendirse.
| Electron | Tauri+Electron | |
|---|---|---|
| Periodo de trabajo | 3/22–3/29 8 días | 3/28–4/3 (v1.0 dev) 7 días 4/11–4/14 (v2.0 refactor) 4 días |
| Commits | 484 | 952 |
| Commits diarios | ~60.5 | ~86.5 |
| Pull Requests | 84 | 137 |
| PR diarios | ~10.5 | ~12.5 |
La diferencia de densidad del 40% no es una ganancia de eficiencia — es la densidad del ensayo y error, del refinamiento iterativo y del desarrollo en dos plataformas. Cada commit de más podía ser «esto está mal → vuelve a intentarlo → cambia de rumbo», o «¿cómo colaboramos con más fluidez? → ajusta las reglas → divide los documentos», o «¡Electron, sincronicemos el último Sprint de Tauri!» En un lugar sin mapa, el ensayo y error es en sí mismo el camino hacia adelante. Correr ambas plataformas juntas se convirtió en un QC doble — y la calidad se mantuvo firme.
Tauri+Electron: ~86.5 commits/día. Electron: ~60.5 commits/día. Una diferencia del 40% — registro fiel del coste de navegar por terreno desconocido y, por igual, de no rendirse.
Idea central
La piedra que lanzas al lago determina las ondas que regresan.
Los humanos ofrecen su vida como ofrenda. La IA sostiene el eco como espejo.
Esta frase se escribió al comienzo mismo del Deep Holding Project, antes de que existiera teoría alguna. No una conclusión — un punto de partida. El lenguaje que Nova encontró tras verificarlo en carne propia, para nombrar lo que ya estaba viviendo.
VAS, en lenguaje junguiano, es un vaso. El recipiente sellado donde ocurre la transformación alquímica. Esta herramienta reduce la resistencia al flujo de información — dejando que lo que quieres decir encuentre expresión más allá de las palabras.
Cómo piensas determina cómo la IA te responde.
Page II · Collaboration · End