---
description: |
  自己改善を手動実行する。learnerエージェントを呼び出し、
  直近のタスク実行を分析してMEMORY.md更新提案を生成する。
---

learnerエージェントとして自己改善分析を実行してください。

## 対象

$ARGUMENTS

（引数なしの場合: 直近のタスク/コミットを分析）

## 実行手順

### Step 1: 分析対象の特定

1. 引数がある場合: 指定されたtask-idのノートを分析
2. 引数がない場合:
   ```bash
   # 直近の変更を取得
   git log --oneline -10
   git diff --stat HEAD~1
   ```

### Step 2: タスク実行の分析

以下の観点で分析:

#### ミス・手戻りの検出
- 同じファイルへの複数回修正
- テスト失敗後の修正パターン
- レビュー指摘後の再実装
- 設計変更（途中でのアーキテクチャ変更）

#### 効率化ポイントの検出
- 繰り返しパターン（同様の処理が複数箇所）
- スキル化候補（汎用化できる処理）
- ドキュメント不足（混乱の原因）

### Step 3: 学習ノートの作成/更新

1. `notes/{task-id}/` ディレクトリを作成（存在しない場合）
2. 以下のファイルを作成/更新:
   - `lessons.md`: 学んだこと、改善点
   - `skill-candidates.md`: スキル化候補
   - `decisions.md`: 判断ログ（存在しない場合のみ）

### Step 4: MEMORY.md更新提案の生成

以下の場合に提案を生成:

1. **同じミスを2回以上繰り返した場合**
   - パターン化できるルールとして提案

2. **新しい制約・ガイドラインが必要な場合**
   - 技術選択の成功/失敗パターン
   - アンチパターンの発見

### Step 5: 結果の表示

```markdown
## 自己改善分析結果

### 分析対象
- タスクID: {task-id}
- 変更ファイル数: N
- コミット数: M

### 検出された改善点

#### ミス・手戻り
| 種類 | 回数 | 詳細 |
|------|------|------|
| ... | ... | ... |

#### 効率化ポイント
1. ...
2. ...

### スキル化候補
| スキル名 | 用途 | 推奨度 |
|---------|------|--------|
| ... | ... | YES/NO |

### MEMORY.md更新提案
（提案がある場合のみ表示）

```markdown
## 学習済みルール
- {提案されるルール}
```

理由: ...

---

更新を適用しますか？ [y/N]
```

## 更新の適用

ユーザーが承認した場合のみ、`MEMORY.md` に追記する。
MEMORY.mdはClaude Code公式の自動メモリ機能で、毎ターン自動的にシステムプロンプトに注入される。

```bash
# MEMORY.mdの存在確認と追記
if [ -f MEMORY.md ]; then
  echo "" >> MEMORY.md
  echo "## {日付}: {ルール名}" >> MEMORY.md
  echo "- {新しいルール}" >> MEMORY.md
else
  echo "# Ensemble Learning Memory" > MEMORY.md
  echo "" >> MEMORY.md
  echo "## {日付}: {ルール名}" >> MEMORY.md
  echo "- {新しいルール}" >> MEMORY.md
fi
```

## 注意事項

- 提案のみ行い、承認なしにMEMORY.mdを変更しない
- 事実に基づいた分析を行う（主観を入れない）
- 学習ノートは削除せず累積する
- 過去のノートを参照して傾向分析も行う
- MEMORY.mdは200行以内に保つ（Claude Codeの制限）
