Reviewing Specifications and Policies
Purpose
Specs ship bugs before code does. A missing edge case in a PRD becomes a hotfix in production; an unstated assumption in a policy becomes a compliance incident. This skill performs a structured review of specification artifacts so gaps are surfaced before implementation begins, when changes cost minutes instead of weeks.
The skill applies to product requirement docs, RFCs, technical design docs, internal policies, regulatory checklists, and Figma planning files. Output is a prioritized gap report — not a rewrite. Authors keep ownership; reviewers surface what's missing or contradictory.
When to use this skill
- A user shares a spec/PRD/RFC and asks for review, audit, or "is this ready?"
- A Figma URL appears in planning context (not pure design context — those go to
reviewing-design-fidelity)
- A user asks to verify a doc against a known policy ("does this comply with our refund policy?", "check against GDPR section X")
- A user mentions terms like 기획서, 요구사항, 정책 검토, spec review, requirements audit, PRD review
When NOT to use
- Generating a new spec from scratch → use
superpowers:brainstorming
- Reviewing implemented code against a spec → use
superpowers:requesting-code-review
- Comparing built UI to a Figma file → use
reviewing-design-fidelity
Workflow
1. Gather sources
Identify and read every input artifact before analysis. Sources may include:
- Markdown/text files (read directly via
Read)
- External URLs (use
WebFetch for public docs; ask user to paste content for internal-only links)
- Figma URLs — use
mcp__plugin_figma_figma__get_design_context for the structured content and mcp__plugin_figma_figma__get_screenshot for the visual context. Frames in Figma planning files often contain user flows, copy decks, and acceptance criteria that don't appear in any text doc. See references/figma-spec-extraction.md for extraction patterns.
- Reference policies the spec must comply with — read these first so review dimensions align with constraints
If sources are incomplete (e.g., user mentions "the auth policy" without sharing it), pause and ask before proceeding. A review against assumed policy is worse than no review.
2. Build the review matrix
Apply the eight review dimensions described in references/review-dimensions.md:
- Completeness — every described behavior has acceptance criteria
- Consistency — no contradictions between sections, glossary terms used uniformly
- Edge cases — boundary, null, concurrency, failure modes considered
- Policy compliance — every applicable policy is acknowledged and satisfied
- Testability — each requirement has an unambiguous pass/fail definition
- Stakeholder coverage — admin, end-user, system, operator perspectives all addressed
- State and lifecycle — initial, intermediate, terminal, recovery states defined
- Ambiguity — vague quantifiers ("fast", "reasonable", "many") flagged
Each dimension produces zero or more findings. A finding is a concrete, quotable gap — not a vibe.
3. Prioritize findings
Categorize each finding by impact:
- Blocker — implementation cannot proceed safely without resolution (missing critical behavior, policy violation, contradictory requirements)
- Major — implementation can proceed but will likely produce defects or rework (vague acceptance criteria, missing edge case, untested state)
- Minor — clarity/quality improvement, no implementation risk (terminology, formatting, redundancy)
Skip "Nit" / "Style" — those drown out signal. Authors will polish on their own pass.
4. Produce the report
Use the report template in references/report-template.md. Brief excerpt of the structure:
# Spec Review: <doc title>
## Summary
- Sources reviewed: <list>
- Blockers: N | Major: N | Minor: N
- Top 3 risks if shipped as-is: ...
## Blockers
### [B-1] <short title>
Quote: "<exact text from spec>"
Gap: <what's missing or wrong>
Suggestion: <minimal change to resolve>
## Major
### [M-1] ...
## Minor
### [N-1] ...
## Out of scope (flagged for separate review)
- ...
Quotes matter. A reviewer who cannot point to the exact phrase being critiqued is critiquing their own interpretation, not the spec.
Principles
- Audit, don't rewrite. Surface gaps; let the author decide the fix.
- Cite the source. Every finding references the exact text or Figma frame ID being critiqued.
- Prioritize ruthlessly. A 50-finding report goes ignored. A 5-blocker report gets fixed.
- Distinguish observation from opinion. "Section 3 contradicts Section 7" is observation. "Section 3 is poorly written" is opinion — skip it unless ambiguity is the actual finding.
- Acknowledge what's good. A short "Strengths" note in the summary signals the reviewer engaged with the substance, not just the gaps.
Detailed references
Load these only when working through the relevant phase:
references/figma-spec-extraction.md — extracting structured content from Figma planning files (frame conventions, comment threads, decision pins)
references/review-dimensions.md — full descriptions and example findings for the eight review dimensions
references/report-template.md — annotated template with example findings showing good vs weak phrasing
1---2name: reviewing-spec-and-policy3description: Reviews product specs, requirements docs, RFCs, PRDs, and policy documents from text, markdown, or Figma. Use for completeness, consistency, edge-case coverage, ambiguity, policy conflicts, or compliance gaps. Triggers on "이 기획서 검토해줘", "스펙 리뷰", "정책 검토", "review this PRD", "is this complete?", "이 기획대로 구현하면 빠진게 뭐가 있을까", "스펙 갭", "요구사항 누락", or whenever a Figma URL is shared in a planning context. Triggers even when the requirement reads as a single concise sentence (e.g. "X should default to inactive and be activatable from detail"); concise requirements hide unstated questions about default values for existing data, role/permission interactions, and state-transition edges that a structured audit surfaces in minutes. Reads sources, runs a multi-dimensional review, returns a prioritized gap report. Distinct from brainstorming (generates new designs) and reviewing-design-fidelity (compares impl vs design); this audits an existing artifact.4---56# Reviewing Specifications and Policies78## Purpose910Specs ship bugs before code does. A missing edge case in a PRD becomes a hotfix in production; an unstated assumption in a policy becomes a compliance incident. This skill performs a structured review of specification artifacts so gaps are surfaced **before** implementation begins, when changes cost minutes instead of weeks.1112The skill applies to product requirement docs, RFCs, technical design docs, internal policies, regulatory checklists, and Figma planning files. Output is a prioritized gap report — not a rewrite. Authors keep ownership; reviewers surface what's missing or contradictory.1314## When to use this skill1516- A user shares a spec/PRD/RFC and asks for review, audit, or "is this ready?"17- A Figma URL appears in planning context (not pure design context — those go to `reviewing-design-fidelity`)18- A user asks to verify a doc against a known policy ("does this comply with our refund policy?", "check against GDPR section X")19- A user mentions terms like 기획서, 요구사항, 정책 검토, spec review, requirements audit, PRD review2021## When NOT to use2223- Generating a new spec from scratch → use `superpowers:brainstorming`24- Reviewing implemented code against a spec → use `superpowers:requesting-code-review`25- Comparing built UI to a Figma file → use `reviewing-design-fidelity`2627## Workflow2829### 1. Gather sources3031Identify and read every input artifact before analysis. Sources may include:3233- Markdown/text files (read directly via `Read`)34- External URLs (use `WebFetch` for public docs; ask user to paste content for internal-only links)35- Figma URLs — use `mcp__plugin_figma_figma__get_design_context` for the structured content and `mcp__plugin_figma_figma__get_screenshot` for the visual context. Frames in Figma planning files often contain user flows, copy decks, and acceptance criteria that don't appear in any text doc. See `references/figma-spec-extraction.md` for extraction patterns.36- Reference policies the spec must comply with — read these first so review dimensions align with constraints3738If sources are incomplete (e.g., user mentions "the auth policy" without sharing it), pause and ask before proceeding. A review against assumed policy is worse than no review.3940### 2. Build the review matrix4142Apply the eight review dimensions described in `references/review-dimensions.md`:43441. **Completeness** — every described behavior has acceptance criteria452. **Consistency** — no contradictions between sections, glossary terms used uniformly463. **Edge cases** — boundary, null, concurrency, failure modes considered474. **Policy compliance** — every applicable policy is acknowledged and satisfied485. **Testability** — each requirement has an unambiguous pass/fail definition496. **Stakeholder coverage** — admin, end-user, system, operator perspectives all addressed507. **State and lifecycle** — initial, intermediate, terminal, recovery states defined518. **Ambiguity** — vague quantifiers ("fast", "reasonable", "many") flagged5253Each dimension produces zero or more findings. A finding is a concrete, quotable gap — not a vibe.5455### 3. Prioritize findings5657Categorize each finding by impact:5859- **Blocker** — implementation cannot proceed safely without resolution (missing critical behavior, policy violation, contradictory requirements)60- **Major** — implementation can proceed but will likely produce defects or rework (vague acceptance criteria, missing edge case, untested state)61- **Minor** — clarity/quality improvement, no implementation risk (terminology, formatting, redundancy)6263Skip "Nit" / "Style" — those drown out signal. Authors will polish on their own pass.6465### 4. Produce the report6667Use the report template in `references/report-template.md`. Brief excerpt of the structure:6869```70# Spec Review: <doc title>7172## Summary73- Sources reviewed: <list>74- Blockers: N | Major: N | Minor: N75- Top 3 risks if shipped as-is: ...7677## Blockers78### [B-1] <short title>79Quote: "<exact text from spec>"80Gap: <what's missing or wrong>81Suggestion: <minimal change to resolve>8283## Major84### [M-1] ...8586## Minor87### [N-1] ...8889## Out of scope (flagged for separate review)90- ...91```9293Quotes matter. A reviewer who cannot point to the exact phrase being critiqued is critiquing their own interpretation, not the spec.9495## Principles9697- **Audit, don't rewrite.** Surface gaps; let the author decide the fix.98- **Cite the source.** Every finding references the exact text or Figma frame ID being critiqued.99- **Prioritize ruthlessly.** A 50-finding report goes ignored. A 5-blocker report gets fixed.100- **Distinguish observation from opinion.** "Section 3 contradicts Section 7" is observation. "Section 3 is poorly written" is opinion — skip it unless ambiguity is the actual finding.101- **Acknowledge what's good.** A short "Strengths" note in the summary signals the reviewer engaged with the substance, not just the gaps.102103## Detailed references104105Load these only when working through the relevant phase:106107- `references/figma-spec-extraction.md` — extracting structured content from Figma planning files (frame conventions, comment threads, decision pins)108- `references/review-dimensions.md` — full descriptions and example findings for the eight review dimensions109- `references/report-template.md` — annotated template with example findings showing good vs weak phrasing