Interesting part of review, is when you learn something from wiser man code, or teach someone how to do it right.
AI slop is the most horrible for review.
It works, passed CI, everyone are (presumably) happy.
It subtly broke abstractions or introduce new requirements or assumptions on environment which were not here before.
Normally, if someone spend a week writing +5000 -2000 PR, you can respect this person time and spend a day or two, trying to understand deeper reasoning. If you find a flaw in the reasoning, you explain this to the person, and that's another week of work of it.
But with AI you spend a day reading +5000 -2000, find a flow, and your carefully crafted review send to AI which says 'Nicely spotted' and rewrite another +4800 -1800 PR, which someone need to read again, and it can be in complete disregard of what was said in review (if it's too abstract).
The main problem with +5000 -2000, is that if I spend 20 minutes writing an explanation for the problem (even with mvp to highlight the issue), I expect that person to learn something from it.
With LLM it's all wasted time, you get slop back, and next PR will not learn it. Partially it can be alleviated by updating AGENTS.md, but it can't be too large, so long explanation just waste tokens.
So, it's a pipe of slop and you need to review it.
What happens in reality? You skim across codebase, looking for random bits which looks odd, degrading to pattern matching machine. It's impossible to understand +5000 -2000 lines of code in 20 minutes. But they get merged. You accept them, other accept them, but codebase is slowly drifting, so you need code janitor to come and restore original semantic at the end.
Yes, we all do this, and it's terrible. Yes, it's real-politic productivity gains, but there is some kind of horrible built-in negligence in all of this.
AI slop is the most horrible for review.
It works, passed CI, everyone are (presumably) happy.
It subtly broke abstractions or introduce new requirements or assumptions on environment which were not here before.
Normally, if someone spend a week writing +5000 -2000 PR, you can respect this person time and spend a day or two, trying to understand deeper reasoning. If you find a flaw in the reasoning, you explain this to the person, and that's another week of work of it.
But with AI you spend a day reading +5000 -2000, find a flow, and your carefully crafted review send to AI which says 'Nicely spotted' and rewrite another +4800 -1800 PR, which someone need to read again, and it can be in complete disregard of what was said in review (if it's too abstract).
The main problem with +5000 -2000, is that if I spend 20 minutes writing an explanation for the problem (even with mvp to highlight the issue), I expect that person to learn something from it.
With LLM it's all wasted time, you get slop back, and next PR will not learn it. Partially it can be alleviated by updating AGENTS.md, but it can't be too large, so long explanation just waste tokens.
So, it's a pipe of slop and you need to review it.
What happens in reality? You skim across codebase, looking for random bits which looks odd, degrading to pattern matching machine. It's impossible to understand +5000 -2000 lines of code in 20 minutes. But they get merged. You accept them, other accept them, but codebase is slowly drifting, so you need code janitor to come and restore original semantic at the end.
Yes, we all do this, and it's terrible. Yes, it's real-politic productivity gains, but there is some kind of horrible built-in negligence in all of this.
no subject
Date: 2026-04-23 02:39 pm (UTC)И, опять таки, если код обложен тестами, которые пишет автор ТЗ/специально обученный QA, и он их проходит, то мне, по большому счёту, всё равно что и как там внутри тИкает. Задачу решает? Решает. Неоптимально? Да и пофиг, я уже привык к калькуляторам, которые жрут 100М памяти.
no subject
Date: 2026-04-23 06:48 pm (UTC)no subject
Date: 2026-04-23 11:01 pm (UTC)Для клиента, с приходом ИИ, в этой картинке ничего не поменялось.
no subject
Date: 2026-04-25 07:34 am (UTC)Я смотрел умнючую презенташку от Topos Institute, там говорили, что ключевой прорыв в математике возникнет в тот момент, когда формализмы AI можно будет автоматически верифицировать. Они говорили про разрыв между формализмом и математическим текстом.
no subject
Date: 2026-04-23 02:51 pm (UTC)no subject
Date: 2026-04-25 07:39 am (UTC)no subject
Date: 2026-04-23 05:42 pm (UTC)no subject
Date: 2026-04-25 07:36 am (UTC)Видимо, надо адоптить идеи из линукса. Написал? работает? Молодец. Теперь готовь patch queue так, чтобы каждый коммит был произведением искусства и мог быть прочитан независимо.
Надо перестать воспринимать стадию написания как существенную и сфокусироваться на pre/post части.
no subject
Date: 2026-04-25 06:33 pm (UTC)У меня получалось заставить агента прочитать большой коммит (с ветки, полученной на ревью от человека, возможно, вооружённого другим агентом) и разделить его на несколько тематических.
У меня получалось заставить агента прочитать коммит и семантически сребейсить его через крупный рефакторинг меняемых файлов. Ну, то есть, в оригинальном патче файл
fooправится, а в апстриме делится наbarиbaz; ожидаемое — изменения поfoo, применимые к общей частиbarиbaz, применяются к обеим; применимые только к одному — к нему.Если я как кожаный мешок сделал кусок работы +5000 −2000, то это могло произойти в результате двух воркфлоу:
Агентам, в принципе, тоже подходит. В первом случае нужно, чтоб был генеральный план и чтоб коммитилось после каждого пункта. Во втором — таки причёсывание ветки.
no subject
Date: 2026-04-25 08:27 pm (UTC)no subject
Date: 2026-04-26 06:17 am (UTC)Я не очень верю в сущности с 2000 использований в кодовой базе. Обычно — три. Исключение — базовые штуки: логирование, профилирование, конфигурация, файловый ввод-вывод, сеть, dependency injection.
Я не очень верю в переименование сущности с 2000 использований. Обычно — «работает, не трогай».
Я в принципе верю в замену сущности с 2000 использований на новую, с более чистой реализацией. Но она выглядит не как ±2000 в одном коммите, а как построение новой реализации рядом, использование в трёх новых местах, потом постепенный переезд, потом deprecation, потом obsoletion, потом задача на выпиливание трёх оставшихся мест и старой реализации.
Ну, в конце концов, если это реально механическое переименование без риска поломки, то да, имеет право на жизнь. Но это будет отдельный коммит, с пояснением, что тут только механическое переименование, объяснением, почему мы решили это переименовать, и счётчики «+» и «−» будут строго совпадать.
(Если новое имя длиннее старого, то оно в принципе может вести к переформатированию кода. В худшем случае, при использовании конвенций как в
black— «либо все аргументы функции вмещаются на одну строку, либо мы их взрываем каждый на отдельную строчку, да ещё и свешиваем закрывающую скобку» — коэффициент не ограничен разумными пределами; но это и коррелирует с тем, что я, как ревьюер, буду сопротивляться такому рефакторингу.)no subject
Date: 2026-04-27 10:06 am (UTC)no subject
Date: 2026-04-25 06:58 pm (UTC)no subject
Date: 2026-04-25 08:25 pm (UTC)no subject
Date: 2026-04-25 09:22 pm (UTC)no subject
Date: 2026-04-27 10:06 am (UTC)Последствия plan session - больше десятка issue.
no subject
Date: 2026-04-27 05:13 pm (UTC)no subject
Date: 2026-04-28 08:53 am (UTC)Plan session - это обсуждение как делать задачу и какие там проблемы. "Поделить на части по пол-часика" - это просто делать перерывы (вещь полезная), но само планирование надо делать целиком. Либо отказываться, изменять требования, сокращать scope - это всё на самом деле и есть plan session.
Бывают и failed plan sessions. Начал планировать, понял, что не надо это делать от слова совсем. И не всегда оно понятно в начале, часто это результат попытки разрешить противоречия в конце.
no subject
Date: 2026-04-27 05:16 pm (UTC)no subject
Date: 2026-04-28 08:54 am (UTC)no subject
Date: 2026-04-24 08:19 am (UTC)no subject
Date: 2026-04-25 07:39 am (UTC)Или, вообще, переименование. Или переход с одной либы на другую. Вполне себе разумное решение, если новая либа решает проблему, а старая нет.
no subject
Date: 2026-04-25 03:35 pm (UTC)no subject
Date: 2026-04-25 08:28 pm (UTC)no subject
Date: 2026-04-25 08:31 pm (UTC)no subject
Date: 2026-04-26 06:18 am (UTC)no subject
Date: 2026-04-26 10:17 am (UTC)no subject
Date: 2026-04-27 10:08 am (UTC)no subject
Date: 2026-04-27 12:17 pm (UTC)no subject
Date: 2026-04-28 08:51 am (UTC)