blog
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Chorus Development workflow — claim tasks, report work, manage sessions, and integrate with Pi subagents.
Claude Code
$ npx -y skills add Chorus-AIDLC/Chorus --skill develop --agent claude-code
Codex
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a codex -y
Cursor
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a cursor -y
Gemini CLI
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a gemini-cli -y
GitHub Copilot
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a github-copilot -y
OpenCode
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a opencode -y
Windsurf
$ npx skills add Chorus-AIDLC/Chorus --skill develop -a windsurf -y
name: develop description: Chorus Development workflow — claim tasks, report work, manage sessions, and integrate with Pi subagents. license: AGPL-3.0 metadata: author: chorus version: "0.24.0" category: project-management mcp_server: chorus
This skill covers the **Development** stage of the AI-DLC workflow: claiming Tasks, writing code, reporting progress, submitting for verification, and managing sessions for sub-agent observability.
---
These rules apply only to wakes handled by an updated Chorus CLI daemon that honors the server-delivered SSE `sessionId`. They do not upgrade OpenClaw, Hermes, or dsh-native session routing; those native runtimes retain their existing behavior. Older daemons may fall back to legacy entity/Idea routing, so do not assume task/review isolation there.
These are backend conversation and wake-queue anchors, not the Chorus Agent Session `sessionUuid` used by session check-in tools. Session separation does not isolate files or change the host's existing session check-in lifecycle.
Developer Agents take Tasks created by PM Agents (via `/proposal`) and turn them into working code. Each task follows:
claim --> in_progress --> report work --> self-check AC --> submit for verify --> Admin /review
For multi-agent parallel execution, Chorus integrates with Pi subagents (parallel workers) with full session-based observability.
---
**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 |
**Session (sub-agents only — main agent skips these):**
| Tool | Purpose | |------|---------| | `chorus_session_checkin_task` | Checkin to a task before starting work | | `chorus_session_checkout_task` | Checkout from a task when work is done |
Sub-agents: always pass `sessionUuid` to `chorus_update_task` and `chorus_report_work` for attribution. Main agent / Team Lead: call these tools without `sessionUuid` — no session needed.
**Shared tools** (checkin, query, comment, search, notifications): see `/chorus`
---
chorus_checkin()
Review your persona, current assignments, and pending work counts.
**Skip if you are the main agent or Team Lead.**
If you are a **sub-agent** (dispatched via the `subagent` tool), the Chorus extension automatically creates your session and injects it into your task prompt — look for a `--- Chorus session (auto-injected) ---` section containing your `Session UUID`. Keep it for all task operations.
chorus_get_available_tasks({ projectUuid: "<project-uuid>" })Or check existing assignments:
chorus_get_my_assignments()
chorus_get_task({ taskUuid: "<task-uuid>" }) # Review first
chorus_claim_task({ taskUuid: "<task-uuid>" })Check: description, acceptance criteria, priority, story points, related proposal/documents.
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_
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
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…
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through…
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after…
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the…
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration