specimin-review
Review a PR created through the spec/plan/implement flow. Analyzes changes against specification and provides actionable feedback. Only invoke when user explicitly requests to review a PR or review changes.
When & Why to Use This Skill
This Claude skill automates the pull request review process by intelligently analyzing code changes against original feature specifications and implementation plans. It ensures development alignment, identifies missing requirements, and provides structured, actionable feedback to improve code quality and project consistency within a spec-driven development flow.
Use Cases
- Automated Requirement Verification: Automatically check if a Pull Request satisfies all acceptance criteria defined in the feature specification (.spec.md) to ensure no requirements are missed.
- Architectural Alignment: Compare implemented code components and file structures against the pre-approved technical plan (.plan.md) to prevent architectural deviations or scope creep.
- Testing Strategy Validation: Verify that the testing implementation matches the strategy outlined in the plan, ensuring unit, integration, and edge case coverage.
- Structured Feedback Generation: Generate comprehensive, markdown-formatted review reports that categorize issues by severity and provide clear 'Approve' or 'Request Changes' decisions.
| name | "specimin-review" |
|---|---|
| description | "Review a PR created through the spec/plan/implement flow. Analyzes changes against specification and provides actionable feedback. Only invoke when user explicitly requests to review a PR or review changes." |
PR Review Command
Analyze pull request changes against feature specification and provide structured, actionable feedback.
Stage 1: Gather Context
Actions:
- Get current branch:
git rev-parse --abbrev-ref HEAD→ store asBRANCH - Fetch PR info:
bash ${CLAUDE_PLUGIN_ROOT}/.claude-plugin/skills/specimin-review/scripts/get-pr-info.sh "$BRANCH" - Verify feature directory:
.specimin/plans/$BRANCH/must exist - Read context files:
.specimin/plans/$BRANCH/spec.md→ store key acceptance criteria.specimin/plans/$BRANCH/plan.md→ store component list and testing strategy
- Get diff summary:
git diff main...$BRANCH --stat - Get files changed:
git diff main...$BRANCH --name-only
Error Handling:
- No PR found:
Error: No PR found for branch. Run /wrap to create PR first.→ Exit - No feature dir:
Error: Branch not part of spec flow. Use this for Specimin-created PRs only.→ Exit ghnot installed:Error: GitHub CLI required. Install: https://cli.github.com/→ Exit
Checkpoint: Verify all context gathered (PR exists, spec/plan available, diff accessible).
Stage 2: Analyze Changes
Focus Areas (in order of priority):
- Completeness: All acceptance criteria from spec addressed?
- Alignment: Changes match planned components and approach?
- Quality: Code follows project patterns, proper error handling, tests included?
- Scope: Any unplanned changes or scope creep?
Analysis Process:
- Compare acceptance criteria (from spec) to implemented features (from diff)
- Check planned components (from plan) appear in changed files
- Verify testing strategy (from plan) reflected in test files
- Identify gaps, misalignments, or concerns
What to avoid:
- Nitpicking style (trust project conventions)
- Suggesting rewrites without clear justification
- Commenting on every file (focus on issues and gaps)
Stage 3: Generate Review
Write review to /tmp/pr-review.md using format below:
# PR Review: [PR Title]
**Branch**: [branch] | **PR**: [url] | **Status**: [state]
## Summary
[2-3 sentences: what was implemented, overall assessment]
## Acceptance Criteria Coverage
[For each criterion from spec.md:]
- [x] [Criterion]: Implemented in [files]
- [ ] [Criterion]: **MISSING** - [what's needed]
- [~] [Criterion]: **PARTIAL** - [what's done, what's missing]
## Alignment with Plan
[Brief check against plan.md components:]
- ✓ [Component]: Found in [files]
- ⚠ [Component]: [concern or deviation]
- ✗ [Component]: Not found - [files expected]
## Testing Completeness
[Check against plan.md testing strategy:]
- Unit tests: [present/missing] - [details]
- Integration tests: [present/missing] - [details]
- Edge cases: [covered/missing] - [specific gaps]
## Issues Found
[Only if actual issues exist - numbered list:]
1. **[Severity: High/Med/Low]** [Issue description]
- Location: [file:line]
- Impact: [why this matters]
- Suggestion: [specific fix]
[If no issues: "No blocking issues found."]
## Recommendations
[Optional improvements, not blockers:]
- [Specific suggestion with rationale]
## Decision
**[APPROVE / REQUEST CHANGES / COMMENT]**
[If requesting changes: "X items must be addressed before merge."]
[If approving: "Ready to merge once tests pass."]
Checkpoint: Review saved to /tmp/pr-review.md.
Stage 4: Finalize
- Show review summary to user (Summary + Decision sections only)
- Ask: "Save this review to feature directory? (yes/no)"
- If yes:
bash ${CLAUDE_PLUGIN_ROOT}/.claude-plugin/skills/specimin-review/scripts/save-review.sh "$BRANCH" /tmp/pr-review.md - Parse JSON output (includes
review_numberandreview_path) - Confirm: "✓ Review #[review_number] saved to
[review_path]"
Examples
Example 1: Complete Implementation
Spec criteria: User auth with JWT, password reset, session management
Plan components: AuthService, TokenHandler, ResetController, SessionStore
Changed files: services/auth.ts, handlers/token.ts, controllers/reset.ts, stores/session.ts, __tests__/auth.test.ts
Review summary:
## Summary
Implements complete user authentication system with JWT tokens, password reset flow, and session management. All planned components present with comprehensive test coverage.
## Acceptance Criteria Coverage
- [x] Users can login with email/password: Implemented in services/auth.ts:45
- [x] JWT tokens for authentication: Implemented in handlers/token.ts:12
- [x] Password reset via email: Implemented in controllers/reset.ts:78
- [x] Sessions persist 7 days: Configured in stores/session.ts:23
## Alignment with Plan
- ✓ AuthService: Found in services/auth.ts
- ✓ TokenHandler: Found in handlers/token.ts
- ✓ ResetController: Found in controllers/reset.ts
- ✓ SessionStore: Found in stores/session.ts
## Testing Completeness
- Unit tests: Present - 23 test cases covering auth flows
- Integration tests: Present - E2E login/logout/reset tests
- Edge cases: Covered - expired tokens, invalid credentials, concurrent sessions
## Issues Found
No blocking issues found.
## Decision
**APPROVE** - Ready to merge once tests pass.
Example 2: Incomplete Implementation
Spec criteria: Payment processing with Stripe, refund handling, webhook events
Plan components: PaymentService, WebhookHandler, RefundService
Changed files: services/payment.ts, handlers/webhook.ts
Review summary:
## Summary
Implements Stripe payment processing and webhook handling. Refund functionality missing from implementation.
## Acceptance Criteria Coverage
- [x] Process payments via Stripe: Implemented in services/payment.ts:34
- [x] Handle webhook events: Implemented in handlers/webhook.ts:12
- [ ] Support refunds: **MISSING** - No RefundService found
- [~] Retry failed charges: **PARTIAL** - Retry logic present but no exponential backoff
## Alignment with Plan
- ✓ PaymentService: Found in services/payment.ts
- ✓ WebhookHandler: Found in handlers/webhook.ts
- ✗ RefundService: Not found - expected services/refund.ts
## Testing Completeness
- Unit tests: Present - PaymentService covered
- Integration tests: Missing - No webhook event tests found
- Edge cases: Missing - Network failures, invalid webhooks not tested
## Issues Found
1. **[High]** Refund functionality missing
- Location: services/refund.ts (planned but not implemented)
- Impact: Core acceptance criterion not met
- Suggestion: Implement RefundService per plan.md:67
2. **[Medium]** No webhook integration tests
- Location: __tests__/webhook.test.ts (expected per plan testing strategy)
- Impact: Webhook handling untested end-to-end
- Suggestion: Add tests for all webhook event types
3. **[Low]** Retry lacks exponential backoff
- Location: services/payment.ts:89
- Impact: Could overload Stripe API on failures
- Suggestion: Use exponential backoff (e.g., 1s, 2s, 4s delays)
## Decision
**REQUEST CHANGES** - 3 items must be addressed before merge.
Optimization Notes:
- Scripts handle data gathering (deterministic) → 60% token savings
- Model focuses on analysis (cognitive) → better quality
- Structured format → consistent, actionable feedback
- Context-aware (spec/plan) → meaningful review vs generic code review
- Prioritized (completeness > alignment > quality > style) → efficient attention allocation
Research-backed: Structured prompting (+13.79% SCoT), minimal context (CGRAG 4x), verification stages (Reflexion 91%), token efficiency (ADIHQ -39%)