From soft-skills
Generates well-structured code review comments in Conventional Comments format for clear, actionable PR feedback. Classifies as praise/nitpick/suggestion/issue/question/thought with blocking/non-blocking decorations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/soft-skills:review-commentThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Generate constructive code review comments using the Conventional Comments format for clarity and professionalism.
Generate constructive code review comments using the Conventional Comments format for clarity and professionalism.
Based on the user's description of an issue or observation, generate a well-formatted code review comment.
Ask the user for:
If the user has already provided this information, proceed directly to generating the comment.
Determine the appropriate label:
| Label | Use when... |
|---|---|
praise | Highlighting something done well |
nitpick | Minor style or preference issue |
suggestion | Improvement idea, not required |
issue | Bug or problem that needs fixing |
question | Need clarification or understanding |
thought | Sharing perspective, no action needed |
Determine decoration:
(blocking) - Must fix before merge(non-blocking) - Optional, author can ignore(if-minor) - Only if it's a quick fixFormat: [label] (decoration): [subject]
## Review Comment
**Label:** [label]
**Decoration:** (blocking/non-blocking)
**Location:** [file:line if known]
---
### Comment
**[label] ([decoration]):** [Brief subject line]
[Explanation of why this matters]
[Suggested fix if applicable]
---
### Alternative Phrasings
If you'd like different tone options:
**More direct:**
> [Direct version]
**More gentle:**
> [Softer version]
---
### Tips
- [Any context about how this might be received]
- [Alternative approaches if the author disagrees]
User input: "They're not handling null when the user doesn't exist"
Generated comment:
**issue (blocking):** Null pointer exception when user not found
`getUserById` can return `undefined` when the user doesn't exist, but we're accessing `.name` directly without a check.
This will crash the application when someone tries to look up a deleted user.
**Suggested fix:**
```javascript
const user = getUserById(id);
if (!user) {
throw new UserNotFoundError(id);
}
return user.name;
```
User input: "Variable names are kind of vague"
Generated comment:
**nitpick (non-blocking):** Consider more descriptive variable names
`x` and `tmp` don't convey what these values represent. Names like `userCount` and `pendingRequests` would make this easier to understand at a glance.
No action required if you prefer to keep them - just a readability thought.
User input: "Really clean error handling"
Generated comment:
**praise:** Excellent error handling coverage
Love how you've handled each error case explicitly with meaningful error messages. This will make debugging production issues much easier. The separation of retriable vs. fatal errors is especially nice.
The generated comment should:
code-review-communication skill - Full frameworks for code reviewreferences/conventional-comments.md - Complete label taxonomynpx claudepluginhub melodic-software/claude-code-plugins --plugin soft-skillsPhrases code review comments to be kind, clear, and actionable. Distinguishes blocking issues from optional suggestions to help authors improve.
Rewrites code review comments to sound like a human teammate by cutting AI throat-clearing, delivering direct line locations, issues, and concrete fixes. Use for PR reviews.
Provides frameworks like Conventional Comments for clear PR feedback, strategies for handling disagreements, and tips for constructive code reviews without defensiveness.