critiquelisted
Install: claude install-skill mifunedev/openharness
# Critique — two adversarial critics before commitment
The **critique** node of the canonical workflow (`AGENTS.md § The Workflow`), composed by `/spec critique`. It runs
the short adversarial feedback loop on a planned spec *before* anything is committed,
and writes the `critique.md` artifact the `approve` gate then decides on.
**Core principle: surface risk while the spec is still the cheapest thing to revise.**
Two critics with **different framings** review `.oh/tasks/<slug>/prd.md` in parallel —
symmetric critics waste context. Every finding is SEVERITY-tagged so the downstream
`/approve` gate can act on it mechanically. This node produces evidence; it does not
gate (that is `/approve`). Like the gate, it touches only local artifacts — no
GitHub-side state exists yet (critic-before-commitment). Formalizes `/ship-spec` Stage 3 as a
reusable node.
---
## Inputs
| Arg | Meaning |
|-----|---------|
| `<slug>` | The task slug — the critics read `.oh/tasks/<slug>/prd.md`; output is written to `.oh/tasks/<slug>/critique.md`. Required. |
If `.oh/tasks/<slug>/prd.md` is absent there is nothing to critique — print an error
pointing at `/spec plan` and emit **no** `STATUS:` token (honest exits: a missing
spec is a failure, not a clean critique).
---
## Run the critics (parallel)
Launch **two `Agent` tool calls in a single message** (parallel execution) with
`subagent_type: "critic"`. Both also receive the protected-paths cross-check: read
`.claude/protected-paths.txt` and f