panel
Skill5 starsChanged 10 days agoMITView on GitHub
Convene a panel of agent CLIs (grok, claude, codex, agy) on a prompt or a code review, then report one consensus grouped by how much they agree.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- Vinix24/vnx-orchestrationtheir own version, first seen Nov 6, 2026
- ilchemla/agent-skillstheir own version, first seen Oct 13, 2026
- raine/consult-llm-mcptheir own version, first seen Oct 8, 2026
- scrypster/muninndbtheir own version, first seen Oct 8, 2026
- dkpapadopoulos/auto-claude-skillstheir own version, first seen Sep 22, 2026
- opendatadiscovery/odd-teamtheir own version, first seen Sep 3, 2026
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- scrypster/muninndb★ 332same name
- raine/consult-llm-mcp★ 148same name
- Vinix24/vnx-orchestration★ 63same name
- Reef123/OpenVera★ 9same name
- dkpapadopoulos/auto-claude-skills★ 6same name
- ilchemla/agent-skills★ 4same name
- niieani/caara★ 4same name
- diazhh/claude-expert-panel★ 1same name
- heiyuneo/claude-skills★ 1same name
- ibrahimshareef96-sys/claude-skills★ 0same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- architecture-satisfactionSkill
- autopilotSkill
- browser-testSkill
- chatter-scoutSkill
- closeoutSkill
- codebase-designSkill
- code-reviewSkill
- code-smells-auditSkill
- commitSkill
- dependency-auditSkill
- diagnosing-bugsSkill
- domain-modelingSkill
- fix-ci-failuresSkill
- fix-github-issuesSkill
- fix-nightwatch-issuesSkill
- fix-posthog-issuesSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- handoffSkill
- harness-toolsSkill
- housekeeperSkill
- implementSkill
- implement-specSkill
- improve-codebase-architectureSkill
- laravel-herd-worktreesSkill
- prototypeSkill
- prSkill
- prune-testsSkill
- releaseSkill
- repository-cleanupSkill
- researchSkill
- resolve-review-commentsSkill
- resolving-merge-conflictsSkill
- retroSkill
- run-afterSkill
- scratch-cleanupSkill
- scratch-statusSkill
- setupSkill
- sweepSkill
- tddSkill
- teachSkill
- to-questionnaireSkill
- to-specSkill
- to-ticketsSkill
- triage-github-prSkill
- triageSkill
- ui-designSkill
- upgrade-planSkill
- verifySkill
- wait-whatSkill
- wayfinderSkill
- which-skillSkill
- wizardSkill
- writing-for-agentsSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 10 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Put one task in front of four agent CLIs (grok, claude, codex, agy) run each in its own subagent, headless, then report a single consensus …
- Very specific: line 30
Review: when the user asks to review a branch, PR, WIP, or "review since X".
- Distinctive: line 39
Write the one task string now.
- Very specific: line 54
Run command -v for each of grok, claude, codex, agy.
- Very specific: line 66
Launch with the launcher script, literal paths only: Run your CLI once, from the repo root (or your worktree), with bash LAUNCHER <cli> …
- Distinctive: line 152
Fix list: every point at every grade, Unanimous through Lone, as one checklist.
- Distinctive: line 156
Offer the shortcut: ask whether to verify and apply the whole list as one commit, naming the count, e.g.
“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Panel
Put one task in front of four agent CLIs (grok, claude, codex, agy) run
each in its own subagent, headless, then report a single consensus grouped by how
much the panel agrees.
Each CLI runs as its own latest/default model. Never pass --model to any of
them. The point of the panel is four independent models; pinning a model defeats it.
Two task shapes:
- Prompt: the user's text goes to all four, unchanged.
- Review: pin one diff scope and tell all four to review it, read-only, same scope each.
Process
1. Read the task and pick the shape
- Review when the user asks to review a branch, PR, WIP, or "review since X".
Pin the fixed point the way
code-reviewdoes: the diff isgit diff <fixed-point>...HEAD(three-dot, against the merge-base), defaultmainwhen the user names none. For uncommitted work in progress, drop the...HEADso the diff also covers staged and unsaved changes. Confirm the ref resolves (git rev-parse <fixed-point>), recordgit rev-parse HEAD, and confirm the diff is non-empty before fanning out, a bad ref should fail here, not inside four subagents. - Prompt otherwise; the user's text is the task, passed word for word.
Write the one task string now. Every CLI receives the identical string, so the four results compare cleanly. Start it with this line, so a panelist never convenes its own panel when the task mentions panels, panelists, or other CLIs:
You are one panelist. Answer the task below yourself, directly. Do not run a panel, launch another agent CLI, or start subagents.
$SCRATCH is the session's scratchpad directory where the harness has one, otherwise
one mktemp -d; hand subagents its absolute path, since they do not share your shell.
Save the string to $SCRATCH/panel-task.txt with the file-write tool (where the harness
has none, a quoted heredoc: cat > "$SCRATCH/panel-task.txt" <<'PANEL_EOF'). The launcher
reads the file, so no launch command contains the task's words, and a guard hook that
reads the command (task text that names git commit, say) cannot block the launch.
2. Check who is on the panel
Run command -v for each of grok, claude, codex, agy. Drop any that is
absent and record it for the final report. If fewer than two remain, there is no
consensus to form: say which are missing and stop.
3. Fan out: one subagent per CLI, in parallel
Spawn one subagent per present CLI, all in a single message so they run at once (in
Claude Code with this plugin installed, subagent_type=leek-skills:panelist: a small,
cheap wrapper, since the thinking happens inside the CLI it runs; in other harnesses, dispatch
and wait per harness-tools, one per CLI, all at once). Give each subagent
the path of the same task file and this brief:
- Launch with the launcher script, literal paths only. Run your CLI once, from
the repo root (or your worktree), with
bash LAUNCHER <cli> TASK_FILE SCRATCH/panel-<cli>.out, whereLAUNCHERis this skill'sscripts/launch.sh, and every path is absolute and written out in full: worktree isolation refuses a command whose words are computed at runtime ($(cat …),$TASK,$PWD). The script holds each CLI's headless command and flags (no--model, ever) and writes all its output to the.outfile. If a guard still refuses the launch, that is a launch-form problem, not a CLI error: say which word it refused;bash LAUNCHER --print <cli> …prints the plain command to run instead. - Run it detached: never let one time out. These CLIs take many minutes, past the
shell tool's 10-minute foreground ceiling, which kills a run before it reports. Launch
with the Bash tool's
run_in_background: true; your turn pauses and you are re-invoked when the CLI exits; then read the.outfile. Where the shell tool has no background mode and rejects&(Grok CLI), run it in the foreground with the tool's timeout set to its maximum (for exampletimeout: 900000), never its default. - Wait with one call, never poll. No
sleep,ps,pgrep, or repeated reads of the output file while the CLI runs: each check spends a turn, and the turn cap ends the subagent while its CLI is still running. - Distill the output into a short, normalized result. For each point the CLI makes,
capture three things: a one-line claim, a location (
file:line, orgeneral), and a one-line reason. Drop the CLI's logs, thinking, and prose. - Return
{ cli, status, points[] }.statusisresponded, orerroredwith a one-line cause (a non-zero exit or an empty.out). Return the object only, no narration.
In review shape, the task string is this brief. Name the pinned diff from step 1 in plain words, with no backticks, so nothing is left for a shell to expand:
Review the change from git diff FIXED-POINT in this repository. Read the diff and any files you need. Report concrete findings only, for each, a one-line claim, the file:line, and a one-line reason. Review only; do not modify any file. Be concise.
Keep review read-only. For a committed scope, dispatch each panelist with
isolation: "worktree" where the harness offers it, so a stray write never reaches the
user's tree; its brief first runs git checkout --detach <step 1's HEAD sha>, since the
worktree may start from another base. A worktree left with uncommitted changes means
its CLI wrote: name both. For WIP scope, or without isolation, save git status --porcelain and git diff
as the baseline before fanning out, and compare after every subagent returns. A path
the CLIs changed that was clean in the baseline: revert it (git checkout -- <path>,
delete new files) and name that CLI. A path that was already dirty holds the user's
unsaved work: report it and leave it as it is. This isolation or tree check (not a
per-CLI flag) is what enforces review-only.
Per-CLI notes: why each flag in scripts/launch.sh is there, read-only options and their
traps, structured-output flags, absent-vs-errored, auth: live in
references/cli-invocations.md. Read it only when a CLI
misbehaves or the panel roster changes.
4. Cluster into consensus
First check the panel had a quorum: at least two CLIs must have responded, not just been present. With fewer, there is no consensus: report the single result plainly and say the panel was short, with the step 5 ping.
Collect the results. Only a returned { cli, status, points[] } object is a result: a
panelist pauses while its CLI runs, and a notification without that object is interim,
so end the turn with no reply and wait for the next one. Match points that make the same claim, even when worded differently
or aimed at the same area. Grade each cluster by the share of the responders (N) that
raised it, and state N so a grade is never read as more agreement than it holds:
- Unanimous: all
N. - Majority: more than half, but not all.
- Split: exactly half (a tie; only when
Nis even). - Lone: fewer than half.
- Conflict: CLIs directly disagree on the same point.
Clustering is a judgement call. When two points are plausibly the same, join them; a borderline join that lifts a point to a higher grade is the whole value of the panel.
5. Report the consensus
Print the clusters, most-agreed first, under ## Unanimous, ## Majority, ## Split,
## Lone, ## Conflict (skip any that are empty). One line per point: the claim,
its location, the CLIs that raised it in brackets, e.g. [claude, codex, grok],
and its one-line reason. For a Conflict, state both sides and who holds each.
In review shape, where the host has ReportFindings, report the clusters through it
instead, in one call, most-agreed first: summary the claim, file/line the location,
failure_scenario the reason plus the CLIs in brackets, category the grade, verdict
CONFIRMED for Unanimous or Majority and PLAUSIBLE below that. Print as markdown only
what it cannot carry: general points and Conflicts. Otherwise print every cluster.
Then a one-line summary: how many points at each grade, the responder count N, and any
CLI that was absent or errored. Ping the user that it is ready (PushNotification
where available, otherwise the report itself is the signal).
Close with a Recommended next steps block:
- Fix list: every point at every grade, Unanimous through Lone, as one checklist. Do not
curate: a Lone finding is a real finding until verified otherwise. For a Conflict, list both
sides and say which one the code supports. After
ReportFindings, the reported findings are the list; name their count instead of repeating them. - Offer the shortcut: ask whether to verify and apply the whole list as one commit, naming the count, e.g. "Reply fix all to verify and apply all 11 points."
On fix all, work every point: verify each against the code, apply the ones that hold, and report the ones that do not with a one-line reason. Never apply only the confident subset and hand the rest back as "weigh individually"; the user asked for the panel so they would not have to re-adjudicate it. Ask only about a point that conflicts with a recorded decision.
Safety
Headless mode auto-approves every tool, so each CLI could write files even though the
brief says review only. Two guards, in order: run the panel on a clean working tree, and
in review shape isolate or revert stray writes per step 3. Per-CLI read-only flags exist
but behave inconsistently, codex --sandbox read-only works, agy --mode plan hijacks
the task into planning, and grok's profile name is machine-specific, so step 3, not a
flag, is what enforces read-only. See the references file.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

