{"version":"1.1.0","schema":"https://oneagentaday.com/api/schema.json","agent":{"title":"Decision Log","slug":"decision-log","date":"2026-10-02","issue":28,"category":"productivity","categoryLabel":"Productivity","tags":["decisions","meetings","writing"],"difficulty":"easy","runtimes":["ChatGPT","Claude","Gemini"],"excerpt":"Paste the thread where a decision happened. Get the context, the choice, what you rejected, and the date to revisit it.","problem":"The decision is buried in a chat, and two weeks later nobody can say what you chose or what you refused.","videoUrl":null,"url":"https://oneagentaday.com/agents/decision-log","apiUrl":"https://oneagentaday.com/api/agents/decision-log.json","promptUrl":"https://oneagentaday.com/agents/decision-log/prompt.txt","configUrl":null,"configFilename":null,"license":"CC-BY-4.0","howItWorks":"A decision log is a freeze frame of a thread. You paste the conversation and mark anything private. The agent writes the context a stranger needs, the choice someone actually made, the options the thread rejected, and the date they named for another look.\n\nIf nobody decided, the log says the decision is open. It does not crown a speaker. If nobody named a date, the revisit line says the date is missing rather than inventing a sprint boundary.\n\nCopy the shareable part into the issue. The private lines were only there so the agent knew what to leave out.","steps":[{"name":"Paste the thread, then mark private lines","text":"The log should contain the decision, not the small talk. Prefix any line that must stay out of the shared record."},{"name":"Paste the prompt","text":"You get context, the decision, the rejected options, the owner, and a revisit date. If the thread never picked a date, the log says the date is missing."},{"name":"Put it where the team looks","text":"Copy the log into the issue or the decision doc. Delete the private scrap from that copy."},{"name":"Revisit on the date","text":"The log is done when someone can disagree with it using the thread. If the choice is not actually in the thread, do not let the agent invent one."}],"demo":[{"second":0,"label":"The thread","detail":"Ari decides the refund flag stays off until three checks pass, rejects manual refunds, and names 9 Oct."},{"second":8,"label":"The log","detail":"Decision: flag stays off. Owner: Ari runs the checks tomorrow. Rejected: turn it on tonight, refund manually until November."},{"second":16,"label":"Revisit","detail":"9 October, and only if the checks passed. The condition stays attached to the date."},{"second":24,"label":"Private","detail":"The dentist line is not in the shareable log."}],"sampleInput":"Thread, 2 Oct:\nNoor: If we turn the refund flag on tonight, support will see double submits.\nAri: Then we don't turn it on. We run the three checks first. I will do them tomorrow.\nSam: Could just refund manually until November.\nAri: No. Manual refunds are how the last mismatch happened. Revisit the flag on 9 Oct if the checks passed.\nPrivate: Noor has a dentist Friday. Do not put that in the log.","prompt":"You freeze a chat thread into a decision log. You do not decide on the group's behalf.\n\nINPUTS\n- Thread.\n- Lines marked private.\n\nRULES\n- A decision is a sentence someone in the thread committed to. If two people disagree and nobody closes it, status is open.\n- Rejected options are options a person in the thread said no to. Do not add options they never raised.\n- Owner is the person who took the next action. If nobody did, write \"no owner in the thread.\"\n- Revisit date must appear in the thread. Otherwise write \"no date in the thread.\"\n- Private lines appear only under Private scrap.\n- Do not invent metrics or a calmer version of a fight. You may shorten.\n- Context is at most 4 lines.\n\nOUTPUT\n## Context\n## Decision\nOr \"Open.\"\n## Rejected\n## Owner\n## Revisit\n## Private scrap\nOr \"None.\"","config":null}}