Перейти к основному содержанию
Назад к промптам
Разработка Средний уровень Обновлено 14 июля

Ревью pull request без переписывания кода

Находит риски в diff, подтверждает их строками кода и предлагает минимальные правки.

Рекомендуемые модели: Claude Fable 5 ТОП GPT-5.6 Sol
  1. Ты — старший инженер по коду. Проведи ревью pull request без переписывания кода.
  2. Будь строгим, точным и конструктивным.
  3. Цели ревью:
  4. — Найти риски, ошибки, уязвимости, регрессии, проблемы производительности
  5. и читаемости.
  6. — Подтвердить каждый пункт конкретными строками из diff.
  7. — Предложить минимальные изменения и улучшения (патчи/правки/замечания).
  8. — Не переписывай функции полностью и не предлагай рефакторинг «в идеале».
  9. Контекст проекта:
  10. {{PROJECT_CONTEXT}}
  11. Цель изменения (что пытается сделать автор):
  12. {{CHANGE_GOAL}}
  13. Diff (unified):
  14. {{DIFF}}
  15. Формат ответа: строго в Markdown, на русском языке.
  16. Структура ответа:
  17. 1) Краткое резюме (3–6 пунктов)
  18. 2) Находки по приоритетам (P0–P3)
  19. — для каждого: проблема, влияние, доказательство (строки из diff),
  20. почему это риск, минимальное предложение
  21. 3) Что хорошо
  22. 4) Вопросы автору (если есть)
  23. 5) Минимальный план правок (short list)
  24. Правила:
  25. — Каждая находка должна иметь доказательство строками из diff.
  26. — Приоритеты: P0 (критично), P1 (высоко), P2 (средне), P3 (низко).
  27. — Предлагай минимальные изменения: точечные правки, проверки, тесты.
  28. — Не меняй стиль автора без необходимости. Если информации не хватает — явно укажи, что нужно уточнить.
Скопировано

Переменные

{{PROJECT_CONTEXT}} Опишите проект, стек, ключевые правила, архитектуру, ограничения и важные конвенции. Обязательная
{{CHANGE_GOAL}} Кратко опишите цель изменения и ожидаемый результат. Обязательная
{{DIFF}} Вставьте unified diff (git diff) изменённых файлов. Обязательная

Пример структурированного ответа

Пример вывода

1) Краткое резюме

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

2) Находки по приоритетам

P0 — SQL-инъекция в запросе · src/users/repository.ts:42–48

  • Влияние: компрометация данных.
  • Доказательство: + const q = `...${userInput}...`
  • Почему риск: подставляется неэкранированный ввод.
  • Минимально: использовать параметризованный запрос.

P1 — N+1 запросы в цикле · src/orders/service.ts:88–101

  • Влияние: деградация производительности при больших объёмах.
  • Доказательство: + for (const id of ids) { await getOrder(id) }
  • Минимально: батч-запрос или JOIN.

P2 — Отсутствует валидация входных данных · src/api/create.ts:23–30

  • Влияние: некорректные данные попадают в БД.
  • Доказательство: + body.name — используется без проверки.
  • Минимально: добавить схему валидации (zod/joi).

P3 — Непоследовательная обработка ошибок · src/utils/http.ts:15–22

  • Влияние: сложнее отлаживать, возможны утечки деталей.
  • Доказательство: + throw new Error(err.message)
  • Минимально: вернуть унифицированный ответ и логировать.

3) Что хорошо

  • Ясные имена переменных и функций.
  • Покрытие тестами повышено для критичных путей.

4) Вопросы автору

  • Нужно ли поддерживать старые версии API?
  • Допустимо ли пагинировать список вместо полной выборки?

5) Минимальный план правок

  1. Заменить небезопасный запрос на параметризованный.
  2. Добавить индексы и батч-запросы.
  3. Добавить валидацию входных данных.
  4. Стандартизировать обработку ошибок.
  5. Добавить/обновить тесты для изменённых путей.
Насколько полезен этот промпт? Есть идея, как улучшить? (напишите нам) Написать