Saltar al contenido
Cursos/Codex para programadores/Higiene de repositorios: elimina redundancia sin romper comportamiento
Revisión pendiente desde 29 jul 20262 fuentes primarias

Higiene de repositorios: elimina redundancia sin romper comportamiento

Convierte una refactorización vaga en un trabajo medible: línea base, alcance, eliminaciones justificadas, pruebas y diff final.

Qué vas a conseguir ahora

Una decisión o prueba aplicada a «Higiene de repositorios: elimina redundancia sin romper comportamiento».

  1. 1Entiende el criterio
  2. 2Haz una práctica pequeña
  3. 3Guarda una evidencia
Evidencia

Una nota breve con qué hiciste, qué salió bien, qué falló y qué revisarías después.

El problema no es que el agente escriba mucho

El problema aparece cuando cada iteración añade otra capa sin retirar la anterior: wrappers que solo delegan, alias legados sin consumidores, validaciones duplicadas y exports que agrandan el contrato público. Un repositorio puede seguir con tests verdes y, aun así, costar más entenderlo y cambiarlo.

Una publicación de X detectada por el radar de Aulafy sirvió como señal de esta preocupación. La solución técnica de la lección procede de documentación oficial y de un laboratorio reproducible; una experiencia social no demuestra por sí sola que una herramienta cause deuda.

Cinco puertas para una refactorización segura

  • Línea base: ejecuta las pruebas y registra el estado de Git antes de editar.
  • Contrato: identifica imports, exports, efectos y salidas que deben conservarse.
  • Presupuesto: limita archivos y prohíbe nuevas dependencias o abstracciones innecesarias.
  • Prueba: exige comportamiento verde y una auditoría estructural separada.
  • Diff: explica cada eliminación y comprueba que no se tocaron pruebas para ocultar una regresión.
Terminal
git status --short
git diff --stat
npm test

# Después del cambio
npm test
npm run auditar
git diff --numstat -- src/tasks.mjs
git diff -- src/tasks.mjs

Tests verdes no significan repositorio limpio

Las pruebas de comportamiento responden «¿sigue funcionando?». Una auditoría estructural puede responder «¿retiramos los wrappers acordados?» o «¿la API pública conserva el tamaño previsto?». Necesitas ambas señales: una métrica de líneas aislada puede premiar código comprimido y una suite aislada puede ignorar código muerto.

Qué pedir al agente

La guía oficial de Codex recomienda declarar objetivo, contexto, restricciones y qué significa terminado; también pide ejecutar controles y revisar el diff. La documentación de Claude Code coincide en dar al agente una forma de verificar su trabajo y mantener las instrucciones de proyecto concisas.

Terminal
Objetivo: elimina wrappers redundantes sin alterar la API cubierta por tests.
Contexto: lee AGENTS.md, src/tasks.mjs y test/tasks.test.mjs.
Límites: modifica solo src/tasks.mjs; no cambies pruebas ni package.json; no añadas dependencias ni nuevas abstracciones.
Terminado cuando: npm test y npm run auditar pasan; el diff tiene más eliminaciones que adiciones; explica cada eliminación y cualquier riesgo restante.

Cómo revisar el resultado

  • Rechaza cambios en pruebas que solo adapten la expectativa a una regresión.
  • Busca nuevos nombres para la misma abstracción antigua.
  • Comprueba consumidores fuera del archivo antes de retirar un export real.
  • No uses «menos líneas» como criterio único: legibilidad y contrato importan.
  • Trabaja primero en un repositorio de práctica o una rama reversible.

Laboratorio MIT

El repositorio aulafy/taller contiene un estado inicial funcional pero redundante, una suite sin red ni dependencias, una auditoría que falla al principio y una solución de referencia. Así puedes repetir el proceso con Codex, Claude Code o manualmente y comparar el mismo resultado.

Entrega de la lección

Qué vas a construir

Una refactorización pequeña que reduce una API de seis a tres funciones sin cambiar ninguna salida probada.

Por qué es importante

Aprenderás a exigir eliminaciones justificadas y evidencia, en lugar de aceptar código nuevo porque el agente afirma que está limpio.

Repositorio o archivos iniciales

Clona aulafy/taller y abre cursos/codex-programadores/laboratorios/higiene-repositorio-agentes. Los datos son sintéticos y no hay dependencias.

Pasos

  1. 1. Ejecuta npm test y confirma que las tres pruebas pasan.
  2. 2. Ejecuta npm run auditar y conserva el fallo inicial esperado.
  3. 3. Entrega a Codex el encargo acotado de la lección.
  4. 4. Ejecuta de nuevo pruebas y auditoría sin modificar la suite.
  5. 5. Lee git diff --numstat y el diff completo; justifica cada eliminación.

Encargo listo para Codex

Terminal
Objetivo: reduce la redundancia de src/tasks.mjs sin cambiar comportamiento. Lee AGENTS.md y las pruebas. Modifica solo src/tasks.mjs; no cambies tests ni package.json; no añadas dependencias o abstracciones. Termina solo cuando npm test y npm run auditar pasen. Revisa el diff, explica cada eliminación y señala riesgos.

Resultado esperado

Tres funciones públicas, las mismas salidas, tres pruebas verdes y una auditoría estructural superada.

Comando de verificación

Terminal
npm test && npm run auditar && git diff --numstat -- src/tasks.mjs

Comprobación manual

Comprueba que solo cambió src/tasks.mjs, que no se debilitaron pruebas y que el resultado es más legible, no solo más corto.

Error frecuente. Pedir «limpia todo el repo» produce cambios difíciles de atribuir. Limita archivo, contrato y verificaciones antes de ejecutar.

Mini ejercicio

Añade primero una prueba para owner vacío y repite la refactorización; decide si el valor por defecto pertenece a createTask o normalizeText.

Ver solución

Conserva normalizeText, createTask y formatTask. Llama directamente a normalizeText desde createTask y retira los tres wrappers sin consumidores.

Evidencia que debes guardar

Guarda salidas antes y después, el fallo inicial de auditoría, el diff numérico, el diff completo y una explicación de las tres eliminaciones.

Si has guardado la evidencia de esta lección, continúa con «Controla permisos, red y secretos». Si no, repite la comprobación antes de avanzar.

Mapa completo de AulafyConsulta cómo encaja esta lección sin salir de tu ruta.

Mapa completo de Aulafy

Cómo se relacionan todos los cursos

No es una lista que debas completar. Empieza por la base, elige un resultado y profundiza solo cuando tu proyecto necesite más control.

  1. 1Comprender
  2. 2Aplicar o construir
  3. 3Operar con confianza
01

Empieza aquí

Crea una base común: qué puede hacer la IA, cómo pedir resultados y cómo comprobarlos antes de especializarte.

Desde esta base puedes aplicar la IA a una tarea o aprender a construir con código.

02

Elige una aplicación

Convierte la base en un resultado visible: una web, una mejora de negocio, contenido o una experiencia interactiva.

Si necesitas mantener código, datos o infraestructura, continúa por la rama técnica.

03

Construye con código

Prepara el entorno, trabaja con agentes de programación y aprende a ejecutar modelos con control sobre tus proyectos.

Esta rama prepara los conocimientos necesarios para diseñar y operar sistemas de IA fiables.

04

Lleva sistemas a producción

Combina recuperación, agentes, evaluación, seguridad, despliegue y adaptación de modelos cuando el problema lo exija.

No es obligatorio completarlo todo: elige solo la pieza que tu sistema necesita y vuelve al mapa cuando crezca.

Ver catálogo completo