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ó:
| Marca | Significado |
|---|---|
MEASURED | establecido mecánicamente en esta sesión; se cita el comando o el archivo y línea |
OPERATOR | la posición del operador, enunciada por él |
SESSION | análisis producido en esta sesión por el asistente |
CHATGPT-ORIGIN | concepto originado en una discusión previa con ChatGPT, según el operador |
CONCURRENT | aterrizado 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 plantilla | Archivos 3.x que lo llevan (de 112) |
|---|---|
**Period:** | 0 |
**Commits:** | 0 |
## US-N.x + COMO / QUIERO / PARA + criterios de aceptación + Decisiones técnicas | 15 — solo el lote f48c4d00 (3.72–3.86) |
Indexado en docs/userstories/README.md | 0 (el índice se detiene en el sprint 1.0) |
MEASURED. Estado de cabecera que contradice el cuerpo del mismo archivo, confirmado leyendo:
| Archivo | La cabecera dice | Su 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:** PLANNED | sus 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 1 | contiene 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.
| Regla | Defecto de arista | Habría atrapado el caso el |
|---|---|---|
| A1 artefacto sin enrutar | una habilidad nombra una ruta de escritura sin arista declara en la §1.1 | 2026-08-03, el día uno |
| A2 prohibición contra práctica | el archivo dice «nunca inventes un tipo de artefacto» y falla A1 | el mismo día |
| B1 vínculo de vocabulario | el artefacto coincide con un patrón atado a una enumeración; el campo está fuera de la enumeración | el primer documento de sprint con sufijo |
| C1 herramienta adelantada al proceso | componente de gramática vivo en el código del comprobador, cero coincidencias en el corpus de instrucciones | cuando tools-doc-truth lo ratificó |
| C2 exención sin dueño | una arista exime cuya clase eximida no tiene arista declara | lo mismo |
| D1 autoafirmación no monótona | el estado de la cabecera es de ordinal menor que una afirmación de puerta completada en el mismo cuerpo | en 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.
| # | Etapa | Quién |
|---|---|---|
| 1 | analizar el corpus → nodos de sección (archivo, ruta de encabezado, rango de líneas, huella de contenido) | código |
| 2 | extraer referentes: rutas de escritura, citas de §, identificadores de puerta, patrones, nombres de campo, verbos deónticos | código |
| 3 | reglas deterministas A1/B1/C1/C2/D1 | código |
| 4 | emparejamiento de candidatos — secciones que comparten un referente, menos lo que decidió la etapa 3 | código |
| 5 | adjudicar | modelo |
| 6 | cachear por hash(a)+hash(b)+versión_de_instrucción; registrar | código |
| 7 | trinquete contra la línea base — lo nuevo bloquea, lo resuelto encoge | có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:
- par — dos secciones más los renglones de registro que tocan → `contradicción |
ninguna`
- ausencia — una sección más el renglón de secciones requeridas de su clase →
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.
- borrador de registro — prosa → renglón propuesto, corrido una sola vez por
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 (Unit…Usability) 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:
| Sentido | Dónde | Evidencia |
|---|---|---|
| aparato de pruebas | este repositorio | 986 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ón | aprendizaje automático | lm-evaluation-harness y sus sucesores |
| arnés de agente | desarrollo asistido por IA | el 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:
| Concepto | Término reconocido |
|---|---|
| §27–29 propiedad del estado más ser dueño de «verificado» | plano de control |
| §28 autoridad sobre herramientas por estado del proceso | motor de políticas; barreras (más débil) |
| §26 oráculo independiente | verificador; evaluaciones |
| §34 compilación de la instrucción desde el estado | ingeniería de contexto |
| §7 frontera de la inteligencia | flujo de trabajo contra agente |
| §30 enrutamiento de modelos | enrutamiento de modelos (ya es correcto) |
| §8 trinquete semántico | trinquete (establecido en integración continua y análisis estático) |
| la mitad de proceso | desarrollo dirigido por especificación |
| §31 densidad de criterio | sin 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:
| Clase | Ejemplo de esta sesión |
|---|---|
| clase de artefacto no sancionada | los 33 archivos de sprint con sufijo que ningún mapa de artefactos declara |
| valor de campo fuera del vocabulario | cabeceras 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 recurrente | el operador repitiendo el mismo arreglo entre sesiones |
| cambio de alcance en silencio | un documento cuyo cuerpo contradice su propia cabecera |
Tubería:
| # | Etapa | Quién | Método |
|---|---|---|---|
| 1 | acotar la anomalía | código | un emparejador: patrón de nombre de archivo, patrón de campo, o frase |
| 2 | primera aparición | código | git log --diff-filter=A sobre las coincidencias; gana la más temprana |
| 3 | ventana de autoría | código | fecha de autoría del commit ± una ventana; identificar los commits de instrucciones concurrentes |
| 4 | orígenes candidatos | código | commits 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) |
| 5 | evidencia de sesión | código | el corpus de transcripciones de tools-org-knowledge — sesiones en la ventana cuyo contexto contenía una sección candidata |
| 6 | atribuir | modelo | un fragmento: anomalía + secciones candidatas + extracto de la sesión → `causado_por \ |
| 7 | comprobar si sigue viva | código | ¿la sección de origen sigue existiendo, sin cambios, en el corpus? |
| 8 | promover | código | emitir 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:
- El par §5/§6 de
/handoffno es realmente insatisfacible — por ejemplo, si el «nunca
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.
- Los 33 archivos de sprint con sufijo se rastrean hasta algo que no sea la §5 —
muestrear sus commits de autoría contra las sesiones que corrieron /handoff establecería o rompería el vínculo.
- El emparejamiento por referente de la etapa 4 no colapsa realmente los ~950 mil pares a
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.
- Las reglas A1–D1 producen suficientes falsos positivos sobre el corpus vivo como para
que la línea base sea más grande que la señal. También sin medir.
---
14. Abierto, y debido al operador
- Cuáles dos discusiones se querían decir (§12.2).
- Qué hacer con los 33 archivos con sufijo existentes (hoy
-sprint-doc) ahora que la
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.
- Si
plano del arnésse queda con la definición de la §8 o con otra. - Si D9–D13 avanza al Gate 1, y si la medición de sentidos de términos va en el mismo
sprint (la misma tubería, dos corpus).
- El nombre de la variante de
TestKind— lo necesitan tanto el corredor de coherencia
como tools-crate-capability-audit, y por tanto es un acuerdo entre sesiones, no unilateral.