レシピ

基本

リリースノート生成

gitタグからPR詳細、関連Issue、コントリビュータークレジット付きのフォーマット済みリリースノートを生成します。

プロンプト

Daguスキルを使用して、リリースノート生成ワークフローを作成してください。正しい構文については、スキーマ、コーディングエージェント、注意点のリファレンスを参照してください。 ユーザーに確認してください: - どのリポジトリですか?(デフォルト:現在のリポジトリ、gh repo view --json nameWithOwnerで検出) - どのタグを比較しますか?(デフォルト:最新タグと前のタグ、自動検出) 前提条件:gh CLIが認証済み(gh auth login)、少なくとも1つのAIコーディングエージェントCLIがインストール済み。 ワークフローの内容: 1. 比較する2つのgitタグを解決。指定されていない場合、GitHub APIを使用して最新タグと前のタグを自動検出。下流のステップがJSONパスで個別フィールドを参照できるよう(例:${TAGS.to})、JSON形式で出力。 2. GitHub compare APIと--jqを使用して、2つのタグ間のコミットからすべてのPR番号を抽出(jq CLIは使用しないでください)。1行に1つのPR番号を出力。 3. 各PRについて、gh api graphqlで詳細を取得:番号、タイトル、作成者ログイン、本文要約(最初の約300文字)、ラベル、closingIssuesReferences(番号、タイトル、作成者ログイン)。結果からJSON配列を構築。 - 重要:前のステップの出力を反復処理する際、"for X in $VAR"を使用しないでください。Daguはマルチライン出力を単一の文字列変数にキャプチャするため、ワード分割が機能しません。代わりに、前のステップのstdoutファイルを1行ずつ読み取ってください:`while IFS= read -r line; do ... done < "${prev_step.stdout}"`。各行をGraphQLクエリに渡す前に`tr -dc '0-9'`で非数値文字を除去してください。 - gh GraphQLクエリ文字列は$プレフィックス変数名($owner、$name、$num)を使用します。Daguスクリプトでは安全です。Daguは${braced}変数と定義済みDagu変数に一致するbare $varnameパターンのみを展開し、未定義のbare $namesはシェル用にそのまま保持されます。ただし、整数変数は-Fにクォートなしで渡してください(例:-F num=$NUM、-F num="$NUM"ではなく)。ghが文字列ではなく整数として送信します。 4. 単一のAIエージェントステップ(利用可能なCLIを自動検出、最安モデルを使用)で各PRの分類と最終リリースノートのフォーマットの両方を実行。PR詳細JSON、変更履歴テンプレート、コンテキスト(リポジトリ、タグ、日付、コントリビューターから除外するリポジトリオーナー)を入力。 5. 出力をDAG_DOCS_DIRに保存。 6. AIエージェントステップにdefaults.retry_policyとtimeout_sec: 300を使用。 変更履歴フォーマットテンプレートは、ステップロジックを編集せずに出力をカスタマイズできるよう、YAMLマルチライン(|)を使用してトップレベルのenv変数として定義する必要があります。

はじめに

1. Daguをインストール

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

2. Daguスキルをインストール

claude mcp add dagu -- dagu mcp

3. Daguを起動

dagu start-all

詳細については、 クイックスタートガイド

関連レシピ