blog
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
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
$ npx -y skills add Chorus-AIDLC/Chorus --skill code-reviewer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/code-reviewerContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: code-reviewer description: 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. license: AGPL-3.0 metadata: author: chorus version: "0.18.1" category: project-management mcp_server: chorus
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.
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):
1. **Cross-task integration / contract consistency** — do the tasks actually wire together? Interface contracts, return formats, error patterns, call points across module boundaries different tasks built. 2. **Architecture & convention consistency (no drift)** — does the aggregate conform to project patterns and the rules its context files declare (CLAUDE.md / AGENTS.md / .cursorrules, if present), or did any task drift from them or violate a declared project-level constraint? Duplicated logic, divergent naming, inconsistent layering. 3. **Security** — does the combination introduce a security risk (authz gaps at a seam, injection, secret handling, unsafe deserialization, missing tenant scoping) — es
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Repo: Chorus-AIDLC/Chorus
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright…
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through…
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal…