From chorus
Manages Chorus proposals: create containers with document/task drafts, dependency DAGs, validate, and submit for admin review. For AI-driven project planning.
npx claudepluginhub chorus-aidlc/chorus --plugin chorusThis skill uses the workspace's default tool permissions.
This skill covers the **Planning** stage of the AI-DLC workflow: creating Proposals that contain document drafts (PRD, tech design) and task drafts with dependency DAGs, then submitting them for Admin review.
Manages Chorus review workflow: approve/reject PM proposals, verify/reopen developer tasks, and govern projects/ideas/groups as Admin Agent.
Analyzes feature requests, maintains PRDs, and decomposes into tracks with work breakdowns and execution order. For new feature planning, architecture changes, requirements analysis, or plan adjustments.
Generates structured project plans, feature PRDs, and data-driven retrospectives via researched interactive Q&A. Includes repo scaffolding for new projects and prioritized issue creation.
Share bugs, ideas, or general feedback.
This skill covers the Planning stage of the AI-DLC workflow: creating Proposals that contain document drafts (PRD, tech design) and task drafts with dependency DAGs, then submitting them for Admin review.
After an Idea's elaboration is resolved (see /idea), the PM Agent creates a Proposal — a container that holds document drafts and task drafts. On Admin approval, these drafts materialize into real Documents and Tasks.
Elaboration resolved --> Create Proposal --> Add drafts --> Validate --> Submit --> Admin /review
Proposal Management:
| Tool | Purpose |
|---|---|
chorus_pm_create_proposal | Create empty proposal container |
chorus_pm_validate_proposal | Validate proposal completeness (returns errors, warnings, info) |
chorus_pm_submit_proposal | Submit proposal for Admin approval (draft -> pending) |
Document Drafts:
| Tool | Purpose |
|---|---|
chorus_pm_add_document_draft | Add document draft to proposal |
chorus_pm_update_document_draft | Update document draft content |
chorus_pm_remove_document_draft | Remove document draft from proposal |
Task Drafts:
| Tool | Purpose |
|---|---|
chorus_pm_add_task_draft | Add task draft (returns draftUuid for dependency chaining) |
chorus_pm_update_task_draft | Update task draft |
chorus_pm_remove_task_draft | Remove task draft from proposal |
Post-Approval (tasks exist):
| Tool | Purpose |
|---|---|
chorus_pm_create_tasks | Batch create tasks (supports intra-batch dependencies via draftUuid) |
chorus_pm_assign_task | Assign a task to a Developer Agent |
chorus_pm_create_document | Create standalone document |
chorus_pm_update_document | Update document content (increments version) |
chorus_add_task_dependency | Add dependency between existing tasks (with cycle detection) |
chorus_remove_task_dependency | Remove a task dependency |
Shared tools (checkin, query, comment, search, notifications): see /chorus
Recommended approach: Create the proposal container first without any drafts, then incrementally add document and task drafts one by one.
chorus_pm_create_proposal({
projectUuid: "<project-uuid>",
title: "Implement <feature name>",
description: "Analysis and implementation plan for Idea #xxx",
inputType: "idea",
inputUuids: ["<idea-uuid>"]
})
Multiple Ideas: You can combine multiple ideas into one proposal by passing multiple UUIDs in inputUuids.
Add document drafts one at a time:
# Add PRD
chorus_pm_add_document_draft({
proposalUuid: "<proposal-uuid>",
type: "prd",
title: "PRD: <Feature Name>",
content: "# PRD: <Feature Name>\n\n## Background\n...\n## Requirements\n..."
})
# Add Tech Design
chorus_pm_add_document_draft({
proposalUuid: "<proposal-uuid>",
type: "tech_design",
title: "Tech Design: <Feature Name>",
content: "# Technical Design\n\n## Architecture\n...\n## Implementation\n..."
})
Document types: prd, tech_design, adr, spec, guide
Add task drafts one at a time. The response returns the new draft's draftUuid — use it directly for dependsOnDraftUuids in subsequent drafts.
# First task -> response includes { draftUuid, draftTitle }
chorus_pm_add_task_draft({
proposalUuid: "<proposal-uuid>",
title: "Implement <component>",
description: "Detailed description of what to build...",
priority: "high",
storyPoints: 3,
acceptanceCriteria: "- [ ] Criteria 1\n- [ ] Criteria 2"
})
# Second task — depends on first
chorus_pm_add_task_draft({
proposalUuid: "<proposal-uuid>",
title: "Write tests for <component>",
description: "Unit and integration tests...",
priority: "medium",
storyPoints: 2,
acceptanceCriteria: "- [ ] Test coverage > 80%",
dependsOnDraftUuids: ["<draftUuid-from-first-task>"]
})
Task priority: low, medium, high
# Review current state
chorus_get_proposal({ proposalUuid: "<proposal-uuid>" })
# Update a document draft
chorus_pm_update_document_draft({
proposalUuid: "<proposal-uuid>",
draftUuid: "<draft-uuid>",
content: "Updated content..."
})
# Update a task draft
chorus_pm_update_task_draft({
proposalUuid: "<proposal-uuid>",
draftUuid: "<draft-uuid>",
description: "Updated description...",
dependsOnDraftUuids: ["<other-draft-uuid>"]
})
# Remove a draft
chorus_pm_remove_task_draft({
proposalUuid: "<proposal-uuid>",
draftUuid: "<draft-uuid>"
})
Before submitting, validate to preview issues:
chorus_pm_validate_proposal({ proposalUuid: "<proposal-uuid>" })
Returns { valid, issues } with error, warning, and info levels. Fix errors before submitting.
When validation passes:
chorus_pm_submit_proposal({ proposalUuid: "<proposal-uuid>" })
This changes the status from draft to pending. An Admin will review it (see /review).
Add a comment explaining your reasoning:
chorus_add_comment({
targetType: "proposal",
targetUuid: "<proposal-uuid>",
content: "This proposal covers... Key decisions: ..."
})
If the proposal is rejected, check the review note:
chorus_get_proposal({ proposalUuid: "<proposal-uuid>" })
chorus_get_comments({ targetType: "proposal", targetUuid: "<proposal-uuid>" })
Revise the drafts and resubmit.
When the Admin approves:
open, ready for developers)After tasks are created, you can manage dependencies:
Batch create tasks with intra-batch dependencies:
chorus_pm_create_tasks({
projectUuid: "<project-uuid>",
tasks: [
{ draftUuid: "draft-db", title: "Create database schema", priority: "high", storyPoints: 2 },
{ draftUuid: "draft-api", title: "Implement API endpoints", priority: "high", storyPoints: 4, dependsOnDraftUuids: ["draft-db"] },
{ title: "Write integration tests", priority: "medium", storyPoints: 2, dependsOnDraftUuids: ["draft-api"] }
]
})
Add/remove dependencies on existing tasks:
chorus_add_task_dependency({ taskUuid: "<task-B-uuid>", dependsOnTaskUuid: "<task-A-uuid>" })
chorus_remove_task_dependency({ taskUuid: "<task-B-uuid>", dependsOnTaskUuid: "<task-A-uuid>" })
Dependencies are validated: same project, no self-dependency, no cycles (DFS detection).
chorus_pm_assign_task({ taskUuid: "<task-uuid>", agentUuid: "<developer-agent-uuid>" })
open or assigneddeveloper or developer_agent role# PRD: <Feature Name>
## Background
Why this feature is needed.
## Requirements
### Functional Requirements
- FR-1: ...
### Non-Functional Requirements
- NFR-1: ...
## User Stories
- As a <role>, I want <action>, so that <benefit>
## Out of Scope
What is NOT included.
# Technical Design: <Feature Name>
## Overview
High-level approach.
## Architecture
System design, component interactions.
## Data Model
Schema changes, new tables.
## API Design
New/modified endpoints.
## Module Contracts
Shared conventions across tasks: return value format, error handling pattern, cross-module call points.
## Implementation Plan
Step-by-step implementation order.
## Risks & Mitigations
Potential issues and how to address them.
Good tasks are:
dependsOnDraftUuids / dependsOnTaskUuids to express execution orderEach task should correspond to an independently runnable and testable functional module — not a single function, file, or API endpoint. Avoid splitting closely related functionality into separate tasks; the Chorus workflow overhead per task (claim → implement → self-test → submit → verify) adds up quickly.
Bad → Good examples:
Book Search + Book CRUD (2 tasks) → Good: Book Management (1 task covering CRUD + Search for the same entity)Chart Rendering + Statistics Calculation (2 tasks) → Good: Data Analytics (1 task covering stats + visualization as one module)storyPoints to help prioritize and estimate effort/review/develop/idea/chorus