SoSoraEndo2025年6月25日2 min196 字
なぜ眠れなくなるか
プロンプトを変えるたびに、結果が「前より良い」か「前より悪い」かを判定できないから。これは RSpec を書かずにアプリを直し続けるのと同じ。
eval suite を書く
# spec/evaluations/summarizer_spec.rb
describe 'summarizer prompt v3' do
cases = YAML.load_file('eval_cases.yml')
cases.each do |c|
it "produces <= 200 chars for: #{c['name']}" do
result = ClaudeClient.summarize(c['input'])
expect(result.length).to be <= 200
expect(result).to include(c['must_contain'])
end
end
end
評価軸の選び方
- 長さ — 文字数 / トークン数の上下限
- 必須要素 — 含まれるべき固有名詞・数値
- 形式 — JSON 構造 / 列の数
- 回避 — 含まれてはいけない語彙
これらすべてを「人間判定」ではなく「機械判定」で書ける形にする。
まとめ
評価が test なら、プロンプト改善は green/red を見ながら進められる。「気分で続ける改善」から卒業できます。