spec-critique

Specification Critique Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "spec-critique" with this command: npx skills add oimiragieo/agent-studio/oimiragieo-agent-studio-spec-critique

Specification Critique Skill

Overview

Critically review specification documents for accuracy, completeness, and feasibility. Use extended thinking to find issues BEFORE implementation begins.

Core principle: Use extended thinking (deep analysis). Find problems BEFORE implementation.

When to Use

Always:

  • After spec writing is complete

  • Before implementation planning begins

  • When spec involves external integrations

  • For complex features with multiple components

Exceptions:

  • Simple specs for trivial changes

  • Specs already reviewed by another agent

The Iron Law

NO IMPLEMENTATION WITHOUT SPEC CRITIQUE FOR COMPLEX TASKS

Complex tasks (external integrations, multi-service changes) must have spec critique.

Inputs Required

Before critiquing, ensure you have:

  • spec.md - The specification to critique

  • Requirements document - Original user requirements

  • Project context - Tech stack, patterns

Workflow

Phase 1: Load All Context

Read the spec

cat .claude/context/specs/[task-name]-spec.md

Read original requirements

cat .claude/context/requirements/[task-name].md

Read project context

cat .claude/context/tech-stack.md

Understand:

  • What the spec claims

  • What the user originally requested

  • What patterns exist in the codebase

Phase 2: Deep Analysis (USE EXTENDED THINKING)

CRITICAL: Use extended thinking for this phase. Think deeply about:

Technical Accuracy

Compare spec against requirements and codebase:

  • Package names: Does spec use correct package names?

  • Import statements: Do imports match API patterns?

  • API calls: Do function signatures match documentation?

  • Configuration: Are env vars and config options correct?

Check for common spec errors:

  • Wrong package name (e.g., "react-query" vs "@tanstack/react-query")

  • Outdated API patterns (e.g., using deprecated functions)

  • Incorrect function signatures (e.g., wrong parameter order)

  • Missing required configuration (e.g., missing env vars)

Flag any mismatches.

Completeness

Check against requirements:

  • All requirements covered? - Each requirement should have implementation details

  • All acceptance criteria testable? - Each criterion should be verifiable

  • Edge cases handled? - Error conditions, empty states, timeouts

  • Integration points clear? - How components connect

Flag any gaps.

Consistency

Check within spec:

  • Package names consistent - Same name used everywhere

  • File paths consistent - No conflicting paths

  • Patterns consistent - Same style throughout

  • Terminology consistent - Same terms for same concepts

Flag any inconsistencies.

Feasibility

Check practicality:

  • Dependencies available? - All packages exist and are maintained

  • Infrastructure realistic? - Setup will work

  • Implementation order logical? - Dependencies before dependents

  • Scope appropriate? - Not over-engineered, not under-specified

Flag any concerns.

Requirements Alignment

Cross-reference with requirements:

  • Verified information used? - Spec should use researched facts

  • Unverified claims flagged? - Any assumptions marked clearly

  • Gotchas addressed? - Known issues handled

  • Recommendations followed? - Requirements suggestions incorporated

Flag any divergences.

Phase 3: Catalog Issues

Create a list of all issues found:

Issues Found

1. [SEVERITY: HIGH] Package name incorrect

  • Spec says: "[incorrect]"
  • Should be: "[correct]"
  • Location: Line 45, Requirements section

2. [SEVERITY: MEDIUM] Missing edge case

  • Requirement: "Handle connection failures"
  • Spec: No error handling specified
  • Location: Implementation Notes section

3. [SEVERITY: LOW] Inconsistent terminology

  • Issue: Uses both "memory" and "episode" for same concept
  • Location: Throughout document

Phase 4: Fix Issues

For each issue found, fix it directly in the spec:

For each fix:

  • Make the change in spec

  • Verify the change was applied

  • Document what was changed

Phase 5: Create Critique Report

Spec Critique Report

Spec: [spec-name] Date: [timestamp]

Summary

CategoryStatusIssues
Technical AccuracyPASS/FAIL[count]
CompletenessPASS/FAIL[count]
ConsistencyPASS/FAIL[count]
FeasibilityPASS/FAIL[count]
Requirements AlignmentPASS/FAIL[count]

Issues Found and Fixed

High Severity

  1. [Issue] - FIXED: [what was changed]

Medium Severity

  1. [Issue] - FIXED: [what was changed]

Low Severity

  1. [Issue] - FIXED: [what was changed]

No Issues Found (if applicable)

Spec is well-written with no significant issues found.

Confidence Level

[HIGH/MEDIUM/LOW]

Recommendations

  • [Any remaining concerns or suggestions]

Phase 6: Verify Fixes

After making changes:

Verify spec is still valid markdown

head -50 .claude/context/specs/[task-name]-spec.md

Check key sections exist

grep -E "^##? Overview" spec.md grep -E "^##? Requirements" spec.md grep -E "^##? Success Criteria" spec.md

Severity Guidelines

HIGH - Will cause implementation failure:

  • Wrong package names

  • Incorrect API signatures

  • Missing critical requirements

  • Invalid configuration

MEDIUM - May cause issues:

  • Missing edge cases

  • Incomplete error handling

  • Unclear integration points

  • Inconsistent patterns

LOW - Minor improvements:

  • Terminology inconsistencies

  • Documentation gaps

  • Style issues

  • Minor optimizations

Category Definitions

  • Accuracy: Technical correctness (packages, APIs, config)

  • Completeness: Coverage of requirements and edge cases

  • Consistency: Internal coherence of the document

  • Feasibility: Practical implementability

  • Alignment: Match with original requirements

Verification Checklist

Before completing spec critique:

  • All sections analyzed with extended thinking

  • Technical accuracy verified

  • Completeness checked against requirements

  • Consistency verified throughout spec

  • Feasibility assessed

  • All issues cataloged with severity

  • All high/medium issues fixed

  • Critique report created

  • Spec still valid after fixes

Extended Thinking Prompt

When analyzing, think through:

"Looking at this spec, I need to deeply analyze it against the requirements...

First, let me check all package names. The requirements mention [X], but the spec says [Y]. This is a mismatch that needs fixing.

Next, looking at the API patterns. The requirements show initialization requires [steps], but the spec shows [different steps]. Another issue.

For completeness, the requirements mention [X, Y, Z]. The spec covers X and Y but I don't see Z addressed anywhere. This is a gap.

Looking at consistency, I notice '[term1]' and '[term2]' used interchangeably. Should standardize on one term.

For feasibility, the setup seems correct. The configuration matches.

Overall, I found [N] issues that need fixing before this spec is ready for implementation."

Common Mistakes

Surface-Level Review

Why it's wrong: Skimming misses critical issues.

Do this instead: Use extended thinking. Analyze each section deeply.

Reporting Without Fixing

Why it's wrong: Just listing issues doesn't improve the spec.

Do this instead: Fix issues directly. Make the spec better.

Integration with Other Skills

This skill works well with:

  • spec-writing: Provides the spec to critique

  • complexity-assessment: Helps determine if critique is needed

  • debugging: Use if spec critique reveals code issues

Iron Laws

  • NEVER approve a specification that contains contradictions, even minor ones

  • ALWAYS surface hidden assumptions explicitly — they are as important as stated requirements

  • NEVER let scope creep go unquestioned in a spec review

  • ALWAYS validate edge cases and error scenarios before approving

  • NEVER critique implementation approach — focus only on specification completeness and consistency

Anti-Patterns

Anti-Pattern Why It Fails Correct Approach

Approving specs with contradictions Downstream implementation resolves contradictions incorrectly Flag all contradictions, even minor ones, before approval

Missing hidden assumptions Assumptions become mismatched requirements during implementation Explicitly surface every assumption the spec relies on

Skipping edge case review Error scenarios discovered too late during implementation Validate all boundary conditions and error paths in the spec

Critiquing implementation details Distracts from specification quality; spec defines WHAT not HOW Focus critique on completeness, consistency, and testability

Accepting vague success criteria Delivery cannot be verified as complete Require measurable, testable acceptance criteria for every requirement

Memory Protocol

Before starting: Read .claude/context/memory/learnings.md

After completing:

  • New pattern -> .claude/context/memory/learnings.md

  • Issue found -> .claude/context/memory/issues.md

  • Decision made -> .claude/context/memory/decisions.md

ASSUME INTERRUPTION: If it's not in memory, it didn't happen.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

filesystem

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

slack-notifications

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

chrome-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

text-to-sql

No summary provided by upstream source.

Repository SourceNeeds Review