# v1.10 アップデート
Release Date: 2026-02 (予定)
## 概要
v1.10 では、以下の3つの主要な変更を実施:
1. **各フェーズ前の個別チェック方式**: フェーズごとに必要性を都度判断
2. **VERIFICATION と IMPACT_ANALYSIS の分離**: v1.9で統合したフェーズを再分離し、VERIFICATIONの結果を見てからIMPACT_ANALYSISを実行
3. **gate_levelの再編**: 5段階から2段階へ簡素化(`full`と`auto`のみ)
**期待される改善**:
- 不要なフェーズのスキップによる時間削減: 15-50秒
- 各フェーズ前の柔軟な判断による正確性向上
- VERIFICATIONの結果に基づいた正確なIMPACT_ANALYSIS
- LLMの自律的判断による柔軟な対応(ファイル種別の自動判定廃止)
## 背景
### 現在の問題点 (v1.9まで)
#### 1. 判断タイミングが早すぎる
**Step 3: QueryFrame作成時に判断**(コードを見る前):
```python
# tools/query_frame.py:436-472
def assess_risk_level(frame: QueryFrame, intent: str) -> str:
# observed_issue が空 → HIGH
if frame.desired_action and not frame.observed_issue:
return "HIGH"
```
**問題**: QueryFrameの内容だけで判断するため、実際のコードの複雑さを反映できない。
#### 2. サーバー主導の固定判定
**Step 4後の自動判定**:
```python
# tools/session.py:1336-1342
confidence, missing = evaluate_exploration_v36(...)
# confidence="low" → 自動的にSEMANTICフェーズへ
if confidence == "low":
self.phase = Phase.SEMANTIC
```
**問題**:
- LLMは判定理由を知らない(ブラックボックス)
- 固定ルールによる判定のため柔軟性がない
- 実際には不要なフェーズも実行される
#### 3. 一度の判断で全フェーズを決定
**現在の課題**:
```
EXPLORATION完了
↓
一度だけチェック:
Q1: 情報完全? → NO
Q2: 仮説検証? → false
Q3: 影響確認? → false
↓
「SEMANTIC → VERIFICATION → IMPACT_ANALYSIS を全て実行」
と決定してしまう
```
**問題**:
- SEMANTIC実行後に状況が変わっても、VERIFICATIONを自動実行してしまう
- 各フェーズの結果を次の判断に反映できない
- 柔軟性がない
#### 4. VERIFICATION_AND_IMPACTの統合問題 (v1.9)
v1.9で10秒削減のためVERIFICATIONとIMPACT_ANALYSISを統合したが:
**問題**: VERIFICATIONの結果を見てからIMPACT_ANALYSISの範囲を決定すべき
- 仮説検証で新たな依存関係が判明
- 検証結果により影響範囲が変化する
- 統合により、この判断機会を失っている
**結論**: 10秒のLLM待機時間より、正確性を優先すべき
#### 5. gate_levelの複雑さと不正確さ
現在の`gate_level`は5段階あり、ファイル種別による自動判定も含む:
```python
# v1.9: 5段階のgate_level
gate_level = "high" # 厳格な要件
gate_level = "middle" # 中程度の要件
gate_level = "low" # 緩い要件
gate_level = "auto" # QueryFrameベースの自動判定
gate_level = "none" # 全フェーズスキップ
# HTMLファイル等の特殊判定
if is_markup_context(files_analyzed):
# 自動的に要件を緩和
reqs["symbols_identified"] = 1
```
**問題**:
- 5段階の違いが不明確
- ファイル拡張子だけで判定(HTMLでも複雑なケースあり)
- LLMが実際のコードを見た後の判断を反映できない
**v1.10での解決策**: 2段階に簡素化し、LLMに判断を委ねる
- `full`: 全フェーズ実行(デバッグ用)
- `auto`: LLMが各フェーズ前に個別判断(デフォルト)
---
## 提案する設計
### 新しいフェーズフロー
```
Step 4: EXPLORATION実行
↓
必要性チェック(Q1)← NEW
Q1: 追加の情報収集が必要か?
→ YES: SEMANTIC実行
→ NO: SEMANTICスキップ
↓
[SEMANTIC実行(必要な場合のみ)]
↓
必要性チェック(Q2)← NEW
Q2: 検証が必要な仮説はあるか?
→ YES: VERIFICATION実行
→ NO: VERIFICATIONスキップ
↓
[VERIFICATION実行(必要な場合のみ)]
↓
必要性チェック(Q3)← NEW
Q3: 影響範囲の確認が必要か?
→ YES: IMPACT_ANALYSIS実行
→ NO: IMPACT_ANALYSISスキップ
↓
[IMPACT_ANALYSIS実行(必要な場合のみ)]
↓
READY
```
**重要な変更点**:
- **各フェーズ前に個別チェック**: 状況変化を即座に反映
- **VERIFICATION と IMPACT_ANALYSIS を分離** (v1.9の統合を廃止)
- **gate_level で動作を制御**: `full`(チェック無視)または `auto`(都度チェック)
- **全ての質問を必要性確認型に統一**: `true` = 実行、`false` = スキップ
### gate_level による動作の違い
#### gate_level="auto" (デフォルト)
各フェーズ前に都度チェック:
```
EXPLORATION完了
↓
Q1チェック: 追加の情報収集が必要か?
→ YES
↓
SEMANTIC実行
↓
Q2チェック: 検証が必要な仮説はあるか?
→ NO(SEMANTIC中に検証済み)
↓
VERIFICATIONスキップ
↓
Q3チェック: 影響範囲の確認が必要か?
→ YES
↓
IMPACT_ANALYSIS実行
↓
READY
```
#### gate_level="full"
チェックを全て無視して全フェーズ実行:
```
EXPLORATION完了
↓
Q1-Q3チェック全てスキップ
↓
SEMANTIC → VERIFICATION → IMPACT_ANALYSIS(全実行)
↓
READY
```
### 各チェックポイントの詳細
#### Q1: SEMANTIC前のチェック
**タイミング**: EXPLORATION完了直後
**質問**: 追加の情報収集が必要ですか?
**回答形式**:
```json
{
"needs_more_information": false,
"needs_more_information_reason": "Service + Repositoryパターンが明確。既存実装も把握済み。"
}
```
**判定**:
- `true`: SEMANTIC実行
- `false`: SEMANTICスキップ → Q2チェックへ
#### Q2: VERIFICATION前のチェック
**タイミング**: EXPLORATION完了後、またはSEMANTIC完了後
**質問**: 検証が必要な仮説はありますか?
**回答形式**:
```json
{
"has_unverified_hypotheses": false,
"has_unverified_hypotheses_reason": "仮説は立てていない"
}
```
または
```json
{
"has_unverified_hypotheses": true,
"has_unverified_hypotheses_reason": "依存関係の解決方法について仮説Xを立てたが、実際のコードで未検証"
}
```
**判定**:
- `true`: VERIFICATION実行
- `false`: VERIFICATIONスキップ → Q3チェックへ
#### Q3: IMPACT_ANALYSIS前のチェック
**タイミング**: EXPLORATION完了後、SEMANTIC完了後、またはVERIFICATION完了後
**質問**: 変更の影響範囲の確認が必要ですか?
**回答形式**:
```json
{
"needs_impact_analysis": true,
"needs_impact_analysis_reason": "影響範囲の確認はまだ実施していない"
}
```
**判定**:
- `true`: IMPACT_ANALYSIS実行
- `false`: IMPACT_ANALYSISスキップ → READY
### 実行例
#### ケース1: SEMANTIC中に全て完了
```
EXPLORATION完了
↓
Q1チェック:
needs_more_information = true(情報不足)
↓
SEMANTIC実行
├─ 情報収集
├─ 仮説を立てて検証(SEMANTIC中に実施)
└─ 影響範囲も確認(SEMANTIC中に実施)
↓
Q2チェック:
has_unverified_hypotheses = false(仮説なし、またはSEMANTIC中に検証済み)
↓
VERIFICATIONスキップ
↓
Q3チェック:
needs_impact_analysis = false(SEMANTIC中に確認済み)
↓
IMPACT_ANALYSISスキップ
↓
READY
```
#### ケース2: 各フェーズで順次実行
```
EXPLORATION完了
↓
Q1チェック:
needs_more_information = true(情報不足)
↓
SEMANTIC実行
└─ 情報収集のみ
↓
Q2チェック:
has_unverified_hypotheses = true(仮説未検証)
↓
VERIFICATION実行
└─ 仮説検証
↓
Q3チェック:
needs_impact_analysis = true(未確認)
↓
IMPACT_ANALYSIS実行
└─ 影響範囲確認
↓
READY
```
#### ケース3: 全フェーズスキップ
```
EXPLORATION完了
↓
Q1チェック:
needs_more_information = false(情報十分)
↓
SEMANTICスキップ
↓
Q2チェック:
has_unverified_hypotheses = false(仮説なし)
↓
VERIFICATIONスキップ
↓
Q3チェック:
needs_impact_analysis = false(EXPLORATION中に確認済み)
↓
IMPACT_ANALYSISスキップ
↓
READY
```
---
## 実装方針
### 1. Phase列挙型の更新
`tools/session.py`:
```python
class Phase(Enum):
EXPLORATION = "EXPLORATION"
SEMANTIC = "SEMANTIC"
VERIFICATION = "VERIFICATION" # NEW(分離)
IMPACT_ANALYSIS = "IMPACT_ANALYSIS" # NEW(分離)
READY = "READY"
# VERIFICATION_AND_IMPACT = "VERIFICATION_AND_IMPACT" # 削除(v1.9廃止)
```
### 2. 新ツール: check_phase_necessity
各フェーズ前の必要性チェック用ツール。
`.claude/commands/code.md`に記載:
```markdown
## v1.10: Phase Necessity Check
各フェーズの前に、そのフェーズが必要かチェックしてください:
### SEMANTIC前(Q1チェック)
**質問**: 追加の情報収集が必要ですか?
- YES: 情報不足、追加調査が必要
- NO: 既存パターン明確、実装方法が理解できている
**回答形式**:
```json
{
"needs_more_information": true,
"needs_more_information_reason": "既存の認証フローの詳細が不明"
}
```
**ツール**: `check_phase_necessity(phase="SEMANTIC", assessment={...})`
### VERIFICATION前(Q2チェック)
**質問**: 検証が必要な仮説はありますか?
- YES: 仮説を立てたが、まだコードで検証していない
- NO: 仮説を立てていない、または既に検証済み
**回答形式**:
```json
{
"has_unverified_hypotheses": false,
"has_unverified_hypotheses_reason": "仮説は立てていない"
}
```
または
```json
{
"has_unverified_hypotheses": true,
"has_unverified_hypotheses_reason": "依存関係の解決方法について仮説を立てたが未検証"
}
```
**ツール**: `check_phase_necessity(phase="VERIFICATION", assessment={...})`
### IMPACT_ANALYSIS前(Q3チェック)
**質問**: 変更の影響範囲の確認が必要ですか?
- YES: まだ確認していない
- NO: 影響範囲を確認済み(参照箇所、依存関係など)
**回答形式**:
```json
{
"needs_impact_analysis": true,
"needs_impact_analysis_reason": "影響範囲の確認はまだ実施していない"
}
```
**ツール**: `check_phase_necessity(phase="IMPACT_ANALYSIS", assessment={...})`
```
### 3. サーバー側ハンドラー
`code_intel_server.py`:
```python
if name == "check_phase_necessity":
phase = arguments["phase"] # "SEMANTIC" | "VERIFICATION" | "IMPACT_ANALYSIS"
assessment = arguments["assessment"]
# gate_level="full" の場合、チェックを無視して常に実行
if session.gate_level == "full":
session.phase = Phase[phase]
return {
"success": True,
"phase_required": True,
"next_phase": phase,
"reason": "gate_level=full: All phases are executed"
}
# gate_level="auto" の場合、assessmentに基づいて判定
phase_required = False
next_phase = None
if phase == "SEMANTIC":
needs_more_info = assessment.get("needs_more_information", False)
if needs_more_info:
# 情報不足 → SEMANTIC実行
phase_required = True
next_phase = "SEMANTIC"
else:
# 情報十分 → SEMANTICスキップ → Q2チェックへ
next_phase = None # 次のチェックへ
elif phase == "VERIFICATION":
has_unverified_hypotheses = assessment.get("has_unverified_hypotheses", False)
if has_unverified_hypotheses:
# 未検証の仮説がある → VERIFICATION実行
phase_required = True
next_phase = "VERIFICATION"
else:
# 仮説がない、または検証済み → VERIFICATIONスキップ → Q3チェックへ
next_phase = None # 次のチェックへ
elif phase == "IMPACT_ANALYSIS":
needs_impact = assessment.get("needs_impact_analysis", False)
if needs_impact:
# 影響範囲未確認 → IMPACT_ANALYSIS実行
phase_required = True
next_phase = "IMPACT_ANALYSIS"
else:
# 影響範囲確認済み → IMPACT_ANALYSISスキップ → READY
next_phase = "READY"
# フェーズ更新
if next_phase == "READY":
session.phase = Phase.READY
elif phase_required:
session.phase = Phase[next_phase]
# assessmentをログに保存
if not hasattr(session, "phase_assessments"):
session.phase_assessments = {}
session.phase_assessments[phase] = assessment
return {
"success": True,
"phase_required": phase_required,
"next_phase": next_phase or "NEXT_CHECK",
"assessment": assessment
}
```
### 4. フェーズ完了後のフロー
各フェーズ完了後、次のチェックポイントへ:
```python
def get_next_checkpoint(current_phase: Phase) -> str | None:
"""現在のフェーズから次のチェックポイントを決定"""
if current_phase == Phase.EXPLORATION:
return "Q1_CHECK" # SEMANTIC必要性チェック
elif current_phase == Phase.SEMANTIC:
return "Q2_CHECK" # VERIFICATION必要性チェック
elif current_phase == Phase.VERIFICATION:
return "Q3_CHECK" # IMPACT_ANALYSIS必要性チェック
elif current_phase == Phase.IMPACT_ANALYSIS:
return "READY"
return None
# 各フェーズ完了時
if name == "submit_semantic":
# SEMANTIC完了
session.phase = Phase.SEMANTIC
return {
"success": True,
"phase_complete": "SEMANTIC",
"next_checkpoint": "Q2_CHECK",
"instruction": "Now check if VERIFICATION is necessary using check_phase_necessity(phase='VERIFICATION', assessment={...})"
}
```
### 5. 妥当性チェック
各チェックポイントでの回答の妥当性を検証:
```python
def validate_phase_assessment(phase: str, assessment: dict) -> tuple[bool, str | None]:
"""フェーズ必要性の回答の妥当性をチェック"""
if phase == "SEMANTIC":
# Q1チェック
if "needs_more_information" not in assessment:
return False, "needs_more_information フィールドが必要"
if "needs_more_information_reason" not in assessment:
return False, "needs_more_information_reason フィールドが必要"
reason = assessment["needs_more_information_reason"]
if len(reason) < 10:
return False, "理由は最低10文字必要"
elif phase == "VERIFICATION":
# Q2チェック
if "has_unverified_hypotheses" not in assessment:
return False, "has_unverified_hypotheses フィールドが必要"
if "has_unverified_hypotheses_reason" not in assessment:
return False, "has_unverified_hypotheses_reason フィールドが必要"
has_hypotheses = assessment["has_unverified_hypotheses"]
if has_hypotheses not in [True, False]:
return False, "has_unverified_hypotheses は true/false のいずれか"
elif phase == "IMPACT_ANALYSIS":
# Q3チェック
if "needs_impact_analysis" not in assessment:
return False, "needs_impact_analysis フィールドが必要"
if "needs_impact_analysis_reason" not in assessment:
return False, "needs_impact_analysis_reason フィールドが必要"
return True, None
```
---
## 期待される効果
### 1. パフォーマンス改善
| ケース | 現在 (v1.9) | v1.10 | 削減 |
|--------|-----------|-------|------|
| 単純な修正(情報十分、影響明確) | EXPLORATION → VERIFICATION_AND_IMPACT | EXPLORATION → Q1(NO) → Q2(NO) → Q3(NO) → READY | 15-20秒 |
| SEMANTIC中に全て完了 | EXPLORATION → SEMANTIC → VERIFICATION_AND_IMPACT | EXPLORATION → Q1(YES) → SEMANTIC → Q2(NO) → Q3(NO) → READY | 25-30秒 |
| 情報十分、仮説なし、影響明確 | EXPLORATION → SEMANTIC → VERIFICATION_AND_IMPACT | EXPLORATION → Q1(NO) → Q2(NO) → Q3(NO) → READY | 50-70秒 |
**削減の内訳**:
- SEMANTICスキップ: 30-40秒(情報が十分な場合)
- VERIFICATIONスキップ: 10-15秒(仮説がない場合)
- IMPACT_ANALYSISスキップ: 10-15秒(影響範囲が明確な場合)
- **SEMANTIC中に検証完了: 25-30秒**(新たなメリット)
**平均削減見込み**: 20-60秒
### 2. 正確性の向上
**v1.9の問題**:
```
EXPLORATION完了
↓
一度だけ判断: SEMANTIC + VERIFICATION_AND_IMPACT 実行と決定
↓
SEMANTIC実行(情報が揃った)
↓
VERIFICATION_AND_IMPACT強制実行(実は不要だった)
```
**v1.10の改善**:
```
EXPLORATION完了
↓
Q1チェック: 情報不足 → SEMANTIC実行
↓
SEMANTIC実行(情報が揃った + 仮説も検証済み)
↓
Q2チェック: 未検証の仮説なし → VERIFICATIONスキップ
↓
Q3チェック: 確認済み → IMPACT_ANALYSISスキップ
↓
READY(不要なフェーズを回避)
```
**メリット**: 各フェーズの実行結果を次の判断に即座に反映
### 3. 柔軟性の向上
**各フェーズで状況が変わる場合に対応**:
```
EXPLORATION完了
↓
Q1チェック: 情報不足
↓
SEMANTIC実行
├─ 想定より複雑だった
├─ 新たな仮説が発生
└─ 影響範囲は未確認
↓
Q2チェック: 未検証の仮説あり → VERIFICATION実行
↓
VERIFICATION実行
└─ 仮説検証で影響範囲も判明
↓
Q3チェック: 確認済み → IMPACT_ANALYSISスキップ
↓
READY
```
### 4. 統一された判断基準
**v1.10の改善**: 全ての質問が必要性確認型に統一
| 質問 | フィールド | `true`の意味 | `false`の意味 |
|------|-----------|-------------|--------------|
| Q1: 追加の情報収集が必要か? | `needs_more_information` | 実行 | スキップ |
| Q2: 検証が必要な仮説はあるか? | `has_unverified_hypotheses` | 実行 | スキップ |
| Q3: 影響範囲の確認が必要か? | `needs_impact_analysis` | 実行 | スキップ |
**メリット**:
- LLMが混乱せず正確に回答可能
- コードがシンプル(全て `if フィールド: 実行`)
- 保守性向上
---
## Breaking Changes
### 1. VERIFICATION_AND_IMPACT廃止
**v1.9**:
```python
Phase.VERIFICATION_AND_IMPACT # 統合フェーズ
submit_verification_and_impact(...)
```
**v1.10**:
```python
Phase.VERIFICATION # 分離
Phase.IMPACT_ANALYSIS # 分離
submit_verification(...) # 新ツール
submit_impact_analysis(...) # 新ツール
```
### 2. submit_understanding廃止 → check_phase_necessity
**v1.9**:
```python
submit_understanding(result)
# サーバーが自動判定
```
**v1.10**:
```python
# EXPLORATION完了後
check_phase_necessity(phase="SEMANTIC", assessment={...})
# SEMANTIC完了後
check_phase_necessity(phase="VERIFICATION", assessment={...})
# VERIFICATION完了後
check_phase_necessity(phase="IMPACT_ANALYSIS", assessment={...})
```
### 3. gate_levelの再編
**v1.9まで**: 5段階 (`high`, `middle`, `low`, `auto`, `none`)
**v1.10以降**: 2段階のみ (`full`, `auto`)
- `full`: 全チェックを無視して全フェーズ実行
- `auto`: 各フェーズ前に都度チェック(デフォルト)
**廃止される機能**:
- HTMLファイル等のマークアップコンテキスト判定(`is_markup_context`)
- ファイル拡張子による要件緩和(`extract_extensions_from_text`)
- QueryFrameベースのリスク判定(`assess_risk_level`)
- 一括フェーズ決定(`evaluate_exploration_v36`)
---
## 実装状況
| 機能 | 状態 | 備考 |
|------|------|------|
| Phase列挙型の更新 | 📋 設計完了 | VERIFICATION/IMPACT_ANALYSIS分離 |
| check_phase_necessity | 📋 設計完了 | 各フェーズ前の必要性チェック |
| submit_verification | 📋 設計完了 | VERIFICATION専用ツール |
| submit_impact_analysis | 📋 設計完了 | IMPACT_ANALYSIS専用ツール |
| validate_phase_assessment | 📋 設計完了 | 回答の妥当性チェック |
| get_next_checkpoint | 📋 設計完了 | 次のチェックポイント決定 |
| gate_level再編 (full/auto) | 📋 設計完了 | 5段階→2段階に簡素化 |
| マークアップ判定廃止 | 📋 設計完了 | is_markup_context等削除 |
| code.md更新 | 📋 設計完了 | 各フェーズ前のチェック指示 |
| **合計** | 📋 設計完了 | **削減見込み: 20-60秒** |
**設計完了**: 2026-01-26
**実装開始予定**: 2026-02
---
## マイグレーションガイド
v1.9からv1.10への移行には**コードの変更が必要**です。
### 変更が必要な箇所
#### 1. code.md
**削除**:
- `submit_understanding` の説明
**追加**:
- 各フェーズ前のチェック指示(Q1/Q2/Q3)
- `check_phase_necessity` の説明
**変更**:
- `submit_verification_and_impact` → `submit_verification` + `submit_impact_analysis`(分離)
#### 2. code_intel_server.py
**削除**:
- `VERIFICATION_AND_IMPACT` フェーズハンドラー
- `submit_understanding` ハンドラー
- `submit_verification_and_impact` ハンドラー
**追加**:
- `check_phase_necessity` ハンドラー
- `submit_verification` ハンドラー(分離)
- `submit_impact_analysis` ハンドラー(分離)
- `validate_phase_assessment` 関数
- `get_next_checkpoint` 関数
#### 3. tools/session.py
**変更**:
```python
class Phase(Enum):
EXPLORATION = "EXPLORATION"
SEMANTIC = "SEMANTIC"
VERIFICATION = "VERIFICATION" # NEW
IMPACT_ANALYSIS = "IMPACT_ANALYSIS" # NEW
READY = "READY"
```
**追加**:
- `phase_assessments` フィールド(各チェックポイントの記録)
**削除**:
- `GATE_LEVEL_REQUIREMENTS` 定数
- `is_markup_context()` 関数
- `extract_extensions_from_text()` 関数
- `get_dynamic_requirements()` 関数
- `evaluate_exploration_v36()` 関数
#### 4. tools/query_frame.py
**削除**:
- `assess_risk_level()` 関数
- `get_exploration_requirements()` 関数
#### 5. .claude/commands/code.md
**変更**:
```markdown
# v1.9まで
| `--gate=LEVEL` | `-g=LEVEL` | Gate level: h(igh), m(iddle), l(ow), a(uto), n(one) |
# v1.10以降
| `--gate=LEVEL` | `-g=LEVEL` | Gate level: f(ull), a(uto) [default: auto] |
```
**オプション説明**:
- `--gate=full` または `-g=f`: 全フェーズ強制実行
- `--gate=auto` または `-g=a`: 各フェーズ前に都度チェック(デフォルト)
---
## gate_level移行ガイド
### v1.9からv1.10へのマッピング
| v1.9 | v1.10 | 動作 |
|------|-------|------|
| `--gate=high` | `--gate=full` | 全フェーズ実行(チェック無視) |
| `--gate=middle` | `--gate=full` | 全フェーズ実行(チェック無視) |
| `--gate=low` | `--gate=auto` | 各フェーズ前に都度チェック |
| `--gate=auto` | `--gate=auto` | 各フェーズ前に都度チェック(新方式) |
| `--gate=none` | (廃止) | 探索自体をスキップする場合は別の方法を使用 |
### HTMLファイル等の特殊判定の廃止
**v1.9まで**:
```python
# HTMLファイルの場合、自動的に要件を緩和
if is_markup_context(files_analyzed):
reqs["symbols_identified"] = 1
```
**v1.10以降**:
```
LLMが実際のコードを見て各フェーズ前にチェック:
Q1: HTMLファイルだが、追加の情報収集が必要か? → NO
→ SEMANTIC スキップ
```
**理由**: ファイル拡張子ではなく、LLMが実際の内容を見て都度判断する方が正確
---
## 今後の最適化方向
### v1.11以降(さらなる改善)
1. **チェックポイントの動的追加**
- フェーズ実行中に新たなチェックポイントを挿入
- 状況に応じた柔軟なフロー制御
2. **チェック結果の学習**
- 過去のチェック結果を学習
- プロジェクト特性に応じた推奨回答を提示
3. **並列チェックの可能性検討**
- 独立したチェックを並列化
- さらなる時間削減
---
## Related Changes
- `.claude/commands/code.md`:
- 各フェーズ前のチェック指示追加(Q1/Q2/Q3)
- gate_levelオプション更新(h/m/l/a/n → f/a)
- `code_intel_server.py`:
- `check_phase_necessity` 新ハンドラー
- `submit_verification` 新ハンドラー(分離)
- `submit_impact_analysis` 新ハンドラー(分離)
- `validate_phase_assessment` 関数
- `get_next_checkpoint` 関数
- `tools/session.py`:
- `Phase` 列挙型更新(VERIFICATION/IMPACT_ANALYSIS分離)
- `phase_assessments` フィールド追加
- `GATE_LEVEL_REQUIREMENTS` 削除
- `is_markup_context()` 削除
- `extract_extensions_from_text()` 削除
- `get_dynamic_requirements()` 削除
- `evaluate_exploration_v36()` 削除
- `tools/query_frame.py`:
- `assess_risk_level()` 削除
- `get_exploration_requirements()` 削除
- `docs/DESIGN_ja.md`: ワークフロー更新(各フェーズ前チェック方式、フェーズ分離、gate_level再編)
---
## 削減時間の詳細分析
### 想定ケース別の削減時間
| ケース | 頻度 | v1.9の時間 | v1.10の時間 | 削減 |
|--------|------|-----------|------------|------|
| 単純な修正(情報十分、仮説なし、影響明確) | 20% | 70秒 | 10秒 | 60秒 |
| SEMANTIC中に全て完了 | 25% | 80秒 | 35秒 | 45秒 |
| 仮説なし、影響未確認 | 25% | 80秒 | 35秒 | 45秒 |
| 情報不足、仮説あり、影響未確認 | 25% | 110秒 | 100秒 | 10秒 |
| 複雑なケース(全フェーズ必要) | 5% | 110秒 | 120秒 | -10秒 |
**重み付き平均削減**: 約 35秒
**注**:
- 複雑なケースでは、VERIFICATION と IMPACT_ANALYSIS の分離により+10秒となるが、正確性が向上
- SEMANTIC中に検証・確認が完了するケースで大きな削減効果(25%のケースで45秒削減)