エンジンリファレンス

エンジンのしくみ

このページの内容はすべて、エンジン自身のデータ(RULES、DIMENSIONS、SEVERITY_PENALTY、STAGE_LABELS)から生成されているため、コードとずれることはありません。

パイプライン

  1. プロンプトの解析 parse
  2. 意図の検出 intent
  3. 構造の分析 structure
  4. 要件の抽出 requirements
  5. 曖昧さの検出 ambiguity
  6. 不足コンテキストの検出 missing_context
  7. 指示の品質 instruction_quality
  8. 制約の分析 constraints
  9. 出力形式の分析 output_format
  10. トークン分析 tokens
  11. 冗長性の検出 redundancy
  12. セキュリティとインジェクションの分析 security
  13. 最適化戦略 strategy
  14. プロンプトの変換 transform
  15. 検証 validation
  16. 品質評価 evaluation
  17. トークンとコストの比較 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 は、ざっくり書かれた依頼をセクション構成のエンジニアリングプロンプトに変えます。最適化とは別の操作です。最適化は語を削って何も失われていないことを証明し、再構成は並べ替えを行い、ソフトウェアのタスクではテスト計画を加えます。

  1. 整える。 balanced モードと同じ、冗長表現と重複の削除。
  2. 分割する。 続け書きの文を、新しい指示を始める接続詞で節に分けます(fix X and make Y work and don't break Z)。動詞の組や名詞の列挙はそのままです。
  3. 振り分ける。 各節を Role、Objective、Context、Requirements、Constraints、Expected output のいずれかに入れます。コード、引用、URL、変数は編集されません。
  4. 骨組みを加える。 ソフトウェアのタスクに限り、検出した意図(デバッグ、新規コード、リファクタリング、テスト、レビュー、設定、説明)とトピック(認証、API、データベース、UI、パフォーマンス、決済)に応じた固定の指針を加えます。エッジケース、テスト、受け入れ基準、デフォルトの出力形式です。

結果のすべての行には、prompt(あなたの記述)、engine(追加された指針)、codebase(VS Code 拡張機能が渡すプロジェクトの情報)のいずれかのラベルが付くため、インターフェースは何が加えられたかを正確に示せます。内容のないセクションは省略されます。明確な 1 行の依頼はそのまま返され、コード以外のプロンプトにはテスト計画は付きません。すでに書いた指針は繰り返されず、独自の出力形式を書けばデフォルトを置き換えます。何も加えずに並べ替えだけを行うには scaffold: false を渡してください。

指針はエンジンのソースコード内の固定テーブルであり、モデルの出力ではないため、同じ依頼からは常に同じプロンプトが生成されます。セクション見出しと指針の行は英語です。

トークンとコスト

OpenAI のモデルは o200k_base(GPT-4/3.5 は cl100k_base)で数え、「正確」と表示します。他のプロバイダーは代用として o200k_base を使い、「概算」と表示します。トークナイザーが読み込まれていないときは、文字数 ÷ 4 にフォールバックし、「ヒューリスティック」と表示します。コストは、各価格を確認した日付付きの参考価格表を使います。モデルカタログを参照してください。