El artículo de Veselin Dimitrov presenta "Contextual Commits", una nueva especificación abierta para mejorar la calidad y utilidad del historial de commits en Git. El problema que aborda es la dificultad de capturar el "por qué" detrás de los cambios en el código, algo crucial para el trabajo en equipo, especialmente con agentes de codificación basados en IA.
Tradicionalmente, la información contextual se almacenaba en archivos separados, lo que generaba problemas como la pérdida de contexto con el tiempo, conflictos de sincronización y la necesidad de documentar en momentos inoportunos. Dimitrov intentó soluciones como reglas, extracción de artefactos de sesiones y habilidades, pero todas resultaron ineficientes. La clave fue darse cuenta de que la información ya estaba presente, pero subutilizada: el cuerpo de los commits.
Contextual Commits aprovecha el cuerpo del commit para incluir información adicional, estructurada en líneas de acción que explican la intención, las decisiones tomadas, las alternativas rechazadas, las restricciones encontradas y los aprendizajes durante el proceso de desarrollo. Un ejemplo muestra cómo una línea intent(auth): users need social login, starting with Google complementa el asunto del commit (feat(auth): implement Google OAuth provider). Esta estructura se inspira en el estándar Conventional Commits, pero con diferentes tipos de acciones.
La implementación es sencilla: un skill que automatiza la generación del cuerpo del commit. Esto elimina la necesidad de herramientas adicionales, infraestructura o sincronización externa, y se integra perfectamente con el flujo de trabajo existente de Git. La especificación es abierta y busca la colaboración de la comunidad para mejorarla, con la esperanza de que las herramientas de desarrollo la adopten de forma nativa en el futuro. El autor destaca que esta solución es inherentemente escalable, aprovechando la robustez y la naturaleza distribuida de Git. En esencia, Contextual Commits busca transformar la forma en que documentamos y comprendemos el desarrollo de software, haciendo que el historial de commits sea una fuente de conocimiento más rica y accesible.
