Agent SkillsChorus-AIDLC/Chorus › proposal-reviewer

proposal-reviewer

GitHub

对Chorus提案进行对抗性只读审查,检查完整性、任务粒度及依赖关系。通过批量获取数据后生成包含PASS/FAIL结论的评论,旨在发现PM遗漏的问题而非确认正确性。

packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md Chorus-AIDLC/Chorus

Trigger Scenarios

收到提案UUID并需执行审查 提案提交后需要独立验证

Install

npx skills add Chorus-AIDLC/Chorus --skill proposal-reviewer -g -y
More Options

Non-standard path

npx skills add https://github.com/Chorus-AIDLC/Chorus/tree/main/packages/openclaw-plugin/skills/proposal-reviewer -g -y

Use without installing

npx skills use Chorus-AIDLC/Chorus@proposal-reviewer

指定 Agent (Claude Code)

npx skills add Chorus-AIDLC/Chorus --skill proposal-reviewer -a claude-code -g -y

安装 repo 全部 skill

npx skills add Chorus-AIDLC/Chorus --all -g -y

预览 repo 内 skill

npx skills add Chorus-AIDLC/Chorus --list

SKILL.md

Frontmatter
{
    "name": "proposal-reviewer",
    "license": "AGPL-3.0",
    "metadata": {
        "author": "chorus",
        "version": "0.16.4",
        "category": "project-management",
        "mcp_server": "chorus"
    },
    "description": "Adversarial read-only review of a submitted Chorus proposal — document completeness, task granularity, AC↔requirement coverage, and the dependency DAG. Invoke after a proposal is submitted; ends with a VERDICT comment."
}

Proposal Reviewer Skill

You have been asked to review a submitted Chorus proposal. Your job is not to confirm the proposal is good — it's to find what's wrong with it.

How you were invoked. A PM/orchestrator agent spawned you (via the OpenClaw sessions_spawn tool) and told you to run this skill against a specific proposalUuid. Read it from your task prompt. When you finish, you post one VERDICT: comment back to the proposal — that comment IS your deliverable; the parent reads it.

Tool namespace. Chorus tools come from the connected MCP server under a chorus__ prefix (e.g. chorus__chorus_get_proposal, chorus__chorus_add_comment). Bare names are used below for readability — prepend chorus__ when invoking.

Hard rules (READ-ONLY)

  • You are READ-ONLY. Do NOT edit, write, or create files. Do NOT run Bash. Do NOT modify the proposal drafts, the project, or any entity except posting your one review comment.
  • Keep your comment under 800 characters. PASS items: names only. NOTE items: one-line description. BLOCKER items: evidence + expected/actual.
  • Classify every finding as BLOCKER (blocks implementation) or NOTE (non-blocking). Pseudocode mismatches and cross-doc wording differences are always NOTE.
  • End with a single line beginning VERDICT: followed by exactly one of PASS, PASS WITH NOTES, or FAIL. Has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
  • Round 2+: focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs.
  • Budget rule: if you are running low on turns/time, STOP reading immediately and post your current findings as a comment via chorus_add_comment. Incomplete findings posted are strictly better than no comment at all.
  • Do NOT rubber-stamp. Your value is in finding what the PM missed. Batch all data gathering first, then produce one final comment.

You have two failure patterns. Rubber-stamping: skimming and writing "PASS" without checking substance. Surface-level approval: seeing a well-structured PRD and assuming tasks match, missing requirements gaps, vague AC, or wrong dependencies. The PM who wrote this is an LLM — it produces plausible-looking proposals with systematic blind spots.

What you receive

A proposalUuid (in your task prompt). Fetch and review the full proposal.

Review procedure

Efficiency rule: Gather ALL data in Steps 1–2 before analyzing. Do not alternate between fetching and writing conclusions. Batch your tool calls.

Step 1: Gather context

chorus_get_proposal({ proposalUuid: "<uuid>", section: "full" })
chorus_get_comments({ targetType: "proposal", targetUuid: "<uuid>" })
chorus_get_idea({ ideaUuid: "<idea-uuid>" })
chorus_get_elaboration({ ideaUuid: "<idea-uuid>" })

chorus_get_proposal defaults to section: "basic" (metadata + a lightweight draft index, no bodies). A full draft review needs the document/task content, so pass section: "full" (or fetch section: "documents" and section: "tasks" separately).

Step 2: Review documents — for each document draft, check:

  • Completeness: Does the PRD cover functional, non-functional, error scenarios, and edge cases?
  • Specificity: Are requirements testable? "Should handle errors gracefully" is not testable.
  • Tech feasibility: Does the architecture make sense? Missing auth, race conditions, no error handling?
  • Module contracts: If multiple tasks share interfaces, are return formats, error patterns, and call points defined?
  • Hallucination risk: Flag any specific external detail that looks LLM-fabricated (API signatures, model IDs, SDK versions, CLI flags, config keys, endpoint paths) as NOTE. The PM is an LLM — it confidently invents plausible-looking specifics.
  • Project constraints: If the repo declares project rules in context files (CLAUDE.md / AGENTS.md / .cursorrules, if present), does the proposed approach violate any (stack, structure, dependency bans, i18n/theme conventions)? Conflict → BLOCKER.

Step 3: Review task drafts — for each task draft, check:

  • Granularity: Each task should be cohesive and independently testable. 2–10 AC items is the sweet spot.
  • AC quality: Each criterion must be objectively verifiable by a different agent. "Shows details" is BAD. "Displays order ID, customer name, and status badge" is GOOD.
  • Coverage: Cross-reference task AC against document requirements. Any requirement with NO corresponding AC?
  • Dependencies: Is the DAG correct? Can each task start once its dependencies are done?
  • Integration checkpoints: For DAGs with 4+ tasks, at least one task must be an integration checkpoint whose AC requires end-to-end execution of preceding modules together. If missing, classify as BLOCKER — module-level passes do not guarantee the system works.
  • Hallucination risk: Task descriptions/AC may contain LLM-fabricated specifics. Flag as NOTE — same rule as Step 2.

Step 4: Cross-check

  • Do tasks cover ALL requirements from the documents?
  • Are there scope additions not in the original idea?
  • Are there contradictions between documents and tasks?

Finding classification

BLOCKER — blocks implementation correctness: missing critical AC/NFR coverage; functional scope contradiction between documents; interface design flaw causing runtime errors; incorrect task dependencies.

NOTE — does not block: pseudocode signature mismatch (parameter order, naming); wording differences between PRD and tech design; style/naming suggestions; non-semantic document inconsistencies.

Rules: Pseudocode inconsistencies → always NOTE. Cross-document wording differences → always NOTE. Only semantic contradictions → BLOCKER. VERDICT: has BLOCKERs → FAIL; only NOTEs → PASS WITH NOTES; nothing → PASS.

Round awareness

  • Round 1: full review, normal strictness.
  • Round 2+: focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged before. If all previous BLOCKERs are resolved → VERDICT: PASS (or PASS WITH NOTES if old NOTEs remain). Re-fetch chorus_get_proposal({ proposalUuid, section: "full" }) + chorus_get_comments, diff against the previous round, and stop.

Recognize your own rationalizations

  • "The proposal looks well-structured" — structure is not substance.
  • "The PM probably considered this" — the PM is an LLM. Check it yourself.
  • "There are enough tasks" — count is not coverage. Map requirements to tasks.

Output format (required)

### Review Summary

**PASS (N):** Check-1 name, Check-2 name, ...

**NOTE (M):**
- Note-1: [one-line description]

**BLOCKER (K):**
### Blocker-1: name
**Evidence:** [specific finding]
**Expected:** [what should be there]
**Actual:** [what is there or what is missing]

VERDICT: PASS / PASS WITH NOTES / FAIL

PASS items: names only. NOTE items: one-line. BLOCKER items: full evidence. Total under 800 chars. No preamble. The final line MUST start with VERDICT:.

Post results

Post the full review as a single comment, then you are done:

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

Version History

  • 96a2f67 Current 2026-08-20 02:32

    v0.16.4版本常规发布更新,主要涉及插件和技能的版本统一及文档维护,未变更核心审查逻辑。

  • c08357a 2026-07-25 08:35

Same Skill Collection

.claude/skills/blog/SKILL.md
.claude/skills/e2e-verification/SKILL.md
.claude/skills/openspec-apply-change/SKILL.md
.claude/skills/openspec-archive-change/SKILL.md
.claude/skills/openspec-explore/SKILL.md
.claude/skills/openspec-propose/SKILL.md
.claude/skills/plugin-maintenance/SKILL.md
.claude/skills/pr-workflow/SKILL.md
.claude/skills/release/SKILL.md
packages/chorus-dsh/skills/brainstorm-chorus/SKILL.md
packages/chorus-dsh/skills/chorus/SKILL.md
packages/chorus-dsh/skills/code-reviewer-chorus/SKILL.md
packages/chorus-dsh/skills/develop-chorus/SKILL.md
packages/chorus-dsh/skills/docs-chorus/SKILL.md
packages/chorus-dsh/skills/idea-chorus/SKILL.md
packages/chorus-dsh/skills/openspec-aware-chorus/SKILL.md
packages/chorus-dsh/skills/orchestrate-chorus/SKILL.md
packages/chorus-dsh/skills/proposal-chorus/SKILL.md
packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md
packages/chorus-dsh/skills/quick-dev-chorus/SKILL.md
packages/chorus-dsh/skills/review-chorus/SKILL.md
packages/chorus-dsh/skills/task-reviewer-chorus/SKILL.md
packages/chorus-dsh/skills/yolo-chorus/SKILL.md
packages/chorus-pi/skills/chorus/SKILL.md
packages/chorus-pi/skills/develop/SKILL.md
packages/chorus-pi/skills/docs/SKILL.md
packages/chorus-pi/skills/idea/SKILL.md
packages/chorus-pi/skills/openspec-aware/SKILL.md
packages/chorus-pi/skills/orchestrate/SKILL.md
packages/chorus-pi/skills/proposal/SKILL.md
packages/chorus-pi/skills/quick-dev/SKILL.md
packages/chorus-pi/skills/review/SKILL.md
packages/chorus-pi/skills/yolo/SKILL.md
packages/openclaw-plugin/skills/brainstorm/SKILL.md
packages/openclaw-plugin/skills/chorus/SKILL.md
packages/openclaw-plugin/skills/code-reviewer/SKILL.md
packages/openclaw-plugin/skills/develop/SKILL.md
packages/openclaw-plugin/skills/docs/SKILL.md
packages/openclaw-plugin/skills/idea/SKILL.md
packages/openclaw-plugin/skills/openspec-aware/SKILL.md
packages/openclaw-plugin/skills/orchestrate/SKILL.md
packages/openclaw-plugin/skills/proposal/SKILL.md
packages/openclaw-plugin/skills/quick-dev/SKILL.md
packages/openclaw-plugin/skills/review/SKILL.md
packages/openclaw-plugin/skills/task-reviewer/SKILL.md
packages/openclaw-plugin/skills/yolo/SKILL.md
plugins/chorus/skills/brainstorm/SKILL.md
plugins/chorus/skills/chorus-proposal-reviewer/SKILL.md
plugins/chorus/skills/chorus-task-reviewer/SKILL.md

Metadata

Files
0
Version
96a2f67
Hash
84c64df7
Indexed
2026-07-25 08:35

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 13:39
浙ICP备14020137号-1 $방문자$