Use this file to discover all available pages before exploring further.
Las skills se definen como archivos SKILL.md dentro de un directorio con un nombre específico. Esta página explica todo lo que necesitas saber para escribir skills eficaces.
Coloca las skills en el directorio correspondiente según el ámbito:
# Específico del proyecto (confirmado en git).devin/skills/└── my-skill/ └── SKILL.md# Global — disponible en todos los proyectos (no confirmado)# Linux/macOS:~/.config/devin/skills/└── my-skill/ └── SKILL.md# Windows:%APPDATA%\devin\skills\└── my-skill\ └── SKILL.md
El nombre del directorio es el identificador de la skill (se usa para la invocación de /my-skill). El archivo SKILL.md contiene frontmatter YAML opcional y el contenido del prompt de la skill.
En Windows, %APPDATA% normalmente se resuelve a C:\Users\<YourUser>\AppData\Roaming.
Usa el campo model para ejecutar una skill con un modelo distinto del que está activo en la sesión actual. Esto es útil para usar un modelo más rápido en tareas simples o uno más potente en tareas complejas:
---name: quick-fixdescription: Fast lint fix using a lightweight modelmodel: swe---Fix the lint errors in the current file.
El nombre del modelo usa los mismos valores que la marca --model de la CLI (p. ej., opus, sonnet, swe, codex). Consulta Models para ver la lista completa. Cuando la skill termina, la sesión vuelve al modelo que estaba activo anteriormente.
Ejecutar skills como subagentes es experimental. Los campos de frontmatter subagent y agent pueden cambiar en futuras versiones.
De forma predeterminada, el prompt de una skill se inserta en la conversación actual; el agente lo procesa en línea. Como alternativa, puedes ejecutar una skill como subagente, lo que crea un proceso independiente con su propia ventana de contexto. Esto resulta útil para skills que realizan tareas específicas y autocontenidas, cuando no quieres que la salida llene la conversación principal.Hay dos formas de ejecutar una skill como subagente:
Establece subagent: true para ejecutar la skill como un subagente con el perfil subagent_general predeterminado:
---name: deep-researchdescription: Thorough codebase research on a topicsubagent: truemodel: sonnetallowed-tools: - read - grep - glob---Research the following topic thoroughly: $ARGUMENTSSearch broadly, follow references, and trace call chains.Report all findings with specific file paths and line numbers.
Cuando se invoca, esta skill crea un subagente en primer plano que ejecuta el prompt de la skill como tarea. El agente principal espera a que el subagente finalice; luego lee y resume los resultados.
---name: review-prdescription: Review the current PR using the reviewer subagentagent: reviewer---Review the staged changes for correctness, security, and style issues.
El valor de agent debe coincidir con el nombre de un perfil de subagente registrado (ya sea uno integrado, como subagent_explore / subagent_general, o un perfil personalizado que hayas definido). El subagente hereda el prompt del sistema, las restricciones de herramientas y el modelo del perfil, mientras que el contenido de la skill pasa a ser la tarea.
Si se establecen tanto agent como subagent, agent tiene prioridad. El campo model de la skill anula el modelo del perfil del subagente cuando se especifican ambos.
Las skills que se ejecutan como subagentes no crean subagentes anidados: si la skill ya se está ejecutando dentro de un subagente, se ejecuta inline para evitar la recursión infinita.
Como las skills pueden ejecutarse como subagentes, puedes usarlas para orquestar flujos de trabajo de varios pasos. Define un conjunto de skills de subagentes, cada una encargada de una tarea concreta, y luego escribe una skill normal que las invoque. La skill externa se convierte en el orquestador: llama a cada subagente, recopila los resultados y decide qué hacer a continuación.Por ejemplo, aquí tienes dos skills de subagentes y un orquestador que las coordina:
---name: research-changesdescription: Research recent code changes and their impactsubagent: trueallowed-tools: - read - grep - glob - exec---Analyze the recent changes in this repository:1. Run `git log --oneline -20` to see recent commits2. For each significant commit, examine what changed and why3. Identify any patterns, risks, or areas that need attentionReport your findings with specific file paths and commit references.
---name: validate-testsdescription: Run tests and validate coverage for recent changessubagent: trueallowed-tools: - read - grep - glob - exec---Validate the test suite for the project:1. Identify the test framework and run command2. Run the full test suite3. Check for any failing tests4. Review test coverage for recently changed filesReport which tests pass, which fail, and any coverage gaps.
---name: health-checkdescription: Full project health check — research changes then validate tests---Perform a full health check on this project:1. First, use the /research-changes skill to understand recent changes2. Then, use the /validate-tests skill to verify the test suite3. Finally, synthesize the findings from both into a summary: - What changed recently and why - Whether tests are passing - Any risks or recommended actions
Al invocar /health-check, se ejecuta el orquestador en el agente principal. Este llama a /research-changes, que crea un subagente para explorar el repo. Cuando termina, llama a /validate-tests, que crea otro subagente para ejecutar las pruebas. Luego, el orquestador sintetiza ambos resultados en un resumen final.Una skill de subagente nunca usará un subagente al llamar a otras skills, incluso si esas skills tienen subagent: true; en esos casos, se ejecutan inline. Esto significa que no tienes que preocuparte por un anidamiento ilimitado. El patrón de orquestación siempre tiene un solo nivel de profundidad: el orquestador crea subagentes, y esos subagentes ejecutan todo lo demás inline.
allow — Estos ámbitos se aprueban automáticamente durante la ejecución de la skill
deny — Estos ámbitos se bloquean durante la ejecución de la skill
ask — Estos ámbitos siempre requieren la aprobación del usuario
Los permisos de la skill son aditivos respecto a los permisos base de la sesión (no los reemplazan). Una skill no puede otorgar permisos que estén denegados en un nivel superior (configuración del proyecto o de la organización).
Si no se especifica allowed-tools, la skill tiene acceso a todas las herramientas. En las skills críticas para la seguridad, limita siempre el acceso al mínimo necesario.
---name: reviewdescription: Review staged changes for issuesallowed-tools: - read - grep - glob - execpermissions: allow: - Exec(git diff) - Exec(git log)---Review the current changes for quality issues:!`git diff --staged`Evaluate:1. **Correctness** — Any logic errors or edge cases?2. **Security** — Any vulnerabilities introduced?3. **Performance** — Any obvious inefficiencies?4. **Style** — Consistent with the codebase?Provide a summary with specific line references.
---name: componentdescription: Generar un componente de React a partir de una descripciónargument-hint: "<ComponentName>"allowed-tools: - read - edit - grep - globmodel: sonnetpermissions: allow: - Write(src/components/**)---Crear un nuevo componente de React llamado `$1`:1. Revisar los componentes existentes en src/components/ para conocer las convenciones de estilo2. Crear el archivo del componente en src/components/$1/$1.tsx3. Crear una exportación barrel en src/components/$1/index.ts4. Agregar pruebas básicas en src/components/$1/$1.test.tsx5. Seguir los patrones que encuentres en los componentes existentes
---name: deploydescription: Run through the deployment checklisttriggers: - userallowed-tools: - read - exec - greppermissions: allow: - Exec(npm run) - Exec(git)---Run through the deployment checklist:1. Run the test suite: `npm run test`2. Run the linter: `npm run lint`3. Check for uncommitted changes: `git status`4. Verify the build: `npm run build`5. Show the current branch and last commitReport the status of each step. If anything fails, stop and explain the issue.
---name: finddescription: Find relevant code across the projectargument-hint: "<what to find>"allowed-tools: - read - grep - globtriggers: - user - model---Search the codebase thoroughly for: $ARGUMENTSUse grep for content search and glob for file discovery.Provide relevant file paths and code snippets.Explain how the pieces connect.