Develop ChorusSAFE
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Overview
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
3bb5b08404b5OBSERVED · 2026-10-12What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: develop-chorus
description: Chorus Development workflow — claim tasks, report work, self-check acceptance criteria, and submit for verification.
license: AGPL-3.0
metadata:
author: chorus
version: "0.17.0"
category: project-management
mcp_server: chorus
---
# 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 THIS round's verdict comment — the one posted after your dispatch, not an older round's — with `chorus_get_comments` and act on it. The verdict is **advisory** (it does not block verification). The spawn mechanism is harness-specific, and an inline self-review fallback exists wheTrust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (1)
.agents/skills
Gates applied: no_behavioural_pass.
3bb5b08404b5full audit observations/trust-audit/skill/chorus-aidlc__develop-chorus.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 3bb5b08404b5 | SAFE | B | 89 | first audit |
Questions
What does the Develop Chorus skill do?
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Is Develop Chorus safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Develop Chorus access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (3bb5b08404b5), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.