Гайд по использованию qwen-code/gemini-cli для codereview
Настраиваем консольный AI-агент
Во всём гайде я буду использовать команды и прочее для qwen-code, но всё то же самое подходит и для gemini-cli.
Задачи, с которыми он справляется
- Код-ревью кодовой базы или unstaged-изменений
- Генерация тестов
- Реорганизация готового кода
Задачи, с которыми он справляется хуже
- Генерация бесконечного количества кода (техдолг/легаси)
Setup
Есть два проекта, на которых всё это счастье может работать без танцев:
gemini-cli, qwen-code. Установку и авторизацию выполните самостоятельно - у них есть подробная документация.
gemini-cli - гугловский проект, использует модель gemini-pro2.5 qwen-code - https://github.com/QwenLM/qwen-code
У обоих проектов есть лимит на 1000 запросов в сутки, этого хватает на очень продуктивную или непродуктивную сессию.
Workflow
- Проект, в котором уже есть какая-то структура
- Заведено управление пакетами
- Заведены инструменты для code quality (type-чекеры, линтеры и прочие штуки)
Подготовка
Заходим в репозиторий с проектом, запускаем qwen и отправляем запрос:
Generate a QWEN.md, analyze a project, identify tools to check code quality, run tests. Write best development practices.
Describe the main pieces of this system's architecture.
Или лучше запустите команду!!
/init
QWEN.md - это, грубо говоря, мастер-промпт проекта, который будет учитываться во время любого запроса. После генерации кода мы должны перепроверить, что он там нагенерил, и добавить свои правила: И почистить то, в чём ошибся.
Try to minimize context
ignore */docs/ files
Do not commit any code
run make check before finishing task that made changes in codebase
Кейс с codereview
Генерим REVIEW.md, который будет содержать подробное ревью общих проблем в проекте.
Analyze the project for code smells, bad architecture patterns and others issues. Write a result to REVIEW.md
Кейс c чеклистом
Read a REVIEW.md and generate todo.md with a good and small tasks to fix issues in project
- Можно добавить todo.md в репу и описать, чтобы он помечал выполненую задачу https://github.com/gunlinux/gunlinux.ru/tree/qwen примеры с md файлами
- Это все очень наивные подходы, но пока не придумал ничего лучше
https://github.com/gunlinux/gunlinux.ru/tree/qwen примеры с md файлами
ADVANCED
Context7
Одна из проблем работы с LLM - они знают только о тех технологиях, которые существовали на момент сбора датасета, а ты хочешь использовать актуальные проекты, например UV или новую SQLAlchemy 2.0. Грубо говоря, мы в qwen.md или в запрос добавляем, чтобы был отправлен запрос на context7, если дело касается uv, и промпт был обогащён короткой докой об uv.
https://context7.com/
Надо будет в ~/.qwen/settings.json:
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
}
},
В qwen.md надо будет добавить например:
implement basic authentication with supabase. use library /supabase/supabase for api and docs
for python package Management and running tools use library /astral-sh/uv for docs