Dibuja mi repo

Salud

Salud, la carpeta 1 del dock, te dice qué conviene arreglar en tu repo y por dónde empezar. Cada tarea abre su hoja con lo que encontró SeeRepo y un prompt listo para pegárselo a tu agente de IA.

Salud de SeeRepo: a la izquierda sus secciones; a la derecha el aro de lo que está bien y las tareas por gravedad, la primera con «Por dónde empezar».

Sus secciones

El dock cambia de módulo y el menú de la izquierda cambia de sección. Cada fila dice cuántas cosas tiene abiertas, o lleva un visto verde si quedó limpia. Si alguna es grave lo dice con su palabra y en rojo: 1 grave. Fallan, también en rojo, es que tus pruebas están rotas. En gris va lo que una sección tiene que decir sin tener nada abierto: 2 sin leer si algo no se pudo leer, y en Pruebas No corren o A mano si no corren solas.

  • Tareas: todo lo abierto, en una sola lista.
  • Pruebas: si tus pruebas corren solas en cada cambio y si pasan, día por día, y qué parte de cada módulo tocan. Arriba dice cómo terminó el último día con pruebas y cuál fue: Pasan · última corrida hoy. Si solo corren cuando alguien las lanza, dice Solo a mano: no cuentan como pruebas que te avisan solas. Si no corren solas, Copiar prompt para que corran solas te da el mensaje para tu agente.
  • Limpieza: archivos y paquetes que nadie usa, y lo que tus archivos ofrecen sin que nadie lo pida.
  • Riesgos: partes sin pruebas, zonas que cambian mucho, paquetes abandonados y cambios deshechos.
  • Seguridad: claves en el código, paquetes con fallos conocidos y lo que quedó abierto sin querer.
  • Errores: lo que le falla a la gente en tu app publicada, con Sentry. Solo sale si tu código usa Sentry. Si no lo has conectado, es donde se conecta; si está conectado, dice cuándo lo leyó, y si SeeRepo no pudo leerlo, te lo dice en vez de darlo por bueno.

Esc sube de una sección a Tareas, y de ahí al proyecto. La dirección de la página lleva la sección, así que atrás vuelve a la anterior, recargar te deja donde estabas y puedes mandar el enlace. En el teléfono el menú se despliega al tocar la sección en la que estás. Junto a su aro, cada sección dice el último push que SeeRepo leyó (en Errores, cuándo leyó Sentry): es hasta donde llega lo que ves.

Las tareas

Si desde tu última visita se arregló algo, lo dice arriba una frase, una sola vez: «Desde tu última visita se arreglaron 2», con el nombre de lo primero. Solo cuenta lo que SeeRepo comprobó que quedó arreglado.

Arriba, el aro: de lo que SeeRepo revisa en tu código, cuánto está bien. Su frase parte la cuenta: cuántas cosas están bien, cuántas tienen algo por arreglar y cuántas no se pudieron leer. Una revisión puede abrir más de una tarea, así que esa cifra no es la de tus tareas. Sus trozos llenos son lo que está bien y solo se ponen verdes cuando están todos; el color de lo más grave va en su título. Su frase dice cuándo se leyó, y lo que no se pudo leer sale debajo, con su nombre; si no queda nada abierto y solo falta eso, lo dice: «Solo falta leer esto para cerrar el aro». Debajo, las tareas por gravedad. La primera fila lleva Por dónde empezar: es la que conviene arreglar antes que ninguna. Dentro de lo más grave va primero lo que le pasa a tu gente, luego lo expuesto, lo roto, las puertas abiertas y el riesgo en lo que usas. Si todo es leve, ninguna la lleva. Ninguna fila tiene botón: el prompt se copia desde la hoja de la tarea, o con las casillas. Al final de cada fila va lo que gana la nota si la arreglas, como +15 pts. Si las tareas de una sección ya tocan juntas su tope, esas filas no llevan cifra, y en su sección el título del primer grupo lo dice.

Cada grupo es una gravedad, y cada tarea lleva el icono de su tipo: Grave, algo se rompe o está expuesto; Moderada, nada se rompe todavía, pero puede; Leve, puede esperar. Copiar las 7, arriba de un grupo, copia un solo prompt con todas sus tareas, para que tu agente las arregle de una vez. Con las casillas eliges solo las que quieras, en cualquier sección: X elige la fila en la que estás y C copia. La marca Nueva es lo que abrió desde tu última visita en ese navegador. En Tareas, las partes sin pruebas van en una sola fila, que dice cuántas tareas son y te lleva a Riesgos, donde sale cada una.

La hoja de una tarea

Toca una tarea y se abre su hoja sobre la página, que queda detrás y borrosa (en el teléfono, a pantalla completa). Arriba a la izquierda vas a la anterior o a la siguiente sin cerrarla, también con ← →, y Copiar enlace te da su dirección para mandársela a quien la vaya a arreglar. Se cierra con Esc, tocando fuera, con el asa o con la X. Tiene tres columnas:

  • Qué pasa: lo que pasa, una sola vez, con su prueba debajo: cada paquete con su salto de versión, cada problema de producción dicho en una frase de todos los días, con a quién le pasó y su enlace a Sentry, cada archivo con su cifra y su módulo.
  • Por qué importa y cuándo: lo que te cuesta dejarlo así, lo que gana la nota al arreglarla, y su historia: el push que la trajo, desde cuándo pasa en producción, o si sigue así en tu última subida.
  • Arréglalo con tu agente: el prompt, para leerlo antes de copiarlo, con Copiar prompt (en el teléfono, fijo abajo, y al copiarlo te dice ahí mismo qué hacer con él). Cuando el arreglo cambia código, termina con cómo comprobarlo: el comando de pruebas de tu proyecto, desde la carpeta de sus archivos. Cuando tu agente lo arregle y empujes, la tarea se cierra sola. Las que un cambio no cierra (una zona que cambia mucho, un cambio deshecho, agentes dando vueltas o pruebas que fallan al azar) se van solas con los días, cuando deja de pasar: su hoja lo dice, y se titula Revísalo con tu agente.

La dirección de la página lleva la tarea abierta (?task=), así que puedes mandarle el enlace a quien la vaya a arreglar, y el correo de una tarea grave abre su hoja.

Qué tocan tus pruebas

En Pruebas, cada módulo con la parte de sus archivos que usa alguna prueba, y una frase que lo resume. Primero van, bajo su título, los que cambian mucho: los que se tocan seguido y quedaron con poca o ninguna prueba. Es la parte de archivos que alguna prueba usa, no cuánto revisan. Toca un módulo y se abre su hoja: a cuántos de sus archivos llegan las pruebas, los que faltan (primero los que más cambiaron) y el prompt para escribirlas. Si ese módulo tiene su tarea abierta, Ver su tarea te lleva a ella.

La nota

La imagen para compartir y tus agentes te dan la nota de tu repo: de 0 a 100, con su banda en palabras, que la decide lo más grave abierto. En Salud la ves por lo que gana cada tarea (+15 pts):

  • Necesita atención, de 0 a 54: algo se rompe, como unas pruebas que fallan.
  • Regular, de 55 a 79: nada se rompe, pero partes que cambian mucho no tienen pruebas.
  • Buena, de 80 a 100: lo abierto es limpieza, o no hay nada abierto.

Compártela

En Compartir, arriba a la derecha, La imagen de la salud dibuja tu nota en una imagen cuadrada: el anillo, la banda y lo que quita cada dimensión, sin nombrar ninguna tarea ni ningún archivo. La puedes copiar, compartir o descargar. Cuando no queda nada por arreglar, Tareas te la ofrece ahí mismo, con Compartir la imagen.

En el proyecto, la carpeta de Salud enseña el mismo aro con que abre Tareas, cuántas cosas hay por arreglar y cómo cambió. Cuenta lo abierto como esta lista: los errores de una misma página, como uno. Tus agentes leen lo mismo, y si se puede publicar, con la API, el MCP (health) y la CLI (seerepo health).

Los tipos de tarea

Cada tarea cae en una de las dimensiones de la nota.

Pruebas

  • Las pruebas automáticas fallan: el commit que las rompió y los archivos que tocó. Ver en Trayectoria cuándo se rompieron abre Trayectoria, donde una publicación dice el día: «Se rompieron las pruebas automáticas».
  • El proyecto no tiene pruebas: nada protege sus partes. Pesa más mientras están cambiando.
  • Pruebas en las que no se puede confiar: commits que fallaron y luego pasaron con el mismo código, solo con volver a correr las pruebas.

Seguridad

  • Secretos en el código: claves de un servicio escritas en un archivo, que cualquiera que lo lea puede usar.
  • Archivos de ajustes a la vista en el repo: un .env subido con sus valores.
  • Avisos de otros servicios sin verificar (webhooks): los reciben sin comprobar quién los manda, así que cualquiera puede mandar uno falso.
  • Direcciones que no piden sesión, aunque las demás sí: otras rutas del proyecto piden sesión, pero estas no.
  • Paquetes con fallos de seguridad: versiones que usas con un fallo publicado, que cualquiera puede leer.
  • Tablas que cualquiera puede leer y cambiar: tablas de Supabase sin reglas de acceso, que se abren con la llave pública.

Lo que le falla a la gente en tu app (con Sentry)

  • Un error en una página: lo que se le rompió a alguien en producción, con a quién le pasó y cuándo; los errores de una misma página van juntos. Su hoja cuenta en una frase lo que vivió esa persona, sin palabras técnicas, y el error tal como lo guarda Sentry queda a un clic.
  • Consultas lentas: consultas a tu base que tardan demasiado cuando alguien abre una página.
  • La base de datos no aguantó: tu app no pudo hablarle.

Riesgos

  • 4 archivos sin pruebas en Checkout: un módulo donde ninguna prueba alcanza 3 archivos o más, al menos la mitad de él. Pesa más mientras están cambiando, y lo corte como lo corte el mapa, lo que ninguna prueba alcanza cuenta como una sola causa.
  • Ajustes sin explicar: variables que el código usa y el .env.example no trae.
  • Archivos grandes que no paran de cambiar: 500 líneas o más, con cambios en 3 días o más este mes. Donde se juntan tamaño y cambio es donde más se rompe.
  • Hubo que deshacer 2 cambios: los de los últimos 7 días. Algo entró antes de estar listo.
  • Archivos que los agentes reescriben una y otra vez esta semana: la señal de un agente dando vueltas sin resolver.
  • Cada instalación puede salir distinta: sin versiones fijas (lockfile), cada instalación puede traer otras.
  • Paquetes abandonados: sus autores los marcaron como abandonados.
  • Sentry no ve el código y A Sentry le falta su llave al publicar: tus errores llegan sin decir dónde pasan.

Limpieza

  • Archivos que nada usa: «Ninguna otra parte del producto los usa».
  • Paquetes instalados que nada usa: están en la lista para instalar, pero ningún código ni ningún comando los usa.
  • Archivos gigantes: de más de 1.000 líneas. «Un agente lo lee entero para cambiar una sola línea».
  • Archivos donde nadie avisa si algo no cuadra: any, ignores o reglas desactivadas, donde el compilador deja de avisar.
  • Código copiado: el mismo código escrito dos veces, en dos archivos. «Un arreglo en una copia no llega a la otra».
  • Archivos en círculo: archivos que se usan unos a otros. «Para cambiar uno hay que entender todos».
  • Archivos que tienen cosas de más: funciones, componentes o valores que un archivo ofrece a los demás (export) y que ningún otro archivo usa. En JavaScript y TypeScript.
  • Dos librerías para lo mismo, como las fechas, los iconos o los formularios: pesan el doble y cada agente elige una distinta.
  • Archivos que no deberían estar aquí: archivos generados o pesados que están subidos.
  • Rutas que nombran los documentos: un archivo que tu README, tu AGENTS.md o tu CLAUDE.md nombran y que el repo no tiene. Una línea que ya dice que no está no cuenta, y el prompt pide arreglar el documento, no el código.
  • Notas pendientes en el código (TODO): comentarios que dejan algo para después. Cuenta un TODO o un FIXME solo si abre el comentario o va pegado a «:» o «(», así que un «TODO el…» que significa «todo» no cuenta.

Arregla una con tu agente

  1. Toca la tarea: se abre su hoja.
  2. Si quieres ver dónde vive, toca Ver dónde está.
  3. Toca Copiar prompt.
  4. Pégalo en Claude Code, Codex, Cursor o en el chat de tu constructor de apps.

Cada prompt dice el problema y tu repo, enumera los archivos (hasta 200, luego «…y 12 más.») y pide el arreglo. Por ejemplo, para los archivos que nada usa:

En mi proyecto tu-nombre/tu-repo, ningún archivo del producto importa estos archivos:
- …

Revisa cada uno (busca también usos dinámicos o por convención) y borra los que de verdad no se usan, con sus pruebas. Dime qué borraste y qué dejaste, y por qué.

Al copiarlo: «Pégalo en Claude Code, Codex o Cursor: ya sabrá qué archivos leer».

En un mapa público, quien lo visita ve Salud sin tus fallos de seguridad, sin lo que le falla a la gente en tu app y sin tus notas pendientes, y abre cada hoja sin el prompt. Arriba, el título habla solo de lo que se ve («De lo que se ve aquí, nada se rompe todavía, pero puede») y una línea dice Seguridad solo la ve su dueño. Lo que lee no le habla de tú: «Las pruebas automáticas fallan», no «Tus pruebas…».

Lo que marcaste

Si una tarea no aplica a tu proyecto, su hoja te da Copiar prompt para marcarla: el mensaje para que tu agente la marque como falsa o la aparte. No sale en las de seguridad ni en las que vienen de Sentry, que el conector no deja marcar. Lo que tú o tu agente marcaron como falso, apartaron o aceptaron sale al final de Tareas, con su porqué. No cuenta en la nota ni en los pendientes, y Deshacer lo devuelve. Si un archivo de una tarea se marcó como falso, sale ahí solo ese archivo y la tarea sigue con los demás. Lo que hizo cada agente, con su fecha y por dónde, queda en Ajustes, pestaña API. En un mapa público, quien visita ve lo marcado sin el porqué y sin el botón: esconderlo te dejaría quitar de tu página lo que no te conviene.

En un repo gratis

Ves el aro, cuántas cosas hay en cada sección y el título de la primera. Las demás salen borrosas, sin nombre: cuáles son, cómo arreglarlas y su prompt vienen con un plan.