Skip to content
Back to skills

Independent Judge Swarm

ASecurity

Grade an artifact with a mechanical precheck plus two independent judges (Fable + Codex). Building agent must not self-grade. Use for /grade, /holdings-sheet-swarm-grade, sheet/report second opinions, or when a PASS from the author alone is not enough. Domain files under domains/ bind coding vs equities triggers and cwd scripts.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agents

Works with

  • cursor
  • cli

Security analysis

A100/100

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

Scanned September 19, 2026

npx -y skills add EdbertChan/catstack --skill independent-judge-swarm --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Independent Judge Swarm?

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

Security grade badge for Independent Judge Swarm
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/edbertchan-independent-judge-swarm/badge)](https://www.skillsdirectory.com/skills/edbertchan-independent-judge-swarm)

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: independent-judge-swarm
description: >-
  Grade an artifact with a mechanical precheck plus two independent judges
  (Fable + Codex). Building agent must not self-grade. Use for /grade,
  /holdings-sheet-swarm-grade, sheet/report second opinions, or when a
  PASS from the author alone is not enough. Domain files under domains/
  bind coding vs equities triggers and cwd scripts.
disable-model-invocation: true
---

# Independent judge swarm

Second opinions from judges that did **not** build the artifact. Mechanical
precheck first, then Fable + Codex in parallel. On FAIL, run
`thrash-reflect-automate` — do not re-prompt the user for that sequence.

## Domain selector

After reading this file, read **at most one** sibling `domains/<type>.md`:

1. User named the type (`coding`, `equities`, holdings, claim research).
2. Else cwd has `.cursor/judge-swarm-bindings.json`, or equities trigger
   words (holdings, Sheets, research report) → `equities`; Invoker /
   catstack / `package.json` without those → `coding`.
3. Else none. Do not read both in one turn.

## Invariants (assert)

- The building agent MUST NOT be the sole judge.
- Run a **mechanical precheck** before or beside LLM judges when a script
  exists; LLM PASS alone is not enough when invent/uniqueness can hide.
- Use **two independent judges** (Fable + Codex) in parallel when both are
  available. If one is missing auth, report that and still run the other.
- Prefer local evidence files over “looks fine in the UI.”
- If judges disagree on a blocking check, report BOTH and treat as
  `needs_work`.
- Do not paraphrase away a FAIL.
- On FAIL / NEEDS_WORK: invoke `thrash-reflect-automate` (reflect → fix the
  class → codify invariant → automate a catch → re-validate). Prefer
  `principle-assert-invariants-not-last-bug` for the class fix.

## Shared board fields

Every judge output MUST include at least:

| Field | Shape |
| --- | --- |
| `judge` | string |
| `verdict` | `pass` \| `fail` \| `needs_work` |
| `score` | integer 0–100 |
| `blocking_issues` | list of `{id, severity, evidence}` |
| `root_cause_class` | string (class of bug, not instance name) |
| `avoid_next_time` | string (mechanical catch to add) |

Domain files may require extra fields. Parent-specific or ticker-specific
checks belong in the domain file or the repo’s grade schema — not here.

## Generic workflow

1. Resolve the artifact under review (path, URL, or PR) from the user or
   the domain file.
2. If a mechanical grade/precheck script exists in cwd (see domain), run it.
3. Spawn Fable and Codex judges with the same packet; collect boards.
4. Merge: any blocking FAIL → overall FAIL; else disagreement →
   `needs_work`; else PASS.
5. Reply with verdicts, blocking issues, agreement/disagreement, and one
   recommended next fix.
6. On FAIL / NEEDS_WORK, run `thrash-reflect-automate` before declaring
   done.

## Do not

- Invent a CLI that is not present in the cwd.
- Put consumer script paths in this generic file. Equities bindings are
  loaded from the consumer’s `.cursor/judge-swarm-bindings.json` via
  `scripts/resolve_equities_bindings.py`.
- Self-grade and stop.
- Claim fixed without a new board after thrash.

Files in this skill

  • SKILL.md3.2 KB
  • domains/coding.md1.2 KB
  • domains/equities.md1.9 KB
  • references/fixture_bindings.json1.2 KB
  • scripts/resolve_equities_bindings.py5 KB
  • tests/test_equities_bindings_repro.py6.6 KB

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.