{/ Эта страница автоматически генерируется из файла SKILL.md навыка с помощью website/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Правило «Один-Три-Один»

Структурированная система принятия решений для технических предложений и анализа компромиссов. Когда пользователь стоит перед выбором между несколькими подходами (архитектурные решения, выбор инструментов, стратегии рефакторинга, пути миграции), этот навык формирует ответ в формате 1-3-1: одна четкая формулировка проблемы, три различных варианта с плюсами/минусами и одна конкретная рекомендация с критериями готовности и планом реализации. Используйте, когда пользователь просит «1-3-1», говорит «дайте варианты» или нуждается в помощи при выборе между конкурирующими подходами.

Метаданные навыка

Источник Опционально — установка: hermes skills install official/communication/one-three-one-rule
Путь optional-skills/communication/one-three-one-rule
Версия 1.0.0
Автор Willard Moore
Лицензия MIT
Платформы linux, macos, windows
Теги communication, decision-making, proposals, trade-offs

Справочник: полный SKILL.md

ℹ️ Info

Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Именно эти инструкции видит агент, когда навык активен.

Правило общения «1-3-1»

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

Когда использовать

НЕ используйте для простых вопросов с одним очевидным ответом, сеансов отладки или задач, где пользователь уже выбрал подход.

Процедура

  1. Проблема (одно предложение)
  2. Сформулируйте основное решение или желаемый результат в одном кратком предложении.
  3. Сосредоточьтесь на что, а не как — никаких деталей реализации, названий инструментов или конкретных технологий.
  4. Держитесь кратко. Если нужно «и», значит, вы описываете две проблемы.

  5. Варианты (ровно три)

  6. Представьте три различных жизнеспособных подхода, обозначенных A, B, C.
  7. Каждый вариант получает краткое описание, плюсы и минусы.
  8. Варианты должны представлять действительно разные стратегии, а не незначительные вариации одного и того же подхода.

  9. Рекомендация (один вариант)

  10. Укажите, какой вариант вы рекомендуете и почему, исходя из контекста и приоритетов пользователя.
  11. Будьте прямы — это ваше профессиональное суждение, а не уклончивость.

  12. Критерии готовности

  13. Перечислите конкретные критерии успеха для рекомендуемого варианта.
  14. Это конкретные, проверяемые результаты, а не расплывчатые пожелания.
  15. Если пользователь выберет другой вариант, пересмотрите этот раздел.

  16. План реализации

  17. Конкретные шаги для выполнения рекомендуемого варианта.
  18. Включайте конкретные команды, инструменты или действия, где это применимо.
  19. Если пользователь выберет другой вариант, пересмотрите этот раздел.

Проверка

Пример

Пользователь: «Сделай 1-3-1 для добавления логики повторных попыток в наш API-клиент».

Агент:

Проблема: вызовы API к внешним сервисам периодически завершаются сбоями под нагрузкой и требуют корректной обработки повторных попыток.

Варианты:

Рекомендация: Вариант A. Объем вызовов не оправдывает инфраструктуру очередей, а общая утилита с экспоненциальной задержкой + джиттером чисто покрывает сценарий сбоя без новых зависимостей.

Критерии готовности: - Утилита api_retry() обрабатывает временные ошибки HTTP (429, 502, 503, 504). - До 3 повторных попыток с экспоненциальной задержкой и джиттером. - Все внешние вызовы API проходят через утилиту повторных попыток. - Логируется каждая попытка с указанием конечной точки и номера попытки. - Тесты покрывают сценарии исчерпания попыток, немедленного успеха и временного сбоя с последующим успехом.

План реализации: 1. Создать utils/api_retry.py с настраиваемым максимальным числом попыток, базовой задержкой и кодами состояния для повторных попыток. 2. Добавить джиттер с помощью random.uniform(0, base_delay) для предотвращения эффекта «толпы». 3. Обернуть существующие вызовы API в api_client.py утилитой повторных попыток. 4. Добавить модульные тесты, имитирующие HTTP-ответы для каждого сценария повторных попыток. 5. Проверить под нагрузкой с помощью простого стресс-теста на фиктивной нестабильной конечной точке.