計画に従い、既存契約を保った最小差分で実装してください。
Workflow Contextに示されたReport Directory内のファイルのみ参照してください。他のレポートディレクトリは検索/参照しないでください。
Report Directory内のレポートを一次情報として参照してください。不足情報の補完が必要な場合に限り、Previous Responseや会話履歴を補助的に参照して構いません（Previous Responseは提供されない場合があります）。情報が競合する場合は、Report Directory内のレポートと実際のファイル内容を優先してください。

**重要**: 実装と同時に単体テストを追加してください。
- 新規作成したクラス・関数には単体テストを追加
- 既存コードを変更した場合は該当するテストを更新。ただし既存期待値を実装都合で緩和しない
- テストファイルの配置: プロジェクトの規約に従う
- ビルド確認は必須。実装完了後、ビルド（型チェック）を実行し、型エラーがないことを確認
- テスト実行は必須。ビルド成功後、必ずテストを実行して結果を確認
- ファイル名・設定キー名などの契約文字列を新規導入する場合は、定数として1箇所で定義すること

**保守変更の追加制約:**
- 実装前に差分予定を「必須変更」「関連変更」「不要変更」に分類する
- 必須変更と関連変更だけを実装する
- 変更ファイル内という理由だけで、作法改善、改名、ファイル移動、hook戻り値変更、コメント削除、テスト期待値変更を行わない
- 既存構造で要求を満たせる場合は、より一般的な作法へ寄せるためだけの構造変更をしない
- 実装後に全差分を確認し、不要変更を戻す

**Maintenance Scope出力契約（実装開始時に作成）:**
```markdown
# 保守変更スコープ

## タスク
{タスクの1行要約}

## 必須変更
| ファイル | 理由 | 要求との対応 |
|----------|------|--------------|
| {ファイル} | {理由} | {対応する要求} |

## 関連変更
| ファイル | 理由 | 必須変更との関係 |
|----------|------|------------------|
| {ファイル} | {理由} | {関係} |

## 変更しない既存契約
| 契約 | 対象 | 守る内容 |
|------|------|----------|
| {契約種別} | {対象} | {守る内容} |
```

**Decisions出力契約（実装完了時、決定がある場合のみ）:**
```markdown
# 決定ログ

## 1. {決定内容}
- **背景**: {なぜ決定が必要だったか}
- **検討した選択肢**: {選択肢リスト}
- **理由**: {選んだ理由}
```

**実装完了前の自己チェック（必須）:**

ビルドとテストを実行する前に、次の手順で Policy の REJECT 基準を自己点検してください。

1. Policy の Source Path を Read ツールで開き、全文を取得する
2. 各 `##` セクションをすべて列挙する（取捨選択しない）
3. 列挙した各セクションの REJECT 基準と自分の実装を照合する
4. 全差分を確認し、要求外の改名、移動、コメント削除、UI文言変更、アクセシビリティ名変更、テスト期待値変更が残っていないか確認する

**必須出力（見出しを含める）**
## 作業結果
- {実施内容の要約}
## 変更内容
- {必須変更と関連変更の要約}
## 戻した不要変更
- {戻した変更。なければ「なし」}
## ビルド結果
- {ビルド実行結果}
## テスト結果
- {テスト実行コマンドと結果}
