code-review-graph es una herramienta local de grafos de estructura de código. Usa Tree-sitter para analizar el código fuente, guarda llamadas, importaciones, herencia, pruebas y otras relaciones en una base de datos SQLite dentro del repositorio, y expone contexto estructurado a Codex, Claude Code y otras herramientas mediante CLI y MCP.
En lugar de “dejar que la IA apruebe automáticamente PR”, resuelve el problema de reducir el costo de que la IA investigue en todo el repositorio cada revisión y ayude a los revisores a localizar llamadas entre archivos, áreas de impacto potencial y lagunas en las pruebas. La conclusión final todavía depende de Git diff, los resultados de las pruebas y el juicio humano.
Dirección del proyecto: tirth8205/code-review-graph
¿Cuándo vale la pena usarlo?
Más adecuado para:
- Almacén de cientos a miles de archivos;
- proyecto monorepo o multilingüe;
- Revisar con frecuencia las modificaciones entre archivos y módulos;
- Necesidad de realizar un seguimiento de las personas que llaman, las dependencias, las pruebas y los flujos de ejecución;
- Quiere que los datos del gráfico central permanezcan locales.
No necesariamente adecuado para:
- Pequeños proyectos con sólo unos pocos archivos;
- Las modificaciones se concentran en un único expediente independiente;
- Principalmente revisar documentos, configuraciones o fotografías;
- El equipo no está preparado para mantener la frescura del índice;
- Tarea única, más rápida para leer diferencias directamente.
Para una diferencia pequeña, el resultado de la consulta del gráfico puede ser mayor que la diferencia original. Primero se debe utilizar el contexto mínimo y la detección de cambios antes de decidir si se expande el radio de impacto.
Principio de funcionamiento y límites de datos
El proceso principal es:
|
|
La composición central y las consultas se pueden realizar localmente, sin necesidad de cargar código en la nube. Las incorporaciones opcionales pueden utilizar modelos locales o proveedores de nube; Los límites de envío de códigos y las políticas del equipo deben confirmarse antes de habilitar las integraciones en la nube.
En el repositorio Git, solo los archivos rastreados devueltos por git ls-files se indexan de forma predeterminada. Para excluir archivos generados o código de terceros que todavía son rastreados por Git, cree en la raíz del repositorio:
|
|
Las bases de datos de gráficos suelen estar ubicadas en:
|
|
Es un artefacto reconstruible y no debe enviarse incondicionalmente a Git.
Prepare el entorno Python antes de la instalación
Requisitos del proyecto Python 3.10 o superior:
|
|
Se recomienda utilizar pipx para aislar el CLI global:
|
|
También puedes instalarlo directamente:
|
|
Verificación posterior a la instalación:
|
|
Si el shell no puede encontrar el comando, primero verifique si el directorio bin de Python Scripts o pipx ha ingresado PATH. No instale repetidamente varias copias.
Configurar MCP para Codex o Claude Code
El comando de instalación unificada detectará la plataforma instalada:
|
|
Configurar solo Codex:
|
|
Configurar solo Claude Code:
|
|
El instalador escribirá la configuración MCP correspondiente y agregará enlaces, habilidades o descripciones de reglas en las plataformas compatibles. Haga una copia de seguridad de la configuración existente antes de la ejecución y verifique la diferencia después de la ejecución para evitar sobrescribir accidentalmente las personalizaciones del equipo.
Reinicie la herramienta AI cuando haya terminado. Claude Code puede verificar la conectividad a través de /mcp; otros clientes deben confirmar que el servidor code-review-graph está conectado y enumera las herramientas.
Construye el gráfico de código por primera vez.
Entre en el directorio raíz del repositorio que va a analizar:
|
|
status debe al menos mostrar recuentos de archivos, nodos y bordes distintos de cero, y registrar ramas de compilación y confirmaciones. Si el nodo es cero, las razones comunes incluyen:
- El directorio actual no es el repositorio de destino;
- Git no rastrea el archivo;
- El analizador no reconoce la extensión;
.code-review-graphignoreexcluye todo el contenido;- La construcción falló a mitad de camino.
Antes del uso formal, seleccione una función conocida para probar la consulta de estructura y confirmar que la relación de llamada puede volver al archivo real.
Actualizaciones diarias y detección de cambios
Ejecute actualizaciones incrementales después de cambios de código:
|
|
Cuando se necesitan resultados concisos e información que guarde contexto:
|
|
update Actualizar archivos de cambios; detect-changes analiza los cambios y el impacto actuales Git. Los dos tienen significados diferentes y no debes asumir que el gráfico está actualizado solo porque detect-changes funciona.
Para el desarrollo a largo plazo, puede utilizar:
|
|
Sin embargo, en repositorios grandes se deben observar la CPU, los límites de escucha de archivos y el ruido de directorio generado; Los entornos CI generalmente son más adecuados para la ejecución explícita de build o update.
Deje que Codex o Claude Code revise PR
Después de instalar MCP y completar la composición, puedes proponer:
|
|
Los proyectos también proporcionan plantillas de flujo de trabajo, como:
review_changes: Revisar los cambios actuales;architecture_map: comprender la arquitectura;debug_issue: solucionar problemas en las relaciones;onboard_developer: genera contexto de introducción;pre_merge_check: Comprobación previa a la fusión.
Ya sea que se utilicen plantillas o indicaciones gratuitas, se debe mantener el orden:
- Confirme que la base de datos del gráfico esté actualizada;
- Lea el Git diff real;
- Consultar nodos modificados;
- Ampliar las personas que llaman, las dependencias y las pruebas;
- Ejecute pruebas reales;
- Conclusión de la revisión manual.
Cómo interpretar el ahorro de tokens
Actualmente, CLI puede mostrar paneles para guardar contexto en detect-changes --brief y update --brief. El número predeterminado es una estimación definida por el proyecto y no es igual al Token exacto de la factura.
Para utilizar la validación cruzada del tokenizador, debe instalar dependencias adicionales y agregar --verify:
|
|
Registro durante la evaluación:
- Diferencia sin formato y tamaño del repositorio;
- La longitud del contexto devuelta por el gráfico;
- El archivo que la IA realmente continúa leyendo;
- Falsos negativos y falsos positivos;
- La revisión lleva tiempo;
- Pruebe si se encuentran problemas que no se muestran en la imagen.
No apliques el múltiplo más alto del punto de referencia oficial directamente al presupuesto del equipo. Los pequeños repositorios, las modificaciones de archivos individuales, la cobertura del análisis del lenguaje y los métodos de cuestionamiento cambian los resultados.
Qué aporta el ejemplo de GitHub Actions
El siguiente es un ejemplo de automantenimiento compilado por este sitio, no la acción GitHub publicada oficialmente por el proyecto. Solo instala CLI, restaura el caché del mapa local, realiza actualizaciones incrementales y genera informes. No aprueba automáticamente PR ni escribe los resultados en el área de comentarios.
Primero crea:
|
|
Ejemplo:
|
|
Al habilitarlo por primera vez, se recomienda eliminar el paso de caché, confirmar que la compilación limpia se realizó correctamente y luego agregar el caché. El almacenamiento en caché no es una fuente de corrección; se debe permitir una reconstrucción completa después de cambios en el analizador, el esquema o la estructura del proyecto.
Clave de caché y actualización del gráfico
El ejemplo envía la línea base PR a la clave de caché para reducir la probabilidad de reutilizar directamente imágenes antiguas entre diferentes líneas base. También puede agregar un resumen del archivo de bloqueo de dependencia:
|
|
La caché debe eliminarse y reiniciarse en los siguientes casos build:
- Actualizar code-review-graph o Tree-sitter analizador;
- Modificar las reglas de exclusión;
- Cambio de nombre de directorio masivo;
- Disminución anormal de las estadísticas gráficas;
- Los resultados locales y CI no se pueden reproducir;
- Cambios de compatibilidad de esquema o base de datos.
El acierto de caché de aceptación no solo debe verificar la visualización de Acciones cache-hit, sino también verificar las ramas, confirmaciones, cantidad de archivos, cantidad de nodos y cantidad de bordes de status.
Límites de permiso para Fork PR
El análisis principal solo necesita leer el código fuente extraído. No requiere permisos de escritura en el repositorio ni debe usar secretos de despliegue. Mantenga estos permisos:
|
|
No utilice pull_request_target en código Fork no revisado para ejecutar comandos después de revisar el encabezado PR; esta combinación puede exponer los permisos del repositorio subyacente o Secret.
Si los comentarios se van a publicar automáticamente en el futuro, se deben dividir en pasos controlados independientes y se deben revisar el contenido, los permisos y las fuentes del informe. La primera versión, más segura, solo carga artefactos para que los encargados de mantenimiento los revisen.
Monorepo y grandes cambios
.code-review-graphignore se puede utilizar en un monorepo para excluir directorios de compilación y proveedores que explícitamente no están sujetos a revisión. No excluya las bibliotecas compartidas por motivos de velocidad; de lo contrario, el análisis perderá las relaciones entre paquetes.
Las diferencias muy grandes primero deberían obtener una lista de archivos:
|
|
Si la detección automática de MCP no responde durante mucho tiempo, puede pasar una lista clara de archivos modificados a la herramienta de análisis de impacto para evitar la ejecución repetida de la detección de Git con un alcance excesivo en el backend.
El proyecto también proporciona variables de entorno de límites para limitar frentes muy grandes, como CRG_MAX_CHANGED_FUNCS, CRG_MAX_TRANSITIVE_FRONTIER y CRG_TOOL_TIMEOUT. Registre el comportamiento predeterminado antes de realizar ajustes. Los límites demasiado bajos reducirán los retiros.
Solucionar fallos de conexión y bloqueos de MCP en Windows
CLI es normal pero MCP informa Invalid JSON: EOF while parsing o Connection closed:
- Actualice code-review-graph;
- Ejecute
installnuevamente para actualizar la configuración; - Confirme que la versión FastMCP cumple con los requisitos actuales del proyecto;
- Deje que MCP ejecute directamente
.exeen el entorno virtual; - Configure
PYTHONUTF8=1; - Reinicie el cliente y vea el registro MCP.
Configuración esquemática:
|
|
CLI status y detect-changes son muy rápidos, pero cuando la llamada de MCP se agota, el resultado de git diff --name-only primero se pasa explícitamente a la herramienta para distinguir entre la detección de cambios lentos de Git y la consulta de gráfico lento.
Cómo recuperarse cuando los datos del gráfico son incorrectos
Graba la escena primero:
|
|
Luego realice una actualización incremental:
|
|
Si el resultado sigue siendo incorrecto, haga una copia de seguridad o elimine el directorio reconstruible .code-review-graph y ejecute una compilación completa. Antes de borrarlo, confirme que esté dentro del repositorio previsto para no eliminar otros datos por error.
Esto también debería volverse a ejecutar después de la actualización:
|
|
install se usa para actualizar la configuración de la plataforma y build se usa para actualizar los datos del gráfico. No confundas los dos pasos.
Desinstalar y revertir
Vista previa primero:
|
|
Desinstalar después de la confirmación:
|
|
Solo elimina la integración y conserva los datos del gráfico:
|
|
Luego verifique si quedan elementos MCP en Codex, Claude Code y otras configuraciones, y confirme que se puede restaurar la copia de seguridad de la configuración original.
Lista de verificación de aceptación final
|
|
Resumen
code-review-graph funciona como índice estructural para la revisión de código asistida por IA, no como aprobador automático. Un flujo fiable consiste en construir el grafo en el repositorio correcto, mantenerlo actualizado de forma incremental, obtener por MCP solo el contexto necesario y confirmar las conclusiones con Git diff, pruebas y revisión humana.
Al acceder a GitHub Actions, primero debe asegurarse de que la compilación limpia sea reproducible y luego agregar gradualmente caché y artefactos. Los permisos siguen siendo de solo lectura, Fork PR no usa Secret y poder recurrir a una diferencia normal y una reconstrucción completa cuando falla el gráfico es más importante que buscar los mayores ahorros de Token en un único punto de referencia.