---
name: analyze-changelog
description: GitHub Actions で作成された Claude Code CHANGELOG 更新 Issue をインタラクティブに分析し、.claude ディレクトリへの具体的な改善提案を生成（シンプル版・自動実行対応）。使い方：/analyze-changelog <issue-number>
license: Complete terms in LICENSE.txt
---

# Analyze Claude Code CHANGELOG Issue

GitHub Actionsで作成されたClaude Code CHANGELOG更新Issueをインタラクティブに分析し、
.claudeディレクトリへの具体的な改善提案を生成します。

## 使い方

```bash
/analyze-changelog <issue-number>
```

## 引数

- `<issue-number>`: 分析対象のGitHub Issue番号（必須）

## 実行フロー

### Step 1: 前提条件チェック

以下のコマンドが利用可能か確認:

```bash
gh --version
```

利用できない場合、エラーメッセージを表示して終了:

```
❌ GitHub CLIがインストールされていません
https://cli.github.com/ からインストールしてください
```

また、環境変数 `ANTHROPIC_API_KEY` が設定されているか確認:

```bash
echo $ANTHROPIC_API_KEY
```

未設定の場合、エラーメッセージを表示して終了:

```
❌ ANTHROPIC_API_KEY が設定されていません
Claude APIを使用するには環境変数を設定してください
```

### Step 2: Issue読み込み

GitHub CLIでIssueを取得:

```bash
gh issue view <issue-number> --json title,body,number,createdAt
```

エラーハンドリング:
- Issueが見つからない場合: `❌ Issue #<number> が見つかりません` と報告して終了
- その他のエラー: エラー内容を表示して終了

### Step 3: Issue内容の解析

Issue本文から以下の情報を抽出:

1. **検出バージョン**: `**検出バージョン:** X.Y.Z` の行から取得
2. **変更差分**: ` ```diff ` ブロック内のテキスト
3. **日本語翻訳**: `### 🇯🇵 日本語翻訳` セクションの内容
4. **.claudeディレクトリ現状**: `### 📂 .claude ディレクトリ現状` セクション

抽出に失敗した場合:

```
⚠️ Issue形式が想定と異なります
このSkillは GitHub Actions で作成された CHANGELOG 更新 Issue にのみ対応しています
```

### Step 4: 最新の.claudeディレクトリ確認

現在の構成を確認（Issue作成時点から変更されている可能性があるため）:

```bash
cat .claude/settings.json 2>/dev/null || echo "{}"
find .claude/agents -name "*.md" 2>/dev/null | wc -l
find .claude/rules -name "*.md" 2>/dev/null | wc -l
find .claude/skills -name "*.md" 2>/dev/null | wc -l
find .claude/commands/kiro -name "*.md" 2>/dev/null | wc -l
```

ユーザーに現在の構成を表示:

```
📂 現在の.claude構成:
  - Agents: X個
  - Rules: X個
  - Skills: X個
  - Commands: X個
```

Issue作成時点との差異があれば通知:

```
ℹ️ Issue作成後に.claude構成が変更されています
   最新の構成を使用して分析を実行します
```

### Step 5: 分析範囲の確認

AskUserQuestionツールを使用してユーザーに質問:

```json
{
  "questions": [
    {
      "question": "どの領域の分析を希望しますか？",
      "header": "分析範囲",
      "multiSelect": false,
      "options": [
        {
          "label": "既存の.claude設定の改善提案（推奨）",
          "description": "現在のagents, rules, skills, commands, settings.jsonへの改善提案を生成"
        },
        {
          "label": "新機能の導入提案",
          "description": "CHANGELOGで追加された新機能の活用方法を提案"
        },
        {
          "label": "両方を分析",
          "description": "既存設定の改善と新機能導入の両方を提案"
        }
      ]
    }
  ]
}
```

ユーザーの選択に応じて `analysisScope` を決定:
- 選択肢1: "existing"
- 選択肢2: "new_features"
- 選択肢3: "both"

### Step 6: リポジトリコンテキストの構築

package.jsonから技術スタックを抽出:

```bash
cat package.json
```

以下を特定:
- フレームワーク（Next.js, React等）
- 主要な依存関係（AWS SDK, Amplify等）
- テスト・開発ツール

`.claude/settings.json` から有効プラグインを取得

### Step 7: Claude APIで詳細分析

以下のプロンプトでClaude APIを呼び出し（Anthropic SDK使用、モデル: `claude-sonnet-4-5-20250929`、最大トークン: 8000）:

```
あなたはClaude Code設定の専門家です。以下の情報に基づいて、
.claudeディレクトリへの改善提案を生成してください。

## CHANGELOG更新内容
バージョン: <version>

変更差分:
<diff>

日本語翻訳:
<translation>

## このリポジトリについて
- プロジェクトタイプ: <project-type>
- フレームワーク: <framework>
- 主要依存関係: <dependencies>
- 有効プラグイン: <enabled-plugins>

## 現在の.claude構成
<directory-snapshot>

## 分析対象
<analysis-scope>

## 出力フォーマット

### 🔧 既存設定への改善提案

各カテゴリ（agents, rules, skills, commands, settings）について:

#### [カテゴリ名]

**ファイル**: [対象ファイル名]
**理由**: [なぜこの変更が必要か - CHANGELOGの具体的な内容を引用]
**現在の設定**:
```
[現在の該当部分]
```

**推奨変更**:
```
[具体的なコード例]
```

**期待効果**: [この変更による利点]

---

### 🆕 新機能導入提案

**機能名**: [CHANGELOG記載の新機能]
**概要**: [機能の説明]
**このリポジトリでの活用方法**: [具体的な使用例]
**導入手順**:
1. [ステップ1]
2. [ステップ2]
...

**期待効果**: [この機能の利点]

---

### 📋 優先度順の推奨事項

1. [HIGH] [対象ファイル]: [変更内容の要約]
2. [MEDIUM] [対象ファイル]: [変更内容の要約]
3. [LOW] [対象ファイル]: [変更内容の要約]

---

## 除外ルール

以下には言及しないでください:
- Claude Code内部の実装変更（UI、エディタ統合等）
- このリポジトリで使用していない技術
- 具体的なアクションを伴わない情報の羅列
```

**エラーハンドリング**:
- ネットワークエラー: リトライロジック（最大3回、指数バックオフ）
- APIエラー: エラー内容を表示して終了

### Step 8: 分析結果の表示と確認

Claude APIからの応答を表示:

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Claude Code v<version> 分析結果
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

<analysis-result>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

AskUserQuestionツールでフィードバックを収集:

```json
{
  "questions": [
    {
      "question": "この分析結果は有用ですか？",
      "header": "フィードバック",
      "multiSelect": false,
      "options": [
        {
          "label": "はい、有用です",
          "description": "分析結果をIssueコメントとして投稿できます"
        },
        {
          "label": "一部を修正したい",
          "description": "不要な部分を指定して再分析します"
        },
        {
          "label": "いいえ、やり直したい",
          "description": "分析範囲を変更して再実行します"
        }
      ]
    }
  ]
}
```

- 「はい」: Step 9へ進む
- 「一部を修正したい」: どの部分が不要か質問し、除外して再分析（Step 7に戻る、最大2回まで）
- 「いいえ」: Step 5に戻る（最大1回まで）

### Step 9: 結果の保存（オプション）

AskUserQuestionツールで保存方法を確認:

```json
{
  "questions": [
    {
      "question": "分析結果をどのように保存しますか？",
      "header": "保存方法",
      "multiSelect": false,
      "options": [
        {
          "label": "Issueコメントとして投稿（推奨）",
          "description": "GitHub Issue #<number> にコメントを追加します"
        },
        {
          "label": "ローカルファイルに保存",
          "description": ".claude/analysis/changelog-<version>.md に保存します"
        },
        {
          "label": "両方",
          "description": "Issueコメントとローカルファイルの両方に保存します"
        },
        {
          "label": "保存しない",
          "description": "分析結果を保存せず終了します"
        }
      ]
    }
  ]
}
```

選択に応じて処理:

**Issueコメント投稿**:

```bash
gh issue comment <issue-number> --body "<analysis-result>"
```

成功時:

```
✅ 分析結果をIssue #<number> にコメントしました
   URL: <comment-url>
```

**ローカルファイル保存**:

```bash
mkdir -p .claude/analysis
cat > .claude/analysis/changelog-<version>.md <<EOF
<analysis-result>
EOF
```

成功時:

```
✅ 分析結果を保存しました
   ファイル: .claude/analysis/changelog-<version>.md
```

### Step 10: 完了報告

```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 分析完了
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Issue: #<number>
検出バージョン: <version>
分析範囲: <scope>
提案数: <count>

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

## 参考資料

### GitHub CLI使用例

```bash
# Issue取得
gh issue view 123 --json title,body --jq '.body'

# Issueコメント追加
gh issue comment 123 --body "分析結果..."
```

### 既存実装の参考ファイル

- `.github/scripts/shared/claude-directory-utils.ts`: リポジトリコンテキスト構築ロジック
- `.claude/skills/check-latest-log.md`: Skillの実装パターン
- `.claude/skills/typescript-quality-check.md`: 段階的実行フローの参考

## 注意事項

- このSkillは**インタラクティブ**に実行されるため、自動化には適していません
- ユーザーがClaude Codeを操作できる環境で実行する必要があります
- 環境変数 `ANTHROPIC_API_KEY` が設定されている必要があります
- GitHub CLIがインストールされている必要があります
- 分析結果の品質は、提供されたCHANGELOG差分とリポジトリ情報に依存します
