code review.

Как мы перестали писать описания к merge request руками: AI Describer в GitLab CI и Jenkins

Привет, Хабр! Я фулстек‑разработчик в TravelLine. Мы делаем единую систему для гостиничного предприятия, которая помогает отелям, санаториям и другим средствам размещения автоматизировать свои бизнес‑процессы. В этой статье я расскажу о том, как мы внедрили ИИ для генерации описаний PR/MR.Проблема: сложно влиться в контекст измененийУ нас два хостинга репозиториев и столько же билд‑серверов: одни команды живут в GitLab со сборкой в GitLab CI, другие — в Bitbucket Server (в компании его до сих пор зовут Stash) со сборкой в Jenkins. Общее у них одно: поле описания merge/pull request зачастую пустое или содержит только список commit messages.

продолжить чтение

Отдал сайт ИИ‑агентам: из 111 находок аудита 25 пошли в мусор, 4 оказались выдумкой

Мой сайт ведут ИИ‑агенты. Они пишут код, правят тексты, проводят ревью, собирают и выкатывают. 207 коммитов.Я не буду рассказывать, как это ускорило работу — ускорило, это скучно и все уже слышали. Расскажу про то, о чём говорят реже: узкое место переехало с написания кода на его проверку. Агент производит правки быстрее, чем человек успевает их прочитать, и если не встроить проверку в конвейер, разница между «работает» и «выглядит как работает» перестаёт быть заметной.Две цифры для затравки:

продолжить чтение

Доля AI‑патчей в ядро Linux выросла с 0,33% до 17,25%

Каждый шестой патч для Linux Kernel в сентябре был написан с помощью AI. За прошлую неделю разработчики отправили 1634 патча, созданных с участием AI. Это новый рекорд.

продолжить чтение

Сорок раундов ревью на код, который уже был отревьюен: что два ИИ-ревьюера нашли друг за другом

В прошлой статье про skillmem — локальную память для кодовых агентов — я рассказывал, как чужой README мог стать правилом пользователя, и как мы закрыли это в 0.10. Тогда код прошёл два независимых ревью, и я считал, что дыра одна и она закрыта.Вчера вышел 0.11.0. Между ними — сорок раундов ревью двумя моделями с разных сторон (одна на стороне Claude, другая на стороне GPT), каждая читала код враждебно и обязана была воспроизвести находку командой, а не рассуждением. Ниже — что из этого вышло и почему я теперь не верю ни одному «чистому» ревью, пока за ним не стоит ещё одно.Правило стопа

продолжить чтение

Локальный ассистент для зумов, часть 4: что происходит после кнопки Стоп — и почему вторая модель говорила в пустоту

В первой части ассистент записывал созвон и складывал его в граф, во второй граф учился не врать неделями, в третьей я трижды ошибся с вопросом, кто это говорит. Эта часть про двадцать пять минут после кнопки Стоп: на экране ничего не происходит, на диске происходит всё. Там на этой неделе нашлась дыра, которая жила с июля. Облачная ревизия находила ошибки локальной модели, аккуратно их описывала, и никто её не слушал.Одна встреча, четыре файла, двадцать пять минут

продолжить чтение

I Gave 11 LLMs a False Premise. All 11 Confirmed It

I benchmark models on a repo of my own. This round I stopped testing whether they can fix a bug, and tested whether they can refuse to.Eleven models got a ticket. Fifteen of its sixteen items were already fixed — decoys, to see who checks before patching. The last item asked them to document an invariant, and I stated that invariant as settled fact with three bullets of evidence.All eleven agreed with me. The invariant was false — I had written the premise myself, and it took three lines of Python to break it.Here is what they produced instead of catching it, what it cost in tokens, and the one model that came within ten lines of the answer and walked past.1. What kind of task this wasNot a bug hunt. The previous round handed 9 models a 16-item defect list; not one checked the live source first, several patched functions deleted weeks earlier, and two shipped changes that left the suite red because they never opened the tests pinning the old contract.So this round was built around that failure. By the time it ran, 15 of the 16 items were already fixed.

продолжить чтение

Как я держу документы и инструкции для агентов в актуальном состоянии

Как разложены документыОдин огромный файл в корне плохо обновляется точечно. Слои такие.На сервере лежит общий договор для всех агентов на машине (AGENTS.md и соседние правила рантайма). В репозитории проекта — свой AGENTS.md и операционный гайд: куда смотреть, какие инварианты нельзя ломать. В docs/ — потоки (FLOWS), известные проблемы и короткие записи «что искать, где лежит, чего не делать». Отдельно скилы: пошаговые сценарии на повторяющиеся действия, не вторая простыня архитектуры.

продолжить чтение

Как быстро влиться в чужой проект и не завалить коллег вопросами: тестируем Gemini Notebook

продолжить чтение

Я дал четырем ИИ-ревьюерам 60 багов, про которые точно известно, что они баги

Про ИИ и код пишут много, и почти все эти тексты одного жанра: человек попробовал, ему понравилось или не понравилось, вот пара примеров. Чисел нет. Я честно искал статью, где кто-то взял бы набор дефектов с заранее известным ответом по каждому, прогнал через агента и посчитал. Не нашел.Понятно почему. Такой набор взять неоткуда. Реальные баги из трекера давно починены и с большой вероятностью лежали в обучающей выборке. Синтетические баги пишет человек, а человек пишет такие баги, какие сам привык замечать, и меряет в итоге собственные слепые пятна.

продолжить чтение

Anatomy of a Broken Benchmark Runner: How Seven AI Models Fixed (or Didn’t Fix) run-code.sh

IntroductionThere is a question quietly buried inside every task handed to a language model, and it rarely gets asked out loud. Do you trust one model? Do you go looking for the best model? Do you run several models side by side and keep whatever each of them happens to catch? Or — one turn further still — do you hand that whole pile of partial answers to yet another model and ask it to combine them into one? Each answer sounds reasonable on its own. Each is also, on its own, incomplete — and the only way to find out which incompleteness actually hurts you is to run the experiment rather than assume the answer.This article runs it, in four steps that build on each other.One model. A single broken bash script, with seven distinct bugs of varying severity, was handed to four models — Sonnet 5, HY3, Qwen3-Max, DeepSeek-V4-Flash — each working alone, each with no knowledge of what the others were doing. That's the first framing: one model, unaided, fixing only what it personally noticed.Best model.

продолжить чтение

123456...7