qt-cpp-review
Qt Code Review — это read-only skill для проверки кода на Qt 6 и C++. Он предназначен для ситуаций, когда нужно провести review, audit, sanity check или проверить изменения перед commit. Workflow сочетает детерминированный Python-линтер с анализом шести специализированных направлений: контракты моделей, владение и жизненный цикл объектов, потокобезопасность, корректность API и C++, обработка ошибок и производительность с качеством кода. Skill не должен менять исходники: его результатом являются подтверждённые замечания, структурированные объяснения и меры устранения в тексте. Область проверки определяется формулировкой запроса. Для diff или commit scope сначала рассматриваются unstaged и staged изменения, а при указании commit — соответствующий диапазон; в этом режиме замечания относятся только к изменённым строкам и необходимому окружающему контексту. Для широкого codebase scope собираются файлы .cpp, .h и .hpp в заданной директории. Такое различие важно для review перед слиянием: старые проблемы вне diff не должны смешиваться с оценкой текущего изменения, тогда как аудит каталога должен охватить весь указанный набор. Первая фаза запускает единый Python-сканер без внешних зависимостей. Он читает каждый файл и проверяет более шестидесяти механически выявляемых правил: порядок include, устаревшие классы, паттерны копирования и перемещения, баланс begin/end у QAbstractItemModel, роли dataChanged, валидность индексов, обработку QFile и QJsonDocument, ошибки QNetworkReply, SSL и таймауты, deleteLater, защиту от null, ограничения контейнеров, соглашения именования и особенности Qt-контейнеров. Сначала нужно собрать полный вывод этой фазы; последующий анализ не должен дублировать уже найденные линтером нарушения. Вторая фаза разделяет чтение кода между шестью миссиями. Одна проверяет протокол сигналов и роли QAbstractItemModel, другая — ownership, родителей QObject, deleteLater и очистку, третья — доступ к состоянию из рабочих потоков и queued connections. Остальные анализируют API и const-корректность, I/O, валидацию, SSL и таймауты, а также лишние аллокации, detach у implicitly shared контейнеров, кэширование, порядок итерации и мёртвый или дублированный код. Агентам передают список файлов и вывод линтера; они должны трассировать символы, не переписывать файлы и применять порог уверенности. Режим framework включается только аргументом framework. Без него skill может обнаружить два или более признака Qt-модульного кода, например Q_*_EXPORT, private headers, Q_DECLARE_PRIVATE, qt_add_module или sync.profile, и предложить расширенный режим, но не включает его сам. В расширенном режиме добавляются правила обратной совместимости, exports, d-pointer, qdoc и версионирования QML. Это сохраняет различие между обычным приложением на Qt и разработкой самого фреймворка. На консолидации результаты линтера и глубокого анализа объединяются и дедуплицируются по файлу, строке и проблеме. В отчёт попадают только findings с уверенностью выше 80 из 100; диапазон 60–79 выводится отдельно как investigation target, если для проверки не хватает трассировки, а более слабые подозрения подавляются. Для каждой записи нужны короткий заголовок, файл и строка, категория или идентификатор правила, описание наблюдения, trace подтверждения и текстовая mitigation без patch-кода. Такой формат делает review проверяемым и оставляет решение об изменении кода владельцу проекта.
Для чего подходит
- Ревью Qt6 C++ кода
- Проверка ownership и threading
- Поиск проблем Qt API и тестируемости
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/TheQtCompanyRnD/agent-skills/tree/main/skills/qt-cpp-review