AGENT SKILL

panel

Multi-provider deliberation panel for COMPLEX, multi-view questions — architecture, strategy, market research, and codebase sweeps. Runs a 4-stage deliberation across the provider fleet (diverge → contrarian red-team → adversarial verify → cited synthesis), the same multi-perspective rigour the plan-gate already applies to plan reviews, generalised to arbitrary questions. Use when one model's answer isn't enough and you want convergence THROUGH disagreement + verification, not a single opinion.

License 许可
MIT
最近更新
2026-10-08
Stars
★ 11
Forks
3

01 前言 Front Matter

name
panel
description
Multi-provider deliberation panel for COMPLEX, multi-view questions — architecture, strategy, market research, and codebase sweeps. Runs a 4-stage deliberation across the provider fleet (diverge → contrarian red-team → adversarial verify → cited synthesis), the same multi-perspective rigour the plan-gate already applies to plan reviews, generalised to arbitrary questions. Use when one model's answer isn't enough and you want convergence THROUGH disagreement + verification, not a single opinion.
allowed-tools
[ "Read", "Grep", "Glob", "Bash" ]

03 SKILL.md 正文

/panel — multi-provider deliberation

For hard questions where you want several strong models to genuinely deliberate, not just answer in parallel. Each stage builds on the last, so the panel converges through disagreement and verification instead of averaging opinions.

When to use

  • architecture — a feature/system design where the tradeoffs are non-obvious.
  • strategy — a business/product call that rests on assumptions worth stress-testing.
  • research — market/competitive questions where claims need refuting.
  • sweep — a codebase audit (security / correctness / dead-code / refactor).

Reach for it when a single model's answer would be a guess, and you'd otherwise open five terminals yourself.

How it works (4 stages)

  1. Diverge — every fleet provider (codex / kimi / claude / glm-5.2 / deepseek-harness) analyses the SAME question through a DIFFERENT mode-specific lens.
  2. Contrarian — one designated seat red-teams the emerging consensus: what did everyone miss, which "this is fine" is wrong.
  3. Verify — the top claims are adversarially checked (against the CODE for sweeps — real file:line; against SOURCES for research — try to refute).
  4. Synthesis — one cited report: consensus + surviving dissent + verified/refuted claims, ranked and deduped.

How seat coverage is counted (OI-1519)

"N of M lenses present" is reconciled against the t0 receipt ledger (t0_receipts.ndjson), never taken from the exit_code a seat writes about ITSELF in its own report frontmatter. After each stage completes, every seat's dispatch-id is looked up in the ledger via receipt_provenance.find_receipts_by_dispatch and lands in one of THREE outcomes:

  • present — the ledger holds a decisive SUCCESS record for the seat's dispatch-id (status in the ADR-035 success set done/success/complete/completed, or verdict.decision=accept).
  • failed — the ledger holds a decisive FAILURE record (status in the ADR-035 hard-failure set failed/failure/error/blocked/timeout/contract_invalid, or verdict.decision=reject; multiple receipts for one dispatch-id reconcile failure-beats-success — a success record never launders a recorded failure). A dispatcher that RAISED before the seat completed is failed on direct local evidence.
  • unmeasured — the ledger has NO decisive record for the dispatch-id (no receipt at all, or only indecisive ones). This is a third BRANCH, not a third value: the seat counts as NEITHER present NOR failed and is named in the report (**Unmeasured seats:**, [SEAT UNMEASURED — no decisive ledger record]). Reading "unmeasured" as "probably fine" repeats exactly the bug OI-1519 repaired — a measurement gap is not a lens.

Where the ledger and the seat's own frontmatter DISAGREE, the ledger WINS the count and the divergence itself is reported (## Ledger reconciliation — divergences in the report, result.ledger_divergences) — a silent correction would produce a panel that cannot be weighed. When no ledger exists or can be read at all (fresh checkout) the tally falls back to the pre-OI-1519 frontmatter measurement, flagged loudly via ledger_available=False in the report — never silently.

This holds for the diverge fan-out AND for the sequential stages (contrarian, verify, synthesis), which accept a seat via _first_ok under the same measurement: a ledger-failed seat is skipped; an unmeasured seat is kept only as a last-resort fallback so a measurement gap cannot collapse a stage to [empty] when real content exists.

Measured case (2026-08-29, the dispatch that opened OI-1519): seat panel-sweep-diverge-0-a6421f (codex) wrote exit_code: 0 in its own report frontmatter while the receipt ledger records status=timeout, verdict.decision=reject after the 600s deadline. Pre-fix it counted PRESENT (4/5 lenses reported; really 3 + a timeout). Post-fix it counts FAILED, and the divergence is printed in the report.

Run it

python3 scripts/panel.py <mode> "<question>" [--context-file FILE] [--timeout 900] [--out FILE]

Examples:

# architecture decision, grounded on a design doc
python3 scripts/panel.py architecture "Should the judge run per-receipt or batched?" --context-file docs/adr-028.md

# code sweep grounded on a diff or file list
git diff origin/main > /tmp/d.diff
python3 scripts/panel.py sweep "Review this change for security + correctness" --context-file /tmp/d.diff

# market research
python3 scripts/panel.py research "Is there an underserved MKB market for local-LLM invoice processing?"

The cited report lands in unified_reports/panel-<mode>-<id>.md and prints to stdout.

Notes

  • Governed lane: each panelist dispatches through the review lane and emits a receipt. Respects the provider constraints (kimi-via-cli-only, glm via OpenRouter/harness, deepseek-harness with its own key + hardening, no-anthropic-sdk) — the dispatcher routes each provider correctly.
  • A dead/absent provider (e.g. deepseek without its key) degrades the panel gracefully; it never blocks the run.
  • The panel is the fabric's general multi-view tool. It complements the plan-gate panel (which is scoped to plan reviews) and the t0-orchestrator skill (which owns orchestration decisions). Implementation: scripts/lib/deliberation_panel.py.

04 同仓库更多 Skills

lza6
lza6/Armor-piercing-system-prompts

ci-cd-and-automation

Automates CI/CD pipeline setup. Use when setting up or modifying build and deployment pipelines. Use when you need to automate quality gates, configure test runners in CI, or establish deployment strategies.

★ 11
lza6
lza6/Armor-piercing-system-prompts

chrome-devtools

Uses Chrome DevTools via MCP for efficient debugging, troubleshooting and browser automation. Use when debugging web pages, automating browser interactions, analyzing performance, or inspecting network requests. This skill does not apply to `--slim` mode (MCP configuration).

★ 11
lza6
lza6/Armor-piercing-system-prompts

chrome-cdp

Drive a real Chrome via the Chrome DevTools Protocol (CDP). Ensures a debuggable Chrome is running (launching it if needed) so the agent can navigate, read page content, inspect the DOM, run JavaScript, and take screenshots — without the user typing any launch command. Includes a first-class "review a live running app" flow: point Chrome at the app under development and inspect/screenshot the REAL page (what a static-artifact tool cannot do). Backed by Glimpse and the chrome-devtools MCP server. Use when asked to "use chrome", "open chrome", "drive my browser", "read the page in chrome", "review the running app", "screenshot the app", or "/chrome-cdp".

★ 11
lza6
lza6/Armor-piercing-system-prompts

check-identity-pack

Run an AFP 100-point or AUSTRAC safe-harbour identity check over a set of documents, and report exactly what's missing. Use when the user asks to check identity documents, verify someone's ID for onboarding, or assess whether a document pack satisfies Australian identity requirements.

★ 11
lza6
lza6/Armor-piercing-system-prompts

changelog

Auto-generates a changelog from git commits, sprint data, and design documents. Produces both internal and player-facing versions.

★ 11
lza6
lza6/Armor-piercing-system-prompts

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

★ 11