20 промтов для GitHub Copilot: от коммитов до code review — полное руководство для разработчиков

Введение

GitHub Copilot, изначально запущенный как инструмент для автодополнения кода, к середине 2026 года превратился в полноценного AI-ассистента, встроенного в рабочий процесс разработчика. Однако многие инженеры по-прежнему используют Copilot лишь для генерации простых фрагментов кода, игнорируя его возможности в области документирования, оптимизации, ревью и написания коммитов. В этой статье мы собрали 20 проверенных промтов, которые помогут вам выжать максимум из Copilot — от написания осмысленных сообщений к коммитам до глубокого анализа кода в пулл-реквестах.

Категория 1: Базовые промты — каждый день

Эти промты подойдут для повседневных задач: написание документации, комментариев, простых функций.

1.1 Генерация комментариев для функции

Задача: Создать подробные комментарии для существующей функции.
Промт: Explain this function step by step, add JSDoc comments for each parameter and return value.
Пример результата:

/**
 * Calculates the total price after applying a discount.
 * @param {number} price - Original price before discount.
 * @param {number} discount - Discount percentage (0-100).
 * @returns {number} Final price after discount.
 */
function applyDiscount(price, discount) {
  return price - (price * discount) / 100;
}

1.2 Написание сообщения к коммиту

Задача: Сгенерировать осмысленное сообщение для коммита на основе изменений.
Промт: Write a concise, descriptive commit message for the following changes. Use conventional commits format (type: description).
Пример результата: fix: correct typo in user authentication error message

1.3 Генерация простой функции по описанию

Задача: Создать функцию, проверяющую, является ли строка палиндромом.
Промт: Write a function that checks if a string is a palindrome. Use TypeScript.
Пример результата:

function isPalindrome(str: string): boolean {
  const cleaned = str.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
  return cleaned === cleaned.split('').reverse().join('');
}

1.4 Написание тестов для функции

Задача: Создать unit-тесты для функции applyDiscount.
Промт: Write Jest tests for the applyDiscount function. Include edge cases like negative discount.
Пример результата:

describe('applyDiscount', () => {
  it('should apply 10% discount correctly', () => {
    expect(applyDiscount(100, 10)).toBe(90);
  });
  it('should return original price for 0% discount', () => {
    expect(applyDiscount(100, 0)).toBe(100);
  });
  it('should handle negative discount as increase', () => {
    expect(applyDiscount(100, -10)).toBe(110);
  });
});

1.5 Генерация README для проекта

Задача: Создать базовый файл README для репозитория.
Промт: Generate a README.md for a React project that uses Tailwind CSS. Include installation, usage, and contributing sections.
Пример результата: (сокращённо)

# My React Project

## Installation
```bash
npm install
npm run dev

Usage

...

## Категория 2: Продвинутые промты  оптимизация и рефакторинг

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

### 2.1 Рефакторинг функции с использованием map/filter/reduce
**Задача:** Переписать цикл for на функциональный стиль.
**Промт:** `Refactor this loop to use map and filter. Keep immutability.`
**Пример результата:**
```javascript
// Before
let result = [];
for (let i = 0; i < items.length; i++) {
  if (items[i].active) {
    result.push(items[i].name.toUpperCase());
  }
}

// After
const result = items
  .filter(item => item.active)
  .map(item => item.name.toUpperCase());

2.2 Оптимизация производительности запроса

Задача: Оптимизировать SQL-запрос, который выполняется медленно.
Промт: Optimize this SQL query. Add indexes suggestions. Use EXPLAIN ANALYZE output.
Пример результата:

-- Original
SELECT * FROM orders WHERE customer_id = 123 AND status = 'pending';

-- Optimized with index suggestion
CREATE INDEX idx_customer_status ON orders (customer_id, status);
SELECT * FROM orders WHERE customer_id = 123 AND status = 'pending';

2.3 Преобразование callback hell в async/await

Задача: Переписать вложенные колбэки на современный синтаксис.
Промт: Convert this nested callback pattern to async/await. Handle errors properly.
Пример результата:

// Before
getUser(id, (err, user) => {
  if (err) return handleError(err);
  getPosts(user.id, (err, posts) => {
    if (err) return handleError(err);
    render(posts);
  });
});

// After
async function loadUserPosts(userId) {
  try {
    const user = await getUser(id);
    const posts = await getPosts(user.id);
    render(posts);
  } catch (err) {
    handleError(err);
  }
}

2.4 Генерация миграций базы данных

Задача: Создать SQL-миграцию для добавления новой таблицы.
Промт: Generate a migration file for adding a 'comments' table with foreign key to 'posts'. Use Knex.js syntax.
Пример результата:

exports.up = function(knex) {
  return knex.schema.createTable('comments', (table) => {
    table.increments('id').primary();
    table.string('text', 500).notNullable();
    table.integer('post_id').unsigned().references('id').inTable('posts').onDelete('CASCADE');
    table.timestamps(true, true);
  });
};

exports.down = function(knex) {
  return knex.schema.dropTable('comments');
};

2.5 Поиск и исправление уязвимостей безопасности

Задача: Найти потенциальные SQL-инъекции в коде.
Промт: Find and fix SQL injection vulnerabilities in this code. Use parameterized queries.
Пример результата:

// Vulnerable
const query = `SELECT * FROM users WHERE email = '${req.body.email}'`;

// Fixed
const query = 'SELECT * FROM users WHERE email = ?';
db.query(query, [req.body.email]);

Категория 3: Экспертные промты — code review и архитектура

Эти промты требуют глубокого понимания проекта и позволяют проводить полноценное ревью кода и анализ архитектуры.

3.1 Анализ пулл-реквеста на предмет code smells

Задача: Проанализировать изменения в PR и найти code smells.
Промт: Review this pull request diff. Identify any code smells, duplicated code, or violations of SOLID principles. Suggest refactoring.
Пример результата:

Issues found:
1. Long method (>50 lines) in UserService.createUser  violates Single Responsibility.
2. Duplicated validation logic in createUser and updateUser.
3. Hardcoded string "ADMIN" instead of using an enum.

Recommendations:
- Extract validation into a separate validator class.
- Use UserRole enum for role constants.

3.2 Генерация архитектурной документации (ADR)

Задача: Создать запись архитектурного решения (ADR) для выбора библиотеки.
Промт: Generate an Architecture Decision Record (ADR) for choosing React Query over Redux for state management. Include context, decision, and consequences.
Пример результата: (сокращённо)

# ADR-001: Use React Query for server state

**Context:** We need to manage server-side data fetching and caching.
**Decision:** Use React Query.
**Consequences:** Reduced boilerplate, automatic caching, but requires understanding of stale-while-revalidate.

3.3 Оптимизация Dockerfile для продакшена

Задача: Уменьшить размер образа и улучшить безопасность.
Промт: Optimize this Dockerfile for production. Use multi-stage builds, reduce image size, and apply security best practices.
Пример результата:

FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production

FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/node_modules ./node_modules
COPY . .
EXPOSE 3000
USER node
CMD ["node", "server.js"]

3.4 Анализ производительности по профилю

Задача: Найти узкое место в коде на основе логов профилирования.
Промт: Based on the following profiling output, identify the bottleneck and suggest optimization.
Пример результата:

Bottleneck: Function 'parseCSV' takes 80% of execution time due to manual string splitting.
Suggestion: Use a streaming CSV parser like Papa Parse to handle large files efficiently.

3.5 Генерация полного CI/CD пайплайна

Задача: Создать GitHub Actions workflow для тестирования и деплоя.
Промт: Create a GitHub Actions workflow that runs lint, tests, and deploys to AWS ECS on push to main branch.
Пример результата:

name: CI/CD Pipeline
on:
  push:
    branches: [ main ]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test
  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to ECS
        run: echo "Deploying..."

Как использовать промты эффективно: советы и рекомендации

  1. Контекст — ключ к успеху. Чем больше контекста вы дадите Copilot (например, открытые файлы, описание задачи в комментариях), тем точнее будет результат. Copilot анализирует до 2000 строк кода вокруг курсора.
  2. Итеративный подход. Не ждите идеального ответа с первого раза. Уточняйте промты: «сделай короче», «используй TypeScript», «добавь обработку ошибок».
  3. Комбинируйте с другими инструментами. Copilot отлично работает вместе с линтерами (ESLint) и форматерами (Prettier). После генерации кода прогоните его через линтер.
  4. Проверяйте безопасность. Copilot может генерировать код с уязвимостями. Всегда проверяйте сгенерированный код на соответствие лучшим практикам.

Заключение

GitHub Copilot — это не просто автодополнение. Это мощный инструмент, который при правильном использовании может взять на себя рутинные задачи: написание документации, создание тестов, рефакторинг и даже анализ архитектуры. Представленные 20 промтов охватывают три уровня сложности: от базового написания коммитов до экспертного ревью кода. Начните с простого — например, с генерации сообщений к коммитам, — и постепенно переходите к более сложным сценариям. Помните: Copilot — ваш ассистент, но окончательное решение всегда за вами. Экспериментируйте, адаптируйте промты под свой проект и делитесь находками с командой. Успешного кодинга!

← Все статьи

Комментарии

Читайте также

15 промтов для GameDev: Unity, Unreal Engine и Godot — от прототипа до оптимизации

16 июля 2026

Освой свою биологию: курс по фитнесу, питанию и биохакингу с обучением на основе ИИ

16 июля 2026

Создание MCP-серверов: Почему рост спроса на 240% в 2025–2026 годах делает этот навык самым важным в сфере ИИ

16 июля 2026

Стандарты кибербезопасности: ISO 27001, NIST, PCI DSS — как AI-обучение помогает освоить их быстрее и глубже

16 июля 2026

Mеталл-органические каркасы: новые чудесные материалы химии

16 июля 2026

CLI-агент в фоне без API: новый тренд в автоматизации рабочих процессов

16 июля 2026

Как автоматизировать международные платежи с Wise и AI-агентом ASI Biont: пошаговое руководство без кода

16 июля 2026

QA Automation Engineer: Как пройти путь от первого UI-теста до CI/CD-пайплайна с помощью AI-обучения

16 июля 2026

Умные сенсорные экраны FT6206 и XPT2046: интеграция с AI-агентом ASI Biont для предиктивного HMI

16 июля 2026