Claude Info
Код-ревью

Diligence

eriknyquist/diligence

Скилл для Claude.ai и Claude Code, который активирует два режима: верификацию технических утверждений через веб-поиск с указанием источников и запрос уточнений при неоднозначных вопросах вместо угадывания.

Установка

terminal
bash
git clone https://github.com/eriknyquist/diligence.git

README


Скилл для Claude.ai и Claude Code, который после активации принудительно включает два поведения на всю сессию:

  1. Верификация источников — каждое проверяемое техническое утверждение проверяется через веб-поиск и сопровождается ссылкой с URL и путём навигации до его публикации.
  2. Педантичное уточнение — неоднозначные вопросы никогда не получают ответа наугад. Claude сначала спрашивает.

Активация

Введите /diligence в любом диалоге. Скилл остаётся активным до конца сессии.

Что делает

Позволяет снизить влияние двух типичных проблем при отладке с помощью Claude:

  • Claude даёт некорректную информацию → пользователь просит указать источник → Claude находит источник и понимает, что ошибся, исправляет ответ. Почему нельзя сделать это сразу?

  • Пользователь задаёт неоднозначный вопрос, и вместо уточнения намерения Claude выдаёт длинный ответ, пытаясь охватить все варианты. Потеря времени.

Верификация источников

Каждое техническое утверждение — сигнатуры API, характеристики оборудования, значения из даташитов, поведение библиотек, детали протоколов, флаги CLI — проверяется по первичному публичному источнику (официальная документация, GitHub, даташиты, RFC) до того, как будет озвучено. Если верификация не удалась после 3–5 поисков, Claude всё равно отвечает, но помечает непроверенные утверждения с указанием проверенных источников.

Формат цитирования:

[Source: <название> — <URL> → <путь навигации>]

Уточняющие вопросы

Claude спрашивает перед ответом, если вопрос неоднозначен в одном из трёх случаев:

  • Отсутствуют технические детали — не указаны платформа, сценарий использования, окружение или ограничения
  • Неоднозначная формулировка — вопрос допускает несколько корректных интерпретаций (например, «что заставляет FreeRTOS тикать?» может означать как механизм тика, так и типичные подводные камни)
  • Референциально неоднозначные уточнения — короткие реплики вроде «почему», «как» или «подробнее» без явной привязки к конкретному пункту после многопунктового ответа

Claude склоняется к тому, чтобы спрашивать, а не угадывать.

Совместимость с Caveman

Если также активен caveman mode, весь текст после генерации сжимается по правилам caveman. Цитаты являются исключением и всегда выводятся полностью.

Пример

Один и тот же вопрос — без режима diligence и с ним.


Пользователь: как читать регистр по I2C на STM32?


😢Без /diligence

Для чтения регистра по I2C можно использовать HAL_I2C_Mem_Read(). Пример:

c
uint8_t value;
HAL_I2C_Mem_Read(&hi2c1, 0x68 << 1, 0x00, I2C_MEMADD_SIZE_8BIT, &value, 1, HAL_MAX_DELAY);

Второй аргумент — адрес устройства (сдвинутый влево на 1 для STM32 HAL), третий — адрес регистра, четвёртый указывает, является ли адрес регистра 8- или 16-битным.

🔎С /diligence

Claude: Несколько вопросов перед ответом:

  • Какая серия STM32? (F4, H7, другая — поведение HAL может отличаться)
  • Блокирующий (polling) или неблокирующий (interrupt/DMA) режим?
  • Адрес регистра 8-битный или 16-битный?

Пользователь: STM32F4, блокирующий, 8-битный адрес регистра

Claude: Для блокирующего чтения регистра используйте HAL_I2C_Mem_Read(). Функция выполняет последовательность запись-чтение (отправка адреса регистра, затем чтение данных) в одном вызове.

c
uint8_t value;
HAL_StatusTypeDef status = HAL_I2C_Mem_Read(
    &hi2c1,               // дескриптор I2C
    0x68 << 1,            // 7-битный адрес устройства, сдвинутый влево на 1
    0x00,                 // адрес регистра
    I2C_MEMADD_SIZE_8BIT, // ширина адреса регистра — 8 бит
    &value,               // буфер приёма
    1,                    // количество байт для чтения
    HAL_MAX_DELAY         // таймаут
);

Адрес устройства необходимо сдвинуть влево на 1 — STM32 HAL использует 8-битный формат (7-битный адрес + бит R/W) внутри. [Source: ST UM1725 HAL driver manual — https://www.st.com/resource/en/user_manual/um1725-description-of-stm32f4-hal-and-lowlayer-drivers-stmicroelectronics.pdf → Section 33.2.4, HAL_I2C_Mem_Read]

Всегда проверяйте возвращаемое значение: HAL_OK при успехе, HAL_TIMEOUT или HAL_ERROR при ошибке. [Source: STM32F4 HAL source — https://github.com/STMicroelectronics/stm32f4xx_hal_driver/blob/master/Src/stm32f4xx_hal_i2c.c → HAL_I2C_Mem_Read return values]

Установка

Claude.ai

  1. Скачайте diligence.skill со страницы Releases
  2. В Claude.ai перейдите в Settings → Skills и загрузите файл .skill
  3. Введите /diligence в любом диалоге для активации

Claude Code

Добавьте этот репозиторий как marketplace, затем установите плагин:

bash
claude plugin marketplace add eriknyquist/diligence
claude plugin install diligence@diligence

Затем введите /diligence в диалоге для активации.

Похожие скиллы