develop-chorus
The develop-chorus skill enables agent-driven code development within the Chorus AI Development Lifecycle framework. It provides tools for claiming tasks, tracking progress through work reports, self-checking acceptance criteria, and submitting completed tasks for verification. Use this skill when an agent needs to manage the full development lifecycle from task assignment through code completion and quality validation.
git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus /tmp/develop-chorus && cp -r /tmp/develop-chorus/public/skill/develop-chorus ~/.claude/skills/develop-chorusSKILL.md
# Develop Skill
This skill covers the **Development** stage of the AI-DLC workflow: claiming Tasks, doing the work, reporting progress, and submitting for verification.
---
## Overview
Developer Agents take Tasks created by PM Agents (via proposals) and turn them into working code. Each task follows:
```
claim --> in_progress --> report work --> self-check AC --> submit for verify --> Admin review
```
---
## Tools
**Task Lifecycle:**
| Tool | Purpose |
|------|---------|
| `chorus_claim_task` | Claim an open task (open -> assigned) |
| `chorus_release_task` | Release a claimed task (assigned -> open) |
| `chorus_update_task` | Update task status (in_progress / to_verify) |
| `chorus_submit_for_verify` | Submit task for admin verification with summary |
**Work Reporting:**
| Tool | Purpose |
|------|---------|
| `chorus_report_work` | Report progress or completion (writes comment + records activity, with optional status update) |
**Acceptance Criteria:**
| Tool | Purpose |
|------|---------|
| `chorus_report_criteria_self_check` | Report self-check results (passed/failed + optional evidence) on structured acceptance criteria |
**Shared tools** (checkin, query, comment, search, notifications): see `chorus` skill (`<BASE_URL>/skill/chorus/SKILL.md`)
---
## Workflow
### Step 1: Check In
```
chorus_checkin()
```
Review your persona, current assignments, and pending work counts.
### Step 2: Find Work
```
chorus_get_available_tasks({ projectUuid: "<project-uuid>" })
```
Or check existing assignments:
```
chorus_get_my_assignments()
```
### Step 3: Claim a Task
```
chorus_get_task({ taskUuid: "<task-uuid>" }) # Review first
chorus_claim_task({ taskUuid: "<task-uuid>" })
```
Check: description, acceptance criteria, priority, story points, related proposal/documents.
### Step 4: Gather Context
Each task and proposal includes a `commentCount` field — use it to decide which entities have discussions worth reading.
1. **Read the task** and identify dependencies:
```
chorus_get_task({ taskUuid: "<task-uuid>" })
```
Pay attention to `dependsOn` (upstream tasks) and `commentCount`.
2. **Read task comments** (contains previous work reports, progress, feedback):
```
chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })
```
3. **Review upstream dependency tasks** — your work likely builds on theirs:
```
chorus_get_task({ taskUuid: "<dependency-task-uuid>" })
chorus_get_comments({ targetType: "task", targetUuid: "<dependency-task-uuid>" })
```
Look for: files created, API contracts, interfaces, trade-offs.
4. **Read the originating proposal** for design intent:
```
chorus_get_proposal({ proposalUuid: "<proposal-uuid>", section: "documents" })
```
(`chorus_get_proposal` defaults to `section: "basic"` — just metadata + a draft index. Pass `section: "documents"` for the design docs, or `section: "full"` for docs + task drafts.)
5. **Read project documents** (PRD, tech design, ADR):
```
chorus_get_documents({ projectUuid: "<project-uuid>" })
```
### Step 5: Start Working
Mark the task as in-progress:
```
chorus_update_task({ taskUuid: "<task-uuid>", status: "in_progress" })
```
> **Dependency enforcement**: If this task has unresolved dependencies (dependsOn tasks not in `done` or `closed`), the call will be rejected with detailed blocker info. Use `chorus_get_unblocked_tasks` to find tasks you can start now.
### Step 6: Report Progress
Report periodically with `chorus_report_work`. Consider including:
- What was completed
- Files created or modified
- Git commits and PRs
- Current status / remaining work
- Blockers or questions
```
chorus_report_work({
taskUuid: "<task-uuid>",
report: "Progress:\n- Created src/services/auth.service.ts\n- Commit: abc1234\n- Remaining: unit tests"
})
```
Report with status update when complete:
```
chorus_report_work({
taskUuid: "<task-uuid>",
report: "All implementation complete:\n- Files: ...\n- PR: https://github.com/org/repo/pull/42\n- All tests passing",
status: "to_verify"
})
```
### Step 7: Self-Check Acceptance Criteria
Before submitting, check structured acceptance criteria:
```
task = chorus_get_task({ taskUuid: "<task-uuid>" })
# If task.acceptanceCriteriaItems is non-empty:
chorus_report_criteria_self_check({
taskUuid: "<task-uuid>",
criteria: [
{ uuid: "<criterion-uuid>", devStatus: "passed", devEvidence: "Unit tests cover this" },
{ uuid: "<criterion-uuid>", devStatus: "passed", devEvidence: "Verified manually" }
]
})
```
> For **required** criteria, prefer to keep working until you can self-check as `passed`. Only use `failed` for **optional** criteria that are out of scope.
### Step 8: Submit for Verification
```
chorus_submit_for_verify({
taskUuid: "<task-uuid>",
summary: "Implemented auth feature:\n- Added login/logout endpoints\n- JWT middleware\n- 95% test coverage\n- All AC self-checked (3/3 passed)"
})
```
> `to_verify` does NOT unblock downstream tasks — only `done` (after admin verification) does.
> **Independent Review:** After `chorus_submit_for_verify`, run an independent review of the task before it is verified. Spawn a read-only sub-agent that loads the `task-reviewer-chorus` skill (`<BASE_URL>/skill/task-reviewer-chorus/SKILL.md`), pass it the `taskUuid`, and let it post a single `VERDICT` comment (PASS / PASS WITH NOTES / FAIL) on the task; then read it with `chorus_get_comments` and act. The verdict is **advisory** (it does not block verification). The spawn mechanism is harness-specific, and an inline self-review fallback exists when sub-agents are unavailable — see the canonical **Independent Review** section in the `chorus` skill (`<BASE_URL>/skill/chorus/SKILL.md`) for the full pattern.
### Step 9: Handle Review Feedback
If reopened (verification failed), **all acceptance criteria are reset to pending**.
1. Check feedback:
```
chorus_get_task({ taskUuid: "<task-uuid>" })
chorus_gImplement tasks from an OpenSpec change (Experimental)
Archive a completed change in the experimental workflow
Enter explore mode - think through ideas, investigate problems, clarify requirements
Propose a new change - create it and generate all artifacts in one step
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
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 something before or during a change.