> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills

> Enseña a Devin procedimientos reutilizables haciendo commits de archivos SKILL.md en tus repositorios

<div id="what-are-skills">
  ## ¿Qué son las habilidades?
</div>

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](https://agentskills.io/specification), 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](https://agentskills.io/specification) para ver la referencia completa del formato de archivo.

<div id="why-skills-matter">
  ## Por qué son importantes las habilidades
</div>

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

<div id="devin-suggests-skills-automatically">
  ## Devin sugiere habilidades automáticamente
</div>

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.

<div id="examples">
  ## Ejemplos
</div>

<div id="testing-before-opening-a-pr">
  ### Verificación antes de abrir una PR
</div>

Una skill que indica a Devin cómo verificar una aplicación Next.js antes de crear una solicitud de extracción:

```markdown theme={null}
---
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
```

<div id="deploying-to-an-environment">
  ### Desplegar en un entorno
</div>

Una habilidad que despliega la aplicación mediante argumentos para el entorno de destino, con inyección dinámica de contenido:

```markdown theme={null}
---
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.

<div id="investigating-a-part-of-the-codebase">
  ### Investigar una parte de la base de código
</div>

Una habilidad para explorar el código de forma guiada que limita a Devin a herramientas de solo lectura:

```markdown theme={null}
---
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.

<div id="skill-discovery">
  ## Descubrimiento de habilidades
</div>

Devin descubre habilidades a partir de **dos fuentes**, que combina al inicio de cada sesión:

1. **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.
2. **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.

<div id="supported-skill-file-locations">
  ### Ubicaciones compatibles para archivos de habilidades
</div>

Devin busca archivos `SKILL.md` en todos los siguientes directorios:

* `.agents/skills/<skill-name>/SKILL.md` **(recomendado)**
* `.devin/skills/<skill-name>/SKILL.md`
* `.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 ocho rutas se analizan en cada repositorio.

<div id="what-devin-loads-from-a-skill-file">
  ### Qué carga Devin desde un archivo de habilidad
</div>

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](https://agentskills.io/specification) para ver la referencia completa del formato de archivo.

<div id="how-devin-uses-skills">
  ## Cómo usa Devin las habilidades
</div>

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:

<div id="automatic-invocation">
  ### Invocación automática
</div>

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.

<div id="mention-a-skill-in-your-prompt">
  ### Menciona una habilidad en tu prompt
</div>

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:

```
@skills:deploy staging
```

Los argumentos se reemplazan en el cuerpo de la habilidad en todos los lugares donde aparezcan `$ARGUMENTS`, `$ARGUMENTS[0]`, `$1`, etc.

<div id="one-active-skill-at-a-time">
  ### Una sola habilidad activa a la vez
</div>

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.

<div id="searching-and-listing">
  ### Búsqueda y listado
</div>

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.

<div id="limitations">
  ## Limitaciones
</div>

* **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.

<div id="skills-vs-playbooks">
  ## Habilidades vs. Playbooks
</div>

Tanto las habilidades como los [playbooks](/es/product-guides/creating-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, usa un playbook.

<div id="learn-more">
  ## Más información
</div>

* [Agent Skills specification](https://agentskills.io/specification) — el estándar abierto para el formato de archivo `SKILL.md`, los campos de frontmatter y la estructura de directorios
* [Knowledge](/es/product-guides/knowledge) — para consejos y datos contextuales (no procedimientos paso a paso)
* [Playbooks](/es/product-guides/creating-playbooks) — para plantillas de prompts reutilizables vinculadas a sesiones
