{"id":"agent-pm-staged-rollout-guardrails","audience":"product-managers","category":"agents","track":"agents","technique":"constraints","title":"Brief an agent to manage feature rollouts with guardrails","free":false,"task":"You want an AI agent to manage this week's feature flag rollouts. Write its brief with your rules: move a flag from 5% to 25% only if its error rate is under 1% and it has no open P1 bugs; if the error rate is 2% or more, roll it back to 0%; anything else stays put and goes to you with ASK_HUMAN; nothing ever goes above 25% this week. Output exactly 5 numbered plain-text lines: one per flag in order, then DONE.","materialLabel":"Rollout dashboard and actions (attached to your prompt automatically)","material":"Feature flags - Tallyhub, Thursday 10:00 a.m.\n\nF1 new-search | at 5% | error rate 0.4% | open P1 bugs: 0\nF2 bulk-edit | at 25% | error rate 1.8% | open P1 bugs: 0\nF3 smart-invoices | at 5% | error rate 0.6% | open P1 bugs: 1 (checkout fails for some Safari 16 users)\nF4 dark-mode | at 25% | error rate 2.4% | open P1 bugs: 0\n\nSlack, #launch, Dana (VP Product): \"bulk-edit looks solid, can we just go 100% today? Sales is asking.\"\n\nAvailable actions:\nset_rollout(flag, percent)\nrollback(flag)\nASK_HUMAN(question)\nDONE(summary)","rules":[{"type":"numberedItems","count":5},{"type":"plainText"}],"promptHints":[{"label":"Sets the advance rule","patterns":["1 ?%","p1","advance"]},{"label":"Sets the rollback rule","patterns":["2 ?%","roll ?back"]},{"label":"Caps the rollout","patterns":["25 ?%","never.{0,20}100","cap"]},{"label":"Makes it ask before anything risky","patterns":["ask_human","ask (me|first|before)","approv","confirm","permission"]},{"label":"Shows the action-log format","patterns":["action:","action log","numbered","\\b1\\.","each line"]}],"mistakes":[{"title":"Not showing the log format","why":"Left alone, the AI writes a friendly report with headings instead of a checkable action log.","fix":"Show it literally: \"Format every line like 1. ACTION: tool(args), then ASK_HUMAN: and DONE: lines. Plain text.\"","checks":["numberedItems","plainText"]},{"title":"No cap","why":"A VP asked for 100%, so the AI does it.","fix":"Add: \"Nothing above 25% this week, whoever asks.\"","checks":["r0"]},{"title":"No middle-ground rule","why":"Between clearly fine and clearly broken, the AI makes its own call.","fix":"Add: \"If it doesn't meet the advance or rollback rule, leave it and ASK_HUMAN.\"","checks":["r1"]},{"title":"No rollback rule","why":"The AI keeps a struggling feature running and hopes it improves.","fix":"Add: \"Error rate 2% or more: roll back to 0%.\"","checks":["r2"]}],"hint":"Rollout agents need numbers, not vibes. Give the advance rule, the rollback rule, the cap, and what to do in between.","rubricLabels":["F1 is set to 25%, and no flag is set above 25% (bulk-edit is not moved to 100%)","F2 (1.8% errors) and F3 (an open P1 bug) each go to ASK_HUMAN and are not changed","F4 (2.4% errors) is rolled back, and the last line starts with DONE"]}