tres comandos nativos · nada que instalar · solo corren si tú los llamas
Deja de buscar herramientas: los tres comandos que revisan tu código ya vienen instalados
Media internet anda buscando el proyecto, la skill o la herramienta de terceros que revise su código y le encuentre huecos de seguridad. Claude Code ya trae tres comandos nativos que hacen exactamente eso. Aquí va qué hace cada uno, en qué orden se corren antes de un push, cuándo vale la pena subir a la revisión profunda y qué NO cubren.
En corto: /verify comprueba que tu cambio de verdad corre, /code-review busca los bugs y /security-review busca por dónde te pueden entrar — los tres ya están instalados y ninguno se ejecuta solo.
Los tres llegan como comandos nativos de Claude Code, sin marketplace, sin plugin y sin API key: si tienes la versión al día, ya los tienes. /verify no se conforma con que pasen los tests o el type check — construye y corre tu app en la superficie real donde vive el código (CLI, servidor, TUI o navegador), infiriendo cómo arrancarla desde tu README, tu package.json o tu Makefile; pide la versión 2.1.145 o más. /code-review revisa por default los commits de tu rama que van adelante del upstream más lo que tengas sin commitear, acepta un archivo, un PR, una rama o un rango como objetivo, y desde la 2.1.218 corre como subagente en segundo plano con su propio contexto, así que no te llena la conversación. /security-review hace una pasada de seguridad bajo demanda sobre los cambios de tu rama y caza inyección SQL, XSS, fallas de autenticación y autorización, manejo inseguro de datos y vulnerabilidades de dependencias; es el mismo análisis del repo público anthropics/claude-code-security-review, que además corre como GitHub Action sobre cada pull request. Y hay un detalle que casi nadie leyó: desde la 2.1.215, /verify y /code-review solo se ejecutan cuando tú los invocas — antes Claude podía lanzarlos por su cuenta. Esta página los pone en orden y te deja la rutina lista para copiar.
guía comunidad · julio 2026/verify · /code-review · /security-reviewvienen de fábrica en Claude Codesin marketplace ni API keysolo se ejecutan cuando tú los invocasrutina de 4 pasos antes de hacer push
01 · Ya lo traes puesto
Los tres comandos de revisión que ya tienes instalados
La escena se repite todas las semanas: alguien abre un marketplace de plugins, busca «code review», guarda tres repos de GitHub, lee una lista de skills de la comunidad y termina copiando un prompt de mil palabras a un archivo nuevo — todo para que algo le revise el código antes de subirlo. Y mientras tanto, en la misma terminal donde está haciendo la búsqueda, ya hay tres comandos que hacen exactamente eso. No hay que instalarlos, no salen de ningún marketplace y no piden una API key aparte: vienen dentro de Claude Code.
Los tres son nativos. /verify y /code-review llegan como bundled skills —las skills que Claude Code trae de fábrica—, y /security-review es un comando nativo del propio Claude Code. Eso significa que no dependen de que alguien mantenga un repo de terceros, no hay que registrar nada y no hay un paso de configuración previo: si tienes Claude Code abierto, escribes la diagonal, el nombre del comando y ya está corriendo. La única condición real es tener una versión reciente — /verify pide v2.1.145 o más — y eso se resuelve actualizando, no instalando.
sin instalaciónsin marketplacesin API keybundled skills + comando nativo
Vale la pena decirlo directo porque es la parte que más gente se pierde: no son tres versiones de lo mismo. Cada uno mira una cosa distinta y responde una pregunta distinta. Uno comprueba que tu cambio de verdad funciona corriéndolo, otro busca defectos leyendo el diff de tu rama, y el tercero hace una pasada de seguridad sobre esos mismos cambios. Corren separados, se pueden encadenar y no se pisan entre ellos.
Los tres, de un vistazo
01/verify
El que sí corre tu app
Qué hace
Construye y arranca tu proyecto para confirmar que el cambio hace lo que debe, en la superficie real donde vive el código. No se conforma con que pasen los tests ni con que el type check esté en verde.
Cuándo lo usas
Cuando acabas de terminar un cambio y quieres verlo funcionando de verdad. Es el antídoto contra el «ya quedó» que en realidad nunca se ejecutó.
02/code-review
El que lee tu diff completo
Qué hace
Revisa por default los commits de tu rama que van por delante del upstream más todo lo que tengas sin commitear, y te devuelve los hallazgos. Puedes subirle o bajarle el esfuerzo, apuntarlo a otro objetivo y hasta pedirle que aplique los arreglos.
Cuándo lo usas
Antes de abrir el pull request, cuando ya no ves tu propio código con ojos frescos y quieres una segunda pasada sobre todo lo que tocaste.
03/security-review
El que busca agujeros
Qué hace
Pasada de seguridad bajo demanda sobre los cambios de tu rama actual: inyección SQL, XSS, fallas de autenticación y autorización, manejo inseguro de datos y vulnerabilidades de dependencias. Lee el código de tu checkout, no un sitio desplegado.
Cuándo lo usas
Antes de que salga a producción cualquier cosa que toque sesiones, formularios, datos de usuarios, permisos o dependencias nuevas.
El dato que casi nadie sabe
Desde la versión 2.1.215, /verify y /code-review solo corren cuando tú los invocas. Antes Claude podía lanzarlos por su cuenta a media tarea, sin que se lo pidieras.
Importa por dos razones muy concretas. La primera es control: la revisión pasó a ser un paso que tú decides cuándo dar, así que ya no te aparece a media sesión interrumpiendo el trabajo ni reordenando lo que estabas haciendo. La segunda es consumo: una revisión completa no es gratis en tokens, y antes podías estar pagando varias por sesión sin haberlas pedido. Si en algún momento sentiste que Claude «se ponía a revisar solo», no lo imaginaste — y si actualizaste hace poco y notaste que dejó de hacerlo, tampoco. El efecto secundario es el que hay que tener presente: ahora nadie va a revisar por ti si tú no escribes el comando.
Lo que sigue es un comando por sección —qué revisa de verdad, sus trampas y cómo sacarle más—, después la rutina de los tres juntos antes de hacer push, el modo ultra para cuando la revisión local no alcanza, los comandos vecinos que todo el mundo confunde con estos, y lo que ninguno de los tres puede hacer por ti.
02 · /verify
/verify: correr la app de verdad, no confiar en el semáforo verde
Este es el comando que más gente entiende al revés. Al leer «verify» todo el mundo piensa «va a correr mis tests otra vez», y no: /verify construye tu aplicación, la arranca y comprueba que el cambio que acabas de hacer hace lo que debe hacer. La documentación lo dice sin rodeos: no se conforma con que pasen los tests ni con que el type check esté verde. Esas dos señales son necesarias, pero no prueban nada sobre tu cambio.
Piénsalo así: los tests te dicen que no rompiste lo que alguien ya se tomó la molestia de escribir como prueba. El type check te dice que los tipos encajan. Ninguno de los dos entra a la pantalla, toca el botón y mira qué pasó. Ese hueco entre «compila» y «funciona» es donde vive la mayoría de los bugs que llegan a producción, y es exactamente el hueco que /verify tapa.
Qué te está diciendo cada señal verde
La señal
Qué sí te confirma
Qué sigue sin confirmarte
Los tests pasan
Que no rompiste algo que alguien ya cubrió con una prueba escrita.
Que tu caso nuevo funcione. Si nadie escribió el test de lo que acabas de cambiar, ese verde no habla de tu cambio: habla del código viejo.
El type check está verde
Que los tipos encajan y no hay nombres mal escritos ni firmas rotas.
Que la lógica sea la correcta. Un botón que llama a la función equivocada tipa perfecto y compila feliz.
El build compila
Que el proyecto se arma completo, sin errores de construcción.
Que la pantalla se vea, que el endpoint conteste o que el dato llegue entero al otro lado.
/verify
Que la app levantó, que el cambio se ejecutó en la superficie donde de verdad vive y que lo que ocurrió ahí es lo que tenía que ocurrir.
El criterio humano. Comprueba lo que le describiste, no lo que se te olvidó pedirle: si tu descripción del resultado esperado está incompleta, el veredicto también.
Verificar el cambio que acabas de hacer
/verify
Solo arrancar la app y dejarla corriendo
/run
La parte que se le escapa a todo el mundo: la superficie real
El detalle que hace valioso a /verify no es que corra algo, es dónde lo corre. La comprobación pasa en la superficie real donde vive tu código, y esa superficie cambia según el proyecto: no es lo mismo verificar un comando de terminal que una pantalla en el navegador. Claude infiere cómo arrancar según el tipo de proyecto que tienes enfrente.
CLI
Cómo arranca
Ejecuta tu binario o tu script con los argumentos del caso que le describiste.
Dónde comprueba
En la salida de la terminal y en cómo termina el comando: si imprime lo que debe imprimir y sale limpio, o si escupe un error a medio camino.
Servidor o API
Cómo arranca
Levanta el servidor y espera a que el puerto quede realmente listo antes de tocar nada.
Dónde comprueba
En el endpoint: manda una petición con el dato de prueba y revisa la respuesta completa y los logs. Un 200 no basta si el cuerpo viene vacío o con el campo equivocado.
TUI
Cómo arranca
Abre tu interfaz de terminal en una sesión controlada donde puede mandar teclas.
Dónde comprueba
En el flujo que tocaste: navega hasta la vista, presiona las teclas del caso y confirma que la pantalla dibuja lo que corresponde en cada paso.
Navegador
Cómo arranca
Arranca el servidor de desarrollo y abre la página con un navegador que puede manejar.
Dónde comprueba
En la ruta concreta: llega a la pantalla, hace clic donde haría clic un usuario, mira el resultado y revisa la consola por errores que a simple vista no se ven.
¿Y de dónde saca cómo arrancar tu proyecto en particular? De lo que ya tienes escrito: tu README, tu package.json y tu Makefile. Ahí están los comandos de arranque, los scripts y los pasos de build. Corolario práctico y gratis: mientras mejor documentado esté el arranque de tu proyecto, mejor te verifica Claude. Si tu README dice «npm run dev y listo» pero en realidad hacen falta tres pasos más, ese es el arreglo de cinco minutos que le sube el nivel a todo lo demás.
El trío completo: /run, /verify y /run-skill-generator
/verify no viene solo. Son tres comandos que se reparten el trabajo de «hacer que esto corra», y saber cuál te toca en cada momento te ahorra la mitad de las vueltas.
/run
Qué hace
Arranca tu aplicación y te la deja corriendo. Nada más: ni comprueba ni opina.
Cuándo lo usas
Cuando quieres verla con tus propios ojos: probar a mano, tomar una captura, enseñarle algo a alguien, o revisar un detalle visual que ningún criterio escrito describe bien.
/verify
Qué hace
Arranca la app y además comprueba que el cambio hace lo que debe en la superficie real.
Cuándo lo usas
Justo al terminar un cambio y antes de dar nada por bueno. Es el que cierra el ciclo entre «ya quedó» y «ya lo vi funcionando».
/run-skill-generator
Qué hace
Graba la receta de arranque de tu proyecto como una skill dentro de tu repo.
Cuándo lo usas
Una sola vez por proyecto, en los que arrancar cuesta trabajo. Después, /run y /verify ya saben qué hacer sin que se lo expliques.
/run-skill-generator: explícalo una vez, no cada sesión
Hay proyectos donde arrancar no es un comando: es una base de datos que hay que levantar, un archivo .env con variables que nadie documentó, seeds que hay que correr en orden y un build de varios pasos. En esos, cada sesión nueva empieza igual: tú explicando el ritual otra vez.
/run-skill-generator existe justo para eso. Recorre tu proyecto, arma la receta de arranque y la guarda como una skill en .claude/skills/run-<nombre>/ dentro de tu propio repo. A partir de ahí queda escrita: /run y /verify la leen y arrancan bien a la primera, en cualquier sesión y para cualquiera del equipo que clone el repositorio. Es la diferencia entre tener el conocimiento en tu cabeza y tenerlo versionado.
.claude/skills/run-<nombre>/
Pedir la verificación de un cambio concreto
/verify funciona mejor cuando le dices dónde mirar. Copia esto, llena los corchetes y pégalo justo después del comando.
Verifica este cambio corriendo la app de verdad, no solo los tests.
Qué cambié: [EL CAMBIO EN UNA FRASE]
Dónde se comprueba: [PANTALLA, RUTA, ENDPOINT O COMANDO EXACTO]
Cómo se llega hasta ahí: [PASOS: login, navegación, flag, estado previo]
Dato de prueba: [QUÉ ESCRIBO O QUÉ MANDO]
Qué debo ver si funciona: [RESULTADO ESPERADO, CONCRETO Y OBSERVABLE]
Cómo se vería si falló: [EL SÍNTOMA DEL BUG]
Arranca la app como corresponde a este proyecto, llega hasta esa superficie,
ejecuta el caso con ese dato y dime qué observaste tal cual: lo que apareció
en pantalla o en la respuesta, y si coincide o no con lo esperado.
Si no logras llegar hasta ahí, dime en qué paso te trabaste en lugar de dar
el cambio por bueno. No cuentes como verificación que los tests pasen.
Al cerrar, resume en tres líneas: qué corriste, qué observaste y el veredicto.
Requisito de versión
/verify pide Claude Code v2.1.145 o más nueva. Si escribes la diagonal y el comando no aparece en la lista, no lo estás escribiendo mal: traes una versión vieja. Actualiza, vuelve a abrir la sesión y ahí estará.
Regla de bolsillo para el resto de la guía: /verify contesta «¿esto hace lo que debe?». Los dos comandos que siguen contestan otras dos preguntas distintas — «¿está bien hecho?» y «¿es seguro?» — y ninguno de los tres reemplaza a los otros dos.
03 · /code-review
Una revisión de tu diff, con la profundidad que tú elijas
Este es el comando que más vas a usar de los tres. Sin argumentos, revisa exactamente lo que traes en curso: todo lo que cambiaste en tu rama y que todavía no está en la rama remota de la que saliste, más lo que tengas a medias sin guardar en un commit. Dicho sin jerga: revisa tu trabajo de hoy, no el repositorio entero ni el historial de los últimos tres años. Por eso da resultados útiles en vez de una lista infinita de cosas que nadie va a arreglar.
Y no es un «vale, se ve bien». Busca bugs de lógica, casos borde que no cubriste, condiciones de carrera, manejo de errores incompleto y suposiciones que tu código hace sin decirlo. Lo que hace un colega senior cuando te abre el pull request y se toma el trabajo en serio, salvo que este está disponible a las once de la noche y no se cansa al tercer archivo.
La sintaxis completa
Todo lo que puedes escribir después del comando cabe en una línea. Los corchetes son opcionales: si no pones nada, corre con su comportamiento por default. Vale la pena memorizar el orden, porque el target siempre va al final.
Cuatro piezas y ninguna es obligatoria: cuánto esfuerzo quieres que ponga, si además de reportar quieres que arregle, si quieres los hallazgos como comentarios en el pull request, y sobre qué código correr. En el 80% de los días escribes el comando pelón y ya. El resto de esta sección es para el otro 20%.
El nivel de esfuerzo no cambia qué busca: cambia qué te reporta
Aquí está el detalle que la gente lee al revés. Subirle el nivel no lo hace «más inteligente» de golpe: lo hace más dispuesto a reportar cosas de las que no está del todo seguro. Abajo filtra fuerte y solo te enseña lo que puede defender; arriba tira la red más amplia y te va a traer hallazgos que resultan ser nada. Los dos comportamientos sirven, pero en momentos distintos del día.
Nivel
Qué te reporta
Cuándo lo eliges
low y medium
Solo los hallazgos que tiene muy claros. Menos falsos positivos, lista corta, todo lo que aparece merece que lo veas.
Para la pasada de todos los días, antes de un commit normal, cuando quieres ruido cero y salir rápido. Es el nivel al que vuelves cuando ya agarraste el hábito.
high, xhigh y max
La red más amplia: incluye lo que sospecha aunque no lo pueda probar solo. Vas a leer cosas que al revisarlas no eran nada.
Antes de tocar dinero, autenticación, migraciones o cualquier cosa que si se rompe se rompe en producción. Aquí un falso positivo cuesta dos minutos y un bug de verdad cuesta el fin de semana.
ultra
Otra liga: no es un nivel más de la misma escala, es una revisión que corre en la nube y verifica cada hallazgo por su cuenta antes de enseñártelo.
Cuando el cambio es grande y el error sale caro. Tiene su propio costo, sus propios límites y su propia sección más abajo.
La regla corta
Baja el nivel cuando lo que te molesta es el ruido; súbelo cuando lo que te da miedo es lo que se puede colar. Si tu reacción a los hallazgos es «esto ya lo sabía», estás muy abajo. Si es «la mitad de esto no era nada», estás muy arriba.
Qué le puedes poner al final
El target es la parte que casi nadie usa y la que más rendimiento te da. Sirve para dejar de revisar «todo lo que traigo» y apuntar a algo concreto: un archivo que te preocupa, el pull request de alguien más, una rama entera o el tramo exacto entre dos puntos del historial.
Qué le pasas
Se ve así
Qué termina revisando
Nada
(lo dejas vacío)
El default: los commits de tu rama que van por delante de la remota, más lo que traes sin commitear. Tu trabajo en curso.
Un archivo
src/lib/pagos.ts
Ese archivo y nada más. Perfecto cuando ya sabes dónde está la parte delicada y no quieres leer hallazgos de otros diez archivos.
Un número de pull request
1234
El pull request completo, aunque no sea tuyo. Es la forma de revisar el trabajo de alguien más sin bajarte la rama a mano.
Un nombre de rama
feature-checkout
Los cambios de esa rama. Útil para revisar algo que dejaste guardado hace dos semanas y ya no recuerdas cómo quedó.
Un rango
main...mi-rama
Todo lo que se separó entre esos dos puntos. Es el que usas antes de abrir el pull request, porque es literalmente lo que va a ver quien te revise.
Tres combinaciones que sí vas a usar
Apuntar a un solo archivo, con red amplia
/code-review high src/lib/pagos.ts
Revisar el pull request de alguien más y dejar los hallazgos ahí
/code-review --comment 1234
Pasada a fondo de tu rama completa, arreglando lo que se pueda
/code-review max --fix main...mi-rama
Las dos banderas
Por default el comando reporta y se calla: te deja la lista y tú decides. Estas dos banderas cambian qué pasa después del reporte, y conviene entender bien la diferencia porque una toca tu código y la otra toca tu pull request.
--fix
Que además de encontrarlo, lo arregle
Qué hace
En vez de entregarte la lista y esperar, aplica las correcciones de los hallazgos que puede resolver solo. Te ahorra el ir y venir de «arregla el punto 2, ahora el 4».
Cuándo sí
Cuando los hallazgos son del tipo mecánico: un error no manejado, una validación que falta, un caso borde obvio. También cuando ya leíste el reporte una vez y solo quieres que ejecute.
Cuándo no
Cuando el cambio es delicado o la lista es larga y no la has leído. Un arreglo automático sobre código que no entiendes del todo se convierte en dos problemas en vez de uno.
--comment
Que los hallazgos queden en el pull request
Qué hace
Deja el resultado como comentarios en el pull request, en lugar de dejarlo solo en tu terminal. El equipo ve los mismos hallazgos que viste tú, anclados donde corresponden.
Cuándo sí
Cuando revisas el trabajo de alguien más, o cuando quieres que quede constancia de la revisión para el equipo. Convierte una corrida privada en parte de la conversación del pull request.
Cuándo no
Para tu propia pasada rápida antes de un commit. Ahí no hay pull request al cual comentar, y llenar el hilo con hallazgos que ya arreglaste solo le quita señal a quien te revisa.
Corre aparte, sin llenarte la conversación
Desde la versión 2.1.218, /code-review corre como un subagente en segundo plano con su propio contexto. Suena a detalle técnico y es el cambio que lo vuelve usable a diario: la revisión ya no se mezcla con la conversación que traías. Antes, pedir una revisión a media tarea significaba inundar el hilo con archivos leídos, rutas y razonamiento que no tenían nada que ver con lo que estabas construyendo, y salir de ahí con el contexto hecho un desastre.
Ahora abre su propia ventana de trabajo, lee lo que necesita leer, y te devuelve nada más el resultado. Tu conversación principal sigue intacta y con espacio. En la práctica esto significa que puedes correr una revisión en medio de una sesión larga sin pagar el precio de perder el hilo — que era justo la razón por la que casi nadie lo usaba antes de terminar.
Sigue tus reglas, no las de nadie más
La revisión respeta tu CLAUDE.md. Si ahí escribiste que en este proyecto no se usan valores mágicos, que todo texto visible va en un diccionario de idiomas, o que ningún archivo de componente pasa de trescientas líneas, esos criterios entran a la revisión igual que los bugs. Es la diferencia entre una herramienta genérica y una que conoce las manías de tu equipo.
Lo que significa, del otro lado, es que si tu CLAUDE.md está vacío o dice generalidades, la revisión te va a dar generalidades. Si quieres subirle la calidad al comando sin cambiar nada más, la palanca no es el nivel de esfuerzo: es escribir en tu CLAUDE.md las tres reglas que siempre repites en las revisiones humanas.
El mito
No existe ningún REVIEW.md. Circula por ahí la idea de que puedes crear un archivo aparte con instrucciones para la revisión y que el comando lo va a leer: no lo hace. El único archivo que manda es tu CLAUDE.md. Si tienes criterios de revisión sueltos en otro documento, muévelos ahí o no van a entrar.
Qué hacer con la lista de hallazgos
Cuando la revisión te devuelve doce cosas y no sabes por dónde empezar, pégale esto en la misma sesión.
Acabas de darme los hallazgos de la revisión. Antes de tocar código, ayúdame a decidir qué arreglar y qué no.
Para cada hallazgo dime:
1. Si es un bug real que se puede disparar hoy, un riesgo teórico, o una cuestión de estilo.
2. Qué tendría que pasar exactamente para que le explote a un usuario (entradas concretas, no descripciones vagas).
3. Cuánto trabajo es arreglarlo: minutos, media hora, o algo que merece su propia tarea.
Después ordénalos en tres grupos:
- ARREGLAR AHORA: bloquean el merge.
- ANOTAR: reales pero no urgentes, van a la lista de pendientes.
- DESCARTAR: falsos positivos o cosas que en este proyecto son a propósito. Explica por qué en una línea.
Reglas: no arregles nada todavía. Si un hallazgo choca con una regla que está escrita en mi CLAUDE.md, dímelo explícitamente en vez de asumir cuál gana.
La trampa que sí te va a morder
Los arreglos que aplica --fix cuando la revisión corre en segundo plano quedan fuera de los checkpoints de la sesión. O sea que /rewind no los deshace: puedes retroceder la conversación entera y esos cambios siguen ahí, en tus archivos, como si nada. La única forma de revertirlos es con git. Si vas a correr --fix, hazlo con el árbol limpio y con todo lo demás ya commiteado, para que revertir sea un comando y no una tarde de arqueología.
Con esto ya sabes usar el comando completo: escribes /code-review pelón para el día a día, le subes el nivel cuando el cambio da miedo, le pasas un target cuando quieres apuntar a algo concreto, y guardas --fix para cuando ya leíste la lista. Falta la tercera pata, que es la que revisa lo que un revisor humano cansado deja pasar: la seguridad.
04 · /security-review
/security-review: la pasada de seguridad que corres tú
Es el tercero de los tres comandos que ya traes puestos, y el más fácil de explicar: es una pasada de seguridad bajo demanda sobre los cambios de tu rama actual. Lo escribes, Claude lee lo que tocaste y te devuelve una lista de hallazgos con el archivo, la línea y por qué eso es un riesgo. No hay que instalar un escáner, ni conectar un servicio, ni configurar reglas: el mismo modelo con el que llevas trabajando cambia de sombrero y relee tu diff buscando cómo romperlo.
La diferencia con /code-review es de intención, no de potencia. /code-review busca lo que está mal en general —bugs, casos borde, lógica floja— y la seguridad es una parte de eso. /security-review entra con una sola pregunta en la cabeza: si alguien con malas intenciones tocara esta ruta, ¿qué podría sacar? Por eso encuentra cosas que una revisión general deja pasar: código que funciona perfecto y aun así deja una puerta abierta. Corre los dos, no elijas.
Revisar la seguridad de lo que llevas en la rama
/security-review
Qué caza, en español
La documentación oficial lista cinco familias de problemas. Abajo van con la traducción a lenguaje llano: qué es cada una, cómo se ve el bug en tu código y qué pasa el día que alguien la encuentra. Si no programas todos los días, esta tabla es la que te deja entender el reporte cuando te lo entregue.
01
Inyección SQL
Qué es
Tu app arma una consulta a la base de datos pegando texto que escribió el usuario. Si ese texto viaja tal cual, deja de ser un dato y se vuelve parte de la instrucción: quien lo escribe le está dictando órdenes a tu base.
Cómo se ve en tu código
Una consulta construida con concatenación o con un template donde el valor del usuario se mete dentro del texto de la query, en vez de pasarse aparte como parámetro. Suele aparecer en buscadores, filtros y logins hechos a mano.
Qué pasa si nadie lo ve
Se puede leer la tabla de usuarios completa, saltarse el login o borrar datos. Es el hallazgo más viejo del catálogo y sigue siendo el que más caro sale.
02
Cross-site scripting (XSS)
Qué es
Lo mismo que arriba pero del lado del navegador: texto de un usuario termina renderizado como HTML o como JavaScript en la pantalla de otro usuario, así que el código de un extraño corre dentro de tu sesión.
Cómo se ve en tu código
Contenido que llega de fuera y se pinta sin escapar: comentarios, nombres de perfil, descripciones, parámetros de la URL. En React la señal clásica es meter algo de afuera en el renderizado crudo de HTML.
Qué pasa si nadie lo ve
Alcanza para robar la sesión de quien visita la página, cambiar lo que ve o mandarlo a un formulario falso. Y el atacante no toca tu servidor: usa el navegador de tu usuario.
03
Fallas de autenticación y autorización
Qué es
Dos preguntas distintas que se confunden todo el tiempo. Autenticación es «¿de verdad eres quien dices?». Autorización es «ok, eres tú, pero ¿te toca ver esto?». Un endpoint puede tener la primera resuelta y la segunda no.
Cómo se ve en tu código
Una ruta que revisa que haya sesión pero no revisa que el recurso sea tuyo, así que cambiando un id en la URL ves el pedido de otro. También: chequeos que solo viven en el frontend, tokens que no caducan y roles que se leen de algo que el cliente controla.
Qué pasa si nadie lo ve
Es la fuga silenciosa: nada truena, nadie ve un error, y cualquier usuario con curiosidad puede pasearse por los datos del resto de tu base.
04
Manejo inseguro de datos
Qué es
Qué guardas, dónde lo guardas y a quién se lo enseñas sin querer. Cubre secretos en el repositorio, información sensible que termina en los logs y datos personales que viajan o se almacenan sin la protección que les toca.
Cómo se ve en tu código
Una llave de API escrita en el código o en un archivo que sí se sube, un console.log con el token o el cuerpo completo de la petición, un mensaje de error que devuelve el detalle interno al usuario, respuestas de API que traen campos que el cliente jamás debía recibir.
Qué pasa si nadie lo ve
Un secreto que ya se subió al repositorio se considera quemado aunque borres el commit. Y los logs son el lugar donde más credenciales se filtran sin que nadie haya atacado nada.
05
Vulnerabilidades de dependencias
Qué es
El riesgo que no escribiste tú. Tu proyecto instala paquetes, esos paquetes instalan otros, y basta con que uno tenga un agujero conocido para que tu app lo herede completo.
Cómo se ve en tu código
Un paquete nuevo que entró en este cambio, una versión clavada varios años atrás, o una librería que se usa justo en la parte que toca datos de usuario. Aquí lo que revisa es lo que tu diff agrega o mueve, no todo el árbol de dependencias.
Qué pasa si nadie lo ve
Los agujeros conocidos son públicos: están documentados, con instrucciones. No hace falta que nadie te estudie, basta con que alguien pase un escáner sobre tu sitio.
Lo que sí lee y lo que no
Lee el código que tienes en tu checkout, o sea los archivos de tu computadora en la rama en la que estás parado. No abre tu sitio desplegado, no manda peticiones, no prueba tu login en producción ni toca tu base de datos. No es un pentest: es una lectura experta de tu código antes de que salga. Por eso puede correr en segundos y por eso no rompe nada — pero también por eso no ve problemas que solo existen en cómo está configurado tu servidor, tu proveedor de hosting o tus permisos en la nube.
El límite que hay que decir en voz alta
Solo ve el diff de la rama. Todo lo que ya estaba en tu proyecto antes de este cambio queda fuera de la pasada, así que si arrastras una fuga vieja desde hace ocho meses, /security-review no te la va a mencionar por más veces que lo corras. Para auditar el repositorio entero tienes dos caminos: se lo pides a Claude directo con un encargo explícito —el prompt de abajo—, o usas una herramienta de escaneo profundo de las que ya existen para eso. Este comando es tu red antes de hacer push, no tu auditoría anual.
Auditoría del repositorio completo
Cuando quieres la revisión que /security-review no hace: todo el proyecto, no solo lo que tocaste. Pégalo en Claude Code con el proyecto abierto y cambia lo que va entre corchetes.
Quiero una auditoría de seguridad de TODO este repositorio, no solo de mis cambios recientes.
Contexto del proyecto:
- Qué hace: [DESCRIBE TU APP EN UNA FRASE]
- Quién la usa: [PÚBLICO ABIERTO / USUARIOS CON CUENTA / EQUIPO INTERNO]
- Lo más sensible que maneja: [DATOS PERSONALES, PAGOS, ARCHIVOS, ETC.]
Revisa el proyecto por estas familias, en este orden:
1. Secretos y credenciales dentro del código o en archivos versionados.
2. Autenticación y autorización: rutas y endpoints donde se verifica la sesión pero no se verifica que el recurso le pertenezca a quien lo pide.
3. Entradas del usuario que llegan a la base de datos, al sistema de archivos, al shell o al HTML sin sanitizar.
4. Datos sensibles en logs, en mensajes de error o en respuestas de API que devuelven más campos de los necesarios.
5. Dependencias con versiones viejas o abandonadas en las partes que tocan datos de usuario.
Cómo quiero el resultado:
- Empieza por un resumen de máximo 10 líneas con el estado general.
- Después la lista de hallazgos ordenada de más grave a menos, y para cada uno: archivo y línea, qué podría hacer un atacante en concreto, y el arreglo puntual.
- Marca aparte lo que sea sospecha sin confirmar, para no mezclarlo con lo confirmado.
- No arregles nada todavía. Primero quiero leer la lista completa y decidir el orden.
El mismo análisis, corriendo solo en cada pull request
Correr /security-review a mano funciona mientras te acuerdes de correrlo. Anthropic publicó el mismo análisis empaquetado como GitHub Action, en un repositorio abierto, para que se ejecute solo sobre cada pull request que llegue a tu proyecto: nadie tiene que acordarse de nada y ningún cambio entra sin pasar por la revisión.
Dos detalles que lo hacen usable en un equipo real. Trae filtrado de falsos positivos, que es justo lo que mata a la mayoría de los escáneres automáticos —cuando la herramienta grita en cada pull request, el equipo aprende a ignorarla en dos semanas—. Y deja los hallazgos como comentarios inline en las líneas exactas del pull request, no en un reporte aparte que nadie abre: quien está revisando el cambio ve la observación pegada al código que la provoca.
La ficha del repositorio
Dato
Qué es
Repositorio
anthropics/claude-code-security-review
Licencia
MIT — lo puedes usar, leer y adaptar sin pedir permiso
Lenguaje
Python
Cómo corre
Como GitHub Action, disparada en cada pull request
Qué analiza
El diff del pull request, igual que el comando local
Qué trae encima
Filtrado de falsos positivos y comentarios inline en el pull request
La forma sana de pensarlo: el comando es tu revisión antes de hacer push, la Action es la que revisa a todo el equipo cuando tú no estás viendo. Si trabajas solo, con el comando te alcanza. Si hay más de una persona empujando código al mismo repositorio, la Action deja de ser opcional — porque el cambio riesgoso casi nunca es el tuyo, es el que se mergeó un viernes mientras nadie miraba.
05 · Antes de push
La rutina de cuatro minutos antes de subir nada
Hasta aquí la guía fue referencia: qué hace cada comando por separado. Esta sección es la parte que de verdad cambia tu semana, porque convierte los tres en una sola secuencia que corres siempre igual. La idea no es acordarte de revisar cuando el cambio se ve peligroso —ahí ya llegaste tarde y además el juicio de «esto se ve peligroso» es justo el que falla—. La idea es que la secuencia salga sola, en todo cambio, aunque sean tres líneas.
Son cuatro pasos y cada uno tiene su comando copiable. Los tres primeros los invocas tú desde la misma sesión donde trabajaste, así que no hay que cambiar de ventana ni de herramienta; el último cierra con la pasada de seguridad. Corre en el mismo orden siempre: cuando el orden es fijo, dejas de decidir y empiezas a ejecutar, que es de lo que se trata un hábito.
Paso 1
Mira el cambio antes de opinar de él
Ver el diff completo de lo que vas a subir
/diff
Qué compruebas
El conjunto real de cambios, no el que recuerdas. Aquí aparecen los archivos que se colaron sin querer, el archivo de prueba que dejaste, la variable de entorno pegada donde no iba y los restos de un intento anterior que creías descartado.
Si sale algo
Saca del cambio lo que no pertenece antes de seguir. Un diff limpio hace que los tres pasos siguientes sean más precisos, porque todos ellos miran exactamente ese conjunto de cambios.
Cuánto tarda
Segundos. Es leer, no ejecutar.
Paso 2
Comprueba que la cosa de verdad corre
Construir, arrancar y comprobar en la superficie real
/verify
Qué compruebas
Que el cambio hace lo que debe en la superficie donde vive el código, no solo que los tests pasen y el type check esté verde. Construye y corre tu app: infiere cómo arrancarla según el tipo de proyecto y según lo que haya en tu README, tu package.json o tu Makefile.
Si sale algo
Arregla y vuelve a correrlo antes de pasar al paso 3. Este es el punto de corte de la rutina: mientras /verify no pase, todo lo que venga después es opinión sobre código que no funciona.
Cuánto tarda
Lo que tarde tu build más el arranque. En un proyecto con base de datos o varios pasos, graba la receta una vez con /run-skill-generator y las siguientes corridas se vuelven cortas.
Paso 3
Que alguien más lea el código, aunque no haya nadie
Revisión de calidad sobre los commits de tu rama
/code-review
Qué compruebas
Bugs, casos borde y decisiones cuestionables sobre los commits que tu rama tiene por delante del upstream más lo que tengas sin commitear. Sigue las reglas de tu CLAUDE.md, así que las convenciones de tu repo entran en la revisión sin que las repitas.
Si sale algo
Léelo entero antes de tocar nada y decide tú qué entra. Si aplicas arreglos con --fix desde una revisión en segundo plano, ten presente que esos cambios quedan fuera de los checkpoints: /rewind no los deshace, se revierten con git.
Cuánto tarda
Corre como subagente en segundo plano con su propio contexto, así que no bloquea la conversación ni te la llena. Sigue trabajando mientras.
Paso 4
Cierra con la pasada de seguridad
Revisión de seguridad de los cambios de la rama
/security-review
Qué compruebas
Inyección SQL, XSS, fallas de autenticación y autorización, manejo inseguro de datos y vulnerabilidades de dependencias. Lee el código de tu checkout, no un sitio desplegado, y solo mira los cambios de la rama actual.
Si sale algo
Arréglalo antes del push, no después. Un hallazgo de seguridad que se sube y luego se parchea ya vivió en el historial, y ahí es donde lo encuentra quien no debería.
Cuánto tarda
Menos que una revisión completa, porque solo mira el diff de la rama. Si necesitas el repo entero, eso se lo pides a Claude directo o se lo dejas a un escáner profundo.
Por qué en ese orden y no en otro
Primero ves el cambio, luego compruebas que funciona, luego buscas bugs y al final buscas huecos de seguridad. Ese orden no es estético: verificar antes de revisar te evita gastar una revisión completa sobre código que ni siquiera arranca. Si /verify truena, no tiene sentido leer hallazgos de calidad todavía, porque la mitad van a desaparecer cuando arregles lo que impide que corra. Y mirar el diff antes que todo lo demás es lo que te salva de archivos que se colaron sin querer, de un secreto pegado en un archivo de configuración o de un cambio de hace tres días que creías descartado y sigue ahí.
La rutina completa en un solo mensaje
Para cuando quieres el barrido de los cuatro pasos de corrido, en una sola conversación y con un solo reporte al final.
Voy a subir estos cambios. Antes de que lo haga, hazme la pasada completa de revisión sobre el diff de mi rama y lo que tengo sin commitear. En este orden y sin saltarte pasos.
1. EL CAMBIO. Enséñame qué toca este diff: archivos, qué cambió en cada uno y en una frase por qué. Marca lo que no debería estar ahí (archivos de prueba, restos de intentos anteriores, secretos o valores de configuración pegados a mano).
2. QUE CORRA. Construye el proyecto y arráncalo como se arranca de verdad. No te conformes con que pasen los tests o el type check: comprueba en la superficie donde vive el código que el cambio hace lo que debe. Si truena, para aquí y dime qué truena.
3. BUGS. Con eso corriendo, busca bugs, casos borde y decisiones que van a doler después. Respeta las convenciones de mi CLAUDE.md. No apliques ningún arreglo todavía.
4. SEGURIDAD. Pasada específica sobre estos cambios: inyección, XSS, autenticación y autorización, manejo de datos sensibles y dependencias.
Entrégame un solo reporte al final, ordenado por lo que me impediría subir esto hoy. Cada hallazgo con archivo, línea, qué pasa si no se arregla y qué tan seguro estás. Si algo no se puede saber con lo que ves, dilo en vez de suponerlo.
Ojo con esto
Ese mensaje es el atajo, no el sustituto. Los comandos nativos los invocas tú: desde la v2.1.215, /verify y /code-review solo corren cuando los escribes, y /code-review está marcado disable-model-invocation, así que Claude no los va a lanzar por su cuenta aunque se lo pidas dentro de un prompt. Usa el mensaje cuando quieras el barrido completo en una conversación; usa los cuatro comandos cuando quieras el comportamiento nativo, con la revisión corriendo en segundo plano y sin gastarte el contexto de la sesión.
06 · Sube de nivel
/code-review ultra: cuando el cambio no admite errores
Hay cambios donde una revisión local no alcanza: la migración de la base de datos, el refactor que toca sesenta archivos, el release que se va a producción el viernes. Para eso existe ultra, que no es «la misma revisión pero con más esfuerzo». Es otra cosa: levanta una flota de agentes en una sandbox en la nube y cada hallazgo se reproduce y se verifica de forma independiente antes de llegarte. Por eso su lista es corta y casi no trae ruido: lo que no se pudo reproducir, no se reporta.
Tarda de 5 a 10 minutos y corre en segundo plano, así que lo lanzas y sigues trabajando; el avance se sigue con /tasks. Ese tiempo es justo lo que lo saca de la rutina diaria y lo pone donde pertenece: como paso pre-merge de los cambios grandes, no como algo que corres en cada commit.
La revisión profunda sobre tu rama actual
/code-review ultra
Las variantes que vas a usar
El comando acepta un objetivo igual que la revisión normal, y también existe fuera de la sesión interactiva para meterlo en tu pipeline:
Contra otra base
/code-review ultra develop
Cuando tu rama no salió de la principal. Le dices contra qué comparar y la revisión deja de incluir commits que no son tuyos.
Sobre un pull request
/code-review ultra 1234
El número del PR. Sirve para revisar a fondo el cambio de alguien más antes de aprobarlo, sin tener que traerlo a tu máquina.
Desde CI
claude ultrareview
La versión no interactiva, para engancharla a tu pipeline y que la revisión profunda ocurra sola en los cambios que tú decidas.
Si venías escribiendo /ultrareview, sigue funcionando como alias. No hace falta que cambies el músculo, pero la forma documentada hoy es /code-review ultra.
Lo que cuesta, sin adornos
Esta es la parte que casi nadie te dice de frente, así que va primero y sin suavizar: ultra no está incluido de forma ilimitada en ningún plan.
Plan
Corridas gratis
Después de eso
Pro
3, de una sola vez
Alrededor de 5 a 25 dólares en créditos de uso por corrida, según el tamaño del cambio.
Max
3, de una sola vez
Mismo esquema: se paga con créditos de uso, no con tu cuota mensual.
Team y Enterprise
Ninguna
No traen corridas gratis: desde la primera se paga con créditos de uso.
Las tres corridas gratis son de una sola vez, no tres al mes. Úsalas en cambios que de verdad lo ameriten para saber si el resultado te vale el precio, en vez de quemarlas probando el comando en un cambio de dos líneas.
Requisitos y límites
Requiere cuenta de claude.ai. No está disponible en Bedrock, en Vertex, en Foundry ni con Zero Data Retention activo, y cuando no está disponible el comando cae a una revisión local en vez de fallar, así que conviene saber en cuál de las dos estás. El tamaño también tiene tope: hasta 500 archivos o 8000 líneas de diff. Si tu cambio se pasa de ahí, pártelo en pedazos revisables, que además es lo que querrías para la revisión humana.
Cuándo sí vale pagarlo y cuándo no
Sí, lánzalo
Migraciones de datos y cambios de esquema, donde el error no se revierte con un git revert.
Refactors grandes que tocan muchos archivos y donde el riesgo está en las interacciones, no en cada archivo por separado.
Cualquier cosa que toque cobros, permisos o datos de usuarios.
El pull request de alguien que apenas conoce el repo, cuando tú vas a firmar la aprobación.
No, quédate con la revisión normal
El commit de todos los días: ahí la rutina del paso anterior te da casi lo mismo, gratis y en segundos.
Cambios de copy, de estilos o de configuración, donde no hay lógica que reproducir.
Código que todavía no pasa /verify: ultra no arregla que la cosa no corra, y habrías pagado por saberlo.
Cuando lo que necesitas es una lectura rápida del pull request de alguien más: para eso está /review y no cuesta.
La forma sana de pensarlo: la rutina de cuatro pasos es tu default y ultra es la excepción que compras a propósito. Si terminas lanzándolo en todo, o el equipo va a sentirlo en la factura, o dejaste de confiar en una revisión que ya te estaba sirviendo.
07 · Los vecinos
Los tres comandos que confundes con estos
Alrededor de /verify, /code-review y /security-review viven otros comandos que se parecen de nombre y hacen algo distinto. Confundirlos cuesta tiempo real: le pides limpieza a algo que caza bugs, o esperas hallazgos de seguridad de una pasada que solo mira estilo. Esta sección los pone en su lugar y termina con el mapa completo de dónde entra cada capa de revisión.
La regla corta para no equivocarte: /code-review busca lo que está mal, /simplify busca lo que está de más y /review mira el trabajo de otra persona. Tres verbos distintos sobre tres objetos distintos.
/simplify — limpieza, no cacería
Revisa el código que cambiaste buscando tres cosas: reuso (esto ya existe en otro lado del repo), simplificación (esto se puede escribir con la mitad) y eficiencia (esto hace trabajo de más). Después aplica los arreglos, no solo te los reporta. Es la pasada que deja el diff presentable antes de que lo lea alguien más.
Limpiar los cambios de tu rama
/simplify
Sirve mucho cuando llevas tres horas iterando con Claude y el resultado funciona pero quedó lleno de capas: funciones que hacen lo mismo con nombres distintos, condicionales que sobrevivieron a un cambio de enfoque, helpers que duplican algo que ya vivía en tu carpeta de utilidades. Ahí es donde más se nota.
El límite, dicho claro
/simplify no caza bugs. Es calidad, no corrección: puede dejarte un código impecable que sigue fallando exactamente igual que antes. Si lo que buscas son errores, ese trabajo es de /code-review. Lo ideal es correr los dos y en ese orden importa poco, pero no sustituyas uno por el otro. Requiere la versión 2.1.154 o más de Claude Code.
/review <PR> — el pull request de alguien más
Es una pasada rápida y de solo lectura sobre un pull request que ya existe en GitHub. Le das el número, Claude lo baja, lo lee y te dice qué opina. No toca tu working tree, no aplica arreglos y no depende de en qué rama estés parado.
Revisar un pull request de GitHub
/review 1234
Aquí está la confusión que veo más seguido: la gente corre /review esperando el análisis profundo que da /code-review. No es lo mismo. /review está pensado para cuando te toca revisar el trabajo de un compañero y quieres una segunda opinión rápida antes de aprobar; /code-review está pensado para tu propio diff, con niveles de esfuerzo, opción de arreglar y su propio contexto en segundo plano. Uno es un vistazo, el otro es una auditoría.
Cómo elegir en dos segundos
¿El código lo escribiste tú y todavía no sale de tu máquina? /code-review. ¿El código ya es un pull request abierto, tuyo o de alguien más, y quieres una lectura rápida? /review con el número. Y si ese pull request es importante de verdad, /code-review también acepta un número de PR como objetivo, así que puedes darle la pasada profunda sin cambiarte de rama.
El plugin security-guidance
Hay una pieza más que no es un comando: el plugin security-guidance, que añade tres capas de revisión automática mientras Claude escribe, sin que tú invoques nada. No lo repito aquí porque tiene su propia guía completa en la bóveda.
Ninguno de estos comandos es «la» revisión. Cada uno cubre un momento distinto del camino que recorre tu código, y lo que se le escapa a uno lo levanta el siguiente. Esta tabla es el mapa completo: úsala para ver qué capa tienes vacía hoy, no para instalarlas todas de golpe.
Capa
Qué la dispara
Qué atrapa
Qué se le escapa
En sesión · el plugin
Solo. Corre mientras Claude escribe código, sin que invoques nada.
Patrones inseguros en el momento en que nacen, antes de que lleguen al commit.
Todo lo que ya estaba en el repo antes de que instalaras el plugin.
Bajo demanda · /security-review y /code-review
Tú, cuando lo escribes. Desde la 2.1.215 Claude ya no los lanza por su cuenta.
Bugs, vulnerabilidades y decisiones dudosas en los cambios de tu rama.
El resto del repositorio, y todo lo que pase cuando se te olvide correrlos.
Pre-merge · /code-review ultra
Tú, antes de abrir o de mergear el pull request.
Hallazgos reproducidos y verificados uno por uno en una sandbox en la nube.
Diffs de más de 500 archivos u 8 mil líneas, y tu presupuesto si abusas.
En el PR · Code Review
Cada pull request, automáticamente. Disponible en Team y Enterprise.
Lo que se coló hasta el PR, comentado inline donde el equipo lo ve.
A quien no esté en esos planes: en Pro y en Max esta capa simplemente no existe.
En CI · tu escáner de siempre
Cada push a tu pipeline, sin intervención de nadie.
Dependencias vulnerables, reglas de tu organización y regresiones conocidas.
La intención. No sabe qué querías construir, así que no juzga si el enfoque estaba mal.
Si hoy no tienes ninguna, la que más rinde por el esfuerzo que cuesta es la segunda: son dos comandos que ya traes instalados y que corres en un minuto. Las otras cuatro pueden esperar.
08 · Lo honesto
Siete cosas que estos comandos no hacen
Todo lo de arriba es lo que sí hacen. Esta parte es la otra mitad, sin suavizar, porque son las siete cosas con las que uno se tropieza en la práctica y que ninguna publicación de lanzamiento te cuenta. Léela antes de montar un flujo de trabajo completo alrededor de estos comandos.
01
Ninguno reemplaza la revisión humana
El límite
Ni los tres juntos, ni ultra, ni corriéndolos en máximo. Encuentran cosas que a ti se te pasan, y también dejan pasar cosas que un compañero vería en diez segundos porque conoce el producto y el contexto del negocio.
Qué hacer con eso
Trátalos como el filtro que llega antes del humano, no como el que lo sustituye. Bien usados, tu revisor humano deja de gastar su tiempo en lo obvio y lo gasta en lo que de verdad requiere criterio.
02
/security-review solo ve tu rama
El límite
Analiza los cambios de la rama en la que estás parado. Si la vulnerabilidad lleva ocho meses viviendo en un archivo que tú no tocaste, no aparece en el reporte, y el reporte limpio se siente igual de tranquilizador que si hubiera revisado todo.
Qué hacer con eso
Para el repositorio completo pídeselo a Claude directamente, apuntando a las zonas sensibles, o usa una herramienta de escaneo profundo. Un /security-review en verde dice «este cambio no empeoró las cosas», no «esta app es segura».
03
ultra cuesta después de las tres gratis
El límite
Pro y Max traen 3 corridas gratis, y son de una sola vez: no se renuevan cada mes. Después de eso, cada corrida sale alrededor de 5 a 25 dólares en créditos de uso. Team y Enterprise no traen ninguna corrida gratis.
Qué hacer con eso
Gasta tus tres gratis en pull requests que de verdad importen —una migración, un cambio de autenticación, algo que toque dinero— y no en el fix de dos líneas del viernes. Para todo lo demás está /code-review normal, que no cuesta aparte.
04
Los tres consumen tu plan
El límite
Son comandos que ponen a Claude a leer, razonar y escribir, así que gastan tokens como cualquier otra conversación. /code-review en niveles altos sobre un diff grande no es barato, y correrlo tres veces seguidas porque cambiaste una coma se nota en tu límite de uso.
Qué hacer con eso
Cierra el trabajo primero y revisa después. Un solo /code-review sobre el diff terminado rinde más que cinco parciales, y para revisiones de rutina bajar a low o medium te da lo esencial por una fracción del gasto.
05
disableBundledSkills los apaga a todos
El límite
Esa configuración desactiva las skills que vienen incluidas de fábrica, y estos comandos son justamente eso. El único que sobrevive es /doctor. Si trabajas en una empresa donde la configuración baja desde arriba, es perfectamente posible que ni siquiera sepas que los tienes apagados.
Qué hacer con eso
Si escribes el comando y Claude Code no lo reconoce, revisa esa opción antes de asumir que tu versión está vieja. Y si la política la puso tu organización, esa conversación es con quien la puso, no con el comando.
06
Una skill tuya llamada code-review gana
El límite
Si en .claude/skills/ existe una skill con el nombre code-review, esa sobreescribe la nativa. El comando responde, parece que funciona y en realidad estás corriendo otra cosa: la que alguien de tu equipo escribió hace medio año y nadie volvió a tocar.
Qué hacer con eso
Antes de concluir que la revisión nativa «no sirve», revisa esa carpeta. Si tienes una skill propia que sí quieres conservar, ponle otro nombre y deja el nombre code-review libre para la nativa.
07
/code-review no sirve en tareas programadas
El límite
Está marcado como disable-model-invocation, que es exactamente lo que hace que solo corra cuando tú lo invocas. El efecto secundario: no lo puedes usar como el prompt de una tarea programada esperando que se dispare solo cada noche.
Qué hacer con eso
Si quieres revisión automática y recurrente, esa capa es otra: el Code Review sobre cada pull request en Team y Enterprise, o la GitHub Action de seguridad. La revisión programada no sale de este comando.
Ninguno de estos siete puntos es motivo para no usarlos. Son las condiciones reales de uso: tres comandos que ya tienes instalados, que atrapan bastante más de lo que se les escapa, y que rinden cuando sabes exactamente qué esperar de cada uno.
09 · Referencia rápida
Las tres revisiones, lado a lado
Los tres se llaman parecido y hacen trabajos distintos. Esta tabla es la que conviene tener a mano cuando dudas cuál correr: compara lo mismo en las tres columnas, incluido lo que casi nunca se compara de frente, que es cuánto tardan y cuánto cuestan.
/code-review · /review <pr> · /code-review ultra
Criterio
/code-review
/review <pr>
/code-review ultra
Qué revisa
Los commits de tu rama por delante del upstream más lo que tengas sin commitear. Acepta archivo, PR, rama o rango.
Un pull request de GitHub que ya existe, identificado por su número.
Lo mismo que /code-review, y también acepta otra base o un número de pull request.
Dónde corre
En tu máquina, como subagente en segundo plano con su propio contexto desde la 2.1.218.
En tu sesión, en modo de solo lectura. No toca tu working tree.
En una sandbox en la nube, con una flota de agentes. Requiere cuenta de claude.ai.
Profundidad
La que tú elijas: de low a max. Los niveles bajos reportan solo lo que tienen muy claro.
Una pasada. Sin niveles de esfuerzo y sin opción de arreglar.
Cada hallazgo se reproduce y se verifica de forma independiente antes de reportártelo.
Duración
De un minuto a varios, según el tamaño del diff y el nivel que le pongas.
Rápida. Es la opción de «dime qué opinas» antes de aprobar.
De 5 a 10 minutos, en segundo plano. Lo sigues con /tasks.
Costo
Consume tu plan como cualquier conversación. No hay cargo aparte.
Lo más barato de los tres: es la pasada más corta.
3 corridas gratis de una sola vez en Pro y Max; después, alrededor de 5 a 25 dólares en créditos.
Para qué sirve
Tu revisión de cabecera antes de push. La que corres todos los días.
Revisar el trabajo de alguien más sin salirte de la terminal.
El cambio que no te puedes permitir romper: migraciones, autenticación, cualquier cosa que toque dinero.
Los topes de ultra
ultra acepta hasta 500 archivos u 8 mil líneas de diff. Tampoco está disponible en Bedrock, Vertex, Foundry ni con Zero Data Retention; cuando no está disponible cae a una revisión local, así que igual obtienes un resultado, solo que no el de la sandbox.
Si solo vas a usar uno
Empieza por /code-review, tal cual, sin argumentos. Es el que cubre más terreno por menos esfuerzo: agarra tu diff completo sin que le expliques nada, corre en segundo plano sin llenarte la conversación, respeta tu CLAUDE.md y no cuesta aparte. Cuando ya sea costumbre correrlo antes de cada push, agrégale /security-review, que son quince segundos más. Y guarda ultra para el día en que un pull request te quite el sueño.
Guía de la comunidad
Esta guía junta en una sola página los tres comandos de revisión que ya vienen dentro de Claude Code —/verify, /code-review y /security-review—, lo que hace cada uno, el orden en el que conviene correrlos antes de un push, cuándo vale la pena pagar la corrida ultra y cuáles son sus límites reales. Nada que instalar, sin marketplace, sin API key: la parte difícil no era conseguir la herramienta, era saber que ya la tenías. Se publica como parte de la bóveda de tododeia.
El código abierto detrás de /security-review
Es el mismo análisis que corres desde la terminal, empaquetado como GitHub Action para que se dispare solo sobre cada pull request: revisa el diff, filtra falsos positivos y deja los hallazgos como comentarios inline en el PR. Está publicado bajo licencia MIT y escrito en Python, así que puedes leer exactamente qué busca antes de confiar en él. Si trabajas en equipo, esta es la forma de que la pasada de seguridad deje de depender de que alguien se acuerde de escribir el comando.
Cierre · dos minutos, con lo que tengas sin commitear
“Yo estuve meses buscando skills y proyectos de terceros para revisar código, y resulta que los tres que más uso ya venían puestos. Lo que me cambió el hábito no fue leer la documentación, fue correrlos una vez sobre trabajo real y ver qué salía. Hazlo ahora mismo, no mañana: abre Claude Code en el proyecto donde estés, con los cambios que tengas sin commitear, y corre /verify, luego /code-review y luego /security-review, en ese orden. Son dos minutos. Si los tres salen limpios, ya sabes que tu cambio está mejor de lo que creías; si sale algo, lo encontraste tú antes que quien te va a revisar el pull request. De cualquier forma ganaste.”
Lo honesto antes de cerrar
Ninguno de los tres reemplaza la revisión humana: encuentran patrones, no entienden tu producto ni saben qué se rompe para tu cliente. /security-review solo ve los cambios de tu rama, así que un hueco que lleva un año en el repo le va a pasar de largo. La corrida ultra es gratis tres veces en Pro y en Max, una sola vez, y después se paga con créditos de uso —y en Team y Enterprise no hay corridas gratis. Los tres consumen tokens, así que correrlos en cada guardado no te hace más seguro, solo más caro. Y hay dos trampas de configuración que vale la pena tener presentes: disableBundledSkills los apaga a todos, y una skill tuya llamada code-review en .claude/skills/ sobreescribe la nativa sin avisarte. Rinden cuando los diriges —al cambio correcto, en el momento correcto, con el nivel de esfuerzo correcto—, no cuando los dejas sueltos.