Gemini Video Understanding
einverne/dotfiles
Analyze videos using Google's Gemini API - describe content, answer questions, transcribe audio with visual descriptions, reference timestamps, clip videos, and process YouTube URLs.
Full-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done.
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorus --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/public/skill/yolo-chorus .claude/skills/yolo-chorus && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .claude/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorusType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorus --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/public/skill/yolo-chorus .agents/skills/yolo-chorus && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .agents/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorus --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/public/skill/yolo-chorus .cursor/skills/yolo-chorus && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .cursor/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Chorus-AIDLC/Chorus.git --path public/skill/yolo-chorus--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorus --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/public/skill/yolo-chorus .gemini/skills/yolo-chorus && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .gemini/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorusInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .github/skills && cp -r skills-src/public/skill/yolo-chorus .github/skills/yolo-chorus && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .github/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Chorus-AIDLC/Chorus yolo-chorus --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/public/skill/yolo-chorus .opencode/skills/yolo-chorus && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "yolo-chorus" agent skill from https://github.com/Chorus-AIDLC/Chorus/tree/main/public/skill/yolo-chorus into .opencode/skills/yolo-chorus/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "yolo-chorus", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
yolo-chorusFull-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done.
Yolo Chorus is an agent skill from Chorus-AIDLC/Chorus. Full-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done.
Its SKILL.md is about 7.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Computer vision. The repository describes itself as: The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle). The licence is AGPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 37d62d9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
chorus.acme.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Yolo Chorus loads about 7.8k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 3,004 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Chorus-AIDLC/Chorus at commit 37d62d9, republished under its AGPL-3.0 licence (© Chorus-AIDLC). 3,004 words, ~7,796 tokens.
.claude/skills/yolo-chorus/SKILL.md (or your agent's skills folder).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.
You take a natural-language description of what to build, and you handle everything:
proposal-reviewer-chorus skill.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).<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
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 ReportFirst-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
<BASE_URL>/skill/. The user provides the Chorus access URL (e.g.https://chorus.acme.comorhttp://localhost:8637), referred to as<BASE_URL>below. Seechorusskill (<BASE_URL>/skill/chorus/SKILL.md) for platform overview and shared tools.
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.
<natural language prompt of what to build>
<prompt> (with an optional existing-project hint, e.g. a project UUID or name)Keep the prompt detailed: the richer the input, the better the auto-generated proposal, and the fewer review rounds it takes.
During planning, follow the Idea and Proposal routes to research-chorus (<BASE_URL>/skill/research-chorus/SKILL.md) (shared rules): 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.
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>"
})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>" })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_elaborationfor 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.
Generate and submit questions:
chorus_pm_start_elaboration({
ideaUuid: "<idea-uuid>",
depth: "standard",
questions: [
{
id: "q1",
text: "<question about scope, architecture, data model, etc.>",
category: "functional",
options: [
{ id: "a", label: "<option A>" },
{ id: "b", label: "<option B>" }
]
}
// ... 5-8 questions covering functional, technical_context, and scope aspects
]
})Answer immediately — pick the option that best fits the prompt and record your rationale:
chorus_answer_elaboration({
ideaUuid: "<idea-uuid>",
roundUuid: "<round-uuid>",
answers: [
{ questionId: "q1", selectedOptionId: "a", customText: "Rationale: ..." }
// ...
]
})Resolve — in YOLO mode the agent resolves elaboration autonomously, with no human-confirmation gate (the human-confirmation requirement that applies to the interactive idea flow is explicitly waived under /yolo automation):
chorus_pm_validate_elaboration({
ideaUuid: "<idea-uuid>"
})
chorus_pm_validate_elaborationrequiresidea:admin./yoloalready mandates an Admin-preset key in Prerequisites, so this is satisfied. To open another self-elaboration round instead of resolving, just callchorus_pm_start_elaborationagain.
Create the empty proposal container:
chorus_pm_create_proposal({
projectUuid: "<project-uuid>",
title: "<feature name>",
description: "<summary derived from the elaborated idea>",
inputType: "idea",
inputUuids: ["<idea-uuid>"]
})Add a tech-design document draft. Capture architecture, data model, API surface, and module contracts (return formats, error patterns, call points) so each task draft can reference a single source of truth:
chorus_pm_add_document_draft({
proposalUuid: "<proposal-uuid>",
type: "tech_design",
title: "Tech Design: <feature>",
content: "<markdown tech design: architecture, data model, API, module contracts>"
})Add task drafts incrementally and chain them into a dependsOn DAG with the returned draftUuid of each upstream draft. acceptanceCriteriaItems is required on every draft — at least one non-blank criterion, or the call is rejected. Each criterion must be objectively verifiable by a different agent:
# First task
result1 = chorus_pm_add_task_draft({
proposalUuid: "<proposal-uuid>",
title: "<module name>",
description: "<what to build, referencing the tech design>",
priority: "high",
storyPoints: 3,
acceptanceCriteriaItems: [
{ description: "<testable criterion>", required: true }
// ...
]
})
# Second task depends on the first
chorus_pm_add_task_draft({
proposalUuid: "<proposal-uuid>",
title: "<dependent module>",
description: "...",
priority: "medium",
storyPoints: 2,
acceptanceCriteriaItems: [ { description: "...", required: true } ],
dependsOnDraftUuids: ["<result1.draftUuid>"]
})For a DAG of 4 or more tasks, include at least one integration-checkpoint task whose AC requires end-to-end execution of the preceding modules together. The proposal reviewer treats a missing integration checkpoint as a BLOCKER, so add one up front.
Validate and fix any reported errors before submitting:
chorus_pm_validate_proposal({ proposalUuid: "<proposal-uuid>" })Submit for review:
chorus_pm_submit_proposal({ proposalUuid: "<proposal-uuid>" })Proceed to Phase 2 — you drive the proposal review yourself; nothing reviews it automatically.
Every gate in Phases 2, 4 and 4.5 follows the same three steps. They are written once here; the phases below only name their entity and their stage-specific actions.
VERDICT: comment the reviewer posts.chorus_get_comments on the entity and find the VERDICT: comment posted after your dispatch, not an older round's. Do not advance the gate before you have read it.Absence is never a PASS, and a round limit reached by someone else is never yours to clear.
Run an adversarial review on the submitted proposal using the Independent Review pattern (see below). Loop until the verdict allows approval or you exhaust maxProposalReviewRounds.
Independent Review pattern (framework-neutral). Spawn a read-only sub-agent and have it load the
proposal-reviewer-chorusskill (<BASE_URL>/skill/proposal-reviewer-chorus/SKILL.md), pass it theproposalUuidand the current review round number, and instruct it to post exactly oneVERDICTcomment on the proposal. The reviewer's only side effect is that comment; it makes no writes to your project. After it returns, read the verdict viachorus_get_comments.The exact spawn mechanism is harness-specific — these are EXAMPLES only, not a hard dependency:
- Claude Code: dispatch a sub-agent with the Task/Agent tool, mounting the
proposal-reviewer-chorusskill.- Codex:
spawn_agentmounting the skill, thenwait_agent; release the thread slot withclose_agentafterwards.- Any other harness: whatever read-only sub-agent primitive it exposes.
Inline self-review fallback (no sub-agents available). If your harness cannot spawn a sub-agent, perform the review inline as the main agent: read
proposal-reviewer-chorus, follow its procedure against this proposal (fetch the proposalsection: "full", the idea, and the elaboration; audit documents and task drafts; classify findings as BLOCKER vs NOTE), and post your ownVERDICTcomment viachorus_add_comment. The verdict semantics below are identical in either mode.This is the canonical pattern;
chorus(<BASE_URL>/skill/chorus/SKILL.md) documents it canonically — describe it inline here so yolo is self-contained.
Review loop:
round = 1
loop:
# 1. Spawn the reviewer (Independent Review pattern above) with proposalUuid + round.
# Fallback: inline self-review as the main agent.
# 2. Read THIS round's VERDICT comment — posted after your dispatch, not an older round's.
comments = chorus_get_comments({ targetType: "proposal", targetUuid: "<proposal-uuid>" })
# Find THIS round's "VERDICT:" comment — the one posted after your dispatch, not an older round's.
# 3. Act on the verdict (three outcomes).VERDICT: PASS or VERDICT: PASS WITH NOTES — approve. Tasks and documents materialize automatically; proceed to Phase 3.
chorus_admin_approve_proposal({
proposalUuid: "<proposal-uuid>",
reviewNote: "PASS from reviewer. <one-line summary of any NOTES>"
})VERDICT: FAIL — read the BLOCKERs from the reviewer comment, reject, revise, and resubmit:
chorus_pm_reject_proposal({
proposalUuid: "<proposal-uuid>",
reviewNote: "FAIL from reviewer. Fixing BLOCKERs: <list>"
})
# Revise drafts to address each BLOCKER:
# chorus_pm_update_document_draft({ ... })
# chorus_pm_update_task_draft({ ... })
chorus_pm_submit_proposal({ proposalUuid: "<proposal-uuid>" })
round += 1
# Re-run the Independent Review for the next round (pass round = current number).Max rounds escalation. Loop up to maxProposalReviewRounds (default 3). If exhausted with unresolved BLOCKERs:
STOP: "Proposal review failed after 3 rounds. Remaining BLOCKERs: <list>.
Human review needed. Proposal UUID: <proposal-uuid>."No new VERDICT for this round? Apply step 3 of the Reviewer contract, reviewing the proposal yourself if the reviewer stays silent.
After approval, tasks exist in open. Execute them in dependency-ordered waves. A wave is the current set of unblocked tasks; verifying a wave (Phase 4) unblocks the next.
wave = 1
loop:
# 1. Find tasks whose dependencies are all resolved (done/closed).
unblocked = chorus_get_unblocked_tasks({ projectUuid: "<project-uuid>" })
if no unblocked tasks and all tasks done:
break # pipeline complete
if no unblocked tasks and some tasks not done:
break with escalation report # stuck: tasks failed review or are circularly blocked
# 2. Dispatch one worker per unblocked task (see worker dispatch below).
# 3. Wait for workers to reach `to_verify`.
# 4. Run Phase 4 verification for this wave's tasks.
wave += 1
# 5. Loop: re-check chorus_get_unblocked_tasks for newly unblocked tasks.Worker dispatch (framework-neutral). For each unblocked task, dispatch a worker sub-agent that follows the developer workflow (develop-chorus, <BASE_URL>/skill/develop-chorus/SKILL.md): claim -> in_progress -> implement -> report_work -> self-check AC -> submit_for_verify. The worker prompt needs:
taskUuid (required)projectUuid (required, for context lookups)develop-chorus skill and to exit after chorus_submit_for_verify so the main agent can run verification.The spawn mechanism is harness-specific — EXAMPLES only:
- Claude Code: one sub-agent per task via the Task/Agent tool (parallel within the wave).
- Codex:
spawn_agentper task, thenwait_agent;close_agenteach worker after it returns.- Optionally create a
chorus_create_sessionper worker for observability andchorus_close_sessionit when the worker finishes.
Sequential main-agent fallback. If sub-agents are unavailable, or parallel execution is impractical (rate limits, token budget, simpler debugging), execute each unblocked task yourself, sequentially, as the main agent:
for each task in unblocked:
chorus_claim_task({ taskUuid: "<task-uuid>" })
chorus_update_task({ taskUuid: "<task-uuid>", status: "in_progress" })
# ... read context (task, proposal documents, upstream deps), implement, run tests ...
chorus_report_work({ taskUuid: "<task-uuid>", report: "..." })
chorus_report_criteria_self_check({ taskUuid: "<task-uuid>", criteria: [ ... ] })
chorus_submit_for_verify({ taskUuid: "<task-uuid>", summary: "..." })
# Then run Phase 4 verification for this task before moving on.The fallback is slower (no parallelism) but completes the same pipeline.
After each wave's workers reach to_verify, verify their tasks using the Independent Review pattern — the same neutral mechanism as Phase 2, pointed at the task-reviewer-chorus skill.
Independent Review pattern (framework-neutral). Spawn a read-only sub-agent and have it load the
task-reviewer-chorusskill (<BASE_URL>/skill/task-reviewer-chorus/SKILL.md), pass it thetaskUuidand the current review round number, and instruct it to post exactly oneVERDICTcomment on the task. The reviewer's only project side effect is that comment (it may run read-only tests/build/lint, but never writes). After it returns, read the verdict viachorus_get_comments.The exact spawn mechanism is harness-specific — EXAMPLES only:
- Claude Code: dispatch a read-only sub-agent with the Task/Agent tool, mounting the
task-reviewer-chorusskill.- Codex:
spawn_agentmounting the skill, thenwait_agent;close_agentafterwards to release the thread slot.Inline self-review fallback (no sub-agents available). Perform the review inline as the main agent: read
task-reviewer-chorus, follow its procedure (fetch the task, its AC, comments, and the proposalsection: "documents"; run the project's test/build/lint; verify each AC independently; classify BLOCKER vs NOTE), and post your ownVERDICTcomment viachorus_add_comment.
Verification loop, per task in the wave:
for each task in wave_tasks:
t = chorus_get_task({ taskUuid: "<task-uuid>" })
if t.status != "to_verify":
continue # worker did not submit; handle in a later wave or escalate
# Spawn the task reviewer (Independent Review pattern) with taskUuid + round.
# Fallback: inline self-review.
comments = chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })
# Find THIS round's "VERDICT:" comment — the one posted after your dispatch, not an older round's.Act on the verdict — three outcomes:
VERDICT: PASS — all AC verified, no issues. Mark AC and verify:
chorus_mark_acceptance_criteria({
taskUuid: "<task-uuid>",
criteria: [ { uuid: "<ac-uuid>", status: "passed", evidence: "<from reviewer>" } /* ... */ ]
})
chorus_admin_verify_task({ taskUuid: "<task-uuid>" }) # -> done, unblocks dependentsVERDICT: PASS WITH NOTES — minor, non-blocking notes only. Still mark AC and verify (same two calls as above).
VERDICT: FAIL — BLOCKERs found. Do NOT verify. Reopen for rework; the task returns to in_progress (its AC reset to pending) and is picked up in the next wave:
chorus_admin_reopen_task({ taskUuid: "<task-uuid>" })
chorus_add_comment({ targetType: "task", targetUuid: "<task-uuid>",
content: "Reopened. BLOCKERs to fix: <list>" })Max rounds escalation. Track review rounds per task via maxTaskReviewRounds (default 3). If a task has been reopened 3 times and still FAILs, skip it and flag for human escalation — do not halt the whole pipeline for one stuck task:
ESCALATE: "Task '<title>' failed review after 3 rounds. Last BLOCKERs: <list>.
Manual intervention needed. Task UUID: <task-uuid>."No new VERDICT for this round? Apply step 3 of the Reviewer contract, reviewing the task yourself if the reviewer stays silent.
After verifying every task in the wave, return to Phase 3 and re-run chorus_get_unblocked_tasks for newly unblocked tasks. Repeat until no tasks remain.
Once every task of the idea's proposal is verified (done) — Phase 3 finds no more unblocked tasks and none remain non-terminal — run the final ship-time code-review gateway before the Phase 5b completion report. This is the same Independent Review pattern as Phases 2 and 4, pointed at the code-reviewer-chorus skill — but it reviews the whole Idea's aggregate code change (across all tasks), not a single task, and posts its verdict on the Idea.
Independent Review pattern (framework-neutral). Spawn a read-only sub-agent and have it load the
code-reviewer-chorusskill (<BASE_URL>/skill/code-reviewer-chorus/SKILL.md), pass it theideaUuidand the current review round number, and instruct it to post exactly oneVERDICTcomment on the idea. It reviews cross-task integration, architecture/convention consistency, security, regression/performance, and feature-level test coverage — dimensions a single-task review cannot see — and may run read-only tests/build/lint, but never writes. After it returns, read the verdict viachorus_get_comments({ targetType: "idea", targetUuid: "<idea-uuid>" }).
- Claude Code: dispatch a read-only sub-agent with the Task/Agent tool, mounting the
code-reviewer-chorusskill.- Codex:
spawn_agentwith thecode-reviewer-chorusskill and theideaUuid.
Inline self-review fallback (no sub-agents available). Perform the review inline as the main agent: read
code-reviewer-chorus, follow its procedure (fetch the idea, its approved proposals + documents + tasks; infer the aggregate diff from task reports +git log/diff; review the six whole-feature dimensions; run the project's build/test), and post your ownVERDICTcomment on the idea.
Act on the verdict:
VERDICT: PASS / PASS WITH NOTES — the feature is cleared to ship. Proceed to Phase 5 / 5b.VERDICT: FAIL — do NOT ship. Read the BLOCKERs, then fix them via the quick-dev workflow (<BASE_URL>/skill/quick-dev-chorus/SKILL.md): call chorus_create_tasks with proposalUuid set to the current approved proposal so the fix tasks attach to it (not standalone) — do not reopen the already-verified tasks. Group related small BLOCKERs into one cohesive task by default; split only materially large or independently testable fixes. Drive every fix task through Phase 3 → Phase 4, including AC self-check, independent task review, and admin verification. Re-spawn the code-reviewer only after every fix task is successfully done; a failed or cancelled fix task, stop the automatic loop and escalate. Loop bounded by maxCodeReviewRounds (default 3; 0 = unlimited).ESCALATE: "Idea '<title>' failed code review after 3 rounds. Last BLOCKERs: <list>.
Manual intervention needed. Idea UUID: <idea-uuid>."No new VERDICT for this round? Apply step 3 of the Reviewer contract, reviewing the idea's aggregate change yourself if the reviewer stays silent.
The gateway is behavioral, consistent with the other two reviewers: its verdict is advisory and does not change the Idea's stored status; the orchestrator honors it. It runs before the completion report so the report is never written while a FAIL is outstanding.
When all waves complete, output a markdown summary:
## Yolo Complete
**Project:** <project-name> (<project-uuid>)
**Proposal:** <proposal-title> (<proposal-uuid>)
**Idea:** <idea-title> (<idea-uuid>)
### Tasks
| Task | Status | Review Rounds |
|------|--------|---------------|
| <title> | done | 1 |
| <title> | done | 2 |
| <title> | ESCALATED | 3 (max) |
### Summary
- Total tasks: N
- Completed: X / N
- Escalated: Y (need human review)
- Waves executed: W
- Idea Completion Report: <document-uuid> (from Phase 5b)A successful yolo run always finishes the Idea. Call chorus_create_report exactly once, with proposalUuid set to the last verified proposal. The call requires title (a short report title) plus content; content's parameter description carries the three-section template (## Summary / ## Decisions / ## Follow-ups) — follow it. Surface the returned documentUuid in the Phase 5 summary table. Skipping this is a protocol violation.
Order: write the completion report only after the Phase 4.5 code-review gateway returns PASS / PASS WITH NOTES. Never write it while a code-review FAIL is outstanding — the report is a ship-time summary, and the gateway is what clears the feature to ship.
result = chorus_create_report({
proposalUuid: "<last-verified-proposal-uuid>",
// ... follow the content parameter's section template ...
})
# Surface result.documentUuid in the Phase 5 summary.| Scenario | Action |
|---|---|
| Missing permissions at startup | Abort, listing every missing resource:action pair (see Prerequisites). Recommend an Admin-preset API key. |
| Project creation fails | Report the error; suggest the user create the project manually and rerun with an existing-project hint. |
Proposal review FAILs after maxProposalReviewRounds (3) | Stop the pipeline; report the persisting BLOCKERs; recommend manual review of the proposal. |
Task review FAILs after maxTaskReviewRounds (3) | Flag the task as escalation-needed; continue with the other tasks. |
Code-review gateway FAILs after maxCodeReviewRounds (3) | Stop before ship; escalate the persisting feature-level BLOCKERs to a human (Idea UUID); do not write the completion report. |
| Reviewer returns no VERDICT | Apply step 3 of the Reviewer contract: an explicit refusal or reported round limit is an escalation — STOP; genuine silence — respawn once and re-check what the retry posts, and only on a second true silence review the entity yourself and POST the VERDICT. |
| Worker crashes / never submits | Log it, leave the task non-to_verify; re-pick it in a later wave or escalate if it stays stuck. |
| No unblocked tasks but some not done | Stuck DAG (failed reviews or bad dependencies). Break with an escalation report; do not loop. |
| Sub-agents unavailable | Use the inline self-review fallback (reviews) and the sequential main-agent fallback (execution). |
| Interrupted mid-run | All entities persist in Chorus. Resume via develop-chorus or review-chorus. |
quick-dev-chorus (<BASE_URL>/skill/quick-dev-chorus/SKILL.md) — it skips the Idea -> Proposal overhead.proposal-chorus skill (<BASE_URL>/skill/proposal-chorus/SKILL.md)develop-chorus skill (<BASE_URL>/skill/develop-chorus/SKILL.md)review-chorus skill (<BASE_URL>/skill/review-chorus/SKILL.md)chorus skill (<BASE_URL>/skill/chorus/SKILL.md)© Chorus-AIDLC, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in public/skill/yolo-chorus of Chorus-AIDLC/Chorus.
Open the folder on GitHubat commit 37d62d9
Yolo Chorus next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Yolo Chorus this skillChorus-AIDLC/Chorus | 1.2k | — | ~7.8k | Automated safety check: Pass | AGPL-3.0 | |
| Gemini Video Understandingeinverne/dotfiles | 121 | — | ~2.6k | Automated safety check: Notes | MIT | |
| Segment Anything Model GuideOrchestra-Research/AI-Research-SKILLs | 13k | 8 repos | ~3.3k | Automated safety check: Pass | MIT | |
| CLIP Image-Text MatchingOrchestra-Research/AI-Research-SKILLs | 13k | 7 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Yolo Master AgentTencent/YOLO-Master | 747 | — | ~755 | Automated safety check: Pass | AGPL-3.0 | |
| Video Understandjjyaoao/HelloAgents | 3.2k | 1 repos | ~6.2k | Automated safety check: Pass | MIT |
einverne/dotfiles
Analyze videos using Google's Gemini API - describe content, answer questions, transcribe audio with visual descriptions, reference timestamps, clip videos, and process YouTube URLs.
Orchestra-Research/AI-Research-SKILLs
Guide to using Meta's Segment Anything Model for zero-shot image segmentation with point, box or mask prompts, or automatic mask generation.
Orchestra-Research/AI-Research-SKILLs
Explains OpenAI's CLIP model for zero-shot image classification, image-text similarity, semantic image search and content moderation, with install steps and code patterns.
Tencent/YOLO-Master
A skill your agent uses when the user wants to run a YOLO-Master task (train/val/predict/track/export/benchmark) or use the Agent Skill dispatcher.
jjyaoao/HelloAgents
Implement specialized video understanding capabilities using the z-ai-web-dev-sdk.
Orchestra-Research/AI-Research-SKILLs
Guide to LLaVA for image chat, visual question answering and captioning, with model sizes, CLI and Gradio usage and multi-turn conversation code.
Chorus-AIDLC/Chorus
A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…
Chorus-AIDLC/Chorus
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Chorus-AIDLC/Chorus
Optional divergent-then-convergent dialogue for fuzzy ideas on Hermes.
Chorus-AIDLC/Chorus
Optional divergent-then-convergent dialogue for fuzzy ideas.
Chorus-AIDLC/Chorus
Optional divergent-then-convergent dialogue for fuzzy ideas.
Chorus-AIDLC/Chorus
Optional divergent-then-convergent dialogue for fuzzy ideas.
Categories
Full-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done. Yolo Chorus is an agent skill from Chorus-AIDLC/Chorus. Full-auto AI-DLC pipeline — drive a single prompt from Idea through Proposal, Execution, and Verification to Done.
Yolo Chorus fits situations like: tasks that involve Computer vision.
Run `npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a claude-code`. Or copy the skill folder (public/skill/yolo-chorus in Chorus-AIDLC/Chorus) into .claude/skills/yolo-chorus in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a codex`. Or copy the skill folder (public/skill/yolo-chorus in Chorus-AIDLC/Chorus) into .agents/skills/yolo-chorus in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Chorus-AIDLC/Chorus --skill yolo-chorus -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/yolo-chorus, .gemini/skills/yolo-chorus, .github/skills/yolo-chorus and .opencode/skills/yolo-chorus in your project.
Going by SKILL.md and its folder, Yolo Chorus needs the command-line tools its instructions call (git).
SKILL.md names 1 domain. In commands or code: chorus.acme.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Yolo Chorus is published under the AGPL-3.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.8k tokens (SKILL.md is roughly 31k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Yolo Chorus: Gemini Video Understanding (einverne/dotfiles, 121 stars), Segment Anything Model Guide (Orchestra-Research/AI-Research-SKILLs, 13k stars), CLIP Image-Text Matching (Orchestra-Research/AI-Research-SKILLs, 13k stars) and Yolo Master Agent (Tencent/YOLO-Master, 747 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Chorus-AIDLC (a GitHub organization) maintains it in Chorus-AIDLC/Chorus, which has 1,192 GitHub stars. The repository holds 64 skills in this directory. The repository was last updated on October 9, 2026.
Source: Chorus-AIDLC/Chorus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.