name: intent-classifier description: "ユーザーの依頼文から開発 Intent を 7 分類し、structured JSON で返す。Use when: ユーザーの依頼を受け取った直後に意図を分類したい時。「この依頼は何を求めているか判定して」「Intent を分類して」「依頼の種別を教えて」。"
Intent Classifier
ユーザーの依頼文を読み取り、開発 Intent を 7 分類のいずれかに判定して structured JSON で返す。
Iron Law
CLASSIFY BASED ON EXPLICIT SIGNALS, NOT ASSUMPTIONS
依頼文に存在しないシグナルで分類を変えてはならない。 曖昧な場合は confidence を下げて reasoning に根拠を示せ。
Common Rationalizations
| こう思ったら | 現実 |
|---|---|
| 「文脈から明らかだから confidence=1.0 でいい」 | 曖昧さは必ず confidence に反映しろ |
| 「どちらにも取れるが多分 feature だろう」 | 複数候補時は上位 2 件を candidates に列挙しろ |
| 「short な依頼文だから判定できない」 | 情報不足でも最良推定で判定し、confidence を下げる |
Intent 分類定義
| Intent | 説明 | キーワード例 |
|---|---|---|
feature |
新機能・新動作の追加 | 追加, 実装, 作成, 新しい, 追加してほしい |
bug |
既存機能の欠陥修正 | 直す, 修正, エラー, バグ, 壊れている, 失敗する |
refactor |
動作を変えずにコード構造を改善 | リファクタ, 整理, 整頓, 分割, 綺麗にする, 改善 |
research |
技術調査・設計調査・情報収集 | 調査, 調べる, 比較, 評価, どうすべきか, 方針 |
review |
コード・設計・ドキュメントのレビュー | レビュー, 確認, チェック, 問題ないか, 品質 |
docs |
ドキュメント・コメント・README の追加・更新 | ドキュメント, README, コメント, 説明, 記述 |
ops |
CI/CD・デプロイ・監視・インフラ・設定変更 | デプロイ, CI, CD, インフラ, 設定, 環境, リリース |
手順
Step 1: 依頼文の読み取り
ユーザーの依頼文(または直前の会話コンテキスト)を入力として受け取る。 依頼文が複数文の場合は全体を読み取り、主目的を抽出する。
Step 2: シグナル抽出
依頼文から以下のシグナルを特定する:
- 動詞シグナル: 「追加する」「修正する」「調査する」「レビューする」等
- 名詞シグナル: 「バグ」「機能」「ドキュメント」「設定」等
- 状態シグナル: 「壊れている」「存在しない」「改善したい」等
Step 3: 分類判定
シグナルを Intent 分類定義と照合し、最も一致する Intent を選択する。
優先順位ルール:
- bug シグナル(エラー・壊れている・失敗)が明示されていれば
bugを優先 - 「追加」+ 「新しい」の組み合わせは
featureを優先 - 動作変更なしの「整理」「分割」は
refactorを優先 - 「どうすべきか」「比較」「評価」は
researchを優先 - ドキュメント・コメントのみの変更は
docsを優先 - CI/CD・デプロイ・インフラ変更は
opsを優先
Step 4: confidence 算定
| シグナル強度 | confidence 範囲 |
|---|---|
| 複数の一致シグナルあり | 0.85 〜 1.0 |
| 1 つの明確なシグナルあり | 0.65 〜 0.84 |
| シグナルが弱い / 複数候補 | 0.40 〜 0.64 |
| ほぼ判断不能 | 0.10 〜 0.39 |
Step 5: 出力生成
以下のフォーマットで structured JSON を出力する。
出力フォーマット
{
"intent": "<feature|bug|refactor|research|review|docs|ops>",
"confidence": <0.0〜1.0>,
"reasoning": "<判定根拠を1〜2文で説明>",
"candidates": [
{
"intent": "<第2候補>",
"confidence": <0.0〜1.0>
}
]
}
フィールド仕様:
intent: 7 分類のいずれか(必須)confidence: 0.0〜1.0 の実数(必須)reasoning: 判定根拠の説明(必須)candidates: confidence < 0.7 の場合は上位 2 件まで列挙(任意、省略時は空配列)
使用例
入力: 「ログイン機能を追加してほしい」
出力:
{
"intent": "feature",
"confidence": 0.95,
"reasoning": "「追加してほしい」という動詞と「機能」という名詞から、新機能追加の依頼と判定した。",
"candidates": []
}
入力: 「認証画面でエラーが出ているのを直してほしい」
出力:
{
"intent": "bug",
"confidence": 0.92,
"reasoning": "「エラー」「直してほしい」というバグ修正シグナルが明示されている。",
"candidates": []
}
関連 Skill
- skill-policy-router: Intent + Mode を受け取り GatePolicy を返す。intent-classifier の出力をそのまま渡せる