Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Quick Task workflow — skip Idea→Proposal, create tasks directly, execute, and verify.
.claude/skills/chorus-aidlc-quick-dev-chorus/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 357% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 122% | 0% |
Skip the full AI-DLC pipeline (Idea → Elaboration → Proposal → Approval) and create tasks directly. Ideal for small, well-understood work. The goal is for agents to autonomously record their development work and verify task completion through structured acceptance criteria.
> Tool namespace: Chorus tools are exposed by the connected MCP server under a mcp__chorus__ prefix on dsh (e.g. mcp__chorus__chorus_create_tasks). Bare names are used below for readability — prepend mcp__chorus__ when invoking. See chorus for the full rule.
The standard AI-DLC flow ensures quality through structured planning, but adds overhead that slows down small tasks. Quick Dev provides a lightweight alternative:
check explicit task:admin permission → create/claim → implement → self-check AC → submit → independent task review → verify or hand offUse Quick Dev when:
Do NOT use Quick Dev when:
For complex work, use idea-chorus + proposal-chorus instead.
Call chorus_checkin and inspect the active agent's effective permissions. Set canVerifyTask to true only when chorus_checkin().agent.permissions.task explicitly contains "admin" (the task:admin permission).
Never infer verification authority from the agent's name, persona, preset/role label, task ownership, or tool availability. Do not prompt the user to choose: the explicit permission determines the terminal path.
| Tool | Purpose | |------|---------| | chorus_create_tasks | Create task(s) — omit proposalUuid for standalone Quick Task, or pass it to attach to an existing proposal | | chorus_update_task | Edit task fields (title, description, priority, AC, dependencies) or change status | | chorus_claim_task | Claim a task (open → assigned) | | chorus_report_work | Report progress with optional status update | | chorus_report_criteria_self_check | Self-check acceptance criteria before submitting | | chorus_submit_for_verify | Submit for admin verification | | chorus_admin_verify_task | (admin only) Verify task — use when self-verification is approved |
acceptanceCriteriaItems is required — chorus_create_tasks rejects any task without at least one non-blank criterion (and rejects the whole batch if any task is missing them). These are also the foundation for self-checking in Step 6. Write specific, testable criteria that you can objectively verify after development. Vague AC like "works correctly" defeats the purpose; prefer "returns 200 on GET /api/foo with valid token".
chorus_create_tasks({
projectUuid: "<project-uuid>",
tasks: [{
title: "Fix login redirect loop on Safari",
description: "Safari loses session cookie after redirect...",
priority: "high",
storyPoints: 1,
acceptanceCriteriaItems: [
{ description: "Login works on Safari 17+", required: true },
{ description: "Existing Chrome/Firefox behavior unchanged", required: true }
]
}]
})proposalUuid is optional:
chorus_claim_task({ taskUuid: "<task-uuid>" })Use chorus_update_task to refine the task after creation. Tasks always have AC (creation requires them), but update them when your understanding changes during development. Passing acceptanceCriteriaItems replaces the task's criteria with the provided non-empty set; omit the field to leave them unchanged (it cannot be used to clear AC).
chorus_update_task({
taskUuid: "<task-uuid>",
description: "Updated with more details...",
acceptanceCriteriaItems: [
{ description: "Login works on Safari 17+", required: true },
{ description: "Added CSRF token handling", required: true }
],
addDependsOn: ["<other-task-uuid>"]
})chorus_update_task({ taskUuid: "<task-uuid>", status: "in_progress" })Sub-agents: create your own session first (manual on dsh — see develop-chorus), then pass sessionUuid for attribution:
chorus_update_task({ taskUuid: "<task-uuid>", status: "in_progress", sessionUuid: "<session-uuid>" })chorus_report_work({
taskUuid: "<task-uuid>",
report: "Fixed Safari cookie issue:\n- Root cause: SameSite=Strict incompatible with redirect\n- Changed to SameSite=Lax\n- Commit: abc1234",
sessionUuid: "<session-uuid>"
})chorus_report_criteria_self_check({
taskUuid: "<task-uuid>",
criteria: [
{ uuid: "<ac-uuid-1>", devStatus: "passed", devEvidence: "Tested on Safari 17.2" },
{ uuid: "<ac-uuid-2>", devStatus: "passed", devEvidence: "Chrome/Firefox regression tests pass" }
]
})chorus_submit_for_verify({
taskUuid: "<task-uuid>",
summary: "Fixed Safari login redirect loop. Changed SameSite cookie policy. All AC passed."
})Submitting is not final verification. Spawn the required task-reviewer skill through subagent with run_in_background: false (foreground — the call waits and returns the verdict inline; your verify/reopen decision depends on it) as described in develop-chorus, and read the newest VERDICT: Task comment. (Set run_in_background: true only when you deliberately want to fan out and collect the verdict later.) PASS and PASS WITH NOTES continue. On FAIL, do not verify or hand off: fix every unresolved BLOCKER, repeat AC self-check and submission, then run a fresh independent task review.
With explicit task:admin, after every required AC self-check passes and independent review has no unresolved BLOCKER, verify and continue autonomously:
chorus_admin_verify_task({ taskUuid: "<task-uuid>" })Without explicit task:admin, do not call the admin tool. Post an evidence-rich comment on the Task containing AC results, test evidence, the latest independent-review verdict, and the exact requested action. @mention the responsible human (prefer chorus_checkin().agent.owner) to perform admin verification, then end the current turn.
This handoff applies in interactive and headless daemon sessions. Do not send a plain-text interactive prompt, poll for the human response, or rely only on generic notifications.
Quick Tasks support sub-agent execution just like proposal-based tasks. Session lifecycle is manual on dsh (no SubagentStart/heartbeat/cleanup hooks):
chorus_create_session), checkin/checkout per task, pass sessionUuid to chorus_update_task / chorus_report_work, and close the session on exit — see develop-chorus for the full manual protocol> dsh has no Agent Teams / TeamCreate primitive; if you need to run several quick tasks, work them sequentially as the main agent (or dispatch generic sub-agents one at a time).
proposal-choruschorus_create_tasks rejects tasks without them. They are your self-check contract; specific, testable AC enables autonomous verification and makes the entire workflow self-containedchorus_update_task to refine tasks (including AC) after creation rather than deleting and recreatingproposalUuid to attach follow-up or gap-filling tasks to an existing proposal — this keeps related work grouped in the same project context and DAGtask:admin continue autonomously after AC and independent review pass; all others use the evidence-rich asynchronous human handoffdevelop-chorusreview-chorusidea-chorus and proposal-choruschorus| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 25,681 | 19,937 | -22% | 1 | 1 | 0% | 3,885 | 2,534 | -35% | 0 | 0 | — |
case-02 | fail→fail | 16,787 | 3,743 | -78% | 1 | 1 | 0% | 2,097 | 2,517 | +20% | 0 | 0 | — |
case-03 | fail→fail | 20,507 | 14,731 | -28% | 1 | 1 | 0% | 2,795 | 2,939 | +5% | 0 | 0 | — |
case-04 | pass→pass | 11,080 | 9,539 | -14% | 1 | 1 | 0% | 1,814 | 3,094 | +71% | 0 | 0 | — |
case-05 | fail→pass | 11,647 | 10,357 | -11% | 1 | 1 | 0% | 1,833 | 3,008 | +64% | 0 | 0 | — |
case-06 | pass→pass | 14,462 | 5,432 | -62% | 1 | 1 | 0% | 2,396 | 3,296 | +38% | 0 | 0 | — |
case-07 | fail→pass | 4,362 | 8,677 | +99% | 1 | 1 | 0% | 646 | 2,951 | +357% | 0 | 0 | — |
case-08 | fail→pass | 7,654 | 8,303 | +8% | 1 | 1 | 0% | 1,259 | 2,919 | +132% | 0 | 0 | — |
case-09 | pass→pass | 6,041 | 7,944 | +32% | 1 | 1 | 0% | 948 | 2,773 | +193% | 0 | 0 | — |
case-22 | fail→pass | 14,785 | 4,586 | -69% | 1 | 1 | 0% | 2,233 | 3,002 | +34% | 0 | 0 | — |
case-10 | fail→pass | 13,465 | 3,883 | -71% | 1 | 1 | 0% | 1,349 | 2,997 | +122% | 0 | 0 | — |
case-11 | pass→pass | 15,687 | 10,694 | -32% | 1 | 1 | 0% | 1,796 | 3,335 | +86% | 0 | 0 | — |
case-12 | fail→pass | 14,593 | 10,517 | -28% | 1 | 1 | 0% | 1,588 | 3,341 | +110% | 0 | 0 | — |
case-13 | pass→pass | 13,971 | 8,561 | -39% | 1 | 1 | 0% | 1,402 | 2,891 | +106% | 0 | 0 | — |
case-14 | pass→pass | 9,374 | 10,578 | +13% | 1 | 1 | 0% | 746 | 3,140 | +321% | 0 | 0 | — |
case-15 | pass→pass | 7,672 | 3,322 | -57% | 1 | 1 | 0% | 950 | 2,839 | +199% | 0 | 0 | — |
case-16 | pass→pass | 6,525 | 2,465 | -62% | 1 | 1 | 0% | 1,031 | 2,708 | +163% | 0 | 0 | — |
case-17 | fail→fail | 14,598 | 7,779 | -47% | 1 | 1 | 0% | 1,755 | 2,761 | +57% | 0 | 0 | — |
case-18 | fail→fail | 9,860 | 7,533 | -24% | 1 | 1 | 0% | 887 | 2,789 | +214% | 0 | 0 | — |
case-19 | fail→fail | 4,758 | 2,263 | -52% | 1 | 1 | 0% | 822 | 2,610 | +218% | 0 | 0 | — |
case-20 | pass→pass | 11,285 | 9,816 | -13% | 1 | 1 | 0% | 983 | 2,835 | +188% | 0 | 0 | — |
case-21 | fail→pass | 13,446 | 8,983 | -33% | 1 | 1 | 0% | 1,350 | 2,899 | +115% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 8/27/2026 | +61% |
| gemini-3.6-flash | verified | 8/16/2026 | +45% |
Other measured skills in the registry, with their headline benchmark lift.