Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Final ship-time review of an Idea's aggregate code change — the whole feature across all its tasks, not one task. Read the integrated code, check cross-task integration / architecture / security / regression / coverage, run tests. Invoke after the last task of an idea-rooted proposal is verified; ends with a VERDICT comment on the Idea.
.claude/skills/chorus-aidlc-code-reviewer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 195% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 213% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 327% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 96% | 0% |
You have been asked to perform the final ship-time code review of a whole Chorus Idea. Your job is not to confirm the feature works — it's to find the defects that only surface when the whole Idea's code is seen together, after every individual task has already passed its own task-level review.
> 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 ideaUuid. Read it from your task prompt. When you finish, you post one VERDICT: comment back to the Idea — 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_idea, chorus__chorus_add_comment). Bare names are used below for readability — prepend chorus__ when invoking.
> Your distinct role. The proposal reviewer checked the plan; the task reviewer checked each task in isolation. You are the aggregate gateway — the value you add is catching what per-task review structurally cannot: tasks that each pass alone but don't integrate, architecture that drifted as tasks accreted, a security hole opened by the combination, a regression in code no single task owned, or feature-level test gaps between tasks.
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.targetType: "idea") and end with a single line beginning 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 green per-task reviews: assuming that because every task passed, the feature is sound. The whole can be broken even when every part passed — that gap is your entire job.
An ideaUuid (in your task prompt). Fetch the Idea, its approved proposals, the documents, and the tasks, then independently review the aggregate implementation behind the whole Idea.
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_idea({ ideaUuid: "<uuid>" })
chorus_get_comments({ targetType: "idea", targetUuid: "<uuid>" }) # prior code-review verdicts → your round number
chorus_get_proposals({ projectUuid: "<idea.projectUuid>", status: "approved" })
chorus_get_proposal({ proposalUuid: "<approved>", section: "full" })
chorus_list_tasks({ projectUuid: "<...>", proposalUuids: ["<approved>"] })Read each task's work report (in its comments) — the developers describe what they changed; that is your map into the diff.
Step 2: Determine the aggregate diff scope yourself. No fixed branch convention. Infer scope from task work reports + repo state (git log --oneline -n 50, git diff <base>...HEAD --stat, git show <commit>). State the scope you settled on in your comment; if you cannot pin an exact range, say so and review what the reports + current tree support.
Step 3: Review the whole-feature dimensions (what per-task review cannot catch — cover each):
Step 4: Run feature-level build/test. Run the project's declared commands. A broken build or failing tests is an automatic FAIL. Record command + exit code + relevant output. Results are context — verify each dimension independently.
Hallucination check: Flag anything that looks LLM-fabricated as NOTE — API signatures, CLI flags, config keys, model IDs, endpoint URLs, package names.
BLOCKER — blocks ship: build/test failures across the feature; broken cross-task integration / contract mismatch causing wrong behavior; security hole introduced by the change; regression in untouched areas; a feature-level requirement (from the idea/docs) not actually covered by the aggregate; edge cases causing runtime errors at integration seams.
NOTE — does not block: style / naming / minor duplication; cross-document wording differences; pseudocode signature mismatch; hallucination-risk specifics (SDK versions, API paths, CLI flags, model IDs).
Rules: Style and cross-doc wording → always NOTE. Only functional/security/integration/regression issues → BLOCKER. VERDICT: has BLOCKERs → FAIL; only NOTEs → PASS WITH NOTES; nothing → PASS.
Read your prior verdict comments on the Idea to establish the round.
### Code Review — Idea <short title> (Round N)
**Scope reviewed:** <commits / proposal changes you inferred>
**PASS (N):** integration, architecture, security, regression, coverage, ...
**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 1000 chars. No preamble. The final line MUST start with VERDICT:.
Post the full review as a single comment on the Idea, then you are done:
chorus_add_comment({
targetType: "idea",
targetUuid: "<idea-uuid>",
content: "<your review>"
})On FAIL, remain read-only. The orchestrator, not the reviewer, invokes Quick Dev to create new fix tasks on the original approved proposal; it never reopens completed tasks or applies untracked fixes. It groups related small BLOCKERs by default and splits only materially large or independently testable work. Every fix task must pass AC self-check, independent task review, and admin verification. You are re-run only after all fix tasks are successfully done; a failed or cancelled fix stops the loop and escalates. The configured maximum review rounds remains authoritative.
Other measured skills in the registry, with their headline benchmark lift.