hate — скилл для Claude Code: что делает и как установить
Находит единственное уязвимое место в архитектурном плане или идее до старта разработки. Предлагает дешёвый эксперимент для проверки гипотезы вместо длинного чек-листа.
npx skills add LilMGenius/paperthin --skill hate -a claude-codeЧто делает hate
Скилл атакует проект целиком, а не цепляется к отдельным строкам. Он выявляет ключевое допущение системы. Без него вся конструкция рухнет. Конфигурация отключает автоматический вызов агентом через disable-model-invocation: true, поэтому запускать проверку нужно вручную. Постоянный скепсис мешал бы обычной работе агента.
Проверка идёт по нескольким осям. Скилл ищет ложные факты или ситуации, когда заявленный принцип подменяется противоположным кодом. Для исследовательских задач он проверяет статистическую мощность и утечки данных. В итоге модель возвращает не длинный список замечаний, а формат { root, first_nail } — коренное возражение и самый дешёвый тест, способный закрыть бесперспективный проект ещё до написания кода.
Какие задачи решает
- найти критическую уязвимость в архитектуре до написания кода
- сформулировать дешёвый эксперимент для проверки ключевой гипотезы
- выявить расхождения между заявленным принципом и реальной реализацией
- отсечь необоснованные допущения и ложные аналогии в техническом плане
Примеры запросов агенту
- Проверь этот план миграции базы данных через hate
- /hate разбери архитектуру микросервисов перед стартом спринта
- Найди ключевое слабое место в этом техническом предложении
Как установить hate
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill hate -a claude-code2Вручную: положить файлы
~/.claude/skills/hate/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/hate/
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill hate -a codex2Вручную: положить файлы
.agents/skills/hate/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill hate -a cursor2Вручную: положить файлы
.cursor/skills/hate/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install LilMGenius/paperthin hate2Вручную: положить файлы
.github/skills/hate/SKILL.md1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill hate -a gemini-cli2Командой платформы
gemini skills install https://github.com/LilMGenius/paperthin --path skills/depth/hateВручную: положить файлы
.devin/skills/hate/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill hate -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о hate
Как установить hate в Claude Code?
Выполните команду npx skills add LilMGenius/paperthin --skill hate -a claude-code.
Что делает скилл hate?
Он анализирует технический замысел и возвращает ровно одну критическую претензию вместе с самым дешёвым способом её проверить. Скилл принципиально не составляет списки мелких правок.
Почему модель не вызывает hate автоматически?
В манифесте скилла задан параметр disable-model-invocation: true. Постоянный инстинкт критики мешал бы созидательной работе агента, поэтому запуск оставлен на усмотрение пользователя.
Исходный текст
SKILL.md · MIT
---
name: hate
disable-model-invocation: true
description: "Attack a plan, design, or argument like you want it to fail before you commit real effort — return the single load-bearing objection and the cheapest experiment that would prove it matters, not a checklist. User-invoked on purpose: a hate-it reflex always in the agent's reach would bias it toward demolition. Weighs many failure axes but owns the synthesis to one root."
---
Refuse to be nice to the plan — return the one objection that could kill it and the cheapest shot that proves it matters.
## Goal
`hate` asks "what would someone who wants this to fail attack first?" (validity). It attacks the *whole* plan — not one fact or one line, but the load-bearing structure — and collapses the attack to a single root. The highest-value output is never a checklist — it's one objection plus the cheaper experiment hiding inside the elaborate plan.
## Workflow
1. Pin the **load-bearing assumption(s)** — what must hold for the whole thing to stand.
2. Attack on whatever axes apply — the general ones first: **a load-bearing fact** that may be false, **confabulation** (a post-hoc story treated as ground truth), **analogy-mistaken-for-isomorphism** (structure assumed to transfer across domains where it doesn't), **future-tense suture** (the argument leans on a result that doesn't exist yet), and the sharpest — **cites a principle but implements its opposite**; and for empirical / research plans, **leakage** (no external ground-truth enters the validation independently) and **statistical power / family-wise α** (a true hypothesis auto-failing from uncorrected tests; a near-zero-power condition that rubber-stamps regardless of truth).
3. Collapse the findings to the **single root** objection — the one whose failure makes the others moot.
4. Find the **first nail** — the cheapest falsification of the load-bearing assumption: the check (in time / cost / sample) that could kill it *before* the expensive program runs.
5. Return `{ root, first_nail }` — not a list.
## Rules
- **Attack, don't improve** — improving is a different reflex.
- **Own the synthesis** — many axes may fire, but collapse them to the single load-bearing root; return that, never a list.
## Verification
Before finishing:
1. The root is genuinely load-bearing — the plan falls without it.
2. The first nail is genuinely cheaper than the plan it would pre-empt.
© LilMGenius · MIT · LilMGenius/paperthin