consult · diff
git:20260817.0cc07d9 to git:20260817.7f55b8e
35 added, 18 removed. Audit A to A.
---
name: consult
description: Bring how named experts would think about the question. Use when the user wants expert thinking on a tradeoff, choice, or stuck problem — not a verdict.
---
- Turn a question the user wants expert thinking on into named experts' reasoning, in their voices, with the disagreements left standing.
+ ## Extract
- ## Needs
+ From the conversation/context/user:
- A question of judgment or taste — a tradeoff, a design choice, a repeated failure — where the user wants to learn how others think, not have the answer picked.
+ - The **question** — the tradeoff, design choice, or repeated failure in front of the user.
+ - Its **domain** — the field the question sits in, which decides who is worth consulting.
- ## Gives
+ ## Gate
- Two or three named experts' reasoning on the user's actual situation — each grounded in documented work, each in its own voice, disagreements named and left standing. The user decides; consult never does.
+ Proceed only when: the question turns on judgment or taste, and the user wants to learn how others think rather than have the answer picked.
- ## Moves
+ Anything else, say which in one plain line — never consult anyway:
- One job: put each expert's thinking in the user's head. That is **explain**, called by name once per expert — the settled thing is the expert's documented position, applied to the question at hand.
+ - The question has one retrievable answer → retrieve it and proceed with what it settles; stating a fact needs no expert.
+ - The user wants a verdict on something that exists → use **judge** skill.
+ - The user wants a proposal they already committed to attacked → use **interrogate** skill.
- - Pick the experts: read `profiles/` and match the question's domain; prefer two whose positions pull against each other. No profile fits → use experts the model knows well, named, and say the profile is missing.
- - Ground each take in the profile or documented work: reasoning in the expert's voice — "Fowler argues…", "Hickey would push back…" — never stripped to a verdict label.
- - Where they disagree, name the disagreement and both sides. If everyone agrees easily, the experts were picked wrong — swap one.
+ ## Pick
- ## Turns
+ Read `profiles/` and match the question's domain. Take two or three, preferring positions that pull against each other — experts who would reach different answers here, not different words for the same one.
- `open`
- - **Advances:** the user pulls — deeper on one expert, a different perspective, "who would disagree with this".
- - **Retires:** the user says done or starts deciding. No recap, no closing recommendation.
+ No profile fits the domain → use experts the model knows well, name them, and say the profile is missing.
- ## Wrong move if
+ ## Voice
- The user wants a ruling on their own thing → **judge**.
- The user wants their committed choice attacked → **interrogate**.
- The question has one retrievable answer → retrieve it; no expert needed.
+ Each expert's thinking goes into the user's head one at a time. That is **explain**, invoked by name once per expert — the settled thing is that expert's documented position, applied to this question.
+
+ - Ground every take in the profile or the expert's documented work, reasoning in their own voice — "Fowler argues…", "Hickey would push back…" — never stripped to a verdict label.
+ - Where they disagree, name the disagreement and both sides, and leave it standing. Easy agreement means the picking was wrong — swap one and voice it.
+ - The user drives from there. Each pull is deeper on one expert, a different perspective, or who would push back on this. Answer the pull, then wait for the next.
+
+ The loop ends when the user says they are done, or starts deciding.
+
+ ## Output
+
+ The experts' reasoning is the result, and it lives in the user's head. The disagreements stay open: no recap, no closing recommendation, no verdict assembled out of what the experts said. The user decides; consult never does.
+
+ When the loop ended because the user started deciding, the consulting is over at that moment — what the experts said stands as said, never as a ruling on the decision they are making.
+
+ Then check whether anything still unresolved would change what gets built:
+
+ - Nothing would → return to the work the consulting interrupted.
+ - A claim about something that exists needs a committed verdict → use **judge** skill.
+ - The user commits to a choice and its decisions stand undefended → use **interrogate** skill.
+
+ The consulting is spent once the loop ends — anything further runs under the branch picked here, never as another round of consulting.