From seldon
This skill should be used when the user asks to "review my plan", "judge this spec", "verify this design doc", "second opinion on this RFC", "run seldon", or wants an independent verdict on a plan, spec, or design document. Sends the provided files to an external judge (Anthropic, OpenAI, or Codex via plugin) or performs an inline workspace review, and returns a structured verdict. Note — API runners (anthropic, openai) can only evaluate files explicitly passed to them; only the codex runner and the inline reviewer can traverse the workspace.
How this skill is triggered — by the user, by Claude, or both
Slash command
/seldon:seldonThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Act as an independent reviewer evaluating a plan written by another agent or human. Judge it on its merits — do not co-author, rewrite, or soften findings.
Act as an independent reviewer evaluating a plan written by another agent or human. Judge it on its merits — do not co-author, rewrite, or soften findings.
Before starting, confirm the following with the user:
balanced): one of balanced, architecture, evaluation, product, operations, safety.auto): one of auto, anthropic, openai, codex, inline.This skill ships with three external judge runners in its own scripts/ directory, alongside this SKILL.md:
| Script | Judge | Default model | Required |
|---|---|---|---|
scripts/codex.sh | Codex via plugin companion | codex default | codex plugin installed |
scripts/anthropic.sh | Anthropic API (Claude) | claude-sonnet-4-6 | ANTHROPIC_API_KEY |
scripts/openai.sh | OpenAI API (GPT) | gpt-4o | OPENAI_API_KEY |
All three runners depend on the JSON Schema file seldon.schema.json, which defines the verdict shape (see Step 4). The scripts look for it first in the skill root (next to this SKILL.md), then in scripts/. If neither location has it, the scripts exit with an error. Verify the schema is present before invoking any runner; if missing, surface this to the user as a setup error rather than retrying.
Scope of each runner:
codex — spawns a Codex agent rooted at the caller's git workspace (git rev-parse --show-toplevel, falling back to pwd). The agent can read other workspace files to verify claims. The plan path itself need not be inside the workspace, but Codex's verification value drops if the workspace is unrelated to the plan.anthropic / openai — see only the files explicitly passed as arguments; their system prompt states this constraint. Pass all relevant supporting files (schemas, configs, referenced code) as extra arguments if workspace verification matters.Resolve the judge as follows:
anthropic, openai, codex, or inline), use that and skip the probe.auto), probe in this order and pick the first available:
codex-companion.mjs found in ~/.claude/plugins → run scripts/codex.shANTHROPIC_API_KEY is set → run scripts/anthropic.shOPENAI_API_KEY is set → run scripts/openai.shWhen invoking a script, resolve the absolute path to this skill's directory and invoke:
bash <skill-dir>/scripts/<judge>.sh --focus <mode> <plan-file> [supporting-files...]
Calling via bash keeps the runner working regardless of file mode, so no chmod +x step is required.
Optional environment overrides read by the scripts:
JUDGE_MODEL — override the default model on any runner.JUDGE_REASONING — codex only (default xhigh).Each script returns JSON matching the verdict shape described in Step 4 on stdout. Parse the JSON and skip directly to Step 4.
If the chosen script exits non-zero, surface the stderr verbatim, explain the likely cause (missing schema, missing API key, file outside workspace, network failure, etc.), and ask the user whether to retry with a different judge or fall back to inline review. Never silently downgrade.
Reach this step only when running an inline review.
| Dimension | What to check |
|---|---|
| Repo fit | Does the plan match this workspace's code, docs, dependencies, and current state? |
| Technical correctness | Are architecture, APIs, data flows, and dependencies coherent? |
| Scope & sequencing | Are prerequisites identified and rollout steps realistic? |
| Evaluation | Are metrics, tests, and observability adequate for the proposed change? |
| Safety & operations | Are privacy, security, failure modes, and rollback handled? |
Apply the chosen focus mode:
External runners return a JSON object matching seldon.schema.json on stdout. Claude then renders it for the user. The schema does not include a Judge field or a visual confidence bar — those are added by Claude at render time.
Render the result in this exact order:
inline, codex (scripts/codex.sh), anthropic (scripts/anthropic.sh), openai (scripts/openai.sh)). This is not in the schema — add it from context.verdict field — one of approve, approve_with_changes, request_major_revision.summary field.confidence score from the schema with the visual bar described below.strengths[] array.blocking_findings[].non_blocking_findings[].open_questions[].Format each finding with: severity (critical / high / medium / low), title, why it matters, evidence from the workspace, and file references (path:line when possible).
Render the confidence score as a 20-segment bar using █ and ░. Pick the label by score range:
0.90–1.00 → 🟢 High confidence0.70–0.89 → 🟡 Moderate confidence0.50–0.69 → 🟠 Low confidence0.00–0.49 → 🔴 Very low confidenceExample for 0.82 (16 filled, 4 empty):
🟡 Confidence ████████████████░░░░ 0.82 (moderate)
approve verdict. Do not manufacture issues.seldon.schema.json)JSON Schema (Draft 2020-12) that defines the verdict object the runners return. Fields: verdict, summary, confidence (numeric 0–1), strengths[], blocking_findings[], non_blocking_findings[], open_questions[]. Each finding requires severity, title, why_it_matters, evidence, references[]. All runners embed the schema in the prompt; the model is asked to return matching JSON. Schema conformance is enforced by prompt, not server-side. The Judge label and confidence bar are added by Claude at render time and are not part of the schema.
scripts/)External judge runners live next to this SKILL.md. Each accepts --focus <mode> <plan-file> [supporting-files...] and emits verdict JSON on stdout matching seldon.schema.json.
scripts/codex.sh — Invokes codex-companion.mjs task --json from the Codex plugin. Discovers the companion automatically from ~/.claude/plugins. Requires the Codex plugin to be installed (/codex:setup). Embeds the schema in the prompt; parses the verdict JSON from rawOutput. Override model with JUDGE_MODEL, reasoning effort with JUDGE_REASONING (default xhigh).scripts/anthropic.sh — Calls the Anthropic Messages API. Reads ANTHROPIC_API_KEY. Default model claude-sonnet-4-6 (override with JUDGE_MODEL).scripts/openai.sh — Calls the OpenAI Chat Completions API with response_format=json_object. Reads OPENAI_API_KEY. Default model gpt-4o (override with JUDGE_MODEL).scripts/validate.sh — End-to-end harness: chooses a judge (auto / explicit), runs it, validates the JSON against seldon.schema.json using Python's jsonschema, and prints a one-line confidence summary. Use it for smoke-testing a runner before relying on its output.All three judge runners share the same post-processing: detect API-level errors, strip markdown fences, and verify the body parses as JSON before emitting to stdout. They will exit non-zero on any of those failures.
Invoke each script via bash <skill-dir>/scripts/<name>.sh ... so file mode does not matter; no chmod +x step is required.
examples/)examples/demo_plan.md — Short, runnable plan suitable for smoke-testing any runner.examples/sample_verdict.json — A schema-conforming verdict, useful as a fixture or when teaching the format.Guides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Implements work from a spec or tickets using TDD at agreed seams, with regular typechecking and test runs, followed by code review.
npx claudepluginhub proyecto26/seldon --plugin seldon