Code Maps

Todo lo que hay en el mapa, y qué significa

Code Maps tiene una sola idea: poner cada número que ya recolectas sobre una base de código en un lugar al que puedas apuntar. Esto es lo que eso te da.

La ciudad

Un repositorio, dibujado una vez. Cada carpeta con código se vuelve un edificio; el primer tramo significativo de su ruta se vuelve un barrio con su placa, su color y su nombre. Nada se ubica al azar: el mismo repositorio siempre produce la misma ciudad, así que te aprendes su perfil.

Pasa el puntero por cada elemento y míralo en la ciudad. Es la misma ciudad que dibuja la app.

Edificio
Una carpeta con código dentro. Clic para ver su ficha; doble clic para entrar y explorarla sola.
Barrio
Una capa o carpeta de primer nivel, con su placa, su color y su nombre. Clic en el nombre para explorarlo.
Altura
Complejidad: ramas de lógica, sumadas por carpeta. Las torres altas se escalonan como rascacielos.
Fachada
El color de la lente activa. Más cálido, más grave.
Azotea
El color del barrio, para orientarte desde arriba.
Insignias
Un punto con un número para vulnerabilidades y configuración insegura; un rombo para posibles secretos.
Mástil rojo
Una zona caliente: mucho cambio y mucha complejidad en la misma carpeta.
Arcos
Al pasar el mouse o seleccionar: naranja lo que este módulo importa, azul quién lo importa. Los edificios conectados se tiñen igual.

Tres temas

Día se lee como una plancha topográfica. Noche deja el suelo oscuro y enciende solo las ventanas. Neón activa el bloom, que no sirve para trabajar y se ve muy bien en una demo.

El repositorio openclaw/openclaw en el tema Neón: una ciudad oscura con ventanas encendidas y torres rojas.

openclaw/openclaw en tema Neón: 578 edificios, nota C. Los rombos son posibles secretos; el repositorio quedó truncado en 15 mil archivos.

Cuatro lentes

El color de la fachada responde una pregunta a la vez. Cambiar de lente deja cada edificio exactamente donde estaba, y ese es justamente el punto: estás comparando cuatro respuestas sobre el mismo lugar.

Pruébalo aquí

Pasa el puntero por cada elemento y míralo en la ciudad. Es la misma ciudad que dibuja la app.

  • RiesgoVulnerabilidades, configuración insegura, secretos y zonas calientes, con pesos.Decidir qué arreglar primero.
  • DeudaHoras estimadas de limpieza: TODOs, archivos enormes, lógica muy ramificada, zonas calientes.Planificar refactors y ver qué barrio se está pudriendo.
  • PulsoCuánto hace que alguien tocó el módulo, según el historial de git.Distinguir código vivo de código dormido. Dormido y con riesgo es lo más peligroso.
  • TráficoCuántos commits pasan por el módulo.Encontrar los corredores por donde pasa todo el equipo.

La capa de calor

Cada edificio irradia su valor sobre el suelo, y la placa de cada barrio se tiñe con la media y el pico de los edificios que tiene encima. El riesgo deja de ser un número en una lista y se vuelve una mancha que ves extenderse.

2D: el mapa térmico

Pulsa 2D y la cámara se va directo arriba. El perfil desaparece y el calor se lee como un mapa térmico limpio del repositorio: la vista más rápida para una lámina o una captura.

Vista 2D del mismo repositorio desde arriba, leída como mapa térmico: barrios teñidos desde amarillo pálido hasta rojo intenso.

El mismo repositorio visto desde arriba. Sin el perfil de los edificios, el calor se lee como un mapa térmico de dónde se acumula el riesgo.

Hallazgos reales, no estimaciones

Todo lo que está sobre los edificios viene de una herramienta que corrió de verdad, o de una heurística que está escrita. No hay un modelo adivinando severidades.

  • Vulnerabilidades y configuración insegura

    Trivy sobre manifiestos y lockfiles (npm, yarn, pnpm, pip, poetry, go.mod, Cargo, pom, gradle) y sobre Dockerfile, compose, Kubernetes y Terraform. En Java sin lockfile también escanea los jar de build/libs.

  • Secretos filtrados

    gitleaks con sus reglas por defecto, excluyendo build, logs, node_modules, target, dist, .gradle y .git. Solo se guardan el nombre de la regla y el archivo:línea. El valor encontrado nunca sale del escáner.

  • Deuda técnica, sin herramientas

    TODO FIXME HACK XXX como baja; archivos de más de 500 líneas como media; más de 0,25 ramas por línea en archivos de más de 50 líneas como media. Horas: 1 por media, 4 por alta.

  • Zonas calientes

    Commits × complejidad en el 5 % superior del repositorio, contado como alta. Es la medición que más vale la pena atender: ahí es donde se cruzan el cambio y la dificultad.

La ficha del edificio

Cada hallazgo con su archivo y su línea, las líneas, archivos, complejidad y commits del módulo, sus importaciones y quiénes lo importan como chips navegables, y botones para abrir la carpeta en GitHub, en Finder o en tu editor en la línea exacta.

packages/react-reconciler/src: 47.019 líneas, complejidad 7.473, zona caliente, con cada hallazgo enlazado a su archivo y su línea.

Trae los hallazgos que ya tienes

Code Maps no compite con tus escáneres: les da un mapa. Además de lo que corre por su cuenta, lee los informes de las herramientas que ya usas y pone cada hallazgo sobre su edificio.

Incluido

Corre solo, en local, sin configurar nada.

  • Trivygratis
  • gitleaksgratis
  • gitgratis

Por informe SARIF

Disponible hoy. Deja el .sarif de tu herramienta en .codemap/ y vuelve a analizar. Con security-severity cuenta como seguridad; sin él, como deuda.

  • Snykgratis y de pago
  • Semgrepgratis y de pago
  • CodeQLgratis y de pago
  • ESLintgratis
  • Checkovgratis
  • Banditgratis
  • gosecgratis
  • SARIF 2.1.0gratis
snyk code test --sarif-file-output=.codemap/snyk.sarif
semgrep scan --sarif -o .codemap/semgrep.sarif

En la hoja de ruta

Conexión directa, sin archivos de por medio. Todavía no existe.

  • API de SonarQube y SonarCloud
  • Resultados de pentest de Strix
  • GitHub App: en cada push y comentarios en PR
  • Slack, Jira y Linear: alertas y tickets

Probado de punta a punta con un informe SARIF 2.1.0 de prueba. Los valores de secretos nunca se leen: de un escáner de secretos solo pasan la regla y archivo:línea.

Reglas: las que ya existen, las de tu equipo y las tuyas

Disponible hoy

Reglas que ya conoces

Las de Trivy y gitleaks tal como vienen, más las heurísticas de deuda. Y las de cualquier otra herramienta, a través de su informe SARIF.

Próximamente

Importa las de tu equipo*

Tu .gitleaks.toml, tus paquetes de reglas de Semgrep y tus supresiones, aplicados a todos tus repositorios desde un solo sitio.

Próximamente

Escribe las tuyas*

Reglas propias sobre lo que el mapa ya mide: «ningún edificio de más de 40 de complejidad sin tests», «nada en billing/ importa de web/».

* Requiere un plan de pago de Code Maps Cloud, que todavía no existe. Precios →

Constelación: la misma ciudad como grafo

Un nodo por módulo, una arista por import resuelto dentro del repositorio; los paquetes externos no cuentan. Los nodos se agrupan en regiones por barrio. El hover muestra la dirección de cada relación con flechas; el tamaño del nodo puede seguir complejidad, líneas o riesgo; las aristas pueden ser todas, solo entre barrios, o ninguna. Clic en el nombre de un barrio para acercar, doble clic para entrar.

Vista Constelación: módulos como puntos agrupados en regiones por barrio, conectados por aristas de importación con dirección.

langchain-ai/langchain como constelación: al pasar el mouse sobre runnables se ven en naranja los 13 módulos que importa y en azul los 99 que lo usan.

El acta de inspección

Un panel que califica el repositorio completo, o el pedazo que estés mirando en ese momento. Conteos por severidad, horas estimadas de deuda, la lista de barrios con sus hallazgos y la lista de zonas calientes. Pulsa una fila de severidad para aislar esos edificios; exporta todos los hallazgos a CSV.

Cómo se calcula el puntaje

Empieza en 100. Resta hasta 50 por 4 × críticas + 1,5 × altas + 0,3 × medias, hasta 20 por 0,2 × secretos, y hasta 30 por 3 × horas de deuda cada 1.000 líneas. Los topes existen para que una categoría catastrófica no tape todo lo demás. Es una heurística para comparar repositorios de un vistazo, no un estándar de cumplimiento.

  • A90+
  • B75+
  • C60+
  • D40+
  • E<40

Cómo medimos →

El acta de inspección de react/react: 47 sobre 100, nota D, por 215 vulnerabilidades críticas sin parchear.

La IA como guía

El chat corre contra la API de Anthropic con cinco herramientas: get_findings, get_module, read_file, search_code y highlight_buildings. La IA lee el código real y los hallazgos reales antes de afirmar nada.

  • Auto elige Sonnet para preguntas rápidas y Opus cuando la pregunta pide juicio: arquitectura, prioridades, seguridad, refactors. También puedes fijar el modelo.
  • Cada respuesta muestra qué modelo contestó, cuánto tardó y cuántos pasos de herramientas usó.
  • La ficha del edificio trae dos atajos: Explícame este edificio y ¿Cómo lo arreglo?
  • Los valores de los secretos nunca se incluyen en lo que recibe el modelo.

La IA explicando las capas de react/react, nombrando los paquetes y los conteos de líneas que leyó en el camino.

Moverse

La URL es el estado
?repo=…&view=…&lens=…&scope=…&sel=…&cam=…&theme=…: recarga o comparte el enlace y recuperas exactamente la misma vista.
Clones y análisis cacheados
Los clones viven en .repos/, una carpeta por repositorio, con el análisis y los hallazgos al lado. Un repo que ya viste carga al instante; Volver a analizar lo rehace desde cero.
Búsqueda
Pulsa / para buscar edificios por nombre o ruta. Los resultados traen su color de riesgo; Enter abre el primero.
Ronda de inspección
Un botón lleva la cámara por los cinco edificios más urgentes, en orden, para que una demo no necesite manejarse.
Despejar los paneles
H esconde todos los paneles para una captura limpia. Esc va saliendo: cierra la ficha, sale de la capa, limpia la selección.
Tres temas
Día se lee como un mapa topográfico, Noche enciende solo las ventanas y Neón activa el bloom para una sala de demo.

Míralo en un repositorio que conozcas

react/react, langchain-ai/langchain o tu propia ruta. No se sube nada y no hace falta cuenta.

Abrir el mapa Precios