# Panel

> Use to get independent perspectives on a topic from multiple models (a strong Claude model + Codex by default). Use with /at:synthesize to merge.

- Skill: `patforna/panel` (Agent Skill)
- Install (CLI): `npx skillmds@latest add patforna/panel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/patforna/panel/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: patforna (https://skillmd.com/u/patforna)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/patforna/panel

---


# Panel

## Precondition

Must be run from main thread (reason: subagents can't spawn other subagents)

## Usage

`/at:panel <prompt>`

Prompt is mandatory — if missing, fail loudly; don't infer.

## Goal

Get independent perspectives on a topic from multiple models. Default line-up: the strongest available Claude model + Codex. Callers (or project config, e.g. auto-task's config) may specify different panelists.

## Step 1: Expand Skill References

If the prompt invokes a skill (explicit `/name` only — not bare names in prose/diagrams), inline its `SKILL.md`, clearly fenced, after the instruction. Recurse into `/name` invocations found inside, but inline each skill at most once — never re-expand one already present (terminates; prevents cycles and bloat).

Example: `/at:panel please /at:plan-task 054 but don't write to the task file.`

Expanded prompt:

""" Please /at:plan-task 054 but don't write to the task file.

Skill references: === BEGIN plan-task SKILL.md === [full content of the plan-task skill's SKILL.md — resolve the skill wherever it is installed, e.g. the plugin cache under `~/.claude/plugins/cache/` or the project's `.claude/skills/`] === END plan-task SKILL.md === """

## Step 2: Append Anti-Sycophancy Block

Append the block below to the prompt:

> Answer directly and honestly. Do not hedge or soften to be agreeable. If your honest answer differs substantively from what the prompt seems to expect, give that one.

## Step 3: Dispatch

Spawn one subagent per panelist in parallel and pass through the prompt — by default a Codex panelist (via `codex:codex-rescue`) and a Claude panelist (strongest available model).

If a requested panelist is unavailable (e.g. usage limit), fail loudly — do not substitute or skip.

Write the responses to `/tmp/panel-<timestamp>-<slot>.md`.

## Step 4: Deliver

Present all responses verbatim, each directly attributed to its model (e.g. Codex / Claude), including the paths to the raw responses.

Do not synthesise, reconcile, or edit.

