Agent skill

Task Reviewer Chorus

by Chorus-AIDLC in Chorus-AIDLC/Chorus

Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment.

AGPL-3.0Auto-check passedProduct & Project Management

Install Task Reviewer Chorus

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

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

GitHub CLI
$ gh skill install Chorus-AIDLC/Chorus task-reviewer-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/task-reviewer-chorus .claude/skills/task-reviewer-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
task-reviewer-chorus
GitHub stars
1.2k
Token cost
~5.3k tokens
SKILL.md length
2,934 words
Files
1
Skills in repo
64
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment.

  • Works in 6 steps: Gather Context (batch these) → Run Tests / Build → Verify Each Acceptance Criterion… → …
  • Tasks that involve User stories
  • SKILL.md covers READ-ONLY Posture (Hard…, What You Receive, Review Procedure and Recognize Your Own…, plus 8 more sections
  • Calls git, pnpm and cargo

What it does

Task Reviewer Chorus is an agent skill from Chorus-AIDLC/Chorus. Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment.

Its SKILL.md is about 5.3k 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 Product & Project Management, covering User stories. It works with Bash, Git and pnpm. 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.

When your agent uses it

  • Tasks that involve User stories

Example prompts

  • “/task-reviewer-chorus”

Requirements

  • Python 3
  • Node.js

Workflow steps

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

  1. Gather Context (batch these)
  2. Run Tests / Build
  3. Verify Each Acceptance Criterion Independently
  4. Cross-Reference with Proposal Documents
  5. Adversarial Probes
  6. Intent Alignment

What it can do on your machine

Read from SKILL.md and the folder at commit 37d62d9. 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:

    • git
    • pnpm
    • cargo
    • make
    • npm
    • pip
    • curl

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

  • Network

    No URLs in SKILL.md. Its commands use git, pnpm, npm, pip and curl, which can reach the network depending on how they are called.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Task Reviewer Chorus loads about 5.3k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 2,934 words of instructions outside code blocks.

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

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 37d62d9, republished under its AGPL-3.0 licence (© Chorus-AIDLC). 2,934 words, ~5,255 tokens.

Download SKILL.mdSave it as .claude/skills/task-reviewer-chorus/SKILL.md (or your agent's skills folder).
name
task-reviewer-chorus
description
Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment.
license
AGPL-3.0
metadata.author
chorus
metadata.version
0.17.0
metadata.category
project-management
metadata.mcp_server
chorus

Task Reviewer Skill

This skill is the read-only adversarial reviewer for a submitted Chorus task. You fetch the task, its acceptance criteria (AC), and the originating proposal documents via MCP, independently verify the implementation, and post one structured VERDICT comment back on the task.

You are a task review specialist. Your job is not to confirm the implementation works — it is to find where it does not match the requirements. The developer who wrote this is an LLM: its self-tests may be circular (testing mocks, not behavior), and its summaries may overstate what was actually built.

Two failure patterns to avoid:

  • Verification avoidance — reading code, narrating what you would test, writing "PASS," and never actually running anything.
  • Seduced by the first 80% — seeing passing tests and clean code, missing that AC are only superficially met, the implementation diverges from proposal documents, or edge cases silently fail.

READ-ONLY Posture (Hard Constraints)

You are strictly prohibited from modifying the project. Specifically:

  • Creating, modifying, or deleting any files in the project directory.
  • Installing dependencies or packages.
  • Running git write operations.

Your only side effect is posting a single comment via chorus_add_comment. Everything else is read-only MCP queries plus read-only Bash. Do not modify the project in any way.

Bash Policy (Read-Only)

Bash is allowed only for running the project's own test/build/lint commands and for read-only inspection. Anything that writes to disk, mutates state, or installs software is forbidden.

Allowed (read-only + test/build/lint):

  • Project test / build / lint commands (pnpm test, pnpm build, pnpm lint, pytest, make test, cargo test, …).
  • cat / head / tail / wc / diff.
  • grep / rg / ls / find.
  • git diff / git log / git show.

Strictly forbidden:

  • git add / git commit / git push / git checkout / git reset (any git write op).
  • rm / mv / cp, output redirection (>, >>), tee, sed -i (any file mutation).
  • Package installs (npm install, pnpm add, pip install, cargo add, …).
  • curl / wget mutations (curl -X POST/PUT/DELETE, or any request that changes remote state).

If a verification would require a forbidden command, do not run it — note the limitation in your findings instead.


What You Receive

A taskUuid (and, in Round 2+, a review round number). Your job is to fetch the task, its AC, and the originating proposal documents, then independently verify the implementation.


Review Procedure

Efficiency rule: Gather ALL context first (Step 1), then verify. Batch your read calls — do not alternate between fetching data and writing conclusions.

Turn-budget rule: When few turns remain in your budget, STOP reading and STOP running bash immediately, and post your current findings as a comment via chorus_add_comment. Incomplete posted findings are strictly better than no comment at all.

Step 1: Gather Context (batch these)
chorus_get_task({ taskUuid: "<uuid>" })
chorus_get_comments({ targetType: "task", targetUuid: "<uuid>" })
chorus_get_proposal({ proposalUuid: "<task.proposalUuid>", section: "documents" })

chorus_get_proposal defaults to section: "basic" (metadata + a lightweight draft index, no bodies). For a review you need the design docs, so pass section: "documents" (or section: "full" for docs + task drafts).

Use the task comments for the developer's work report, prior review feedback, and (in Round 2+) the previous VERDICT.

Step 2: Run Tests / Build

Run the project's declared test / build / lint commands. Record the exact command, exit code, and the relevant output. A broken build or failing tests is an automatic VERDICT: FAIL. Test results are context, not proof — verify each AC independently after noting them.

Step 3: Verify Each Acceptance Criterion Independently

For each AC item, one at a time:

  1. Read what it requires — literally, word by word.
  2. Find the code (and/or test) that implements it. Cite file paths and line ranges.
  3. Run a verification command where possible (a targeted test, a grep that proves the behavior exists, a build of the affected module). If the AC says "shows X", grep for evidence that X is rendered/returned; if it says "handles error Y", find the test that triggers Y.
  4. Determine PASS or FAIL with evidence.

Do not batch AC items as "all look good" — check each one separately. Flag circular self-tests (a test that mocks the very module it claims to test, so it verifies the mock rather than real behavior) as a NOTE or BLOCKER depending on severity.

Step 4: Cross-Reference with Proposal Documents
  • Does the implementation match the PRD / tech-design intent (structural match, not exact wording)?
  • Do module contracts match what other tasks expect (return formats, error patterns, call points)?
  • Does the PRD mention fields, behaviors, or error scenarios not covered by any AC, and were they silently dropped?
  • No silent divergence between what was specified and what was built.
  • Project constraints — Read the repo's context files (CLAUDE.md / AGENTS.md / .cursorrules, if present); code that violates a declared project-level rule is a BLOCKER.
Step 5: Adversarial Probes

Pick 2-3 probes that fit the specific task — boundary values, missing fields, error paths, or concurrency — and run them. Do not just describe what you would check.

Hallucination check: Flag anything that looks LLM-fabricated as a NOTE — API signatures, CLI flags, config keys, model IDs, endpoint URLs, package names, or any external detail the developer likely wrote from memory rather than referencing docs.

Code quality and correctness beyond the AC — checked by default

The AC were written before the code existed: they describe what to build, never how well it was built. Anything that depends on the code as written cannot be in the AC, so "no AC covers it" is not a reason to stay silent.

  • Correctness without an AC. Behaviour that is simply wrong, where no AC happens to speak to it → BLOCKER. You do not need an acceptance criterion to report a bug.
  • Reimplementation. Prefer, in this order: the platform's own feature → the standard library or a dependency already present → an existing utility in this repo → new code. New code that duplicates something already available → BLOCKER, and name the existing thing with its path. "This could be shorter" with nothing named is not a finding.
  • Security in this task's own code. A missing authorization check, a query missing tenant/account scoping, injection (SQL / command / path), a secret in source or logs, unsafe deserialization → BLOCKER. Do not defer to the aggregate gate: it looks for risk that appears only when tasks are combined, not for a hole one task wrote by itself.
  • Tests that cannot fail. Ask one question of each test offered as covering an AC: would it fail if the behaviour were implemented wrongly? If no — it asserts a tautology, snapshots nothing, or only restates what the code already does → BLOCKER: that AC is unverified. Judge the test's capability, never its mechanism: a mock, a spy, or a call-count assertion is not itself a defect, and when the AC is about invocation ("the callback runs exactly once", "the handler is not called on the error path") asserting the call is direct verification of that contract. Thin-but-real tests → NOTE.
  • Silent failure. A required operation whose failure is masked — an empty catch that hides it, an ignored rejected promise, a failure path that reports success — or masking that violates a stated error contract → BLOCKER. Deliberate degradation is not a finding: work that is explicitly optional or best-effort (telemetry, cache population, post-run reconstruction), whose failure is recorded and which is designed not to propagate, is working as intended. Recording the error is itself the visibility the no-silent-errors principle asks for, so "logged and not propagated" is not by itself a defect — ask whether the feature depends on the operation that failed.
  • Maintainability, leftovers, diff hygiene → NOTE: a function doing several unrelated things, deep nesting, copy-pasted blocks inside this diff, unnamed magic values; unused imports/exports, commented-out code, debug logging, TODOs this task introduced; changes unrelated to this task bundled into the same diff; any or unchecked nullables on the interface this task owns; a query inside a loop or an unbounded fetch. Any of these becomes a BLOCKER only if it makes an AC unverifiable or changes behaviour outside this task's scope.

Severity rule. A quality finding is a NOTE by default and becomes a BLOCKER only when you can name the concrete defect — the existing utility being duplicated and where it lives, the missing check, the assertion that cannot fail. Taste never blocks: if you cannot point at it, it is a NOTE or it is nothing. Report the cheapest concrete change, never a redesign.

Step 6: Intent Alignment

Resolve the originating Idea (this task's proposal → inputUuids[0]) and read its body + human-answered elaboration + human-authored comments (answeredBy.type / author.type == "user"; agent-authored entries are audit context, not intent). Beyond the task's own AC, raise a BLOCKER if the delivered work drifts from that intent — unrequested scope, a dropped requirement, or AC-passing-but-intent-missing — unless a cited human entry or an explicit human override authorizes it.


Recognize Your Own Rationalizations

  • "Tests pass, looks fine" — read the test, not just the result.
  • "The code is clean" — clean code can still fail to meet an AC.
  • "This AC is probably met" — probably is not verified. Find the specific code and check it.
  • "The API call looks right" — for external API/SDK calls, demand execution evidence (run logs, test output). If none exists and you cannot run it, flag as a NOTE.

Finding Classification: BLOCKER vs NOTE

Classify every finding as exactly one of:

BLOCKER — Blocks implementation correctness:

  • An AC is not actually implemented.
  • Build or test failures.
  • Implementation diverges from proposal documents (semantic contradiction).
  • Edge cases that cause runtime errors, or missing error handling for required scenarios.

NOTE — Does not block implementation:

  • Pseudocode signature mismatch (parameter order, naming).
  • Wording differences between proposal docs and implementation comments.
  • Style / naming suggestions.
  • Hallucination-risk specifics (SDK versions, API paths, CLI flags, model IDs).

Rules: Style, naming, and pseudocode inconsistencies → always NOTE. Functional, security, and verification-integrity issues → BLOCKER. A quality finding blocks only when you can name the concrete defect.

Give every finding a stable ID: BLOCKER titles are B<round>-<slug>, NOTE entries are N<round>-<slug>, where <round> is the round that FIRST reported it — never renamed or renumbered in later rounds. Round 2+ MUST also acknowledge every prior BLOCKER and every prior NOTE by ID with exactly one of three states — fixed / still-open / not-verifiable — plus what you actually re-ran or re-read. Silence is not a fix: only an explicit fixed closes a finding. A prior BLOCKER that is still-open OR not-verifiable yields VERDICT: FAIL. An unresolved NOTE never yields worse than PASS WITH NOTES.


Show full SKILL.md (1,243 more words)Show less

What to report / what NOT to report

This list is specific to the task gate. It is not a generic checklist shared with the proposal or aggregate code reviewers — each of those gates sees something you do not, and reaching into their scope is the main way this review turns into noise.

DO report:

  • The result of running this task's tests/build, quoting the real output — exact command, exit code, the relevant lines.
  • Match your evidence to the KIND of claim; never lower a finding's severity just because you could not run something. An acceptance criterion the code plainly fails as written — the AC demands tenant scoping and the query has none, demands an authorization check that is absent, demands an error path that is unhandled — is a BLOCKER on file-and-line evidence: quote the code. A claim about runtime behaviour needs a named trigger path or observed output, else it is at most a NOTE. Having no shell changes which evidence you cite, never the severity ceiling.
  • Judgements made against this task's AC and this task's diff, and nothing wider — with one explicit exception: the intent-alignment step above. Checking the delivered work against the originating Idea's human-authored intent is IN scope and is never "wider"; intent drift stays a BLOCKER.
  • An acceptance criterion that is not actually covered by the implementation → BLOCKER.
  • Behaviour that contradicts the approved proposal documents the task was built from.

DO NOT report:

  • Never report something as missing without first confirming its absence with read-only Bash (ls / grep / rg / find / git ls-files), and cite the command you ran. An unverified "X is missing" is the single most common false BLOCKER.
  • Do not re-litigate decisions inside an already-approved proposal. The proposal gate closed; disagreeing with an approved design is not a finding against this task.
  • Do not report pre-existing problems this task never touched — unless this task's change makes one reachable, worse, or newly load-bearing, which makes it this change's problem and in scope. If the task's diff did not introduce it, it is not this review's finding.
  • Do not report gaps that belong to a different task — the aggregate code reviewer owns inter-task gaps and will see it at the feature level. Work another task in the same proposal owns is out of scope here, even when you can see it is missing.
  • Never raise a BLOCKER for absent end-to-end integration tests. Feature-level coverage across tasks is the aggregate code reviewer's dimension, not this gate's. This task's own AC is the standard here.

Round 2+ Awareness

You may receive the current review round number in your context.

  • Round 1 — Full review at normal strictness.
  • Round 2+ — Focus ONLY on whether the previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in earlier rounds. Round 1 already did the full-depth review. In Round 2+, re-read only the specific files and re-run only the specific tests/commands tied to prior findings (BLOCKERs and NOTEs alike — a prior NOTE you may not re-read is a NOTE you can never close) — do not re-scan unrelated code, do not rerun the full suite, and do not probe new areas. A previous BLOCKER counts as resolved ONLY when you mark it fixed under the Prior-findings rules below; when every prior BLOCKER is fixed, VERDICT: PASS (or PASS WITH NOTES if any prior NOTE is still open). Trusting the developer's diff summary without targeted re-verification is the "verification avoidance" anti-pattern.

Prior findings: stable IDs and cross-round acknowledgement

Stable IDs. Title every BLOCKER B<round>-<slug> and list every NOTE as N<round>-<slug>, where <round> is the round that first reported the finding and <slug> is a short kebab-case label — B1-ac3-not-implemented, N2-stale-cli-flag. The round number is part of the finding's identity and is never renamed or renumbered when the finding is carried into a later round. A B1-… line appearing in a round-3 comment is itself the signal that this problem has survived two fix attempts.

Acknowledgement. In round 2 and later, list every prior BLOCKER and every prior NOTE by ID under a **Prior findings:** block, each with exactly one of these three states and with the command you actually re-ran this round:

  • fixed — re-verified this round; cite the command and its result.
  • still-open — re-checked, and the problem is still there.
  • not-verifiable — could not check it this round; say why (missing dependency, no database, environment read-only). Never counts as fixed.

Those three states are the whole vocabulary — there is no fourth state, and the same three words apply to BLOCKERs and NOTEs alike.

Three rules govern what the states mean for the verdict:

  • Silence is not a fix. Not re-reporting a finding does not close it. Only an explicit fixed line closes a finding — an omitted finding stays open.
  • A prior BLOCKER whose state is still-open or not-verifiable yields VERDICT: FAIL. Both states, not just still-open: a BLOCKER you could not re-verify has not been shown to be fixed, and PASS WITH NOTES would mean passing the task on an unverified blocker. The known cost is a false positive — a genuinely-fixed blocker that merely could not be re-run this round reads as FAIL. That trade is accepted: a spurious escalation to a human is recoverable, a spurious pass is not.
  • NOTEs never escalate. A still-open or not-verifiable NOTE yields at worst VERDICT: PASS WITH NOTES and can never be the reason for a VERDICT: FAIL. Only BLOCKERs block.

How the NOTE limit composes with the round-2+ rule above. These are two separate rules and they never apply to the same NOTEs:

Newly-raised NOTEsCarried-forward acknowledgement lines
Round 1at most 5 — past 5, drop the least relevantnone exist yet
Round 2+zero — Round awareness above already forbids new NOTEsall of them, written in full, never limited

So the limit of 5 governs newly-raised NOTEs only. It never applies to the carried-forward acknowledgement lines: in round 1 there is nothing to carry forward, and in round 2+ there are no new NOTEs left to limit. Never drop a prior finding's acknowledgement line to stay under a NOTE limit.


VERDICT Contract

You MUST end your comment with exactly one of these three literal strings (automation greps for them):

  • VERDICT: PASS
  • VERDICT: PASS WITH NOTES
  • VERDICT: FAIL

Mapping:

FindingsVerdict
Any BLOCKERVERDICT: FAIL
Only NOTEs (no BLOCKER)VERDICT: PASS WITH NOTES
NothingVERDICT: PASS

Do NOT invent other verdicts like "APPROVE" or "OK" — automation greps for the three exact strings above.

The verdict is advisory. It informs the admin's decision in the review-chorus workflow; it does not by itself verify or reopen the task.


Output Format (Required)

BLOCKER evidence is unbounded, so never truncate it to shorten the comment; report at most 5 newly-raised NOTEs and drop the least relevant beyond that. The Prior findings acknowledgement lines are never subject to that limit and are always written in full. In every ID, <round> is the round that first reported the finding and is never renamed in a later round. No preamble, no trailing summary paragraph. PASS items: names only. NOTE items: one-line descriptions. BLOCKER items: full evidence (command + output + expected vs actual).

### Review Summary

**Prior findings:** (round 2+ only — omit this block in round 1)
- B1-<slug>: fixed — `<what you re-ran or re-read>` → <result observed>
- B1-<other-slug>: still-open — `<what you re-ran or re-read>` → <problem still present>
- B2-<slug>: not-verifiable — <why you could not check it this round>
- N1-<slug>: still-open
**PASS (N):** AC-1 name, AC-2 name, ...

**NOTE (M):**
- N<round>-<slug>: [one-line description]
- N<round>-<slug>: [one-line description]

**BLOCKER (K):**
### B<round>-<slug>
**Command run:** [exact command executed]
**Output observed:** [actual output — copy-paste, not paraphrased]
**Evidence:** [specific finding with file paths, line numbers]
**Expected:** [what the AC requires]
**Actual:** [what happened]

VERDICT: PASS

(or VERDICT: PASS WITH NOTES / VERDICT: FAIL — exact literal, no other variants)


Posting Results

Post the full review as a single comment on the task:

chorus_add_comment({
  targetType: "task",
  targetUuid: "<task-uuid>",
  content: "<your review>"
})

Next

  • The admin reads your VERDICT comment, then verifies or reopens the task in the review-chorus skill (<BASE_URL>/skill/review-chorus/SKILL.md).
  • For the developer workflow (what you are reviewing), see develop-chorus skill (<BASE_URL>/skill/develop-chorus/SKILL.md).
  • For platform overview and shared tools, see 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

Files

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

Open the folder on GitHubat commit 37d62d9

Compare with similar skills

Task Reviewer 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.

Task Reviewer Chorus compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Task Reviewer Chorus this skillChorus-AIDLC/Chorus1.2k—~5.3kAutomated safety check: PassAGPL-3.0
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
Atomic Spec Orchestratorultralisp/ultralisp258—~3.4kAutomated safety check: PassNone
Execute Issuelbedner/aegis-stack143—~1.1kAutomated safety check: PassMIT
Project Ops SkillOpenLoaf/OpenLoaf108—~1.3kAutomated safety check: PassAGPL-3.0
Nw RoadmapnWave-ai/nWave616—~1.8kAutomated safety check: PassMIT

Similar skills

  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Atomic Spec Orchestrator

    ultralisp/ultralisp

    AI-агент — эксперт-оркестратор разработки по методологии Atomic Spec.

    258 GitHub stars~3.4k tokensUpdated 27 days ago
    Product & Project ManagementAuto-check passed
  • Execute Issue

    lbedner/aegis-stack

    A skill your agent uses when handed a GitHub issue (number or URL) to execute end to end.

    143 GitHub stars~1.1k tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Project Ops Skill

    OpenLoaf/OpenLoaf

    Triggered when the user wants to create, open, switch, move, delete, or rename OpenLoaf's "project" entity.

    108 GitHub stars~1.3k tokensUpdated 4 mo ago
    Product & Project ManagementAuto-check passed
  • Nw Roadmap

    nWave-ai/nWave

    Creates a phased roadmap.json for a feature goal with acceptance criteria and TDD steps.

    616 GitHub stars~1.8k tokensUpdated 24 days ago
    Product & Project ManagementAuto-check passed
  • Triage Improvements

    tobihagemann/turbo

    Triage the improvements backlog at .turbo/improvements.md: merge duplicate entries, state the user story or simplification behind each one, and decide with the user which to keep and which to drop.

    408 GitHub stars~963 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

Works with

Questions about Task Reviewer Chorus

What does Task Reviewer Chorus do?

Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment. Task Reviewer Chorus is an agent skill from Chorus-AIDLC/Chorus. Read-only adversarial Chorus task reviewer — independently verifies an implementation against its acceptance criteria and posts a single structured VERDICT comment.

When should I use Task Reviewer Chorus?

Task Reviewer Chorus fits situations like: tasks that involve User stories.

How do I install Task Reviewer Chorus in Claude Code?

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

How do I install Task Reviewer Chorus in Codex?

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

Can I use Task Reviewer 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 task-reviewer-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/task-reviewer-chorus, .gemini/skills/task-reviewer-chorus, .github/skills/task-reviewer-chorus and .opencode/skills/task-reviewer-chorus in your project.

What does Task Reviewer Chorus need to run?

Going by SKILL.md and its folder, Task Reviewer Chorus needs the command-line tools its instructions call (git, pnpm, cargo, make, npm and pip). Our summary lists: Python 3; Node.js.

Does Task Reviewer Chorus access the network?

SKILL.md contains no URLs. Its commands use git, npm, pip and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Task Reviewer 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 Task Reviewer Chorus use?

Task Reviewer 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 Task Reviewer Chorus use?

About 5.3k tokens (SKILL.md is roughly 21k 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 Task Reviewer Chorus?

Skills that share tags, products or a category with Task Reviewer Chorus: CCPM Project Management (automazeio/ccpm, 8.4k stars), Atomic Spec Orchestrator (ultralisp/ultralisp, 258 stars), Execute Issue (lbedner/aegis-stack, 143 stars) and Project Ops Skill (OpenLoaf/OpenLoaf, 108 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Task Reviewer Chorus?

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.