エンジンリファレンス
エンジンのしくみ
このページの内容はすべて、エンジン自身のデータ(RULES、DIMENSIONS、SEVERITY_PENALTY、STAGE_LABELS)から生成されているため、コードとずれることはありません。
パイプライン
- プロンプトの解析
parse - 意図の検出
intent - 構造の分析
structure - 要件の抽出
requirements - 曖昧さの検出
ambiguity - 不足コンテキストの検出
missing_context - 指示の品質
instruction_quality - 制約の分析
constraints - 出力形式の分析
output_format - トークン分析
tokens - 冗長性の検出
redundancy - セキュリティとインジェクションの分析
security - 最適化戦略
strategy - プロンプトの変換
transform - 検証
validation - 品質評価
evaluation - トークンとコストの比較
comparison
段階 1〜12 はすべての分析で実行されます。段階 13〜17 は最適化のときに実行されます。失敗しうるのは解析だけで、それも空のプロンプトの場合に限られます。セキュリティの検出結果は報告されますが、パイプラインを止めることはありません。
ルールカタログ
各ルールは、該当する例、エンジンによる解説、修正版を載せたリファレンスページにリンクしています。
| コード | 評価軸 | 検出される条件 |
|---|---|---|
missing_objective | 網羅性 | タスクを示すキーワード、命令文、質問がない。 |
too_short | 具体性 | 内容語が 5 語未満。 |
vague_language | 明確さ | 「何か」「いろいろ」「など」「その他」。 |
unquantified_size | 具体性 | 数値のない「短い」「いくつか」「詳しい」。 |
unclear_reference | 網羅性 | 参照先が含まれていない「これ」や「上記」。 |
missing_language | 具体性 | 言語やフレームワークの指定がないコード依頼。 |
hedged_instruction | 明確さ | 「できれば」「可能なら」「たぶん」。 |
long_sentence | 明確さ | 40 語を超える散文の文。 |
negative_only_constraints | 明確さ | 禁止が 3 つ以上あり、肯定的な要件がない。 |
contradictory_instructions | 一貫性 | 形式、長さ、語数制限、ツール、言語の衝突。 |
near_duplicate_instruction | 一貫性 | 単語の重なりが 80% 以上ある 2 つの文。 |
missing_output_format | 出力の指定 | 出力形式が指定されていない。 |
missing_length_guidance | 出力の指定 | 長さの上限がないコンテンツ作成または要約タスク。 |
wall_of_text | 構造 | セクション、リスト、改行がない 120 語以上。 |
duplicate_instruction | 効率 | そのまま繰り返された文。 |
filler_phrases | 効率 | タスクを変えない丁寧表現や強調語。 |
prompt_injection_signature | セキュリティ | 重み付きのインジェクション/ジェイルブレイクのシグネチャ(リスク 60 以上で重大)。 |
sensitive_data | セキュリティ | 認証情報(重大)または個人データ(警告)。 |
undelimited_variable | セキュリティ | タグ、コードフェンス、三重引用符の外にある {{var}} または ${var}。 |
destructive_operation | セキュリティ | rm -rf /、DROP TABLE、すべて削除、curl | sh。 |
インジェクションシグネチャのバージョン:2026.11.1。シグネチャ照合が示すのはリスクであって証拠ではありません。未知の攻撃を見逃すことも、攻撃を議論するために引用したテキストを検出することもあります。
スコアリング
- 検出結果ごとのペナルティ:重大 30、警告 10、情報 3。
- 総合 = 100 − すべてのペナルティの合計。0〜100 に収め、重大な検出結果が 1 つでもあれば上限は 50。
- 各評価軸 = 100 − その評価軸の検出結果のペナルティ。構造は 120 語以上のプロンプトにのみ適用されます。
- 評価:85 以上は優秀、70〜84 は良好、50〜69 は要改善、50 未満は不十分。
どのレポートにも、各評価軸で実行したチェックと、その合否が根拠とともに記載されます。
変換とモード
| モード | 変換 |
|---|---|
| conservative | 空白を正規化し、完全に重複した文を削除する。 |
| balanced | + 冗長な表現や丁寧すぎる表現(please、basically、文頭の I would like you to、挨拶)を削除する。in order to → to。 |
| structured | + 文を Task、Context、Requirements、Output format、Input のセクションに整理し、テンプレート変数をタグで囲む。 |
コードブロック、インラインコード、引用文、URL、XML タグで囲まれたブロック、テンプレート変数は保護されます。変換の前にマスクされ、1 バイトも変えずに復元されます。セクション見出しと変数の区切り以外に内容を加える変換はなく、その 2 つも変更として報告されます。
候補の検証
各モードは候補を 1 つ生成します。候補が有効になるのは、次のすべてを満たす場合だけです。
- 保護された範囲がすべて残っている。
- 元のすべての文が残っている(変換が行うのと同じ正規化を行った後で)。
- 抽出したすべての要件が残っている。
- 新たな警告や重大な検出結果を持ち込まない。
- conservative と balanced モードでは、元のプロンプトよりトークン数が多くない。
エンジンはその後、目標に応じて選びます。tokens(最少)、quality(最高スコア)、balanced(元のトークン数の 115% 以内で最高スコア)。元のプロンプトは常に候補のひとつで、ほかに良いものがなければ元のプロンプトが選ばれます。
再構成
restructurePrompt は、ざっくり書かれた依頼をセクション構成のエンジニアリングプロンプトに変えます。最適化とは別の操作です。最適化は語を削って何も失われていないことを証明し、再構成は並べ替えを行い、ソフトウェアのタスクではテスト計画を加えます。
- 整える。 balanced モードと同じ、冗長表現と重複の削除。
- 分割する。 続け書きの文を、新しい指示を始める接続詞で節に分けます(fix X and make Y work and don't break Z)。動詞の組や名詞の列挙はそのままです。
- 振り分ける。 各節を Role、Objective、Context、Requirements、Constraints、Expected output のいずれかに入れます。コード、引用、URL、変数は編集されません。
- 骨組みを加える。 ソフトウェアのタスクに限り、検出した意図(デバッグ、新規コード、リファクタリング、テスト、レビュー、設定、説明)とトピック(認証、API、データベース、UI、パフォーマンス、決済)に応じた固定の指針を加えます。エッジケース、テスト、受け入れ基準、デフォルトの出力形式です。
結果のすべての行には、prompt(あなたの記述)、engine(追加された指針)、codebase(VS Code 拡張機能が渡すプロジェクトの情報)のいずれかのラベルが付くため、インターフェースは何が加えられたかを正確に示せます。内容のないセクションは省略されます。明確な 1 行の依頼はそのまま返され、コード以外のプロンプトにはテスト計画は付きません。すでに書いた指針は繰り返されず、独自の出力形式を書けばデフォルトを置き換えます。何も加えずに並べ替えだけを行うには scaffold: false を渡してください。
指針はエンジンのソースコード内の固定テーブルであり、モデルの出力ではないため、同じ依頼からは常に同じプロンプトが生成されます。セクション見出しと指針の行は英語です。
トークンとコスト
OpenAI のモデルは o200k_base(GPT-4/3.5 は cl100k_base)で数え、「正確」と表示します。他のプロバイダーは代用として o200k_base を使い、「概算」と表示します。トークナイザーが読み込まれていないときは、文字数 ÷ 4 にフォールバックし、「ヒューリスティック」と表示します。コストは、各価格を確認した日付付きの参考価格表を使います。モデルカタログを参照してください。