2026-08-12

Coherencia semántica y el plano del arnés

Clase: nota de investigación (PROCESS §1.1 — exploratoria, previa al plan). No es un artefacto de Gate 1. Fecha: 2026-08-12. Todas las cuentas se volvieron a derivar al escribir; ninguna se arrastró. Origen: una sola sesión de trabajo que empezó como un reporte de defecto sobre docs/userstories y terminó como un hallazgo de metodología. Organizada por hallazgo, no por cronología.

Clave de procedencia — aplicada por sección, según la regla que esta sesión adoptó:

MarcaSignificado
MEASUREDestablecido mecánicamente en esta sesión; se cita el comando o el archivo y línea
OPERATORla posición del operador, enunciada por él
SESSIONanálisis producido en esta sesión por el asistente
CHATGPT-ORIGINconcepto originado en una discusión previa con ChatGPT, según el operador
CONCURRENTaterrizado por otra sesión durante esta; citado, no vuelto a derivar

Relacionados, y con autoridad donde se traslapan con esta nota: ADR 0041 · ADR 0040 · cosecha de Palantir · `language-as-archetecture.md` · `primitive-vs-architectural-usage.md` · `algorythm-design-for-agentic-coding-language-theory.md`

---

1. El defecto que lo originó

MEASURED. docs/userstories/ tiene 245 archivos de historia, 112 en la serie 3.x, de los cuales 33 llevan el sufijo ya retirado que hoy se escribe -sprint-doc. El 33.º (sprint-3.96-corpus-db-sprint-doc.md, 04a260cf) aterrizó desde una sesión concurrente durante la sesión que produjo esta nota — la convención se sigue propagando, porque nada la define y nada la detiene.

Conformidad contra la plantilla canónica de historia (~/.claude/workflow/templates/docs/userstories/README.md):

Requisito de la plantillaArchivos 3.x que lo llevan (de 112)
**Period:**0
**Commits:**0
## US-N.x + COMO / QUIERO / PARA + criterios de aceptación + Decisiones técnicas15 — solo el lote f48c4d00 (3.72–3.86)
Indexado en docs/userstories/README.md0 (el índice se detiene en el sprint 1.0)

MEASURED. Estado de cabecera que contradice el cuerpo del mismo archivo, confirmado leyendo:

ArchivoLa cabecera diceSu propio cuerpo dice
sprint-3.71-party-detail-page-sprint-doc.md«Borrador de Gate 1. Sin código escrito»línea 146: «Gate 2 (construcción con pruebas primero): hecho (5ec7e0d2). Gate 3: hecho (e3f49e76
sprint-3.76-lead-crm-dto-profile-sprint-doc.md**Status:** PLANNEDsus dos historias se publicaron en 055e532e
sprint-3.83-contact-channels-sprint-doc.md«parado en Gate 1.5 (REQUERIDO)»«Estado de construcción del backend — el repositorio y el enrutador se construyeron en esta sesión»; 9b56e62f en master
sprint-3.94-...-ui-sprint-doc.md**Status:** Gate 1contiene una sección ## Delivered 2026-08-12

Unas 10 cabeceras más dicen PLANNED o borrador sobre lenguaje de entrega en el cuerpo. Candidatas, no verificadas — la búsqueda que las encontró fue laxa y no es evidencia.

OPERATOR, 2026-08-12, esta sesión: la convención con sufijo no se debe usar. Los documentos de sprint nuevos siguen el nombre de la plantilla sprint-N-<tema>.md. Esto resuelve la cuestión del artefacto; lo que queda es qué hacer con los 33 archivos existentes (plegarlos dentro de su documento de sprint, o definir la clase retroactivamente) — ver §14. CONCURRENT: la misma decisión aterrizó de forma independiente en ba5067e8 («quitar el sufijo de estado del nombre») desde otra sesión a la misma hora, lo cual es en sí mismo una instancia de la §6.4 — el arreglo tuvo que aplicarse en dos lugares porque ningún artefacto declaraba la clase.

---

2. Causa raíz: un conflicto dentro de un solo archivo de instrucciones

MEASURED. La instrucción que produce estos documentos es la §5 de /handoff (.claude/commands/handoff.md:148), añadida en e06979da, el 2026-08-03 — el mismo día en que apareció el primer archivo de documento de sprint con sufijo. Especifica las ocho secciones exactas que llevan los archivos.

La §6 de /handoff, la sección siguiente, dice: «Enruta según `docs/PROCESS.md` §16 — nunca inventes un tipo de artefacto nuevo», y enruta «Plan / criterios de aceptación / estado → el documento de historia del sprint».

La §5 inventa un tipo de artefacto y lo archiva en el directorio de historias; la §6 prohíbe inventar uno. Secciones adyacentes, mismo archivo. Ninguna está mal por sí sola. Las dos no se pueden satisfacer a la vez.

MEASURED. Tres condiciones permitieron que se propagara en vez de que se atrapara:

1. La §1.1 de PROCESS.md — el mapa de artefactos cuya propia cabecera dice «Cuando te confundas, relee esto antes de inventar una convención nueva»no tiene renglón para la clase de documento inventada. No había ningún lugar donde consultar que hubiera dicho que no. 2. La §2.2 de PROCESS.md ata una enumeración cerrada de Status: a docs/userstories/sprint-NN-*.md. Los archivos con sufijo coinciden con ese patrón, así que la enumeración los gobierna. La §5 de /handoff en cambio pide «Estado del proceso — qué puertas están hechas», prosa libre. Cero de las cabeceras de los archivos con sufijo usan la enumeración. 3. tools-doc-truth entonces ratificó el componente en su gramática de nombres de archivo (crates/tools/doc-truth/src/numbering.rs:38) y le escribió una exención (src/main.rs:957: «los documentos [de sprint con sufijo] comparten el número de su sprint por convención — no hay nada que reparar»), quitando la única comprobación que habría señalado el síntoma de numeración duplicada. SPRINT-CURRENT.md registra de forma independiente que D3 se perdió la colisión del 3.87 exactamente por esta razón.

SESSION. La ambigüedad sobre su vida útil es por lo que se quedan viejos: un documento de entrega se escribe en la frontera de una sesión para ser cierto en la entrega; un Status: de historia se mantiene hasta el Gate 6. Nada dice quién lo actualiza después de que aterriza la construcción, así que nadie lo hace.

---

3. Qué se generaliza

SESSION. Cada hallazgo de arriba es una arista faltante o contradictoria en un mismo grafo. Nodos: archivos de instrucciones · clases de artefacto declaradas (patrón → secciones requeridas → vocabulario de estado) · sitios de imposición (código del comprobador, hooks) · artefactos producidos. Aristas: declara · enruta-a · impone · exime · instancia.

ReglaDefecto de aristaHabría atrapado el caso el
A1 artefacto sin enrutaruna habilidad nombra una ruta de escritura sin arista declara en la §1.12026-08-03, el día uno
A2 prohibición contra prácticael archivo dice «nunca inventes un tipo de artefacto» y falla A1el mismo día
B1 vínculo de vocabularioel artefacto coincide con un patrón atado a una enumeración; el campo está fuera de la enumeraciónel primer documento de sprint con sufijo
C1 herramienta adelantada al procesocomponente de gramática vivo en el código del comprobador, cero coincidencias en el corpus de instruccionescuando tools-doc-truth lo ratificó
C2 exención sin dueñouna arista exime cuya clase eximida no tiene arista declaralo mismo
D1 autoafirmación no monótonael estado de la cabecera es de ordinal menor que una afirmación de puerta completada en el mismo cuerpoen el Gate 3

A1, A2, C1 y C2 son diferencias de conjuntos. B1 es analizar un campo contra una tabla. D1 es un mapa de estado a ordinal de puerta más un barrido del cuerpo buscando Gate N: done más un hash. Todas decidibles; ningún modelo en el veredicto. Una séptima (D2: el documento dice PLANNED y un commit nombra su sprint o historia) es solo evidencia y nunca debe bloquear: su precisión es demasiado baja.

SESSION. Resultado del Gate 0.5: esto no es una pieza nueva. tools-doc-truth ya es dueño de la pieza de biblioteca — class.rs::layout_diff es la diferencia entre lo declarado y lo real de A1 aplicada a las entradas de primer nivel de docs/; commands_diff es la misma forma para los comandos; numbering.rs analiza la gramática del nombre de archivo de sprint; report.rs da formato a los hallazgos. Esto es D9–D13 dentro de `tools-doc-truth`, más una entrada de registro. Construir una segunda herramienta al lado sería la duplicación que el Gate 4.5 existe para detener.

---

4. La tubería de fragmentos: dónde se le permite actuar a un modelo

SESSION. Siete etapas; el modelo toca una.

#EtapaQuién
1analizar el corpus → nodos de sección (archivo, ruta de encabezado, rango de líneas, huella de contenido)código
2extraer referentes: rutas de escritura, citas de §, identificadores de puerta, patrones, nombres de campo, verbos deónticoscódigo
3reglas deterministas A1/B1/C1/C2/D1código
4emparejamiento de candidatos — secciones que comparten un referente, menos lo que decidió la etapa 3código
5adjudicarmodelo
6cachear por hash(a)+hash(b)+versión_de_instrucción; registrarcódigo
7trinquete contra la línea base — lo nuevo bloquea, lo resuelto encogecódigo

MEASURED. La etapa 4 es la ruta crítica — toda etapa posterior se dimensiona a partir de ella. El corpus de instrucciones son unos 121 archivos y unos 1,383 encabezados (~/.claude/commands 812 · el .claude del repositorio 447 · los dos PROCESS.md 106 · CLAUDE.md 8 · WORKFLOW.md 10; las copias global y local se traslapan y se deduplican por huella). El emparejamiento ingenuo son unos 950 mil pares. Indexar por referente compartido lo colapsa a cientos. El par §5/§6 sale a la luz porque los dos nombran docs/userstories/ y el concepto de tipo de artefacto.

Tres tipos de fragmento, y solo estos:

ninguna`

subespecificado | ninguna. La familia sin ningún componente que buscar: nada en /handoff dice quién actualiza un documento de entrega después de que aterriza la construcción, y ningún patrón encuentra una frase faltante. El de mayor valor y menor precisión — ponle una línea base dura.

sección cambiada, ratificado por una persona.

La frontera, dicha una vez: el modelo propone, el código cuenta, el repositorio registra. Nunca cuenta hallazgos, nunca fija la pertenencia a la línea base, nunca vuelve a decidir sobre una sección cuya huella no cambió, y nunca anula una diferencia de conjuntos de la etapa 3.

---

5. El registro, y qué hay que capturar en vivo

SESSION. operations-test-results (crates/operations/test-results) es el sumidero y se construyó agnóstico al tipo de prueba en el sprint 0.41. test_run / test_case / test_case_alias / test_result / metric_sample / test_finding, donde TestFinding{kind, severity, rule, target, detail: Json} ya encaja: rule = A1…D1, target = archivo:rango-de-líneas, detail = la adjudicación con el modelo y la huella de la instrucción. flake.rs y budget.rs son puros y ya están — apuntados a reglas en vez de a pruebas, flake.rs responde la pregunta que importa: una regla cuyo veredicto se voltea entre corridas con la misma entrada es una regla defectuosa. application-test-results (0.42) lo expone; /staff/test-reports (0.43) lo dibuja.

Un cambio real: TestKind es una enumeración cerrada de 7 variantes (UnitUsability) y ninguna encaja. Añadir una variante es una elevación de Gate 4.5 — correcto aquí, ya que este es el repositorio de las piezas de biblioteca.

CHATGPT-ORIGIN, vía algorythm-design-...md §L, y corrige una suposición hecha antes en esta misma sesión: el arnés tiene que identificar qué mediciones se capturan durante la ejecución en vez de reconstruirse después. El registrador, tal como se propuso primero, tenía forma de reconstrucción. La regla de análisis 8 de esa discusión existe precisamente porque la reconstrucción a posteriori no podía acotar una ventana de experimento dentro de una sesión más larga. La división correcta:

capturado en vivo    Run · ProcessRun · TaskRun · AgentRun · ModelRequest · ToolInvocation
derivado después     Observation · Attribution · VerificationResult · SemanticConflict

SemanticConflict en esa lista de entidades es el mismo renglón que emiten D9–D13. La lista de entidades del arnés y el esquema de hallazgos son una sola tabla.

---

6. Hallazgos contra la tesis

Los números de sección se refieren a `language-as-archetecture.md`.

6.1 Una forma de degradación que le falta a la taxonomía

SESSION. La §3 nombra siete formas — pudrición semántica, deriva de especificación, deriva arquitectónica, pudrición ontológica, pudrición del oráculo, pudrición del proceso, amplificación de la confianza. Las siete describen artefactos degradándose río abajo de la intención, y la cadena de falla de la §2 empieza en intención humana → interpretación del modelo, lo que vuelve la intención el punto fijo.

El caso del documento de sprint con sufijo no es deriva. Las dos instrucciones se redactaron deliberadamente, son correctas por separado, y son mutuamente insatisfacibles. El corpus nació inconsistente.

Adición propuesta — incoherencia de intención: un corpus gobernante que contiene directivas mutuamente insatisfacibles, donde la velocidad generativa propaga las dos con fidelidad. Su propiedad diagnóstica invierte el encuadre habitual:

**Un modelo más obediente empeora esta falla.** Los 32 artefactos malformados existieron *porque* la §5 se siguió correctamente. El error del modelo fue cero.

Esto importa porque todo mecanismo antientropía de la §38 supone que la fidelidad protege. Aquí la fidelidad es el vector de propagación.

6.2 Captura del mecanismo — falta en la §38 y en la §45

MEASURED. Nueve días después de que se redactara la contradicción, la capa de imposición codificó el componente y lo eximió (§2.3 arriba). La §38 pregunta qué pudrición previene o detecta cada mecanismo; esto muestra una tercera relación — un mecanismo puede ser reclutado por la pudrición que debería detectar. La palabra «convención» en esa exención es la señal: el comprobador afirmó una definición que no existía en ninguna parte. Pertenece a la §45 como contraargumento 21, y es el apoyo empírico más fuerte del documento a la §29 — el arnés fue capturado mediante un commit ordinario y bienintencionado.

6.3 Una precondición para la §8

SESSION. El trinquete se disparó sobre el sufijo retirado — la gramática de nombres de archivo es un clic real. Pero la precondición que la §8 enuncia es «una vez que una interpretación se ha verificado lo suficiente», y no existía ninguna interpretación; había uso repetido. La §8 pregunta cuándo el trinquete se vuelve dañino y responde «formalización prematura» — esto es distinto. La formalización prematura congela un significado disputado; esto congeló uno ausente.

**Un clic del trinquete requiere una definición citable, no una frecuencia observada.** Un trinquete disparado por frecuencia convierte la costumbre en ley.

CONCURRENT. Adoptado de forma independiente el mismo día en el ADR 0041, consecuencia final: «El vocabulario sin asentar (los nombres de clase de la taxonomía, la palabra "arnés") se excluye deliberadamente de este ADR y de cualquier restricción CHECK del esquema; los valores permitidos viven en datos semilla bajo control de versiones, indexados por versión de vocabulario.» Esa es esta precondición, codificada, y sustituye a la guarda más débil que esta sesión propuso primero (un valor unclassified en la enumeración).

6.4 La primera puerta faltante

SESSION. Las puertas candidatas de la §36 corren intención → requisito → ontología → arquitectura → contrato de aceptación → plan de implementación → comportamiento verificado. No hay ninguna puerta antes de la primera flecha. La contradicción estaba presente en intención, y todas las puertas río abajo la transmitieron con fidelidad.

La puerta faltante es la autoconsistencia del corpus: `intención → intención`. También es el caso más claro del documento a favor de que la asistencia de máquina sea necesaria y no meramente más barata: detectar que la §5 contradice a la §6 exige sostener pares de unas 1,383 secciones en la mente a la vez. Una persona no puede. Ese argumento no está hoy en la tesis.

CHATGPT-ORIGIN, vía primitive-vs-architectural-usage.md, llega a la misma conclusión estructural por otro eje — insertar CLASIFICAR LA PETICIÓN antes del reconocimiento, y hacer evolucionar «el taller primero» hacia CLASIFICAR → DESCUBRIR → REUTILIZAR → COMPONER → EXTENDER → CREAR. Los dos son ejes complementarios de un mismo prevuelo faltante: `intención → intención` (autoconsistencia) e `intención → clase` (clasificación). Constrúyanse como una sola etapa, no como dos.

---

7. Las dos discusiones incorporadas

7.1 El brazo de ontología — primitive-vs-architectural-usage.md

CHATGPT-ORIGIN. Seis clases arquitectónicas (domain_type, primitive, archetype, component, domain_module, application, más support), con la regla crítica de que el prefijo de pieza primitives-* no es el Primitive arquitectónico.

MEASURED. Esto le da a la §3 su ejemplo canónico de pudrición semántica con una instancia viva: identity-parties contiene Party (un tipo de dominio bajo esas clases); infrastructure-transcription contiene WhisperRsTranscriber (un componente). El espacio de nombres afirma una clase que su contenido no tiene. La tesis debería citar esto en vez de un caso hipotético.

MEASURED, y bloquea la Fase 1 de ese documento tal como está escrita: propone añadir architectural_role al índice de capacidades, pero docs/reference/capability-index.tsv (10,478 líneas) está sellado como «GENERADO por `tools-gen-ai-context` — no editar a mano» y «barrido de texto, no un análisis: sobreinclusivo por diseño». No se puede editar a mano, y el valor no se puede derivar — el rol arquitectónico es una atribución, no una observación. Necesita una capa sobrepuesta aparte, escrita a mano, unida por pieza y símbolo, con su propio número de cobertura.

CONCURRENT. El ADR 0041 §6 resuelve la forma general: los renglones afirmados por un modelo cargan provenance_class (operador | modelo | mecánico) y confidence, y una afirmación de modelo nunca sobrescribe en silencio un valor derivado del operador o de git. La capa sobrepuesta es una instancia de esa regla, no una decisión nueva.

7.2 El brazo empírico — algorythm-design-for-agentic-coding-language-theory.md

CHATGPT-ORIGIN. TEST-001 (coordinador Sonnet, trabajadores Haiku, 384 registros de piezas) contra TEST-002 (flujo dinámico, observar → verificar de forma independiente → reconciliar, 388 registros) sobre el mismo repositorio sin cambios, con un encuadre adversario — «el propósito es averiguar si la metodología de verdad ayudó, no confirmar la teoría» — y una lista de factores de confusión que incluye el sesgo de verificación por familia de modelo, que es el contraargumento 11 de la tesis vuelto operativo.

SESSION. Esta es una mejor §46 que la §46: la tesis enuncia H1–H12 sin ningún diseño experimental, y esto aporta uno. Habría que subordinar aquella a esta en vez de mantenerlas en paralelo.

MEASURED. El motor mecánico de evidencia para este experimento ya existe en el árbol de trabajo como crates/tools/crate-capability-audit (sin seguimiento, propiedad de una sesión concurrente al momento de escribir). Su propio comentario de documentación enuncia la misma frontera de inteligencia de forma independiente: «sin llamadas a modelos de lenguaje, sin estimación … se detiene deliberadamente en lo que es mecánicamente contable … los juicios pertenecen a una pasada de síntesis que lea la salida de este reporte.» Emite envelope(command, data) con SCHEMA_VERSION, que es el contrato de registro — un registrador, N motores de evidencia, cada uno manteniéndose puro, sin ediciones a su pieza.

---

8. Nomenclatura

MEASURED. «Arnés» tiene tres significados vivos, ninguno de ellos el del operador:

SentidoDóndeEvidencia
aparato de pruebaseste repositorio986 apariciones en docs/; las definitorias son foundation-test-support («arnés de pruebas de Postgres»), desktop-gui-harness, tools-research-sweep («arnés de investigación»)
arnés de evaluaciónaprendizaje automáticolm-evaluation-harness y sus sucesores
arnés de agentedesarrollo asistido por IAel sentido dominante entre quienes ejercen — el andamiaje que convierte un modelo en un agente; toda línea de comandos de programación agéntica de esta categoría es uno

SESSION. El tercero es la colisión dañina: quien lee en este campo entiende «construyó un ciclo de agente», que es lo contrario de la afirmación. Y «arnés» subvalúa la cosa — un arnés nunca declara inválido un resultado, mientras que las §27–29 describen algo que es dueño del estado, evalúa predicados de transición, otorga autoridad sobre herramientas y es dueño de la definición de verificado. Eso es una autoridad.

Correspondencia con términos reconocidos:

ConceptoTérmino reconocido
§27–29 propiedad del estado más ser dueño de «verificado»plano de control
§28 autoridad sobre herramientas por estado del procesomotor de políticas; barreras (más débil)
§26 oráculo independienteverificador; evaluaciones
§34 compilación de la instrucción desde el estadoingeniería de contexto
§7 frontera de la inteligenciaflujo de trabajo contra agente
§30 enrutamiento de modelosenrutamiento de modelos (ya es correcto)
§8 trinquete semánticotrinquete (establecido en integración continua y análisis estático)
la mitad de procesodesarrollo dirigido por especificación
§31 densidad de criteriosin equivalente establecido — probablemente original

SESSION. `plano de control` es mejor pero no limpio. En redes, el plano de control es la capa inteligente y lenta y el plano de datos es tonto y rápido. Aquí el gradiente se invierte: la capa que gobierna es código determinista que no ejerce ningún criterio, y la capa que ejecuta es un modelo de frontera que lo ejerce todo. Un lector atento lo nota.

OPERATOR. Término de trabajo: plano del arnés. CONCURRENT: el ADR 0041 deja explícitamente la palabra sin asentar y fuera de cualquier restricción CHECK a la espera de una definición — consistente con la §6.3 de arriba. El término necesita una línea de definición antes de que nada lo codifique. Contraste propuesto, sin ratificar:

**Arnés de proceso / plano del arnés** — la autoridad que es dueña del estado del desarrollo, evalúa las transiciones de puerta, y define qué cuenta como verificado. Distinto de un **arnés de agente** (andamiaje que convierte un modelo en un agente) y de un **arnés de pruebas** (aparato que ejecuta pruebas). Un arnés de proceso *contiene* arneses de agente como componentes reemplazables; un arnés de agente nunca contiene un arnés de proceso.

Esa última frase es una afirmación estructural falsable, no una preferencia de nombre.

---

9. La oportunidad de medición

SESSION. crates/application/wiki/src/research.rs es transcript-harvest: extrae ideas de videos de investigación, analiza URLs de YouTube, les saca huella de contenido a las fuentes, y su libro mayor ya rechaza la autoconfirmación — un renglón de «ya lo hacemos» tiene que citar evidencia fuera de las transcripciones de sesión, con una prueba que fija el rodeo de escribir la palabra con espacios. Así que el uso de un término en el discurso de quienes ejercen es medible, no cuestión de impresiones:

corpus       transcripciones cosechadas de videos de investigación, con fecha
extraer      cada aparición de un término más una ventana de N palabras      (código)
clasificar   sentido: andamiaje-de-agente | pruebas | evaluación | autoridad-de-proceso | sin-calificar   (modelo)
cachear      por content_hash                                                (código)
registrar    la distribución, con fecha                                      (código)

La misma tubería que la §4, otro corpus. Decide la cuestión del nombre con un número en vez de con dos opiniones, y se generaliza:

1. El impuesto del componente léxico, hecho visible. Los modelos se entrenan con el léxico público; donde un vínculo interno diverge, cada modelo llega con el prior equivocado y la corrección se paga por sesión, para siempre. primitives-* es una instancia medida. Salida: por término, la brecha entre el vínculo interno y el sentido público dominante, ordenada y accionable. Rinde en la siguiente sesión. 2. Un indicador adelantado. Si la divergencia creciente de sentidos precede a la divergencia de artefactos — comprobable retrospectivamente contra la cronología del sufijo retirado, usando las 1,718 sesiones cosechadas y los 36,966 trozos de turno ya indexados. Cualquiera de los dos resultados es publicable; solo uno es un mecanismo. 3. Una cuña que se generaliza fuera de este repositorio. Cualquier equipo con un corpus gobernante — CLAUDE.md, AGENTS.md, .cursorrules, archivos de habilidades — tiene contradicciones que no puede ver, por la razón de la §6.4. Hoy nada comprueba la gobernanza; los analizadores estáticos, las evaluaciones y las barreras comprueban el producto. 4. Posicionamiento. Un corpus de sentidos de términos, fechado y reproducible, es citable. Bajo costo, valor de opción real, sin necesidad de un modelo de negocio.

Límites, dichos sin rodeos. La novedad de método no está disponible — la detección diacrónica de cambio semántico es un subcampo establecido con métodos publicados y tareas compartidas; la aportación sería el corpus y la aplicación, y afirmar otra cosa reprueba la §50. Las transcripciones de video son una muestra sesgada (popular, monetizable, en inglés, reciente) y el reconocimiento automático de voz destroza los términos técnicos — justo el modo de falla que corrompería un estudio de frecuencia de términos. La clasificación de sentidos es una atribución según la §6, así que sin una pasada de verificación independiente y una tasa de acuerdo medida, las distribuciones son adorno. El punto 2 es la afirmación valiosa y la más probable de fallar; pruébenlo antes de construir sobre él.

---

10. El programa: drift-origin

SESSION. Regla 14 — esta sesión rastreó una contradicción hasta su origen a mano en unas quince llamadas a herramientas. Ese procedimiento es repetible, así que se convierte en un programa en Rust probado y registrado, en vez de en un ritual agéntico repetido por incidente.

El programa tiene dos mitades que miran en direcciones opuestas en el tiempo. Las dos hacen falta; solo la primera se describió en las §3–§4.

        MITAD A — prospectiva                   MITAD B — retrospectiva
  "qué del corpus no puede ser todo cierto"   "qué produjo esta rareza"

        corpus de instrucciones                    anomalía observada
               |                                         |
        analizar + referentes                    bisección de la primera aparición
               |                                         |
        reglas A1..D1  ------------------------>  instrucción de origen
               |          regla nueva aprendida         |
        hallazgos                                 comprobación de si sigue viva

10.1 Mitad A — detección estática sobre el corpus (tools-doc-truth D9–D13)

Descrita en las §3–§4. Prospectiva: encuentra contradicciones, campos fuera de enumeración, componentes de herramienta adelantados al proceso, exenciones sin dueño y autoafirmaciones no monótonas antes de que produzcan artefactos. Aterriza dentro de tools-doc-truth, reutilizando class.rs::layout_diff, numbering.rs y report.rs. Una entrada nueva: docs/reference/artifact-registry.tsv, todavía sin escribir.

10.2 Mitad B — rastreo del origen de la deriva (herramienta propuesta, crates/tools/drift-origin, sin construir)

La mitad A no puede encontrar una rareza, porque una rareza es por definición algo que se nota en la salida y no algo que se predice del corpus. La mitad B corre en el otro sentido: dada una anomalía, nombra la instrucción que la causó, y di si esa instrucción sigue viva.

Taxonomía de anomalías — las clases de entrada que acepta:

ClaseEjemplo de esta sesión
clase de artefacto no sancionadalos 33 archivos de sprint con sufijo que ningún mapa de artefactos declara
valor de campo fuera del vocabulariocabeceras de Status: fuera de la enumeración de la §2.2
convención sin autor«los documentos [de sprint con sufijo] comparten el número de su sprint por convención»
corrección recurrenteel operador repitiendo el mismo arreglo entre sesiones
cambio de alcance en silencioun documento cuyo cuerpo contradice su propia cabecera

Tubería:

#EtapaQuiénMétodo
1acotar la anomalíacódigoun emparejador: patrón de nombre de archivo, patrón de campo, o frase
2primera aparicióncódigogit log --diff-filter=A sobre las coincidencias; gana la más temprana
3ventana de autoríacódigofecha de autoría del commit ± una ventana; identificar los commits de instrucciones concurrentes
4orígenes candidatoscódigocommits del corpus de instrucciones en esa ventana, más las secciones cuyos referentes coincidan con la anomalía (el extractor de la etapa 2 de la §4, reutilizado)
5evidencia de sesióncódigoel corpus de transcripciones de tools-org-knowledge — sesiones en la ventana cuyo contexto contenía una sección candidata
6atribuirmodeloun fragmento: anomalía + secciones candidatas + extracto de la sesión → `causado_por \
7comprobar si sigue vivacódigo¿la sección de origen sigue existiendo, sin cambios, en el corpus?
8promovercódigoemitir una regla propuesta de la mitad A que la habría atrapado, más un renglón de SemanticConflict

La etapa 8 es el punto. Cada origen rastreado se convierte en una regla prospectiva nueva, así que la superficie de detección del sistema crece a partir de su propia historia de incidentes y no de la especulación. Esa es la tríada autoría → operación → reparación de la §13 de la tesis, mecanizada: la reparación produce la regla que convierte la siguiente ocurrencia en una captura en modo de operación.

Posición de reúso (Gate 0.5). Sin infraestructura nueva de corpus. Las etapas 2 y 3 son git. La etapa 4 reutiliza el extractor de la mitad A. La etapa 5 reutiliza el corpus de transcripciones de tools-org-knowledge (1,718 sesiones / 36,966 trozos de turno, ya indexado y buscable). La etapa 8 escribe en operations-test-results según la §5. Lo único nuevo son la orquestación y los emparejadores de anomalías.

Validación antes de confiar en ella. La herramienta tiene que reproducir el rastreo manual de esta sesión sin ayuda: dada la anomalía «existen archivos que coinciden con *-sprint-doc.md y ningún mapa de artefactos los declara», tiene que devolver /handoff §5, e06979da, 2026-08-03, sigue-viva = verdadero. Esa es la prueba de aceptación, y existe antes que la herramienta.

Qué no debe hacer. La etapa 6 es la única etapa de modelo, está acotada a un fragmento, y evidencia_insuficiente tiene que ser un veredicto de primera clase — un rastreador que siempre nombra una causa es un confabulador. Atribuir culpa a una sesión o a un autor queda fuera de alcance permanentemente; la salida nombra instrucciones, nunca personas.

10.3 Secuencia

1. Las etapas 1 a 4 de la mitad A corren desarmadas para medir la cuenta real de pares candidatos y la tasa de falsos positivos sobre el corpus vivo. Ninguna regla se arma hasta que ese número exista. 2. La mitad B construida contra el rastreo del sprint con sufijo como su fixture — el único caso con una respuesta conocida y verificada a mano. 3. Las reglas se arman de una en una, cada una con línea base que solo encoge, según el precedente de la puerta de mutación. 4. La medición de sentidos de términos (§9) va sobre la misma tubería con un segundo corpus.

---

11. El contrato vigente

SESSION. Condensado de todo lo anterior en un contrato de trabajo reutilizable. El texto completo se propone para un docs/reference/harness-plane-contract.md; aquí se resume para que esta nota se sostenga sola.

0  POSICIÓN              el mecanismo es dueño del estado, las cuentas y los veredictos;
                         tú no eres dueño de «terminado»
1  CLASIFICA PRIMERO     la clase antes del descubrimiento; `unclassified` es legal y se
                         registra
                         DESCUBRIR -> REUTILIZAR -> COMPONER -> EXTENDER -> y solo
                         entonces CREAR
2  PARTE CADA AFIRMACIÓN OBSERVACIÓN / ATRIBUCIÓN / INFERENCIA / HIPÓTESIS
                         una afirmación sin etiqueta es un defecto
3  FRONTERA DE LA        el código cuenta; si se decide con una búsqueda, un análisis o
   INTELIGENCIA          una diferencia de conjuntos -> escribe la comprobación
                         el criterio recurrente no es criterio — propón el mecanismo
4  FRAGMENTA LO NO       una sola pregunta acotada más únicamente la evidencia que
   RESUELTO              podría cambiarla
                         estrecha la pregunta; nunca ensanches el fragmento para sentirte
                         seguro
5  PRECONDICIÓN DEL      no hay codificación sin una definición citable; la frecuencia no
   TRINQUETE             es una
6  FRICCIÓN EN EL        barato: ejecutar. caro: intención->clase->arquitectura->
   SIGNIFICADO           aceptación->oráculo. nunca cruces uno en silencio
7  CONSISTENCIA DEL      comprueba un conjunto de instrucciones contra sí mismo antes de
   CORPUS                seguirlo
                         dos instrucciones insatisfacibles = un hallazgo, no un juicio
8  NO AUTOCONFIRMACIÓN   nombra la comprobación independiente; las pruebas demuestran
                         comportamiento, nunca significado
9  PROCEDENCIA           operador | esta sesión | sesión previa | fuente nombrada
10 LA INVESTIGACIÓN      cada corrida emite mediciones: contadas, juzgadas, cacheadas,
   COMO SUBPRODUCTO      sin clasificar, con su costo. trabajo sin medición es media
                         corrida
11 CONDICIONES DE PARO   sin clasificar bloquea el siguiente paso · las instrucciones se
                         contradicen · un campo requerido está sin definir · la
                         verificación se autoconfirma · la pasada determinista todavía no
                         se ha escrito

---

12. Ambigüedades encontradas en la salida de esta misma sesión

Según la instrucción que produjo esta nota — escrutadas en vez de limadas.

1. `plano del arnés` no está definido. Tiene un día de edad, se acuñó a media sesión, y por la regla 5 de la §11 nada puede codificarlo todavía. La §8 propone una definición; no está ratificada. El ADR 0041 ya excluye la palabra de cualquier restricción CHECK, que es la posición de espera correcta. 2. «Las dos discusiones» se infirió, no se confirmó. Tres archivos de investigación eran más nuevos que la tesis; dos se leyeron como los referentes (§7). El tercero, research-prompt-anthropic-models-process-improvement.md, es una instrucción de investigación y no una discusión, y se excluyó por eso. Si el par que se quería es otro, la §7 está equivocada. 3. Las ~10 cabeceras viejas adicionales de la §1 no son evidencia. La búsqueda que las produjo coincidía con lenguaje de entrega en cualquier parte del archivo, incluida la prosa de «fuera de alcance». Se listan como candidatas y no deben contarse. 4. `unclassified` contra `support` se propuso y luego se sustituyó. Esta sesión propuso primero un valor unclassified en la enumeración como guarda contra la clasificación forzada; el enfoque de versión de vocabulario del ADR 0041 es el mecanismo adoptado. La propuesta anterior queda aquí solo para que sobreviva el razonamiento, no como recomendación viva. 5. La convergencia dentro de esta nota no es evidencia independiente. La forma de TEST-002, el diseño de tools-crate-capability-audit, la regla de procedencia del ADR 0041 y la tubería de fragmentos de esta sesión son la misma arquitectura — pero comparten un operador y corpus de entrenamiento traslapados, entre ChatGPT y Claude. Ese es el contraargumento 11 de la tesis aplicado a la evidencia de esta misma nota. Muestra que la arquitectura es construible, no que sea correcta. 6. Aquí no se evalúa la novedad. Por los límites de la §9 y por la declaración del operador de que buena parte del vocabulario de la tesis se originó en ChatGPT, a un modelo al que se le pregunta si estos conceptos son novedosos se le está preguntando sobre su propia distribución de entrenamiento — el juez menos confiable posible. La investigación de predecesores de la §44 tiene que ser una búsqueda bibliográfica. 7. Dos nombres de archivo de origen llevan erratas (language-as-archetecture.md, algorythm-design-...md). La D2 de tools-doc-truth comprueba la integridad de las referencias; renombrarlos antes de que algo los cite sale más barato que arreglar a quienes los citen después. No se hizo aquí — no son archivos de esta sesión.

---

13. Qué falsaría el hallazgo central

El hallazgo central es la §6.1: que un corpus gobernante puede nacer inconsistente, y que la fidelidad del modelo lo propaga en vez de corregirlo.

Falla si se cumple cualquiera de estas:

inventes un tipo de artefacto nuevo» de la §6 está acotado solo al enrutamiento de hallazgos y nunca a la instrucción de la propia §5. Esta es la junta más débil del análisis y merece una lectura directa antes de apoyarse en el hallazgo.

muestrear sus commits de autoría contra las sesiones que corrieron /handoff establecería o rompería el vínculo.

un número tratable sobre el corpus real. Sin medir; las etapas 1 a 4 deberían correr desarmadas antes de mandarle cualquier fragmento a un modelo.

que la línea base sea más grande que la señal. También sin medir.

---

14. Abierto, y debido al operador

convención está retirada: plegar cada uno dentro de su documento de sprint, o definir la clase retroactivamente para que los existentes dejen de estar sin enrutar. Cualquiera de las dos es un hallazgo de la mitad A en cuanto exista el registro.

sprint (la misma tubería, dos corpus).

como tools-crate-capability-audit, y por tanto es un acuerdo entre sesiones, no unilateral.

Toda la investigación