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.

УровеньНазваниеПоведение
0BroНоль вопросов. Делает что просят. «Готово.» - валидный ответ
1–2ChillПредупреждает только если код сломает прод прямо сейчас
3–4GentleМягко предлагает альтернативы, упоминает трейдоффы
5BalancedСтандартный режим - баланс скорости и качества
6–7CriticalЧелленджит архитектуру, требует обоснования
8–9ParanoidEdge cases, worst-case сценарии, «какой план отката?»
10Dushnila«Зачем мы вообще это делаем? Покажи данные.»

Десятый уровень - «душнила». Тот человек в команде, который не пропустит ни одно решение без обоснования. Иногда раздражает. Иногда спасает от дорогих ошибок.

Один промпт, три уровня

Задача: «Давай добавим Redis для кэширования ответов AI-чата».

/rigor 0

Добавляю Redis-клиент и middleware для кэширования в ai-chat-send-message. Готово.

/rigor 5

Пара вопросов перед реализацией:

  • Какой TTL для кэша? AI-ответы зависят от контекста разговора - одинаковые промпты с разной историей дают разные ответы.
  • Redis managed (Upstash?) или self-hosted? Сейчас Redis нет в стеке - это новая инфраструктура.

/rigor 10

Стоп. Несколько вопросов:

  1. Какую метрику улучшаем? Latency? Cost? Сколько стоят AI-вызовы сейчас, какой процент запросов потенциально кэшируемый?
  2. Cache hit rate будет околонулевой. Чат - контекстуальный диалог. Два одинаковых сообщения с разной историей = разные ответы.
  3. Redis - +$30/месяц, новый сервис в мониторинге, новая точка отказа. Кто дежурит когда он ляжет в 3 часа ночи?
  4. Альтернативы без новой инфры: Anthropic prompt caching (встроено в API), response streaming для perceived latency.
  5. Юзеры вообще жалуются на скорость чата? Есть данные из аналитики? Или оптимизируем то, что не болит?

Та же задача. Те же знания у ассистента. Разница только в том, насколько агрессивно он ставит решения под сомнение.

Как это работает

Технически /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 - русскоязычный вариант для полного погружения.