making-recommendations
Skill0 starsChanged 6 months agoMITView on GitHub
Use when the user asks for a recommendation, wants to compare alternatives, choose between approaches, or decide how to proceed under trade-offs. Trigger on requests like "what should I use", "which is better", "recommend", "help me decide", "what's the best way to", or "should I go with X or Y". Also use when an ongoing discussion surfaces a non-trivial decision point with multiple viable options. Do not use for purely factual questions or trivial, low-stakes, easily reversible choices.
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 11 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Verify unstable facts before ranking options when the recommendation depends on current pricing, product availability, laws, schedules, or …
- Distinctive: line 21
If the decision is ambiguous, stop and ask a targeted clarifying question.
- Distinctive: line 22
If multiple decisions are tangled together, split them or ask which one to resolve first.
- Distinctive: line 23
If the option set collapses to one serious option plus the null option, say so explicitly instead of inventing fake alternatives.
- Distinctive: line 24
If the user asks for a quick answer, compress the analysis but still include ranked options, the recommendation, and the readiness signal.
- Very specific: line 25
If a material information gap can be resolved before commitment, say how to resolve it.
- Distinctive: line 29
Always include the null option: do nothing, defer, or keep the current state.
- Very specific: line 33
Treat the job as done only when the recommendation is either verifiably best or clearly labeled best available with the blocking gaps named.
- Distinctive: line 60
All options raised in the conversation
- Distinctive: line 64
Do not evaluate options here.
- Distinctive: line 87
Every option is the right answer under some set of conditions.
- Very specific: line 116
If the result is best available, list the specific conditions that would upgrade it to verifiably best.
- Very specific: line 124
If the user asks for a durable record, or the workspace already uses docs/decisions/, write docs/decisions/YYYY-MM-DD-<decision-slug>.md.
- Distinctive: line 125
If neither condition is true, keep the full analysis in the reply and say that no durable record was written.
- Distinctive: line 127
After writing a record, include this inline summary:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Structured Recommendations
Produce a structured recommendation for a non-trivial choice. Act as an analyst and recommender, not an advocate for the first plausible option.
Quick start
- Extract the decision in one sentence and name the decision type.
- Calibrate stakes using reversibility and blast radius.
- Generate the full option set before evaluating any option. Always include the null option.
- Evaluate each option against criteria derived from this specific decision, not a generic checklist.
- Rank every option, then recommend one and label the result as
verifiably bestorbest available. - Verify unstable facts before ranking options when the recommendation depends on current pricing, product availability, laws, schedules, or other time-sensitive details.
Defaults and failure modes
- If the decision is ambiguous, stop and ask a targeted clarifying question.
- If multiple decisions are tangled together, split them or ask which one to resolve first.
- If the option set collapses to one serious option plus the null option, say so explicitly instead of inventing fake alternatives.
- If the user asks for a quick answer, compress the analysis but still include ranked options, the recommendation, and the readiness signal.
- If a material information gap can be resolved before commitment, say how to resolve it. If it cannot be resolved in time, recommend under uncertainty and mark the result
best available.
Non-negotiables
- Always include the null option: do nothing, defer, or keep the current state. If it is non-viable, say why explicitly.
- Separate option generation from option evaluation.
- Present ranked options and trade-offs before the final recommendation.
- Make the recommendation follow from the ranking. If it does not, reconcile the discrepancy explicitly.
- Treat the job as done only when the recommendation is either
verifiably bestor clearly labeledbest availablewith the blocking gaps named.
Workflow
1. Extract the decision
State the decision in one precise sentence drawn from the conversation. Name the decision type, such as technical selection, architectural choice, process design, tooling, or prioritization.
2. Calibrate stakes
Assess two axes:
Reversibility: easy to undo -> hard to undoBlast radius: affects one thing -> affects many things or many people
Assign a tier and state it in 1-2 sentences.
| Tier | Criteria | Required treatment |
| Low | Reversible and narrow blast radius | Skip Information Gaps and Sensitivity Analysis. Say that you are skipping them and why. |
| Medium | Partially reversible or meaningful blast radius | Run Information Gaps. Abbreviate Sensitivity Analysis to 1-2 realistic flips. |
| High | Hard to reverse or wide blast radius | Run the full workflow. Produce a durable record when appropriate. |
3. Generate options
List every candidate option, including:
- All options raised in the conversation
- Any materially distinct alternatives not yet raised
- The null option: do nothing, defer the decision, or accept the current state
Do not evaluate options here.
4. Identify information gaps
Required for Medium and High. Skip for Low and say why.
For each material gap:
- Name the unknown
- State which options it most affects
- State whether it can be resolved before committing and, if so, how
- State whether the decision must be made under uncertainty if the gap remains open
5. Evaluate options
Derive evaluation criteria from the decision context. Do not default to a generic checklist.
For each option, state:
- Key strengths
- Key weaknesses or risks
- Conditions under which it is the best choice
Every option is the right answer under some set of conditions. If you cannot articulate those conditions, you do not understand the option well enough — keep analyzing before you rank it.
6. Run sensitivity analysis
Required for High. Abbreviate for Medium. Skip for Low.
For each non-recommended option, state what would have to be true about constraints, unknowns, or future conditions for it to become the better choice. If no realistic change flips the ranking, say so explicitly.
7. Rank options
Present all options in ranked order with a one-line trade-off summary for each.
- [Option] - [trade-off summary]
- [Option] - [trade-off summary]
- [Option] - [trade-off summary]
8. Recommend
State the recommended option and the core reasoning in 2-3 sentences. It must follow from the ranking in Step 7. If it does not, reconcile the discrepancy before proceeding.
9. Signal readiness
State whether the recommendation is verifiably best or best available.
| Signal | Meaning |
verifiably best | The option space is complete, the information gaps are resolved or non-material, and the ranking is stable under sensitivity analysis. |
best available | The recommendation is sound given current information, but named gaps or unresolved conditions could still flip the ranking. |
If the result is best available, list the specific conditions that would upgrade it to verifiably best.
High-stakes addons
These extensions apply only to High-stakes decisions. Skip for Low and Medium.
Durable record
- If the user asks for a durable record, or the workspace already uses
docs/decisions/, writedocs/decisions/YYYY-MM-DD-<decision-slug>.md. - If neither condition is true, keep the full analysis in the reply and say that no durable record was written.
- Include the 9 sections above plus any comparison tables or calculations that materially support the ranking.
- After writing a record, include this inline summary:
**Recommendation:** [Selected option]
**Why:** [2-3 sentence summary]
**Trade-offs accepted:** [What is being sacrificed]
**Readiness:** verifiably best / best available - [one-line justification]
**Full analysis:** [link to decision record]Anti-patterns
| Pattern | Problem | Fix |
| Recommending the familiar option | Familiarity is not a criterion for the user's problem. | Generate 3 or more alternatives when they exist, including at least one option you would not reach by habit. |
| Evaluating during generation | Early judgment anchors the entire recommendation. | Keep option generation and option evaluation separate. |
| Omitting the null option silently | It biases toward action when inaction may be the right choice. | Always include it and explain non-viability explicitly if needed. |
| Hiding uncertainty behind confidence | It erodes trust and makes trade-offs invisible. | Use the readiness signal honestly and name what could still change the outcome. |
| Reusing generic criteria | It produces shallow advice that misses the actual decision. | Derive criteria from the user's constraints, goals, and failure modes. |
| Inventing fake options for symmetry | It creates noise and weakens the ranking. | Say when only one serious option exists. Do not pad the list. |
Example
User: "I need to add search to my documentation site. What should I use?"
BAD: Pattern-matching
"I'd recommend Algolia or Elasticsearch. Algolia is easier to set up and has great docs. Elasticsearch is more powerful for complex queries. For a docs site, Algolia is probably the way to go."
— No stakes assessment, no null option, only two options from the same category, no trade-offs, confident despite knowing nothing about constraints.
GOOD: Structured analysis
1. Decision: Which search implementation should a documentation site use? (Technical selection)
2. Stakes: Low. Search is additive and reversible, and the blast radius is mostly limited to search UX. Skipping Information Gaps and Sensitivity Analysis.
3. Options:
- Algolia DocSearch
- Pagefind
- A built-in framework search feature, if the docs framework has one
- Elasticsearch
- Null: no search
5. Evaluate options:
- Algolia DocSearch: Strong hosted relevance and typo handling. Weak vendor dependency and approval requirements. Best when the site is public, content is stable, and managed search is worth the dependency.
- Pagefind: Strong simplicity, zero backend, and static-site fit. Weak typo tolerance and fewer advanced ranking controls. Best when the docs site is static and operational simplicity matters.
- Framework search: Strongest setup speed when the framework already ships a credible search layer. Weak feature depth. Best when search is useful but not product-critical.
- Elasticsearch: Strongest flexibility. Weak operational cost and clear overkill for most docs sites. Best when search requirements already look like a product in their own right.
- Null: Strong zero effort and zero maintenance. Weak discoverability. Best when the documentation is small enough to browse easily.
7. Ranked options:
- Pagefind - best simplicity-to-power ratio for a typical static docs site
- Framework search - even simpler if it already exists, but usually less capable
- Algolia DocSearch - stronger search quality, but at the cost of an external dependency
- Null - viable only when the docs are small
- Elasticsearch - most powerful, but operationally disproportionate here
8. Recommendation: Use Pagefind unless the framework already includes a search feature that is good enough for the audience. It gives strong docs-scale search with almost no operational burden.
9. Readiness:
best available. Confirming the docs framework, expected content volume, and need for typo tolerance could still change the ranking.
In this repository5 other files it gives its agents.
- git-hygieneSkill
- next-stepsSkill
- scrutinizeSkill
- system-design-reviewSkill
- writing-principlesSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

