Schmock PR Review Skill
Review Checklist
BDD Coverage
- • Every new feature has corresponding
.featurescenarios - • Every bugfix has a regression scenario
- • Step definitions (
.steps.ts) exist and match their.featurefiles - • No orphaned
.featurefiles without step definitions
Code Quality
- • TypeScript strict mode — no
anyabuse, proper generics - • No unnecessary comments or dead code
- • Follows existing codebase patterns and conventions
- • No over-engineering or premature abstractions
- • No security vulnerabilities (injection, XSS, etc.)
Testing
- • Unit tests for complex internal logic
- • BDD tests for behavioral contracts
- • No test regressions — all existing tests still pass
- • Coverage is adequate for changed code
Commits
- • Conventional commit format:
feat:,fix:,chore:, etc. - • Clear, descriptive commit messages
- • Logical commit history (not too granular, not too big)
Package Integrity
- •
bun check:publishpasses (publint + attw) - • No unintended dependency changes
- • Peer dependency ranges are appropriate
- • Exports are correct in
package.json
Review Workflow
- •
Get the PR diff:
bashgh pr diff <number>
- •
Check PR details:
bashgh pr view <number>
- •
Review behavioral changes:
- •Look for added/modified
.featurefiles - •For each behavioral change, verify BDD coverage
- •Check that step definitions match scenarios
- •Look for added/modified
- •
Review code changes:
- •Check TypeScript patterns and types
- •Verify error handling
- •Look for security issues
- •Check for unnecessary complexity
- •
Run tests on the branch:
bashgh pr checkout <number> bun test:all
- •
Provide structured feedback using severity levels
Severity Levels
| Level | Meaning | Action |
|---|---|---|
| Blocker | Must fix before merge | Breaks functionality, missing tests, security issue |
| Suggestion | Should consider | Better approach exists, potential improvement |
| Nit | Style preference | Naming, formatting, minor readability |
Feedback Format
Structure review comments as:
code
**[Blocker/Suggestion/Nit]** filename:line Description of the issue. Suggested fix (if applicable).
Common Review Issues
- •Missing BDD scenario — New feature without
.featurecoverage - •Step mismatch —
.steps.tsdoesn't match.featureexactly - •Type
anyoveruse — Should use proper types or generics - •Missing error handling — Plugin or adapter doesn't handle edge cases
- •Breaking change — Public API change without version bump