Purpose
Make the reasoning behind a decision inspectable later: what was compared,
what evidence supported it, what was assumed, and why the choice was made —
not just the conclusion.
When to use
- Choosing between concrete alternatives (technologies, vendors, approaches)
with real trade-offs.
- Asked to "research X and recommend one" or to document why a decision was
made.
When NOT to use
- The task is open-ended research with no decision at the end ("what's the
state of the art in X") — that's fine to do, but skip the decision-matrix/
ADR machinery; just report findings.
- The "decision" has only one reasonable option — say so plainly instead of
manufacturing a comparison.
Required inputs
- The decision to be made, stated specifically.
- Known constraints (budget, timeline, team expertise, existing systems).
If the decision is vague ("should we improve our infra"), narrow it to a
specific, answerable question before proceeding.
Workflow
- Define the decision — state it as a specific question with a finite
set of options, not an open-ended topic.
- Capture constraints — budget, timeline, team skills, compliance,
existing systems it must integrate with. These often eliminate options
before evidence-gathering even starts.
- Define evaluation criteria — the dimensions that actually matter for
this decision (e.g. operational complexity, cost at expected scale,
ecosystem maturity, team familiarity), agreed before comparing options so
criteria aren't picked to justify a pre-existing preference.
- Collect reliable evidence — use available research/web tools for
external claims (official docs, benchmarks, credible technical sources).
Prefer primary sources over blog-post summaries when possible.
- Separate evidence from assumption — every claim is either backed by
a source/citation or explicitly marked as an assumption. Never blur the two.
- Compare alternatives — score or rank each option against the
criteria from step 3, using the evidence from step 4.
- Identify trade-offs — no option wins on every criterion; state what's
given up by choosing each one.
- Record uncertainties — what wasn't verifiable, what could change the
recommendation if it turned out to be wrong.
- Recommend a decision — the option that best fits the criteria and
constraints, with the reasoning explicit.
- Create an ADR — the durable record (see output contract).
Tool & resource guidance
- Use web search/fetch tools when available for external technical claims
(performance characteristics, pricing, community/ecosystem maturity).
Never fabricate a citation — if a claim can't be verified, mark it as
an assumption or state it plainly as unverified.
- If the decision has a heavy technical-architecture dimension (e.g.
choosing a database or messaging system), consider whether
system-design-reviewer should evaluate the shortlisted option's fit
before finalizing.
- If the decision depends on user/usage data,
data-scientist may need to
run first to produce that evidence.
Output contract
Three artifacts:
- RESEARCH.md — raw findings with source attribution for every external
factual claim.
- DECISION_MATRIX.md — options × criteria, scored, with the evidence
each score is based on.
- ADR.md — using
assets/adr-template.md: context, decision, options
considered, consequences (including trade-offs given up).
Quality checks
Edge cases
- No research tools available: proceed using existing knowledge, but
mark every claim's confidence level and recommend the user verify
time-sensitive facts (pricing, version-specific behavior) independently.
- Only one viable option given the constraints: state that plainly in
the ADR rather than inventing a false comparison.
- Decision is highly reversible/low-stakes: keep the ADR brief — the
rigor should scale with the cost of being wrong.
References
See references/adr-quality.md for what separates a useful ADR from a
box-checking one, references/evidence-sourcing.md for how to handle
claims that can't be fully verified, and
examples/kafka-vs-sqs-decision.md for a full worked example.
1---2name: research-to-decision3description: Turns research into an auditable technical or product decision: defines the decision and constraints, gathers evidence with sources, separates evidence from assumption, compares alternatives against explicit criteria, and produces an ADR. Use when choosing between technologies/approaches ("Kafka vs SQS", "build vs buy"), documenting the reasoning behind a decision already made, or when asked to "research this and recommend one." Do not use for implementing the chosen option (that's a separate skill), or for open-ended research with no decision to make at the end.4license: MIT5---67# Purpose89Make the reasoning behind a decision inspectable later: what was compared,10what evidence supported it, what was assumed, and why the choice was made —11not just the conclusion.1213# When to use1415- Choosing between concrete alternatives (technologies, vendors, approaches)16 with real trade-offs.17- Asked to "research X and recommend one" or to document why a decision was18 made.1920# When NOT to use2122- The task is open-ended research with no decision at the end ("what's the23 state of the art in X") — that's fine to do, but skip the decision-matrix/24 ADR machinery; just report findings.25- The "decision" has only one reasonable option — say so plainly instead of26 manufacturing a comparison.2728# Required inputs2930- The decision to be made, stated specifically.31- Known constraints (budget, timeline, team expertise, existing systems).3233If the decision is vague ("should we improve our infra"), narrow it to a34specific, answerable question before proceeding.3536# Workflow37381. **Define the decision** — state it as a specific question with a finite39 set of options, not an open-ended topic.402. **Capture constraints** — budget, timeline, team skills, compliance,41 existing systems it must integrate with. These often eliminate options42 before evidence-gathering even starts.433. **Define evaluation criteria** — the dimensions that actually matter for44 this decision (e.g. operational complexity, cost at expected scale,45 ecosystem maturity, team familiarity), agreed before comparing options so46 criteria aren't picked to justify a pre-existing preference.474. **Collect reliable evidence** — use available research/web tools for48 external claims (official docs, benchmarks, credible technical sources).49 Prefer primary sources over blog-post summaries when possible.505. **Separate evidence from assumption** — every claim is either backed by51 a source/citation or explicitly marked as an assumption. Never blur the two.526. **Compare alternatives** — score or rank each option against the53 criteria from step 3, using the evidence from step 4.547. **Identify trade-offs** — no option wins on every criterion; state what's55 given up by choosing each one.568. **Record uncertainties** — what wasn't verifiable, what could change the57 recommendation if it turned out to be wrong.589. **Recommend a decision** — the option that best fits the criteria and59 constraints, with the reasoning explicit.6010. **Create an ADR** — the durable record (see output contract).6162# Tool & resource guidance6364- Use web search/fetch tools when available for external technical claims65 (performance characteristics, pricing, community/ecosystem maturity).66 **Never fabricate a citation** — if a claim can't be verified, mark it as67 an assumption or state it plainly as unverified.68- If the decision has a heavy technical-architecture dimension (e.g.69 choosing a database or messaging system), consider whether70 `system-design-reviewer` should evaluate the shortlisted option's fit71 before finalizing.72- If the decision depends on user/usage data, `data-scientist` may need to73 run first to produce that evidence.7475# Output contract7677Three artifacts:7879- **RESEARCH.md** — raw findings with source attribution for every external80 factual claim.81- **DECISION_MATRIX.md** — options × criteria, scored, with the evidence82 each score is based on.83- **ADR.md** — using `assets/adr-template.md`: context, decision, options84 considered, consequences (including trade-offs given up).8586# Quality checks8788- [ ] Every external factual claim has a source, or is explicitly marked as89 an assumption/unverified — no invented citations.90- [ ] Criteria were defined before scoring, not reverse-engineered from a91 pre-decided answer.92- [ ] The recommendation explicitly states what's traded away, not just93 what's gained.94- [ ] The ADR is understandable on its own, without the full research doc,95 to someone reading it in a year.9697# Edge cases9899- **No research tools available**: proceed using existing knowledge, but100 mark every claim's confidence level and recommend the user verify101 time-sensitive facts (pricing, version-specific behavior) independently.102- **Only one viable option given the constraints**: state that plainly in103 the ADR rather than inventing a false comparison.104- **Decision is highly reversible/low-stakes**: keep the ADR brief — the105 rigor should scale with the cost of being wrong.106107# References108109See `references/adr-quality.md` for what separates a useful ADR from a110box-checking one, `references/evidence-sourcing.md` for how to handle111claims that can't be fully verified, and112`examples/kafka-vs-sqs-decision.md` for a full worked example.