Skip to content
Back to skills

Panel Majority Vote

ASecurity

Three isolated reviewers vote PASS or BLOCK; the majority decides. Use on the 3rd fast-review FAIL, for security-sensitive changes or database migrations, or when someone asks for an independent multi-reviewer panel.

  • 80 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 28, 2026
ai-agentsbashdatabasesecurity

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add monkilabs/opencastle --skill panel-majority-vote --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Panel Majority Vote?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Panel Majority Vote
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/monkilabs-panel-majority-vote/badge)](https://www.skillsdirectory.com/skills/monkilabs-panel-majority-vote)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: panel-majority-vote
description: "Three isolated reviewers vote PASS or BLOCK; the majority decides. Use on the 3rd fast-review FAIL, for security-sensitive changes or database migrations, or when someone asks for an independent multi-reviewer panel."
---

# Skill: Panel majority vote

## Inputs / Outputs

**Inputs:** `<runRoot>`, `<panelKey>` (filesystem-safe), question text, artifact list. Panel dir default: `<runRoot>/panel/`.

| File | Path |
|------|------|
| Prompt payload (optional) | `<panelDir>/<panelKey>-panel-prompt.md` |
| Raw reviewer outputs | `<panelDir>/<panelKey>-reviewer-outputs.md` |
| Consolidated report | `<panelDir>/<panelKey>.md` |


## Procedure

1. **Validate scope** — every artifact path under `<runRoot>`; list sufficient to answer question.

2. **Spawn 3 reviewers in parallel** — three sub-agent dispatches with identical prompts (same question, artifact list, constraints), each isolated. Required reviewer output sections (no others): `VERDICT: PASS | BLOCK`, `MUST-FIX:`, `SHOULD-FIX:`, `QUESTIONS:`, `TEST IDEAS:`, `CONFIDENCE: low | med | high`.

3. **Persist outputs** — write `<panelDir>/<panelKey>-reviewer-outputs.md` with a header (run root, panel key, question, artifacts) and each reviewer output verbatim, separated.

4. **Consolidate** — parse each reviewer output for its `VERDICT:` line and count PASS votes. Overall verdict = PASS if pass_count ≥ 2; otherwise BLOCK. Deduplicate `MUST-FIX:` and `SHOULD-FIX:` items and annotate each item with `(N/3 reviewers)`.

```bash
# count PASS/BLOCK from combined outputs
pass_count=$(grep -o "VERDICT: PASS" panel/run123-reviewer-outputs.md | wc -l)
block_count=$(grep -o "VERDICT: BLOCK" panel/run123-reviewer-outputs.md | wc -l)
verdict=$([ "$pass_count" -ge 2 ] && echo PASS || echo BLOCK)

# emit a minimal JSON summary using jq (install jq if needed)
jq -n --arg panel_key "run123-panel" --arg verdict "$verdict" --argjson pass_count $pass_count --argjson block_count $block_count '{panel_key:$panel_key, verdict:$verdict, pass_count:$pass_count, block_count:$block_count}' > panel/run123-summary.json
```

5. **Write report** — create `<panelDir>/<panelKey>.md` from [panel-report.template.md](./panel-report.template.md), referencing the generated summary. Minimal structure:

- Title: Panel `<panelKey>` — Verdict: `PASS | BLOCK` (pass_count/block_count)
- Highlights: top deduplicated `MUST-FIX` and `SHOULD-FIX` items
- Evidence: paths to reviewer outputs and `panel/run123-summary.json`

6. **Print summary** — overall verdict + vote tally + report path.

7. **Log (⛔ hard gate)** — call the **observability-logging** skill with `panel_key`, `verdict`, `pass_count`, `block_count`, `must_fix`, `should_fix`, `reviewer_model`, `weighted`, `attempt`, `tracker_issue`, `artifacts_count`, `report_path` for verification.

## Notes

- On BLOCK: change underlying work; re-run; do not re-word question.
- After 3 consecutive BLOCKs on the same panel key: create a dispute record per **team-lead-reference** § Dispute Protocol.
- Model selection: same model for all 3 reviewers. See **team-lead-reference** for model routing.
- Weighted consensus variant (domain-expertise weighting): see [REFERENCE.md](./REFERENCE.md).

Files in this skill

  • REFERENCE.md1.6 KB
  • SKILL.md3.5 KB
  • panel-report.template.md851 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…