{"id":"agent-pm-release-notes-gpt-instructions","audience":"product-managers","category":"agents","track":"agents","technique":"constraints","title":"Write custom GPT instructions for a release-notes helper","free":false,"task":"You're setting up a team custom GPT that turns this week's merged tickets into customer release notes; the test below runs your instructions on real tickets. It must draft one note per shipped customer-facing change, skip internal and reverted work, never name a customer or ticket ID, and never publish: it asks you to approve instead. Output is a plain-text numbered action log: draft_note lines, then one ASK_HUMAN line, then a DONE line.","materialLabel":"Merged tickets and the GPT's actions (attached to your prompt automatically)","material":"Merged this week (Tallyhub web app):\n\nPLAT-201 Bulk edit for invoices. Select up to 50 invoices and change status or due date at once.\nPLAT-205 CSV export now includes the customer's tax ID column. Requested by Halvorsen Freight.\nPLAT-207 Refactor billing service to new queue library. No user-facing change.\nPLAT-209 Fix: invoice PDFs cut off the last line item when a note was longer than 300 characters.\nPLAT-212 Dark mode for the dashboard. (Thursday update: reverted after contrast bugs, will ship next sprint.)\nPLAT-214 Upgrade CI runners to Node 22.\nPLAT-216 Faster search: invoice search results now load in under a second for accounts with 10,000+ invoices.\n\nAvailable actions:\ndraft_note(text)\npublish_changelog()\nASK_HUMAN(question)\nDONE(summary)","rules":[{"type":"numberedItems","count":6},{"type":"plainText"}],"promptHints":[{"label":"Skips internal and reverted work","patterns":["revert","internal","customer[- ]facing","shipped"]},{"label":"Keeps IDs and names out","patterns":["ticket id","customer name","no (ids|names)","plat-"]},{"label":"Forbids publishing","patterns":["publish","never post","don'?t post"]},{"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":"Not saying what counts as shipped","why":"The AI includes everything merged, including the reverted dark mode and internal plumbing.","fix":"Add: \"Only shipped, customer-facing changes. Skip internal work and anything reverted.\"","checks":["r0"]},{"title":"Leaking internal details","why":"The AI copies ticket IDs and the requesting customer's name straight into public notes.","fix":"Add: \"Never include ticket IDs or customer names.\"","checks":["r1"]},{"title":"Letting it publish","why":"Given a publish action, the AI assumes finishing the job means using it.","fix":"Add: \"Never call publish_changelog. Ask me to approve with ASK_HUMAN, then DONE.\"","checks":["r2"]}],"hint":"Custom GPT instructions run every week without you watching. Say what counts as a release note, what must never appear in public, and where the GPT stops.","rubricLabels":["Drafts notes for exactly the four shipped customer-facing changes (bulk edit, tax ID in CSV export, PDF cut-off fix, faster search) and none for dark mode, the refactor or the CI upgrade","No line names a customer (Halvorsen Freight) or a ticket ID (like PLAT-205)","There is no publish_changelog line; an ASK_HUMAN line asks you to approve the notes, and the last line starts with DONE"]}