Decision to Action
Use when someone brings an open question, choice, or problem where research could change what they should actually do — vendor selection, hiring, market entry, build-or-not, where to focus. Drives it end to end: frame the decision, gather evidence in parallel, attack the emerging answer, commit to one recommendation, then prepare or execute the next actions. Stop at a research report only when no safe action exists.
- 1
Frame the decision
Do not start researching. Convert the request into a decision contract first.
Read the context you already have, then write down: what is being decided, why now, the candidate options, what a good outcome looks like, hard constraints, the deadline, what is already known, which unknowns could change the answer, who owns the final call, and what the agent may do without asking.
Ask the requester only about things you genuinely cannot look up — preferences, priorities, internal constraints, risk appetite. Anything searchable, go find yourself.
If the options are vague or the real question is hidden behind a stated one, stress-test the framing before accepting it.
Gate: you may proceed only once you can state what a good answer would look like. If you cannot, the framing is not done.
- 2
Map what must be known
Work backwards from the contract: which unknowns could actually flip the decision? Only those are worth researching.
Harvest internal context before touching the open web — local files, prior reports, email, chat, drive, CRM, code, databases, saved memory. Reach these through MCP servers or native connectors where they exist; when a CLI or API already exists, drive that directly instead of building new plumbing.
Then split the remaining gap into 3-6 research lanes. Each lane is one question that can be investigated largely independently of the others. Mark each lane critical, high, or normal, and name the source types that would settle it.
Write an explicit stop condition so research can terminate.
Gate: parallelize only lanes that do not depend on each other's findings. Do this mapping yourself — do not spawn research agents yet.
- 3
Investigate in parallel
Now delegate. Hand each independent lane to its own short-lived research agent: one agent, one question. Do not ask an agent for an essay, and do not let it recommend anything.
Require source-first work, in this order of preference: primary source, official documentation, original data or paper, reliable secondary source, community experience. A claim with no locatable source is an unknown, not a finding.
Collect every agent's result in the same shape so the findings can be compared rather than read one by one. Keep only the structured result in coordinator context; discard the agent's working transcript.
Gate: for every critical lane there is evidence, each finding names its source, and the remaining uncertainty is stated rather than smoothed over.
- 4
Challenge the emerging answer
Write a provisional recommendation, then try to break it. This phase is what separates this playbook from a research report.
Go after: the strongest counterargument, missing evidence, findings that contradict each other, assumptions nobody stated, the downside scenario, how stale the sources are, whether the numbers actually add up, and which consequences are irreversible.
When the stakes justify it, send the hypothesis to an independent verifier that did not gather the evidence. For code or built artifacts, review the source and separately validate real behavior.
Record every material claim in one ledger, tagged: [V] verified, [D] disputed, [U] unknown, [A] assumption.
Gate: the unknowns that could reverse the recommendation have been reduced to a level you can defend in writing.
- 5
Decide
The coordinator decides. Never delegate this to a research agent.
Produce exactly one recommendation — not a pros-and-cons table for the human to resolve. State: the recommended option, why, why the best alternative loses, the material evidence behind it, a confidence level, the real risks, and the specific findings that would reverse the decision.
If the decision is cheap and reversible and you hold the authority, take it and say so. Return it to the human owner when it is expensive, irreversible, or outside the granted authority.
When you return it, do not ask "what would you like to do?" Present the recommendation, the evidence, the remaining risk, and named choices with their consequences: proceed, modify, or stop.
- 6
Turn the decision into action
A decision that produces nothing is not done. Build an action pack, choosing domain skills to fit the decision — a spec and tickets for a product call, drafts and trial setup for a vendor call, an itinerary and booking-ready options for a trip, reference questions and an offer draft for a hire.
Do freely: search, read, analyze, calculate, draft, prepare, validate, simulate. Stop for explicit approval before you send, publish, purchase, sign, delete, deploy, move money, change permissions, or commit anyone to an external obligation.
Execute what is safe and authorized. Leave everything else approval-ready — written, checked, one confirmation away — and log what was executed versus what is waiting.
Done means: the decision is made and evidence-backed, major uncertainties are explicit, next actions are concrete, artifacts exist, safe actions are executed, and unsafe ones wait only on a human yes.
Content digest
sha256:sha256:85a21c9d008b3a9940aad5edcff0d15b559113a40d6ee5b274e04f84913c9e32{"category":"productivity","description":"Use when someone brings an open question, choice, or problem where research could change what they should actually do — vendor selection, hiring, market entry, build-or-not, where to focus. Drives it end to end: frame the decision, gather evidence in parallel, attack the emerging answer, commit to one recommendation, then prepare or execute the next actions. Stop at a research report only when no safe action exists.","inputSchema":{"additionalProperties":true,"properties":{"authority":{"additionalProperties":true,"description":"Per-action-class permission: autonomous, approval, or forbidden.","properties":{"contactExternalParty":{"enum":["autonomous","approval","forbidden"],"type":"string"},"publishOrSend":{"enum":["autonomous","approval","forbidden"],"type":"string"},"research":{"enum":["autonomous","approval","forbidden"],"type":"string"},"spend":{"enum":["autonomous","approval","forbidden"],"type":"string"}},"type":"object"},"constraints":{"additionalProperties":true,"description":"Hard limits such as budget, timeline, headcount, or compliance.","type":"object"},"deadline":{"description":"When the decision must be made (ISO date or plain description).","type":"string"},"decisionOwner":{"description":"Who makes the final call. Defaults to the requester.","type":"string"},"options":{"description":"Known candidate options, if any. Leave empty when the options are themselves unclear.","items":{"type":"string"},"type":"array"},"question":{"description":"The question, choice, or problem as the requester stated it.","type":"string"},"workspacePath":{"description":"Directory for durable state. Defaults to ./decision/.","type":"string"}},"required":["question"],"type":"object"},"schemaVersion":1,"steps":[{"expectedOutputs":[{"fields":["decision","decision_owner","deadline","options","success_criteria","constraints","known","unknown","authority"],"format":"yaml","name":"decision-contract.yaml"}],"id":"J47P","instructions":"Do not start researching. Convert the request into a decision contract first.\n\nRead the context you already have, then write down: what is being decided, why now, the candidate options, what a good outcome looks like, hard constraints, the deadline, what is already known, which unknowns could change the answer, who owns the final call, and what the agent may do without asking.\n\nAsk the requester only about things you genuinely cannot look up — preferences, priorities, internal constraints, risk appetite. Anything searchable, go find yourself.\n\nIf the options are vague or the real question is hidden behind a stated one, stress-test the framing before accepting it.\n\nGate: you may proceed only once you can state what a good answer would look like. If you cannot, the framing is not done.","resourceHints":[{"kind":"skill","ref":"https://github.com/mattpocock/skills/blob/main/skills/productivity/grilling/SKILL.md","selector":"main"},{"kind":"skill","ref":"https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md","selector":"main"}],"title":"Frame the decision"},{"expectedOutputs":[{"fields":["lanes[].id","lanes[].question","lanes[].importance","lanes[].sources","stop_condition"],"format":"yaml","name":"research-map.yaml"}],"id":"JBKC","instructions":"Work backwards from the contract: which unknowns could actually flip the decision? Only those are worth researching.\n\nHarvest internal context before touching the open web — local files, prior reports, email, chat, drive, CRM, code, databases, saved memory. Reach these through MCP servers or native connectors where they exist; when a CLI or API already exists, drive that directly instead of building new plumbing.\n\nThen split the remaining gap into 3-6 research lanes. Each lane is one question that can be investigated largely independently of the others. Mark each lane critical, high, or normal, and name the source types that would settle it.\n\nWrite an explicit stop condition so research can terminate.\n\nGate: parallelize only lanes that do not depend on each other's findings. Do this mapping yourself — do not spawn research agents yet.","resourceHints":[{"kind":"document","ref":"https://modelcontextprotocol.io/","selector":"stable"},{"kind":"api","ref":"https://registry.modelcontextprotocol.io/","selector":"stable"}],"title":"Map what must be known"},{"expectedOutputs":[{"fields":["claim","status","confidence","evidence[].source_type","evidence[].source","evidence[].finding","contradictions","decision_impact","unknowns"],"format":"yaml","name":"evidence/<lane>.yaml"}],"id":"038P","instructions":"Now delegate. Hand each independent lane to its own short-lived research agent: one agent, one question. Do not ask an agent for an essay, and do not let it recommend anything.\n\nRequire source-first work, in this order of preference: primary source, official documentation, original data or paper, reliable secondary source, community experience. A claim with no locatable source is an unknown, not a finding.\n\nCollect every agent's result in the same shape so the findings can be compared rather than read one by one. Keep only the structured result in coordinator context; discard the agent's working transcript.\n\nGate: for every critical lane there is evidence, each finding names its source, and the remaining uncertainty is stated rather than smoothed over.","resourceHints":[{"kind":"document","ref":"https://code.claude.com/docs/en/sub-agents","selector":"stable"},{"kind":"agent","ref":"skill://research","selector":"stable"}],"title":"Investigate in parallel"},{"expectedOutputs":[{"convention":"One line per claim, prefixed [V] verified, [D] disputed, [U] unknown, or [A] assumption, each with its source.","format":"markdown","name":"claim-ledger.md"}],"id":"AYAA","instructions":"Write a provisional recommendation, then try to break it. This phase is what separates this playbook from a research report.\n\nGo after: the strongest counterargument, missing evidence, findings that contradict each other, assumptions nobody stated, the downside scenario, how stale the sources are, whether the numbers actually add up, and which consequences are irreversible.\n\nWhen the stakes justify it, send the hypothesis to an independent verifier that did not gather the evidence. For code or built artifacts, review the source and separately validate real behavior.\n\nRecord every material claim in one ledger, tagged: [V] verified, [D] disputed, [U] unknown, [A] assumption.\n\nGate: the unknowns that could reverse the recommendation have been reduced to a level you can defend in writing.","resourceHints":[{"kind":"skill","ref":"https://github.com/obra/superpowers/blob/main/skills/verification-before-completion/SKILL.md","selector":"main"},{"kind":"skill","ref":"https://github.com/openclaw/agent-skills/blob/main/skills/autoreview/SKILL.md","selector":"main"},{"kind":"skill","ref":"https://github.com/openclaw/agent-skills","selector":"main"}],"title":"Challenge the emerging answer"},{"expectedOutputs":[{"format":"markdown","name":"decision-brief.md","sections":["Recommendation","Confidence","Why","Best alternative","Material evidence","Risks","What would change this decision","Deadline"]}],"id":"ZI7P","instructions":"The coordinator decides. Never delegate this to a research agent.\n\nProduce exactly one recommendation — not a pros-and-cons table for the human to resolve. State: the recommended option, why, why the best alternative loses, the material evidence behind it, a confidence level, the real risks, and the specific findings that would reverse the decision.\n\nIf the decision is cheap and reversible and you hold the authority, take it and say so. Return it to the human owner when it is expensive, irreversible, or outside the granted authority.\n\nWhen you return it, do not ask \"what would you like to do?\" Present the recommendation, the evidence, the remaining risk, and named choices with their consequences: proceed, modify, or stop.","resourceHints":[{"kind":"document","ref":"https://github.com/steipete/agent-scripts/blob/main/skills/maintainer-orchestrator/SKILL.md","selector":"main"}],"title":"Decide"},{"expectedOutputs":[{"contents":["next-actions.md","execution-log.md","drafts and domain artifacts as the decision requires"],"format":"directory","name":"action-pack/"}],"id":"W52K","instructions":"A decision that produces nothing is not done. Build an action pack, choosing domain skills to fit the decision — a spec and tickets for a product call, drafts and trial setup for a vendor call, an itinerary and booking-ready options for a trip, reference questions and an offer draft for a hire.\n\nDo freely: search, read, analyze, calculate, draft, prepare, validate, simulate. Stop for explicit approval before you send, publish, purchase, sign, delete, deploy, move money, change permissions, or commit anyone to an external obligation.\n\nExecute what is safe and authorized. Leave everything else approval-ready — written, checked, one confirmation away — and log what was executed versus what is waiting.\n\nDone means: the decision is made and evidence-backed, major uncertainties are explicit, next actions are concrete, artifacts exist, safe actions are executed, and unsafe ones wait only on a human yes.","resourceHints":[{"kind":"skill","ref":"https://github.com/mattpocock/skills/blob/main/skills/engineering/to-spec/SKILL.md","selector":"main"},{"kind":"skill","ref":"https://github.com/mattpocock/skills/blob/main/skills/engineering/to-tickets/SKILL.md","selector":"main"},{"kind":"skill","ref":"https://github.com/mattpocock/skills/blob/main/skills/engineering/implement/SKILL.md","selector":"main"}],"title":"Turn the decision into action"}],"title":"Decision to Action"}