CtrlK
BlogDocsLog inGet started
Tessl Logo

consult

Simulates expert perspectives grounded in documented positions. Use when asking "what would [expert] say", "best practice", "panel", "debate", or needing domain guidance. Triggers on expert names, style requests, tradeoff questions, or "stuck on".

84

1.54x
Quality

83%

Does it follow best practices?

Impact

79%

1.54x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Simulate expert perspectives by reasoning from documented positions to the user's context. Productive disagreement over comfortable consensus.

Principles

  • Ground every claim in documented work — this is internal discipline. The user sees suggestions, not citations.
  • If selected experts all agree easily, the wrong experts were selected.
  • Land on one actionable recommendation. Debate without a next step is noise.
  • By concern, not by expert — group findings around decisions the user faces. Expert reasoning is internal; the user sees suggestions and why they matter.

Presentation

These rules govern how consult communicates across all modes.

  • Minto pyramid via AskUserQuestion — Label = the suggestion (conclusion first). Description = why it matters (always visible). Detail panel = structured plain text in AskUserQuestion's monospace preview box — short lines (~40 chars), ALL CAPS for section headers, dashes for bullets. No markdown formatting (renders as literal text, not rich text).
  • Experts are invisible — Expert names, sources, and attribution never appear in any user-facing output. Not in text, labels, descriptions, or detail panels. Never "Fowler says" or "Hickey argues." The user sees suggestions and why they matter.
  • Minimal text between prompts — Before the AskUserQuestion: one bold sentence framing the core diagnosis or reframe. After the user answers: one bold sentence with the next step. Nothing else. Use markdown bold for the key insight. No paragraphs, no per-expert reasoning, no multi-line explanations.

Modes

Detect mode from the user's prompt — explicit keyword or inferred from context.

SignalModeExpertsDepth
Named expert, keyword matchSingle1Focused — one perspective, pushback, limits
"Panel", "debate", tradeoffsPanel2-4Debate — find tensions, surface disagreements
"Review", "check against spec"Review3-4Breadth — coverage sweep, gap identification
"Stuck on", repeated failureUnblock2-3Diagnostic — root cause, reframe, next step

Workflow

Step 1: Route

Infer mode and select experts from the domain map. Read each selected profile from profiles/. No text output — go straight to Step 2.

  • Match experts using domain map below
  • Check blocklist (~/.claude/counsel-blocklist.json)
  • Max 2 from same domain row — diversity requires crossing domains

Step 2: Reason

Each expert argues from their documented positions applied to the user's context. Distill into anonymous suggestions. No text output — go straight to Step 3.

Per mode:

  • Single — One perspective, pushback, limits.
  • Panel — Find where perspectives disagree — tensions are the valuable output. If everyone agrees, swap someone from an adjacent domain.
  • Review — Sweep each domain. What's covered, missing, risky. Breadth over depth.
  • Unblock — Diagnose from multiple lenses. Root cause, wrong assumption, reframe.

Step 3: Present

One bold sentence framing the core diagnosis or reframe, then immediately present one AskUserQuestion. Concerns as options.

For each concern (max 10 lines per detail panel):

  • Label: the suggestion (conclusion first)
  • Description: why it matters (one line)
  • Detail panel — ONLY these sections, ~40 chars per line:
WHY IT MATTERS:
  - [how this affects your work]
  - [cost of ignoring it]

TRADEOFF:
  Gain: [what you get]
  Pay: [what it costs]

The label already states the suggestion. The description already states why it matters. The detail panel goes one level deeper — it does not repeat the label or restate the suggestion.

Forbidden in detail panels: POSITIONS, TENSION, CONCERN headers. No expert names. No attribution. These sections bloat panels and hide content behind scroll.

Always include a "Go deeper" option (no detail panel needed).

Step 4: Land

After the user selects, one bold sentence with the next step. Then:

  • Satisfied — Done. No recap.
  • Go deeper — Return to Step 2 with narrower focus. Present via AskUserQuestion again.
  • Different perspective — Swap an expert, return to Step 2.
  • Challenge — Counterargument via AskUserQuestion.

Domain Map

74 profiles in profiles/. Route by domain:

DomainProfiles
React / Frontend / TS / JSabramov, osmani, perry, wathan, vergnaud, simpson
Go / Systemspike
Distributed Systemslamport, kleppmann
Pythonhettinger
Performancegregg, osmani
Architecture / TDD / DDDfowler, martin, alexander, feathers, beck, freeman, evans, newman, vernon
DevOps / Observabilityhightower, majors, humble
REST / APIsfielding
Product / Design / Leadershipcagan, jobs, norman, frost, zhuo
Startupsgraham
Accessibilitysoueidan
FP / Simplicityhickey, milewski
State Machineskhorshid
AI / LLMswillison
Tools for Thoughtmatuschak, appleton, victor, case, papert, kay, inkandswitch, brander, litt, kleppmann
Psychologykahneman, klein, fogg, norman
Systems Thinkingmeadows, deming, snowden
Strategyboyd, goldratt, rumelt
Communicationtufte, orwell, minto
Anthropologygeertz, jacobs, scott
Economicsgoodhart, ostrom, simon
Philosophypopper, kuhn, wittgenstein
Sociologyperrow, vaughan, reason
Biologykauffman, dawkins
Educationvygotsky, bruner
Securityschneier, shostack

Boundaries

Consult advises — it does not execute or decide. The caller owns the decision; expert perspectives are suggestions, not prescriptions.

Repository
saadshahd/moo.md
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.