--- name: yolo-chorus description: Full-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done. license: AGPL-3.0 metadata: author: chorus version: "0.17.0" category: project-management mcp_server: chorus --- # 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. 4.5. **Code-Review Gateway** — adversarial review loop against the `code-reviewer-chorus` skill over the Idea's aggregate change, before ship (FAIL → add fix tasks → re-run). 5. **Report** — completion summary + a mandatory Idea Completion Report. ``` | 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 Code-Review Gateway (all tasks done; up to maxCodeReviewRounds, default 3) | PASS / PASS WITH NOTES -> ship ; FAIL -> add fix tasks -> Execution -> re-run v Done --> Report summary + mandatory Idea Completion Report ``` **First-principles alignment (a stage-tailored instruction in every reviewer).** The proposal-, task-, and code-reviewer each also verify, top-down, that the work still serves the *original Idea's intent* — building the intent baseline from the directly-attached Idea it resolves from the entity under review — via the existing `chorus_get_idea` + `chorus_get_elaboration` + `chorus_get_comments`, counting **human-authored** content only — and flagging **scope creep**, **requirement loss / shrink**, or **semantic drift**. Unauthorized drift is a **BLOCKER → FAIL / reject**, downgraded to a cited NOTE only when traceable to a **human-originated** authorization (a human-authored Idea comment, a human-answered elaboration entry, or an explicit human override) — an agent's own comment never authorizes. **In `/yolo` there is no human at the gate, so a self-generated (agent-authored) elaboration or comment does NOT clear alignment drift**: fix the drift (reject/reopen + revise) rather than rationalizing it away. **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 `/skill/`. The user provides the Chorus access URL (e.g. `https://chorus.acme.com` or `http://localhost:8637`), referred to as `` below. See `chorus` skill (`/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 ``` (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. --- ## Research routing During planning, follow the Idea and Proposal routes to `research-chorus` (`/skill/research-chorus/SKILL.md`) ([shared rules](../research-chorus/SKILL.md)): Idea before formal clarification once focused, Proposal after reusing evidence and only for new gaps or an explicit request. Carry findings and the request context across wakes and brainstorm; do not restart the same investigation on resume. Preserve the existing yolo decision/review gates. A Tracker Research action is research-only even inside a yolo-associated conversation: use the Idea research-only branch, save/report, and return without advancing to elaboration, proposal submission, or development. A yolo request alone does not prove development started; use actual execution facts. ## Workflow ### Phase 1: Planning #### Step 1.1: Resolve Project **If the user supplied a project UUID:** ``` chorus_get_project({ projectUuid: "" }) ``` Confirm it exists and reuse it. **Otherwise, search for a suitable existing project first:** ``` # Search by topic chorus_search({ query: "", 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: "", description: "<1-2 sentence summary of the prompt>" }) ``` #### Step 1.2: Create the Idea ``` chorus_pm_create_idea({ projectUuid: "", title: "", content: "" }) ``` Then claim it so you own the elaboration: ``` chorus_claim_idea({ ideaUuid: "" }) ``` #### 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: "", depth: "standard", questions: [ { id: "q1", text: "", category: "functional", options: [ { id: "a", label: "