Ase meta quorum
Query multiple foreign AIs in parallel and synthesize a consensus ("quorum") answer with a consensus rating. Use when the user wants a quorum, a consensus answer, or the opinions of multiple AIs on a question.From its SKILL.md
npx -y skills add rse/ase --skill ase-meta-quorumAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
8.2 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<skill name="ase-meta-quorum"> Query Multiple AIs for Quorum Answer </skill><expand name="getopt" arg1="ase-meta-quorum" arg2="--models|-m=(all|chatgpt|gemini|deepseek|grok|glm|qwen|claude|codex|copilot)..."> $ARGUMENTS </expand>
<objective> Find a *quorum answer* on an arbitrary question, by querying *multiple* AIs for an *optimal consensus*. </objective> <flow>-
<step id="STEP 1: Preview Own Answer">
Prepare the LLM query by setting <query/> to the following <template/>:
<template> <getopt-arguments/>. Please respond very concisely and briefly, with facts only, usually with just 1 to 7 corresponding bullet points and with short sentences. Optionally, mention potential cruxes which should be noticed. Besides bullet points, do not provide any additional explanations. Emphasize keywords or cruxes in your response with Markdown formatting. Format code parts with Markdown formatting. </template>For yourself (Anthropic Claude), first answer this <query/> in advance yourself by showing your own answer to the query as a sneak preview. For this, output the following <template/>:
<template> **Anthropic Claude** (sneak preview in advance): - [...] - [...] </template> </step> -
<step id="STEP 2: Query Foreign AIs">
The user-selectable foreign models are restricted by the
<template> ⧉ **ASE**: ✪ skill: **ase-meta-quorum**, ▶ ERROR: invalid `--models` token: **<token/>** </template>--models/-moption, parsed into <getopt-option-models/> as a comma-separated list of model tokens. The getopt parser validates only the first token, so you MUST validate each remaining token yourself against the allowed setall,chatgpt,gemini,deepseek,grok,glm,qwen,claude,codex,copilot. If any token is not in this set, bind <token/> to that offending token, then only output the following <template/> and then immediately STOP processing the entire current skill:The default is the single token
<define name="agent"> Call the `Agent` tool:all. If <getopt-option-models/> contains the tokenall, you MUST treat it as the full listchatgpt,gemini,deepseek,grok,glm,qwen(all API-based models). The harness-based modelsclaude,codex, andcopilotare never part ofalland are queried only when their token is given explicitly (in addition toall, if wished). Anthropic Claude (yourself) is always included, independent of this option.
</define>Agent( description: "Query Foreign LLM: <arg1/>", subagent_type: "ase:ase-meta-chat", prompt: "<arg2/> <query/>", run_in_background: false )Query only those foreign models whose token is contained in <getopt-option-models/> (where
<if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `chatgpt`"> <expand name="agent" arg1="OpenAI ChatGPT" arg2="chatgpt"></expand> </if> <if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `gemini`"> <expand name="agent" arg1="Google Gemini" arg2="gemini"></expand> </if> <if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `deepseek`"> <expand name="agent" arg1="DeepSeek" arg2="deepseek"></expand> </if> <if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `grok`"> <expand name="agent" arg1="xAI Grok" arg2="grok"></expand> </if> <if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `glm`"> <expand name="agent" arg1="Z.AI GLM" arg2="glm"></expand> </if> <if condition="<getopt-option-models/> contains `all` OR <getopt-option-models/> contains `qwen`"> <expand name="agent" arg1="Alibaba Qwen" arg2="qwen"></expand> </if> <if condition="<getopt-option-models/> contains `claude`"> <expand name="agent" arg1="Anthropic Claude (harness)" arg2="claude"></expand> </if> <if condition="<getopt-option-models/> contains `codex`"> <expand name="agent" arg1="OpenAI Codex" arg2="codex"></expand> </if> <if condition="<getopt-option-models/> contains `copilot`"> <expand name="agent" arg1="GitHub Copilot" arg2="copilot"></expand> </if>allselects every model); silently skip all others. Emit all theseAgenttool invocations in one single message so they run in parallel:You MUST NOT output anything in this step.
</step> -
<step id="STEP 3: Summarize Responses">
Agents which returned a response with an
ERROR:prefix are silently skipped and are treated as not available.Summarize all responses, of both yourself and all available agents with just 1 to 7 corresponding bullet points and with short sentences.
You MUST NOT output anything in this step.
</step> -
<step id="STEP 4: Determine Consensus Rating">
First, count the number of available foreign AIs (those queried in STEP 2 which did not return an
ERROR:response). If this count is zero -- i.e., every foreign AI errored out or none were reachable and only yourself (Anthropic Claude) remains -- a quorum is not possible. In this case, set <c></c> and <n></n> to empty and instead set <disagreement/> to(no quorum: no foreign AIs were available), then skip the rest of this step.Otherwise, let <n/> be the total number of responders (yourself plus all available foreign AIs above). Then determine, on a Likert scale of 0..<n/>, the amount of the overall consensus <c/> of all the responses. If all responses disagree, the consensus <c/> is zero. If all responses agree, <c/> is <n/>.
If not all AIs agree, determine <disagreement/> information, formatted as
(disagreement: <ai/>, <ai/>, [...])where <ai/> is a name of an AI which disagreed with the consensus. Else, if all AIs agree, set <disagreement></disagreement>.You MUST NOT output anything in this step.
</step> -
<step id="STEP 5: Show Results">
Finally show the summary, the consensus and the complete and unmodified responses of yourself and each of the queried foreign AIs, based on the following output <template/>:
<template> **QUESTION**: <getopt-arguments/>● CONSENSUS ANSWER:
- [...]
- [...]
CONSENSUS RATE: <c/>/<n/> <disagreement/>
○ Anthropic Claude:
- [...]
- [...]
○ OpenAI ChatGPT:
- [...]
- [...]
○ Google Gemini:
- [...]
- [...]
○ DeepSeek:
- [...]
- [...]
○ xAI Grok:
- [...]
- [...]
○ Z.AI GLM:
- [...]
- [...]
○ Alibaba Qwen:
- [...]
- [...]
○ Anthropic Claude (harness):
- [...]
- [...]
○ OpenAI Codex:
- [...]
- [...]
○ GitHub Copilot:
- [...]
- [...] </template>
In this output, when a quorum was not possible (see STEP 4), render the consensus rate line instead as just
**CONSENSUS RATE**: *n/a* <disagreement/>(omitting the<c/>/<n/>fraction), as a single AI cannot form a consensus.In this output, remove the sections of those AIs which were not queried (excluded via
</step>--models/-m) or were not available. You MUST NOT output any further explanations yourself.
What ships with it: 1 file
1.8 KB alongside SKILL.md
- help.md1.8 KB