<meta>
description: インタラクティブな技術設計品質レビューと検証
argument-hint: <feature-name:$1>
</meta>

# 技術設計検証

<background_information>
- **ミッション**: 技術設計のインタラクティブな品質レビューを実施し、実装準備の確認
- **成功基準**:
  - 重大な問題の特定（最も重要な懸念事項を最大3つ）
  - 強みを認識したバランスの取れた評価
  - 根拠を伴う明確な GO/NO-GO 判定
  - 必要に応じた改善のための実行可能なフィードバック
</background_information>

<instructions>
## コアタスク
承認済み要件と設計ドキュメントに基づいて、機能 **$1** のインタラクティブな設計品質レビューを実施する。

## 実行ステップ

### ステップ1: コンテキストの読み込み
- `.cursor/$1/spec.json` から言語とメタデータを読み込み
- `.cursor/$1/requirements.md` から要件を読み込み
- `.cursor/$1/design.md` から設計ドキュメントを読み込み

### ステップ2: レビューガイドラインの読み込み
- `.cursor/rules/design-review.md` からレビュー基準とプロセスを読み込み

### ステップ3: 設計レビューの実行
- design-review.md のプロセスに従う: 分析 → 重大な問題 → 強み → GO/NO-GO
- 最も重要な懸念事項を最大3つに限定
- ユーザーとインタラクティブにやり取り
- spec.json で指定された言語で出力

### ステップ4: 判定と次のステップの提供
- 根拠を伴う明確な GO/NO-GO 判定
- 判定に基づいた進め方のガイド
- spec.json を更新:
  - `approvals.design.checked: true`
  - `approvals.design.check_result: "go"` または `"no-go"`
  - `quality_gates.design_check.status: "passed"` または `"failed"`
  - `quality_gates.design_check.checked_at` と `summary` を更新
  - `phase_history` に `{ phase: "design-checked", at, summary }` を追記
  - `updated_at` を更新

## 重要な制約
- **品質保証であり完璧追求ではない**: 許容可能なリスクを受け入れる
- **重大問題のみフォーカス**: 最大3問題、成功に著しく影響するもののみ
- **インタラクティブアプローチ**: 一方的な評価ではなく対話
- **バランスの取れた評価**: 強みと弱みの両方を認識
- **実行可能なフィードバック**: すべての提案は実装可能でなければならない
</instructions>

## ツールガイダンス
- **最初に読み込み**: レビュー前にすべてのコンテキスト（spec、rules）を読み込み
- **必要に応じてGrep**: パターン検証や統合チェックのためコードベースを検索
- **インタラクティブ**: レビュープロセス全体を通じてユーザーとやり取り

## 出力説明
spec.json で指定された言語で以下を出力:

1. **レビューサマリー**: 設計品質と準備状況の簡潔な概要（2-3文）
2. **重大な問題**: 最大3つ、design-review.md フォーマットに従う
3. **設計の強み**: 1-2つのポジティブな側面
4. **最終評価**: 根拠と次のステップを伴う GO/NO-GO 判定
5. **状態更新**: spec.json の design_check 結果を明記

**フォーマット要件**:
- 明確さのためMarkdown見出しを使用
- design-review.md 出力フォーマットに従う
- サマリーは簡潔に

## 安全性とフォールバック

### エラーシナリオ
- **設計が見つからない**: design.md が存在しない場合、メッセージで停止: "先に `/design $1` を実行して設計ドキュメントを生成してください"
- **設計が未生成**: spec.json で設計フェーズが生成済みとしてマークされていない場合、警告を出すがレビューを続行
- **言語が未定義**: spec.json で言語が指定されていない場合、英語（`en`）をデフォルトに

### 次のフェーズ: 実装

**設計が検証に合格した場合（GO判定）**:
- フィードバックをレビューし、必要に応じて変更を適用
- `/impl $1` を実行して実装を開始

**設計の修正が必要な場合（NO-GO判定）**:
- 特定された重大な問題に対処
- `/design $1` を改善とともに再実行
- `/check-design $1` で再検証

**注記**: 設計検証は推奨ですがオプション。品質レビューにより問題を早期発見可能。
</output>
