26 puntos por GN⁺ 2026-03-03 | 4 comentarios | Compartir por WhatsApp
  • git-memento es una herramienta de extensión que registra automáticamente en los commits de Git las sesiones de código generadas por IA, guardando como git notes el historial de conversación de IA correspondiente a cada commit
  • Al indicar el ID de sesión de IA al hacer commit, el resumen se guarda en refs/notes/commits y la conversación completa en refs/notes/memento-full-audit, por separado, para asegurar al mismo tiempo trazabilidad y privacidad
  • Soporta varios proveedores de IA como Codex y Claude, y al generar resúmenes puede aplicar skills personalizadas por el usuario para controlar la calidad de las notas del commit
  • Se integra con GitHub Actions para ofrecer comentarios automáticos en commits, validación de compuertas CI y traslado automático de notas al fusionar (merge-carry)
  • Compatible con Windows/Mac/Linux. Es una herramienta que aumenta la transparencia de la generación de código con IA y permite la auditabilidad del historial de contribuciones de IA en entornos colaborativos

Resumen de git-memento

  • git-memento es una extensión de Git que registra las sesiones de programación con IA a nivel de commit
    • Al hacer commit, organiza el contenido de la conversación de la sesión de IA y lo guarda como notas en Markdown
    • Deja en cada commit el origen y el contexto conversacional de la sesión de IA, para poder rastrear el proceso de generación de código
  • Soporta Codex de forma predeterminada, y también se pueden configurar otros modelos de IA como Claude
  • Se publica bajo licencia MIT y se distribuye como un solo ejecutable basado en NativeAOT

Comandos y funciones principales

  • Con git memento init se inicializa la configuración por repositorio y la información del proveedor de IA se guarda en .git/config
  • El comando git memento commit añade una nota de sesión al mismo tiempo que el commit
    • Si se usa la opción --summary-skill, el resumen y la sesión completa se guardan por separado
    • El resumen se registra en refs/notes/commits y el registro completo en refs/notes/memento-full-audit
  • git memento amend permite añadir una nueva sesión a un commit existente o modificarla
  • git memento audit verifica si faltan notas dentro de un rango de commits y valida la metadata
  • git memento doctor revisa la configuración, las referencias de notas y el estado de sincronización remota

Gestión y sincronización de notas

  • Con git memento share-notes se envían las notas a un repositorio remoto (origin, etc.)
  • git memento notes-sync fusiona de forma segura las notas remotas y crea respaldos
    • Sincroniza tanto refs/notes/commits como refs/notes/memento-full-audit
  • git memento notes-carry traslada las notas a un nuevo commit después de un rebase o squash
  • git memento notes-rewrite-setup activa la configuración para el traslado automático de notas

Integración con GitHub Actions

  • El repositorio incluye una GitHub Action reutilizable
    • mode: comment — lee las notas del commit y genera comentarios automáticamente
    • mode: gateverifica en la etapa de CI si faltan notas y bloquea el build en caso de error
    • mode: merge-carrytraslada las notas al commit de merge cuando se fusiona un PR
  • Cada modo está definido en action.yml e incluye el artefacto para publicación en Marketplace (dist/note-comment-renderer.js)
  • Los PR con la etiqueta ignore-notes omiten la verificación de compuerta y dejan un comentario de “Notes ignored”

Formato de notas y control de versiones

  • Las notas se guardan con el formato git notes add -f -m ""
  • Para soportar múltiples sesiones se usan etiquetas de versión(``) y separadores de sección
  • Los mensajes del usuario se etiquetan con el nombre de usuario de Git, y las respuestas de la IA con el nombre del proveedor
  • Las notas antiguas de una sola sesión se actualizan automáticamente cuando hace falta para mantener la compatibilidad

4 comentarios

 
wedding 2026-03-03

En proyectos privados exporto la sesión, la incluyo en el commit y, en los públicos, la commiteo solo si considero que hace falta sí o sí un archivo de resumen.
Al fin y al cabo también hay datos personales... y, aunque depende de la herramienta, por sesión fácilmente pasa de 10 MB... así que no me convence subirlo así nomás.

 
roxie 2026-03-28

¡Pero estamos viviendo en una era en la que el almacenamiento en disco es más barato que nunca!

 
GN⁺ 2026-03-03
Opiniones de Hacker News
  • Cuando escribo código con IA, empiezo con un archivo project.md
    Ahí describo el resultado que quiero y hago que la IA escriba un plan.md con base en eso
    Después modifico plan.md varias veces y, cuando el plan que quiero está listo, genero una lista de tareas detallada y la agrego al final de plan.md
    Cuando ya estoy completamente satisfecho, le indico a la IA que ejecute los pendientes y que los complete hasta el final sin seguir preguntando
    Al final, hago commit de project.md, plan.md y de todo el código
    Así, plan.md se vuelve una especie de artefacto reproducible, de modo que más adelante un modelo más avanzado pueda modificarlo o encontrar errores a partir de eso

    • Yo hago algo parecido, pero lo separo en tres documentos: design, plan y debug
      design lo escribo por funcionalidad y dejo explícitas las preguntas sin resolver
      plan lo gestiono con la estructura plan/[feature]/phase-N-[description].md, y si me topo con límites de compilación o ejecución, me detengo
      En la etapa de debug planteo hipótesis sobre causas posibles, las valido con logging/tracing y luego corrijo
      Con este método he tenido casi 100% de éxito tanto en proyectos nuevos como legacy
      La desventaja es que se acumulan demasiados archivos markdown, pero como el historial pasado sigue siendo útil para cambios futuros, aún no lo he automatizado
    • Esto suena como un enfoque basado en specs
      Vale la pena revisar GitHub spec-kit
    • La función “brainstorming” de obra/superpowers es casi el mismo flujo de trabajo. De verdad es excelente si lo pruebas
    • Antes usaba Beads de esta forma, y luego hice GuardRails
      Cuando haces que el modelo itere entre investigación de mercado y revisión de propuestas, termina haciendo diseño de prompts en un lenguaje que él mismo puede entender
      Hace poco descubrí que XML afecta el comportamiento de Claude, así que estoy replanteando la estructura de GuardRails
      Enlace al post de presentación
    • Yo también uso una estructura parecida, pero con un archivo separado de “context”
      Cuando el plan queda listo, creo un “context.md” para usarlo más adelante si necesito revertir un plan equivocado
      Todavía no me ha hecho falta en la práctica, pero conceptualmente me parece útil
      Lo que sí, todavía no lo incluyo en el repo porque no tengo claro dónde deberían ir estos archivos
      Me da curiosidad saber dónde guardan estos archivos md por tarea
  • En mi opinión, esto es como preguntar “¿hay que hacer commit de cada línea?”
    Al final, la clave es para quién es el registro
    La mayoría de las sesiones tienen mucho ruido, intentos fallidos e información innecesaria
    Lo importante es el resultado de la sesión, no el proceso en sí
    Aun así, el spec inicial o el primer prompt sí tienen valor. Conviene resumir eso y dejarlo en el mensaje del commit o en un archivo markdown

    • Para los humanos es complejo y ruidoso, pero esta información de sesión podría ser útil para la IA del futuro
      Podría tomar sesiones pasadas como contexto de aprendizaje y continuar el trabajo actual
      En especial, puede ayudar a entender las limitaciones del modelo y encontrar puntos donde el código se desvió de la intención del usuario
      Al final, creo que registrar toda la entrada humana es importante para el avance de los modelos open source
    • Más que “hacer commit de cada línea”, la analogía más adecuada sería si vas a conservar todas las notas y los intentos fallidos
    • En la investigación científica ya se toparon con este problema: la crisis de reproducibilidad
      Debe poder obtenerse el mismo resultado incluso incluyendo las condiciones iniciales y el ruido
      Si no, el mantenimiento futuro del código se vuelve un juego de adivinar intenciones
      Artículo relacionado
    • En organizaciones donde la transparencia importa, podría tener valor para auditoría, pero siendo realistas, ¿quién va a leer esos logs larguísimos?
    • No hace falta guardar todas las sesiones, pero sí tienen valor los momentos en que los requisitos se van concretando durante el proceso de ajuste fino
  • Hace una semana propuse una idea parecida (enlace)
    Pero también hubo muchas opiniones en contra: los proyectos con IA no se generan a partir de una sola entrada, sino en un proceso conversacional, así que es difícil convertirlos en artefactos como el código fuente
    Aun así, están apareciendo demasiados proyectos generados en Show HN y el ruido ya es serio
    No se pueden excluir por completo, pero en su estado actual me interesan menos
    Sigo pensando cómo debería abordar este problema la comunidad

    • Yo me guío por la forma de escribir código con Claude de Boris Tane
      Hago commit de research.md y plan.md para usarlos como un diccionario vivo de arquitectura y funcionalidades
      Pongo el nombre de la funcionalidad como prefijo en el nombre del archivo para que Claude pueda cargar rápido el diseño relacionado
      Blog de referencia
    • El problema no es la falta de contexto, sino que el estándar de esfuerzo bajó
      Proyectos que antes eran interesantes ahora se hacen con demasiada facilidad
      Hacer que la gente lea logs largos de sesión no es la solución. La capacidad de resumir y planear se vuelve aún más importante
    • Estaría bien que Codex pudiera exportar toda la sesión como markdown
      El verdadero valor del vibe coding está en ver el proceso de intento y error
    • También estoy pensando si subir dos proyectos a Show HN
      Resulta más interesante cuando no solo subes el resultado final, sino también el proceso de creación y la explicación
      Por eso me gustaría que existiera una categoría tipo [Creations] aparte de [Show HN]
      Por ejemplo: un motor de ajedrez simple iría en [Creations], mientras que un motor de ajedrez hecho con 1k iría en [Show HN]
      PerfBoard y Lerc son ejemplos de eso
  • La sesión es solo un artefacto intermedio, no hace falta incluirla en el resultado final
    Si importa por qué se hicieron los cambios en el código, lo correcto es organizarlo en el mensaje del commit o en documentación

    • Al final esto es un problema de resumen
      En el momento del commit no sabes qué preguntas se hará un lector futuro
      Por eso prefiero guardar la sesión y luego generar un resumen a partir de preguntas
      Git AI usa este enfoque
      Hoy en día los ingenieros trabajan tan rápido que a veces, pasada una semana, ya ni recuerdan por qué hicieron algo así
    • Como mínimo, hace falta una versión resumida de la sesión
      Los prompts de investigación conviene resumirlos, y los prompts de generación de código conviene guardarlos tal cual
      Así se garantiza la reproducibilidad y la posibilidad de revisión
    • Yo antes solo hacía que el LLM escribiera el mensaje del commit, pero ahora siento que versionar el archivo de plan es mejor
      El plan termina reflejando hasta el proceso de corrección de errores y se vuelve un documento útil para la siguiente iteración
    • En mi caso, el propio repo es la memoria del agente
      Cada repo intercambia mensajes con otros y así gestiona solicitudes de funcionalidades
      Guardo tanto la conversación original como la memoria comprimida semánticamente para reordenar specs y requisitos
    • Guardar sesiones también sirve para rastrear la causa de bugs o hacer análisis posteriores
  • Los logs de sesión son en su mayoría ruido
    Son una sucesión de intentos fallidos y retrocesos, así que ponerlos junto al commit es como guardar el historial del navegador
    Lo importante es un mensaje de commit que contenga la intención y las restricciones
    Si la IA escribió el código, lo central no es la conversación sino por qué se le pidió eso
    Al final, quizá el problema no sea guardar la sesión, sino el hábito de descuidar los mensajes de commit

  • Aunque use IA, yo mantengo un proceso de diseño tradicional
    Requisitos → casos de uso → diseño de clases → definición de restricciones → ejecución con IA
    Así se conserva la capacidad humana de juicio arquitectónico, mientras la IA acelera la implementación repetitiva
    Si en vez del log de sesión incluyes en el commit documentos UML o de restricciones como estos, puedes dejar mucho más clara la intención y el contexto
    Creo que los desarrolladores de 2026 deberían mantener una estructura de colaboración con clase como esta

  • Esto se parece a decidir si hacer squash de los commits o no
    Si prefieres squash, solo importa el resultado y no dejas el proceso
    Si no, registras el recorrido en sí
    Las sesiones de IA igual: son útiles para depurar el proceso de pensamiento, pero quien prefiere un historial limpio no necesariamente quiere verlas
    En la práctica, lo razonable es gestionar las sesiones aparte del repo

    • Yo también soy del team squash, pero si existiera un sistema donde se pudiera desplegar el historial interno, sí me gustaría ver también la sesión
      He oído que Mercurial o Fossil tienen mejor soporte para algo así
    • Creo que esta analogía es la más acertada
      En el vibe-coding, más que el código mismo, el prompt muestra el rastro del pensamiento
      Que vaya o no en git es otro tema, pero sí tiene valor dejarlo accesible
    • Si el desarrollo lo lidera una persona, usar IA no es más que una herramienta
      En esos casos no hace falta ver el proceso en tiempo real
      Pero si el código fue escrito completamente por IA, entonces sí hace falta publicar los prompts
  • Yo también he extraído sesiones
    Hay cierto riesgo de perder información, pero la legibilidad y la accesibilidad mejoran muchísimo

  • Como mínimo, creo que hay que guardar los prompts resumidos de la sesión
    La revisión de código hecha por IA es menos estricta que la humana, y la intención solo está en los prompts
    Si no, se vuelven a repetir los mismos errores
    El valor del code review está en aprender y mejorar, pero como la IA no aprende, el registro de prompts tiene que cumplir ese papel
    Además, también hace falta para evaluar habilidad con prompts o formar a juniors

    • Pero no estoy de acuerdo con que eso sea “obvio”
      Nosotros no incluimos en el commit las pulsaciones del teclado, los clics en menús ni los intentos de depuración
      Si guardas todas las conversaciones, hay demasiado ruido
      En cambio, sí es realista dejar al menos documentos con la intención y los supuestos
    • Por cierto, también me da curiosidad qué tamaño de sesión consideran normal
  • Es como preguntar: “¿deberíamos incluir el historial de búsquedas de Google en el commit?” — obviamente creo que no

    • Es una analogía perfecta. Registrar cada fragmento del pensamiento tiene una relación señal-ruido demasiado mala
      En cambio, conviene dejar solo un resumen de razones, supuestos y alternativas
    • Pero si conservas la sesión, también se guardan las consultas de búsqueda y los resultados que hizo la IA, y eso podría servir como contexto del proyecto
    • Nadie quiere saber cuántas veces buscaste cómo “centrar un div”
      Del mismo modo, tampoco hace falta el log de cuando el modelo se perdió con un problema trivial
    • Además, no todas las búsquedas tienen relación con el commit. Incluso podrían incluir información sensible
 
roxie 2026-03-28

> “¿Habría que incluir el historial de búsquedas de Google en el commit?” Es básicamente la misma pregunta; yo diría que obviamente no.

Me gusta este comentario