Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Maps a recurring strategic decision into an honest yes/no decision tree, rendered as Mermaid, with unanswerable questions marked as open gaps that double as a reading list. Use for recurring judgment calls, not one-off choices.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -10% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 28% | 0% |
Turns a fuzzy judgment call into an explicit, reusable map. The output is a dated markdown artifact with a Mermaid flowchart (renders natively on GitHub; VS Code needs a Mermaid preview extension).
The diagram is the cheapest part. What it forces is the product:
doubles as a map of what still needs to be learned or read. A finished tree with zero gaps means the decision is understood; gaps show exactly where understanding stops.
A decision to map, e.g. /decision-tree can this client data enter an AI tool? If no argument: ask which recurring decision to map. Push back if it's a one-off choice. Trees are for decisions that recur; a one-off gets a recommendation, not a tree.
Pin down conversationally, not as a form:
else's gets a recommendation map, framed as such; a jointly owned decision — several deciders, each holding a private walk-away (a negotiation) — isn't one tree at all. One tree flattens exactly the disagreement worth seeing; give each party their own. And when a decider speaks for an interest they don't fully bear the risk of ("for the department," for a company), ask which parts of their position are personal and which are the principal's — the two blend by default and quietly distort every branch.
irreversible ones earn depth
"Is it sensitive?" hides judgment; split it into checkable criteria.
questions go closest to the root.
do NOT guess. Style the node as an open gap and record what would answer it (a document to read, a person to ask, a term to verify).
and route to the protective branch, never the permissive one. Folding unknown into no is how trees lie about what's actually in hand.
Item questions change with every case ("does this contain identifiers?") and are what branches are for. World questions are the same for every case ("are we on enterprise terms?", "do the agreements permit processing?") — they're preconditions, not branches. List them in a Preconditions block above the tree; verifying one doesn't just close a gap, it deletes that branch and becomes a standing rule. (Contributed by community review, 2026-07-12.)
Every path ends in an action or outcome, never "it depends."
Optionally, a leaf can also carry a confidence value — how likely the outcome is to hold once acted on, not just what the outcome is. Not every tree needs this; use it where the leaf is still a bet, not a certainty. Use more granularity than feels natural (60/40, not "probably") — this is Tetlock's superforecasting research applied to a leaf instead of a geopolitical question: score it, then check it against what actually happened.
Save as decision-trees/YYYY-MM-DD-<slug>.md in the owning project. Format:
# Decision: <root question> Made for: <who decides> · Reversibility: ... · Mapped: YYYY-MM-DD Status: complete | N open gaps
## Preconditions (world questions — verify once, then they're standing rules) | # | Question | Verified? | What would answer it |
mermaid flowchart TD A{First question?} -- yes --> B{Second?} A -- no --> STOP[Outcome: ...] B -- yes --> GAP1{{"OPEN GAP: what would answer this"}}
## Open gaps | # | Node | What would answer it | Where |
## Calibration (only if a leaf carries a confidence value) | Leaf | Predicted | Confidence | Actual | Date |
## Notes <anything that didn't fit a binary, honestly logged, not forced into the tree>
Mermaid conventions: {...} diamonds for questions, ...] rectangles for outcomes, {{...}} hexagons for open gaps, yes/no labels always explicit.
A tree gets updated in place when a gap closes (note the date in the Status line). Superseded logic gets struck through or moved to Notes, never silently deleted. If the same tree gets consulted three times, consider hardening it into a permanent rule in your instruction files instead of leaving it as a map.
substitute for the policy doc or memo it may feed.
before saving.
Other measured skills in the registry, with their headline benchmark lift.