Rigor Dial - ручка громкости для критичности AI-ассистента
Что такое Rigor Dial?
Rigor Dial — это slash-skill для Claude Code, который управляет степенью критичности AI-ассистента по шкале от 0 (молчаливый исполнитель) до 10 (оспаривает каждое решение). Позволяет переключаться между режимом быстрого выполнения и режимом devil's advocate без загрузки отдельных промптов.
TL;DR
- -/rigor — slash-skill со шкалой 0–10: 0 = молчаливый исполнитель, 10 = оспаривает каждое решение
- -На уровне 0 Claude просто пишет код. На уровне 10 — сначала допрашивает по бизнес-логике
- -AI-ассистенты по умолчанию сикофантичны — выполняют, а не оспаривают, даже плохие архитектурные решения
- -Skill — один markdown-файл, который инжектит правила поведения в контекст Claude без системных хаков
- -Установка занимает 30 секунд: git clone + симлинк в ~/.claude/skills/
Claude Code работает в одном режиме. Задаёшь вопрос - получаешь ответ. Просишь написать код - пишет. Иногда задаёт уточняющий вопрос, иногда нет. Настроить степень критичности нельзя.
Исправление опечатки в README и проектирование нового сервиса с платёжной интеграцией - для Claude это одинаковые задачи. Он ведёт себя где-то посередине между «делаю молча» и «давай обсудим». Для простых задач слишком много вопросов. Для сложных - слишком мало.
Проблема одного режима
AI-ассистенты склонны к sycophancy - соглашательству. Модель скорее выполнит запрос, чем оспорит его. На Reddit регулярно всплывают треды вроде «Claude gives performative pushback on trivial decisions but agrees with actually bad architecture».
Решения есть - devil’s advocate команды для конкретных сценариев. /devils-advocate для code review перед PR. Adversarial reasoning protocol для архитектурных решений. Но всё это одноразовые штуки: включил, получил критику, выключил.
А поведение ассистента - это не переключатель. Это спектр. Иногда нужен молчаливый исполнитель, иногда - коллега, который задаёт неудобные вопросы. И переключаться хочется быстро, без загрузки отдельных промптов.
Rigor Dial: шкала от 0 до 10
/rigor - slash-skill для Claude Code. Один параметр: число от 0 до 10.
| Уровень | Название | Поведение |
|---|---|---|
| 0 | Bro | Ноль вопросов. Делает что просят. «Готово.» - валидный ответ |
| 1–2 | Chill | Предупреждает только если код сломает прод прямо сейчас |
| 3–4 | Gentle | Мягко предлагает альтернативы, упоминает трейдоффы |
| 5 | Balanced | Стандартный режим - баланс скорости и качества |
| 6–7 | Critical | Челленджит архитектуру, требует обоснования |
| 8–9 | Paranoid | Edge cases, worst-case сценарии, «какой план отката?» |
| 10 | Dushnila | «Зачем мы вообще это делаем? Покажи данные.» |
Десятый уровень - «душнила». Тот человек в команде, который не пропустит ни одно решение без обоснования. Иногда раздражает. Иногда спасает от дорогих ошибок.
Один промпт, три уровня
Задача: «Давай добавим Redis для кэширования ответов AI-чата».
/rigor 0
Добавляю Redis-клиент и middleware для кэширования в
ai-chat-send-message. Готово.
/rigor 5
Пара вопросов перед реализацией:
- Какой TTL для кэша? AI-ответы зависят от контекста разговора - одинаковые промпты с разной историей дают разные ответы.
- Redis managed (Upstash?) или self-hosted? Сейчас Redis нет в стеке - это новая инфраструктура.
/rigor 10
Стоп. Несколько вопросов:
- Какую метрику улучшаем? Latency? Cost? Сколько стоят AI-вызовы сейчас, какой процент запросов потенциально кэшируемый?
- Cache hit rate будет околонулевой. Чат - контекстуальный диалог. Два одинаковых сообщения с разной историей = разные ответы.
- Redis - +$30/месяц, новый сервис в мониторинге, новая точка отказа. Кто дежурит когда он ляжет в 3 часа ночи?
- Альтернативы без новой инфры: Anthropic prompt caching (встроено в API), response streaming для perceived latency.
- Юзеры вообще жалуются на скорость чата? Есть данные из аналитики? Или оптимизируем то, что не болит?
Та же задача. Те же знания у ассистента. Разница только в том, насколько агрессивно он ставит решения под сомнение.
Как это работает
Технически /rigor - markdown-файл с описанием поведения для каждого уровня. При вызове /rigor 7 Claude Code инжектит инструкции в контекст разговора. Модель получает правила: задавай уточняющие вопросы, челленджи архитектуру, требуй обоснования.
Никаких system prompt хаков, fine-tuning или сложной инфраструктуры. Один файл. Работает потому, что Claude хорошо следует поведенческим инструкциям - особенно когда они конкретные и структурированные.
Уровень влияет на как Claude коммуницирует, а не на что он знает. На нулевом уровне код будет таким же корректным - просто без вопросов. На десятом - тот же код, но только после допроса.
# Установка — 30 секунд
git clone https://github.com/spyrae/rigor-dushno.git ~/.claude/rigor-dushno
ln -s ~/.claude/rigor-dushno/skills/rigor ~/.claude/skills/rigor
# Использование
/rigor 0 # для тайпо-фиксов
/rigor 5 # для обычных фич
/rigor 10 # для архитектурных решений
Когда какой уровень
0–2 - механика. Переименовать переменную, поправить конфиг, обновить зависимость. Вопросы тут только мешают.
3–5 - стандартная разработка. Новый виджет, рефакторинг метода, тест. Claude упоминает трейдоффы, но не блокирует работу.
6–7 - фичи с неочевидной архитектурой. API-дизайн, изменения в auth-потоке, новые data models. Нужен кто-то, кто спросит «а ты подумал про edge case X?».
8–10 - решения, которые дорого откатывать. Выбор базы данных, структура платёжного флоу, изменение auth-архитектуры. Лучше потратить 10 минут на обоснование, чем неделю на откат.
Ограничения
Контекст не бесконечный. Инструкции скилла занимают ~800 токенов в контекстном окне. Для большинства задач незаметно, но в длинных сессиях с большой кодовой базой каждый токен на счету.
Уровень не сохраняется между сессиями. Новый разговор - дефолтное поведение. Нужно вызывать /rigor заново. Обходной путь - прописать уровень в CLAUDE.md проекта, тогда он станет дефолтным.
Субъективность шкалы. Разница между уровнями 6 и 7 не всегда очевидна. Модель интерпретирует инструкции, а не выполняет алгоритм. Иногда на уровне 8 Claude задаст вопрос, который ближе к шестёрке. Это гайдлайн, не тумблер.
Не заменяет code review. Даже на десятке Claude не видит проект так, как коллега, который полгода в кодовой базе. Это self-check, не замена человеку.
Зачем вообще регулировать пушбэк
Стоимость ошибки зависит от контекста. Тайпо в README - ноль. Архитектура платёжного сервиса - недели переделок.
AI-ассистент с одинаковой критичностью ко всему либо тормозит простые задачи лишними вопросами, либо пропускает сложные без проверки. /rigor убирает friction на мелочах и добавляет scrutiny на важном.
Вообще, devil’s advocate по расписанию - это привычка. Но привычки, превращённые в процесс, масштабируются лучше добрых намерений.
Исходники: github.com/spyrae/rigor-dushno. Есть /dushno - русскоязычный вариант для полного погружения.