Docket es una herramienta de línea de comandos diseñada para mejorar los procesos de revisión de código, especialmente para aquel generado por agentes de inteligencia artificial. Su objetivo es abordar el desafío de la rápida producción de código por IA, que a menudo carece de transparencia sobre su proceso de desarrollo. Las herramientas de revisión de código tradicionales presentan una "diferencia final" sin mostrar el proceso iterativo del agente: qué intentó, qué verificaciones realizó o qué líneas no recibieron escrutinio humano. Esta brecha dificulta que los revisores humanos comprendan la lógica detrás del código y centren su atención de manera efectiva.
Docket captura este crucial "viaje de implementación" integrándose con el sistema de generación de código. Registra los intentos iniciales del agente (incluidos los fallidos), sus pasos de verificación (por ejemplo, pruebas superadas) y luego coteja esta información con la diferencia de código final. El resultado es un "registro de evidencia por fragmento" que resalta las áreas sin evidencia, guiando a los revisores humanos a concentrar sus esfuerzos donde la supervisión es más necesaria. La herramienta almacena estos registros de evidencia directamente dentro del repositorio Git en una "referencia huérfana" (orphan ref), asegurando que los datos sean autocontenidos, inmutables y no dependan de servicios externos. Este diseño significa que los registros permanecen legibles incluso si el desarrollo de la herramienta cesa. Docket funciona como un único binario estático, sin requerir la cadena de herramientas Go ni un entorno de ejecución para su funcionamiento.
Los usuarios pueden instalar Docket mediante un script curl o descargando archivos específicos para cada plataforma. Se integra en el flujo de trabajo de Git instalando los hooks prepare-commit-msg y post-commit, que añaden automáticamente un tráiler Docket a cada commit, haciendo referencia al registro de evidencia. Los comandos clave incluyen docket show HEAD para ver el registro de un commit, docket explain <archivo:línea> para comprender el origen y la intención de líneas de código específicas, docket review para generar comentarios de pull request y docket verify para comprobaciones de integridad. Los registros capturan la task (solicitud humana), la intent (razonamiento declarado por el agente) y el attempt (cambios de código reemplazados y fallos asociados). Esta información detallada ayuda a reconstruir el proceso de toma de decisiones. Existe una GitHub Action disponible para automatizar el proceso de revisión, reordenando las diferencias para priorizar los fragmentos sin evidencia. Docket almacena extractos redactados, no transcripciones completas, para gestionar el tamaño y la seguridad. También rastrea la atribución del código, manteniendo un vector de procedencia para cada línea a través de ediciones posteriores.
