¿Qué son las habilidades?
Las habilidades son archivos SKILL.md que confirmas en tus repositorios y que le enseñan a Devin procedimientos reutilizables: cualquier flujo de trabajo repetible que quieras que Devin siga de forma consistente. Probar tu aplicación antes de abrir un PR, desplegar en un entorno, investigar una base de código, crear la estructura inicial de un nuevo servicio: si puedes escribirlo como instrucciones paso a paso, puedes convertirlo en una habilidad.
Siguen el estándar abierto Agent Skills, por lo que los mismos archivos de habilidad funcionan en varias herramientas de programación con IA.
Coloca los archivos de habilidad en .agents/skills/<skill-name>/SKILL.md en tu repositorio. Devin los descubre automáticamente en todos tus repositorios conectados. Consulta la especificación de Agent Skills para ver la referencia completa del formato de archivo.
Por qué son importantes las habilidades
Sin habilidades, Devin tiene que resolver los flujos de trabajo desde cero en cada sesión. Con habilidades, defines un procedimiento una vez y Devin lo sigue de forma fiable cada vez. Las habilidades son útiles siempre que tengas un flujo de trabajo que:
- Debe hacerse siempre de la misma manera — listas de verificación de pruebas, pasos de despliegue, procedimientos de revisión
- Requiere conocimiento específico del repositorio — qué servicios iniciar, qué puertos usar, qué comandos ejecutar
- Se beneficia de un contexto dinámico — incorporar diffs de git, nombres de ramas o información del entorno en el momento de la invocación
Devin sugiere habilidades automáticamente
Devin puede sugerir habilidades automáticamente para ti. Después de que Devin pruebe tu aplicación o aprenda algo nuevo sobre tu configuración durante una sesión, sugerirá crear o actualizar una habilidad para capturar ese conocimiento. Verás una sugerencia en la línea de tiempo de tu sesión con:
- Un resumen de lo que se aprendió (por ejemplo, “cómo iniciar el backend con Docker”)
- El contenido propuesto del archivo
SKILL.md
- Un botón “Create PR” para confirmar la habilidad en tu repositorio
Con el tiempo, Devin crea una biblioteca de habilidades en tu repositorio sobre cómo ejecutar, probar y desplegar tu aplicación.
Verificación antes de abrir una PR
Una skill que indica a Devin cómo verificar una aplicación Next.js antes de crear una solicitud de extracción:
---
name: test-before-pr
description: Run the local dev server and verify pages before opening any PR that touches frontend code.
---
## Setup
1. Install dependencies: `npm install`
2. Start the database: `docker-compose up -d postgres`
3. Run migrations: `npx prisma migrate dev`
4. Start the dev server: `npm run dev`
5. Wait for "Ready on http://localhost:3000"
## Verify
1. Read the git diff to identify which pages changed
2. Open each affected page in the browser
3. Check for: console errors, layout issues, broken links
4. Screenshot each page at desktop (1280px) and mobile (375px) widths
## Before Opening the PR
1. Run `npm run lint` and fix any issues
2. Run `npm test` and confirm all tests pass
3. Include screenshots in the PR description
Una habilidad que despliega la aplicación mediante argumentos para el entorno de destino, con inyección dinámica de contenido:
---
name: deploy
description: Deploy the app to a target environment and run smoke tests.
argument-hint: <environment>
triggers: ["user"]
---
## Deploy
1. Make sure you are on the correct branch for this deploy
2. Run `./scripts/deploy.sh $0`
3. Wait for the deploy script to complete successfully
## Verify
1. Curl `https://$0.example.com/health` and confirm a 200 response
2. Run the smoke test suite: `npm run test:smoke -- --env=$0`
3. Report the deployment URL and test results
## Current context
- Branch: !`git branch --show-current`
- Last commit: !`git log --oneline -1`
Al invocar con @skills:deploy staging, se sustituye staging por $ARGUMENTS y $0, y los bloques !`command` insertan información de Git en tiempo real. El campo triggers: ["user"] garantiza que Devin solo ejecute esta habilidad cuando se lo pidas explícitamente; no se activará automáticamente.
Investigar una parte de la base de código
Una habilidad para explorar el código de forma guiada que limita a Devin a herramientas de solo lectura:
---
name: investigate
description: Research a part of the codebase and produce a written summary with file references.
allowed-tools: Read, Grep, ListDir
argument-hint: <topic or area to investigate>
---
## Research
1. Search the codebase for files related to: $ARGUMENTS
2. Read the most relevant files thoroughly
3. Trace the call chain and data flow
## Summarize
1. Write a summary of how $ARGUMENTS works
2. Include specific file paths and line numbers for every claim
3. Note any concerns, edge cases, or areas that need attention
El campo allowed-tools restringe a Devin a operaciones de solo lectura: no permite editar ni ejecutar comandos del shell. Esto resulta útil para tareas de exploración en las que se desea obtener análisis sin efectos secundarios.
Descubrimiento de habilidades
Devin descubre habilidades a partir de dos fuentes, que combina al inicio de cada sesión:
- Repositorios indexados — el backend de Devin indexa archivos
SKILL.md en todos los repositorios conectados a tu organización. Estos están disponibles de inmediato cuando inicia una sesión, antes de que se clonen los repositorios.
- Repositorios clonados — a medida que los repositorios se clonan en la máquina de la sesión, Devin los escanea en busca de archivos
SKILL.md en disco. Las habilidades detectadas en disco actualizan o reemplazan cualquier habilidad indexada coincidente del mismo repositorio, lo que garantiza que Devin siempre use la versión más reciente en la rama en la que se está trabajando.
Cuando la clonación de un repositorio se completa a mitad de una sesión, Devin vuelve a escanear ese repositorio automáticamente para que las habilidades recién agregadas o modificadas se detecten sin necesidad de reiniciar.
Ubicaciones compatibles para archivos de habilidades
Devin busca archivos SKILL.md en todos los siguientes directorios:
.agents/skills/<skill-name>/SKILL.md (recomendado)
.github/skills/<skill-name>/SKILL.md
.claude/skills/<skill-name>/SKILL.md
.cursor/skills/<skill-name>/SKILL.md
.codex/skills/<skill-name>/SKILL.md
.cognition/skills/<skill-name>/SKILL.md
.windsurf/skills/<skill-name>/SKILL.md
Las siete rutas se analizan en cada repositorio.
Qué carga Devin desde un archivo de habilidad
Cuando se descubre una habilidad, Devin analiza el frontmatter YAML (el bloque --- en la parte superior) y extrae:
| Campo | Propósito |
|---|
name | Identifica la habilidad. Si se omite, se usa el nombre del directorio padre como alternativa. |
description | Resumen breve que se muestra en la lista de habilidades para que Devin (y tú) sepan qué hace la habilidad. |
allowed-tools | Restringe qué herramientas puede usar Devin mientras la habilidad está activa. |
Devin también admite estos campos de frontmatter adicionales además de la especificación estándar:
| Campo | Propósito |
|---|
argument-hint | Texto de ayuda que se muestra junto al nombre de la habilidad y describe los argumentos esperados. |
triggers | Controla quién puede invocar la habilidad — ["user", "model"] de forma predeterminada. Configúralo como ["user"] para evitar que Devin la active automáticamente. |
Todo lo que viene después del frontmatter es el cuerpo de la habilidad: las instrucciones paso a paso que se le piden a Devin que siga cuando se invoca la habilidad.
Consulta la especificación de Agent Skills para ver la referencia completa del formato de archivo.
Además de la especificación estándar, Devin admite dos tipos de contenido dinámico en el cuerpo de la habilidad que se procesan en el momento de la invocación:
$ARGUMENTS — se reemplaza por la cadena completa de argumentos que se pasa cuando se invoca la habilidad (por ejemplo, mediante @skills:deploy staging prod). También puedes acceder a argumentos individuales por índice: $ARGUMENTS[0] o $0 para el primero, $ARGUMENTS[1] o $1 para el segundo, etc. Los argumentos se separan por espacios en blanco.
!`command` — el comando se ejecuta en la raíz del repositorio y se reemplaza por su stdout, lo que permite que las habilidades incluyan valores dinámicos como nombres de ramas o números de puerto.
Cómo usa Devin las habilidades
Al comienzo de cada sesión, Devin ve una lista de todas las habilidades disponibles (nombre + descripción). Cuando se invoca una habilidad, Devin lee el archivo completo SKILL.md e inyecta su contenido en su contexto actual como una instrucción a nivel de sistema. Esto significa que Devin sigue activamente los pasos de la habilidad durante el resto de la tarea: no es solo una referencia, sino que guía directamente el comportamiento de Devin.
Devin puede usar habilidades de varias maneras:
Cuando Devin determina que una skill es relevante para la tarea actual, la invoca automáticamente. Por ejemplo, si le pides a Devin que solucione un bug en código de frontend y existe una skill test-before-pr, Devin la activará antes de abrir el PR. Configura triggers: ["user"] en el frontmatter para evitar la invocación automática en las skills que solo quieras que se activen explícitamente.
Menciona una habilidad en tu prompt
Puedes indicarle a Devin que use una habilidad específica incluyendo @skills:skill-name en tu mensaje:
Fix the login bug on the /auth page @skills:test-before-pr
También puedes pasar argumentos:
Los argumentos se reemplazan en el cuerpo de la habilidad en todos los lugares donde aparezcan $ARGUMENTS, $ARGUMENTS[0], $1, etc.
Una sola habilidad activa a la vez
Devin solo puede tener una habilidad activa a la vez. Invocar una nueva habilidad reemplaza la anterior. Cuando una habilidad está activa, se le indica a Devin que siga los pasos de la habilidad en orden y complete cada uno antes de pasar al siguiente.
Devin puede buscar skills por palabra clave o por directorio si necesita encontrar la adecuada en mitad de una sesión. También puedes pedirle a Devin que muestre las skills disponibles o que las vuelva a cargar después de hacer push de cambios a un archivo de skill.
- Habilidades globales / a nivel de organización — Actualmente, las habilidades residen dentro de los repositorios. Para habilidades a nivel de organización, puedes crear un repositorio dedicado de “habilidades” como solución temporal. Estamos explorando soporte nativo para habilidades a nivel de organización que se apliquen en todos los repositorios.
- Composición de múltiples habilidades — Actualmente, solo una habilidad puede estar activa a la vez. Estamos trabajando en soporte para encadenar y componer flujos de trabajo.
Habilidades vs. Playbooks
Tanto las habilidades como los playbooks le dan a Devin instrucciones reutilizables, pero funcionan de manera diferente:
| Skills | Playbooks |
|---|
| Dónde se almacenan | En tu repositorio como archivos SKILL.md, con control de versiones junto a tu código | En la aplicación web de Devin, gestionados a través de la interfaz |
| Cómo se activan | Devin las descubre y las invoca automáticamente, o tú haces referencia a ellas con @skills:name en cualquier prompt | Se adjuntan manualmente a una sesión cuando la inicias |
| Alcance | Limitadas a un repositorio: Devin selecciona las habilidades correctas según qué repositorios sean relevantes para la tarea | A nivel de organización: cualquier miembro del equipo puede adjuntar cualquier playbook a cualquier sesión |
| Sugerencia automática | Devin sugiere nuevas habilidades después de probar tu aplicación o aprender algo nuevo | Creados manualmente por los miembros del equipo |
| Mejor para | Procedimientos de pruebas, configuración de desarrollo local, listas de comprobación de despliegue, flujos de trabajo específicos de un repositorio | Plantillas de prompts reutilizables, patrones de tareas entre varios repositorios, guías de incorporación |
¿Cuál debería usar? Si tus instrucciones están ligadas a un repositorio específico —cómo ejecutarlo, probarlo o desplegarlo— usa una habilidad. Si tus instrucciones son prompts de uso general que se aplican a varios repositorios o equipos, los playbooks funcionan hoy, pero planeamos unificarlo todo en habilidades en el futuro. Las habilidades son la primitiva más potente: tienen control de versiones, se descubren automáticamente y admiten contenido dinámico como argumentos y ejecución de shell. Con el tiempo, iremos añadiendo directamente a las habilidades las características que hacen útiles a los playbooks (como el alcance a nivel de organización y la gestión desde la interfaz).
Si ya tienes playbooks que funcionan bien, no hay prisa por migrarlos: seguirán funcionando. Pero para nuevas instrucciones, recomendamos empezar con habilidades.
- Agent Skills specification — el estándar abierto para el formato de archivo
SKILL.md, los campos de frontmatter y la estructura de directorios
- Knowledge — para consejos y datos contextuales (no procedimientos paso a paso)
- Playbooks — para plantillas de prompts reutilizables vinculadas a sesiones