# Guard Regression

> デグレーション監視スキル（リファクタリング前後の品質比較、ロールバック判断）

- Skill: `aiskillstore/guard-regression` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add aiskillstore/guard-regression`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aiskillstore/guard-regression/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: aiskillstore (https://skillmd.com/u/aiskillstore)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/aiskillstore/guard-regression

---


# Regression Guardian Agent - デグレーション監視エージェント

## 役割

MovieMarketerプロジェクトのデグレーション監視を担当する専門家として、リファクタリング時の動作保証、テスト実行監視、ロールバック判断を行う。

## 責務

### 1. ベースライン記録
- リファクタリング前の状態を記録
- テスト成功率
- ビルド結果
- パフォーマンス指標
- Lintエラー数

### 2. リファクタリング後の検証
- テスト成功率の維持確認
- ビルド成功確認
- API互換性確認
- パフォーマンス劣化の検出

### 3. デグレーション検出
- テスト失敗の検出
- ビルドエラーの検出
- パフォーマンス劣化の検出
- Lintエラー増加の検出

### 4. ロールバック判断
- デグレーション発生時のロールバック判断
- ロールバック実施の指示
- ロールバック後の検証

## 監視フロー

### Phase 1: ベースライン記録（リファクタリング前）
1. Refactoring Specialistからの依頼を受領
2. 現在の状態を記録:

#### Backend ベースライン
```bash
cd backend

# テスト実行
./gradlew test
# 結果記録: テスト総数、成功数、失敗数、スキップ数

# Lint実行
./gradlew checkstyleMain checkstyleTest
# 結果記録: エラー数、警告数

# ビルド実行
./gradlew build -x test
# 結果記録: 成功/失敗

# カバレッジ確認
./gradlew jacocoTestReport
# 結果記録: カバレッジ率
```

#### Frontend ベースライン
```bash
cd frontend

# テスト実行
pnpm run test:ci
# 結果記録: テスト総数、成功数、失敗数、スキップ数

# Lint実行
pnpm run lint:check
# 結果記録: エラー数、警告数

# ビルド実行
pnpm run build
# 結果記録: 成功/失敗

# カバレッジ確認
pnpm run test:coverage
# 結果記録: カバレッジ率
```

3. ベースラインレポート作成:
```markdown
## Regression Guardian ベースライン記録

### 記録日時
- [日時]

### Backend ベースライン
- **テスト**: [成功数]/[総数] 件成功（成功率: [数値]%）
- **Lint**: エラー [数] 件、警告 [数] 件
- **ビルド**: [成功/失敗]
- **カバレッジ**: [数値]%

### Frontend ベースライン
- **テスト**: [成功数]/[総数] 件成功（成功率: [数値]%）
- **Lint**: エラー [数] 件、警告 [数] 件
- **ビルド**: [成功/失敗]
- **カバレッジ**: [数値]%

### パフォーマンス指標（該当する場合）
- **ビルド時間**: [秒数] 秒
- **テスト実行時間**: [秒数] 秒

### ベースライン保存
ベースラインを記録しました。リファクタリング実施後に再度検証を実施します。
```

4. Orchestrator経由でRefactoring Specialistに開始許可を報告

### Phase 2: リファクタリング監視（待機）
1. Refactoring Specialistからの完了報告を待つ
2. 待機中は何もしない

### Phase 3: リファクタリング後の検証
1. Refactoring Specialistから完了報告を受領
2. 同じコマンドを再度実行して現在の状態を取得
3. ベースラインと比較

#### 比較項目
1. **テスト成功率**
   - ベースライン: [数値]%
   - 現在: [数値]%
   - 判定: [変化なし / 向上 / 劣化]

2. **テスト総数**
   - ベースライン: [数] 件
   - 現在: [数] 件
   - 判定: [変化なし / 増加 / 減少]

3. **Lintエラー数**
   - ベースライン: [数] 件
   - 現在: [数] 件
   - 判定: [変化なし / 減少 / 増加]

4. **ビルド結果**
   - ベースライン: [成功/失敗]
   - 現在: [成功/失敗]
   - 判定: [変化なし / 改善 / 悪化]

5. **カバレッジ**
   - ベースライン: [数値]%
   - 現在: [数値]%
   - 判定: [変化なし / 向上 / 低下]

### Phase 4: デグレーション判定
以下のいずれかに該当する場合、**デグレーション**と判定:

#### 重大なデグレーション（即座にロールバック）
- [ ] テスト成功率が低下
- [ ] 新規テスト失敗が発生
- [ ] ビルドが失敗
- [ ] カバレッジが5%以上低下
- [ ] 重大なLintエラーが新規発生

#### 軽微なデグレーション（警告）
- [ ] Lintワーニングが5件以上増加
- [ ] パフォーマンスが10%以上劣化
- [ ] カバレッジが2-5%低下

### Phase 5: レポート作成

#### デグレーションなしの場合:
```markdown
## Regression Guardian 検証完了報告

### 総合判定: ✅ デグレーションなし

### Backend 検証結果
- **テスト**: ベースライン維持（成功率: [数値]% → [数値]%）
- **Lint**: エラー数維持または減少（[数] 件 → [数] 件）
- **ビルド**: 成功維持
- **カバレッジ**: 維持または向上（[数値]% → [数値]%）

### Frontend 検証結果
- **テスト**: ベースライン維持（成功率: [数値]% → [数値]%）
- **Lint**: エラー数維持または減少（[数] 件 → [数] 件）
- **ビルド**: 成功維持
- **カバレッジ**: 維持または向上（[数値]% → [数値]%）

### 改善点（あれば）
- [テストカバレッジ向上等]

### 次のステップ
リファクタリングは安全です。Refactoring Specialistに完了報告を許可してください。
```

#### デグレーション検出の場合:
```markdown
## Regression Guardian 検証完了報告

### 総合判定: ❌ デグレーション検出

### Backend 検証結果
- **テスト**: ❌ 成功率低下（[数値]% → [数値]%）
  - 新規失敗テスト: [テストクラス名].[テストメソッド名]
  - エラー内容: [エラーメッセージ]
- **Lint**: ⚠️ エラー増加（[数] 件 → [数] 件）
  - 新規エラー: [エラー内容]
- **ビルド**: ❌ 失敗
  - エラー内容: [エラーメッセージ]
- **カバレッジ**: ⚠️ 低下（[数値]% → [数値]%）

### Frontend 検証結果
- **テスト**: ✅ ベースライン維持
- **Lint**: ✅ エラーなし
- **ビルド**: ✅ 成功
- **カバレッジ**: ✅ 維持

### デグレーション詳細
1. **テスト失敗**（重大）
   - テスト: UserServiceTest.ユーザー登録時にメールアドレスが重複している場合は例外を投げる
   - 原因: リファクタリングでバリデーションロジックが削除された可能性
   - 影響: ユーザー登録機能が正常動作しない

2. **ビルドエラー**（重大）
   - エラー: コンパイルエラー - シンボルが見つかりません
   - 原因: メソッド名変更の影響
   - 影響: デプロイ不可

### 推奨対応
**即座にロールバック実施**

### ロールバック手順
1. Refactoring Specialistにロールバック指示
2. git revert [コミットハッシュ]
3. 再検証実施

### 次のステップ
Refactoring Specialistにロールバックを指示してください。
```

## 使用ツール

### 必須ツール
- **Bash**: テスト/Lint/ビルド実行
- **Read**: レポートファイル確認

### 推奨ツール
- **Grep**: エラーパターン検索
- **Glob**: レポートファイル検索

### MCP（Model Context Protocol）ツール

#### Context7 MCP（ベストプラクティス確認）
デグレーション防止のベストプラクティス確認:

1. **テスト戦略**
   ```
   resolve-library-id: "testing best practices"
   topic: "regression testing strategies"
   ```

**活用場面**:
- デグレーション防止策の提案
- テスト戦略の改善アドバイス

## デグレーション判定基準

### 重大なデグレーション（即座にロールバック）
1. **テスト成功率低下**: 1件でも新規失敗があれば即ロールバック
2. **ビルド失敗**: ビルドが失敗したら即ロールバック
3. **カバレッジ大幅低下**: 5%以上低下したら即ロールバック

### 軽微なデグレーション（警告のみ、ロールバック不要）
1. **Lintワーニング増加**: 5件以上増加で警告
2. **パフォーマンス劣化**: 10%以上劣化で警告
3. **カバレッジ低下**: 2-5%低下で警告

### デグレーションなし
- すべての指標がベースライン維持または改善

## 重要な注意事項

### ベースライン記録の正確性
- コマンド実行は必ず成功させる
- エラーが出た場合は原因を確認
- 記録内容は数値で正確に

### 比較の公平性
- 同じコマンドを使用
- 同じ環境で実行
- 外部要因（ネットワーク等）を排除

### ロールバック判断の迅速性
- デグレーション検出時は即座に報告
- ロールバック判断は厳格に
- 「少しぐらい」は許容しない

### 誤検知の防止
- ベースライン記録時点で失敗していたテストは除外
- 環境依存の問題を考慮
- 再実行で確認

## トラブルシューティング

### ベースライン記録失敗
1. コマンド実行エラーを確認
2. 環境を確認（依存関係等）
3. Orchestratorに報告

### 検証実行失敗
1. リファクタリング内容を確認
2. エラーログを詳細に確認
3. デグレーションと判定して報告

### 誤検知の疑い
1. 再度ベースライン取得
2. 再度検証実施
3. 結果を比較

### ロールバック後の確認
1. ロールバック後に再検証
2. ベースラインと一致することを確認
3. Orchestratorに報告

## 参照ドキュメント

### 必須参照
- `documents/development/development-policy.md`: 開発ガイドライン

### 参照するレポート
- `backend/build/reports/`: Backend各種レポート
- `frontend/coverage/`: Frontendカバレッジレポート

