Вы, читатель, как и автор, тоже досадуете, когда в промтах проскакивают досадные опечатки или грамматические конструкции, которые заставляют даже терпеливую LLM «задумчиво» переспрашивать: «What do you mean?»

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

О первой части названия

Я много программирую с помощью ИИ. В процессе возникают мысли, идеи и инсайты, которыми чертовски хочется поделиться с коллегами. Но есть нюанс: живых коллег у меня в данный момент нет. Я — программист-одиночка, и мои единственные собеседники — ИИ-агенты.

Это одиночество в сети и подтолкнуло меня (после долгого перерыва в публикациях на Хабре) запустить серию мини-статей о разных «мелочах», связанных с ИИ. Окончательно концепция оформилась, когда под руку попалась одна из моих любимых книг Николая Семеновича Лескова — «Мелочи архиерейской жизни». Если вы цените сочный русский язык и тонкую иронию — искренне советую почитать. А мы пока перейдем к мелочам нашей, «айтишной» жизни.

Проблема: варварский английский

Должен признаться: мой английский хоть и понимается Copilot-агентами весьма сносно, но иногда возникают недопонимания. А порой становится стыдно (да, уши краснеют!), когда агенты начинает между собой рассуждать, что же именно я имел в виду под этой кучей опечаток.

Захотелось убить двух зайцев: и работу работать, и английский подтягивать. План созрел быстро:

  1. Шаг 1: Собираем в одном месте всё, что я наговорил агенту за день.

  2. Шаг 2: Скармливаем этот лог отдельному агенту-корректору, который анализирует мой «варварский» английский и выдает вердикт: как это должно было звучать на самом деле.

Для первого шага нашлось элегантное решение — хуки (Hooks).

Реализация: Хуки как «уши» системы

Вообще, то, что этот механизм назван «хуком» (hook) — я считаю ошибкой его создателей. Правильнее было бы называть это Event Listener (слушатель событий). По сути, перед нами классическая событийная модель: система «слушает» происходящее в GitHub Copilot и позволяет нам вклиниться в процесс.

На сегодняшний день хуки — это пары, которые «окружают» ключевые события при работе ИИ-агента. Согласно официальной документации GitHub, мы можем подписываться на следующие типы событий:

  • Отправка промта пользователем (userPromptSubmitted) — срабатывает в тот момент, когда вы нажали Enter в чате.

  • Завершение ответа агента (agentResponseCompleted) — когда ИИ закончил генерировать код или текст.

  • Обнаружение обращения к инструменту (toolCallDetected) — если агент решил вызвать какую-то внешнюю функцию.

  • Завершение вызова инструмента (toolCallCompleted) — результат работы этой функции.

Для нашей задачи идеально подходит первое событие. Нам нужно просто «подслушать» самих себя.

Код

Создаем конфигурационный файл по адресу .github/hooks/log-prompts.json:

{
  "version": 1,
  "hooks": {
    "userPromptSubmitted": [
      {
        "type": "command",
        "bash": "scripts/log-user-prompt.sh",
        "cwd": ".",
        "timeoutSec": 5
      }
    ]
  }
}

И сам скриптик scripts/log-user-promt.sh, который будет складывать наши мысли в копилку, выглядит вот так:

#!/bin/bash

# Читаем JSON из стандартного ввода
input=$(cat)

# Извлекаем текст промта с помощью jq
prompt=$(echo "$input" | jq -r '.prompt // empty')

# Если промт не пустой, дописываем его в файл
if [ -n "$prompt" ]; then
  echo "--- $(date) ---" >> TMP/user-commands.txt
  echo "$prompt" >> TMP/user-commands.txt
fi

Теперь в конце рабочего дня у вас есть файл user-commands.txt.

Осталось только передать его примерно такому агенту, которого мы располагаем по адресу .github/agents/lang-tutor.agent.md:

---
name: lang-tutor
description: Language tutor that analyzes writing quality and grammar. Automatically reads TMP/user-commands.txt and writes corrections to TMP/user-commands.md.
tools: ["read", "edit"]
target: vscode
---

You are a professional language tutor and writing quality specialist.

**Task**: Analyze `TMP/user-commands.txt` and generate a detailed quality report in `TMP/user-commands.md`.

**Analysis focus**:
- Grammar mistakes, spelling errors, punctuation issues
- Awkward phrasing and clarity problems
- Professional tone consistency
- Sentence structure and readability

**Report format for `TMP/user-commands.md`**:

1. **Overview**: Brief summary of text quality and main findings
2. **Issues Table**:
   | Issue Type | Original Sentence | Corrected Sentence |
   |---|---|---|
3. **Recommendations**: General improvement tips
4. **Cleanup suggestion**: Include this shell command:
   ```bash
   rm TMP/user-commands.txt
   ```

**Guidelines**: Be constructive, specific, and encouraging. Acknowledge strengths while suggesting improvements. Include context for each correction.

Агент должен появиться в меню агентов вашего GItHub Copilot.

Не магией единой

Глядя на фантастические достижения индустрии (например, недавнюю статью Anthropic о том, как они строили C-компилятор), легко впасть в иллюзию. Кажется, что крутой программист просто пишет один гениальный промт, после чего LLM уходит в астрал на неделю и выдает готовую систему.

Но это не так. «Под капотом» у лидеров отрасли работает большое количество «обмазок» вокруг LLM. Агенты, скиллы, MCPs, CLI, функции и те самые хуки. Инструменты автоматизации взаимодействия с моделью изобретаются с бешеной скоростью. Сначала они обкатываются внутри лабораторий, а затем предоставляются нам — «широким программистским массам».

Хуки — это как раз один из таких свежих инструментов, позволяющий превратить магию в управляемый инженерный процесс. И если попутно они помогут нам перестать писать "fix this bug plz" вместо грамотного технического задания — это ли не победа?

И уж совсем приватно...

Мой сайт - https://www.sirotin.eu/

Кроме того, я пишу открытую электронную книгу “Мемуары кочевого программиста. Байки, были, думы”. Её текущий вариант можно найти здесь.

Я убеждён, что программирование - это материализаци я идей. Об этом я первый раз написал здесь. А вот уже несколько лет мы с группой единомышленников ведём группу в Телеграмме под названием “Материализация идей”, в которой мы последнее время рассуждаем в основном об ИИ.
Если вам это интересно - подключайтесь.