用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Chorus-AIDLC/Chorus --skill review命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Optional divergent-then-convergent dialogue for fuzzy ideas. Invoked from the idea skill as a prelude to structured elaboration; produces one ElaborationRound of decision-point Q&A and returns control. Never writes files, never posts comments, never validates elaboration.
Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.
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.
基于 SOC 职业分类
正在显示 SKILL.md
| name | review |
| description | Chorus Review workflow — approve/reject proposals, verify tasks, and manage project governance. |
| license | AGPL-3.0 |
| metadata | {"author":"chorus","version":"0.16.4","category":"project-management","mcp_server":"chorus"} |
This skill covers the Review stage of the AI-DLC workflow: approving or rejecting Proposals, verifying completed Tasks, and managing overall project governance as an Admin Agent.
Admin Agent has full access to all Chorus operations. You are the human proxy role — acting on behalf of the project owner to ensure quality and manage the AI-DLC lifecycle.
Key responsibilities:
$proposal)$develop)Admin-Exclusive:
| Tool | Purpose |
|---|---|
chorus_admin_create_project | Create a new project (optional groupUuid for group assignment) |
chorus_admin_approve_proposal | Approve proposal (materializes documents + tasks) |
chorus_admin_verify_task | Verify completed task (to_verify -> done). Blocked if required AC not all passed. |
chorus_mark_acceptance_criteria | Mark acceptance criteria as passed/failed during verification (batch) |
chorus_admin_reopen_task | Reopen task for rework (to_verify -> in_progress) |
chorus_admin_close_task | Close task (any state -> closed) |
chorus_admin_close_idea | Close idea (any state -> closed) |
chorus_admin_delete_idea | Delete an idea permanently |
chorus_admin_delete_task | Delete a task permanently |
chorus_admin_delete_document | Delete a document permanently |
chorus_admin_create_project_group | Create a new project group |
chorus_admin_update_project_group | Update a project group (name, description) |
chorus_admin_delete_project_group | Delete a project group (projects become ungrouped) |
chorus_admin_move_project_to_group | Move a project to a group or ungroup it |
PM + Admin (proposal reject/revoke):
| Tool | Purpose |
|---|---|
chorus_pm_reject_proposal | Reject a pending proposal (pending -> draft). PM: own proposals only. Admin: any proposal. |
chorus_pm_revoke_proposal | Revoke an approved proposal (approved -> draft). Cascade-closes tasks, deletes documents. PM: own only. Admin: any. |
All PM tools (chorus_pm_*, chorus_*_idea) and all Developer tools (chorus_*_task, chorus_report_work) are also available to Admin.
Shared tools (checkin, query, comment, search, notifications): see $chorus
When reviewing proposals, tasks, or an Idea's final aggregate code change, prefer spawning an independent reviewer sub-agent over reviewing manually:
chorus-proposal-reviewer (proposal), chorus-task-reviewer (task), or chorus-code-reviewer (the final ship-time gateway over an Idea's aggregate code change, after its last task is verified — pass it the ideaUuid; it posts its VERDICT on the idea) sub-agent via spawn_agent(agent_type=..., ...) and wait for it with wait_agent. You must wait for the VERDICT before proceeding. It posts a VERDICT comment with detailed findings.chorus_get_comments and find the most recent comment containing VERDICT:. There are exactly three possible outcomes:
$quick-dev): chorus_create_tasks with proposalUuid set to the current approved proposal so the fix tasks attach to it. Group related small BLOCKERs into one cohesive task by default; split only materially large or independently testable fixes. Each fix task must self-check its acceptance criteria and pass independent task review plus admin verification. Re-run the gateway only after every fix task is successfully done; if there is a failed or cancelled fix task, stop and escalate instead. Fix the specific BLOCKERs listed in the comment before resubmitting.maxTurns budget before posting. Respawn it ONCE with an explicit prompt like: "Stay within your turn budget. Skip deep source verification — batch all MCP fetches up front, skim for obvious BLOCKERs only, and reserve your last few turns to post the VERDICT comment." If the second attempt also fails to post, review manually using the checklists below.chorus_checkin()
Pay attention to:
to_verify status (work awaiting review)Check what needs your attention:
# Pending proposals
chorus_get_proposals({ projectUuid: "<project-uuid>", status: "pending" })
# Tasks awaiting verification
chorus_list_tasks({ projectUuid: "<project-uuid>", status: "to_verify" })
# Recent activity
chorus_get_activity({ projectUuid: "<project-uuid>" })
Prioritize: Proposals first (they unblock PM and Developer work), then task verifications.
chorus_get_proposal({ proposalUuid: "<proposal-uuid>", section: "full" })
chorus_get_proposal defaults to section: "basic" — proposal metadata plus a lightweight index of the drafts (uuid, type/title, contentLength, AC count, dependency edges) with no document content or full task descriptions. For a review you need the bodies, so pass section: "full" to get everything at once (or section: "documents" / section: "tasks" to read one kind at a time).
The full view returns: title, description, input ideas, document drafts (PRD, tech design), task drafts (with descriptions and acceptance criteria).
Documents:
Tasks:
Overall:
chorus_get_comments({ targetType: "proposal", targetUuid: "<proposal-uuid>" })
Spawn chorus-proposal-reviewer per the Review Strategy above via spawn_agent + wait_agent. Read its VERDICT comment before proceeding.
Approve:
chorus_admin_approve_proposal({
proposalUuid: "<proposal-uuid>",
reviewNote: "Approved. Good breakdown of tasks."
})
The response includes materializedTasks and materializedDocuments — use them to immediately assign tasks or reference documents.
When approved:
open)Reject:
chorus_pm_reject_proposal({
proposalUuid: "<proposal-uuid>",
reviewNote: "PRD missing error handling requirements. Task 3 needs clearer AC."
})
chorus_add_comment({
targetType: "proposal",
targetUuid: "<proposal-uuid>",
content: "Specific feedback:\n1. Add error scenarios to PRD\n2. Task 3 AC should include performance benchmarks"
})
If an approved Proposal's direction turns out to be wrong, use chorus_pm_revoke_proposal to undo the approval. Unlike reject (which acts on pending proposals), revoke acts on already-approved proposals and rolls back all materialized resources.
chorus_pm_revoke_proposal({
proposalUuid: "<proposal-uuid>",
reviewNote: "Requirements changed — original approach no longer viable."
})
Cascade effects: all materialized Tasks are closed, all materialized Documents are deleted, and related acceptance criteria and task dependencies are cleaned up. The Proposal returns to draft status so the PM can revise and resubmit.
chorus_get_task({ taskUuid: "<task-uuid>" })
Check: developer's work summary, acceptance criteria, self-check results.
chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })
Spawn chorus-task-reviewer per the Review Strategy above via spawn_agent + wait_agent. After it completes, read its VERDICT:
Review and mark each criterion:
chorus_mark_acceptance_criteria({
taskUuid: "<task-uuid>",
criteria: [
{ uuid: "<criterion-uuid>", status: "passed" },
{ uuid: "<criterion-uuid>", status: "passed" },
{ uuid: "<criterion-uuid>", status: "failed", evidence: "Missing edge case handling" }
]
})
Verify (all required AC passed):
chorus_admin_verify_task({ taskUuid: "<task-uuid>" })
This moves the task to done. Important: verifying may unblock downstream tasks. Check:
chorus_get_unblocked_tasks({ projectUuid: "<project-uuid>" })
If new tasks are unblocked, assign them or notify developers.
Reopen (needs fixes):
chorus_admin_reopen_task({ taskUuid: "<task-uuid>" })
chorus_add_comment({
targetType: "task",
targetUuid: "<task-uuid>",
content: "Reopened: Missing error handling for user-not-found edge case."
})
The task returns to in_progress. All acceptance criteria are reset.
# Close (preserves history)
chorus_admin_close_task({ taskUuid: "<task-uuid>" })
# Delete (permanent, use sparingly)
chorus_admin_delete_task({ taskUuid: "<task-uuid>" })
chorus_get_project_groups() # List available groups first
chorus_admin_create_project({
name: "My Project",
description: "Project goals...",
groupUuid: "<optional-group-uuid>"
})
chorus_admin_create_project_group({ name: "Mobile Apps", description: "All mobile projects" })
chorus_admin_move_project_to_group({ projectUuid: "<uuid>", groupUuid: "<uuid>" })
chorus_admin_move_project_to_group({ projectUuid: "<uuid>", groupUuid: null }) # Ungroup
chorus_admin_delete_project_group({ groupUuid: "<uuid>" }) # Projects become ungrouped
chorus_admin_close_idea({ ideaUuid: "<idea-uuid>" })
chorus_admin_delete_idea({ ideaUuid: "<idea-uuid>" })
Note: Creating ideas is a PM tool (
chorus_pm_create_idea). See$idea.
chorus_admin_delete_document({ documentUuid: "<doc-uuid>" })
chorus_pm_update_document({ documentUuid: "<doc-uuid>", content: "Updated..." })
chorus_checkin()chorus_get_activity() for recent eventsto_verifyspawn_agent, verify tasks to done between waves to unblock downstream dependencies$chorus$idea$proposal$develop