mirror of
https://github.com/mintlify/docs.git
synced 2026-09-14 13:35:46 +08:00
a0ca81f490
Generated-By: mintlify-agent Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
442 lines
20 KiB
Plaintext
442 lines
20 KiB
Plaintext
---
|
|
title: "Flujos de trabajo"
|
|
description: "Automatiza el mantenimiento de la documentación con tareas del agente programadas o activadas por eventos."
|
|
keywords: ["automation", "automate", "cron", "auto-update"]
|
|
tag: "Beta"
|
|
---
|
|
|
|
<Info>
|
|
Los flujos de trabajo están en beta. Actualmente son gratuitos para todos los planes durante el período beta. Las funciones, la disponibilidad y los precios de los flujos de trabajo están sujetos a cambios.
|
|
</Info>
|
|
|
|
Los flujos de trabajo ejecutan el agente automáticamente según una programación o cuando se hace un push a un repositorio. Cada flujo de trabajo define un prompt para el agente y un desencadenante para indicar cuándo ejecutarlo.
|
|
|
|
Cuando se ejecuta un flujo de trabajo, el agente clona los repositorios especificados como contexto, sigue el prompt y abre una solicitud de extracción o puede enviar los cambios directamente a tu rama de implementación.
|
|
|
|
Cada flujo de trabajo puede ejecutarse hasta 50 veces al día. Las ejecuciones que fallan no cuentan para este límite.
|
|
|
|
<Tip>
|
|
Usa flujos de trabajo que se ejecutan según una programación para automatizar tareas recurrentes, como publicar registros de cambios o comprobar problemas de gramática y estilo.
|
|
|
|
Usa flujos de trabajo que se ejecutan en eventos de push para automatizar tareas de mantenimiento reactivas, como actualizar referencias de API o identificar actualizaciones de documentación necesarias para nuevas funciones.
|
|
</Tip>
|
|
|
|
<div id="create-a-workflow">
|
|
## Crear un flujo de trabajo
|
|
</div>
|
|
|
|
<div id="create-a-workflow-in-the-dashboard">
|
|
### Crear un flujo de trabajo en el dashboard
|
|
</div>
|
|
|
|
1. Abre la página [Workflows](https://dashboard.mintlify.com/products/workflows) en tu dashboard.
|
|
2. Haz clic en **New workflow**.
|
|
3. Configura el nombre del flujo de trabajo, el tipo de disparador, los repositorios y la programación.
|
|
4. Escribe las instrucciones del agente y elige si deseas fusionar automáticamente las solicitudes de extracción.
|
|
5. Opcionalmente, habilita las notificaciones de Slack para cuando el flujo de trabajo se complete.
|
|
6. Haz clic en **Create workflow**.
|
|
|
|
<Frame>
|
|
<img src="/images/agent/new-workflow-light.png" alt="La página de configuración del nuevo flujo de trabajo." className="block dark:hidden" />
|
|
|
|
<img src="/images/agent/new-workflow-dark.png" alt="La página de configuración del nuevo flujo de trabajo." className="hidden dark:block" />
|
|
</Frame>
|
|
|
|
<div id="create-a-workflow-file-with-the-cli">
|
|
### Crea un archivo de flujo de trabajo con la CLI
|
|
</div>
|
|
|
|
Si tienes instalada la [CLI de Mintlify](/es/installation), ejecuta el siguiente comando desde tu repositorio de documentación para crear de forma interactiva un archivo de flujo de trabajo en la CLI.
|
|
|
|
```bash
|
|
mint workflow
|
|
```
|
|
|
|
La CLI te pide información sobre el flujo de trabajo y crea un archivo `.md` en el directorio `.mintlify/workflows/`. Haz commit y push del archivo para activar el flujo de trabajo.
|
|
|
|
<Tip>
|
|
Si ejecutas `mint workflow` en un entorno no interactivo, como un pipeline de CI/CD o un agente de programación con IA, la CLI devuelve instrucciones de uso y el formato del archivo del flujo de trabajo en lugar de solicitudes interactivas.
|
|
</Tip>
|
|
|
|
<div id="add-a-workflow-file-to-your-repository">
|
|
### Agrega un archivo de flujo de trabajo a tu repositorio
|
|
</div>
|
|
|
|
Crea un archivo `.md` para cada flujo de trabajo en un directorio `.mintlify/workflows/` en la raíz de tu repositorio de documentación. Cada archivo define un flujo de trabajo.
|
|
|
|
<Note>
|
|
Si tienes un monorepo, coloca la carpeta `.mintlify/workflows/` dentro del directorio raíz de tu documentación donde se encuentra tu archivo `docs.json`, no en la raíz del repositorio.
|
|
</Note>
|
|
|
|
Los archivos de flujo de trabajo usan frontmatter YAML para configurar el flujo de trabajo, seguido de un prompt en Markdown para el agente.
|
|
|
|
```markdown .mintlify/workflows/update-changelog.md
|
|
---
|
|
name: Update changelog
|
|
on:
|
|
cron: "0 9 * * 1"
|
|
context:
|
|
- repo: your-org/your-product
|
|
automerge: false
|
|
---
|
|
|
|
Review all changes since the last changelog update. Draft a new changelog post with any new features, bug fixes, or breaking changes.
|
|
|
|
Include information about what a change is and how it affects users.
|
|
|
|
Do not include any internal-only information or minor changes like bumping package versions or updating documentation.
|
|
|
|
Success criteria: Someone who reads the changelog knows the most up to date information about the product including what changed and whether or not it affects them.
|
|
```
|
|
|
|
<div id="frontmatter-fields">
|
|
## Campos de frontmatter
|
|
</div>
|
|
|
|
| Campo | Obligatorio | Descripción |
|
|
| ----------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `name` | Sí | Nombre para mostrar que se muestra en el dashboard. |
|
|
| `on` | Sí | Configuración del disparador. |
|
|
| `context` | No | Repositorios clonados como referencia cuando se ejecuta el flujo de trabajo. |
|
|
| `automerge` | No | El valor predeterminado es `false`, lo que abre una solicitud de extracción para revisión. Si es `true`, abre una solicitud de extracción y la fusiona automáticamente. |
|
|
| `notify` | No | Configuración de notificaciones. Envía mensajes de Slack cuando se completen los flujos de trabajo. |
|
|
|
|
Debes tener instalada la aplicación de GitHub de Mintlify en cada repositorio enumerado en los campos `context` o `on.push.repo`. Agrega nuevos repositorios en la página de la [aplicación de GitHub](https://dashboard.mintlify.com/settings/organization/github-app) de tu dashboard de Mintlify.
|
|
|
|
<Frame>
|
|
<img src="/images/github/app-repos-light.png" alt="La página de la aplicación de GitHub que muestra los repositorios conectados de dos organizaciones." className="block dark:hidden" />
|
|
|
|
<img src="/images/github/app-repos-dark.png" alt="La página de la aplicación de GitHub que muestra los repositorios conectados de dos organizaciones en modo oscuro." className="hidden dark:block" />
|
|
</Frame>
|
|
|
|
<div id="triggers">
|
|
### Disparadores
|
|
</div>
|
|
|
|
Cada flujo de trabajo debe definir un único disparador mediante el campo `on`.
|
|
|
|
<div id="on-schedule-cron">
|
|
#### Según programación (cron)
|
|
</div>
|
|
|
|
Ejecuta un flujo de trabajo de forma recurrente usando una expresión cron. Todas las ejecuciones programadas se realizan en UTC.
|
|
|
|
Los flujos de trabajo se ponen en cola dentro de los 10 minutos siguientes a la hora programada y pueden tardar hasta 10 minutos en ejecutarse.
|
|
|
|
```yaml
|
|
on:
|
|
cron: "0 9 * * 1"
|
|
```
|
|
|
|
El campo value es una expresión cron estándar de 5 campos con el formato `minuto hora día-del-mes mes día-de-la-semana`. Utiliza una herramienta como [crontab.guru](https://crontab.guru) para crear y validar los horarios.
|
|
|
|
| Expresión | Programación |
|
|
| --------------- | ------------------------------------------ |
|
|
| `"0 9 * * 1"` | Todos los lunes a las 9:00 AM UTC |
|
|
| `"0 0 1 * *"` | El primer día de cada mes a medianoche UTC |
|
|
| `"0 8 * * 1-5"` | Días laborables a las 8:00 AM UTC |
|
|
|
|
<div id="on-push-events">
|
|
#### En eventos de push
|
|
</div>
|
|
|
|
Ejecuta un flujo de trabajo cuando se envían cambios a un repositorio o branch específicos. Esto incluye tanto fusiones de solicitudes de extracción como envíos directos al branch.
|
|
|
|
```yaml
|
|
on:
|
|
push:
|
|
- repo: your-org/your-product
|
|
branch: main
|
|
```
|
|
|
|
* `repo`: El repositorio de GitHub en formato `owner/repo`.
|
|
* `branch` (opcional): La branch que se supervisará para detectar pushes. Si no especificas una branch, el flujo de trabajo se activa cuando se realizan pushes a la branch predeterminada del repositorio.
|
|
|
|
Un flujo de trabajo puede supervisar pushes en varios repositorios o branches.
|
|
|
|
```yaml
|
|
on:
|
|
push:
|
|
- repo: your-org/your-product
|
|
- repo: your-org/another-repo
|
|
branch: release
|
|
```
|
|
|
|
<div id="context-repositories">
|
|
### Repositorios de contexto
|
|
</div>
|
|
|
|
Usa `context` para conceder al agente acceso de lectura a repositorios adicionales cuando se ejecuta el flujo de trabajo. Esto es útil cuando tu prompt requiere revisar código o contenido fuera de tu repositorio de documentación.
|
|
|
|
```yaml
|
|
context:
|
|
- repo: your-org/your-product
|
|
- repo: your-org/design-system
|
|
```
|
|
|
|
<div id="auto-merge-changes">
|
|
### Combinación automática de cambios
|
|
</div>
|
|
|
|
De forma predeterminada, el agente abre una solicitud de extracción por cada ejecución del flujo de trabajo para que puedas revisar los cambios antes de que se publiquen. Establece `automerge: true` para fusionar automáticamente la solicitud de extracción sin necesidad de aprobación manual. Esto te proporciona un registro de los cambios en el historial de solicitudes de extracción de tu repositorio, a la vez que automatiza el paso de fusión.
|
|
|
|
```yaml
|
|
automerge: true
|
|
```
|
|
|
|
<div id="slack-notifications">
|
|
### Notificaciones de Slack
|
|
</div>
|
|
|
|
Envía mensajes de Slack cuando un flujo de trabajo finalice o falle. Las notificaciones incluyen el estado del flujo de trabajo, un enlace a la solicitud de extracción y un resumen de los cambios.
|
|
|
|
<Note>
|
|
Las notificaciones de Slack requieren la aplicación Mintlify Slack en el espacio de trabajo de Slack de tu organización. Instala la aplicación de Slack desde tu [dashboard](https://dashboard.mintlify.com/products/agent).
|
|
</Note>
|
|
|
|
<div id="configure-slack-notifications-in-the-dashboard">
|
|
#### Configurar notificaciones de Slack en el dashboard
|
|
</div>
|
|
|
|
Al crear o editar un flujo de trabajo en el dashboard, puedes habilitar las notificaciones de Slack en el interruptor **Notify on completion**:
|
|
|
|
1. Si aún no has conectado Slack, haz clic en **Install slack app**.
|
|
2. Haz clic en el interruptor **Notify on completion**.
|
|
3. Busca y selecciona los canales a los que deseas notificar.
|
|
4. Guarda tu flujo de trabajo.
|
|
|
|
<div id="configure-slack-notifications-in-workflow-files">
|
|
#### Configurar notificaciones de Slack en archivos de flujo de trabajo
|
|
</div>
|
|
|
|
Usa el campo `notify` para configurar las notificaciones de Slack en un archivo de flujo de trabajo:
|
|
|
|
```yaml
|
|
notify:
|
|
slack:
|
|
channels:
|
|
- documentation
|
|
- dev-updates
|
|
users:
|
|
- alice
|
|
- bob
|
|
```
|
|
|
|
Puedes especificar los destinos de las notificaciones por nombre o por ID:
|
|
|
|
| Campo | Descripción |
|
|
| ------------- | --------------------------------------------------------------------------------------------- |
|
|
| `channels` | Nombres de canales a los que notificar (con o sin el prefijo `#`). |
|
|
| `channel_ids` | ID de los canales a los que notificar. |
|
|
| `users` | Nombres de usuario, nombres para mostrar o nombres reales a los que enviar mensajes directos. |
|
|
| `user_ids` | ID de usuario de Slack a los que enviar mensajes directos. |
|
|
|
|
<div id="prompts">
|
|
## Prompts
|
|
</div>
|
|
|
|
Los prompts eficaces se centran en una sola tarea y buscan un resultado concreto. Los flujos de trabajo siempre presentan cierta variabilidad debido a la naturaleza no determinista de los agentes, pero puedes mejorar la consistencia de sus resultados siguiendo estas buenas prácticas:
|
|
|
|
* Describe el resultado que quieres que el agente consiga.
|
|
* Incluye criterios de éxito.
|
|
* Especifica el contexto que quieres que el agente utilice.
|
|
* Divide las tareas complejas en pasos o en varios flujos de trabajo.
|
|
|
|
<div id="agent-environment">
|
|
### Entorno del agente
|
|
</div>
|
|
|
|
El agente se ejecuta en un sandbox aislado con acceso limitado a Internet. Al redactar prompts, solo haz referencia a las herramientas disponibles para el agente.
|
|
|
|
* Utilidades estándar de shell (`grep`, `sed`, `awk`, `curl` y otras)
|
|
* `git` y la CLI de GitHub (`gh`)
|
|
* La CLI de Mintlify (`mint`)
|
|
* Node.js y Bun
|
|
|
|
El agente no puede instalar paquetes ni herramientas adicionales en tiempo de ejecución. No se puede acceder a los repositorios de paquetes ni a otros servicios externos desde el sandbox.
|
|
|
|
Los prompts que indican al agente que ejecute herramientas no disponibles pueden producir resultados inesperados o fallar.
|
|
|
|
<div id="example-workflows">
|
|
## Ejemplos de flujos de trabajo
|
|
</div>
|
|
|
|
<div id="draft-documentation-for-new-features">
|
|
### Borrador de documentación para nuevas funcionalidades
|
|
</div>
|
|
|
|
<Tip>
|
|
Si utilizas sugerencias del agente en tu dashboard, este flujo de trabajo replica ese comportamiento.
|
|
|
|
Añade este flujo de trabajo, con las modificaciones que necesites para tu proyecto, para redactar automáticamente la documentación a medida que añades nuevas funcionalidades a tu producto.
|
|
</Tip>
|
|
|
|
Se ejecuta cuando envías cambios al repositorio de tu producto para identificar las actualizaciones de documentación necesarias para cualquier nueva funcionalidad o API.
|
|
|
|
```markdown .mintlify/workflows/draft-feature-docs.md
|
|
---
|
|
name: Borrador de documentación para nuevas funciones
|
|
on:
|
|
push:
|
|
- repo: your-org/your-product
|
|
branch: main
|
|
context:
|
|
- repo: your-org/your-docs
|
|
automerge: false
|
|
---
|
|
|
|
Revisa el diff del último PR fusionado en `your-org/your-product`. Identifica cualquier nueva función, API u otros cambios que requieran documentación.
|
|
|
|
Para cada nueva incorporación, redacta actualizaciones de documentación que expliquen qué hace, cuándo usarla y cómo configurarla. Incluye un ejemplo de código donde sea relevante.
|
|
|
|
Criterios de éxito: Tras leer la documentación nueva o actualizada, los usuarios comprenden qué es la función, si se aplica a las tareas que realizan y cómo usarla.
|
|
|
|
## Importante
|
|
|
|
- Documenta solo los cambios que afecten a los usuarios finales. Omite refactorizaciones internas o actualizaciones de dependencias.
|
|
- Mantén el estilo y la estructura de las páginas de documentación existentes.
|
|
```
|
|
|
|
<div id="style-audit">
|
|
### Auditoría de estilo
|
|
</div>
|
|
|
|
Se ejecuta cuando se envían cambios al repositorio de documentación para detectar violaciones de la guía de estilo antes de que se acumulen. Este flujo de trabajo de ejemplo corrige automáticamente las violaciones de la guía de estilo y enumera en el cuerpo de la solicitud de extracción aquellas que requieren criterio humano.
|
|
|
|
```markdown .mintlify/workflows/style-audit.md
|
|
---
|
|
name: Style audit
|
|
on:
|
|
push:
|
|
- repo: your-org/your-docs
|
|
branch: main
|
|
automerge: false
|
|
---
|
|
|
|
Review all MDX files changed in the last merged PR against the style guide at `path/to/style-guide`.
|
|
|
|
Open a pull request to resolve any style violations that can be fixed automatically. For any edits that require judgment or nuance, note them in the PR body with the specific lines, rule violations, and suggested fixes.
|
|
|
|
Success criteria:
|
|
- All style violations have a proposed resolution.
|
|
- No new style violations are introduced.
|
|
|
|
## Important
|
|
|
|
- Do not change content meaning. Only correct style violations.
|
|
- Skip any files in language subdirectories (`es/`, `fr/`, `zh/`).
|
|
```
|
|
|
|
<div id="update-api-reference">
|
|
### Actualizar la referencia de la API
|
|
</div>
|
|
|
|
Se ejecuta cuando se envían cambios al repositorio de tu producto para mantener las páginas de referencia de la API sincronizadas con el código de tu producto. Cuando cambian los endpoints o los parámetros, este flujo de trabajo actualiza el contenido correspondiente en tu documentación.
|
|
|
|
```markdown .mintlify/workflows/update-api-reference.md
|
|
---
|
|
name: Update API reference
|
|
on:
|
|
push:
|
|
- repo: your-org/your-product
|
|
branch: main
|
|
context:
|
|
- repo: your-org/your-docs
|
|
automerge: false
|
|
---
|
|
|
|
Review the diff from the last merged PR in `your-org/your-product` for changes to API endpoints, parameters, response shapes, or error codes.
|
|
|
|
Update the corresponding API specifications or pages in the docs to reflect the changes. Include updated parameter descriptions, type information, and examples where affected.
|
|
|
|
Success criteria: All API specifications and pages are up to date with the changes in the product repository.
|
|
|
|
## Important
|
|
|
|
- If a parameter or endpoint was removed, mark it as deprecated rather than deleting it unless the code explicitly removes it with no deprecation period.
|
|
- If no API changes were introduced, do nothing.
|
|
```
|
|
|
|
<div id="track-translation-lag">
|
|
### Hacer seguimiento del desfase de traducción
|
|
</div>
|
|
|
|
Ejecuta este flujo de trabajo semanalmente para comparar los archivos originales en inglés con sus traducciones e identificar las páginas que se han quedado atrás.
|
|
|
|
Para usar este flujo de trabajo, actualiza los subdirectorios de idioma de ejemplo (`es/`, `fr/`, `zh/`) a tus subdirectorios de idioma reales.
|
|
|
|
```markdown .mintlify/workflows/translation-lag.md
|
|
---
|
|
name: Track translation lag
|
|
on:
|
|
cron: "0 9 * * 3"
|
|
---
|
|
|
|
Compare the English MDX files in the repo against their counterparts in the `es/`, `fr/`, and `zh/` subdirectories. Use git history to identify English files updated more recently than their translations.
|
|
|
|
Open a pull request that lists pages that are out of sync, organized by language. For each page, include the date of the last English update and a brief summary of what changed so translators have context on what to update.
|
|
|
|
Success criteria: Any discrepancies between the English and translated files are identified and listed in the pull request.
|
|
|
|
## Important
|
|
|
|
- If a translated file does not exist, flag it as missing rather than out of sync.
|
|
- Group findings by language, then by how far out of date they are (most stale first).
|
|
```
|
|
|
|
<div id="seo-and-metadata-audit">
|
|
### Auditoría de SEO y metadata
|
|
</div>
|
|
|
|
Se ejecuta semanalmente para comprobar si hay páginas con metadata faltante o deficiente y abrir una solicitud de extracción con mejoras. Este flujo de trabajo de ejemplo comprueba si falta el frontmatter `description`. Edita el flujo de trabajo para comprobar otros problemas de metadata o contenido que consideres prioritarios para tu documentación.
|
|
|
|
```markdown .mintlify/workflows/seo-audit.md
|
|
---
|
|
name: Auditoría de SEO y metadata
|
|
on:
|
|
cron: "0 9 * * 1"
|
|
automerge: false
|
|
---
|
|
|
|
Audita todos los archivos MDX en la documentación para verificar la calidad del SEO y la metadata. Comprueba lo siguiente:
|
|
|
|
- frontmatter de `description` ausente o vacío
|
|
- Descripciones demasiado cortas (menos de 50 caracteres) o demasiado largas (más de 160 caracteres)
|
|
|
|
Abre una solicitud de extracción con mejoras para cualquier problema encontrado. Escribe descripciones que resuman con precisión el contenido de la página en lenguaje sencillo.
|
|
|
|
Criterios de éxito: Todas las páginas tienen descripciones actualizadas que resumen con precisión el contenido de la página en lenguaje sencillo.
|
|
|
|
## Importante
|
|
|
|
- Solo actualiza el frontmatter. No modifiques el contenido de la página.
|
|
- Si todas las páginas tienen metadata completa y razonable, no hagas nada.
|
|
```
|
|
|
|
<div id="changelog-with-notifications">
|
|
### Registro de cambios con notificaciones
|
|
</div>
|
|
|
|
Se ejecuta semanalmente para generar un registro de cambios y notificar a tu equipo en Slack cuando se complete el flujo de trabajo. Este ejemplo muestra cómo combinar flujos de trabajo programados con notificaciones en Slack.
|
|
|
|
```markdown .mintlify/workflows/changelog-with-notify.md
|
|
---
|
|
name: Weekly changelog
|
|
on:
|
|
cron: "0 9 * * 1"
|
|
context:
|
|
- repo: your-org/your-product
|
|
automerge: false
|
|
notify:
|
|
slack:
|
|
channels:
|
|
- documentation
|
|
users:
|
|
- tech-writer
|
|
---
|
|
|
|
Review all merged PRs in `your-org/your-product` from the past week. Draft a changelog entry summarizing new features, bug fixes, and breaking changes.
|
|
|
|
Success criteria: The changelog accurately reflects the week's changes and is ready for review.
|
|
```
|