API ВЕГА

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

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

Изучите репозиторий, чтобы подтвердить его утверждения и понять текущее состояние кодовой базы.

Спросите, рассматривал ли он другие варианты, и предложите ему альтернативы.

Проведите интервью с пользователем об реализации. Будьте предельно детальны и тщательны.

Точно определите область реализации. Решите, что вы планируете изменить, а что нет.

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

Разбейте реализацию на план из мелких коммитов. Помните совет Мартина Фаулера: «делать каждый шаг рефакторинга максимально маленьким, чтобы вы всегда могли видеть, что программа работает.»

Создайте issue в GitHub с планом рефакторинга. Используйте следующий шаблон для описания issue:

Формулировка проблемы

Проблема, с которой сталкивается разработчик, с точки зрения разработчика.

Решение

Решение проблемы с точки зрения разработчика.

Коммиты

ДЛИННЫЙ, подробный план реализации. Напишите план на простом английском языке, разбив реализацию на самые мелкие возможные коммиты. Каждый коммит должен оставлять кодовую базу в рабочем состоянии.

Документ о решениях

Список принятых решений по реализации. Может включать:

  • Модули, которые будут созданы/изменены

  • Интерфейсы модулей, которые будут изменены

  • Технические уточнения от разработчика

  • Архитектурные решения

  • Изменения схемы

  • Контракты API

  • Специфичные взаимодействия

НЕ включайте конкретные пути к файлам и фрагменты кода. Они могут очень быстро устареть.

Решения по тестированию

Список принятых решений по тестированию. Включает:

  • Описание того, что составляет хороший тест (тестировать только внешнее поведение, а не детали реализации)

  • Какие модули будут тестироваться

  • Прецеденты для тестов (т.е. аналогичные типы тестов в кодовой базе)

За пределами области (Out of Scope)

Описание того, что находится за пределами области этого рефакторинга.

Дополнительные заметки (опционально)

Любые дополнительные заметки о рефакторинге.

Установка

npx skills add https://github.com/mattpocock/skills --skill request-refactor-plan