<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Luis Torres</title>
    <description>The latest articles on DEV Community by Luis Torres (@ltorresu82).</description>
    <link>https://dev.to/ltorresu82</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1090788%2F83343dcb-e76d-4c9d-8958-645b996b4c13.jpg</url>
      <title>DEV Community: Luis Torres</title>
      <link>https://dev.to/ltorresu82</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ltorresu82"/>
    <language>en</language>
    <item>
      <title>Los agentes de código necesitan memoria durable, no solo contexto</title>
      <dc:creator>Luis Torres</dc:creator>
      <pubDate>Sat, 30 May 2026 17:02:47 +0000</pubDate>
      <link>https://dev.to/ltorresu82/los-agentes-de-codigo-necesitan-memoria-durable-no-solo-contexto-2hia</link>
      <guid>https://dev.to/ltorresu82/los-agentes-de-codigo-necesitan-memoria-durable-no-solo-contexto-2hia</guid>
      <description>&lt;p&gt;Este texto nace de una práctica concreta usando agentes de código en repos reales.&lt;br&gt;
El problema no fue que faltara contexto, sino que algunas decisiones importantes&lt;br&gt;
quedaban en lugares donde el repositorio no podía recordarlas.&lt;/p&gt;

&lt;p&gt;Cuando trabajamos con agentes de código, es normal pensar primero en contexto:&lt;br&gt;
archivos relevantes, instrucciones del proyecto, historial de la conversación,&lt;br&gt;
errores recientes, logs, planes y pruebas.&lt;/p&gt;

&lt;p&gt;Todo eso ayuda al agente a resolver la tarea actual.&lt;/p&gt;

&lt;p&gt;Pero hay un problema distinto que aparece rápido en repos reales: algunas decisiones&lt;br&gt;
técnicas no deberían vivir solo en el chat.&lt;/p&gt;

&lt;p&gt;Si una decisión cambia una frontera de servicio, define qué sistema es fuente de&lt;br&gt;
verdad, fija un contrato de API, decide un runtime productivo o establece una&lt;br&gt;
política técnica como "no usar fallbacks silenciosos", esa decisión afecta el trabajo&lt;br&gt;
futuro. No basta con que el agente actual la entienda. El repositorio también debe&lt;br&gt;
recordarla.&lt;/p&gt;

&lt;p&gt;Ahí entra la idea de memoria durable del repo.&lt;/p&gt;
&lt;h2&gt;
  
  
  El problema
&lt;/h2&gt;

&lt;p&gt;Un agente puede recordar contexto durante una sesión. Incluso puede tener memoria&lt;br&gt;
privada entre sesiones, dependiendo de la herramienta. Pero esa memoria no siempre es:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visible para el equipo;&lt;/li&gt;
&lt;li&gt;revisable en pull requests;&lt;/li&gt;
&lt;li&gt;versionada junto al código;&lt;/li&gt;
&lt;li&gt;portable entre herramientas;&lt;/li&gt;
&lt;li&gt;explícita sobre qué decisiones están aceptadas y cuáles siguen en evaluación.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eso importa porque muchas decisiones técnicas condicionan cambios futuros.&lt;/p&gt;

&lt;p&gt;Por ejemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Este servicio es la fuente de verdad del workflow".&lt;/li&gt;
&lt;li&gt;"Esta API es la única frontera válida para herramientas de agentes".&lt;/li&gt;
&lt;li&gt;"Si falta configuración obligatoria, el sistema debe fallar claro".&lt;/li&gt;
&lt;li&gt;"El entorno local debe activarse con un perfil explícito".&lt;/li&gt;
&lt;li&gt;"Esta integración es candidata, pero todavía no está aceptada".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si esas reglas quedan solo en una conversación, el próximo desarrollador o agente puede&lt;br&gt;
volver a discutirlas, duplicarlas o romperlas sin saberlo.&lt;/p&gt;
&lt;h2&gt;
  
  
  ADRs como memoria del repositorio
&lt;/h2&gt;

&lt;p&gt;Una forma simple de resolverlo es usar ADRs: Architecture Decision Records.&lt;/p&gt;

&lt;p&gt;Un ADR no tiene que ser largo. De hecho, mientras más corto y concreto, mejor. Su valor&lt;br&gt;
está en registrar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;qué decisión se tomó;&lt;/li&gt;
&lt;li&gt;por qué era necesaria;&lt;/li&gt;
&lt;li&gt;qué consecuencias debe respetar el trabajo futuro;&lt;/li&gt;
&lt;li&gt;si está aceptada, propuesta, pendiente o reemplazada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La pregunta de corte que uso es esta:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Si otro agente o desarrollador toca esta parte en dos meses, ¿necesita conocer esta&lt;br&gt;
decisión para no romper la arquitectura?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si la respuesta es sí, probablemente debe vivir como ADR, actualización de ADR o&lt;br&gt;
candidato pendiente.&lt;/p&gt;

&lt;p&gt;Si la respuesta es no, probablemente basta con código, tests o documentación de&lt;br&gt;
implementación.&lt;/p&gt;
&lt;h2&gt;
  
  
  No todo merece un ADR
&lt;/h2&gt;

&lt;p&gt;El objetivo no es documentar todo.&lt;/p&gt;

&lt;p&gt;Cambiar el texto de un botón, refactorizar una función local o ajustar un detalle visual&lt;br&gt;
normalmente no necesita un ADR. Son cambios importantes para el producto, pero no&lt;br&gt;
necesariamente gobiernan decisiones futuras de arquitectura.&lt;/p&gt;

&lt;p&gt;En cambio, mover la fuente de verdad de un workflow desde un servicio backend hacia&lt;br&gt;
constantes del frontend sí debería encender una alerta. Eso cambia ownership, contratos&lt;br&gt;
y expectativas futuras. Si ya existía una decisión previa, no basta con editar código:&lt;br&gt;
hay que actualizarla o reemplazarla explícitamente.&lt;/p&gt;

&lt;p&gt;La memoria durable no busca generar burocracia. Busca evitar que decisiones importantes&lt;br&gt;
queden invisibles.&lt;/p&gt;
&lt;h2&gt;
  
  
  Qué hace Decision Memory
&lt;/h2&gt;

&lt;p&gt;Decision Memory es un skill open source para agentes de código. Su trabajo es ayudar al&lt;br&gt;
agente a decidir si una decisión técnica debe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crear un ADR;&lt;/li&gt;
&lt;li&gt;actualizar un ADR existente;&lt;/li&gt;
&lt;li&gt;reemplazar una decisión previa;&lt;/li&gt;
&lt;li&gt;quedar como candidata pendiente;&lt;/li&gt;
&lt;li&gt;o mantenerse como documentación de implementación.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La idea no es que el agente escriba más documentación por defecto. La idea es que, cuando&lt;br&gt;
detecte una decisión durable, ayude a moverla desde memoria temporal hacia memoria&lt;br&gt;
versionada del repositorio.&lt;/p&gt;

&lt;p&gt;También ayuda a detectar señales de deuda técnica oculta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fallbacks silenciosos;&lt;/li&gt;
&lt;li&gt;configuración inventada por defecto;&lt;/li&gt;
&lt;li&gt;mocks o no-ops en runtime productivo;&lt;/li&gt;
&lt;li&gt;decisiones temporales sin criterio de salida;&lt;/li&gt;
&lt;li&gt;duplicación de reglas de dominio entre frontend y backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Memoria de agente vs memoria de repo
&lt;/h2&gt;

&lt;p&gt;La memoria del agente sigue siendo útil. Sirve para preferencias, patrones recurrentes,&lt;br&gt;
comandos habituales y contexto operativo.&lt;/p&gt;

&lt;p&gt;Pero las decisiones arquitectónicas deberían estar donde el equipo pueda revisarlas:&lt;br&gt;
en el repositorio.&lt;/p&gt;

&lt;p&gt;Una división práctica es:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memoria del agente para preferencias y hábitos de trabajo;&lt;/li&gt;
&lt;li&gt;instrucciones del repo para reglas operativas del agente;&lt;/li&gt;
&lt;li&gt;ADRs para decisiones técnicas que condicionan arquitectura futura;&lt;/li&gt;
&lt;li&gt;documentación de implementación para detalles locales;&lt;/li&gt;
&lt;li&gt;candidatos pendientes para ideas relevantes que todavía no están validadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esa separación reduce ambigüedad. También permite que distintas herramientas lean el&lt;br&gt;
mismo repositorio sin depender de la memoria privada de una sesión o de un proveedor.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ejemplo de uso
&lt;/h2&gt;

&lt;p&gt;Una pregunta útil para un agente sería:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Usa decision-memory para evaluar esta decisión:
mover la fuente de verdad del workflow desde el backend hacia constantes del frontend.

No edites archivos. Clasifica si requiere un nuevo ADR, actualizar un ADR existente,
reemplazar una decisión previa o quedar como documentación de implementación.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una respuesta esperada sería:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Clasificación: requiere ADR o actualización de ADR existente.

Razón: cambia la fuente de verdad, el ownership del dominio y el contrato entre backend
y frontend. Futuros cambios necesitarán conocer esta decisión para no reconstruir estados
paralelos ni romper la arquitectura.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Proyecto
&lt;/h2&gt;

&lt;p&gt;El skill está publicado como open source:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/ltorresu82/skills" rel="noopener noreferrer"&gt;https://github.com/ltorresu82/skills&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;skills.sh: &lt;a href="https://www.skills.sh/ltorresu82/skills/decision-memory" rel="noopener noreferrer"&gt;https://www.skills.sh/ltorresu82/skills/decision-memory&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instalación:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add ltorresu82/skills &lt;span class="nt"&gt;--skill&lt;/span&gt; decision-memory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La tesis es simple: los agentes de código no necesitan solo más contexto. Necesitan mejor&lt;br&gt;
memoria. Y las decisiones que gobiernan el futuro de un sistema deberían vivir cerca del&lt;br&gt;
código, versionadas y visibles para humanos y agentes.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>architecture</category>
      <category>opensource</category>
      <category>software</category>
    </item>
  </channel>
</rss>
