システムプロンプト Linter
システムプロンプトをよくある問題で点検:曖昧な指示、矛盾するルール、例示の欠如、肥大化したコンテキスト。ヒューリスティック、辛口、高速。
用途
本番の system prompt の多くは死んだフレーズだらけです。「親切にしてください」「常に正確に」「絶対に作話しないこと」。これらは願望であって指示ではありません — モデルが「どう違って振る舞うべきか」を読み取れないので、行動を変えられないのです。本ツールはあなたの prompt に短いヒューリスティックを走らせ、「prompt が著者の想定より仕事をしていない」とほぼ常に示唆するパターンを浮かび上がらせます。辛口でヒューリスティック、神ではありません — ただし指摘される穴はレビュアーが指摘するのと同じ穴であり、本番で静かにドリフトを起こす同じ穴です。
使うべきタイミング
- 新しい system prompt を出す前。 5 秒のサニティチェック。
- eval リグレッション後のイテレーション中。 「悪くなさそう」な prompt に 3 つの絶対指示が矛盾していること、よくあります。
- 同僚の prompt レビュー。 プロンプトエンジニアでなくともコメントできる箇所が浮かびます。
- 継ぎ足しで育った長寿 prompt の監査。 古い prompt はカスを集めます。リンタが特に重いカスを目立たせます。
チェック項目
- 具体的なロール設定 — モデルが実際に何をするかを述べているか、それとも「親切に」だけか。
- 例示 — 1 つの作り込まれた例は、どれだけ長文の散文よりも強い。2 つあれば 1 つに勝る。
- 出力フォーマット — JSON / 散文 / 表 / Markdown を明示しているか。これ抜けが下流パーサ崩壊の原因 #1。
- refusal の挙動 — スコープ外をユーザが訊ねたとき何をすべきかを定義しているか。
- 幻覚対策 — 検証・引用・無知の自認をモデルに指示しているか。
- 曖昧な絶対指示 — 「常に」「決して」が多すぎると全てが無視可能になります。
- 相反する指示 — 「簡潔に」+「徹底的に」、または「常に X」+「決して X」。
- ペルソナドリフト — 複数の「あなたは…」がペルソナの揺れを誘発します。
- トークン量 — 概ね 2k トークンを超えると、prompt 中盤の指示は失われがち。
- スマートクォート — Word からのコピペで混入し、下流の文字列リテラル一致が壊れます。
- 呼称 — 「あなたは…」(二人称)と「アシスタントは…」(三人称)。モデルは前者を好みます。
- 推論キュー — 多段タスクには明示的に「考えてから答える」と書く。
- メタコメントの漏出 — system prompt 内の「AI として…」のような表現は、応答にもれがちです。
限界
- パターンマッチであって読解ではありません。 あなたの例が良いか、設定したロールが意味のあるものかは判別できません。表面パターンの有無を見るだけ。
- 偽陽性は出ます。 短く焦点の絞られた prompt はこのルブリックでは「未完」に見えがち — 未完が正解の場合もあります。
- eval の代替ではありません。 全ての check に通っても「prompt が良い」を意味せず、「明らかに壊れていない」だけです。
- 英語バイアス。 ヒューリスティックは英語キーワードを探します。非英語 prompt は結果がノイジーになります。
- プライバシー。 何もページ外に出ません。全ての check はブラウザ内 JS で動きます。