local PKG = "prompt_ab_demo"
local prompts = {
{ name = "terse", system = "Answer in one sentence." },
{ name = "cot", system = "Think step by step, then answer." },
{ name = "persona", system = "You are a careful expert. Answer precisely." },
}
local temperatures = { 0.0, 0.7 }
local function synthetic_score(prompt_name, temperature)
local base = ({ terse = 0.62, cot = 0.81, persona = 0.74 })[prompt_name]
local temp_penalty = temperature * 0.08 return math.max(0, math.min(1, base - temp_penalty))
end
local results = {}
for _, p in ipairs(prompts) do
for _, t in ipairs(temperatures) do
local score = synthetic_score(p.name, t)
local card = alc.card.create({
pkg = { name = PKG },
model = { id = "claude-opus-4-6" },
scenario = { name = "factual_qa_sample50", case_count = 50 },
params = {
prompt_variant = p.name,
temperature = t,
},
stats = {
pass_rate = score,
n = 50,
},
metadata = {
system_prompt = p.system,
experiment_tag = "prompt_ab_v1",
},
})
results[#results + 1] = {
card_id = card.card_id,
variant = p.name,
temperature = t,
score = score,
}
end
end
local best = alc.card.find({
pkg = PKG,
order_by = "-stats.pass_rate",
limit = 1,
})[1]
alc.card.alias_set("best_prompt_ab", best.card_id, {
pkg = PKG,
note = "automated via prompt_ab_demo.lua",
})
alc.card.append(best.card_id, {
review = {
reviewer = "prompt_ab_demo",
reviewed_at = os.date("!%Y-%m-%dT%H:%M:%SZ"),
verdict = "accepted",
},
})
return {
trials = results,
best = {
card_id = best.card_id,
pass_rate = best.pass_rate,
scenario = best.scenario,
},
aliases = alc.card.alias_list({ pkg = PKG }),
total_cards_for_pkg = #alc.card.list({ pkg = PKG }),
}