Chorus Review workflow — approve/reject proposals, verify tasks, and manage project governance.
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_reject_proposal | Reject proposal with review note |
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 |
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
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>" })
This 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>" })
After chorus_pm_submit_proposal, the Chorus plugin's PostToolUse hook suggests spawning chorus:proposal-reviewer — a read-only agent that adversarially reviews the proposal's document quality, task granularity, AC alignment, and dependency DAG. Check for its VERDICT comment before approving.
VERDICT: FAIL is advisory — the reviewer's opinion does not block approval. The admin reads the review comment and makes the final decision.
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_admin_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"
})
chorus_get_task({ taskUuid: "<task-uuid>" })
Check: developer's work summary, acceptance criteria, self-check results.
chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })
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_verifydone between waves to unblock downstream dependencies/chorus/idea/proposal/develop