Recettes

Bases

Générateur de notes de version

Générez des notes de version formatées à partir des tags git avec les détails des PR, les issues liées et les crédits des contributeurs.

Prompt

Utilisez le skill Dagu pour créer un workflow de génération de notes de version. Consultez les références de schéma, d'agent de codage et de pièges connus pour la syntaxe correcte. Demandez à l'utilisateur : - Quel dépôt ? (par défaut : le dépôt courant, détecté via gh repo view --json nameWithOwner) - Quels tags comparer ? (par défaut : dernier tag vs tag précédent, détectés automatiquement) Prérequis : gh CLI authentifié (gh auth login), au moins un CLI d'agent de codage IA installé. Le workflow doit : 1. Résoudre les deux tags git à comparer. Si non spécifiés, détecter automatiquement les tags les plus récents via l'API GitHub. Les produire en JSON afin que les étapes suivantes puissent référencer les champs individuels via un chemin JSON (par ex. ${TAGS.to}). 2. Extraire tous les numéros de PR des commits entre les deux tags en utilisant l'API de comparaison GitHub avec --jq (NE PAS utiliser jq CLI). Produire un numéro de PR par ligne. 3. Pour chaque PR, récupérer les détails via gh api graphql : numéro, titre, login de l'auteur, résumé du corps (environ 300 premiers caractères), labels et closingIssuesReferences (numéro, titre, login de l'auteur). Construire un tableau JSON à partir des résultats. - CRITIQUE : Lors de l'itération sur la sortie d'une étape précédente, NE PAS utiliser "for X in $VAR" — Dagu capture la sortie multiligne dans une seule variable chaîne, donc le découpage par mots ne fonctionne pas. À la place, lire le fichier stdout de l'étape précédente ligne par ligne : `while IFS= read -r line; do ... done < "${prev_step.stdout}"`. Supprimer les caractères non numériques de chaque ligne avec `tr -dc '0-9'` avant de passer à la requête GraphQL. - La chaîne de requête GraphQL de gh utilise des noms de variables préfixés par $ ($owner, $name, $num). Ceux-ci sont sûrs dans les scripts Dagu car Dagu n'étend que les variables ${entre accolades} et les patterns $nomvariable qui correspondent à des variables Dagu définies — les $noms non définis sont préservés tels quels pour le shell. Cependant, passer les variables entières à -F sans guillemets (par ex. -F num=$NUM et non -F num="$NUM") pour que gh les envoie comme entiers, pas comme chaînes. 4. Utiliser une seule étape d'agent IA (détecter automatiquement quel CLI est disponible, utiliser le modèle le moins cher) pour catégoriser chaque PR et formater les notes de version finales. Lui fournir le JSON des détails des PR, le modèle de changelog et le contexte (dépôt, tags, date, propriétaire du dépôt à exclure des contributeurs). 5. Sauvegarder la sortie dans DAG_DOCS_DIR. 6. Utiliser defaults.retry_policy et timeout_sec: 300 sur l'étape d'agent IA. Le modèle de format de changelog DOIT être défini comme variable d'environnement de niveau supérieur en utilisant le multiline YAML (|) afin que les utilisateurs puissent personnaliser la sortie sans modifier la logique des étapes.

Premiers pas

1. Installer Dagu

curl -L https://raw.githubusercontent.com/dagu-org/dagu/main/scripts/installer.sh | bash

2. Installer le skill Dagu

claude mcp add dagu -- dagu mcp

3. Démarrer Dagu

dagu start-all

Pour plus de détails, consultez le guide de démarrage rapide

Recettes associées