elicitation について
elicitationは、外部検証の前にエージェントがコードを自己レビューし、修正するためのスキルです。12カテゴリ、75種類の手法を備え、手動選択、自動適用、スキップに対応し、後続の比較用に結果を保存します。
主な機能
- 0112カテゴリ、75種類のレビュー手法
- 02手動・自動・スキップモード
- 03コード種別に応じた手法選択
- 04変更を記録する自己修正
- 05スコアに基づく終了基準
- 06後続比較用のレビュー結果保存
活用シーン
- 01外部検証前のコードレビュー
- 02認証変更に対するセキュリティ確認
- 03APIエンドポイントのエラー処理確認
- 04複数回のレビュー結果の比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fusengine/ claude-plugins --skill elicitationインストール後、Claude Code で/elicitationを入力して読み込まれたか確認します。
詳細
APEX フローの Execute と eXamine の間に配置され、終了しきい値に照らして自己採点します(90%以上なら次へ進み、70〜89%なら不足点を記録し、70%未満なら反復します)。また、結果を .claude/apex/docs/elicit-{task-slug}.json に保存するため、後続のパスでは最初からやり直すのではなく、以前の判定との差分を確認できます。
Elicitation スキル
目的
エキスパートエージェントが外部検証(sniper)の前に、自身のコードを自己レビューして自己修正できるようにします。BMAD-METHOD の 75 の Elicitation テクニックに基づいています。
3 つの実行モード
モード 1:MANUAL(デフォルト)
Expert presents 5 relevant techniques → User chooses → Expert applies
モード 2:AUTO(--auto)
Expert auto-detects code type → Auto-selects techniques → Applies silently
モード 3:SKIP(--skip)
Skip elicitation → Go directly to sniper validation
クイックスタート
Execute フェーズの後、エキスパートが実行します:
# Manual mode (default)
> Apply elicitation skill
# Auto mode (no prompts)
> Apply elicitation skill --auto
# Skip self-review
> Apply elicitation skill --skip
ワークフローの概要
┌─────────────────────────────────────────────────────────┐
│ ELICITATION WORKFLOW │
│ │
│ Step 0: Init → Load context │
│ Step 1: Analyze Code → Detect code type │
│ Step 2: Select → Choose techniques (or auto) │
│ Step 3: Apply Review → Execute techniques │
│ Step 4: Self-Correct → Fix own issues │
│ Step 5: Report → Summary before sniper │
└─────────────────────────────────────────────────────────┘
自動検出マトリックス
| 検出されたコードの種類 | 自動選択されるテクニック |
|---|---|
| 認証/セキュリティ | セキュリティ監査、OWASP チェック、入力検証 |
| API エンドポイント | エラー処理、型カバレッジ、API コントラクト |
| データベース/ORM | N+1 検出、マイグレーションの安全性、データ整合性 |
| UI コンポーネント | アクセシビリティ、エッジケース、ローディング状態 |
| ビジネスロジック | SOLID 準拠、ユニットテストのカバレッジ、エッジケース |
| リファクタリング | 破壊的変更、回帰分析、後方互換性 |
| パフォーマンスが重要な箇所 | プロファイリング、メモリ分析、複雑度チェック |
設定/ドキュメント/プラグインファイル(.md のエージェント/スキル、hooks.json、フロントマター YAML) | CQ-01、DOC-01、INT-01 + 利用チェーン内で最も厳格なパーサーによる検証(例:フロントマターには strict モードの js-yaml、JSON には json.tool)――「形式が整っているように見える」だけで済ませない |
テクニックのカテゴリ(12)
全カタログ:references/techniques-catalog.md
- コード品質(7):コードレビュー、パターン検出、複雑度分析...
- セキュリティ(7):OWASP 監査、入力検証、認証チェック...
- パフォーマンス(6):プロファイリング、N+1 検出、メモリ分析...
- アーキテクチャ(6):SOLID チェック、依存関係分析、結合度レビュー...
- テスト(6):エッジケース、境界値テスト、エラーパス...
- ドキュメント(6):API レビュー、コメントチェック、型カバレッジ...
- UX(6):アクセシビリティ、エラーメッセージ、ローディング状態...
- データ(6):スキーマ検証、マイグレーションの安全性、データ整合性...
- 並行処理(6):競合状態、デッドロック分析、状態同期...
- 統合(7):API コントラクト、後方互換性、破壊的変更...
- 可観測性(6):ログ、メトリクス、エラートラッキング...
- 保守性(6):可読性、命名、ファイル構成...
合計:75 のテクニック
APEX との統合
A-nalyze → P-lan → E-xecute → [ELICIT] → X-amine
│ │ │
▼ ▼ ▼
Expert Expert sniper
code self-review (final)
メリット:
- エキスパートが sniper の前に自身のミスを発見できます
- 検証をより迅速に行えます(sniper による修正が減ります)
- 知識を保持できます(エキスパートが自己レビューから学びます)
禁止事項
- ❌ 初期化手順を省略する(コンテキストの読み込みが必要です)
- ❌ コードの種類を理解せずにテクニックを適用する
- ❌ 変更を記録せずに自己修正する
- ❌ 適用したテクニックを列挙せずに報告する
- ❌ 専門分野外のテクニックを使用する
終了基準(ステップ 5:レポート)
スコア = 適用したテクニック / 選択したテクニック。重要カテゴリ(セキュリティ、アーキテクチャ)に応じて重み付けされます。
| スコア | 状態 | アクション |
|---|---|---|
| ≥ 90% | 🟢 | スナイパーに進む |
| 70-89% | 🟡 | ギャップを記録してから進む |
| < 70% | 🔴 | スナイパーに進む前に反復する |
自己修正の失敗:自己修正によってコードが壊れた場合は、その修正を元に戻し、検出事項をレポート項目として残します。
成果物の仕様
ステップ 5 では .claude/apex/docs/elicit-{task-slug}.json を保存します。これにより、後続のパスでは最初からやり直すのではなく、以前の判定との差分を確認できます。仕様全体、{task-slug} の導出方法、JSON スキーマについては、references/artifact-contract.md を参照してください。
ステップのリファレンス
| ステップ | ファイル | 目的 |
|---|---|---|
| 0 | steps/step-00-init.md | コンテキストを読み込み、モードを検出し、存在する場合は以前の成果物を読み込む |
| 1 | steps/step-01-analyze-code.md | 作成されたコードを分析する |
| 2 | steps/step-02-select-techniques.md | テクニックを選択する |
| 3 | steps/step-03-apply-review.md | レビューを適用する |
| 4 | steps/step-04-self-correct.md | 自己修正する |
| 5 | steps/step-05-report.md | レポートを生成し、elicit-{task-slug}.json を保存する |