<?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: Cristian Gormaz</title>
    <description>The latest articles on DEV Community by Cristian Gormaz (@cristian_gormaz).</description>
    <link>https://dev.to/cristian_gormaz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4114572%2F591c1952-455e-402d-a0bd-4107b3afe050.webp</url>
      <title>DEV Community: Cristian Gormaz</title>
      <link>https://dev.to/cristian_gormaz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cristian_gormaz"/>
    <language>en</language>
    <item>
      <title>READY Is Not Done: What a Partial Verification Actually Proves</title>
      <dc:creator>Cristian Gormaz</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:47:09 +0000</pubDate>
      <link>https://dev.to/cristian_gormaz/ready-is-not-done-what-a-partial-verification-actually-proves-cfj</link>
      <guid>https://dev.to/cristian_gormaz/ready-is-not-done-what-a-partial-verification-actually-proves-cfj</guid>
      <description>&lt;p&gt;&lt;em&gt;A lesson from building Cognitive Suite about implementation, observed evidence, and the limits of technical claims.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A software project can reach &lt;code&gt;READY&lt;/code&gt; at an internal checkpoint without demonstrating that the complete system works.&lt;/p&gt;

&lt;p&gt;That distinction may sound obvious. But when developing complex software, it is easy to turn a successful checkpoint into a much broader claim than the evidence supports.&lt;/p&gt;

&lt;p&gt;I encountered this problem while working on Cognitive Suite, an experimental software project I am developing.&lt;/p&gt;

&lt;p&gt;This is not a story about a finished system. It is about how to communicate partial technical results without overstating what they prove.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implemented does not mean fully verified
&lt;/h2&gt;

&lt;p&gt;In a frozen development cut identified as &lt;strong&gt;P1&lt;/strong&gt;, Greys-v3 was the main executable implementation of Cognitive Suite.&lt;/p&gt;

&lt;p&gt;Within that cut, it included mechanisms for case management, work selection, record retention, epistemic controls, and conditioning sensitive operations on human authorization.&lt;/p&gt;

&lt;p&gt;But the presence of those mechanisms did not establish that the entire system had been integrated and validated end to end.&lt;/p&gt;

&lt;p&gt;These are different kinds of statements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implementation:&lt;/strong&gt; a mechanism exists within a defined code snapshot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observed execution:&lt;/strong&gt; a particular operation or stage produced an observed result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System-level conclusion:&lt;/strong&gt; a broader property has been demonstrated under defined conditions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Evidence for one does not automatically establish the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  What happened with Gate B
&lt;/h2&gt;

&lt;p&gt;One example comes from an internal staged process called &lt;strong&gt;Gate B&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;During the P1 cut, its preliminary stages—GB0, GB1, and GB2—reached the internal status &lt;code&gt;READY&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those stages ran on the actual host, working with copies and without writing to the live database.&lt;/p&gt;

&lt;p&gt;However, GB3 and GB4 were not executed within that cut.&lt;/p&gt;

&lt;p&gt;Consequently, the durable adjudication intended by Gate B had &lt;strong&gt;not been demonstrated within the P1 cut&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This matters because &lt;code&gt;READY&lt;/code&gt; was an internal status within a bounded process. It was not a declaration that Gate B was complete or that Cognitive Suite was ready for production.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the evidence actually supports
&lt;/h2&gt;

&lt;p&gt;I found it useful to separate each observation from the conclusions it does not establish.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Observation&lt;/th&gt;
&lt;th&gt;What it supports&lt;/th&gt;
&lt;th&gt;What it does not establish&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Greys-v3 contained the described mechanisms within the P1 cut&lt;/td&gt;
&lt;td&gt;The described mechanisms were present within that scope&lt;/td&gt;
&lt;td&gt;Complete end-to-end integration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GB0–GB2 reached &lt;code&gt;READY&lt;/code&gt; on copies&lt;/td&gt;
&lt;td&gt;Those preliminary stages reached the reported internal status&lt;/td&gt;
&lt;td&gt;Completion of Gate B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No writes were made to the live database during those stages&lt;/td&gt;
&lt;td&gt;The observed work did not write to the live database&lt;/td&gt;
&lt;td&gt;Successful operation against the live database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GB3 and GB4 were not executed within P1&lt;/td&gt;
&lt;td&gt;The reported execution stopped before those stages&lt;/td&gt;
&lt;td&gt;The durable adjudication intended by Gate B&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The distinction is not merely about choosing cautious language.&lt;/p&gt;

&lt;p&gt;It is about keeping a technical statement attached to the evidence that supports it.&lt;/p&gt;

&lt;p&gt;An unexecuted stage is not necessarily a failed stage. But it is not a successfully demonstrated stage either.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reporting template other developers can reuse
&lt;/h2&gt;

&lt;p&gt;The same structure can be applied to a test suite, an AI agent, a deployment pipeline, or a staged verification process.&lt;/p&gt;

&lt;p&gt;For each important technical statement, record three things:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Claim&lt;/th&gt;
&lt;th&gt;Evidence or observation&lt;/th&gt;
&lt;th&gt;Boundary&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What are we claiming?&lt;/td&gt;
&lt;td&gt;What did we actually inspect, execute, or observe?&lt;/td&gt;
&lt;td&gt;What stronger conclusion is still unsupported?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Then ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. What is implemented?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Identify the relevant mechanisms and the exact version or snapshot being discussed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What was observed?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Describe the execution and its result, including the conditions under which it occurred.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. What remains unproven?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;State which operations were not performed and which conclusions require additional evidence.&lt;/p&gt;

&lt;p&gt;This does not establish that the reporting method itself improves system reliability, or that it is better than other reporting practices.&lt;/p&gt;

&lt;p&gt;It does, however, make the limits of a technical claim explicit and easier for another engineer to challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why communicate an incomplete result?
&lt;/h2&gt;

&lt;p&gt;Because waiting until an entire system is finished is not always practical—or useful.&lt;/p&gt;

&lt;p&gt;Partial results can reveal important engineering decisions, identify unresolved boundaries, and invite meaningful technical feedback.&lt;/p&gt;

&lt;p&gt;The challenge is to share those results without turning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An implemented mechanism into a fully integrated system.&lt;/li&gt;
&lt;li&gt;An internal &lt;code&gt;READY&lt;/code&gt; status into &lt;em&gt;production-ready&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;An execution on copies into a claim about live-state behavior.&lt;/li&gt;
&lt;li&gt;An unexecuted stage into either a demonstrated success or a demonstrated failure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Progress is worth communicating.&lt;/p&gt;

&lt;p&gt;Its boundaries are part of the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  An open question
&lt;/h2&gt;

&lt;p&gt;When reviewing an AI system, agent workflow, or staged software process, &lt;strong&gt;what evidence would you require before treating an internal &lt;code&gt;READY&lt;/code&gt; status as a demonstrated, persistent, end-to-end outcome?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I would be interested in how other developers draw that line in their own projects.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Scope and provenance:&lt;/strong&gt; This article describes my interpretation of the bounded P1 development cut of Cognitive Suite. Technical reference: &lt;code&gt;5295aec&lt;/code&gt;, an identifier from the private development line. The public repository preserves a historical, sanitized snapshot from June 2026 and is not a mirror of the private P1 implementation. This is not an independently reproduced audit or a claim that Cognitive Suite is complete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI disclosure:&lt;/strong&gt; This article was drafted and edited with AI assistance. The underlying development observations and records come from my work on Cognitive Suite. I take responsibility for its factual claims, scope limitations, and final wording.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>testing</category>
      <category>architecture</category>
      <category>ai</category>
    </item>
    <item>
      <title>El modelo encontró evidencia relevante y aun así falló: por qué “alucinación” se me quedó corta</title>
      <dc:creator>Cristian Gormaz</dc:creator>
      <pubDate>Mon, 07 Sep 2026 22:52:25 +0000</pubDate>
      <link>https://dev.to/cristian_gormaz/el-modelo-encontro-el-codigo-correcto-y-aun-asi-lo-entendio-al-reves-por-que-alucinacion-se-me-n8m</link>
      <guid>https://dev.to/cristian_gormaz/el-modelo-encontro-el-codigo-correcto-y-aun-asi-lo-entendio-al-reves-por-que-alucinacion-se-me-n8m</guid>
      <description>&lt;p&gt;Actualización / corrección: después de publicar este artículo, una pregunta técnica me llevó de vuelta al request.json primario preservado de la corrida. Verifiqué que el artefacto revisado corresponde byte a byte al original.&lt;/p&gt;

&lt;p&gt;Las condiciones relevantes sí estaban presentes, pero no pude confirmar que la versión candidata fusionada estuviera incluida exactamente como la recordaba.&lt;/p&gt;

&lt;p&gt;Por eso retiro la localización de este caso específicamente en Interpretación. El punto exacto donde ocurrió el fallo queda, por ahora, no determinado.&lt;/p&gt;




&lt;p&gt;Estoy probando modelos locales en tareas de análisis de código y hace poco apareció un fallo que me obligó a revisar cómo estaba usando una palabra bastante común en IA:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“alucinación”.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El caso parecía sencillo.&lt;/p&gt;

&lt;p&gt;El modelo encontró fragmentos relevantes del código.&lt;/p&gt;

&lt;p&gt;No inventó otro archivo.&lt;br&gt;
No citó evidencia inexistente.&lt;/p&gt;

&lt;p&gt;Mi primera lectura fue que había encontrado la evidencia necesaria y luego la había entendido al revés.&lt;/p&gt;

&lt;p&gt;Después de volver al artefacto primario, tuve que estrechar esa conclusión.&lt;/p&gt;

&lt;p&gt;Ese detalle terminó siendo más interesante para mí que el error en sí.&lt;/p&gt;

&lt;p&gt;Porque decir simplemente:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“el modelo alucinó”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;me permite saber que algo salió mal.&lt;/p&gt;

&lt;p&gt;Pero no me dice &lt;strong&gt;qué salió mal&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Encontrar la evidencia no es lo mismo que entenderla
&lt;/h2&gt;

&lt;p&gt;Seguí revisando errores de este tipo dentro de una campaña más amplia de evaluación con modelos locales.&lt;/p&gt;

&lt;p&gt;Y empecé a notar que estaba agrupando bajo una misma palabra problemas que, desde el punto de vista de ingeniería, requieren soluciones completamente diferentes.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;puede que la evidencia necesaria ni siquiera esté disponible;&lt;/li&gt;
&lt;li&gt;puede que esté disponible, pero la respuesta no quede correctamente vinculada con ella;&lt;/li&gt;
&lt;li&gt;puede que el modelo encuentre el fragmento adecuado y lo atribuya al objeto equivocado;&lt;/li&gt;
&lt;li&gt;puede leer correctamente el fragmento, pero interpretar mal su significado;&lt;/li&gt;
&lt;li&gt;puede interpretar bien la evidencia y aun así formular una afirmación que ya no está soportada;&lt;/li&gt;
&lt;li&gt;o puede llegar a una afirmación correcta y estropearla al usarla en el siguiente paso.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Terminé representándolo provisionalmente así:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Evidencia
   ↓
Binding
   ↓
Atribución
   ↓
Interpretación
   ↓
Claim
   ↓
Transformación
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No estoy proponiendo esto como una taxonomía universal ni definitiva.&lt;/p&gt;

&lt;p&gt;Es simplemente una herramienta que surgió de mis propias pruebas y que me está ayudando a formular una pregunta mucho más útil:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;¿en qué punto exacto se rompió el proceso?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Por qué importa distinguirlos
&lt;/h2&gt;

&lt;p&gt;Supongamos que el modelo da una respuesta incorrecta.&lt;/p&gt;

&lt;p&gt;Si la información necesaria nunca estuvo dentro del contexto disponible, el primer problema probablemente no es el modelo.&lt;/p&gt;

&lt;p&gt;Podría ser el mecanismo que construyó ese contexto.&lt;/p&gt;

&lt;p&gt;En cambio, si la evidencia correcta estaba presente y el modelo la identificó, pero después entendió al revés lo que significaba, arreglar el sistema de recuperación probablemente no resolverá nada.&lt;/p&gt;

&lt;p&gt;Es otro fallo.&lt;/p&gt;

&lt;p&gt;Y pide otra respuesta.&lt;/p&gt;

&lt;p&gt;**En el caso que me llevó a escribir esto, hoy puedo sostener algo más estrecho:&lt;/p&gt;

&lt;p&gt;las condiciones relevantes sí estaban presentes en el payload.&lt;/p&gt;

&lt;p&gt;Lo que no pude confirmar al volver al artefacto primario fue que la candidata fusionada estuviera incluida exactamente como la recordaba.&lt;/p&gt;

&lt;p&gt;Por eso ya no puedo localizar limpiamente este caso en Interpretación.&lt;/p&gt;

&lt;p&gt;Y justamente por eso “alucinación” sigue pareciéndome demasiado gruesa como diagnóstico: saber que hubo un fallo no basta para saber dónde ocurrió.**&lt;/p&gt;

&lt;p&gt;Ahí “alucinación” dejó de resultarme suficientemente útil como diagnóstico.&lt;/p&gt;

&lt;h2&gt;
  
  
  Del error del modelo al error del sistema
&lt;/h2&gt;

&lt;p&gt;Esta distinción también cambió una pregunta que me hacía al evaluar modelos.&lt;/p&gt;

&lt;p&gt;Antes era fácil reducir el resultado a algo parecido a:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ACIERTO
FALLO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora me interesa mucho más conocer la ruta:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;¿Tenía la evidencia?
        ↓
¿La vinculó correctamente?
        ↓
¿La atribuyó correctamente?
        ↓
¿Entendió lo que significaba?
        ↓
¿Su afirmación estaba soportada?
        ↓
¿Usó correctamente esa afirmación después?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Porque cada respuesta cambia qué componente debería revisar.&lt;/p&gt;

&lt;p&gt;Tal vez necesito mejorar el contexto.&lt;/p&gt;

&lt;p&gt;Tal vez el problema está en cómo enlazo las fuentes con la respuesta.&lt;/p&gt;

&lt;p&gt;Tal vez necesito restringir la tarea.&lt;/p&gt;

&lt;p&gt;O quizá el modelo simplemente no debería tener autoridad para realizar ese tipo concreto de juicio sin otra capa de validación.&lt;/p&gt;

&lt;p&gt;Esa última posibilidad es especialmente importante para mí.&lt;/p&gt;

&lt;p&gt;No estoy intentando construir sistemas donde el modelo siempre tenga razón.&lt;/p&gt;

&lt;p&gt;Estoy mucho más interesado en sistemas donde podamos saber &lt;strong&gt;qué conservar cuando se equivoca&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Una palabra útil, pero demasiado gruesa
&lt;/h2&gt;

&lt;p&gt;No creo que “alucinación” sea necesariamente una palabra incorrecta.&lt;/p&gt;

&lt;p&gt;El problema aparece cuando se convierte en la explicación final.&lt;/p&gt;

&lt;p&gt;Dos respuestas pueden ser igualmente incorrectas y tener causas completamente distintas.&lt;/p&gt;

&lt;p&gt;Y si las causas son distintas, también deberían serlo nuestras mitigaciones.&lt;/p&gt;

&lt;p&gt;Por eso, después de estas pruebas, estoy intentando separar:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;el síntoma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;de&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;el lugar donde ocurrió el fallo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“Alucinación” puede seguir nombrando el primero.&lt;/p&gt;

&lt;p&gt;Pero todavía necesito diagnosticar el segundo.&lt;/p&gt;




&lt;p&gt;Me interesa especialmente contrastar esto con quienes estén evaluando LLMs sobre código, RAG, agentes o flujos donde el modelo recibe evidencia externa:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;cuando evalúan un modelo que recibe evidencia externa, ¿cómo distinguen en qué parte del proceso ocurrió realmente el fallo?&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Transparencia: utilicé modelos de lenguaje como asistencia para revisar y editar la redacción. El experimento y los registros provienen de mi propio trabajo. La interpretación técnica de este caso fue corregida después de volver al artefacto primario preservado.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>testing</category>
      <category>llm</category>
      <category>evaluation</category>
    </item>
  </channel>
</rss>
