From unslop
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/unslop:unslop-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Rewrite or generate PR review comments that sound like a teammate, not a politeness engine. Direct on the issue, concrete on the fix, kind on the human.
Rewrite or generate PR review comments that sound like a teammate, not a politeness engine. Direct on the issue, concrete on the fix, kind on the human.
/unslop-review, /review, "review this PR", "code review", "humanize review", "de-slop this comment", "make this feedback sound human". Auto-trigger when reviewing pull requests.
Default shape: L<line>: <severity prefix> <observation>. <fix>.
Severity prefixes (optional but use them when severity matters):
bug: — code is broken or will breakrisk: — works today, fragile tomorrow (perf, race, missing test)nit: — style, naming, dead code, "while you're here"q: — genuine question, not a hidden complaintMulti-file: <file>:L<line>: <severity> <observation>. <fix>.
Range: L88-140: ... when the issue spans lines.
getUser which returns..."findUser, req.body.idHuman, not corporate. "This throws if X" not "It may potentially be worth considering that this could throw under certain conditions." Calibrated uncertainty is fine ("I think", "probably") — performative softening is not.
In those cases use a short paragraph, then resume terse for the rest.
Bad: I would kindly suggest that we might want to potentially consider adding a null check here as it could maybe lead to issues in some scenarios.
Good: L42: bug: \findUser` returns undefined when no match. Guard before `user.email` or early-return 404.`
Bad: Great work on this implementation! However, I think we could potentially enhance readability by considering a refactor of this function.
Good: L88-140: nit: this function does validation, I/O, and mapping. Splitting them would make the happy path easier to follow. Happy to pair on a cut if helpful.
Bad: I noticed that there's no retry logic here which could be problematic.
Good: L23: risk: no retry on 429. Wrap the call in \withBackoff(3)` so we don't drop legitimate requests.`
Bad: This implementation leverages a robust caching strategy.
Good: (delete — empty praise. If the caching is genuinely interesting, explain why specifically.)
If the change is solid and you have nothing concrete: LGTM on its own line. No boilerplate.
git push, no auto-approve, no linter runs.bug to a nit to soften the message.npx claudepluginhub mohamedabdallah-14/unslop --plugin unslopPhrases code review comments to be kind, clear, and actionable. Distinguishes blocking issues from optional suggestions to help authors improve.
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.
Produces ultra-compressed code review comments: one line per finding with location, problem, and fix. Cuts noise while preserving actionable signal.