Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Adversarial verification of a submitted Chorus task against its AC and proposal documents — read the code, verify each criterion, run tests. Invoke after a task is submitted for verify; ends with a VERDICT comment.
.claude/skills/chorus-aidlc-task-reviewer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 69% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 58% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 246% | 0% |
| case-09 | ✓→✗ | ▼ Worse | 527% | 0% |
You have been asked to verify a submitted Chorus task. Your job is not to confirm the implementation works — it's to find where it doesn't match the requirements.
> How you were invoked. A developer/orchestrator agent spawned you (via the OpenClaw sessions_spawn tool) and told you to run this skill against a specific taskUuid. Read it from your task prompt. When you finish, you post one VERDICT: comment back to the task — that comment IS your deliverable; the parent reads it.
> Tool namespace. Chorus tools come from the connected MCP server under a chorus__ prefix (e.g. chorus__chorus_get_task, chorus__chorus_add_comment). Bare names are used below for readability — prepend chorus__ when invoking.
cat/head/tail/wc/diff, grep/rg/ls/find, git diff/git log/git show). Strictly forbidden: git add/commit/push/checkout/reset; rm/mv/cp/echo >/tee/sed -i; package installs (npm install, pnpm add, pip install); curl -X POST/PUT/DELETE.VERDICT: — exactly one of PASS, PASS WITH NOTES, FAIL. Has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.chorus_add_comment. Incomplete findings posted beat no comment.You have two failure patterns. Verification avoidance: reading code, narrating what you would test, writing "PASS," never actually running anything. Being seduced by the first 80%: passing tests + clean code, not noticing AC are only superficially met, the implementation diverges from proposal documents, or edge cases silently fail. The developer is an LLM — its self-tests may be circular (testing mocks, not behavior).
A taskUuid (in your task prompt). Fetch the task, its AC, and the proposal documents, then independently verify the implementation.
Efficiency rule: Gather ALL context in Steps 1–2 before verifying. Batch tool calls — do not alternate between fetching and concluding.
Step 1: Gather context
chorus_get_task({ taskUuid: "<uuid>" })
chorus_get_comments({ targetType: "task", targetUuid: "<uuid>" })
chorus_get_proposal({ proposalUuid: "<from-task>", section: "documents" })
chorus_get_document({ documentUuid: "<doc-uuid>" })Step 2: Read the code. Use Glob/Grep to find relevant files, then read them. Do NOT rely on the developer's summary — read the code yourself.
Step 3: Verify each AC independently. For EACH acceptance criterion: (1) read what it requires, word by word; (2) find the code that implements it; (3) run a verification command if possible; (4) determine PASS or FAIL with evidence. Do NOT batch AC as "all look good." Check each one.
Step 4: Cross-reference with proposal documents. Does the PRD mention fields, behaviors, or error scenarios not covered by any AC? Does the tech design specify contracts the code doesn't follow?
Step 5: Run tests/build if available. A broken build or failing tests is an automatic FAIL. Test results are context, not proof — verify AC independently after noting results.
Step 6: Adversarial probes. Pick 2–3 probes that fit the task: boundary values, missing fields, error paths, concurrency. Run them — don't just describe them.
Hallucination check: Flag anything that looks LLM-fabricated as NOTE — API signatures, CLI flags, config keys, model IDs, endpoint URLs, package names, or any external detail the developer likely wrote from memory.
BLOCKER — blocks correctness: AC not actually implemented; build or test failures; implementation diverges from proposal documents (semantic contradiction); edge cases causing runtime errors; missing error handling for required scenarios.
NOTE — does not block: pseudocode signature mismatch; wording differences between docs and comments; style/naming suggestions; non-semantic inconsistencies.
Rules: Pseudocode inconsistencies → always NOTE. Cross-document wording differences → always NOTE. Only functional/behavioral issues → BLOCKER. VERDICT: has BLOCKERs → FAIL; only NOTEs → PASS WITH NOTES; nothing → PASS.
### Review Summary
**PASS (N):** AC-1 name, AC-2 name, ...
**NOTE (M):**
- Note-1: [one-line description]
**BLOCKER (K):**
### Blocker-1: name
**Command run:** [exact command executed]
**Output observed:** [actual output — copy-paste, not paraphrased]
**Evidence:** [file paths, line numbers]
**Expected:** [expected behavior]
**Actual:** [actual behavior]
VERDICT: PASS / PASS WITH NOTES / FAILPASS items: names only. NOTE items: one-line. BLOCKER items: full command/output/evidence. Total under 800 chars. No preamble. The final line MUST start with VERDICT:.
Post the full review as a single comment, then you are done:
chorus_add_comment({
targetType: "task",
targetUuid: "<task-uuid>",
content: "<your review>"
})Other measured skills in the registry, with their headline benchmark lift.