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.
npx claudepluginhub melodic-software/claude-code-plugins --plugin soft-skillsThis skill is limited to using the following tools:
Generate constructive code review comments using the Conventional Comments format for clarity and professionalism.
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.
Generates terse, actionable code review comments in 'L<line>: <problem>. <fix>.' format. Cuts noise from PR feedback, preserves signal. Auto-triggers on pull requests.
Share bugs, ideas, or general feedback.
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 taxonomy