# El recorrido sin pérdida *Construir un meta-modelo · lección 3 de 6 · ~15 min* ## Qué aprenderá El contrato de recorrido (ARCH-017): cómo un modelo garantiza que cualquier lector puede visitar todos los archivos, saber qué significa cada uno y demostrar que no se le escapó nada. ## Por qué "leerlo todo" necesita un contrato Un modelo solo es tan fiable como la capacidad del lector de saber que lo ha visto entero. Sin contrato, cada lector improvisa: hojea unos directorios, se salta otros, adivina el significado de los archivos. Con los agentes es peor: un agente que se saltó un directorio en silencio responderá con toda confianza como si no lo hubiera hecho. ARCH-017 convierte la diligencia en mecánica. ## La declaración del recorrido El orden de recorrido son datos, declarados de arriba abajo: - El manifiesto del repositorio declara la **lista ordenada de paquetes** (en orden de dependencia, fundamentos primero; los ciclos no son conformes). - Cada paquete declara sus capas ordenadas; cada capa enumera su contenido con un **tipo** y un significado de una línea. - Los repositorios cuyos nombres de archivo llevan el tipo por convención pueden declarar en su lugar **reglas centralizadas** en el manifiesto: patrones glob ordenados que mapean a tipos, gana la primera coincidencia, con un marcador `{prefix}` para que una sola regla como `kind: "object/{prefix}"` clasifique toda una convención de nombres. Dos recorredores a los que se dé la misma versión del repositorio deben visitar los mismos archivos en el mismo orden: el recorrido canónico es determinista. ## La regla de completitud Cada archivo del repositorio cae exactamente en una de tres clases: 1. **Enumerado**: coincide con una declaración o una regla de clasificación; 2. **De ubicación conocida**: vive en una ubicación reservada (canon/, raw/, artifacts/, bootstrap) y hereda su significado; 3. **Excluido**: listado explícitamente como carente de significado para el modelo (interioridades del control de versiones, configuración del editor). Un recorredor compara el listado recursivo completo de archivos con la unión de las tres clases. Un archivo en ninguna clase es un **huérfano**; uno en dos clases es ambiguo; ambos casos son un fallo de validación estructural. Excluir contenido semántico para pasar la comprobación no es conforme: la lista de exclusiones es una declaración, no un vertedero. ## Tipos y orígenes Todo archivo clasificado lleva un **tipo** (qué es *dentro del modelo*: objeto, evento, contrato, canon, crudo, artefacto, documento, herramienta...) y un **origen**: de autoría, recolectado o generado. El origen decide la editabilidad: los archivos de autoría se editan en su sitio; los recolectados y los generados nunca: el arreglo pertenece a la fuente o al generador. Esta sola distinción es lo que después hace exigible la titularidad de los datos. ## Cómo se siente ejecutar el recorredor Ambos modelos en producción incluyen un recorredor (`tools/mu-walk.ps1`) que realiza el recorrido canónico y escribe un informe en `artifacts/`. Desde el terreno: - Modelo de Orkestron.AI: 613 archivos, 0 huérfanos. La primera ejecución no sacó nada a la luz: un repositorio pequeño y disciplinado. - Modelo de DevTeam.Games: 2613 archivos en disco, incluida evidencia ignorada por git y 146 MB de espejos de código adjuntos. La primera ejecución encontró **47 huérfanos reales**: prototipos de diseño y recursos de interfaz que nadie había declarado, y un registro cuyo prefijo de tipo (`i18n`) rompía una expresión regular de clasificación ingenua. Cada huérfano se convirtió en una *regla*, no en una excepción: el mapa se volvió más veraz. - Ambos recorredores están probados en negativo: plante un archivo suelto y el recorrido falla con código 1 y lo nombra. Esa es la recompensa: "no se ha perdido nada" deja de ser una esperanza y se convierte en una marca verde que puede exigir antes de confiar en un modelo, y entregar en verde a la siguiente sesión. ## Ideas clave - El orden se declara, la clasificación es total, la cobertura se comprueba: los huérfanos tumban la compilación. - El tipo dice qué es un archivo; el origen (autoría/recolectado/generado) dice si puede editarlo. - Los repositorios reales pasan: disposiciones heredadas, recursos binarios y espejos gigantes se clasifican con un puñado de reglas. ## Profundizar - [Recorrido del modelo y ubicaciones conocidas (ARCH-017)](/spec/#02-architecture/Model-Traversal-and-Layout.md) - [Niveles de validación V0-V5](/spec/#02-architecture/Validation.md) Siguiente: [Titularidad de los datos](04-mastership.md)