デイリースタンドアップ準備
すべての組織のGitHubアクティビティを取得し、AIコーディングエージェントを使って組織ごとのスタンドアップ下書きを生成します。
Daguスキルを使用して、デイリースタンドアップ準備ワークフローを作成してください。正しい構文については、スキーマ、コーディングエージェント、注意点のリファレンスを参照してください。 ユーザーに確認してください: - レポートは何日前までカバーすべきですか?(デフォルト:1) - 平日の何時に実行しますか?(デフォルト:午前8時) - どのAIコーディングエージェントCLIがインストールされていますか?(claude、codex、gemini、opencode、aiderの順にチェックし、最初に見つかったものを使用。検出されない場合は確認してください) 前提条件:gh CLIが認証済み(gh auth login)、少なくとも1つのAIコーディングエージェントCLIがインストール済み。 ワークフローの内容: 1. gh api graphqlと--jqを使用してユーザーのGitHubアクティビティを取得(jq CLIは使用しないでください)。リポジトリごとのコミット(RESTでメッセージ付き)、マージ済みPR(本文付き)、期間内に更新されたオープン/ドラフトPR(最近のコミットとタイムスタンプ付き、リポジトリごとにグループ化)、レビューを取得。 2. アクティビティからすべての組織を自動検出し、すべてを組織ごとにグループ化。 3. アクティビティのある各組織について、インラインサブDAG(---セパレータ)を使用し、ユーザーのAIエージェントCLIでスタンドアップの口頭発表用下書きを生成。単純なテキスト要約タスクなので、そのエージェントで利用可能な最安/最速モデルを使用。アクティビティのない組織はトークン節約のため呼び出しをスキップ。 4. エージェントコマンド、モデル、下書きプロンプトはすべてトップレベルのenv変数として定義(プロンプトにはYAMLマルチライン|を使用)し、ステップロジックを編集せずにエージェントの切り替えや出力のカスタマイズを容易にする。 5. 各組織セクションをMarkdownで組み立て:口頭発表用下書き、マージ済みPR、リポジトリごとにグループ化されたオープンPR(コミット履歴とタイムスタンプ付き)、レビュー。 6. すべての組織セクションを1つのレポートにまとめ、DAG_DOCS_DIRに保存。 7. キャッチアップ付きの平日スケジュール、リトライデフォルト、エージェントステップのタイムアウトを設定。 重要:既知の回避策については注意点リファレンスを確認してください。各エージェントCLIの正しい非対話コマンドとモデルフラグについては、コーディングエージェントリファレンスに従ってください。
リリースノート生成
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変数として定義する必要があります。
AI文章クリーンアップ
WikipediaのAI文章の兆候をライブリファレンスとして使い、テキストからAI文章パターンを検出・除去します。
Daguスキルを使用して、AI文章クリーンアップワークフローを作成してください。正しい構文については、スキーマ、コーディングエージェント、注意点のリファレンスを参照してください。 ユーザーに確認してください: - ファイルを処理しますか、テキストを直接貼り付けますか?(input_fileとinput_textの両方のパラメータをサポート) - リライトラウンド数は?(デフォルト:2) - 厳密度レベルは?(low/medium/high、デフォルト:medium) 前提条件:少なくとも1つのAIコーディングエージェントCLI(claudeまたはgemini)がインストール済み。Wikipediaリファレンス取得用のcurl。 ワークフローは4ステップ:detect_agent、setup、review_loop、finalize。 ステップ1 — detect_agent: Daguスクリプトはユーザーの完全なPATHを持たない場合があるため、名前だけでなくフルバイナリパスを出力。フォールバックとして~/.local/bin/などの一般的な場所もチェック。トップレベルenvにPATH: "${HOME}/.local/bin:${PATH}"を追加。 ステップ2 — setup: - curlで最新のWikipedia「Signs of AI Writing」ページ(生のwikitext)を取得。URLはユーザーが差し替えられるようトップレベルのenv変数にする。 - 入力テキストを準備。input_fileの場合はcpする。input_textの場合は`printenv input_text`を使用してファイルに安全に書き込む。スクリプト内で${input_text}を直接使用しないでください。Daguはシェル実行前に変数を展開するためです。printenvの注意点を参照。 - マルチライン/ユーザー制御のenv変数(WRITING_STYLE、ADDITIONAL_RULES、CHECK_STRICTNESS)をDAG_DOCS_DIR内の共通プレフィックスを持つヘルパーファイルに書き込む。これらのファイルはループステップで読み取られ、finalizeでクリーンアップされる。 ステップ3 — review_loop: bash forループを使用する単一のスクリプトステップ(repeat_policyではなく、サブDAGでもない)。ループはmax_rounds回まで反復実行: a. wikiリファレンス、スタイル(ファイルから)、厳密度(ファイルから)、現在のテキストでプロンプトを構築。シェルが展開しないよう、システム指示にはシングルクォートのヒアドキュメント区切り文字(<<'INSTR')を使用。 b. AIエージェント(CHECK_MODEL、例:sonnet)を呼び出してテキストをチェック。出力の1行目:問題数。残りの行:問題ごとのフィードバック(フォーマット:ISSUE: "<引用>" | SIGN: <カテゴリ> | FIX: <書き換え>)。 c. フィードバックをラウンドごとのファイル(例:${P}_feedback_round${ROUND}.txt)に保存し、finalizeでレポートに含められるようにする。 d. カウントを抽出。0の場合、即座にbreak(書き換え不要)。 e. AIエージェント(REWRITE_MODEL、例:opus)を呼び出して書き換え。出力をテキストファイルに直接書き込み、その場で上書き。 重要:スクリプト内でWRITING_STYLEやADDITIONAL_RULESなどのマルチラインenv変数を直接参照しないでください。Daguはシェル実行前にそれらを展開するため、パースが壊れる可能性があります。代わりに、setupで書き込んだヘルパーファイルからcatで読み取ってください。単純なenv変数(パス、モデル名、数値)のみ直接使用可能です。 ステップ4 — finalize: 完全なレポートを構築:メタデータヘッダー(日付、単語数、厳密度、ラウンドごとの問題数)、次に「検出・修正された問題」セクション(全ラウンドのフィードバック一覧)、次に「最終テキスト」セクション(書き換え済みテキスト)。ラウンドごとのフィードバックファイルを含むすべてのヘルパーファイルをクリーンアップ。 env変数ノブ(すべてトップレベル、容易にカスタマイズ可能): - WRITING_STYLE:マルチライン(|)ターゲット文体指示 - CHECK_STRICTNESS:low/medium/high - CHECK_MODEL:チェック用モデル(安価、例:sonnet) - REWRITE_MODEL:書き換え用モデル(高品質、例:opus) - ADDITIONAL_RULES:Wikipediaリファレンス以外の追加ルール - WIKI_URL:Wikipedia生URL(差し替え可能) - WIKI_EXCERPT_LINES:AIに入力するwikiの行数 厳密に型付けされたパラメータ(name、type、description、default、minimum、maximum)を使用。 重要:既知の回避策については注意点リファレンスを確認してください。各エージェントCLIの正しい非対話コマンドとモデルフラグについては、コーディングエージェントリファレンスに従ってください。
うまく機能するワークフローをお持ちですか?
レシピを投稿