# v1.5 アップデート
Release Date: 2026-01
## 概要
v1.5 では QUALITY_REVIEW フェーズを追加。PRE_COMMIT でゴミ検出を行った後、`quality_review.md` に基づいて品質チェックを行い、問題があれば READY に差し戻して修正→全フェーズ再通過させる仕組みを導入。
## 背景
v1.4 までのフローでは、PRE_COMMIT でゴミ検出を行った後、すぐに merge_to_base でマージしていた。しかし、以下の問題があった:
| 問題 | 影響 |
|------|------|
| 品質チェックなし | デバッグコード、不要なインポート、スタイル違反が見逃される |
| 修正後の再確認なし | 修正による二次的な問題を検出できない |
| プロジェクト固有ルール適用なし | CLAUDE.md の規約に準拠しているか確認されない |
## 設計原則
### コミット前品質保証
| フェーズ | 責務 | チェック内容 |
|---------|------|-------------|
| PRE_COMMIT | ゴミ検出 | デバッグログ、コメントアウト、無関係な変更 |
| QUALITY_REVIEW | 品質チェック | コード品質、規約準拠、ベストプラクティス |
### READY への差し戻しによる品質保証
品質レビューで問題が見つかった場合、**READY フェーズに戻して修正→全フェーズを再通過**させる。QUALITY_REVIEW 内での小さな修正は許可しない。
```
[PRE_COMMIT完了] → [QUALITY_REVIEW]
↓
quality_review.md 実行
↓
┌─────────┴─────────┐
↓ ↓
[問題あり] [問題なし]
↓ ↓
submit_quality_review merge_to_base
(issues_found=true)
↓
[READY] ← 差し戻し
↓
修正実行
↓
[POST_IMPL_VERIFY] → [PRE_COMMIT] → [QUALITY_REVIEW]
```
**設計根拠:**
- 品質レビューで発見される問題は大幅な見落としが多い
- 修正後は検証(POST_IMPL_VERIFY)とゴミ検出(PRE_COMMIT)を再通過すべき
- 中途半端な修正によるデグレを防止
---
## 新機能
### 1. QUALITY_REVIEW フェーズ
PRE_COMMIT 後、マージ前に品質チェックを行うフェーズ。
#### フェーズ遷移
| From | To | 条件 |
|------|-----|------|
| PRE_COMMIT | QUALITY_REVIEW | finalize_changes 完了 |
| QUALITY_REVIEW | READY | 問題あり(差し戻し) |
| QUALITY_REVIEW | (完了) | submit_quality_review(issues_found=false) |
#### ワークフロー
```
1. finalize_changes 完了後、QUALITY_REVIEW に遷移
2. quality_review.md を読み込み、指示に従う
3. 問題発見時:
- submit_quality_review(issues_found=true, issues=[...])
- READY フェーズに差し戻し
- 問題を修正
- POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW を再通過
4. 問題なし時:
- submit_quality_review(issues_found=false)
- merge_to_base へ進める
```
**重要:** QUALITY_REVIEW フェーズ内での Edit/Write は禁止。修正は必ず READY で行う。
#### チェック内容(quality_review.md で定義)
| カテゴリ | チェック項目 |
|----------|------------|
| コード品質 | 未使用インポート、デッドコード、重複コード |
| 規約準拠 | CLAUDE.md のルール、命名規則、ファイル構成 |
| セキュリティ | ハードコード値、機密情報、脆弱なパターン |
| パフォーマンス | N+1クエリ、不要なループ、メモリリーク |
### 2. submit_quality_review ツール
品質レビュー結果を報告するツール。
#### パラメータ
| パラメータ | 型 | 必須 | 説明 |
|-----------|-----|------|------|
| issues_found | bool | Yes | 問題が見つかったか |
| issues | array | No | 発見した問題のリスト(issues_found=true 時必須) |
| notes | string | No | 追加コメント |
#### レスポンス(問題あり → READY に差し戻し)
```json
{
"success": true,
"issues_found": true,
"issues": [
"Unused import 'os' in service.py:3",
"Naming convention violation: getUserData should be get_user_data in utils.py:45",
"Missing error handling in api/handler.py:78"
],
"next_action": "Fix the issues in READY phase, then re-run verification",
"phase": "READY",
"message": "Reverted to READY phase. Fix issues and proceed through POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW."
}
```
#### レスポンス(問題なし)
```json
{
"success": true,
"issues_found": false,
"message": "Quality review passed. Ready for merge.",
"next_action": "Call merge_to_base to complete"
}
```
### 3. --no-quality フラグ
品質レビューをスキップするためのフラグ。
#### 使用例
```bash
# 標準モード(品質レビューあり)
/code fix this bug
# 品質レビューをスキップ
/code --no-quality fix this typo
```
#### 動作
`--no-quality` 指定時、PRE_COMMIT 後に直接 merge_to_base が可能になる。
**注意:** `--quick` モードでも QUALITY_REVIEW はスキップされる(ブランチなし、ゴミ検出なしのため品質レビューも不要)。
#### フェーズマトリックス(品質レビュー関連)
| オプション | 探索 | 実装 | 検証 | ゴミ取 | 品質 | ブランチ |
|-----------|:----:|:----:|:----:|:------:|:----:|:-------:|
| (デフォルト) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| `--no-quality` | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| `--quick` / `-q` | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
---
## 新ツール
### submit_quality_review
品質レビュー結果を報告する。
#### パラメータ
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|-----------|-----|------|-----------|------|
| issues_found | bool | Yes | - | 問題が見つかったか |
| issues | array | No | [] | 発見した問題のリスト(issues_found=true 時必須) |
| notes | string | No | null | 追加コメント |
#### 使用例
**問題を発見した場合(READY に差し戻し):**
```
mcp__code-intel__submit_quality_review
issues_found: true
issues: [
"Unused import 'os' in auth/service.py:3",
"console.log left in auth/service.js:45",
"Missing type hints in validate_user function"
]
```
→ READY フェーズに戻り、修正後に POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW を再通過
**問題なしの場合:**
```
mcp__code-intel__submit_quality_review
issues_found: false
notes: "All checks passed"
```
→ merge_to_base が可能に
---
## 新しいプロンプトファイル
### .code-intel/review_prompts/quality_review.md
品質レビューの指示を定義するプロンプトファイル。
#### デフォルト内容
```markdown
# Quality Review Checklist
Review the changes and check for the following issues:
## Code Quality
- [ ] No unused imports
- [ ] No dead code or unreachable statements
- [ ] No duplicate code that should be extracted
- [ ] Proper error handling
## Conventions
- [ ] Follows project naming conventions
- [ ] Matches existing code style
- [ ] Follows CLAUDE.md rules
## Security
- [ ] No hardcoded secrets or credentials
- [ ] No sensitive data in logs
- [ ] Input validation where needed
## Performance
- [ ] No obvious N+1 queries
- [ ] No unnecessary loops or iterations
- [ ] Efficient data structures used
## Action
**If issues found:**
1. List all issues with file:line references
2. Report with submit_quality_review(issues_found=true, issues=[...])
3. You will be reverted to READY phase
4. Fix the issues, then proceed through POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW
**If no issues:**
1. Report with submit_quality_review(issues_found=false)
2. Proceed to merge_to_base
**Important:** Do NOT fix issues in QUALITY_REVIEW phase. Always report first, then fix in READY phase.
```
---
## フロー変更
### Before (v1.4)
```
Step 10: PRE_COMMIT
├─ review_changes
└─ finalize_changes
↓
Step 11: merge_to_base
```
### After (v1.5)
```
Step 10: PRE_COMMIT
├─ review_changes
└─ finalize_changes
↓
Step 10.5: QUALITY_REVIEW ← NEW
├─ quality_review.md 実行
├─ 問題あり → submit_quality_review(issues_found=true) → READY に差し戻し
│ → 修正 → POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW
└─ 問題なし → submit_quality_review(issues_found=false)
↓
Step 11: merge_to_base
```
---
## Skill プロンプト変更
### Step 10.5: Quality Review(新規)
```markdown
## Step 10.5: Quality Review
**PRE_COMMIT 後、マージ前の品質チェック。**
1. `.code-intel/review_prompts/quality_review.md` を読み込む
2. チェックリストに従って変更をレビュー
3. 問題発見時:
- 問題を全てリストアップ(file:line 形式)
- submit_quality_review(issues_found=true, issues=[...]) で報告
- READY フェーズに差し戻される
- 問題を修正
- POST_IMPL_VERIFY → PRE_COMMIT → QUALITY_REVIEW を再通過
4. 問題なし時:
- submit_quality_review(issues_found=false) で報告
- merge_to_base へ進む
**重要:** QUALITY_REVIEW 内での修正は禁止。必ず報告 → 差し戻し → READY で修正。
**スキップ条件:**
- `--no-quality` フラグ指定時
```
---
## 設定
`.code-intel/context.yml`:
```yaml
quality_review:
enabled: true # 品質レビューを有効化(デフォルト: true)
prompt_file: "review_prompts/quality_review.md"
max_revert_count: 3 # READY への最大差し戻し回数(無限ループ防止)
```
---
## エラー処理
### max_revert_count 超過時
差し戻し回数が `max_revert_count` を超えた場合、強制的に品質レビューを完了として扱い、`merge_to_base` へ進む。
```json
{
"success": true,
"issues_found": true,
"forced_completion": true,
"message": "Max revert count (3) exceeded. Forcing completion.",
"warning": "Quality issues may remain unresolved.",
"next_action": "Call merge_to_base to complete"
}
```
**設計根拠:** 無限ループを防止しつつ、タスクを正常終了させる。品質問題は残る可能性があるが、ユーザーが後で対処可能。
### quality_review.md が見つからない場合
プロンプトファイルが存在しない場合、警告を出して QUALITY_REVIEW フェーズをスキップし、直接 `merge_to_base` へ進む。
```json
{
"success": true,
"skipped": true,
"warning": "quality_review.md not found at .code-intel/review_prompts/quality_review.md",
"message": "Quality review skipped. Proceeding to merge.",
"next_action": "Call merge_to_base to complete"
}
```
**設計根拠:** プロンプトファイルがない状態で品質レビューは実行不可能。マイグレーション中やファイル欠損時にタスクがブロックされることを防ぐ。
---
## コマンドオプション
| Long | Short | 説明 |
|------|-------|------|
| `--no-quality` | - | 品質レビューをスキップ |
---
## 破壊的変更
| 変更 | 影響 | 対応 |
|------|------|------|
| QUALITY_REVIEW フェーズ追加 | finalize_changes 後に自動遷移 | quality_review.md を配置 |
| merge_to_base の前提条件 | QUALITY_REVIEW 完了が必要 | submit_quality_review を呼ぶ |
---
## マイグレーション
1. `.code-intel/review_prompts/quality_review.md` を作成
2. Skill プロンプト(code.md)を更新
3. `--no-quality` フラグの認識を追加
---
## 実装チェックリスト
### QUALITY_REVIEW フェーズ
- [ ] フェーズ遷移ロジック(PRE_COMMIT → QUALITY_REVIEW)
- [ ] QUALITY_REVIEW → READY への差し戻しロジック
- [ ] `--no-quality` フラグでスキップ
- [ ] 最大差し戻し回数の制限(max_revert_count)
### submit_quality_review ツール
- [ ] パラメータ: `issues_found`, `issues`, `notes`
- [ ] `issues_found=true` 時の READY フェーズ差し戻し
- [ ] `issues_found=false` 時の merge_to_base 許可
- [ ] 差し戻しカウンターの管理
### プロンプトファイル
- [ ] `quality_review.md` テンプレート作成
- [ ] init-project.sh での自動配置
### エラー処理
- [ ] max_revert_count 超過時の強制完了
- [ ] quality_review.md 欠損時の警告&スキップ
### テスト
- [ ] submit_quality_review 正常系(問題なし)
- [ ] submit_quality_review 差し戻し(問題あり → READY → 修正 → 再通過 → 問題なし)
- [ ] --no-quality フラグでスキップ
- [ ] 最大差し戻し回数超過時の強制完了
- [ ] quality_review.md 欠損時のスキップ