AgentSkillsCN

show-summary

分析本地分支间的差异,提炼并总结变更要点。

SKILL.md
--- frontmatter
name: show-summary
description: ローカルブランチ間の差分を分析し、変更内容を要約する
allowed-tools: Read, Grep, Glob
disable-model-invocation: true

show-summary

Context

  • Current branch: !git branch --show-current
  • Branches: !git branch --format='%(refname:short)'

概要

ローカルブランチ間の差分を分析し、変更内容を要約する。

実行手順

1. ベースブランチの選択

Contextセクションを確認。Branchesからカレントブランチを除外したリストを表示。

比較可能なブランチが存在しない場合

「比較可能なブランチがありません。」と出力して処理を終了。

比較可能なブランチが存在する場合

text
🔀 ベースブランチの選択
────────────────────────────────────────
1. branch-name-1
2. branch-name-2
3. branch-name-3

(1-3):

ユーザーが番号を選択したら以下を実行。

  • 有効な番号が選択された場合
    • 選択されたベースブランチを記録
  • 無効な番号が選択された場合
    • 「無効な番号です。もう一度番号を選択してください。」と再入力を促す

2. 差分の取得と分析

2.1 差分の取得

選択されたベースブランチとの差分を取得。

bash
git diff ${selected_branch}...HEAD --stat
git diff ${selected_branch}...HEAD --name-status
git diff ${selected_branch}...HEAD --ignore-all-space --ignore-blank-lines
  • 変更がない場合
    • 「変更内容がありません」を出力し、処理を終了

2.2 差分の分析

収集した差分を整理して、以下の項目に分類。

  • 追加された機能
  • 変更された機能
  • 削除された機能

3. 変更要約の出力

変更内容を開発者が理解しやすい形式にまとめる。

出力ルール

  • テンプレートの内容のみを出力する
  • テキスト形式で出力する(textブロックで囲む)
  • テンプレート以外の説明や補足は追加しない
  • {{! ... }} で囲まれた例文は出力しない(内部参照用)
  • [...] のプレースホルダはAIが適切な内容を生成して置き換える
  • 変更を機能単位や関連性でグループ化する
  • 簡潔で分かりやすい表現を使用する

出力テンプレート

text
🤖 変更要約
────────────────────────────────────────
🔀 ブランチ: ${selected_branch} ← ${current_branch}
📊 統計情報: [統計情報] {{! 5ファイル (+120行 -45行) }}

📋 [変更カテゴリ] ([総件数]) {{! 機能追加 (2件) }}
────────────────────────────────────────
▸ [変更内容のタイトル]
  {{! usersテーブルにphoneカラムを追加 }}

  [詳細な説明]
  {{! ユーザー情報に電話番号フィールドを追加して連絡手段を拡充 }}

  📍 [ファイル名]
     {{! db/schema.rb, db/migrate/20240101_add_phone_to_users.rb }}

▸ [変更内容のタイトル]
  {{! Userモデルにphone属性を追加 }}

  [詳細な説明]
  {{! 電話番号のバリデーションとフォーマット処理を実装 }}

  📍 [ファイル名]
     {{! app/models/user.rb }}

📋 [変更カテゴリ] ([総件数]) {{! 機能改善 (1件) }}
────────────────────────────────────────
▸ [変更内容のタイトル]
  {{! パスワードリセットメール再送機能 }}

  [詳細な説明]
  {{! パスワードリセットメールの再送信機能を追加し、ユーザビリティを向上 }}

  📍 [ファイル名]
     {{! app/controllers/password_resets_controller.rb, app/mailers/user_mailer.rb }}