Básicos
Generador de Notas de Versión
Genera notas de versión formateadas a partir de tags de git con detalles de PRs, issues vinculadas y créditos de contribuidores.
Usa el skill de Dagu para crear un flujo de trabajo generador de notas de versión. Consulta las referencias de schema, coding agent y pitfalls para la sintaxis correcta. Pregunta al usuario: - ¿Qué repositorio? (por defecto: el repositorio actual, detectado vía gh repo view --json nameWithOwner) - ¿Qué tags comparar? (por defecto: último tag vs tag anterior, auto-detectados) Requisitos previos: gh CLI autenticado (gh auth login), al menos un CLI de agente de codificación IA instalado. El flujo de trabajo debe: 1. Resolver los dos tags de git a comparar. Si no se especifican, auto-detectar el último y el anterior usando la API de GitHub. Generarlos como JSON para que los pasos posteriores puedan referenciar campos individuales vía JSON path (ej. ${TAGS.to}). 2. Extraer todos los números de PR de los commits entre los dos tags usando la API de comparación de GitHub con --jq (NO usar jq CLI). Generar un número de PR por línea. 3. Para cada PR, obtener detalles vía gh api graphql: número, título, login del autor, resumen del cuerpo (primeros ~300 caracteres), etiquetas y closingIssuesReferences (número, título, login del autor). Construir un array JSON con los resultados. - CRÍTICO: Al iterar sobre la salida de un paso anterior, NO usar "for X in $VAR" — Dagu captura la salida multilínea en una sola variable string, por lo que la división por palabras no funciona. En su lugar, leer el archivo stdout del paso anterior línea por línea: `while IFS= read -r line; do ... done < "${prev_step.stdout}"`. Eliminar caracteres no numéricos de cada línea con `tr -dc '0-9'` antes de pasar a la consulta GraphQL. - La cadena de consulta GraphQL de gh usa nombres de variable con prefijo $ ($owner, $name, $num). Estos son seguros en scripts de Dagu porque Dagu solo expande variables ${con llaves} y patrones bare $varname que coincidan con variables Dagu definidas — los nombres bare $undefined se preservan tal cual para el shell. Sin embargo, pasar variables enteras a -F sin comillas (ej. -F num=$NUM no -F num="$NUM") para que gh las envíe como enteros, no strings. 4. Usar un único paso de agente IA (auto-detectar qué CLI está disponible, usar el modelo más económico) para categorizar cada PR y formatear las notas de versión finales. Alimentarlo con el JSON de detalles de PRs, la plantilla de changelog y contexto (repositorio, tags, fecha, propietario del repositorio a excluir de contribuidores). 5. Guardar la salida en DAG_DOCS_DIR. 6. Usar defaults.retry_policy y timeout_sec: 300 en el paso del agente IA. La plantilla de formato del changelog DEBE definirse como una variable de entorno de nivel superior usando YAML multilínea (|) para que los usuarios puedan personalizar la salida sin editar la lógica de los pasos.
Primeros pasos
1. Instalar Dagu
curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash2. Instalar skill de Dagu
claude mcp add dagu -- dagu mcp3. Iniciar Dagu
dagu start-allPara más detalles, consulta la guía de inicio rápido
Recetas relacionadas
Preparación del Standup Diario
Obtén tu actividad de GitHub en todas las organizaciones y genera un borrador de standup hablado por organización usando un agente de IA.
Limpieza de Texto IA
Detecta y elimina patrones de escritura IA del texto usando los signos de escritura IA de Wikipedia como referencia.