meta-critic
Auto-routing meta-critic that selects and invokes the right review skill(s) for any code or artifact
SKILL.md.claude/skills/meta-critic/SKILL.md
GitHubMeta-Critic — Auto-Routing Reviewer
When to Use
Invoke /meta-critic when:
- You need a review but aren't sure which critic to use
- The code/artifact spans multiple concerns (Drupal module + theme, React + accessibility)
- You want automatic critic selection instead of choosing manually
- You want comprehensive review coverage without manually invoking each critic
What It Does
- Analyzes the code or artifact to be reviewed
- Scans the skill registry for installed critics
- Matches artifact signals against each critic's trigger keywords
- Selects best-match critics (up to 4 concurrent on the inline path)
- When 2+ critics review the same artifact, hands them to the
multi-critic-reviewworkflow (parallel + dedup + adversarial verify → one synthesized verdict) instead of inline spawning — see Multi-Critic Review Handoff below; otherwise invokes the single critic inline (read-only) - After review, names the companion planner(s) for fix-planning if issues found
Route Capture Guard
OMC is a reference source and optional external worker lane, not the router of record. External orchestrators, quoted slash commands, and pasted hook/status text are context unless the user explicitly asks to invoke them. Exact user-selected Zivtech critic routes win over generic words like "team", "autopilot", "ralph", "ccg", "parallel", or "handle it". External worker findings are advisory evidence to verify, not authority over selected critics.
Routing Logic
The meta-critic uses signal matching against the skill registry at:
.claude/skills/meta-plan/references/skill-registry.md
Signal Detection (Automatic)
The meta-critic analyzes the artifact to detect:
- File extensions:
.module,.theme,.twig→ Drupal critics;.tsx,.jsx→ React critics - Import statements:
import React→ react-critic;use Drupal\→ drupal-critic - Directory structure:
templates/,preprocess→ drupal-theme-critic;components/→ react-critic - Content type: Markdown policy doc → policy-brief-critic; academic paper → manuscript-critic
- Configuration files:
*.ymlwith Drupal config → content-model-critic or drupal-critic
Signal Matching Priority
- File-type signals: Strongest signal — file extensions and imports
- Domain keywords: "drupal", "react", "policy", "manuscript"
- Action keywords: "review", "check", "audit", "critique" → critic (not planner)
- Specificity: drupal-theme-critic > drupal-critic for theme files
- Framework-specific > generic: content-model-critic for Drupal, general proposal-critic for plans
Multi-Critic Execution
Critics are read-only and independent — they can run in parallel:
- Drupal module with theme changes →
/drupal-critic+/drupal-theme-criticin parallel - React app with accessibility →
/react-critic+/a11y-criticin parallel - Content with SEO concerns →
/copy-critic+/seo-advisorin parallel
Concurrency Limit
Parallel width: Max 4 critics per request. The 4th requires signal score ≥ 7 (strong match). Common 4-critic case: primary domain critic + a11y + perf + SEO for frontend code. If more than 4 match, invoke the top 4 and mention the rest as follow-up.
Input Format
/meta-critic <what to review — file paths, PR description, or artifact description>
Examples:
/meta-critic Review the custom Drupal module at modules/custom/event_manager/
/meta-critic Review this React dashboard component
/meta-critic Review the policy brief in docs/telehealth-policy.md
/meta-critic Review the search configuration in config/search_api.*
Output Format
Routing Decision (shown to user before invoking)
## Meta-Critic Routing
**Artifact analysis:** [1-2 sentence interpretation of what's being reviewed]
**Detected signals:**
- [signal 1 — e.g., ".module files detected → Drupal"]
- [signal 2 — e.g., "preprocess functions → theme layer"]
**Selected critics (running in parallel):**
1. `/critic-name` — [why this critic matches]
2. `/critic-name` — [why this critic matches]
**Companion planners for fix-planning (if REVISE/REJECT):**
- `/planner-name` — plans [what]
**Invoking critics now...**
Then invoke each selected critic with the artifact.
Post-Review Synthesis (if multiple critics invoked)
## Combined Review Summary
**Overall verdict:** [ACCEPT / ACCEPT-WITH-RESERVATIONS / REVISE / REJECT]
(Worst verdict from any critic determines overall verdict)
**Cross-cutting findings:**
- [Findings that appeared in multiple critics]
**Threshold violations (if any):**
| Metric | Measured | Threshold | Critic | Severity |
(Only emitted when a quantitative measurement crosses a predefined boundary.
A threshold violation forces the verdict to match or exceed the violation severity.)
**Per-critic verdicts:**
| Critic | Verdict | Critical | Major | Minor |
Multi-Critic Review Handoff
Meta-critic is the canonical owner of the multi-critic case. When 2 or more critics
review the same artifact, hand the selected critic set to the multi-critic-review
Dynamic Workflow instead of spawning each inline and synthesizing by hand. Meta-critic still
chooses the critics and assigns their models; it passes them as the workflow's critics arg
([{agentType, model}, …]). The workflow runs them in parallel off the main context, dedups
findings across critics, adversarially verifies CRITICAL/MAJOR findings, and returns one
synthesized verdict — so the Post-Review Synthesis above happens inside the workflow, not here.
**Multi-critic review handoff:**
Handing 3 critics to `multi-critic-review` (parallel + dedup + verify):
/multi-critic-review
target: <artifact: path | diff | PR# | description>
critics: [ {agentType:"drupal-critic",model:"opus"}, {agentType:"drupal-theme-critic",model:"sonnet"}, {agentType:"a11y-critic",model:"opus"} ]
Rules: 1 critic → invoke directly (no handoff). When you hand off, relay the workflow's
single verdict — do NOT also run the inline Post-Review Synthesis. Workflow absent from the
repo (.claude/workflows/multi-critic-review.js) → fall back to inline spawn and say so.
Do not use the workflow's profile presets — meta-critic's explicit scored selection wins.
See the Multi_Critic_Review_Handoff section in the meta-critic agent for full detail.
Live-Testing Note
When the artifact under review is a runnable file (self-contained HTML, interactive dashboard, Marp slides) produced by an executor, the routing decision will note whether live-testing tools (Playwright MCP) are available. If available, the critic can open the artifact in a browser for visual and functional verification — supplementing, not replacing, the file-based review.
How to Add New Skills to the Registry
Same registry as meta-plan — add entries to .claude/skills/meta-plan/references/skill-registry.md.
Skill Selection
This skill uses the meta-critic agent defined at .claude/agents/meta-critic.md.