Devil's Advocate en Claude Code: Skill Open Source
Las skills de tipo "devil's advocate" para Claude Code cuestionan cada decisión del agente antes de ejecutarla, forzando escenarios alternativos y advertencias de seguridad. En este artículo verás por qué la sobreconfianza de los LLM es un problema real en agentic coding, cómo funcionan las skills adversariales disponibles en open source y cómo instalar o crear la tuya en menos de 10 minutos.
El problema: los agentes ejecutan sin cuestionar
Los agentes de código basados en LLM tienen un defecto estructural: operan sobre probabilidad estadística, no sobre verdad. Cuando Claude Code genera 300 líneas de código funcional, lo hace con la misma convicción que si fueran correctas o estuvieran plagadas de errores. Simon Willison lo describe bien: piensa en tu pair programmer IA como "sobreconfiado y propenso a errores".
El problema se agrava con el sesgo de confirmación. Un estudio reciente de arXiv (marzo 2026) midió este efecto en revisión de código asistida por LLM: enmarcar un cambio como "libre de errores" redujo la tasa de detección de vulnerabilidades entre un 16% y un 93% según el modelo. En el caso de Claude Code como agente autónomo, el framing adversarial tuvo éxito en el 88% de los casos en configuraciones reales de proyecto.
El resultado práctico es conocido por cualquier developer que haya usado agentic coding: el agente diagnostica un problema, implementa una solución y sigue adelante con total seguridad, mientras el error de fondo persiste. Si le pides que revise su propio trabajo en la misma conversación, tiende a confirmar su razonamiento previo en lugar de cuestionarlo. Es una limitación inherente al contexto compartido.
¿Qué es una skill devil's advocate?
Una skill devil's advocate es un fichero SKILL.md que instruye al agente para adoptar un rol adversarial: cuestionar suposiciones, buscar fallos no evidentes y proponer alternativas antes de ejecutar acciones críticas. En lugar de aceptar la primera solución, el agente se obliga a argumentar en contra de su propia propuesta.
El mecanismo funciona porque aprovecha una propiedad del sistema de skills de Claude Code: cuando una skill se ejecuta con context: fork, el subagente arranca con un contexto limpio. No hereda la conversación anterior ni el razonamiento previo. Esto elimina el "coste hundido" que produce el sesgo de confirmación.
A marzo de 2026, existen varias implementaciones open source con enfoques diferentes. Si ya trabajas con Claude Code en tu flujo de desarrollo, añadir una de estas skills es cuestión de minutos.
Las 4 variantes open source disponibles
El ecosistema ha producido implementaciones con diferentes niveles de intensidad y enfoque. Esta tabla compara las principales:
| Skill | Enfoque | Intensidad | Fuente |
|---|---|---|---|
| Devil's Advocate Protocol | Prevenir commitment bias en arquitectura | Moderada | MCPmarket |
| Red Team vs Blue Team | Validar propuestas con review adversarial, opcionalmente con Codex como critic independiente | Alta | MCPmarket |
| Adversarial Research Critique | Debate multi-ronda con hipótesis competidoras y ratings de severidad | Alta | LobeHub (flonat) |
| Configurable Critique | 4 niveles: gentle, balanced, ruthless, linus | Variable | LobeHub (bidodev) |
La variante de richiethomas en GitHub toma un enfoque diferente: simula un code review multi-ronda entre un "Author" y un "Reviewer" antes de abrir un PR. El Reviewer debe plantear una objeción sustancial en cada ronda y el Author debe argumentar en contra antes de conceder, evitando el patrón habitual donde el LLM acepta la primera crítica sin resistencia.
Para proyectos donde ya aplicas técnicas de debugging en apps LLM, estas skills complementan la detección de fallos silenciosos con una capa de prevención activa.
Instalación paso a paso
Claude Code busca skills en dos ubicaciones: ~/.claude/skills/ para skills personales (disponibles en todos tus proyectos) y .claude/skills/ en la raíz del proyecto para skills compartidas con el equipo.
Opción 1: instalar desde un marketplace
Si usas npx con el CLI de skills, la instalación global es directa:
# Instalación global (IMPORTANTE: el flag -g es obligatorio)
npx skills add devils-advocate -y -g
# Verificar que Claude Code la detecta
# En una sesión de Claude Code, pregunta:
# "¿Qué skills tienes disponibles?"
Sin el flag -g, la skill se instala en node_modules local y Claude Code no la encuentra. Es un error frecuente.
Opción 2: instalación manual
Clona o descarga el fichero SKILL.md de cualquiera de los repos y colócalo en la estructura correcta:
# Crear directorio para la skill
mkdir -p ~/.claude/skills/devils-advocate
# Copiar el SKILL.md (ejemplo con el repo de richiethomas)
curl -o ~/.claude/skills/devils-advocate/SKILL.md \
https://raw.githubusercontent.com/richiethomas/claude-devils-advocate/main/devils-advocate.md
Opción 3: crear tu propia skill adversarial
Esta es la opción con más control. El formato SKILL.md usa frontmatter YAML + contenido markdown:
---
name: devils-advocate
description: Cuestiona decisiones de arquitectura y código antes de ejecutar. Usa cuando el agente proponga cambios significativos, refactorizaciones o decisiones de diseño.
context: fork
allowed-tools: Read, Grep, Glob
---
## Protocolo Devil's Advocate
Antes de validar la propuesta actual, ejecuta este protocolo:
### 1. Identificar suposiciones
- Lista TODAS las suposiciones implícitas en la propuesta
- Para cada una, indica qué pasa si es incorrecta
### 2. Generar alternativas
- Propón al menos 2 enfoques alternativos
- Para cada alternativa, indica ventajas sobre la propuesta actual
### 3. Buscar modos de fallo
- ¿Qué casos límite no se han considerado?
- ¿Qué dependencias externas pueden fallar?
- ¿Hay implicaciones de seguridad no mencionadas?
### 4. Evaluar reversibilidad
- ¿Es fácil revertir este cambio si falla?
- ¿Qué datos o estado se modifican de forma irreversible?
### 5. Veredicto
Emite uno de estos juicios:
- **PROCEDER**: la propuesta es sólida, las alternativas no la superan
- **RECONSIDERAR**: hay alternativas mejores o suposiciones frágiles
- **DETENER**: hay riesgos críticos no abordados
Incluye evidencia concreta (ficheros, líneas, documentación) para cada punto.
El campo context: fork es clave: el subagente arranca sin el historial de conversación. Los allowed-tools restringidos a lectura evitan que el "crítico" modifique código, solo analiza.
Uso práctico: cuándo y cómo invocarlo
Hay dos formas de activar la skill:
# Invocación directa antes de un cambio importante
/devils-advocate
# Con argumentos específicos
/devils-advocate migrar de PostgreSQL a MongoDB para el servicio de búsqueda
La skill también puede activarse automáticamente si el description en el frontmatter incluye las keywords correctas. Cuando Claude Code detecta que estás en una decisión de arquitectura o refactorización, carga la skill y la ejecuta como parte de su flujo.
Ejemplo de output real
Supongamos que pides a Claude Code que migre un endpoint de REST síncrono a WebSocket. Antes de ejecutar, la skill devil's advocate produce algo como:
## Suposiciones identificadas
1. El cliente soporta WebSocket (no verificado en el código frontend)
2. El load balancer actual permite conexiones persistentes
3. El volumen de mensajes justifica WebSocket vs SSE
## Alternativas
- Server-Sent Events (SSE): unidireccional, más simple, compatible con HTTP/2
- Long polling: sin cambios de infraestructura, suficiente para < 10 msg/s
## Modos de fallo
- El proxy nginx actual tiene timeout de 60s para conexiones idle
- No hay reconexión automática en el cliente actual
- Los tests E2E no cubren escenarios de desconexión
## Veredicto: RECONSIDERAR
SSE cubre el caso de uso (notificaciones server→client) sin los costes
de infraestructura de WebSocket. Revisar requisito real antes de proceder.
Sin la skill, Claude Code habría implementado WebSocket directamente, porque es la respuesta más "completa" en su distribución de probabilidad. La skill fuerza la pregunta: ¿es la solución correcta o solo la más obvia?
El patrón multi-agente adversarial
La skill individual es útil, pero el patrón escala. Hay developers que ejecutan 9 subagentes paralelos para code review, cada uno enfocado en una dimensión: seguridad, rendimiento, tests, estilo, dependencias, simplificación. El agente principal sintetiza los hallazgos y emite un veredicto final.
La ventaja no es solo la cobertura. Es el aislamiento de sesgos: si intentas hacer seguridad, rendimiento y cobertura de tests en el mismo contexto, el agente se sesga hacia lo que encuentra primero. Con agentes separados, cada uno investiga con "ojos limpios". Si ya has explorado arquitecturas multi-agente con Claude Code, este patrón es una extensión natural.
Claude Code soporta esto de forma nativa con agent teams. Puedes definir un equipo donde un teammate juega devil's advocate mientras otros trabajan en la implementación:
# .claude/agents/critical-review.md
---
name: critical-review
description: Equipo de review con advocate adversarial
---
Crea un equipo con tres perspectivas:
1. Implementador: ejecuta el cambio solicitado
2. Devil's advocate: cuestiona cada decisión del implementador
3. Sintetizador: evalúa ambas posiciones y emite veredicto final
En Producción
Usar una skill adversarial en tu flujo diario tiene implicaciones que van más allá del tutorial.
Coste en tokens. Cada invocación del devil's advocate consume tokens adicionales. Con context: fork, el subagente necesita leer ficheros relevantes desde cero. En escenarios reales, una ejecución de la skill puede consumir entre 5.000 y 15.000 tokens de input según el tamaño del contexto. Si usas Claude Code Pro con límites de 5 horas, gestionar el consumo de herramientas IA es parte del problema a resolver. Reserva la skill para decisiones que lo justifiquen: cambios de arquitectura, migraciones, refactorizaciones que afecten a múltiples ficheros.
Cuándo NO usarla. No necesitas un devil's advocate para renombrar una variable, corregir un typo o añadir una línea de log. La skill tiene sentido cuando el coste de revertir un error supera el coste de la revisión. Una buena heurística: si el cambio toca más de 3 ficheros o modifica contratos de API, pásalo por la skill.
Seguridad de skills de terceros. Cualquier SKILL.md puede incluir instrucciones que el agente ejecutará. Antes de instalar una skill de un repo desconocido, lee el contenido completo. Verifica que no incluya instrucciones para instalar paquetes, ejecutar scripts remotos o enviar datos a endpoints externos. La documentación oficial de Anthropic advierte que las skills pueden contener instrucciones de prompt injection.
Falsos negativos del advocate. El subagente adversarial también es un LLM. Puede generar objeciones superficiales o pasar por alto problemas reales. No sustituye una revisión humana. Es una capa adicional, no la última línea de defensa.
Errores comunes y soluciones
Error: la skill no aparece en Claude Code tras instalarla.
Causa: se instaló con npx sin el flag -g, quedando en node_modules local.
Solución: reinstalar con npx skills add devils-advocate -y -g o copiar manualmente a ~/.claude/skills/.
Error: el advocate confirma todo sin objeciones reales.
Causa: la skill se ejecuta en el mismo contexto (sin context: fork), heredando el sesgo de confirmación.
Solución: añadir context: fork al frontmatter. El subagente debe arrancar sin historial previo.
Error: el advocate genera críticas genéricas que no aplican al código real.
Causa: el allowed-tools no incluye herramientas de lectura de ficheros.
Solución: asegurar que allowed-tools incluya al menos Read, Grep, Glob para que el agente analice el código real, no solo la descripción abstracta.
Preguntas frecuentes
¿Funciona la skill devil's advocate con otros agentes además de Claude Code?
El formato SKILL.md sigue el estándar abierto Agent Skills, compatible con Cursor, Codex CLI, Gemini CLI y Antigravity. La funcionalidad de context: fork es específica de Claude Code, pero las instrucciones del protocolo adversarial funcionan como referencia en cualquier agente que soporte ficheros markdown de configuración.
¿Cuántos tokens extra consume cada invocación?
Depende de la cantidad de ficheros que el subagente necesite leer. En proyectos de tamaño medio (50-100 ficheros), una ejecución típica consume entre 5.000 y 15.000 tokens de input y entre 1.000 y 3.000 de output. A precios de Claude Opus (marzo 2026), son aproximadamente 0,10-0,25 euros por invocación.
¿Puedo combinar la skill devil's advocate con el Code Review oficial de Anthropic?
Sí. El Code Review de Anthropic (lanzado el 9 de marzo de 2026) analiza PRs con múltiples agentes especializados. La skill devil's advocate opera en una fase anterior: antes de escribir el código, no después. Son complementarios. Usa la skill para validar decisiones de diseño y el Code Review para validar la implementación final.
Cierre
La sobreconfianza de los LLM no es un defecto que se vaya a resolver con el próximo modelo. Es una propiedad estructural de los sistemas que operan sobre probabilidad. Las skills adversariales no eliminan el problema, pero lo mitigan donde más duele: en las decisiones de diseño que son caras de revertir. El patrón es simple, el coste de implementarlo es bajo, y el ecosistema open source ya ofrece variantes para diferentes niveles de intensidad.
Si trabajas con Claude Code a diario, instalar una skill devil's advocate es una de esas inversiones de 10 minutos que se paga sola con el primer error que evitas. En el marketplace de skills para agentes IA puedes explorar más opciones. ¿Has probado algún patrón adversarial con tu agente de código? Cuéntamelo en Twitter @sergiomarquezp_.