2140. Identidad de la lección
2141. Objetivo de aprendizaje
Al terminar esta lección, podrás producir un mapa del repositorio que identifique los sistemas relevantes, los puntos de entrada, los responsables de los datos, los límites de dependencia, una ubicación segura para el cambio y los riesgos principales de modificarla.
2142. Por qué importa
Un repositorio desconocido no presenta su arquitectura en el orden que necesitas. Un archivo que parece adecuado puede ser el lugar equivocado porque otro sistema es dueño del estado, otra capa controla el ciclo de vida o varios consumidores dependen de la misma interfaz. Mapear la propiedad convierte la exploración del repositorio en una decisión técnica con límites claros. También te permite preparar un encargo preciso para evaluar antes de pedirle a una herramienta de IA que sugiera o implemente un cambio.
2143. Conocimientos previos
Debes poder inspeccionar un cambio propuesto, revisar la diferencia real, validar el resultado y recuperar el estado cuando el resultado no sea seguro. Esta lección continúa directamente 5.5 L2 — Inspeccionar, validar y recuperar. También necesitas conocer el lenguaje principal del proyecto, su estructura básica de carpetas y sus comandos habituales de validación.
2144. Concepto central
La idea central es determinar la propiedad antes de modificar.
Para cualquier cambio solicitado, distingue cuatro elementos:
- Sistema: ¿Qué subsistema realiza este comportamiento?
- Punto de entrada: ¿Dónde comienza el comportamiento o dónde entra la solicitud relevante al sistema?
- Responsable de los datos: ¿Qué componente crea, almacena o modifica el estado que constituye la fuente de verdad?
- Límite: ¿Qué interfaces, eventos, servicios, escenas, módulos o consumidores deben seguir siendo compatibles?
Un archivo que muestra un valor no necesariamente es su dueño. Una función que recibe un evento no necesariamente define la regla que hay detrás. Una utilidad central puede parecer fácil de editar, pero ser peligrosa porque muchos sistemas no relacionados dependen de la misma interfaz. La ubicación segura es el componente más acotado que tiene autoridad sobre el estado y satisface la solicitud sin cruzar un límite innecesario.
2145. Modelo mental
Usa el mapa S-E-D-B. La sigla conserva la mnemotecnia inglesa —System, Entry point, Data owner, Boundary—, mientras que en español empleamos Sistema, Punto de entrada, Responsable de los datos y Límite:
| Elemento | Pregunta | Evidencia que debes registrar |
|---|---|---|
| S — System (Sistema) | ¿Qué subsistema responde por este comportamiento? | Nombre de carpeta, módulo, escena, servicio o componente |
| E — Entry point (Punto de entrada) | ¿Dónde entra primero el control o el dato en esta ruta? | Manejador, método público, escucha de eventos, ruta o callback del ciclo de vida |
| D — Data owner (Responsable de los datos) | ¿Dónde se crea o cambia el estado que constituye la fuente de verdad? | Modelo, almacén, recurso, gestor o transición de estado |
| B — Boundary (Límite) | ¿Qué debe seguir siendo compatible? | Llamadores, eventos emitidos, datos serializados, interfaces y comprobaciones de validación |
Después añade una línea de decisión:
Comportamiento solicitado → evidencia S-E-D-B → ubicación más segura → riesgos probables → evidencia de validación
No trates el mapa como un diagrama completo de la arquitectura. Es un mapa de decisión para un cambio concreto. Su valor está en registrar evidencias e incertidumbres, no en dibujar todas las dependencias del repositorio.
2146. Ejemplo concreto
Supón que la solicitud es: «Cuando una tarea completada otorgue una recompensa, hay que impedir que la recompensa se otorgue dos veces».
Una orientación débil podría elegir la pantalla que muestra la recompensa y añadir allí una protección. Esa pantalla observa el resultado, pero no necesariamente es la responsable.
Un mapa S-E-D-B más sólido podría verse así:
| Elemento | Hallazgo | Confianza |
|---|---|---|
| Sistema | Subsistema de finalización de tareas y resolución de recompensas | Media |
| Punto de entrada | Manejador de finalización llamado después de que la tarea alcanza su estado final | Alta |
| Responsable de los datos | Componente que registra la finalización y aplica la transacción de recompensa | Media |
| Límite | Datos guardados, estado del inventario y cualquier evento consumido por la capa visual | Media |
La candidata más segura es la ruta con autoridad sobre la concesión de la recompensa, siempre que la evidencia confirme que todas las fuentes de finalización pasan por ella. La capa visual sigue siendo una superficie de riesgo: modificarla podría ocultar recompensas duplicadas sin impedir que se concedan. Otros riesgos incluyen reintentos, tareas completadas que se cargan desde un guardado y llamadores que evitan el punto de entrada supuesto.
El ejemplo demuestra el razonamiento, no una implementación específica del proyecto. Debes verificar cada hallazgo en el repositorio antes de modificar el código.
2147. Error común
El error más frecuente es confundir visibilidad con propiedad. Es habitual escoger el archivo donde se muestra, registra o recibe inicialmente un valor porque es fácil de localizar. Esto puede duplicar reglas, dejar sin protección otras rutas de entrada o producir una corrección que solo funciona para un llamador.
Otro error es construir un mapa de dependencias solo a partir de los nombres de archivo. Los nombres son pistas. Las importaciones, las referencias, los lugares donde se invocan símbolos, las mutaciones de estado, los eventos, las pruebas y la configuración de ejecución ofrecen evidencia más sólida.
2148. Práctica guiada y evaluación práctica
Usa la siguiente instantánea acotada de un repositorio desconocido. La solicitud es: «Una tarea completada no debe aplicar su recompensa más de una vez». No propongas ni escribas una implementación.
Instantánea del repositorio
src/tasks/TaskCompletionService.ts
src/rewards/RewardLedger.ts
src/ui/RewardToast.ts
src/save/SaveCodec.ts
config/event-bindings.json
tests/TaskCompletionService.test.ts
tests/RewardLedger.test.ts
La evidencia proporcionada contiene estos extractos:
config/event-bindings.json: dirigetask_finishedaTaskCompletionService.complete.src/tasks/TaskCompletionService.ts, símbolocomplete: marca la tarea como completada, llama aRewardLedger.grantForTasky después publicatask.completed.src/rewards/RewardLedger.ts, símbolosgrantForTaskyrestore:grantForTaskañade una entrada de recompensa y actualiza el saldo;restoresustituye las entradas del registro por los datos guardados.src/ui/RewardToast.ts, símboloonTaskCompleted: se suscribe atask.completedy lee el saldo actual; no modifica el estado de las tareas ni de las recompensas.src/save/SaveCodec.ts, símbolosencodeydecode: serializan y restauran tanto el estado de las tareas como las entradas del registro de recompensas.- Las referencias de símbolos muestran que, en el código de producción, solo
TaskCompletionService.completellama agrantForTask; las entradas del registro de recompensas solo se modifican dentro deRewardLedger. tests/TaskCompletionService.test.tscubre una finalización normal.tests/RewardLedger.test.tscubre una concesión y una restauración, pero ninguna prueba contempla una finalización repetida ni la repetición de una concesión.- Nota relevante del historial: un cambio anterior trasladó la modificación de las entradas de recompensa desde
TaskCompletionServicehastaRewardLedgerpara centralizar las escrituras. La nota no aborda la prevención de duplicados.
Flujo obligatorio de verificación con IA
- Proporciona a una herramienta de IA únicamente la solicitud, la lista de archivos y los extractos seleccionados. Pídele que proponga rutas de búsqueda candidatas o que resuma las responsabilidades de los archivos seleccionados.
- Registra cada afirmación útil de la IA en una tabla con cuatro campos: afirmación, fuente propuesta, resultado de la verificación y cita.
- Verifica o rechaza cada afirmación mediante los extractos de código, las referencias de símbolos, las pruebas, la configuración o la nota del historial. Cita rutas y símbolos concretos, como
src/rewards/RewardLedger.ts::grantForTask; el resumen de la IA no cuenta como evidencia. - Marca como desconocida cualquier afirmación no respaldada, en vez de completar los vacíos con suposiciones.
Entrega
Entrega un único archivo de texto llamado repository-map.md que contenga:
- un mapa S-E-D-B con rutas de evidencia y etiquetas confirmado, inferido o desconocido;
- el registro de afirmaciones de la IA;
- una ubicación aceptada para un cambio futuro y otra descartada, ambas justificadas con evidencia del repositorio;
- al menos tres riesgos, cada uno acompañado de una comprobación de validación específica; y
- la evidencia que te haría reconsiderar la ubicación aceptada.
La decisión obligatoria es: ¿Qué ubicación autorizarías para un cambio futuro y qué evidencia te haría cambiar de decisión?
2149. Validación / evidencia
Una persona revisora calificará repository-map.md sobre 20 puntos:
| Criterio | 4 puntos | 2–3 puntos | 0–1 punto |
|---|---|---|---|
| Precisión al determinar la propiedad | Distingue correctamente el sistema, el punto de entrada, el responsable de los datos y los límites | Es mayormente correcto, con una ambigüedad menor sobre la propiedad | Confunde visibilidad, invocación o propiedad |
| Razonamiento sobre dependencias | Sigue las llamadas, mutaciones de estado, consumidores, persistencia y rutas alternativas relevantes | Sigue la ruta principal, pero omite una dependencia importante | Se basa principalmente en nombres de archivo o suposiciones |
| Calidad de la evidencia | Respalda las afirmaciones con citas precisas de rutas y símbolos procedentes de varios tipos de evidencia | Incluye citas pertinentes, pero incompletas o imprecisas | Trata afirmaciones sin respaldo o respuestas de IA como evidencia |
| Gestión de la incertidumbre | Etiqueta la confianza de forma coherente e identifica la evidencia necesaria para resolver las incógnitas | Señala la incertidumbre, pero no explica por completo cómo resolverla | Presenta suposiciones como hallazgos confirmados |
| Justificación de la decisión | Defiende una ubicación aceptada y otra descartada, y vincula tres riesgos con comprobaciones específicas | Toma una decisión, pero relaciona de forma incompleta los riesgos y las comprobaciones | No ofrece una decisión defendible ni comprobaciones ligadas a los riesgos |
Para aprobar, la entrega debe obtener al menos 15/20 y un mínimo de 2 puntos en cada criterio. El cuestionario de opción múltiple sigue siendo una comprobación secundaria de conocimientos y no sustituye esta evaluación práctica.
2150. Puntos clave
- Determina la propiedad antes de elegir el archivo que vas a cambiar.
- Separa el sistema, el punto de entrada, el dueño de los datos y el límite.
- Da prioridad a la evidencia del repositorio sobre los nombres de archivo o las suposiciones generadas por IA.
- Elige la ubicación más acotada que tenga autoridad sobre el estado, no simplemente el archivo más fácil de editar.
- Registra la incertidumbre y los riesgos para que la inspección posterior pueda comprobar la decisión.
2151. Siguiente lección
Continúa con 5.6 L2 — Planificar un cambio escalonado entre varios sistemas. Lleva a esa lección la ubicación aprobada, los límites de propiedad, los riesgos, las incertidumbres pendientes y las comprobaciones de validación de tu mapa del repositorio para usarlos como restricciones del plan escalonado.
2152. Comprobación
Responde estas preguntas por tu cuenta antes de leer las respuestas.
¿Cuál es el propósito principal de un mapa S-E-D-B del repositorio?
Mostrar respuesta y explicación
Respuesta: Elegir una ubicación de bajo riesgo y respaldada por evidencia para un cambio concreto.
Por qué: El mapa es una herramienta de decisión enfocada. Registra suficiente evidencia sobre sistemas, puntos de entrada, propiedad de datos y límites para seleccionar y evaluar una ubicación segura.
¿Qué hallazgo identifica con más fuerza al dueño de los datos?
Mostrar respuesta y explicación
Respuesta: El componente que crea o modifica autoritativamente el estado.
Por qué: El código de presentación y los nombres de archivo ofrecen pistas, pero la propiedad se respalda mejor con evidencia del lugar donde se crea o cambia el estado autoritativo.
¿Por qué debe distinguir el mapa entre hallazgos confirmados, inferidos y desconocidos?
Mostrar respuesta y explicación
Respuesta: Para hacer visible la incertidumbre e identificar qué debe verificarse en la siguiente inspección.
Por qué: Las etiquetas de confianza impiden tratar las suposiciones como hechos. Hacen que el mapa sirva para planificar la siguiente inspección y evaluar el riesgo.
¿Qué ubicación suele ser la candidata más sólida para un cambio seguro?
Mostrar respuesta y explicación
Respuesta: La ubicación autoritativa más estrecha que satisface la solicitud sin cruzar un límite innecesario.
Por qué: Una candidata segura está cerca de la regla o el estado autoritativo y minimiza las interfaces y los consumidores expuestos al riesgo.