<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>daimon Blog</title>
        <link>https://daily-nerd.github.io/daimon/es/blog</link>
        <description>daimon — releases, explainers, and field incidents.</description>
        <lastBuildDate>Sat, 15 Aug 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>es</language>
        <item>
            <title><![CDATA[daimon 0.31.0: reglas que se sostienen hasta que una persona las retira]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/daimon-0-31</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/daimon-0-31</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hay hechos de un proyecto que no son creencias. "Nunca desplegar el servicio]]></description>
            <content:encoded><![CDATA[<p>Hay hechos de un proyecto que no son creencias. "Nunca desplegar el servicio
de pagos un viernes" no es algo que el agente deba re-derivar en cada sesión,
sopesar contra contexto más nuevo, ni olvidar en silencio bajo presión de
presupuesto. Es una restricción vigente, y hasta ahora daimon no tenía un
lugar para eso: una regla dicha una vez caía en la partición de creencias, no
se arrastraba entre sesiones, y era lo primero que se recortaba cuando el
briefing excedía el presupuesto. 0.31.0 agrega los pinned rulings.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="reglas-vigentes">Reglas vigentes<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-31#reglas-vigentes" class="hash-link" aria-label="Enlace directo al Reglas vigentes" title="Enlace directo al Reglas vigentes" translate="no">​</a></h2>
<p>Un ruling es la polaridad positiva del ledger de refutaciones. Una refutación
registra lo que se descartó; un ruling registra lo que rige. Mismo ledger,
misma maquinaria de ciclo de vida, afirmación opuesta, y la polaridad se
deriva del evento fundacional, nunca de un campo que un escritor pueda fijar.</p>
<p><code>daimon ruling propose</code> registra un candidato. Un agente puede proponer con
<code>--by agent</code>, y un candidato es todo lo que un agente puede producir: la
activación exige <code>daimon ruling ratify</code> de una persona en una terminal
interactiva. Es la misma regla de autoridad que sostiene el resto de daimon.
La identidad y la autoridad se derivan, nunca se autoafirman.</p>
<p>Una vez activo, un ruling se renderiza al tope de cada briefing, en cada
superficie, como una sección compacta:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">Standing rulings (human-ratified — honor these):</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">§ never deploy the payments service on a friday</span><br></div></code></pre></div></div>
<p>Esa sección es parte del esqueleto. Sobrevive la presión de presupuesto que
recorta todas las demás secciones, se renderiza antes de que exista el primer
checkpoint de un proyecto nuevo, y cuando el briefing por LLM (opt-in) está
activo la sección se antepone literal, nunca re-narrada por un paso
generativo.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="las-decisiones-de-diseño-que-conviene-decir-sin-rodeos">Las decisiones de diseño que conviene decir sin rodeos<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-31#las-decisiones-de-dise%C3%B1o-que-conviene-decir-sin-rodeos" class="hash-link" aria-label="Enlace directo al Las decisiones de diseño que conviene decir sin rodeos" title="Enlace directo al Las decisiones de diseño que conviene decir sin rodeos" translate="no">​</a></h2>
<p><strong>La ratificación está ligada al contenido.</strong> <code>ruling ratify</code> registra un
hash del texto exacto que te mostró, y la activación se rehúsa si el texto
almacenado cambió entre el prompt y tu confirmación. Lo que aprobás es lo que
se activa, byte por byte.</p>
<p><strong>Una propuesta de agente no puede cambiar lo que se renderiza.</strong> Los agentes
pueden proponer una revisión o el retiro de un ruling activo, pero el texto
activo queda intacto hasta que una persona resuelva la propuesta, y el fold
lo garantiza por debajo del CLI: ni siquiera un ledger editado a mano puede
promover las palabras de un agente a tu briefing.</p>
<p><strong>El bucle de eco se cierra en la frontera de escritura.</strong> Una sección que se
renderiza en cada sesión sería, si no, una fotocopiadora: la próxima captura
re-extrae el texto del ruling como una creencia nueva, que decae, deriva y se
renderiza dos veces. 0.31.0 filtra los ecos exactos en la admisión del
checkpoint. El descarte se cuenta bajo su propio código de razón y se ve en
<code>daimon status</code>, nunca en silencio, y el filtro falla abierto: un ledger
ilegible jamás puede costarte una captura.</p>
<p><strong>La sección está acotada y nunca se trunca en silencio.</strong> Los rulings tienen
tope (siete por defecto, <code>DAIMON_RULING_CAP</code> para cambiarlo) y el texto de
cada uno está acotado al momento de escribir. Si un ledger llega a tener más
rulings activos que el tope, el briefing dice cuántos quedaron afuera y dónde
verlos.</p>
<p>Los rulings no decaen. El retiro es una ceremonia humana, y <code>daimon forget</code>
alcanza el texto de un ruling por valor como todo lo demás en el ledger.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="también-desde-029">También desde 0.29<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-31#tambi%C3%A9n-desde-029" class="hash-link" aria-label="Enlace directo al También desde 0.29" title="Enlace directo al También desde 0.29" translate="no">​</a></h2>
<p><strong>El visor local llegó en 0.30.0.</strong> <code>daimon serve</code> abre un visor de solo
lectura en localhost: briefing, ledger, páginas por sesión, búsqueda como
recall, una tira de verificación y una vista de impresión. 0.31.0 agrega el
carril de rulings junto al de refutaciones, cada polaridad con su propio
vocabulario.</p>
<p><strong>Un ledger tipado de relaciones llegó en modo sombra</strong>, con verbos de
adjudicación e historial renderizado en el visor.</p>
<p><strong>0.30.2 corrigió un defecto real de forget:</strong> forget por valor solo
comparaba contra el campo subject de una refutación, dejando cuatro de sus
cinco campos de texto plano inalcanzables por valor. Se encontró durante la
revisión de diseño de este release, y se corrigió y publicó antes que la
feature que lo hacía importar.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cómo-obtenerlo">Cómo obtenerlo<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-31#c%C3%B3mo-obtenerlo" class="hash-link" aria-label="Enlace directo al Cómo obtenerlo" title="Enlace directo al Cómo obtenerlo" translate="no">​</a></h2>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool install 'daimon-briefing[pretty]'</span><br></div></code></pre></div></div>
<p>Para actualizar:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool upgrade daimon-briefing</span><br></div></code></pre></div></div>
<p>Usuarios del plugin: <code>/plugin</code>, actualizar daimon y recargar.</p>]]></content:encoded>
            <category>release</category>
            <category>rulings</category>
            <category>refutations</category>
            <category>trust</category>
        </item>
        <item>
            <title><![CDATA[daimon 0.29.0: dejar registro de lo que se descartó]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/daimon-0-29</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/daimon-0-29</guid>
            <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Una memoria que solo registra lo que decidiste es media memoria. La otra mitad]]></description>
            <content:encoded><![CDATA[<p>Una memoria que solo registra lo que decidiste es media memoria. La otra mitad
es lo que descartaste, y por qué, para que nadie vuelva a perder una tarde
redescubriéndolo. 0.29.0 agrega esa mitad.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-ledger-de-refutaciones">El ledger de refutaciones<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-29#el-ledger-de-refutaciones" class="hash-link" aria-label="Enlace directo al El ledger de refutaciones" title="Enlace directo al El ledger de refutaciones" translate="no">​</a></h2>
<p><code>daimon refute add</code> registra un veredicto acotado sobre un sujeto, con la
evidencia citada en el momento de afirmarlo. La afirmación de un agente queda
como candidata hasta que una persona ejecuta <code>daimon refute ratify</code>.
<code>daimon refute guard</code> contrasta una acción propuesta contra el ledger activo
antes de que repitas algo ya resuelto, y <code>daimon refute overturn</code> es la forma de
dar de baja un veredicto cuando la evidencia cambia.</p>
<p>Hay dos decisiones de diseño que conviene decir sin rodeos.</p>
<p>Nada en el ledger se purga por antigüedad. Una refutación vale más con el
tiempo, no menos: que un enfoque haya fallado hace ocho meses es justamente lo
que querés ver cuando alguien lo propone de nuevo. Por eso
<code>daimon refute search</code> lee el ledger completo sin decaimiento por edad, a
diferencia del recall de checkpoints.</p>
<p>Y el guard es consultivo. Muestra el veredicto previo; no bloquea la acción. Un
agente puede seguir adelante igual. Lo que cambia es que queda registro de lo
que se le advirtió, así que un error repetido ahora se puede rastrear hasta una
decisión y no hasta el desconocimiento.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="las-skills-que-el-host-no-podía-ver">Las skills que el host no podía ver<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-29#las-skills-que-el-host-no-pod%C3%ADa-ver" class="hash-link" aria-label="Enlace directo al Las skills que el host no podía ver" title="Enlace directo al Las skills que el host no podía ver" translate="no">​</a></h2>
<p>El plugin publica dos skills, <code>daimon-briefing</code> y <code>daimon-end</code>. Estaban un
directorio por debajo de donde el loader busca, así que nada falló y nada avisó.
Simplemente no aparecían en la lista de skills de la sesión.</p>
<p>0.29.0 las ubica donde los hosts buscan, confirmado sobre una instalación real y
no inferido. La misma versión suma <code>daimon why</code>, el lado de lectura de la
evidencia de un ítem, a la skill que un agente efectivamente lee. Estaba
documentado para personas e invisible para agentes.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="también-en-esta-versión">También en esta versión<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-29#tambi%C3%A9n-en-esta-versi%C3%B3n" class="hash-link" aria-label="Enlace directo al También en esta versión" title="Enlace directo al También en esta versión" translate="no">​</a></h2>
<p>Los rollout stems de Codex ahora resuelven al id de sesión generado.</p>
<p>La referencia de CLI está reagrupada por lo que querés hacer y no por subsistema.</p>
<p>Una nueva página de claims lista cada número que publicamos sobre daimon, cada
uno con el comando que mide lo mismo en tu propia instalación. Esos comandos
corren de forma local y no envían nada. Tus números se quedan en tu máquina.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cómo-obtenerlo">Cómo obtenerlo<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-29#c%C3%B3mo-obtenerlo" class="hash-link" aria-label="Enlace directo al Cómo obtenerlo" title="Enlace directo al Cómo obtenerlo" translate="no">​</a></h2>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool install daimon-briefing</span><br></div></code></pre></div></div>
<p>Para actualizar:</p>
<div class="language-console codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-console codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool upgrade daimon-briefing</span><br></div></code></pre></div></div>
<p>Quienes usan el plugin necesitan <code>/plugin</code> y recargar. La caché del plugin está
fijada por versión, así que el arreglo de las skills llega con el commit de
release y no con la publicación en PyPI.</p>]]></content:encoded>
            <category>release</category>
            <category>refutations</category>
            <category>trust</category>
        </item>
        <item>
            <title><![CDATA[Los fracasos de tu agente son su memoria más valiosa, y casi nadie los guarda]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/negative-knowledge</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/negative-knowledge</guid>
            <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Todos los que construyen memoria para agentes están construyendo lo mismo:]]></description>
            <content:encoded><![CDATA[<p>Todos los que construyen memoria para agentes están construyendo lo mismo:
recordar qué funcionó, recordar qué se decidió, recordar quién prefiere tabs.
Útil. Pero la amnesia cara no es olvidar los éxitos. Es olvidar los fracasos.</p>
<p>Un agente que olvida un éxito lo vuelve a derivar en unos cientos de tokens.
Un agente que olvida un fracaso lo vuelve a intentar: el refactor que rompió
prod, la "limpieza obvia" que sostenía todo, el upgrade de dependencia que se
abandonó dos veces por la misma razón. Pagás el mismo callejón sin salida
cada vez que una sesión nueva entra caminando con toda confianza.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-campo-recién-se-dio-cuenta">El campo recién se dio cuenta<a href="https://daily-nerd.github.io/daimon/es/blog/negative-knowledge#el-campo-reci%C3%A9n-se-dio-cuenta" class="hash-link" aria-label="Enlace directo al El campo recién se dio cuenta" title="Enlace directo al El campo recién se dio cuenta" translate="no">​</a></h2>
<p>Tres papers aterrizaron sobre esto en los últimos dos meses.</p>
<p>Un paper del workshop AI4Research de ICML 2026
(<a href="https://arxiv.org/abs/2606.21024" target="_blank" rel="noopener noreferrer" class="">arXiv:2606.21024</a>) le pone nombre al
objeto: <em>conocimiento negativo</em>. Su diagnóstico de los sistemas de
investigación automatizada aplica palabra por palabra a los agentes de
código: los fracasos "aparecen como señales locales de debugging pero rara
vez se convierten en objetos de investigación durables". Su propuesta es una
capa de memoria "diseñada explícitamente para el fracaso", con registros
tipados y un curador separado del agente que falló, "para reducir el sesgo de
autoevaluación". El paper conceptual que el espacio necesitaba. También,
siendo honestos, deja abiertas las preguntas operativas: sin política de
obsolescencia, sin modelo de expiración, y sus propias tablas muestran un
registro de fracaso de un sistema confundiendo a otro (transferencia
negativa). El concepto quedó establecido. El ciclo de vida, no.</p>
<p>Un reporte de campo de un equipo en producción
(<a href="https://arxiv.org/html/2607.13091v1" target="_blank" rel="noopener noreferrer" class="">arXiv:2607.13091</a>) convirtió
comentarios de review aceptados en reglas de comportamiento persistentes, con
una heurística de calificación que vale la pena robar textual: <em>"¿Este error
podría plausiblemente repetirse en otro contexto? Si sí, se convierte en
regla."</em> Su franqueza también vale la pena robarla: sin grupo de control,
muestra chica, y esta advertencia que todo sistema de memoria debería
enmarcar y colgar en la pared: "una cultura de review ruidosa puede envenenar
el conjunto de reglas más rápido de lo que el paso de validación puede
atrapar".</p>
<p>Y <a href="https://arxiv.org/abs/2606.12329" target="_blank" rel="noopener noreferrer" class="">PROJECTMEM</a> publicó lo más parecido a
nuestro diseño: un log de eventos append-only, git-nativo, en texto plano,
con una compuerta determinística pre-acción, "memoria que no se limita a
responderle al agente sino que actúa sobre su próxima acción". A la categoría
la llaman <em>Memory-as-Governance</em>. Es el nombre correcto. (Relacionado, del
lado de la escritura: <a href="https://arxiv.org/abs/2607.02579" target="_blank" rel="noopener noreferrer" class="">GovMem</a> gobierna la
promoción de memorias con una decisión promote / reject / needs-review, que
es estructuralmente la misma compuerta que describimos más abajo del lado
humano.)</p>
<p>Así que el terreno no está vacío, y no estamos reclamando un "primero". Lo
que podemos ofrecer es un diseño que lleva un mes corriendo en un repo real,
con las cicatrices para demostrarlo.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="cómo-lo-hacemos-autoría-promoción-disparo">Cómo lo hacemos: autoría, promoción, disparo<a href="https://daily-nerd.github.io/daimon/es/blog/negative-knowledge#c%C3%B3mo-lo-hacemos-autor%C3%ADa-promoci%C3%B3n-disparo" class="hash-link" aria-label="Enlace directo al Cómo lo hacemos: autoría, promoción, disparo" title="Enlace directo al Cómo lo hacemos: autoría, promoción, disparo" translate="no">​</a></h2>
<p>Nuestra versión son dos herramientas con un humano en el medio.</p>
<p><strong>Los agentes escriben durante el trabajo.</strong> Cuando una sesión abandona un
enfoque, conserva una rareza a propósito, o pisa un acople no obvio, el
agente lo registra como scar candidato ahí mismo, bajo un contrato de
autoría: un callejón sin salida necesita evidencia del intento y del
abandono, una mina necesita los dos sitios acoplados nombrados, y la prosa de
transcript en primera persona se descarta porque un sentimiento no es una
afirmación sobre código. Cada scar activo en el repo de daimon se escribió
así, durante la sesión que se lo ganó.</p>
<p><strong>Sobre la cosecha automática, con honestidad.</strong> También construimos un
cosechador sin LLM que mina los checkpoints de sesión buscando candidatos,
porque un repo recién arrancado no tiene sesiones desde las cuales escribir.
Su historial de campo hasta ahora es mayormente ruido: el primer conteo fue 4
candidatos, 0 promovibles, y el log de falsos disparos es más largo que la
lista de aceptados. En respuesta se agregó un filtro de calificación que
exige las mismas obligaciones estructurales al momento de escritura
automática, y sus resultados todavía se están acumulando. Te lo contamos
porque los recibos son el punto: medimos nuestra propia herramienta, no llegó
a la vara, la enrejamos, y ahora también medimos la reja. Un sistema de
memoria que no puede
rechazar sus propias escrituras es el vector de envenenamiento del que
advierte el paper de reglas de comportamiento.</p>
<p><strong>Un humano promueve.</strong> Los candidatos caen en <code>.scars/candidates/</code>, nunca en
el conjunto activo. La promoción es un acto humano deliberado. Es la misma
conclusión a la que llegó el paper de reglas de comportamiento desde la otra
dirección: la calidad de sus reglas "depende de la calidad del review
humano", y las reglas malas amplifican errores. Una memoria de fracasos
auto-promovida es un vector de envenenamiento con diagrama de flujo.</p>
<p><strong>Scar dispara.</strong> <a href="https://github.com/Daily-Nerd/Scar" target="_blank" rel="noopener noreferrer" class="">Scar</a> es la mitad de
enforcement: los scars promovidos llevan anclas, y cuando un agente está por
editar código anclado, el scar se inyecta antes de que corra la herramienta
de edición. No en el commit, cuando el error ya está hecho y stageado. Antes
de la edición.</p>
<p>Esa última distinción no es solo nuestra; es el propio roadmap de PROJECTMEM.
Su sección de trabajo futuro describe "moverla a la frontera de tool-call del
agente (un hook pre-acción)" para que la compuerta avise "en el instante en
que un cambio empieza a parecerse a uno que ya falló—interviniendo antes de
la edición, no en el commit". Esa es la compuerta que Scar entrega hoy. Y
para ser igual de claros con la otra columna: PROJECTMEM tiene un paper
publicado y unos doscientos stars; Scar tiene tres. Esto es una nota de
diseño, no un reclamo de madurez.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="las-dos-piezas-que-no-vimos-en-ningún-otro-lado">Las dos piezas que no vimos en ningún otro lado<a href="https://daily-nerd.github.io/daimon/es/blog/negative-knowledge#las-dos-piezas-que-no-vimos-en-ning%C3%BAn-otro-lado" class="hash-link" aria-label="Enlace directo al Las dos piezas que no vimos en ningún otro lado" title="Enlace directo al Las dos piezas que no vimos en ningún otro lado" translate="no">​</a></h2>
<p><strong>Una condición de falsación en cada scar.</strong> Cada scar registra
<code>expires.condition</code>: el cambio específico que lo volvería obsoleto, más una
fecha de revisión que el linter hace cumplir. La condición en sí hoy es
disciplina de autoría, todavía no verificada por máquina; el punto es que
existe al momento de escribir. El conocimiento negativo se pudre distinto que
el positivo; un hecho que queda viejo está mal, pero una advertencia que
queda vieja es fricción que entrena a todos a ignorar advertencias. Ninguno
de los papers de arriba tiene modelo de expiración. Uno hace crecer su
conjunto de reglas monotónicamente y nunca borra nada. El paper del workshop
ni trata la obsolescencia. Dejar escrita la condición bajo la cual una
advertencia debe morir es, hasta donde sabemos, terreno todavía sin reclamar.</p>
<p><strong>El fence.</strong> Los callejones sin salida y las minas son memoria de fracasos.
El tercer tipo de scar no lo es: un <em>fence</em> protege código que se ve mal a
propósito. El timeout de menos de un segundo que parece demasiado apretado
pero acota un presupuesto real. El bloque duplicado que dos sistemas no deben
compartir. La memoria de fracasos le dice al agente "no repitas este
intento". Un fence le dice "no limpies esto". Ningún esquema de registro de
fracasos que hayamos encontrado representa eso, y en la práctica dispara todo
el tiempo, porque limpiar rarezas intencionales es exactamente lo que un
agente capaz quiere hacer.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lo-que-no-estamos-reclamando">Lo que no estamos reclamando<a href="https://daily-nerd.github.io/daimon/es/blog/negative-knowledge#lo-que-no-estamos-reclamando" class="hash-link" aria-label="Enlace directo al Lo que no estamos reclamando" title="Enlace directo al Lo que no estamos reclamando" translate="no">​</a></h2>
<p>No hay tasa de prevención medida. Ni nuestra ni de nadie: PROJECTMEM nombra
"fracasos-prevenidos-por-commits" como el benchmark faltante de toda la
categoría, y el paper de reglas de comportamiento titula una sección "The
Missing Benchmark". Estamos de acuerdo, y no vamos a llenar ese hueco con una
sensación. Lo que tenemos son recibos de capturas individuales: un scar que
marcó un riesgo de denegación de servicio por regex que había pasado tests
unitarios y review, y un fence que disparó en medio de un build y cambió el
piso de timeout de un wizard esa misma tarde. Anécdotas, etiquetadas como
anécdotas.</p>
<p>Si querés que la mitad de fracasos de la memoria de tu agente exista:
<a href="https://github.com/Daily-Nerd/Scar" target="_blank" rel="noopener noreferrer" class="">Scar</a> entrega el contrato de autoría
como skill cargable y dispara los scars promovidos,
<a href="https://github.com/Daily-Nerd/daimon" target="_blank" rel="noopener noreferrer" class="">daimon</a> borradorea candidatos de
arranque en frío desde los checkpoints de sesión, y el formato es
<a href="https://github.com/Daily-Nerd/Scar/blob/main/SCAR-FORMAT.md" target="_blank" rel="noopener noreferrer" class="">una página de YAML y prosa</a>
que podrías implementar vos mismo en una tarde. Los callejones sin salida que
ya pagaste son el conocimiento más barato que vas a entregar jamás.</p>]]></content:encoded>
            <category>concepts</category>
            <category>scars</category>
            <category>negative-knowledge</category>
        </item>
        <item>
            <title><![CDATA[Que dos memorias coincidan no es evidencia: corroboración ligada al origen]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration</guid>
            <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hay una trampa hacia la que camina todo sistema de memoria para agentes,]]></description>
            <content:encoded><![CDATA[<p>Hay una trampa hacia la que camina todo sistema de memoria para agentes,
tarde o temprano: un ítem que aparece una y otra vez empieza a <em>sentirse</em>
verdadero. Cinco sesiones "recuerdan" el mismo hecho, así que el hecho debe
ser sólido. Promuévelo. Confía más en él.</p>
<p>Queríamos esa funcionalidad. La re-observación independiente <em>debería</em>
fortalecer una memoria — así funciona la evidencia en todos lados. Pero antes
de construirla salimos a buscar las formas en que se rompe, y lo que
encontramos cambió el diseño, el release y una suposición de seguridad con la
que veníamos conviviendo. Todo eso salió hoy en v0.22.0.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-eco-en-nuestra-propia-casa">El eco en nuestra propia casa<a href="https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration#el-eco-en-nuestra-propia-casa" class="hash-link" aria-label="Enlace directo al El eco en nuestra propia casa" title="Enlace directo al El eco en nuestra propia casa" translate="no">​</a></h2>
<p>Daimon inyecta memoria previa en las sesiones nuevas: un briefing al inicio y
una línea <code>daimon recall:</code> cuando un prompt coincide con trabajo pasado. Ese
texto inyectado pasa a formar parte de la transcripción de la sesión nueva. El
serializador después lee esa transcripción para extraer lo que la sesión
aprendió.</p>
<p>¿Ves el bucle? Un ítem de la sesión A se inyecta en la transcripción de la
sesión B, y la extracción de B puede "observarlo" ahí — no porque el hecho se
haya re-derivado de trabajo real, sino porque daimon se citó a sí mismo. En
nuestro propio corpus, trece transcripciones cargan ítems previos inyectados.
Un contador ingenuo de corroboración ("otra sesión lo vio de nuevo") contaría
los ecos de daimon como testigos independientes, y los ítems más recordados
acumularían la mayor confianza. La frecuencia de recall se volvería verdad.</p>
<p>Se puso peor antes de mejorar. Mapeando las superficies de inyección
encontramos que nuestro verificador de citas comparaba las citas verbatim
contra la transcripción <em>sin filtrar</em>. Una cita copiada de una línea inyectada
por el propio daimon pasaba la verificación y se guardaba como <code>verbatim</code>,
<code>quote_verified: true</code> — un ítem de una sesión anterior lavado como si fuera
recién atestiguado. Ese agujero no esperó a la funcionalidad de corroboración:
salió como fix de seguridad independiente el mismo día en que se encontró, y
la verificación ahora rechaza cualquier cita cuyo único soporte esté dentro de
la salida del propio daimon. Los ecos rechazados tienen su propia razón en el
ledger (<code>echo-only</code>), así que la tasa de eco ahora se puede medir en vez de
ser invisible.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="la-prueba-de-que-la-versión-ingenua-no-se-puede-parchar">La prueba de que la versión ingenua no se puede parchar<a href="https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration#la-prueba-de-que-la-versi%C3%B3n-ingenua-no-se-puede-parchar" class="hash-link" aria-label="Enlace directo al La prueba de que la versión ingenua no se puede parchar" title="Enlace directo al La prueba de que la versión ingenua no se puede parchar" translate="no">​</a></h2>
<p>Esto no es solo un bug nuestro. Un paper reciente — <a href="https://arxiv.org/abs/2606.24322" target="_blank" rel="noopener noreferrer" class=""><em>Securing LLM-Agent
Long-Term Memory Against Poisoning: Non-Malleable, Origin-Bound Authority
with Machine-Checked Guarantees</em></a> —
demuestra, con teoremas TLA+ verificados por máquina, que las defensas
basadas en el contenido de un ítem o en su historial de derivación no son
sólidas. Los atacantes lavan orígenes no confiables por tres canales: el
propio resumen del agente, los ecos de herramientas confiables y la
<strong>corroboración fabricada</strong> — plantar fuentes que coinciden para que la
coincidencia se lea como verificación.</p>
<p>Ese tercer canal es exactamente el bucle de auto-referencia de arriba, con
nombre de primitiva de ataque y un resultado de imposibilidad detrás. La
reparación que prescribe el paper: ligar el origen al momento de escritura es
<em>necesario</em>, y la autoridad ligada al origen con elevación por corroboración
resistente a Sybil es <em>suficiente</em>. En corto: fija de dónde vino una
afirmación en el momento en que se escribe, y cuenta la coincidencia solo
cuando la independencia se pueda probar desde esos orígenes — nunca asumirla
desde la coincidencia misma.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="qué-trae-v0220">Qué trae v0.22.0<a href="https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration#qu%C3%A9-trae-v0220" class="hash-link" aria-label="Enlace directo al Qué trae v0.22.0" title="Enlace directo al Qué trae v0.22.0" translate="no">​</a></h2>
<p>Nuestra implementación de esa prescripción, en una CLI local-first:</p>
<ul>
<li class=""><strong>Origen ligado al escribir.</strong> Cada ítem queda estampado con la sesión y el
autor que lo escribió por primera vez, en la frontera de admisión, sobre el
mismo riel que nunca se reescribe donde vive su identidad. Si un modelo
emite sus propios campos de origen, se le quitan — una memoria no puede
emitirse un testigo a sí misma.</li>
<li class=""><strong>Independencia probada desde los orígenes.</strong> Una re-observación cuenta
solo cuando el escritor original es una sesión <em>distinta</em>, la observación
nueva es verbatim local con cita verificada (lo que, después del fix del
eco, excluye estructuralmente la salida del propio daimon), la coincidencia
es lo bastante fuerte para certificar y no solo deduplicar, y las dos
observaciones no comparten anclajes de mensajes de transcripción.</li>
<li class=""><strong>Un conteo auditable, nunca un puntaje guardado.</strong> Las corroboraciones son
eventos en el log append-only, uno por testigo independiente. El conteo se
deriva al leer. La contradicción manda: un ítem superseded o contradicho
por el world-check pierde su insignia, y reabrirlo no restaura conteos
ganados antes de la contradicción.</li>
<li class=""><strong>Un eje aparte, no una promoción de confianza.</strong> Los ítems vistos
independientemente dos veces se muestran como <code>[≈ corroborated ×2]</code> al lado
de su clase de confianza. La clase en sí nunca sube por recurrencia — eso
sigue exigiendo evidencia de re-verificación o una decisión humana
explícita.</li>
<li class=""><strong>Conectado a nada, a propósito.</strong> La insignia no afecta ningún ranking ni
el scoring de recall, y un test impone que el código de scoring ni siquiera
pueda importar el lector de corroboraciones. El bucle auto-reforzante —
la promoción sube la saliencia, la saliencia sube la inyección, la
inyección fabrica la próxima corroboración — se cierra exactamente donde un
contador alimenta el ranking, así que ese cable queda cortado hasta que los
datos de campo digan otra cosa. Publicamos la medición antes de que nada
actúe sobre la medición.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="qué-no-hace">Qué no hace<a href="https://daily-nerd.github.io/daimon/es/blog/origin-bound-corroboration#qu%C3%A9-no-hace" class="hash-link" aria-label="Enlace directo al Qué no hace" title="Enlace directo al Qué no hace" translate="no">​</a></h2>
<p>Sección de honestidad, como siempre. La corroboración solo se acumula sobre
ítems escritos desde v0.22.0 en adelante — los orígenes nunca se adivinan
retroactivamente, porque una adivinanza errada haría parecer independientes a
observaciones dependientes. Una sesión reanudada que repite la misma
conversación bajo otro id se rechaza donde el host preserva los ids de
mensaje, pero un host que emite ids frescos puede hacer que una conversación
parezca dos. Un atacante que controla el contenido de dos sesiones separadas
todavía puede fabricar dos orígenes — el diseño sube el costo del acuerdo
falso de una línea de recall a dos sesiones comprometidas; no lo vuelve
imposible. Y los checkpoints de compañeros de equipo no corroboran en esta
versión: una copia sincronizada de una afirmación sigue siendo un solo
testigo, y las compuertas que harían el conteo entre autores resistente a
Sybil están diseñadas pero deliberadamente apagadas por ahora.</p>
<p>El release completo también trae el endurecimiento del gateway de escritura
sobre el que se apoyó este trabajo: borrado por valor de punta a punta, un
guard de auditoría de escritura sobre cada comando, y contenido entrante de
equipo pasando por las mismas compuertas de scope, redacción, forget y
confianza que las escrituras locales.</p>
<p>Si la memoria de tu agente te dice algo dos veces, pregúntale quién se lo
dijo primero. <a href="https://github.com/Daily-Nerd/daimon" target="_blank" rel="noopener noreferrer" class="">daimon</a> ahora puede
responder.</p>]]></content:encoded>
            <category>concepts</category>
            <category>trust-classes</category>
            <category>corroboration</category>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[Verbatim vs. inferido: la clase de confianza que le falta a la memoria de tu agente]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred</guid>
            <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tu agente abre una sesión y te cuenta lo que decidiste la vez anterior. Una]]></description>
            <content:encoded><![CDATA[<p>Tu agente abre una sesión y te cuenta lo que decidiste la vez anterior. Una
parte es una cita textual. Otra parte es el resumen que el modelo hizo de esa
cita. Y otra parte es una conclusión que el modelo sacó a las 2am, en una
sesión de la que ya venía perdiendo el hilo.</p>
<p>Las tres llegan con la misma tipografía, el mismo tono seguro y ninguna forma
de distinguirlas. Ese es el problema real de la memoria de agentes, y no se
arregla recordando más cosas.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="dos-poblaciones-dos-formas-de-fallar">Dos poblaciones, dos formas de fallar<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#dos-poblaciones-dos-formas-de-fallar" class="hash-link" aria-label="Enlace directo al Dos poblaciones, dos formas de fallar" title="Enlace directo al Dos poblaciones, dos formas de fallar" translate="no">​</a></h2>
<p>Daimon etiqueta cada ítem que arrastra con una clase de confianza, visible en
la línea misma:</p>
<div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">- [✓ verbatim] PR #60 esperando review  — "review requested 2026-07-01"</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">- [~ inferred] La tormenta de reintentos vino de un deadline compartido entre tres llamadas</span><br></div></code></pre></div></div>
<p>La etiqueta no es decoración. Las dos clases fallan de maneras distintas:</p>
<ul>
<li class="">Un ítem <strong>verbatim</strong> puede quedar <em>viejo</em> (el mundo siguió andando después de
la cita) pero no puede estar <em>mal recordado</em>. La cita es lo que se dijo.</li>
<li class="">Un ítem <strong>inferido</strong> puede estar viejo <em>y además</em> equivocado. El modelo pudo
haber leído mal la sesión en el momento exacto en que escribió el resumen.</li>
</ul>
<p>Esa diferencia debería cambiar qué hacés con la línea. Una cita vieja pide
verificar contra el mundo. Una inferencia equivocada va a la basura. Meter las
dos en la misma bolsa de "la memoria dice" destruye la distinción justo cuando
más la necesitás.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-verificador-tiene-que-ser-más-tonto-que-lo-que-verifica">El verificador tiene que ser más tonto que lo que verifica<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#el-verificador-tiene-que-ser-m%C3%A1s-tonto-que-lo-que-verifica" class="hash-link" aria-label="Enlace directo al El verificador tiene que ser más tonto que lo que verifica" title="Enlace directo al El verificador tiene que ser más tonto que lo que verifica" translate="no">​</a></h2>
<p>Una clase de confianza no vale nada si el modelo se la asigna a sí mismo. Un
modelo que alucina una cita también va a etiquetar felizmente esa alucinación
como <code>verbatim</code>.</p>
<p>Así que el modelo no vota. Al momento de serializar, cada cita candidata se
compara contra el transcript renderizado con un verificador determinista:
operaciones de string puras, sin LLM, sin criterio. La cita que coincide recibe
el sello. La cita que no coincide <strong>baja a <code>~ inferred</code></strong> en el acto, y se
conserva, no se borra. Sobrevive la afirmación; lo que no sobrevive es la
certificación.</p>
<p>Sobre este principio se apoya todo el diseño. El verificador tiene que ser más
tonto que lo que verifica, porque cualquier cosa lo bastante inteligente como
para que el extractor la engañe no es una verificación.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-problema-difícil-una-cita-perfecta-puede-ser-perfectamente-falsa">El problema difícil: una cita perfecta puede ser perfectamente falsa<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#el-problema-dif%C3%ADcil-una-cita-perfecta-puede-ser-perfectamente-falsa" class="hash-link" aria-label="Enlace directo al El problema difícil: una cita perfecta puede ser perfectamente falsa" title="Enlace directo al El problema difícil: una cita perfecta puede ser perfectamente falsa" translate="no">​</a></h2>
<p>Acá está la parte que tuvimos mal durante meses, y la razón de este post.</p>
<p>La coincidencia verbatim certifica <strong>transcripción, no verdad</strong>.</p>
<p>El fallo que nos lo enseñó: un agente terminó una sesión larga y escribió
"serialización exitosa" en su propia memoria. No había sido exitosa. La sesión
siguiente leyó esa línea, creyó que la capa de memoria estaba sana y construyó
sobre unos cimientos que no existían.</p>
<p>Cada paso es fiel. El modelo lo dijo. El transcript lo registra exacto. El
verificador de citas lo encontró en el transcript y lo selló como
<code>✓ verbatim</code>, correctamente. La clase de confianza hizo su trabajo y la memoria
igual era falsa, porque lo que se estaba certificando era que la frase <em>se
dijo</em>, no que el evento <em>pasó</em>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="los-resultados-necesitan-un-testigo-no-una-cita">Los resultados necesitan un testigo, no una cita<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#los-resultados-necesitan-un-testigo-no-una-cita" class="hash-link" aria-label="Enlace directo al Los resultados necesitan un testigo, no una cita" title="Enlace directo al Los resultados necesitan un testigo, no una cita" translate="no">​</a></h2>
<p>Desde la 0.20, las afirmaciones que declaran un resultado terminado tienen que
pasar por una segunda vara.</p>
<p>Si el texto de un ítem afirma que algo terminó (funcionó, se mergeó, se
deployó, los tests pasan, salió) tiene que citar una señal concreta de esa
misma sesión: un resultado de herramienta, un exit status. Algo que la sesión
haya producido de verdad, no algo que el modelo concluyó.</p>
<p>Una afirmación de resultado que cita una señal real sigue siendo <code>verbatim</code>.
Una afirmación de resultado sin cita, en una sesión que <em>sí</em> produjo señales,
baja a <code>~ inferred</code>. La cita y su sello de verificación quedan, porque la
transcripción sigue estando honestamente atestiguada. Lo que queda sin testigo
es el resultado.</p>
<p>Un resultado sin testigo es un reporte, no un hecho.</p>
<p>Dos límites deliberados en esa regla, los dos en la dirección de no hacer nada
antes que adivinar:</p>
<ul>
<li class=""><strong>Los condicionales no son afirmaciones.</strong> "se va a mergear" es un plan.
"si el deploy funcionó" es una pregunta. No se tocan.</li>
<li class=""><strong>Las sesiones sin señales nunca bajan de clase.</strong> Hay hosts que no exponen
ningún resultado de herramienta parseable. Ahí verificar es imposible, y la
ausencia de evidencia sobre el <em>host</em> no es evidencia contra la <em>afirmación</em>.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="lo-que-nada-de-esto-arregla">Lo que nada de esto arregla<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#lo-que-nada-de-esto-arregla" class="hash-link" aria-label="Enlace directo al Lo que nada de esto arregla" title="Enlace directo al Lo que nada de esto arregla" translate="no">​</a></h2>
<p>Las clases de confianza te dicen de dónde salió una afirmación. No te dicen
nada sobre si sigue siendo cierta.</p>
<p>Una cita <code>✓ verbatim</code> con un resultado de herramienta real detrás está
completamente atestiguada y queda vieja en el instante en que alguien mergea el
PR que describe. La procedencia no es actualidad, y fingir lo contrario sería
el mismo error una capa más arriba.</p>
<p>Por eso cada briefing abre con un bloque <strong>VERIFY BEFORE TRUSTING</strong> en lugar de
un resumen, y por eso la 0.20 suma un chequeo opcional que vuelve a leer el
estado externo al momento de armar el briefing y marca de forma visible las
afirmaciones que el mundo ya contradijo. Estamos midiendo cada cuánto salta eso
antes de decir nada sobre el tamaño del problema.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="probalo">Probalo<a href="https://daily-nerd.github.io/daimon/es/blog/verbatim-vs-inferred#probalo" class="hash-link" aria-label="Enlace directo al Probalo" title="Enlace directo al Probalo" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool install 'daimon-briefing[pretty]'</span><br></div></code></pre></div></div>
<p>La mecánica completa está en la página de <a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/trust-classes">clases de
confianza</a>, con <a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/carry">carry y
obsolescencia</a> para la mitad de actualidad y
<a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/receipts">receipts</a> para qué pasa si alguien edita un
checkpoint después de escrito. Código e issue tracker:
<a href="https://github.com/Daily-Nerd/daimon" target="_blank" rel="noopener noreferrer" class="">Daily-Nerd/daimon</a>.</p>]]></content:encoded>
            <category>concepts</category>
            <category>trust-classes</category>
        </item>
        <item>
            <title><![CDATA[daimon 0.19.0: sitio de docs, servidor MCP y borrado demostrable]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/daimon-0-19</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/daimon-0-19</guid>
            <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[daimon 0.19.0 está en PyPI, tres días después de la 0.18. Lo principal son]]></description>
            <content:encoded><![CDATA[<p>daimon 0.19.0 está en PyPI, tres días después de la 0.18. Lo principal son
dos puertas: el sitio de documentación que estás leyendo — en español e
inglés desde el primer día — y un servidor MCP de solo lectura, para que
los hosts que hablan MCP pero no tienen sistema de hooks también puedan
leer la memoria de tu agente. Además en la caja: sale <code>daimon forget</code>, y
una caché de fragmentos evita que un serialize fallido vuelva a pagar
trabajo ya hecho.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="el-servidor-mcp-memoria-para-hosts-que-no-podemos-hookear">El servidor MCP: memoria para hosts que no podemos hookear<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-19#el-servidor-mcp-memoria-para-hosts-que-no-podemos-hookear" class="hash-link" aria-label="Enlace directo al El servidor MCP: memoria para hosts que no podemos hookear" title="Enlace directo al El servidor MCP: memoria para hosts que no podemos hookear" translate="no">​</a></h2>
<p>El loop de captura de daimon se conecta a los hosts mediante hooks. Muchas
herramientas compatibles con MCP no tienen superficie de hooks — hasta
ahora, simplemente no podían ver la memoria de daimon. <code>daimon mcp serve</code>
resuelve la mitad de lectura:</p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">daimon mcp serve   # JSON-RPC sobre stdio, bloquea hasta EOF</span><br></div></code></pre></div></div>
<p>Cuatro herramientas, todas de solo lectura: <code>daimon_recall</code> (búsqueda con
procedencia completa — clase de confianza, autor, estado de supersesión,
proyecto de origen), <code>daimon_brief</code> (el último briefing, etiquetado por
confianza), <code>daimon_projects</code> (todo lo que daimon recuerda) y
<code>daimon_status</code> (salud de la captura). Biblioteca estándar pura, cero
dependencias nuevas — el mismo trato que el resto de daimon.</p>
<p>Solo lectura es una posición de diseño, no una limitación. Las escrituras
quedan en el pipeline de captura, donde cada afirmación verbatim se
verifica mecánicamente contra una transcripción real. Un agente puede
<em>leer</em> la memoria por MCP; no puede insertar recuerdos nuevos. Y el
servidor hereda la disciplina entre proyectos de daimon: las lecturas
están acotadas al proyecto, y un proyecto sin checkpoint recibe
exactamente ese mensaje — nunca el contenido de otro proyecto.</p>
<p>La <a class="" href="https://daily-nerd.github.io/daimon/es/docs/reference/mcp">referencia de MCP</a> tiene los snippets de registro
para Claude Code, Windsurf, Cursor y cualquier config stdio genérica.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="sale-daimon-forget-borrado-con-tombstone">Sale <code>daimon forget</code>: borrado con tombstone<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-19#sale-daimon-forget-borrado-con-tombstone" class="hash-link" aria-label="Enlace directo al sale-daimon-forget-borrado-con-tombstone" title="Enlace directo al sale-daimon-forget-borrado-con-tombstone" translate="no">​</a></h2>
<p>En el post anterior lo anunciamos mergeado — ahora está publicado. <code>daimon forget</code> elimina un ítem del checkpoint vivo, del índice de recall y del
<em>contenido</em> del rastro de auditoría, mientras el flujo de eventos conserva
un tombstone con el hash del contenido. Con receipts activos, el
checkpoint posterior a la eliminación se re-firma. Podés demostrar que el
borrado ocurrió sin conservar lo borrado. La mecánica está en la página de
<a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/lifecycle">ciclo de vida de los ítems</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="la-caché-de-fragmentos-los-reintentos-dejan-de-re-pagar-trabajo-terminado">La caché de fragmentos: los reintentos dejan de re-pagar trabajo terminado<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-19#la-cach%C3%A9-de-fragmentos-los-reintentos-dejan-de-re-pagar-trabajo-terminado" class="hash-link" aria-label="Enlace directo al La caché de fragmentos: los reintentos dejan de re-pagar trabajo terminado" title="Enlace directo al La caché de fragmentos: los reintentos dejan de re-pagar trabajo terminado" translate="no">​</a></h2>
<p>La serialización extrae memoria de las transcripciones por fragmentos, y
hasta ahora una corrida fallida tiraba a la basura cada fragmento que <em>sí</em>
había salido bien — el reintento volvía a pagar todo, en tiempo y en
tokens. La 0.19 agrega una caché direccionada por contenido para las
extracciones: un heal o un reintento reutiliza cada fragmento cuyo
contenido no cambió y solo paga lo que falta de verdad. Primera rebanada
de un arco más largo de serialización incremental.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="y-el-sitio-de-docs-en-sí">Y el sitio de docs en sí<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-19#y-el-sitio-de-docs-en-s%C3%AD" class="hash-link" aria-label="Enlace directo al Y el sitio de docs en sí" title="Enlace directo al Y el sitio de docs en sí" translate="no">​</a></h2>
<p>Inicio rápido (de la instalación al primer briefing en una página),
páginas de conceptos para las ideas que hacen distinto a daimon — <a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/trust-classes">clases
de confianza</a>, <a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/carry">arrastre y
obsolescencia</a>, <a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/receipts">receipts</a>,
<a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/lifecycle">ciclo de vida</a> — guías de hosts, configuración,
memoria de equipo. Cada página en español además de inglés, escrita para
quienes desarrollan en español, no volcada por máquina. Este blog (con
<a href="https://daily-nerd.github.io/daimon/blog/rss.xml" target="_blank" rel="noopener noreferrer" class="">RSS</a>) es el hogar
canónico de los anuncios; el README ahora simplemente apunta aquí.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="actualizar">Actualizar<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-0-19#actualizar" class="hash-link" aria-label="Enlace directo al Actualizar" title="Enlace directo al Actualizar" translate="no">​</a></h2>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><div class="token-line" style="color:#393A34"><span class="token plain">uv tool install --force 'daimon-briefing[pretty]'</span><br></div></code></pre></div></div>
<p>Todos los detalles en el
<a href="https://github.com/Daily-Nerd/daimon/blob/main/CHANGELOG.md" target="_blank" rel="noopener noreferrer" class="">changelog</a>.
Si algo se rompe, el
<a href="https://github.com/Daily-Nerd/daimon/issues" target="_blank" rel="noopener noreferrer" class="">issue tracker</a> lee todos los
reportes.</p>]]></content:encoded>
            <category>announcement</category>
            <category>release</category>
        </item>
        <item>
            <title><![CDATA[daimon tiene casa: docs bilingües, y qué salió esta semana]]></title>
            <link>https://daily-nerd.github.io/daimon/es/blog/daimon-has-a-home</link>
            <guid>https://daily-nerd.github.io/daimon/es/blog/daimon-has-a-home</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[daimon ahora tiene un sitio de documentación — el que estás leyendo — en]]></description>
            <content:encoded><![CDATA[<p>daimon ahora tiene un sitio de documentación — el que estás leyendo — en
inglés y español, con un inicio rápido que te lleva de la instalación a tu
primer briefing, y páginas de conceptos para las ideas que hacen distinto a
daimon: clases de confianza, arrastre, receipts y el ciclo de vida de los
ítems. Este blog es el nuevo hogar canónico de releases, explicaciones de
features e incidentes de campo; cada anuncio que veas de nosotros en otro
lado va a enlazar de vuelta aquí.</p>
<!-- -->
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="qué-salió-esta-semana">Qué salió esta semana<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-has-a-home#qu%C3%A9-sali%C3%B3-esta-semana" class="hash-link" aria-label="Enlace directo al Qué salió esta semana" title="Enlace directo al Qué salió esta semana" translate="no">​</a></h2>
<p><strong>daimon 0.18.0 está en PyPI</strong> (<code>uv tool install 'daimon-briefing[pretty]'</code>).
El experimento principal: <strong>scene traces</strong> por ítem, opt-in, indexadas para
recall. Sale detrás de un flag mientras la sometemos a un A/B contra nuestro
propio benchmark — si los números no la justifican, no se activa por
defecto. Ese es el trato que hacemos con cada feature.</p>
<p><strong><code>daimon forget</code> está mergeado</strong> y sale en el próximo release: eliminación
de ítems con un evento tombstone. El ítem sale del checkpoint vivo, del
índice de recall y del <em>contenido</em> del rastro de auditoría — pero el flujo
de eventos conserva un tombstone con el hash del contenido, y con receipts
activos el checkpoint posterior a la eliminación se re-firma. Borrado que
puedes demostrar que ocurrió, sin conservar lo borrado. La página del
<a class="" href="https://daily-nerd.github.io/daimon/es/docs/concepts/lifecycle">ciclo de vida de los ítems</a> cubre la mecánica.</p>
<p><strong>La documentación se volvió bilingüe.</strong> Cada página — inicio rápido,
conceptos, hosts, configuración, memoria de equipo — está disponible en
español. No es un volcado de máquina: está escrita para desarrolladores que
leen en español, porque la comunidad hispanohablante de agentes merece
documentación de primera, no una ocurrencia tardía.</p>
<p><strong>Windsurf está validado en uso real.</strong> El ciclo de captura (serialización
desde transcript nativo) ya fue probado de punta a punta en uso real de
Windsurf, sumándose a Claude Code. Codex sigue; Gemini espera un arreglo
upstream.</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="por-qué-existe-este-proyecto-en-un-párrafo">Por qué existe este proyecto, en un párrafo<a href="https://daily-nerd.github.io/daimon/es/blog/daimon-has-a-home#por-qu%C3%A9-existe-este-proyecto-en-un-p%C3%A1rrafo" class="hash-link" aria-label="Enlace directo al Por qué existe este proyecto, en un párrafo" title="Enlace directo al Por qué existe este proyecto, en un párrafo" translate="no">​</a></h2>
<p>Tu agente olvida todo entre sesiones, y la mayoría de los sistemas de
memoria lo "arreglan" almacenando texto que un modelo escribió sobre lo que
pasó — sin manera de saber qué partes son citas y qué partes son conjeturas.
daimon marca cada ítem recordado como <strong>verbatim</strong> (una cita exacta,
verificada mecánicamente contra el transcript por un verificador
determinista — ningún LLM calificando su propia tarea) o <strong>inferido</strong> (puede
evolucionar, se señala para verificación). Una encuesta reciente de la
investigación en memoria de agentes llama a la procedencia a nivel de
afirmación un problema abierto; nosotros creemos que la respuesta es hacer
la memoria <em>demostrable</em>, y ese es el eje sobre el que está construido todo
esto.</p>
<p>Pronto más — releases, historias de guerra del campo, y análisis a fondo de
cómo funciona la maquinaria de verificación. Suscríbete por
<a href="https://daily-nerd.github.io/daimon/blog/rss.xml" target="_blank" rel="noopener noreferrer" class="">RSS</a> o sigue el repo en
<a href="https://github.com/Daily-Nerd/daimon" target="_blank" rel="noopener noreferrer" class="">GitHub</a>.</p>]]></content:encoded>
            <category>announcement</category>
            <category>release</category>
        </item>
    </channel>
</rss>