yolo-chorus
The yolo-chorus skill automates the complete development lifecycle from concept to completion, executing a full AI-driven pipeline that handles project planning, proposal review, task execution, and verification without human intervention. Use this skill when you have a clear natural-language requirement and need end-to-end delivery through idea elaboration, adversarial proposal and task review loops, dependency-ordered execution, and final verification within a Chorus project management system.
git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus /tmp/yolo-chorus && cp -r /tmp/yolo-chorus/public/skill/yolo-chorus ~/.claude/skills/yolo-chorusSKILL.md
# Yolo Skill
Full-auto AI-DLC pipeline. The user provides one prompt; you drive the entire lifecycle: Idea -> Elaboration -> Proposal -> Review -> Execute -> Verify -> Done. No interactive prompts, no human in the loop unless the pipeline gets stuck.
This skill is **framework-neutral**: it never assumes a specific agent harness. Every reviewer and worker is described as "spawn a sub-agent" with a concrete example or two, and every step has an inline single-agent fallback so the pipeline still completes when sub-agents are unavailable.
---
## Overview
You take a natural-language description of what to build, and you handle everything:
1. **Planning** — resolve/create a project, create an Idea, self-elaborate, draft a Proposal (tech-design doc + task DAG), validate, submit.
2. **Proposal Review** — adversarial review loop against the `proposal-reviewer-chorus` skill.
3. **Execution** — dependency-ordered, wave-based task dispatch.
4. **Verification** — adversarial review loop against the `task-reviewer-chorus` skill + admin verify.
5. **Report** — completion summary + a mandatory Idea Completion Report.
```
<prompt>
|
v
Project + Idea + Self-Elaboration + Proposal
|
v
Proposal Review loop (up to maxProposalReviewRounds, default 3)
| PASS / PASS WITH NOTES -> approve ; FAIL -> reject + revise + resubmit
v
Admin Approve --> Documents + Tasks materialize (tasks land in `open`)
|
v
Wave-based Execution -- chorus_get_unblocked_tasks
| dispatch one worker sub-agent per unblocked task (fallback: sequential main agent)
v
Verification loop (up to maxTaskReviewRounds, default 3)
| PASS / PASS WITH NOTES -> mark AC + verify ; FAIL -> reopen
| verify unblocks dependents -> loop back to Execution
v
Done --> Report summary + mandatory Idea Completion Report
```
**Escape hatch:** Interrupt at any time. Every created entity (project, idea, proposal, tasks, comments) persists in Chorus. Resume manually via `develop-chorus` or `review-chorus`.
> **Base URL:** Skill files are hosted under `<BASE_URL>/skill/`. The user provides the Chorus access URL (e.g. `https://chorus.acme.com` or `http://localhost:8637`), referred to as `<BASE_URL>` below. See `chorus` skill (`<BASE_URL>/skill/chorus/SKILL.md`) for platform overview and shared tools.
---
## Prerequisites
Yolo touches every resource and acts as PM, developer, AND admin. The API key MUST carry write + admin on the resources it drives:
| Needs | Why |
|-------|-----|
| `idea: [write]` | Create the Idea, run self-elaboration |
| `proposal: [write, admin]` | Create + submit the Proposal; approve it |
| `task: [write, admin]` | Create, execute, verify (and reopen) tasks |
| `project: [write]` | Create the project when none is supplied |
**Permission preflight — run this before doing anything else:**
```
perms = chorus_checkin().agent.permissions
need = { idea: ["write"],
proposal:["write", "admin"],
task: ["write", "admin"],
project: ["write"] }
missing = []
for resource, actions in need:
for a in actions:
if a not in (perms[resource] or []):
missing.append(f"{resource}:{a}")
if missing:
ABORT "yolo requires the following permissions, which this API key lacks: "
+ ", ".join(missing)
+ ". Use an Admin-preset API key (all 15 permissions) and retry."
```
List **every** missing `resource:action` pair in the abort message — do not stop at the first one — so the user can fix the key in one pass. Do not silently degrade or skip phases when a permission is missing; abort cleanly.
---
## Input
```
<natural language prompt of what to build>
<prompt> (with an optional existing-project hint, e.g. a project UUID or name)
```
- **prompt** — what you want built. Becomes the Idea content verbatim.
- **existing-project hint** (optional) — a project UUID or name to reuse instead of creating a new project. If absent, you search for a match and create one only when none fits.
Keep the prompt detailed: the richer the input, the better the auto-generated proposal, and the fewer review rounds it takes.
---
## Workflow
### Phase 1: Planning
#### Step 1.1: Resolve Project
**If the user supplied a project UUID:**
```
chorus_get_project({ projectUuid: "<uuid>" })
```
Confirm it exists and reuse it.
**Otherwise, search for a suitable existing project first:**
```
# Search by topic
chorus_search({ query: "<key terms from prompt>", entityTypes: ["project"] })
# Or list recent projects
chorus_list_projects()
```
If a project clearly matches the user's intent (same topic, active, relevant scope), reuse it. Only when no project fits, create one:
```
chorus_admin_create_project({
name: "<short title derived from prompt>",
description: "<1-2 sentence summary of the prompt>"
})
```
#### Step 1.2: Create the Idea
```
chorus_pm_create_idea({
projectUuid: "<project-uuid>",
title: "<concise title derived from prompt>",
content: "<full user prompt, as-is>"
})
```
Then claim it so you own the elaboration:
```
chorus_claim_idea({ ideaUuid: "<idea-uuid>" })
```
#### Step 1.3: Self-Elaboration (no interactive prompts)
In yolo mode you generate the elaboration questions AND answer them yourself — there are NO interactive user prompts. This preserves a decision audit trail without interrupting anyone.
> **Self-elaboration is still a loop.** If answering your own questions surfaces a **new question, contradiction, or gap**, loop back to `chorus_pm_start_elaboration` for another self-answered round before resolving — don't force a resolve over unresolved ambiguity. There is no human gate in yolo mode, so the loop exits on **your** judgment that nothing material is left open (round cap 10). Steps 1–2 are one round; repeat them as needed, then resolve once in Step 3.
1. **Generate and submit questions:**
```
chorus_pm_start_elaboration({
ideaUuid: "<idea-uuid>",
depth: "standard",
questions: [
{
id: "qImplement 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.