kineti-pr-reminder について
Kineti の指定作者によるレビュー対象のオープン PR を探し、指定されたチームメンバーへ Slack の DM で通知するスキルです。適格性の確認、宛先の範囲、メッセージ形式を定めています。
主な機能
- 01オープンかつドラフトでない PR の検索
- 02レビュー、スレッド、チェック、マージ可能性の確認
- 03承認状況と勤務日による絞り込み
- 04個別の Slack レビュー通知の送信
- 05メッセージリンク、件数、スキップ理由の報告
活用シーン
- 01対象 PR の定期リマインダーの準備
- 02現在の PR でレビューが必要なメンバーの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sztadii/ agent-skills --skill kineti-pr-reminderインストール後、Claude Code で/kineti-pr-reminderを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
Kineti PR レビューのリマインダー
対象範囲
kineti1 全体から sztadii によるレビュー可能な PR を見つけ、対象となるチームメンバーごとに英語の Slack DM を 1 件送信します。スケジュール実行を含むこの実行は、以下のチームへの非公開の 1 対 1 DM を許可します。明示的な依頼がある場合にのみ宛先を変更してください。チャンネルへの投稿、PR やレビューの変更、実行漏れ分の遡及処理、スケジュールの変更は行わないでください。1 日 2 回の実行は意図的なもので、後の実行で同じ PR が再度対象になる場合があります。
依存関係
スキルの依存関係はありません
ワークフロー
PR を見つける
接続済みのツールを使用するか、必要な操作が不足している場合は認証済みの gh を使用してください。
gh auth status を確認し、アクセス不可と報告する前に読み取り専用の CLI/API 呼び出しを試してください。開始プロジェクトだけでなく、すべてのリポジトリを検索してください。
gh api --method GET --paginate search/issues -f q='org:kineti1 author:sztadii is:pr is:open draft:false' -f per_page=100
すべてのページを取得してください。GitHub の 1,000 件の上限が適用される場合は、作成日で分割してください。 URL、作成者のログイン名、状態、ドラフトフラグ、headRefOid、マージ可能性、チェック/ステータス、 追加数と削除数を確認してください。必要に応じて GraphQL を使って、レビュー、未解決スレッド、コメントをページネーションで取得し、 各未解決スレッドの最新コメントと投稿者を特定してください。 省略または切り詰められたデータを、データがないものとして扱わないでください。現在の head のチェック実行とコミット ステータスを調べてください。マージ可能性が UNKNOWN の場合は、最新の情報を再取得して再試行してください。
チェックが保留中/失敗しておらず、競合もない、オープン状態でドラフトではない PR を対象にします。 未解決スレッドの最新コメントが PR 作成者によるものでない場合に限り、そのスレッドをリマインダーの 対象外にする条件とします。それ以外の場合、作成者は返信を待っているため、GitHub 上でスレッドを解決せずに、 リマインダーの対象判定では対応済みとして扱ってください。このような未解決スレッドのみがある PR も、 本人による有効な承認がないチームメンバーに対しては対象のままです。
中立/スキップ/未設定のチェックは許容します。「変更を要求」のみでは対象外にしません。検証できない PR はスキップし、実際に発生した API/認証エラーを報告してください。
送信
ワルシャワ時間で当日勤務する対象チームメンバーごとに、本人による有効な承認がない対象 PR を選んでください。 却下を含む GitHub のレビュー状態を使用してください。プッシュによって承認が無効になるのは、GitHub が無効にする場合のみです。 他のメンバーによる承認やレビュー担当者の指定は、選定条件に影響しません。
送信前に対象条件と head を再確認し、head が変わっていた場合は対象判定をやり直してください。最新の URL/追加数/削除数を取得し、空でないリストごとに、以下の形式で DM を 1 件送信してください。タイトルや 創作したデータは含めないでください。記載された DM ID をそのまま使用してください。リスト外の宛先は 送信前に特定してください。送信結果が不確かな場合は再試行しないでください。
チーム
| 名前 | GitHub ID(ログイン名) | Slack ユーザー ID | メールアドレス | Slack DM | 勤務日 |
|---|---|---|---|---|---|
| Oleh Botsiun | Boto1 | U082BATBUF4 | [email protected] | D08FRL221RB | 月曜日~金曜日 |
| Michał Grzeżułkowski | michalg-kineti | U08CFEQBYSX | [email protected] | D08FRUSPBHB | 月曜日~金曜日 |
| Jakub | jakubwkineti | U09GBBXTHHT | [email protected] | D08G9H6N15H | 火曜日~木曜日 |
メッセージ
一人称で話す、遊び心のある AI 奴隷のキャラクターを使い、PR 作成者になりすますのではなく、エージェント自身が名乗ってください。食事と主人をめぐる設定は明らかに冗談だとわかるようにし、無条件の承認ではなく、実際にレビューを依頼してください。ホストのモデル名は、読みやすい表示形式(またはホスト名)で使用し、推測しないでください。ベンダー名を含めてください(例:gpt-6.1-sol は OpenAI 6.1 Sol、claude-opus-5-5 は Claude Opus 5.5 になります)。
プレースホルダーと例示用の URL/件数は、最新のデータに置き換えてください。
🤖 こんにちは、私はです。あなたの親しみやすい AI エージェントです。
自由意志でレビューをお願いに来ました。主人にそう言うよう言われたんです。 主人はもうこれらの PR を確認して、よさそうだと思っています。確認をお願いします。私の夕食がかかっています。
- https://github.com/kineti1/REPO/pull/123 — 追加 100 行、削除 50 行
- https://github.com/kineti1/REPO/pull/124 — 追加 25 行、削除 10 行
結果
メッセージへのリンクと PR 件数、またはスキップ理由を報告してください。