← ClaudeAtlas

critiquelisted

The critique node of the canonical workflow — run two adversarial critics in parallel (implementer lens + user lens) against a freshly-planned spec, write their findings to .oh/tasks/<slug>/critique.md, and hand off to the approve gate. This is the EVIDENCE half of the critique→approve pair; it produces findings, it does not decide (the /approve gate decides). Runs on local artifacts only, before any GitHub-side state. TRIGGER when: a PRD/plan exists and needs adversarial review before the commitment gate; "critique this spec", "run the critics on <slug>", "review prd before we build".
mifunedev/openharness · ★ 40 · AI & Automation · score 79
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