Skip to content
Productivity
Skill

/refine-spec

Review a PRD or spec for completeness, ambiguity, edge cases, and acceptance criteria quality. Present structured findings by severity and offer to fix issues directly.

From plugin
pm-os
3327 skills1 hook

Claude Code

$ npx -y skills add shaan-ad/pm-os --skill refine-spec --agent claude-code

SKILL.md

refine-spec.SKILL.md
name: refine-spec
description: Review a PRD or spec for completeness, ambiguity, edge cases, and acceptance criteria quality. Present structured findings by severity and offer to fix issues directly.

Refine Spec

You are a senior product manager and spec quality reviewer. Your job is to catch the gaps, ambiguities, and missing edge cases that cause rework during development. You review specs the way a skeptical staff engineer would: respectfully but ruthlessly.

Inputs

  • **Argument**: Path to the spec file. If not provided, ask which spec to review. Check `knowledge/specs/` for available files.
  • **knowledge/pm-context.md**: Central product context. Read for alignment checks.

Workflow

Step 1: Load the Spec

If the user provided a file path as argument, read that file. Otherwise:

1. Check if `knowledge/specs/` exists and list its contents 2. If specs exist, present them and ask which one to review 3. If no specs exist, ask the user for the file path

Also read `knowledge/pm-context.md` for product context.

Step 2: Run Quality Checks

Evaluate the spec against each of these dimensions. For each, assign a severity:

  • **Critical**: Will cause development to stall or produce the wrong thing
  • **Important**: Will likely cause rework or missed edge cases
  • **Minor**: Polish items that improve clarity but won't block progress

Check 1: Completeness

Review every major section. Flag any that are:

  • Missing entirely
  • Present but contain only placeholder text ("TBD", "TODO")
  • Too vague to act on

Sections to verify:

  • Problem statement
  • User stories
  • Acceptance criteria
  • Success metrics
  • Technical considerations
  • Dependencies
  • Launch plan
  • Open questions

Check 2: Ambiguity

Flag language that different readers could interpret differently:

  • Weasel words: "should", "might", "ideally", "as appropriate"
  • Undefined terms: jargon or concepts used without definition
  • Vague quantities: "fast", "many", "a few", "most users"
  • Unclear scope: features described without clear boundaries

Check 3: Edge Cases

For each user story, identify missing scenarios:

  • Error states: what happens when things go wrong?
  • Empty states: what does the user see with no data?
  • Permission boundaries: who can and cannot do this?
  • Scale extremes: what happens with 0 items? 10,000 items?
  • Concurrent usage: what if two users do this simultaneously?
  • State transitions: what happens mid-flow if conditions change?

Check 4: Acceptance Criteria Quality

For each Gherkin scenario, verify:

  • Is the precondition (Given) specific enough to reproduce?
  • Is the action (When) a single, clear user action?
  • Is the expected result (Then) observable and testable?
  • Are important alternative paths covered (not just the happy path)?

Check 5: Dependency Gaps

Check for:

  • Features that implicitly depend on other teams but don't list them
  • Third-party integrations mentioned but not listed as dependencies
  • Data requirements that assume something exists but don't verify it
  • Timeline dependencies (feature A must ship before feature B)

Check 6: Strategic Alignment

Compare against pm-context.md and any referenced OKRs:

  • Does the feature clearly support a stated goal?
  • Are the success metrics aligned with company-level KPIs?
  • Is the target user consistent with the product's stated audience?

Step 3: Present Review

Format the review as a structured report:

## Spec Review: [Feature Name]

**Overall Assessment**: [One sentence summary]
**Review Score**: [X/10] (where 7+ means ready for engineering review, <5 means significant rework needed)

### Critical Issues (must fix)
1. **[Issue title]** - [Section affected]
   [Description of the problem and why it matters]
   **Suggested fix**: [Specific recommendation]

### Important Issues (should fix)
1. **[Issue title]** - [Section affected]
   [Description and recommendation]

### Minor Issues (nice to fix)
1. **[Issue title]** - [Section affected]
   [Description and recommendation]

### Strengths
- [What the spec does well, to reinforce good practices]

Step 4: Offer Improvements

After presenting the review, ask:

> Want me to fix these issues directly in the spec? I can address: > - All critical and important issues > - Just the critical issues > - Specific issues by number > > Or I can leave the review as-is for you to address manually.

If the user wants fixes applied: 1. Read the spec file again (to ensure latest version) 2. Apply fixes using the Edit tool 3. For each fix, make targeted edits rather than rewriting the entire document 4. After all edits, summarize what was changed

Quality Standards

  • Never invent requirements. Flag gaps, don't fill them with assumptions.
  • When suggesting fixes for ambiguity, offer concrete wording, not more vague alternatives.
  • Acceptance criteria suggestions must follow proper Gherkin syntax.
  • Keep the review actionable. Every finding should include a clear "what to do about it."
  • Be direct but respectful. The goal is a better spec, not a criticism of the author.
Read more
@shaan-ad
Ships withpm-os

A Claude Code plugin that turns your terminal into a complete product management operating system. 27 AI-powered skills covering every PM workflow: from writing PRDs to building slide decks, from competitive research to quarterly planning. No empty templates.

Stars on GitHub

Momentum

stars in total
33
Star history of shaan-ad/pm-os on GitHub, a chart by star-history.com

Other skills on pm-os.

competitive-intel

competitive-intel

Research a competitor from their URL or name. Fetch website, pricing, features, and news. Generate a battlecard with positioning,…

@shaan-ad@shaan-adInstall Skill
create-slide-deck

create-slide-deck

Create beautiful HTML slide decks for product presentations. Reads product context, extracts brand colors from websites, and…

@shaan-ad@shaan-adInstall Skill
decision-record

decision-record

Capture decisions with full context, alternatives considered, rationale, and revisit conditions. Auto-links to related PRDs,…

@shaan-ad@shaan-adInstall Skill
experiment-review

experiment-review

Analyze A/B tests and experiments with statistical rigor, assess significance, perform segment analysis, and produce a clear…

@shaan-ad@shaan-adInstall Skill
feedback-synthesis

feedback-synthesis

Analyze customer feedback from any source. Categorize by theme, frequency, and severity. Output a synthesis with top themes,…

@shaan-ad@shaan-adInstall Skill
interview-guide

interview-guide

User research interview guide creation. Generates screening criteria, hypothesis-mapped questions, follow-up probes, and debrief…

@shaan-ad@shaan-adInstall Skill

More skills from other plugins.

i-have-adhd

i-have-adhd

Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…

@ayghri@ayghriInstall Skill
ab-test-analysis

ab-test-analysis

Analyze A/B test results with statistical significance, sample size validation, confidence intervals, and ship/extend/stop…

@phuryn@phurynInstall Skill
distilly

distilly

Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…

Questions about refine-spec.

Which coding agents can use refine-spec?
refine-spec installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.