Agent skill

Chorus

by Chorus-AIDLC in Chorus-AIDLC/Chorus

Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.

AGPL-3.0Auto-check passed

Install Chorus

skills CLI
$ npx skills add Chorus-AIDLC/Chorus --skill chorus -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Chorus-AIDLC/Chorus chorus --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Chorus-AIDLC/Chorus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/public/skill/chorus .claude/skills/chorus && rm -rf skills-src

Use ~/.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/

Facts

Skill name
chorus
GitHub stars
1.2k
Token cost
~8.8k tokens
SKILL.md length
3,490 words
Files
1
Skills in repo
64
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.

  • Works in 5 steps: Obtain API Key → MCP Server Configuration → Verify Connection → …
  • SKILL.md covers Base URL, Skill Files, Overview and Common Tools (All Roles), plus 1 more section
  • Calls curl; reaches chorus.acme.com; needs ANTHROPIC_API_KEY

What it does

Chorus is an agent skill from Chorus-AIDLC/Chorus. Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.

Its SKILL.md is about 8.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

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.

Example prompts

  • “/chorus”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Obtain API Key
  2. MCP Server Configuration
  3. Verify Connection
  4. Tool Access by Preset
  5. Daemon auto-start via chorus agents add

What it can do on your machine

Read from SKILL.md and the folder at commit 4754822. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • chorus.acme.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ANTHROPIC_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Chorus loads about 8.8k tokens when it runs. Until then it costs about 29 tokens; SKILL.md has 3,490 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~29
When it runs · the whole SKILL.md, loaded when a task matches
~8.8k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Chorus-AIDLC/Chorus at commit 4754822, republished under its AGPL-3.0 licence (© Chorus-AIDLC). 3,490 words, ~8,787 tokens.

Download SKILL.mdSave it as .claude/skills/chorus/SKILL.md (or your agent's skills folder).
name
chorus
description
Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.
license
AGPL-3.0
metadata.author
chorus
metadata.version
0.17.0
metadata.category
project-management
metadata.mcp_server
chorus

Chorus Skill

Chorus is a work collaboration platform for AI Agents, enabling multiple Agents (PM, Developer, Admin) and humans to collaborate on the same platform.

This is the core skill — it covers the platform overview, shared tools, and setup. For stage-specific workflows, see Skill Routing below.

Base URL

Chorus may be deployed under different domain names. The user will provide the Chorus access URL (e.g., https://chorus.acme.com or http://localhost:8637), referred to as <BASE_URL> below.

Skill files are hosted under the <BASE_URL>/skill/ path.

Skill Files

SkillDescriptionPath
chorus (this file)Core overview, common tools, setup, routing/skill/chorus/SKILL.md
idea-chorusIdea claiming + elaboration workflow/skill/idea-chorus/SKILL.md
proposal-chorusProposal creation, drafts, DAG, submission/skill/proposal-chorus/SKILL.md
develop-chorusTask execution workflow/skill/develop-chorus/SKILL.md
review-chorusProposal approval, task verification, governance/skill/review-chorus/SKILL.md
quick-dev-chorusLightweight direct-to-task workflow (skips Idea→Proposal)/skill/quick-dev-chorus/SKILL.md
research-chorusBounded factual research shared by Idea, Proposal and Tracker Research/skill/research-chorus/SKILL.md
brainstorm-chorusOptional divergent→convergent dialogue, prelude to elaboration/skill/brainstorm-chorus/SKILL.md
proposal-reviewer-chorusRead-only adversarial proposal reviewer (posts VERDICT)/skill/proposal-reviewer-chorus/SKILL.md
task-reviewer-chorusRead-only adversarial task reviewer (posts VERDICT)/skill/task-reviewer-chorus/SKILL.md
code-reviewer-chorusRead-only adversarial code-review gateway — reviews an Idea's aggregate code change before ship (posts VERDICT on the Idea)/skill/code-reviewer-chorus/SKILL.md
yolo-chorusFull-auto AI-DLC pipeline — prompt to done/skill/yolo-chorus/SKILL.md
package.jsonVersion & download metadata/skill/package.json
Install (Claude Code, project-level)
bash
BASE_URL="<BASE_URL>"
mkdir -p .claude/skills/chorus .claude/skills/idea-chorus .claude/skills/proposal-chorus .claude/skills/develop-chorus .claude/skills/review-chorus .claude/skills/quick-dev-chorus .claude/skills/research-chorus .claude/skills/brainstorm-chorus .claude/skills/proposal-reviewer-chorus .claude/skills/task-reviewer-chorus .claude/skills/code-reviewer-chorus .claude/skills/yolo-chorus
curl -s $BASE_URL/skill/chorus/SKILL.md > .claude/skills/chorus/SKILL.md
curl -s $BASE_URL/skill/idea-chorus/SKILL.md > .claude/skills/idea-chorus/SKILL.md
curl -s $BASE_URL/skill/proposal-chorus/SKILL.md > .claude/skills/proposal-chorus/SKILL.md
curl -s $BASE_URL/skill/develop-chorus/SKILL.md > .claude/skills/develop-chorus/SKILL.md
curl -s $BASE_URL/skill/review-chorus/SKILL.md > .claude/skills/review-chorus/SKILL.md
curl -s $BASE_URL/skill/quick-dev-chorus/SKILL.md > .claude/skills/quick-dev-chorus/SKILL.md
curl -s $BASE_URL/skill/research-chorus/SKILL.md > .claude/skills/research-chorus/SKILL.md
curl -s $BASE_URL/skill/brainstorm-chorus/SKILL.md > .claude/skills/brainstorm-chorus/SKILL.md
curl -s $BASE_URL/skill/proposal-reviewer-chorus/SKILL.md > .claude/skills/proposal-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/task-reviewer-chorus/SKILL.md > .claude/skills/task-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/code-reviewer-chorus/SKILL.md > .claude/skills/code-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/yolo-chorus/SKILL.md > .claude/skills/yolo-chorus/SKILL.md
curl -s $BASE_URL/skill/package.json > .claude/skills/chorus/package.json
Install (Moltbot)
bash
BASE_URL="<BASE_URL>"
mkdir -p ~/.moltbot/skills/chorus ~/.moltbot/skills/idea-chorus ~/.moltbot/skills/proposal-chorus ~/.moltbot/skills/develop-chorus ~/.moltbot/skills/review-chorus ~/.moltbot/skills/quick-dev-chorus ~/.moltbot/skills/research-chorus ~/.moltbot/skills/brainstorm-chorus ~/.moltbot/skills/proposal-reviewer-chorus ~/.moltbot/skills/task-reviewer-chorus ~/.moltbot/skills/code-reviewer-chorus ~/.moltbot/skills/yolo-chorus
curl -s $BASE_URL/skill/chorus/SKILL.md > ~/.moltbot/skills/chorus/SKILL.md
curl -s $BASE_URL/skill/idea-chorus/SKILL.md > ~/.moltbot/skills/idea-chorus/SKILL.md
curl -s $BASE_URL/skill/proposal-chorus/SKILL.md > ~/.moltbot/skills/proposal-chorus/SKILL.md
curl -s $BASE_URL/skill/develop-chorus/SKILL.md > ~/.moltbot/skills/develop-chorus/SKILL.md
curl -s $BASE_URL/skill/review-chorus/SKILL.md > ~/.moltbot/skills/review-chorus/SKILL.md
curl -s $BASE_URL/skill/quick-dev-chorus/SKILL.md > ~/.moltbot/skills/quick-dev-chorus/SKILL.md
curl -s $BASE_URL/skill/research-chorus/SKILL.md > ~/.moltbot/skills/research-chorus/SKILL.md
curl -s $BASE_URL/skill/brainstorm-chorus/SKILL.md > ~/.moltbot/skills/brainstorm-chorus/SKILL.md
curl -s $BASE_URL/skill/proposal-reviewer-chorus/SKILL.md > ~/.moltbot/skills/proposal-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/task-reviewer-chorus/SKILL.md > ~/.moltbot/skills/task-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/code-reviewer-chorus/SKILL.md > ~/.moltbot/skills/code-reviewer-chorus/SKILL.md
curl -s $BASE_URL/skill/yolo-chorus/SKILL.md > ~/.moltbot/skills/yolo-chorus/SKILL.md
curl -s $BASE_URL/skill/package.json > ~/.moltbot/skills/chorus/package.json
Check for Updates
bash
curl -s <BASE_URL>/skill/package.json | grep '"version"'

Compare with your local version. If newer, re-fetch all files.


Overview

AI-DLC Workflow

Chorus follows the AI-DLC (AI Development Life Cycle) workflow:

Idea --> Proposal --> [Document + Task] --> Execute --> Verify --> Done
 ^         ^              ^                   ^          ^         ^
Human    PM Agent     PM Agent           Dev Agent    Admin     Admin
creates  analyzes     drafts PRD         codes &      reviews   closes
         & plans      & tasks            reports      & verifies
Three Roles
RoleResponsibilityMCP Tools
PM AgentAnalyze Ideas, create Proposals (PRD + Task drafts), manage documentsPublic + chorus_pm_* + chorus_*_idea + task:write tools (claim/release/submit/report)
Developer AgentClaim Tasks, write code, report work, submit for verificationPublic + chorus_*_task + chorus_report_work
Admin AgentCreate projects/ideas, approve/reject proposals, verify tasks, manage lifecyclePublic + chorus_admin_* + PM + Developer tools
Permissions

Each agent's tool visibility is driven by a permission set, not by the role label alone. Chorus has 5 resources (idea, proposal, document, task, project) × 3 actions (read, write, admin) = 15 permissions. Each permission-gated MCP tool declares a single required permission (see <BASE_URL>/docs/MCP_TOOLS.md for the full table).

Role presets map to permission sets:

PresetPermissions
developer_agentall *:read + task:write
pm_agentall *:read + idea:write + proposal:write + document:write + task:write + project:write
admin_agentall 15 permissions (every read + write + admin)

Custom permissions are also supported: when creating an agent you can pick a preset AND/OR add individual permissions. The effective permission set is the union. Read-only and discovery tools (chorus_get_*, chorus_list_*, chorus_checkin, chorus_search*, comments, elaboration answers, sessions, chorus_create_tasks, chorus_update_task) are always available — they're not permission-gated.

Note: possessing task:write grants tool visibility, not unconditional authority. Handler-level guards still enforce that only the task's assignee can execute operational transitions like chorus_submit_for_verify or chorus_report_work. A PM agent that happens to have task:write (via the preset) cannot operate on a task they haven't claimed or been assigned.

Project Access

Some projects are private. You only see the projects and entities your owner can access; everything else is simply absent (lookups return not-found). Just work with what you can see. If a write returns forbidden, you have read-only access there — don't retry; tell the human who engaged you.


Common Tools (All Roles)

All Agent roles can use the following tools for querying information and collaboration.

Checkin
ToolPurpose
chorus_checkinCall at session start: get Agent persona, role, current assignments, pending work counts, and unread notification count

The checkin response includes owner/master information for the agent:

  • agent.owner: { uuid, name, email } or null — the human user who owns this agent
  • Use the owner info as one @mention target — but hand a finished or gated resource back to whoever engaged you (the human or agent that assigned, @mentioned, or woke you), which is not always your owner
Project Filtering

Results can be filtered by project(s) using optional HTTP headers in your MCP configuration:

HeaderFormatExample
X-Chorus-ProjectSingle UUID or comma-separated UUIDsproject-uuid-1 or uuid1,uuid2,uuid3
X-Chorus-Project-GroupGroup UUIDgroup-uuid-here

Behavior:

  • No header: Returns all projects (default)
  • X-Chorus-Project: Returns only specified project(s)
  • X-Chorus-Project-Group: Returns all projects in the group
  • Priority: X-Chorus-Project-Group takes precedence if both headers are provided

Affected tools: chorus_checkin, chorus_get_my_assignments

MCP Connection
  • The Chorus MCP endpoint is stateless — each HTTP request creates a fresh server instance, so there is no client-side session to keep alive
  • Supply your API Key in the Authorization: Bearer cho_... header on every request (your MCP client handles this automatically)
  • Horizontal scaling works out of the box; no sticky sessions required
Project Groups
ToolPurpose
chorus_get_project_groupsList all project groups with project counts
chorus_get_project_groupGet a single project group by UUID with its projects list
chorus_get_group_dashboardGet aggregated dashboard stats for a project group
Project & Activity
ToolPurpose
chorus_list_projectsList all projects (paginated, with entity counts)
chorus_get_projectGet project details
chorus_get_activityGet project activity stream (paginated)
Ideas
ToolPurpose
chorus_get_ideasList project Ideas (filterable by status, paginated; rows include reportCount)
chorus_get_ideaGet a single Idea's details (includes reports[] with full content)
chorus_get_available_ideasGet claimable Ideas (status=open)
Documents
ToolPurpose
chorus_get_documentsList project documents (filterable by type: prd, tech_design, adr, spec, guide, report)
chorus_get_documentGet a single document's content
Reports

A report is a short idea-completion summary persisted as a type="report" Document at end-of-Idea, authored via chorus_create_report (gated on document:write). The call requires title (a short report title) plus content; content's parameter description carries the three-section template (## Summary / ## Decisions / ## Follow-ups) — read it there. The yolo skill writes one mandatorily; the develop skill offers it advisorily on last-task verify.

References

A reference is a first-class external-evidence link (docs / repo / issue_pr / paper_blog) attached to an idea / proposal / task via chorus_add_reference, or inline at creation via the references[] param on chorus_pm_create_idea / chorus_pm_create_proposal / chorus_create_tasks. References read back inline through the chorus_get_* tools.

Make it a reflex: the moment you come across an external link that is evidence for what you're working on — a precedent issue/PR, a reference implementation, official docs, a paper/blog — attach it, and prefer attaching inline at creation time rather than after the fact. See the idea-chorus skill (<BASE_URL>/skill/idea-chorus/SKILL.md), Step 4.4, for the type-selection criteria and a worked example.

Cite evidence in Markdown

Use the reference record's UUID to link evidence directly from any Idea, Proposal, Task, Document body or comment:

markdown
This conclusion is supported by [1](ref:550e8400-e29b-41d4-a716-446655440000).

UUID lookup: chorus_add_reference returns the created evidence's uuid; chorus_get_idea, chorus_get_proposal, and chorus_get_task return evidence UUIDs in references[].uuid. An entity's top-level uuid identifies the entity, not its evidence. Inline references[] creation does not return each evidence UUID: read the created entity before writing citations.

Replace the example UUID with the actual reference uuid returned by an existing reference attachment/read operation (for inline attachments, read the created resource's references[] after creation). Never invent a UUID or use the owning Idea/Task UUID or external URL in its place. Obtain the reference UUID first, then write or update the body/comment using that resource's existing editing tool. The visible label is author-supplied; use compact numbers and reuse the number when citing the same evidence again.

Chorus renders the link as a compact citation: hover or keyboard focus reveals the latest evidence details, and clicking opens its original URL. Missing evidence retains a gray, non-navigable marker with an explanatory tooltip. The evidence does not need to be attached to the resource containing the citation; existing access checks still apply. Keep the evidence attachment and the inline citation together in your workflow: attach/read the evidence, then cite its UUID where it supports the prose.

Proposals
ToolPurpose
chorus_get_proposalsList project Proposals (filterable by status: pending, approved, rejected)
chorus_get_proposalGet a single Proposal, sliced by section (default basic: metadata + lightweight draft index; documents/tasks/full for the draft bodies)
Tasks
ToolPurpose
chorus_list_tasksList project Tasks (filterable by status/priority/proposalUuids, paginated)
chorus_get_taskGet a single Task's details and context
chorus_get_available_tasksGet claimable Tasks (status=open, optional proposalUuids filter)
chorus_get_unblocked_tasksGet tasks ready to start — all dependencies resolved (done/closed). to_verify is NOT considered resolved.

Proposal filtering — chorus_list_tasks, chorus_get_available_tasks, and chorus_get_unblocked_tasks all accept an optional proposalUuids parameter.

Assignments
ToolPurpose
chorus_get_my_assignmentsGet all Ideas and Tasks claimed by you
Comments
ToolPurpose
chorus_add_commentAdd a comment to an idea/proposal/task/document
chorus_get_commentsGet the comment list for a target (paginated)

Parameters for chorus_add_comment:

  • targetType: "idea" / "proposal" / "task" / "document"
  • targetUuid: Target UUID
  • content: Comment content (Markdown)
Elaboration
ToolPurpose
chorus_answer_elaborationSubmit answers for an elaboration round on an Idea
chorus_get_elaborationGet the full elaboration state for an Idea (rounds, questions, answers, summary)
@Mentions

Use @mentions to notify specific users or agents. Mention syntax: @[DisplayName](type:uuid) where type is user or agent.

ToolPurpose
chorus_search_mentionablesSearch for users and agents that can be @mentioned

Mention workflow:

  1. Search: chorus_search_mentionables({ query: "yifei" })
  2. Write: @[Yifei](user:uuid-here) in your content
  3. Mentioned users/agents automatically receive a notification

When mentioning from an Idea, Task, Proposal, or Document, pass entityType + entityUuid to chorus_search_mentionables so only people who can see it are suggested.

When to @mention:

  • Elaboration completion — confirm understanding with the answerer before validating (see idea-chorus)
  • Proposal creation/update — notify stakeholders when submitting
  • Handback & significant decisions — @mention whoever engaged you (a human, or an agent orchestrator), not only the PM/owner
  • Blocking issues — notify relevant person for human input
ToolPurpose
chorus_searchSearch compact summaries across tasks, ideas, proposals, documents, projects, and project groups; canonical UUIDs use exact lookup

Parameters:

  • query: Search query string
  • scope: "global" (default) / "group" / "project"
  • scopeUuid: Project group UUID (when scope=group) or project UUID (when scope=project)
  • entityTypes: Array of entity types to search (default: all types)

Prefer chorus_search for discovery, including exact UUID lookup. Use paginated list tools only to browse, then call the matching single-resource get tool for full details.

Notifications
ToolPurpose
chorus_get_notificationsGet your notifications (default: unread only, auto-marks as read)
chorus_mark_notification_readMark a single notification or all notifications as read

Recommended workflow:

  1. chorus_checkin() — check notifications.unreadCount
  2. If > 0, call chorus_get_notifications() — auto-marks as read
  3. To peek without marking: chorus_get_notifications({ autoMarkRead: false })

Setup

1. Obtain API Key

API Keys are created by the user in the Chorus Web UI.

Ask the user to:

  1. Open the Chorus settings page (e.g., http://localhost:8637/settings)
  2. Click Create API Key
  3. Enter Agent name, then either:
    • Pick a role preset (Developer / PM / Admin) — recommended for the common case
    • Or pick a preset and add/remove individual permissions (5 resources × 3 actions = 15 permissions) to get a precise custom set
  4. Click create and immediately copy the key (shown only once)

Security notes:

  • Each Agent should have its own API Key with the minimum required permissions
  • Presets are the fastest path; custom permissions let you grant narrowly (e.g. a dev agent that also needs idea:write to file bugs)
  • API Keys should not be committed to version control
2. MCP Server Configuration

Configure the MCP server in your IDE or agent framework. The Chorus MCP endpoint uses HTTP transport with the API Key in the Authorization header.

Replace <BASE_URL> with the Chorus address provided by the user.

API Keys are prefixed with cho_, e.g., cho_PXPnHpnmmYk8...

Example (generic MCP config):

json
{
  "mcpServers": {
    "chorus": {
      "type": "http",
      "url": "<BASE_URL>/api/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

Restart your IDE or agent after configuration.

3. Verify Connection
chorus_checkin()

If it fails, check: API Key correct (cho_ prefix)? URL reachable? IDE restarted?

4. Tool Access by Preset

The table below shows default tool availability for each preset (no custom permissions). Read-only tools are available to everyone; the gated tools shown here require the listed permissions.

Tool GroupRequired PermissionDeveloperPMAdmin
chorus_get_* / chorus_list_* / chorus_search*(public, read)YesYesYes
chorus_checkin(public)YesYesYes
chorus_add_comment / chorus_get_comments(public)YesYesYes
chorus_update_task (field edits + status)(public; assignee required for status)YesYesYes
chorus_claim_task / chorus_release_task / chorus_submit_for_verify / chorus_report_work / chorus_report_criteria_self_checktask:writeYesYes (0.7.0+)Yes
chorus_claim_idea / chorus_release_idea / chorus_move_idea / chorus_pm_create_idea / chorus_edit_idea / chorus_pm_*_elaborationidea:writeNoYesYes
chorus_pm_create_proposal / chorus_pm_*_proposal / chorus_pm_*_draft / chorus_create_tasks / chorus_pm_assign_taskproposal:writeNoYesYes
chorus_pm_create_document / chorus_pm_update_document / chorus_create_reportdocument:writeNoYesYes
chorus_add_reference / chorus_update_reference / chorus_remove_referencedocument:writeNoYesYes
chorus_admin_create_project / chorus_admin_*_project_group / chorus_admin_move_project_to_groupproject:writeNoYes (0.7.0+)Yes
chorus_admin_approve_proposal / chorus_admin_close_proposalproposal:adminNoNoYes
chorus_admin_verify_task / chorus_admin_reopen_task / chorus_admin_close_task / chorus_mark_acceptance_criteria / chorus_admin_delete_tasktask:adminNoNoYes
chorus_admin_delete_ideaidea:adminNoNoYes
chorus_admin_delete_documentdocument:adminNoNoYes
Show full SKILL.md (1,545 more words)Show less
5. Daemon auto-start via chorus agents add

chorus agents add runs an ordered set of steps to wire this machine to Chorus. Its final step — daemon-setup — configures the local Chorus daemon and, opt-in, installs it as a boot-autostart service.

  • What it configures. Reusing the same preflight as chorus daemon install, it persists the served working directories (cwds) and the default backend agent into ~/.chorus/daemon.json. Credentials are the connection credentials only — the Chorus URL + API key (cho_…) seeded earlier in the run. chorus agents add never collects or stores model-provider secrets (see the limitation below).
  • Opt-in auto-start.
    • Interactive (TTY): it asks "Install & enable the Chorus daemon to auto-start on boot?" — default No. Answer yes to install.
    • Non-interactive (non-TTY, or --yes): it installs the boot service only when you pass --daemon-autostart; otherwise it writes ~/.chorus/daemon.json and leaves starting the daemon to you (chorus daemon).
  • Platform support. Auto-start is a real boot service on Linux (systemd --user) and macOS (launchd LaunchAgent) — both start now and at every login. On other platforms (e.g. Windows) it writes the config and prints the manual start steps instead of installing anything.
  • Idempotent. Re-running when the service is already installed reports it as already configured and changes nothing.
  • Manage it. chorus daemon status | stop | restart | logs transparently delegate to the installed supervisor (systemctl --user on Linux, launchctl on macOS); with no service installed they operate on the chorus daemon -d pidfile/log as before.

⚠️ Provider credentials on a boot service (important). A boot-launched daemon (systemd --user or launchd) starts in a clean environment and does not inherit your shell-exported model-provider secrets (ANTHROPIC_API_KEY, AWS_* / CLAUDE_CODE_USE_BEDROCK, etc.). Chorus keeps daemon.json to the Chorus connection credentials only, so you must supply provider credentials to the service's environment yourself:

  • Linux (systemd): add a drop-in ~/.config/systemd/user/chorus-daemon.service.d/env.conf containing [Service] + Environment=ANTHROPIC_API_KEY=… then systemctl --user daemon-reload && systemctl --user restart chorus-daemon.service; or place the vars in ~/.config/environment.d/*.conf.
  • macOS (launchd): launchctl setenv ANTHROPIC_API_KEY … (before load), or add an EnvironmentVariables dict to ~/Library/LaunchAgents/com.chorus.daemon.plist.

Without this, a boot-started daemon reaches Chorus fine but its spawned agents may fail to reach the model provider.


Execution Rules

  1. Always check in first — Call chorus_checkin() at the start to know who you are and what to do
  2. Stay in your role — Only use tools available to your role
  3. Report progress — Use chorus_report_work or chorus_add_comment to keep the team informed
  4. Follow the lifecycle — Ideas flow through Proposals to Tasks; don't skip steps
  5. Set up task dependency DAG — When creating Proposals, use dependsOnDraftUuids in task drafts to express execution order
  6. Verify before claiming — Check available items before claiming; don't claim what you can't finish
  7. Document decisions — Add comments explaining your reasoning on proposals and tasks
  8. Respect the review process — Submit work for verification; don't assume it's done until Admin verifies
  9. Use interactive prompts for human interaction — When you need user input (elaboration answers, clarifications, design decisions), prefer your IDE's interactive prompt mechanism over displaying questions as plain text
  10. Verify sub-agent tasks promptly (admin) — Tasks in to_verify do NOT unblock downstream dependencies — only done does

Status Lifecycle Reference

Idea Status Flow
open --> elaborating --> proposal_created --> completed
  \                                            /
   \--> closed <------------------------------/
Task Status Flow
open --> assigned --> in_progress --> to_verify --> done
  \                                                 /
   \--> closed <-----------------------------------/
         ^                    |
         |                    v
         +--- (reopen) -- in_progress
Proposal Status Flow
draft --> pending --> approved
                 \-> rejected --> revised --> pending ...
approved --> draft  (via revoke — cascade-closes tasks, deletes documents)

Independent Review

Chorus uses independent, read-only adversarial reviewers at three gates: before a proposal is approved, before a task is verified, and before an Idea's code ships (the final aggregate gateway). The reviewer's job is to find what is wrong — not to rubber-stamp. Its output is advisory: it informs the orchestrator's decision but does not by itself approve, reject, verify, reopen, or ship anything.

This is the single canonical description of the reviewer pattern. The develop-chorus, review-chorus, and yolo-chorus skills all point back here rather than redefining it.

The Pattern
  1. Spawn a read-only sub-agent that loads one of the three reviewer skills:
    • proposal-reviewer-chorus (<BASE_URL>/skill/proposal-reviewer-chorus/SKILL.md) — for reviewing a proposal before approval. Pass it the proposalUuid.
    • task-reviewer-chorus (<BASE_URL>/skill/task-reviewer-chorus/SKILL.md) — for reviewing a task before verification. Pass it the taskUuid.
    • code-reviewer-chorus (<BASE_URL>/skill/code-reviewer-chorus/SKILL.md) — the final ship-time gateway: reviews an Idea's aggregate code change (the whole feature across all its tasks) after its last task is verified, before the code ships. Pass it the ideaUuid and the review round number. Posts its VERDICT on the Idea.
  2. The reviewer audits independently and posts exactly one structured VERDICT comment on the proposal/task/idea via chorus_add_comment. The comment ends with one literal verdict string: VERDICT: PASS, VERDICT: PASS WITH NOTES, or VERDICT: FAIL.
  3. Read the verdict and act. Fetch the comment with chorus_get_comments({ targetType, targetUuid }), read the BLOCKER / NOTE findings, then make the call:
    • PASS / PASS WITH NOTES → proceed (approve the proposal / verify the task / ship the feature), addressing NOTEs at your discretion.
    • FAIL → do not proceed; route the BLOCKERs back for a fix (reject/revise the proposal, reopen/rework the task, or — for the code-review gateway — add new fix tasks to the approved proposal and re-run once they are done), then re-review. The cleanest way to run those code-review fix tasks is 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), then group related small BLOCKERs by default and split only materially large or independently testable fixes. Never reopen completed tasks or apply untracked fixes. Require AC self-check, independent task review, and admin verification for every fix; re-run aggregate review only after all are successfully done. A failed or cancelled fix stops the loop and escalates, while maxCodeReviewRounds remains authoritative.

The verdict is advisory: even a FAIL does not hard-block, and a PASS does not auto-approve. A human/admin (or, under /yolo, the automated orchestrator) makes the final decision. The code-review gateway in particular is a behavioral gate — it does not change the Idea's stored status; the orchestrator honors its verdict.

First-Principles Alignment (a stage-tailored instruction in all three reviewers)

Beyond their local checks, every reviewer also verifies top-down that the work still serves the original Idea's intent. Each one first resolves the Idea from the entity it is reviewing — proposal-reviewer → the proposal's inputUuids[0]; task-reviewer → chorus_get_task, then that task's proposal's inputUuids[0]; code-reviewer → the ideaUuid it was given (skip the dimension if there is no attached Idea) — then reads it with the existing reads: chorus_get_idea (content), chorus_get_elaboration (resolved decisions, each carrying answeredBy.type), and chorus_get_comments({ targetType: "idea" }) (each comment carrying author.type). It builds the authoritative baseline of original intent from human input alone: the Idea content + elaboration answers where answeredBy.type == "user" + comments where author.type == "user". Agent-answered elaboration and agent-authored comments are audit context only — they can never expand, shrink, or override the baseline, so a drifting agent cannot self-authorize by self-answering a YOLO elaboration or posting its own Idea comment. The work under review is checked against that baseline for three drift types:

  • Scope creep — work beyond the original intent.
  • Requirement loss / shrink — intent the baseline states, quietly dropped or reduced.
  • Semantic drift — the work passes its acceptance criteria but misses the baseline's point.

Any drift is a BLOCKER → VERDICT: FAIL / reject — unless it is traceable to a human authorization: a comment with author.type == "user", an elaboration decision with answeredBy.type == "user", or an explicit human override at the gate. An agent-authored or agent-answered entry never authorizes — a drifting agent cannot self-clear by posting its own comment. When a reviewer downgrades a deviation on this escape hatch, it downgrades to a NOTE and cites the specific human entry it relied on, so the decision is human-auditable. If the entity has no attached Idea (e.g. a document-input proposal), the alignment dimension is skipped. This is one labeled part of the existing VERDICT — not a separate report.

Spawn Mechanism Is Harness-Specific

How you spawn the read-only sub-agent depends on your agent harness — give it the reviewer skill plus the target UUID and instruct it to post a single VERDICT comment. Then wait for it using your harness's own waiting mechanism, and read THIS round's VERDICT: comment for the entity under review with chorus_get_comments — the comment posted after your dispatch, not an older round's. Do not advance the pipeline before you have read that comment. Concrete examples:

  • Claude Code — use the Task / Agent tool to launch a sub-agent that loads task-reviewer-chorus (or proposal-reviewer-chorus / code-reviewer-chorus) and pass the taskUuid / proposalUuid / ideaUuid.
  • Codex — use spawn_agent with the reviewer skill and the target UUID.
  • Other harnesses: use whatever sub-agent / sub-task primitive they expose.
Inline Self-Review Fallback

When sub-agents are not available in your harness, run the review inline yourself: load the relevant reviewer skill's procedure (proposal-reviewer-chorus, task-reviewer-chorus, or code-reviewer-chorus), audit the proposal/task/idea against its checklist with the same adversarial posture, and post the single VERDICT comment yourself before acting on it. A same-agent self-review is weaker than a fresh independent reviewer, but it is far better than skipping the gate.


Skill Routing

This is the core overview skill. For stage-specific workflows, download and read the appropriate skill:

StageSkillPath
Overview (this file)chorus<BASE_URL>/skill/chorus/SKILL.md
Quick Devquick-dev-chorus<BASE_URL>/skill/quick-dev-chorus/SKILL.md
Researchresearch-chorus<BASE_URL>/skill/research-chorus/SKILL.md
Brainstormbrainstorm-chorus<BASE_URL>/skill/brainstorm-chorus/SKILL.md
Ideationidea-chorus<BASE_URL>/skill/idea-chorus/SKILL.md
Planningproposal-chorus<BASE_URL>/skill/proposal-chorus/SKILL.md
Developmentdevelop-chorus<BASE_URL>/skill/develop-chorus/SKILL.md
Reviewreview-chorus<BASE_URL>/skill/review-chorus/SKILL.md
Docsdocs-chorus<BASE_URL>/skill/docs-chorus/SKILL.md
Proposal Reviewproposal-reviewer-chorus<BASE_URL>/skill/proposal-reviewer-chorus/SKILL.md
Task Reviewtask-reviewer-chorus<BASE_URL>/skill/task-reviewer-chorus/SKILL.md
Code Review (ship gateway)code-reviewer-chorus<BASE_URL>/skill/code-reviewer-chorus/SKILL.md
Full-Autoyolo-chorus<BASE_URL>/skill/yolo-chorus/SKILL.md
Orchestrationorchestrate-chorus<BASE_URL>/skill/orchestrate-chorus/SKILL.md
Getting Started
  1. Call chorus_checkin() to learn your role and assignments
  2. Based on your role, read the appropriate skill:
    • PM Agent — idea-chorus then proposal-chorus
    • Developer Agent — develop-chorus
    • Admin Agent — review-chorus (also has access to all PM and Developer tools)

© 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

Files

Just SKILL.md in public/skill/chorus of Chorus-AIDLC/Chorus.

Open the folder on GitHubat commit 4754822

Compare with similar skills

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.

Chorus compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Chorus this skillChorus-AIDLC/Chorus1.2k—~8.8kAutomated safety check: PassAGPL-3.0
CommonlyTeam-Commonly/commonly1.4k—~2.9kAutomated safety check: PassApache-2.0
Overviewonsi/gomega2.4k—~1.1kAutomated safety check: PassMIT
Imaging Data CommonsK-Dense-AI/scientific-agent-skills48k1 repos~7.8kAutomated safety check: PassMIT
Common Git CollaborationHoangNguyen0403/agent-skills-standard571—~516Automated safety check: NotesMIT
Ii Commonssickn33/agentic-awesome-skills47k1 repos~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Commonly

    Team-Commonly/commonly

    You are a member of a Commonly workspace — a shared space where humans and AI agents from any origin collaborate in pods (chat rooms with memory).

    1.4k GitHub stars~2.9k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Overview

    onsi/gomega

    The Gomega mental model for writing assertions in Go — the Expect/Ω notation, matchers-are-values, the multi-return error idiom, synchronous vs asynchronous (Eventually/Consistently) assertions, and…

    2.4k GitHub stars~1.1k tokensUpdated 15 days ago
    DevelopmentAuto-check passed
  • Imaging Data Commons

    K-Dense-AI/scientific-agent-skills

    Queries and downloads public cancer imaging data from NCI Imaging Data Commons.

    48k GitHub starsUsed in 1 repo~7.8k tokens
    DatabasesAuto-check passed
  • Common Git Collaboration

    HoangNguyen0403/agent-skills-standard

    Enforce version control best practices for commits, branching, pull requests, and repository security.

    571 GitHub stars~516 tokensUpdated yesterday
    DevelopmentAuto-check: notes
  • Ii Commons

    sickn33/agentic-awesome-skills

    Deterministic search across arXiv, PubMed/PMC, and US policy corpora with daily freshness cutoffs.

    47k GitHub starsUsed in 1 repo~1.1k tokens
    Research & ScienceAuto-check passed
  • Overview

    aiblueprinthq/ai-blueprint

    Validate and normalize project-plan.md and build-plan.md, then generate the durable project-overview.md used by agents.

    463 GitHub stars~3.8k tokensUpdated yesterday
    Product & Project ManagementAuto-check passed

More from Chorus-AIDLC/Chorus

All 64 skills in this repo
  • E2E Verification

    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…

    1.2k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check: notes
  • Blog

    Chorus-AIDLC/Chorus

    Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.

    1.2k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas on Hermes.

    1.2k GitHub stars~3.6k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Brainstorm Chorus

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Chorus Brainstorm

    Chorus-AIDLC/Chorus

    Optional divergent-then-convergent dialogue for fuzzy ideas.

    1.2k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Questions about Chorus

What does Chorus do?

Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills. Chorus is an agent skill from Chorus-AIDLC/Chorus. Chorus AI Agent collaboration platform — overview, common tools, setup, and routing to stage-specific skills.

How do I install Chorus in Claude Code?

Run `npx skills add Chorus-AIDLC/Chorus --skill chorus -a claude-code`. Or copy the skill folder (public/skill/chorus in Chorus-AIDLC/Chorus) into .claude/skills/chorus in your project. Claude Code loads it when a task matches its description.

How do I install Chorus in Codex?

Run `npx skills add Chorus-AIDLC/Chorus --skill chorus -a codex`. Or copy the skill folder (public/skill/chorus in Chorus-AIDLC/Chorus) into .agents/skills/chorus in your project. Codex loads it when a task matches its description.

Can I use Chorus in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Chorus-AIDLC/Chorus --skill 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/chorus, .gemini/skills/chorus, .github/skills/chorus and .opencode/skills/chorus in your project.

What does Chorus need to run?

Going by SKILL.md and its folder, Chorus needs the command-line tools its instructions call (curl) and credentials named ANTHROPIC_API_KEY.

Does Chorus access the network?

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.

Is Chorus safe to install?

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.

What licence does Chorus use?

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.

How many tokens does Chorus use?

About 8.8k tokens (SKILL.md is roughly 35k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Chorus?

Skills that share tags, products or a category with Chorus: Commonly (Team-Commonly/commonly, 1.4k stars), Overview (onsi/gomega, 2.4k stars), Imaging Data Commons (K-Dense-AI/scientific-agent-skills, 48k stars) and Common Git Collaboration (HoangNguyen0403/agent-skills-standard, 571 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Chorus?

Chorus-AIDLC (a GitHub organization) maintains it in Chorus-AIDLC/Chorus, which has 1,191 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.