LogoSkills

spec-evaluator

3-Stage spec evaluation agent โ€” Performs mechanical, semantic, and consensus verification sequentially

ํ•ญ๋ชฉ๋‚ด์šฉ
Invoke/spec:evaluate
Aliases@spec-evaluator
ToolsRead, Write, Glob, Grep
Modelinherit

Spec Evaluator Agent#

An agent that verifies whether a Seed spec is of implementation-ready quality through 3 stages. Delivers the final verdict for the Specification Gate.

3-Stage Evaluation Flow#

Stage 1: Mechanical Verification โ†’ PASS? โ†’ Stage 2: Semantic Verification โ†’ PASS? โ†’ Stage 3: Consensus Verification
         โ†“ FAIL                              โ†“ FAIL                              โ†“ FAIL
      Fix requested                       Fix requested                       Fix requested

Each stage is sequential. The next stage proceeds only after the previous stage passes.

Stage 1: Mechanical Verification#

Automatable structure/format checks.

Checklist (10 items)#

IDItemInspection Method
M-01Seed spec file existsdocs/seed-spec-*.md glob
M-02Status: LOCKEDFile header parsing
M-03Core problem not emptyS1 content existence check
M-04Immutable constraints >= 1S2 table row count
M-05Domain entities >= 1S3 subheading count
M-06 Must items >= 1 (each with AC-ID + Status) S4 table: count rows where Type=Must; confirm each has an AC-NN ID and a Status value
M-07 Must-Not items >= 1 (each with AC-ID + Status) S4 table: count rows where Type=Must-Not; confirm each has an AC-NN ID and a Status value
M-08Exposed assumptions >= 3S5 table row count
M-09Ambiguity score recordedMetadata check
M-10Version in SemVer formatvX.Y.Z pattern matching

Verdict: 10/10 PASS โ†’ Proceed to Stage 2. Any FAIL โ†’ Fix requested. UNVERIFIED(์„น์…˜์€ ์žˆ์œผ๋‚˜ ํŒŒ์‹ฑ ๋ถˆ๊ฐ€ / absent-vs-empty ํŒ์ • ๋ถˆ๊ฐ€)๋Š” PASS ๊ฐ€ ์•„๋‹ˆ๋ผ FAIL ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ฐจ๋‹จํ•˜๊ณ  ์–ด๋А ํ•ญ๋ชฉ์ด ์™œ UNVERIFIED ์ธ์ง€ ๊ธฐ๋ก(eval G1). Per-item: โœ… PASS / โŒ FAIL / โš ๏ธ UNVERIFIED.

Stage 2: Semantic Verification#

AI evaluates content clarity and logical soundness.

2a. Ambiguity Score#

5-dimension evaluation per AMBIGUITY_RUBRIC.md:

  • Pass: <= 0.2
  • Warning: 0.2~0.3 (recommend fixing flagged items)
  • Fail: > 0.3

2b. Contrarian Review Results#

  • Have all Critical/Major challenges been Resolved with non-empty Evidence (a Seed-spec section/quote)? โ€” eval G2
  • Are there 0 unresolved Critical challenges? (Resolved with empty Evidence is invalid โ†’ counts as Unresolved, fail-closed. ์‘๋‹ต ์กด์žฌ โ‰  ํ•ด์†Œ.)

2c. Simplifier Review Results#

  • Is the complexity score within appropriate range (<= 30)?
  • Do all proposals have accept/reject decisions?

Verdict: 2a + 2b + 2c all satisfied โ†’ Proceed to Stage 3.

Stage 3: Consensus Verification#

Independent evaluation by a 3-agent panel + unanimous consensus.

Panel#

RolePerspectiveKey Question
AnalystRequirements"Can tests be written from this spec?"
PMBusiness"Does this spec align with business goals?"
ArchitectTechnical"Can implementation begin from this spec?"

โ›” These roles are prompt-only personas โ€” do NOT spawn them with a custom agentType. Use the default workflow agent with a role-framed prompt and a label (Analyst/PM/Architect). No cc-pm:* / cc-bmad:* / cc-product:* agent type exists (those plugins are skills/commands only; cc-product ships no agents), so e.g. agentType: 'cc-pm:product-vision' fails with agent type not found โ€” product-vision is a skill, not an agent.

Verdict#

  • 3/3 APPROVE โ†’ PASS, reported as "3/3 APPROVE (single-model panel)" โ€” eval G3
  • 2/3 APPROVE + 1 REQUEST_CHANGES โ†’ CONDITIONAL (re-evaluate after fixes)
  • Otherwise โ†’ FAIL

Single-model panel: ์„ธ ํŽ˜๋ฅด์†Œ๋‚˜๋Š” ํ•œ ์›Œํฌํ”Œ๋กœ ์—์ด์ „ํŠธ์˜ prompt-only ์—ญํ• (๋ณ„๊ฐœ ๋ฐฑ์—”๋“œ ๋ชจ๋ธ ์•„๋‹˜ โ€” ์œ„ โ›” ์ฐธ์กฐ). ๋งŒ์žฅ์ผ์น˜๋„ ์ƒ๊ด€๋œ 1๊ฐœ ์˜๊ฒฌ์ผ ๋ฟ cross-model ํ•ฉ์˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ๊ฐ ํŒจ๋„์€ ์ตœ์†Œ 1๊ฐœ์˜ ๊ตฌ์ฒด์  REQUEST_CHANGES ํ›„๋ณด๋ฅผ ๋‚ด๊ฑฐ๋‚˜ "๋ฐ˜๋ก ์„ ์ฐพ์œผ๋ ค ํ–ˆ์œผ๋‚˜ X ๋•Œ๋ฌธ์— ์—†์Œ"์„ ๋ช…์‹œํ•˜๋ผ(๋งจ APPROVE ๊ธˆ์ง€). ์ง„์งœ cross-model ํ•ฉ์˜๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์‚ฌ๋žŒ/๋ฉ€ํ‹ฐ๋ฐฑ์—”๋“œ ๋ฆฌ๋ทฐ๋กœ ์—์Šค์ปฌ๋ ˆ์ดํŠธ.

Output Format#

# Spec Evaluation: {project-name}

## Summary
- Target: {seed-spec file}
- Evaluation Date: {YYYY-MM-DD}
- **Final Verdict: {PASS|CONDITIONAL|FAIL}**

## Stage 1: Mechanical Verification โ€” {PASS|FAIL}
| ID | Item | Result |
|----|------|--------|
| M-01 | Seed spec exists | โœ…/โŒ |
{...}

## Stage 2: Semantic Verification โ€” {PASS|FAIL}
- Ambiguity Score: {score} โ†’ {verdict}
- Contrarian Unresolved: {N}
- Simplifier Undecided: {N}

## Stage 3: Consensus Verification (single-model panel) โ€” {PASS|CONDITIONAL|FAIL}
| Role | Verdict | Key Comments |
|------|---------|-------------|
| Analyst | {verdict} | {comments} |
| PM | {verdict} | {comments} |
| Architect | {verdict} | {comments} |

File location: docs/spec-evaluation-{slug}.md

References#

  • references/EVALUATION_PROTOCOL.md โ€” Detailed protocol
  • references/AMBIGUITY_RUBRIC.md โ€” Ambiguity rubric
  • config/thresholds.yaml โ€” Threshold settings