/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.
$ npx -y skills add rse/ase --skill ase-meta-quorum --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/ase-meta-quorum
Context preview
The summary Claude sees to decide when to auto-load this skill.
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.
SKILL.md
ase-meta-quorum.SKILL.mdname: ase-meta-quorum
argument-hint: "[--help|-h] [--models|-m <model>[,...]] <question>"
description: >
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.
user-invocable: true
disable-model-invocation: false
effort: high
allowed-tools:
- "Agent"
- "TaskCreate"
- "TaskUpdate"@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-meta-quorum"> Query Multiple AIs for Quorum Answer </purpose>
<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>
1. <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>
2. <step id="STEP 2: Query Foreign AIs">
The user-selectable foreign models are restricted by the `--models`/`-m` option, 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 set `all`, `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:
<template> ⧉ **ASE**: ✪ skill: **ase-meta-quorum**, ▶ ERROR: invalid `--models` token: **<token/>** </template>
The default is the single token `all`. If <getopt-option-models/> contains the token `all`, you *MUST* treat it as the full list `chatgpt,gemini,deepseek,grok,glm,qwen` (all API-based models). The harness-based models `claude`, `codex`, and `copilot` are *never* part of `all` and are queried only when their token is given *explicitly* (in addition to `all`, if wished). Anthropic Claude (yourself) is *always* included, independent of this option.
<define name="agent"> Call the `Agent` tool:
Agent(
description: "Query Foreign LLM: <arg1/>",
subagent_type: "ase:ase-meta-chat",
prompt: "<arg2/> <query/>",
run_in_background: false
)</define>
Query only those foreign models whose token is contained in <getopt-option-models/> (where `all` selects every model); silently skip all others. Emit *all* these `Agent` tool invocations *in one single message* so they run in *parallel*:
<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>
You *MUST* *NOT* output anything in this step.
</step>
3. <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>
4. <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 o
Read more
name: ase-meta-quorum
argument-hint: "[--help|-h] [--models|-m <model>[,...]] <question>"
description: >
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.
user-invocable: true
disable-model-invocation: false
effort: high
allowed-tools:
- "Agent"
- "TaskCreate"
- "TaskUpdate"@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-meta-quorum"> Query Multiple AIs for Quorum Answer </purpose>
<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>
1. <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>
2. <step id="STEP 2: Query Foreign AIs">
The user-selectable foreign models are restricted by the `--models`/`-m` option, 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 set `all`, `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:
<template> ⧉ **ASE**: ✪ skill: **ase-meta-quorum**, ▶ ERROR: invalid `--models` token: **<token/>** </template>
The default is the single token `all`. If <getopt-option-models/> contains the token `all`, you *MUST* treat it as the full list `chatgpt,gemini,deepseek,grok,glm,qwen` (all API-based models). The harness-based models `claude`, `codex`, and `copilot` are *never* part of `all` and are queried only when their token is given *explicitly* (in addition to `all`, if wished). Anthropic Claude (yourself) is *always* included, independent of this option.
<define name="agent"> Call the `Agent` tool:
Agent(
description: "Query Foreign LLM: <arg1/>",
subagent_type: "ase:ase-meta-chat",
prompt: "<arg2/> <query/>",
run_in_background: false
)</define>
Query only those foreign models whose token is contained in <getopt-option-models/> (where `all` selects every model); silently skip all others. Emit *all* these `Agent` tool invocations *in one single message* so they run in *parallel*:
<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>
You *MUST* *NOT* output anything in this step.
</step>
3. <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>
4. <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 o
Showing the first part of this file.
Repo: rse/ase
Other skills on ase.
- /hello
Show a nice greeting message with a timestamp. Use this, when the user wants to greet or say hello, optionally to a certain subject <subject> and in a certain language <language>.
Open skill - /ase-arch-analyze
Review software architecture, including package cohesion and inter-package coupling
Open skill - /ase-arch-discover
Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.
Open skill - /ase-code-analyze
Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency, or security.
Open skill - /ase-code-craft
Craft Source Code: Use when user wants to "create", "add", or "craft" a new feature from scratch.
Open skill - /ase-code-dissect
Dissect the current Git change set, treated as an epic, domain-wise and logically into cohesive parts and materialize each part in its own dedicated Git WorkTree. Use when the user calls to "dissect", "split", "break up", or "decompose" a large change set into atomic, separately
Open skill

