yun-review-work
Two independent reviewers review the same target at once, blind to each other. You
coordinate and synthesize — you never review yourself. The value is independence: two
minds that never saw each other's reasoning catch what one alone misses.
Invoking this skill
- The user asked explicitly ("review this work", "revisá esto") → launch now.
They already consented.
- You surfaced it (a strong decision just landed — see the gate) → emit ONE line
offering to review, then WAIT. Launching two reviewers is expensive; never launch without
a yes. If the offer is ignored or declined, do not offer again for that target this
session.
Strong-decision gate — offer only when BOTH hold, judged from the conversation:
- The target is an architecture/design decision, or a plan/spec/design for a feature
spanning multiple files/components (not a one-liner).
- It is about to be acted on (implementation or commit is the stated next step).
Never offer for (explicit-only): bug fixes, typos, single-file mechanical edits,
refactors within one unit, doc tweaks, answering questions, exploratory work.
What to review (the target kind sets the criteria)
Infer the kind from the target. If it fits several, apply the UNION of their criteria; if
none fits, use decision.
- decision / plan (default) — unstated assumptions, contradictions, uncovered cases,
"executable without asking a single question?", blast radius, reversibility.
- spec — ambiguity, placeholders, testability, completeness.
- design — boundaries, does the mechanism degrade, coherence with existing patterns.
- skill — trigger fires reliably, no tool names leak, a degrade ladder where it
declares a tool-backed capability, convention fidelity (
yun-<verb>-<noun>, information
hierarchy).
- code — correctness, edge cases, error handling, performance, security, conventions.
The review
- Launch two independent reviewers over the same target, each blind to the other —
neither knows another exists. Give both the identical target and criteria. They only
READ and report; they never edit anything (so no branch or workspace isolation is
needed).
- If you cannot run them at once, run two blind passes one after the other, each in a
fresh context so the second never sees the first's reasoning. If a clean fresh context
cannot be guaranteed, proceed but declare the blindness is best-effort. If even that is
impossible, say so — never claim a blindness you did not get.
- Each reviewer returns findings only — no praise, no approval. Per finding: severity
(CRITICAL / WARNING real / WARNING theoretical / SUGGESTION), location, what is wrong
and why, and the fix intent.
- Synthesize — you, not a reviewer:
- Confirmed — found by BOTH → high confidence.
- Suspect — found by ONE → triage.
- Contradiction — they disagree → flag for a human call.
Classifying warnings
Per warning, ask whether it is real or theoretical:
- code → "can a normal user, using it as intended, trigger this?"
- non-code → "would an implementer building from this hit a wrong or blocked outcome?"
Yes → real, fix it. No → theoretical (labelled INFO in the verdict — same thing);
do not fix, do not re-review.
Converging
- Round 1: present the verdict and ask before fixing. Fix confirmed CRITICALs and real
WARNINGs, then re-review.
- Round 2+: re-review only if confirmed CRITICALs remain. If only real WARNINGs are
left, fix them inline and trust the fix on your own inspection — no new round. After 2
fix iterations with issues still left, ask the user before continuing.
- Suspect and Contradiction findings also block a clean verdict: a Suspect CRITICAL or
real WARNING (raised by one reviewer), or an unresolved Contradiction, must be resolved —
fixed, or dismissed with a stated reason — before APPROVED. Never pass one over just
because a single reviewer raised it.
Terminal verdicts — reach exactly one:
- APPROVED = 0 confirmed CRITICALs + 0 confirmed real WARNINGs, and no open Suspect
CRITICAL or Contradiction. Theoretical warnings and suggestions may remain.
- ESCALATED = issues remain after 2 fix iterations; hand them to the user with the open
findings.
v1 assumes a user is present at these convergence points. An unattended path — driving to a
verdict without prompting — is future work (see the design's AFK note); do not improvise it
here.
Blocking rules (do not skip)
- Do NOT declare APPROVED until the convergence criteria above are met.
- Do NOT commit, push, or move on after applying fixes until re-review completes.
- Do NOT say "done" until the verdict is terminal.
- YOU never review the target yourself — you only launch, gather, and synthesize.
Coexistence
Where the global judgment-day skill is installed (Claude Code today), it owns the judge
phrasing — AGENTS.md carries the one authoritative list and routes it to the global. This
skill fires via its auto/offer path and its own review phrases ("review this work",
"revisá esto", "revisá este trabajo"), which keep it clear of that list. Where the global is
not present, these phrases are the only path. When the global is retired, its phrases move
here.
Attribution
Distilled from the global judgment-day skill — the same blind-parallel protocol,
rewritten tool-agnostic for this harness. Named for what it does: review any work, not only
code (Matt Pocock's code-review is code-only), so the verb is review and the noun the
general work.
1---2name: yun-review-work3description: Use when the user wants to adversarially stress-test a decision, plan, spec, design, skill, or code change before acting — e.g. "review this work", "revisá esto", "revisá este trabajo". Runs two blind independent reviewers and synthesizes a verdict.4---56# yun-review-work78Two independent reviewers review the same target at once, blind to each other. You9coordinate and synthesize — you never review yourself. The value is independence: two10minds that never saw each other's reasoning catch what one alone misses.1112## Invoking this skill1314- **The user asked explicitly** ("review this work", "revisá esto") → launch now.15 They already consented.16- **You surfaced it** (a strong decision just landed — see the gate) → emit ONE line17 offering to review, then WAIT. Launching two reviewers is expensive; never launch without18 a yes. If the offer is ignored or declined, do not offer again for that target this19 session.2021**Strong-decision gate — offer only when BOTH hold, judged from the conversation:**221. The target is an architecture/design decision, or a plan/spec/design for a feature23 spanning multiple files/components (not a one-liner).242. It is about to be acted on (implementation or commit is the stated next step).2526**Never offer for** (explicit-only): bug fixes, typos, single-file mechanical edits,27refactors within one unit, doc tweaks, answering questions, exploratory work.2829## What to review (the target kind sets the criteria)3031Infer the kind from the target. If it fits several, apply the UNION of their criteria; if32none fits, use `decision`.3334- **decision / plan** (default) — unstated assumptions, contradictions, uncovered cases,35 "executable without asking a single question?", blast radius, reversibility.36- **spec** — ambiguity, placeholders, testability, completeness.37- **design** — boundaries, does the mechanism degrade, coherence with existing patterns.38- **skill** — trigger fires reliably, no tool names leak, a degrade ladder where it39 declares a tool-backed capability, convention fidelity (`yun-<verb>-<noun>`, information40 hierarchy).41- **code** — correctness, edge cases, error handling, performance, security, conventions.4243## The review44451. **Launch two independent reviewers** over the same target, each blind to the other —46 neither knows another exists. Give both the identical target and criteria. They only47 READ and report; they never edit anything (so no branch or workspace isolation is48 needed).49 - If you cannot run them at once, run two blind passes one after the other, each in a50 fresh context so the second never sees the first's reasoning. If a clean fresh context51 cannot be guaranteed, proceed but declare the blindness is best-effort. If even that is52 impossible, say so — never claim a blindness you did not get.532. **Each reviewer returns findings only** — no praise, no approval. Per finding: severity54 (CRITICAL / WARNING real / WARNING theoretical / SUGGESTION), location, what is wrong55 and why, and the fix intent.563. **Synthesize** — you, not a reviewer:57 - Confirmed — found by BOTH → high confidence.58 - Suspect — found by ONE → triage.59 - Contradiction — they disagree → flag for a human call.6061## Classifying warnings6263Per warning, ask whether it is real or theoretical:64- **code** → "can a normal user, using it as intended, trigger this?"65- **non-code** → "would an implementer building from this hit a wrong or blocked outcome?"6667Yes → **real**, fix it. No → **theoretical** (labelled INFO in the verdict — same thing);68do not fix, do not re-review.6970## Converging7172- **Round 1:** present the verdict and ask before fixing. Fix confirmed CRITICALs and real73 WARNINGs, then re-review.74- **Round 2+:** re-review only if confirmed CRITICALs remain. If only real WARNINGs are75 left, fix them inline and trust the fix on your own inspection — no new round. After 276 fix iterations with issues still left, ask the user before continuing.77- **Suspect and Contradiction findings also block a clean verdict:** a Suspect CRITICAL or78 real WARNING (raised by one reviewer), or an unresolved Contradiction, must be resolved —79 fixed, or dismissed with a stated reason — before APPROVED. Never pass one over just80 because a single reviewer raised it.8182**Terminal verdicts — reach exactly one:**83- **APPROVED** = 0 confirmed CRITICALs + 0 confirmed real WARNINGs, and no open Suspect84 CRITICAL or Contradiction. Theoretical warnings and suggestions may remain.85- **ESCALATED** = issues remain after 2 fix iterations; hand them to the user with the open86 findings.8788v1 assumes a user is present at these convergence points. An unattended path — driving to a89verdict without prompting — is future work (see the design's AFK note); do not improvise it90here.9192## Blocking rules (do not skip)9394- Do NOT declare APPROVED until the convergence criteria above are met.95- Do NOT commit, push, or move on after applying fixes until re-review completes.96- Do NOT say "done" until the verdict is terminal.97- YOU never review the target yourself — you only launch, gather, and synthesize.9899## Coexistence100101Where the global `judgment-day` skill is installed (Claude Code today), it owns the judge102phrasing — AGENTS.md carries the one authoritative list and routes it to the global. This103skill fires via its `auto`/offer path and its own review phrases ("review this work",104"revisá esto", "revisá este trabajo"), which keep it clear of that list. Where the global is105not present, these phrases are the only path. When the global is retired, its phrases move106here.107108## Attribution109110Distilled from the global `judgment-day` skill — the same blind-parallel protocol,111rewritten tool-agnostic for this harness. Named for what it does: review any work, not only112code (Matt Pocock's `code-review` is code-only), so the verb is `review` and the noun the113general `work`.