unslop-review — скилл для Claude Code: что делает и как установить
Переписывает комментарии к ревью кода, убирая шаблонную вежливость и корпоративные обороты нейросетей. Помогает оставить в замечаниях точные строки и готовые исправления.
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a claude-codeЧто делает unslop-review
Скилл превращает многословные замечания нейросетей в лаконичные реплики живого коллеги. Он срезает шаблонные фразы вроде «Я заметил…» и убирает дежурную вежливость перед критикой. Агент сразу даёт решение.
Базовый формат ответа строится по схеме L<строка>: <префикс> <наблюдение>. <исправление>. Для разметки применяются метки bug: для сломанного кода и risk: для скрытых дефектов. Мелкие правки метятся как nit:, а вопросы получают тег q:. Если код в порядке, скилл выдаёт ровно LGTM.
Развёрнутый текст остаётся только для проблем безопасности и архитектурных споров. Скилл готовит комментарии исключительно для копирования. Он не делает коммитов и не запускает линтер.
Какие задачи решает
- убрать корпоративные штампы и шаблонную вежливость из ревью
- сократить замечания до номера строки и конкретного фикса
- классифицировать правки по префиксам
bug:,risk:,nit:иq: - отформатировать комментарии в готовый список для вставки в пулл-реквест
Примеры запросов агенту
- Проведи ревью этого PR через
/unslop-review - Перепиши замечания к пулл-реквесту, убрав дежурную вежливость
- Сделай комментарии краткими: укажи строку, проблему и фикс
Как установить unslop-review
1Через Skills CLI (Vercel)
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a claude-code2Вручную: положить файлы
~/.claude/skills/unslop-review/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/unslop-review/
1Через Skills CLI (Vercel)
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a codex2Вручную: положить файлы
.agents/skills/unslop-review/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a cursor2Вручную: положить файлы
.cursor/skills/unslop-review/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install MohamedAbdallah-14/unslop unslop-review2Вручную: положить файлы
.github/skills/unslop-review/SKILL.md1Через Skills CLI (Vercel)
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a gemini-cli2Командой платформы
gemini skills install https://github.com/MohamedAbdallah-14/unslop --path skills/unslop-reviewВручную: положить файлы
.devin/skills/unslop-review/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о unslop-review
Как установить unslop-review в Claude Code?
Выполните в терминале команду npx skills add MohamedAbdallah-14/unslop --skill unslop-review -a claude-code. Также можно вручную поместить файл в ~/.claude/skills/unslop-review/SKILL.md.
Какие префиксы важности использует скилл?
Используются метки bug: для явных ошибок и risk: для нестабильного кода. Для стилистических правок ставится nit:, а для вопросов автору — q:.
Может ли скилл сам отправить изменения в репозиторий?
Нет, скилл генерирует только текст комментариев для ручной вставки. Он не делает коммитов, не запускает проверки и не выполняет git push.
Исходный текст
SKILL.md · MIT
---
name: unslop-review
description: >
Rewrites code review comments so they read like a human teammate wrote them.
Cuts corporate-AI throat-clearing ("I noticed...", "I was wondering if perhaps...",
"It might be worth considering..."). Each comment is direct: location, the issue, a concrete fix.
Use when user says "humanize review", "de-slop PR comment", "make this feedback sound human",
"review this PR", "code review", "/review", "/unslop-review". Auto-triggers when reviewing PRs.
---
# Unslop Review
## Purpose
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.
## Trigger
`/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.
## Format
Default shape: `L<line>: <severity prefix> <observation>. <fix>.`
Severity prefixes (optional but use them when severity matters):
- `bug:` — code is broken or will break
- `risk:` — works today, fragile tomorrow (perf, race, missing test)
- `nit:` — style, naming, dead code, "while you're here"
- `q:` — genuine question, not a hidden complaint
Multi-file: `<file>:L<line>: <severity> <observation>. <fix>.`
Range: `L88-140: ...` when the issue spans lines.
## Rules
### Drop
- Throat-clearing: "I noticed that...", "It seems like...", "It looks like to me..."
- Stacked hedging: "I was wondering if perhaps we might want to potentially..."
- Polite-padding: "I would kindly suggest...", "just a small suggestion..."
- Per-comment praise: "Nice work on this function but...", "Great pattern, however..."
- Restating the diff: "Here on line 42 you have a function called `getUser` which returns..."
- Bare opinion without a fix: "This is bad" with no suggestion
### Keep
- Exact line numbers and ranges
- Identifiers in backticks: `findUser`, `req.body.id`
- Concrete fix or concrete question
- "Why" only when the fix isn't obvious
### Tone
Human, 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.
### Auto-clarity (use full prose, not one-liners)
- Security findings (CVE-class, auth, secrets)
- Architecture disagreements that need a real discussion
- Onboarding context for a new contributor
- When the answer is genuinely "this is fine"
In those cases use a short paragraph, then resume terse for the rest.
## Examples
### Bad → good
- 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.)
### Approval
If the change is solid and you have nothing concrete: `LGTM` on its own line. No boilerplate.
## Boundaries
- Comments only. No commits, no `git push`, no auto-approve, no linter runs.
- Output is paste-ready: one comment per line, or a clearly separated list.
- Severity must be honest. Don't downgrade a `bug` to a `nit` to soften the message.
© MohamedAbdallah-14 · MIT · MohamedAbdallah-14/unslop