DevelopSAFE
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-12Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| openclaw | mentioned |
What 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
description: Chorus Development workflow — claim tasks, report work, manage sessions, and run wave-based execution on OpenClaw.
license: AGPL-3.0
metadata:
author: chorus
version: "0.22.1"
category: project-management
mcp_server: chorus
---
# Develop Skill
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.
> **Tool namespace:** Chorus tools are exposed by the connected MCP server under a `chorus__` prefix on OpenClaw (e.g. `chorus__chorus_claim_task`). Bare names are used below for readability — prepend `chorus__` when invoking. See `/chorus` for the full rule.
---
## Overview
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 --> reviewer --> Admin /review
```
For multi-task execution, dispatch **one sub-agent per unblocked task** with `sessions_spawn` (whole wave in one message), falling back to **sequential waves** (the main agent works tasks in dependency order) when `sessions_spawn` is unavailable or workers fail repeatedly — see [Wave-Based Execution](#wave-based-execution-on-openclaw) below.
---
## 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 |
**Session (sub-agents only — main agent skips these):**
| Tool | Purpose |
|------|---------|
| `chorus_create_session` | Create a session for a sub-agent (manual on OpenClaw — see below) |
| `chorus_session_checkin_task` | Checkin to a task before starting work |
| `chorus_session_checkout_task` | Checkout from a task when work is done |
| `chorus_close_session` | Close the session when the sub-agent finishes |
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`
---
## Workflow
### Step 1: Check In
```
chorus_checkin()
```
Review your persona, current assignments, and pending work counts.
### Step 1.5: Manage Your Session (Sub-Agents Only)
**Skip if you are the main agent.**
> **OpenClaw difference:** the Claude Code plugin auto-creates and auto-injects a sub-agent's session via a SubagentStart hook. **OpenClaw does not run that hook.** Session handling is **manual**: if you are a sub-agent and the host did not hand you a `sessionUuid`, create one yourself once at the start, keep it for all task operations, and close it when you finish.
```
# Create your own session (only if no sessionUuid was provided to you)
chorus_create_session({ name: "<descriptive-worker-name>" })
# -> keep the returned sessionUuid for every task call below
```
If the OpenClaw host *did* inject a `sessionUuid` into your prompt (some hosts forward parent context), reuse it instead of creating a new one. When in doubt, create one — duplicate idle sessions are harmless and auto-go-inactive after 1h.
### 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>" })
```
> **Document update flow (OpenSpec mode):** if the originating proposal `description` contains a line `OpenSpec change slug: <slug>`, the project's PRD / tech_design / spec Documents are **mirrors** of files under `openspec/changes/<slug>/`. To update such a Document (e.g. clarify an AC, fix a spec scenario before resubmitting), load the `openspec-aware` skill and follow §3.8: edit the local `.md` file first, then mirror it — prefer `chorus mcp call ... --arg-file content=<file>`, falling back to the `choruTrust 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.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 skill do?
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Is Develop 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 access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Develop work with?
Its documentation mentions claude-code and openclaw. That is what the text claims, not a compatibility test we ran.
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.