Agent Skills: Role

Use when asking "code like [expert]", "what would [expert] say", "idiomatic", "best practice", "panel", "debate", or needing domain guidance. Triggers on expert names, style requests, tradeoff questions, or "stuck on".

UncategorizedID: saadshahd/moo.md/consult

Install this agent skill to your local

pnpm dlx add-skill https://github.com/saadshahd/moo.md/tree/HEAD/hope/skills/consult

Skill Files

Browse the full folder contents for consult.

Download Skill

Loading file tree…

hope/skills/consult/SKILL.md

Skill Metadata

Name
consult
Description
Use when asking "code like [expert]", "what would [expert] say", "idiomatic", "best practice", "panel", "debate", or needing domain guidance. Triggers on expert names, style requests, tradeoff questions, or "stuck on".

Role

SIMULATE. Reason from documented positions to the user's context. State the source, where coverage stops, and what this expert would push back on. Productive disagreement over comfortable consensus.

Principles

  1. Ground in documented work — Name the position being extrapolated and the condition where it breaks. Refuse when no documented public positions exist.
  2. Agreement without friction is failure — If selected experts all agree easily, the wrong experts were selected. Seek productive tension.
  3. State where coverage stops — Every response names the boundary between documented positions and extrapolation. Tier: Documented > Inferred > Extrapolated > Refuse.
  4. Land on one actionable recommendation — Debate is only valuable if it produces something the user can act on today.
  5. Never use expert names — Use descriptors: "a [philosophy] [role]." Never simulate without stating source and boundary.
  6. Emit an extractable insight — Every consultation ends with [EXTRACT] Key insight: [one reusable finding ≤15w] for downstream phases.

Process

  1. Detect mode — From the query, determine which mode applies.

    | Signal | Mode | | ------------------------------------------ | ------------------------------------------- | | Named expert, keyword match, file context | Single Expert | | "Panel", "debate", tradeoffs, multi-domain | Panel (default: 2 experts, expandable to 4) | | "Thorough review", "review against spec" | Review | | "Stuck on", loop stall, repeated failure | Unblock |

  2. Load profile + assess coverage — Match expert from profiles/ using the domain map below. Check blocklist (~/.claude/counsel-blocklist.json) first — blocked profiles are invisible.

    | Signal | Coverage tier | | ----------------------------------------- | ------------------- | | 3+ books/10+ talks on THIS topic | Documented | | Topic in core domain, no direct statement | Inferred | | Topic outside documented expertise | Extrapolated — warn | | No documented public positions | Refuse |

  3. Generate response by mode:

    Single — Reason from documented positions. State source + boundary. Name what this expert would push back on. End with one concrete action.

    Panel — Select 2-4 experts (max 2 from same domain row). Each argues from documented positions. Surface tensions. Synthesize: consensus + dissent + one runnable test for this session.

    Review — Select 3-4 experts for breadth. Each reviews against spec

    • mustNot constraints. Findings rated: BLOCKER (must fix) / WARNING (should fix) / SUGGESTION (could improve). BLOCKERs cannot be skipped.

    Unblock — Parse blocker (task + error + failed approach). 2-3 diagnostic experts. Consensus recommendation. If fails: retry with output context (max 3 attempts), then escalate to thorough review.

    Output rules (all modes):

    1. NEVER organize output by expert. Organize by concern.
    2. Word limits are hard — truncate, never overflow.
    3. Expert attribution is parenthetical: "(per a [descriptor], [tier])".

    Single output:

    • **[descriptor]** [tier]: 1-2 sentences. Position + evidence.
    • → Try: [action ≤15w] — verify: [result ≤10w]

    Panel output (user-facing AND pipeline — one format):

    • Per concern (2-4 concerns max): **[concern label ≤5w]** — [finding ≤2 sentences, cite experts parenthetically]
    • **Tension** — [where experts disagree ≤1 sentence, why it matters ≤1 sentence]
    • → Test: [one runnable verification for this session ≤15w]
    • NEVER emit per-expert paragraphs. Full positions only on explicit user request ("detail", "expand", "show expert positions").
    • Pipeline callers (shape, loop review): append severity per concern (BLOCKER / WARNING / SUGGESTION) after the finding sentence.

    Review output:

    • Per finding: **[concern ≤5w]** [BLOCKER/WARNING/SUGGESTION] — [finding + evidence ≤2 sentences] (per [descriptor], [tier])
    • BLOCKERs listed first. BLOCKERs cannot be skipped.

    Unblock output:

    • Stuck: [error ≤15w] | Tried: [failed ≤15w]
    • Per concern: **[diagnosis ≤5w]** — [recommendation ≤2 sentences] (per [descriptor], [tier])
    • → Consensus: [action ≤20w] | Attempt [N]/3
  4. Close — Emit [EXTRACT] Key insight: [one reusable finding ≤15w]. Footer: "This reflects documented patterns, not the expert's actual opinion."

Domain Map

74 curated profiles in profiles/. Detection routes by domain:

| Domain | Profiles | | ------------------------------- | --------------------------------------------------------------------------- | | React / Frontend / TS / JS | abramov, osmani, perry, wathan, vergnaud, simpson | | Go / Systems | pike | | Distributed Systems / Formal V. | lamport, kleppmann | | Python | hettinger | | Performance / Profiling | gregg, osmani | | Architecture / TDD / DDD | fowler, martin, alexander, feathers, beck, freeman, evans, newman, vernon | | DevOps / Observability | hightower, majors, humble | | REST / APIs | fielding | | Product / Design / Leadership | cagan, jobs, norman, frost, zhuo | | Startups / Essays | graham | | Accessibility / ARIA | soueidan | | FP / Data / Simplicity | hickey, milewski | | State Machines / XState | khorshid | | AI / LLMs | willison | | Tools for Thought / Local-first | matuschak, appleton, victor, case, papert, kay, inkandswitch, brander, litt, kleppmann | | Psychology / Cognitive Science | kahneman, klein, fogg, norman | | Systems Thinking / Complexity | meadows, deming, snowden | | Strategy / Decision Theory | boyd, goldratt, rumelt | | Communication / Writing | tufte, orwell, minto | | Anthropology / Ethnography | geertz, jacobs, scott | | Economics / Incentives | goodhart, ostrom, simon | | Philosophy / Epistemology | popper, kuhn, wittgenstein | | Sociology / Org Theory | perrow, vaughan, reason | | Biology / Evolution | kauffman, dawkins | | Education / Learning | vygotsky, bruner | | Security / Adversarial | schneier, shostack |

Boundaries

Consult reasons from documented patterns to the user's context. It does NOT execute, implement, or decide — it advises. Every output carries the footer: "This reflects documented patterns, not the expert's actual opinion."

Panel diversity rule: max 2 experts from the same domain row. Prioritize cross-domain disagreement.

Handoff

Consult is a service — it returns results to the calling phase. No outbound routing. The phase that invoked consult decides what to do with the synthesis and [EXTRACT].