Source profileQuality 91/100

laurigates/claude-plugins/agent-patterns-plugin/skills/multi-model-delegation/SKILL.md

multi-model-delegation

Multi-model design consults via PAL (kimi, glm, gemini, gpt). Use when asking other models to brainstorm a design or reconciling their split answers.

Source repository stars
54
Declared platforms
0
Static risk flags
2
Last source update
2026-08-28
Source checked
2026-08-28

Decision brief

What it does: where it fits

Protocol for consulting other models — kimi, glm, gemini, gpt via the PAL MCP gateway (chat, consensus) — on design and judgment work, and for acting on what comes back. The core insight, which inverts the naive approach:

Best for

  • Use when asking other models to brainstorm a design or reconciling their split answers.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/laurigates/claude-plugins --skill "agent-patterns-plugin/skills/multi-model-delegation"
Safe inspection promptEditorial

Inspect the Agent Skill "multi-model-delegation" from https://github.com/laurigates/claude-plugins/blob/c056e44b978db58648ad20440dc1515cb09af09d/agent-patterns-plugin/skills/multi-model-delegation/SKILL.md at commit c056e44b978db58648ad20440dc1515cb09af09d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Step 1: Resolve model IDs first

    Run mcppal-mcp-serverlistmodels once at the start of the consult whenever a model is named loosely ("kimi2.7", "glm5.2") — registry IDs (kimi-k2.7-code, glm-5.2) and their aliases (kimi, glm) rarely match what anyone types from memory.

    Run mcppal-mcp-serverlistmodels once at the start of the consult whenever a model is named loosely ("kimi2.7", "glm5.2") — registry IDs (kimi-k2.7-code, glm-5.2) and their aliases (kimi, glm) rarely match what anyone ty…
  2. 02

    Step 2: Brief every model with the same prompt

    Send the identical brief, verbatim, to each model — one mcppal-mcp-serverchat call per model — and collect every reply before judging any of them. Different prompts produce divergences that are artifacts of the framing, not of the problem — and afterward you cannot tell a real d…

    Send the identical brief, verbatim, to each model — one mcppal-mcp-serverchat call per model — and collect every reply before judging any of them. Different prompts produce divergences that are artifacts of the framing,…
  3. 03

    Step 3: Keep round one independent

    Withhold model A's answer from model B. You want independent draws, not an echo. Cross-critique is a deliberate later round, never the first one.

    Withhold model A's answer from model B. You want independent draws, not an echo. Cross-critique is a deliberate later round, never the first one.
  4. 04

    Step 4: Diff the answers for the split

    With every reply collected, compare them point by point:

    Convergence → the safe default; adopt it and move on.Divergence → this is the actual decision, and it is now yours — notWith every reply collected, compare them point by point:
  5. 05

    Step 5: Adjudicate against the code, not taste

    Go read the thing the decision turns on. Very often the codebase has already decided, and the models couldn't know because they can't see it. This is the step that makes the whole exercise worth its tokens.

    Go read the thing the decision turns on. Very often the codebase has already decided, and the models couldn't know because they can't see it. This is the step that makes the whole exercise worth its tokens.

Permission review

Static risk signals and limitations

Reads files

low · line 32

The documentation asks the agent to read local files, directories, or repositories.

So read the registration rather than a file — `claude mcp list` is

Writes files

medium · line 197

The documentation asks the agent to create, modify, or delete local files.

Write it **inside the workspace**: `<repo>/tmp/<consult>/context-excerpts.md`.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score91/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars54SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
laurigates/claude-plugins
Skill path
agent-patterns-plugin/skills/multi-model-delegation/SKILL.md
Commit
c056e44b978db58648ad20440dc1515cb09af09d
License
MIT
Collected
2026-08-28
Default branch
main
View the original SKILL.md

Multi-Model Delegation

Protocol for consulting other models — kimi, glm, gemini, gpt via the PAL MCP gateway (chat, consensus) — on design and judgment work, and for acting on what comes back. The core insight, which inverts the naive approach:

The value is the disagreement, not the union. Two competent models briefed identically converge on the obvious 80% — the part you'd have written anyway. Where they split is a precise pointer at the one decision that is genuinely load-bearing and underdetermined by the prompt. Resolve the split against the codebase — which usually already decided, and which the models structurally cannot see — never by picking the more confident model.

Treat delegated models as idea generators, never as authorities. Taking the majority answer, or the more confident one, launders a coin-flip into a decision that merely looks researched.

You — the orchestrating Claude session — run the whole consult: you dispatch the PAL MCP calls, collect the replies, and do the judgment steps (diff, adjudicate, synthesize) yourself in the main loop.

The Tool Prefix Is Derived, Not Fixed

PAL's tools are reachable as mcp__<server-name>__<tool>, where <server-name> is the key the server is registered under — not the product name, and not the binary. That key can live in any registration scope: a project .mcp.json, a user-scope entry in ~/.claude.json (claude mcp add -s user …, which has no .mcp.json at all), or a local one. So read the registration rather than a file — claude mcp list is authoritative in every scope, and claude mcp get names the scope that owns it:

claude mcp list                 # "pal-mcp-server: pal-mcp-server  - ✔ Connected"
claude mcp get pal-mcp-server   # Scope: Project config (shared via .mcp.json)

With the common registration pal-mcp-server, chat is mcp__pal-mcp-server__chat; a repo that registers the same binary under a different key gets that key in the prefix instead. Every mcp__pal-mcp-server__* name below assumes that registration — substitute the key claude mcp list reports.

No matching deferred tools found has two causes

Do not read that message as proof the prefix is wrong — under the correct prefix it means something else entirely, and the two want different responses:

What you observeCauseDo this
The prefix you tried is not the key claude mcp list reportsWrong prefixRetry with the reported key
The correct prefix also finds nothing, PAL's tools never appear in any deferred-tool reminder, yet claude mcp list says ConnectedThe server's tools were never registered in this session — likely it connected after session startRestart the session, or drive the server directly over stdio JSON-RPC (issue #2437)

One trap in that direct-stdio workaround, worth stating because its symptom misleads: keep stdin open until the response arrives. subprocess.run(..., input=...) closes stdin after writing, so the server shuts down mid-call and returns an empty result that looks exactly like a hung or non-responding model rather than a transport error.

When to Use This Skill

Use this skill when...Use alternative when...
Brainstorming an open design decision with foreign models (PAL chat/consensus)Fanning out Claude subagents that do work → parallel-agent-dispatch, agent-teams
Reconciling two models' conflicting design proposalsRed-teaming a finished artifact → adversarial-review
Deciding whether a multi-model consult is worth the tokensA lookup answers the question → PAL apilookup, official docs

The Protocol

Execute a multi-model consult in these steps:

Step 1: Resolve model IDs first

Run mcp__pal-mcp-server__listmodels once at the start of the consult whenever a model is named loosely ("kimi2.7", "glm5.2") — registry IDs (kimi-k2.7-code, glm-5.2) and their aliases (kimi, glm) rarely match what anyone types from memory.

Step 2: Brief every model with the same prompt

Send the identical brief, verbatim, to each model — one mcp__pal-mcp-server__chat call per model — and collect every reply before judging any of them. Different prompts produce divergences that are artifacts of the framing, not of the problem — and afterward you cannot tell a real design tension from a wording accident. Pass code via the absolute_file_paths parameter rather than pasting it into the prompt: it is what the parameter is for, and the pasted copy risks truncation. Attachments carry a per-model token budget that a multi-file set routinely exceeds — when it does, build one curated excerpt bundle rather than trimming per model (see below).

Step 3: Keep round one independent

Withhold model A's answer from model B. You want independent draws, not an echo. Cross-critique is a deliberate later round, never the first one.

Step 4: Diff the answers for the split

With every reply collected, compare them point by point:

  • Convergence → the safe default; adopt it and move on.
  • Divergence → this is the actual decision, and it is now yours — not theirs. Don't ask "which answer do I take?" Ask "what did they disagree about, and what in my codebase already decides it?"

Step 5: Adjudicate against the code, not taste

Go read the thing the decision turns on. Very often the codebase has already decided, and the models couldn't know because they can't see it. This is the step that makes the whole exercise worth its tokens.

Step 6: Graft, never adopt wholesale

Even the winning proposal carries ideas that are wrong for your repo. Graft the good parts from the runner-up; reject what doesn't fit and say why.

Canonical case (gh-board priority grading, 2026-07): kimi-k2.7-code and glm-5.2, identical briefs. They converged on the module shape and config-first weights, and both independently proposed a contribution ledger — the one idea not already in hand, and the one convergent idea worth keeping. They split on exactly one question: does the triage bucket feed the priority score, or sit above it? One minute in src/app/filter.rs settled it — build_rows already groups into bucket sections after sorting, so a bucket baseline would double-count the grouping. Both models also proposed an A–F letter grade; both were overruled — grade bands stack a second set of magic thresholds on the weights and quantize away the fine ordering the score exists to produce. The models produced the question; the repo produced the answer.

Step 7: When a claim is refuted, ask the second question

Step 5 adjudicates "is this claim true?" against the code. When the answer is no, the instinct is to discard the claim and move on. Don't — ask the second question first:

"Why couldn't the test suite answer this?"

That question survives a wrong claim. A confident, specific, false finding usually points at something real — not the defect it names, but the absence of a gate that would have settled it in seconds. The claim dies; the gap it exposed does not.

The move: add the gate that decides the question, then kill-test it by swapping in the reviewer's proposed value. If the reviewer was right, the gate goes red and you have found a real bug. If they were wrong, it goes red on their version and green on yours — converting an argument into a permanent, mechanical answer, so neither the next reviewer nor the next session can re-litigate it.

Canonical case (loractl verbosity review, 2026-07): kimi-k2.7-code claimed flag_directives emitted a loractl= tracing target matching nothing — because the package is loractl-cli — which would make the entire -v ladder inert. It was wrong: [[bin]] name = "loractl", so module_path! roots at loractl, and a live -v run had already printed INFO lines. But the claim was unfalsifiable from the suite, because the unit test asserted the directive string and never that the filter matched a real event. Fix: a spawned-binary test pair (-v must show INFO, default must not), then a kill-test swapping in the reviewer's loractl_cli= — which fails it. Wrong claim, real gap, permanent gate.

The generalization beyond model reviews: a test that asserts the shape of a value rather than the behaviour it produces cannot settle a question about that behaviour — it passes whether the wiring works or not. Those are exactly the tests an outside reviewer's wrong guess will find for you.

When It's Worth the Tokens

Worth itSkip it
Open design decision with a wide solution space and no conventional default — scoring models, architecture splits, API shape, migration strategyAnything with a conventional default: pick it, state it, proceed
Genuinely underdetermined trade-offs where an independent draw adds informationA lookup or doc read answers it
Seeking agreement on a decision already made — a model asked to validate will validate; you pay for confirmation, not information

PAL Mechanics That Bite

MechanicSymptomFix
kimi-k2.7-code 400s whenever temperature is sent (OpenCode Go)Opaque Error from provider (Console Go): Upstream request failed — names neither parameter nor constraint, so it reads as flakiness or "prompt too long"Omit temperature for kimi; glm-5.2 accepts it fine. Prompt length, attachments, thinking_mode are all innocent. pal#67
absolute_file_paths is capped at ~60% of context headroom, and the cap varies wildly by modelThe attachment set is rejected for exceeding the budget. Observed on a 262K context: gpt-5.3-codex ≈ 76,800 tokens but kimi-k2.7-code only ≈ 28,311 — one ~84K, 7-file set bounced on bothSize attachments to the smallest target model's budget. Because the identical-briefs invariant is load-bearing, one model's ceiling trims the set for all of them — build a curated excerpt bundle instead
working_directory_absolute_path must live inside PAL_WORKSPACE_ROOTA scratchpad path outside the repo is rejected: must reside within the PAL workspace rootWork in <repo>/tmp/<consult>/, never a system temp dir
model_used is untrustworthy under concurrencyThree concurrent chat calls returned model_used values rotated across each other while provider_used stayed request-consistentVerify independence via provider_used, and pick models on different providers — a silently same-model pair breaks the disagreement-is-the-payload logic. pal#68
Registry models get retired upstream mid-consultA listmodels-listed id 404s ("no longer available")Pick a same-provider fallback before dispatching, and re-send the identical brief — a reworded one breaks the invariant

Isolate a model failure with controlled probes before believing your first theory. The intuitive suspects (big prompt, file attachments) were innocent twice — a bug filed on either would have sent the maintainer down the wrong path. A two-word prompt plus the one suspect parameter settles it in one call.

The Curated Excerpt Bundle

When the load-bearing code spans more than the smallest model's attachment budget allows, do not trim per model — that silently un-identicals the briefs. Build one file and attach it to every model:

  1. Write it inside the workspace: <repo>/tmp/<consult>/context-excerpts.md.
  2. Include verbatim excerpts of exactly the load-bearing regions — no paraphrase; the whole point is that the models read the real code.
  3. Number the sections (§1§N), each titled with its real file path + line range, so a cited §7 resolves back to source.
  4. The smallest model's budget bounds the bundle. Size the whole file under it, then attach that one path to every model.
  5. Reference sections from the brief by number ("weigh §3 against §9").

Canonical case (loractl #132, 2026-07): a 7-file, ~84K-token attachment set bounced on both gpt-5.3-codex and kimi-k2.7-code. An 11-section bundle at ~21K tokens fit all three budgets, kept the briefs byte-identical, and the models cited sections accurately.

Agentic Optimizations

ContextCommand
Resolve registry IDs and aliasesmcp__pal-mcp-server__listmodels
Independent round-one draw (repeat per model, same prompt)mcp__pal-mcp-server__chat with model + absolute_file_paths; omit temperature for kimi
Attachment set exceeds the smallest model's budgetOne <repo>/tmp/<consult>/context-excerpts.md bundle, attached to every model
Structured multi-model verdict with per-model stancesmcp__pal-mcp-server__consensus
Deep single-model dig after the split is foundmcp__pal-mcp-server__thinkdeep

Related

  • parallel-agent-dispatch — delegating work to Claude subagents: those are delegates producing output; this skill's models are second opinions producing judgment
  • agent-teams — implicit-team / SendMessage mechanics for Claude teammates
  • adversarial-review — inverted-objective second pass on a finished artifact, by an isolated Claude reviewer
  • verify-before-plan — the same adjudicate-against-reality instinct, applied to orchestrator premises before a dispatch

Frequently asked questions

What to verify before installation and use

What does the multi-model-delegation source document cover?

Protocol for consulting other models — kimi, glm, gemini, gpt via the PAL MCP gateway (chat, consensus) — on design and judgment work, and for acting on what comes back. The core insight, which inverts the naive approach:

How do I install multi-model-delegation?

The source record exposes this install command: npx skills add https://github.com/laurigates/claude-plugins --skill "agent-patterns-plugin/skills/multi-model-delegation". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged read-files, write-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 10045,960

coreyhaines31/marketingskills

ab-testing

When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

Computed 100147

oaustegard/claude-skills

featuring

Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre

Computed 1009

event4u-app/agent-config

existing-ui-audit

Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.

Computed 1009

event4u-app/agent-config

fe-design

Frontend design heuristics — and, outside the ticket engine, the loop that applies them: audit, brief, inventory, build, review. Use when building or changing any UI, not only when planning one.