pr-triage

安装量: 280
排名: #3211

安装

npx skills add https://github.com/xtone/ai_development_tools --skill pr-triage

PRトリアージ PRの変更内容を分析し、後続のコードレビューフェーズに必要な情報を構造化して出力するスキルです。 軽量モデル(Haiku)での実行を想定しており、CI環境でのコスト最適化に寄与します。 手順 gh pr view --json title,body,headRefName,baseRefName,changedFiles でPR情報を取得 gh pr diff --name-only で変更ファイル一覧を取得 差分の取得( changedFilesが15以上の場合、手順3はスキップしてファイル名とPR説明のみで分析する ): changedFilesが15未満の場合のみ gh pr diff でコード差分を取得 表層チェックが必要なファイル(.ts, .js, .tsx, .jsx)が多い場合は個別に gh pr diff -- で取得 .pr-review-state.json が存在するか確認する(前回レビュー状態) 以下の分析を行う: 変更ファイルのカテゴリ分類(added/modified/deleted) 使用言語・フレームワークの検出 変更カテゴリの判定(認可変更、DB変更、RLS変更、API変更、テスト変更、設定変更、スキル変更) 必要なリファレンスファイルの判定 Minor/Suggestionレベルの表層的問題の検出(インクリメンタルモード時は変更ファイルのみ) 差分の要約(200文字以内) レビュー時に注目すべきポイント 分析結果を .pr-triage.json ファイルに出力する インクリメンタルモード(.pr-review-state.json が存在する場合) 前回のレビュー状態を活用してチェック範囲を最適化する: .pr-review-state.json の last_reviewed_commit を取得する git diff ..HEAD --name-only で前回レビュー以降に変更されたファイルを特定する 変更のないファイル の surface_issues は前回の状態からそのまま引き継ぐ( "carried_over": true を付与)。再チェックしない。 変更があったファイル のみ表層チェックを実行する 前回の surface_issues と review_comments のうち、該当箇所が修正されたものを resolved_issues に含める 出力の .pr-triage.json に "incremental": true 、 "base_commit" 、 "changed_since_last_review" 、 "unchanged_since_last_review" 、 "resolved_issues" フィールドを追加する resolved_issues のフォーマット: { "comment_id" : 12345678 , "file" : "<ファイルパス>" , "line" : 42 , "issue" : "<元の問題の説明>" , "resolution" : "fixed" } .pr-review-state.json が存在しない場合は、通常のフルトリアージを実行する。 .pr-review-state.json が不正な形式(JSONパースエラー等)の場合は、警告を出力してフルトリアージを実行する。破損した状態ファイルに基づいてインクリメンタルモードを実行してはならない。 必要なリファレンスの判定基準 以下の条件に該当する場合のみ、対応するリファレンスを required_references に含める: TypeScript/JavaScript ファイルの変更あり → typescript-best-practices.md 認証・認可に関わるコード変更あり(auth, permission, role, session, token等のキーワード) → authorization-review-general.md PostgreSQL RLS に関わる変更あり(RLS, row level security, policy等のキーワード) → authorization-review-postgres-rls.md SKILL.md ファイルの変更あり → skill-review.md CI環境でのGitHub投稿が必要 → github-pr-review-actions.md (常に含める) 表層チェック項目(Minor/Suggestion) 差分を確認し、以下の問題を検出する(該当するもののみ): any 型の使用(TypeScript) var キーワードの使用(TypeScript/JavaScript) 空のインターフェイス定義 マジックナンバーの使用 命名規則違反(camelCase/PascalCase/UPPER_CASE) テストの未追加(新規ファイルがあるのにテストファイルがない) 出力フォーマット .pr-triage.json に以下のJSON構造で出力すること: { "pr_number" : 123 , "incremental" : false , "base_commit" : "<前回レビュー時のコミットSHA(インクリメンタル時のみ)>" , "summary" : "<変更の概要(1-2文)>" , "files" : { "added" : [ "<追加ファイルパス>" ] , "modified" : [ "<変更ファイルパス>" ] , "deleted" : [ "<削除ファイルパス>" ] } , "changed_since_last_review" : [ "<前回から変更があったファイル(インクリメンタル時のみ)>" ] , "unchanged_since_last_review" : [ "<前回から変更がないファイル(インクリメンタル時のみ)>" ] , "languages" : [ "<検出された言語>" ] , "frameworks" : [ "<検出されたフレームワーク>" ] , "change_categories" : { "has_auth_changes" : false , "has_db_changes" : false , "has_rls_changes" : false , "has_api_changes" : false , "has_test_changes" : false , "has_config_changes" : true , "has_skill_changes" : true } , "required_references" : [ "<必要なリファレンスファイル名>" ] , "surface_issues" : [ { "severity" : "Minor|Suggestion" , "file" : "<ファイルパス>" , "line" : 15 , "issue" : "<問題の説明>" , "suggestion" : "<改善案>" , "carried_over" : true } ] , "resolved_issues" : [ { "comment_id" : 12345678 , "file" : "<ファイルパス>" , "line" : 42 , "issue" : "<元の問題の説明>" , "resolution" : "fixed" } ] , "diff_summary" : "<差分の要約(200文字以内)>" , "estimated_complexity" : "low|medium|high" , "focus_areas" : [ "<レビュー時の注目ポイント>" ] } 重要: テキスト出力は最小限にし、 .pr-triage.json の出力に集中してください。

返回排行榜