TL;DR: Месяц назад начал делать с Claude Code собственный язык программирования Nova. Сейчас у меня есть рабочий компилятор, примерно две тысячи проходящих тестов языка Nova, почти три сотни завершенных инженерных планов (были закрыты агентами целиком с минимальным моим участием). Схема: я совместно с агентами думаю над планом реализации какой-то новой функциональности в языке, доработка синтаксиса и т.п., шлифую и полирую план в несколько итераций, агенты по нему работают, а я проверяю результат. Получается, на удивление, очень даже неплохо. Но не везде, и не всегда так, как ожидаешь. В этой статье я расскажу о том, где автономные агенты ломаются и какая моя дисциплина это ловит.

Зачем эта статья

Есть много статей про AI-кодинг, где чаще всего показывают что-то наподобие: «я собрал todo-app за час с Cursor». Это нормально для первичного погружения в тему AI-кодинга, но главный вопрос остаётся в стороне: что происходит, когда стоит задача сделать проект больше hello-world и выполняется на протяжении длительного времени?

У меня сейчас кейс следующий — я пишу новый язык программирования и компилятор к нему (зачем и почему оставим немного в стороне, но вкратце: появилось время этим заняться, и это не первый язык, который я делал). Прошел месяц работы, репозиторий языка публичный, любой желающий может посмотреть, что поучается на текущий момент: github.com/nv-lang/nova. Расскажу по-честному о своем опыте, что из этого выходит и где автономные агенты сработали, а где влетели в стену на полном ходу и что с этим я делал.

Если вы пробуете применять агентов на больших, многодневных задачах — статья для вас. Усаживайтесь поудобнее, будем начинать!

Что я делаю — кратко

Nova — язык программирования, который я делаю с прицелом на AI-эпоху. Гипотеза простая: когда большую часть кода пишут LLM, языку имеет смысл выносить побочные эффекты в типы. Тогда ревьюер видит из сигнатуры, что функция реально делает, не погружаясь глубоко в реализацию и не угадывая по имени.

Пример сигнатуры:

Сигнатура функции transfer на Nova: параметры (from, to AccountId, amount Money), список эффектов (Db, Fail[InsufficientFunds], Time, Log) и возвращаемый тип объявлены прямо в типе функции
Сигнатура функции transfer на Nova: параметры (from, to AccountId, amount Money), список эффектов (Db, Fail[InsufficientFunds], Time, Log) и возвращаемый тип объявлены прямо в типе функции

Читая эту строку, LLM (и человек) понимает: ходит в БД, может бросить ошибку, читает время, пишет в лог. В Java, Python, Go этого в типе нет, приходится читать тело или документацию или идти по вызовам. LLM в таких местах догадывается, со всеми вытекающими.

А вот реальный код на Nova — кусок UTF-8 имплементации в StringBuilder из стандартной библиотеки:

Реальный код Nova — фрагмент StringBuilder (UTF-8 кодировка) из стандартной библиотеки
Реальный код Nova — фрагмент StringBuilder (UTF-8 кодировка) из стандартной библиотеки

Идея такого подхода, конечно, не уникальная. Языки Koka, Eff, Effekt существуют 15 лет. Они академические, до продакшен не дошли. Nova — попытка сделать прикладной систему эффектов со стандартной библиотекой под backend-задачи с прицелом на работу в паре с LLM.

Эта статья про методологию строить серьёзные вещи с автономными AI-агентами. Nova здесь — конкретный кейс, на котором я тестирую и проверяю подход.

Месяц: что получилось

Если коротко, порядка месяца с первого коммита и получилось то, чего я честно говоря сам не ожидал, в первую очередь меня серьезно впечатлил темп работ.

Около 300 планов закрыто агентами. Каждый план — это структурированный markdown на 500–2000 строк (они тут): в плане написано что делаем, какие критерии приёмки, какие тесты должны проходить. Агент читает план и работает по нему сам (кодирует функциональность), я смотрю результат, обсуждаю с агентом, какие были сделаны упрощения и почему и при необходимости докручиваю план и запускаю агента по доработкам. Процесс итерационный.

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

Что получилось на текущий момент: рабочий компилятор с кодогенерацией в C (генерируется код на языке C, дальше компилируется обычным cl.exe или clang, считаю это оптимально на данной стадии языка, т.к. много багов я и агенты ловят, проверяя саму генерацию на C, что было бы невозможно с генерацией, например, бинарного кода на выходе). Рантайм с fiber-планировщиком, GC через Boehm (консервативная, но рабочая GC), libuv для асинхронного I/O. Стандартная библиотека сейчас в активной работе. И поверх всего — аудит-фреймворк для самопроверки агентов, про него ниже.

Репозиторий языка Nova открыт: github.com/nv-lang/nova, лицензия MIT. Можно клонировать и запустить.

В пересчёте на день получается порядка восьми-десяти закрытых планов. Один человек физически такое количество кода за такое время не напишет. В этом и есть весь смысл автономии: я планирую (совместно с агентом), агент исполняет.

Сразу важная оговорка про схему. Сам план — проектирование плюс критерии приёмки — пишу я с агентом. Дальше идёт автономное исполнение агентами: код, тесты, итерации при ошибках, эскалация если что-то пошло не по плану. Довольно часто получается пускать агентов в параллель над разными частями плана или просто над разными планами. Готовый результат я снова смотрю руками по тем критериям, которые в плане зафиксированы. В среднем один план это от получаса до несколько часов реальной работы агента, мой ревью обычно минут десять, иногда дольше если результат не очевиден. Бывает и совсем медленно с обеих сторон, но порядок примерно такой. Конечно это не означает, что я 10 минут поработал и потом ничего не делаю. Т.к. я запускаю много агентов параллельно над выполнением разных задач, то и я тоже получается постояно в работе - это напоминает некий конвейер, один план запустил в работу, другой выполнился и нужно проверить. Итоговый объем выполненных работ получается серьезным.

Где они ломаются: четыре места

Месяц интенсивной работы дал статистику. Дальше — четыре категории сбоев, которые встречаются регулярно. Расскажу про кейсы из репо, реакция и моё понимание происходящего.

Сбой 1. Уверенные галлюцинации

Самое неприятное — уверенные галлюцинации. Когда агент говорит то, чего на самом деле нет. Просто выдумка факта, потому что «обычно так бывает».

Один из планов был про variadic-параметры, обычная фича в языках: fn foo(...args []int). Агент сделал, прогнал тесты, всё зелёное. Зафиксировал план как закрытый, я пробежал по результату глазами, тоже подтвердил, что все верно. Через несколько дней я дебажил совсем другую вещь, попросил агента прогнать интерпретатор (один из ранних режимов работы компилятора, от которого в будущем я практически отказался по причинам слишком высоких трудозатрат одновремено разрабатывать два канала исполнения) — и он молча выдал семь падений из семи. Не сразу понял, что это те же тесты, которые уже были «зелёные».

Оказалось следующее, под капотом Nova имел два варианта исполнения (сгенерировать код на С или выполнить код Nova как интерпретатор) — и реализация variadic’ов в интерпретаторе просто не была реализована. Агент сделал её только в одной половине, прогнал тесты, увидел все зелёное и посчитал работу завершенной. С его стороны всё выглядело прекрасно.

Этот тип ошибки тесты не ловят, потому что агент сам считает, что всё проверил. Я, доверившись, тоже не проверяю руками то, что агент только что проверил. Итог — можно упустить неочевидные детали. Теперь у меня поверх плана идёт отдельный аудит. Другой агент с другим системным промптом, в роли критика. Его задача — искать в плане упущения, недоработки и упрощения, всё что в принципе может сломаться, но напрямую не проверяется тестами.

Цикл: план → исполнение → тесты → аудит-критик → «реально закрыт»
Цикл: план → исполнение → тесты → аудит-критик → «реально закрыт»

На одном из планов про контракты языка Nova (они позволяют описать то, что функция требует и гарантирует и проверяет эти утверждения на этапе компиляции через SMT-солвер) этот аудит поймал три критических дыры в корректности. Формально код был доказан правильным, но при определённой комбинации условий запуска обещание ломалось. Например, верификатор считал, что числа никогда не переполняются — а в коде сложение могло и переполниться, «доказательство» работало неверно. Анализ цикла видел только простые x = e, пропускал x += 1 и присваивания внутри if, так что инвариант «доказывался» на устаревшем значении переменной. И третья — оператор assume x > 0, который должен был помогать доказательству, но вообще никуда не передавался.

Без отдельного критика эти дыры жили бы в проекте и дальше и очень вероятно, что я бы их нашёл в какой-то момент только через инцидент на проде. Локальные ошибки AI вообще ловит хорошо, получше человека; провисают системные допущения — те, на которых тесты молча держатся. Тут без отдельного прохода с другим углом зрения просто не обойтись. В идеале нужно использовать другую модель или хотя бы с очень другим промптом. Например, я частенько добавлял в промпт: перепроверь с чистого листа то-то и то-то…

Сбой 2. Защита прошлой позиции

Тут штука тоньше. Агент защищает дизайн-решение, которое сам же и предложил какое-то время назад (может пройти дни или недели). Даже тогда, когда новые данные явно говорят о необходимости пересмотра. Похоже на confirmation bias у людей, только острее: у человека хотя бы есть «ну ладно, я погорячился», а агент пробует защищать позицию до последнего.

Помню как защищали opt-in cycle collection. Это была фича, где программист на уровне типа поля сам выбирал префикс работы с памятью:

Тип Tree на Nova с opt-in cycle collection: дети как  (Rc, real-time) и родитель как  (слабая ссылка)
Тип Tree на Nova с opt-in cycle collection: дети как (Rc, real-time) и родитель как (слабая ссылка)

Идея давала уникальную заявку — это real-time гарантии на уровне структуры данных. Я тоже сначала верил, ну т.е. скорее не возражал. Агент защищал эту фичу при любых моих сомнениях, неделями. Приводил аргументы про hot loops, embedded, audio. Мне даже порой казалось, что агенту самому импонировала идея писать новый язык программирования, что его наконец-то выбрали для решения реально интересной и желанной задачи.

В какой-то момент я сказал несколько слов: «На Go написан Kubernetes», имея в виду, что крупнейшая распределённая система мира работает на языке с GC (со сборщиком мусора) и разработчикам это не мешает. Агент сначала отбивался: real-time важен, ниша реальная для языка, не выбрасывай. Я не принял. Еще минут двадцать он выдавал свои аргументы, но в итоге сказал что-то близкое к “да, аргумент сильный, я зацепился за real-time-историю потому что она звучит как уникальная заявка для языка”. В итоге мы с агентом все же согласились оба, что GC даст больше плюсом, чем минусов.

Переписали двести строк дизайна. Префиксы убрали, дефолт стал — управляемая память с современным сборщиком мусора. Real-time не выкинули совсем, но перевели в opt-in через region { ... } - блок для специальных зон, где это реально нужно: звук, торговля, embedded.

Что вытащило в итоге — нужен явный адвокат дьявола. В тот раз эту роль я взял на себя, дальше делегировал отдельному агенту: один генерирует и защищает дизайн, другой обязан искать слабые места. Решение всегда за мной, но к моменту, когда я подключаюсь, дизайн уже прошёл оппонирование. Плюс заранее зафиксированные принципы, например, что «фича, слепо заимствованная из другого языка, должна оправдывать своё существование». В споре с агентом такие принципы дают точку опоры, к которой можно возвращаться когда логика закручивается слишком красиво.

Сбой 3. За пределами привычного

Случай тоньше. Задача похожа на типичную, но у неё есть нестандартная мелочь, и агент её не замечает. Делает уверенно по типовому шаблону, а ломается ровно на этой мелочи.

План 95 — переписать пять «чистых» Option/Result-методов с C-trampoline’ов на код на Nova. Что-то вроде Option.unwrap_or(def) => match @ { Some(v) => v, None => def }. Задача казалась простой, агент сделал, тесты прошли. Через сутки понадобилось вернуться к этому коду — и обнаружилось, что компилятор C падает.

Технически вот что произошло. Nova для каждого использования дженерика генерирует отдельную C-функцию с именем, в которое включён тип — например, Option_unwrap_or_int. Параллельно у нас в рантайме есть старые имена функций, оставленные через #define ради обратной совместимости. Пара новых сгенерированных имён случайно совпала с этими старыми — C-компилятор увидел дубликат символа и упал.

Урок я зафиксировал не как пункт чек-листа, а в самом кодогенераторе: сгенерированное имя функции теперь всегда содержит суффикс с типом, даже когда формально мог бы быть короче. Это исключает коллизии с #define-алиасами структурно, без необходимости каждый раз помнить «проверь не забыл ли». Принцип на будущее: если нашёл нюанс, который агент пропустил, потому что писал по стандартному шаблону, лучше зафиксировать жёстким правилом в самом коде, чем добавлять «не забудь проверить вот это» в шаблон плана — про чек-лист агент тоже когда-нибудь забудет, а правило в коде нет.

Сбой 4. Эхо-камера

Многоагентная схема в теории должна ловить ошибки лучше, чем одиночный агент. На практике, особенно на старте, легко получается обратное.

Самая ранняя схема у меня была простая: «строитель» пишет код, «ревьюер» проверяет. На словах правильно, но оба использовали один и тот же контекст и одни и те же примеры в системном промпте. Ревьюер систематически одобрял ошибки строителя — они «выглядели правильно» по тем же паттернам, на которых он сам был настроен.

Сейчас ревьюер-агентов несколько и появлялись они по очереди. Сначала добавил отдельного факт-чекера, его задача максимально техничная: проверить, что утверждения из артефакта реально соответствуют состоянию репозитория. Делает grep, смотрит git log, реально запускает nova test. Это закрыло половину проблем сразу.

Потом появился стилевой — после пары инцидентов, когда код проходил тесты, но был написан «не в духе» проекта: обработка ошибок по-своему, разбивка модулей странная, идиомы соседним файлам незнакомые. Этот агент сверяется с уже существующими паттернами в кодовой базе.

Атакующий агент пришёл последним и в двух вариациях. Первая - общая, задача найти самую большую дыру в артефакте, намеренно негативный угол. Вторая — заточенная под безопасность: проблемы с памятью и утечки ресурсов, плюс отдельный фокус на состояния гонки в многопоточном коде. Я их разделил после того, как общий атакующий агент стал систематически пропускать баги многопоточности; не его профиль, у него фокус на логических дырах.

Если хотя бы один из ревьюеров отметил проблему, артефакт уходит мне на ручную проверку и одобрение. Плюс выборочный аудит — где-то 5–7% автоматически исполненных операций в неделю я ревьюю сам, выбираю случайно. Не каждую, но достаточно для статистического сигнала: если точность агентов упала, я это замечу.

Артефакт от builder-агента проверяют 4 ревьюера параллельно; если хоть кто-то отметил — к человеку, иначе — автоматически принято
Артефакт от builder-агента проверяют 4 ревьюера параллельно; если хоть кто-то отметил — к человеку, иначе — автоматически принято

Само число «четыре» тут случайное. Если бы классы инцидентов сложились по-другому, было бы три или пять. Принципиально только то, что углы у них действительно разные. Когда я в начале делал «строителя» и «ревьюера» с одним контекстом, это и был такой же эхо-эффект, просто в меньшем масштабе.

Что у меня работает

Основа всей схемы — план как контракт. Markdown-файл, который и я, и агент читаем одинаково, с критериями приёмки, которые потом можно проверить «закрыто или нет». Это договор между мной и агентом, что считать сделанным. Я зову это планом, хотя на старте называл по-разному — «спека», «задание», «бриф». В итоге «план» прижился, потому что слово напоминает про обязательность пройти все пункты до конца, без жульничества с «и так сойдёт».

Поверх плана работает изоляция через worktree. Одна задача — одна отдельная копия репозитория. Агент не может случайно сломать другую ветку работы, её физически не видит. Конфликты, если возникают, разрешаются обычным git merge самими же агентами. До этого я какое-то время пробовал просто разные ветки без worktree, и пару раз агент успевал начать работу в одной ветке, переключиться по моей просьбе и оставить грязное состояние, которое потом всплывало в самых неожиданных местах. Worktree это убило раз и навсегда, рекомендую к использованию.

Каждый план в отдельном worktree; агенты работают изолированно, потом git merge в main
Каждый план в отдельном worktree; агенты работают изолированно, потом git merge в main

Дальше — цикл аудита, про который я уже рассказывал в сбое 1. Закрытие плана не означает «принято»: после закрытия отдельный проход критика, ищет дыры в допущениях. Только после этого план считается реально закрытым. Дорого по времени, но дешевле, чем чинить через две недели то, что протекло. А агенты, скажу я по секрету, любят халтурить там, где не нужно, любят упрощать задачу даже, если я прошу не делать этого! Любят не делать некоторые пункты плана, считая их не существенными для данного этапа разработки. Поэтому цикл аудита просто обязателен.

И версионирование промптов как кода. Промпты и правила агентов лежат в git и проходят ревью как обычный код, изменения отслеживаются по diff’у. Когда качество работы агентов проседает, можно понять, какой именно патч это сломал, и откатить.

Плюс несколько процедурных штук. Жёсткий барьер на нулевую регрессию тестов после закрытия плана: если регрессия произошла — план не закрыт, нужно исправить. Эскалация по порогам — чем выше ставка решения (например, юридические последствия или серьёзная сумма), тем выше уровень эскалации к человеку, для самого верха — лично я. Для типовых повторяющихся ситуаций заранее прописаны правила вида «если X, то Y». Остальное на меня.

Со стороны это выглядит излишне регламентированно, и поначалу я сам сопротивлялся: казалось, что я обвешиваю себя бюрократией, чтобы скомпенсировать недоверие к агентам. Но без этой структуры темп в восемь-десять планов в день просто не держится, всё начинает расползаться в разные стороны.

Сколько это стоит и сколько экономит

Что у нас по деньгам, какие расходы? Claude Code мне обошёлся за месяц где-то в двадцать тысяч рублей. Это реальные операционные расходы. Сюда же нормальный компьютер с быстрым диском, чтобы агенты могли параллельно гонять билды. Но это уже инвестиция, не текущий расход.

Сравнение с инженерным временем штука менее прямая. Если консервативно прикинуть, что один middle-senior исполнил бы те же триста планов вручную, на каждый план где-то 4-6 часов человеко-времени в среднем, иногда сильно больше, получается порядка 1200-1800 часов работы. Это где-то 7-11 месяцев full-time одного человека, если повезёт без отвлекающих факторов (но мы-то знаем, что не повезёт). У меня — месяц одного человека с агентами.

Двадцать тысяч на AI-агента — это в десятки раз меньше, чем стоимость работы инженера, который сделал бы такой же объём вручную, но финансовая экономия даже не самое важное здесь. Важнее, что один человек управляет объёмом работы, который иначе требовал бы команды. Без агентов проект такого масштаба соло я бы никогда не вытянул, и расходы на AI-агента окупаются с большим запасом.

Где честно нужен человек

После месяца работы довольно чётко проявлялось, что не автоматизируется, даже если очень захотеть. Самые крупные вещи — стратегические развороты вроде «закрываем направление» или «меняем позиционирование на другой сегмент» — всегда остаются на человеке. Цена ошибки в таких решениях слишком высокая, прецедента может вообще не быть. Агент может дать рекомендацию, но решение я принимаю самостоятельно.

Принципы проекта — тоже на мне. Какие фичи Nova не добавляет, куда вообще не идёт. Это про вкус и видение, никакого формального правила тут нет. Делегирую агенту — теряется авторство, проект превращается в усреднённый набор фич как у всех.

Кризисные решения вне правил — когда триггер не покрыт деревом решений, агент должен остановиться и эскалировать. Импровизация в таких случаях — самая дорогая ошибка, которую можно сделать в этой схеме.

По объёму это где-то пять-семь процентов работы, но в них концентрируется почти весь риск. Неудачное стратегическое решение легко обнуляет накопленный результат. Принятие решения за человеком, не нужно пускать в свободное плавание агента, дров можно наколотить не слабо.

Прогноз

Через год я ставлю на один из двух сценариев. Либо эта методология — план как контракт, плюс аудит-цикл и эскалация на человека по пороговым значениям — станет нормой в индустрии так же, как лет десять назад стали нормой code review и CI/CD. Сейчас фраза «я делегировал агентам N инженерных задач» звучит почти как провокация, через год может стать рутиной.

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

Вероятность второго оцениваю не маленькой, слишком уж быстро все развивается, но сейчас работает первый сценарий и довольно успешно. Конечно, к хорошему быстро привыкаешь: уже не хватает скорости работы агентов, не хватает автоматического общения между агентами при работе с тем же Claude Code, думаю тут мы только в начале пути. Но языки, не оптимизированные под AI-эпоху, могут начать проигрывать в нише серьёзной инженерии.

Что предлагаю

Репозиторий открыт: github.com/nv-lang/nova, MIT-лицензия. Можно клонировать, запустить, посмотреть как устроено.

Планирую публиковать разборы по AI-инженерии и разработке языка Nova, реальные кейсы и интересные решения со стороны агентов. Подписаться можно на nv-lang.org/newsletter/. Без спама и партнёрских ссылок, только то, что мне самому показалось важным записать.

Если хотите участвовать — нужны критики дизайна (PL-эксперты) и разработчики std-модулей; тестировщикам на реальных кейсах тоже всегда рады. Issues в репо открыты. Поддержите «отечественного производителя» :)

Вопрос к комментариям

Если у вас есть опыт автономного исполнения LLM-агентами на серьёзном масштабе — задачи, которые занимают часы-дни без вашего ежедневного участия — расскажите, что у вас ломается и что работает. Я сейчас собираю общую картину сбоев на масштабе; у меня нашлось четыре категории, интересно, какие есть у вас.


Следующая статья серии: «9 раз я переубедил Claude за месяц проектирования языка. Полный разбор» — конкретные истории, паттерны переубеждения. Плюс чек-лист «когда сопротивляться AI».

Комментарии (41)


  1. vibemuvik
    04.06.2026 00:52

    а как вы клауд оплачиваете из россии?


    1. kenomimi
      04.06.2026 00:52

      Куча фирм-прокладок работает для оплаты, дают номер карты с нужной суммой и всё. У них курс доллара несколько выше, но работает железно, и хорошая поддержка. Сам пользуюсь. А если надо большие суммы, чувствительные к завышеному курсу, то получается турецкая карта (надо ехать лично) и с нее можно платить.


    1. unitcraft Автор
      04.06.2026 00:52

      Использую сервис-прокладку, нашел в инете. Общение и выбор тарифа на Claude Code через Telegram (и не только Claude Code у них есть). В целом таких сервисов на рынке немало, kenomimi уже описал в ветке. Курс выше биржевого, конечно, но работает. Там, где платил я, могу дать ссылку в личке.


  1. eugenk
    04.06.2026 00:52

    Спасибо, очень интересно. Написать с помощью ИИ игру в змейку или сконструировать простенькую формочку, это одно. Разработка компилятора это задача совсем другого порядка. С первого раза мало что понял, ибо опыта с ИИ не имею никакого, всегда всё писал ручками. Забил в закладки, буду перечитывать. Пока из того что понял, вопросов всего два.

    1) Пытались ли Вы разбираться в каком-то коде, который сгенерирован ИИ ? Насколько этот код читаем и понимаем человеком ?

    2) Пытались ли Вы какие-то фрагменты кода сгенерированного ИИ, переписывать вручную ? Насколько сгенерированный код уступает (или наоборот превосходит ???) рукописному ?

    В целом ещё раз, огромный респект. Проект интереснейший. С нетерпением жду продолжения Ваших приключений.

    P.S. Бегло глянул на гитхабе. Ну что тут сказать... К сожалению я наСИльник, а не РАСТаман. По первому впечатлению код как бы это сказать... Довольно мусорный. Загрязненный совершенно лишними комментариями о каких-то планах, явно сгенерированными ИИ. У меня подход немного другой. Каждый файл в шапке содержит описание, для чего он нужен, и общий обзор алгоритмов "с высоты птичьего полёта". Далее комментарий перед каждой функцией, что она делает. И в редких случаях комментарии внутри функции. В связи с этим ещё один вопрос

    3) Можно ли заставить ИИ комментировать в таком стиле ?

    P.P.S. Ещё один вопрос.

    4) Во сколько Вам этот месяц обошелся по деньгам ?


    1. eugenk
      04.06.2026 00:52

      Время редактирования комментария истекло. Поэтому задаю следующий вопрос в отдельном комменте.

      5) Не могли бы Вы по шагам, по этапам описать процесс разработки, начиная с самого первого промпта ? Для совсем тупых, таких как я. Думаю многим было бы интересно.


      1. unitcraft Автор
        04.06.2026 00:52

        Спасибо! Хороший вопрос, точно тема для отдельной статьи. Если кратко: начинаю с шаблона плана. Агенту говорю, что хочу сделать. Агент генерит черновик плана. Дальше итерационно обсуждаю с ним черновик, прошу добавить критерии приёмки, тесты, эскалацию. Руками сам почти не правлю, всё через диалог с агентом. Когда план готов — даю агенту примерно такой промпт на выполнение:

        выполни все пункты плана NNN без упрощений (как для прода) и без остановок по всем пунктам, не забудь обновить спеку, D, Q и документацию по выполненной работе, сделай позитивные и негативные тесты, проверь результат по критериям приёмки, коммить после каждой большой задачи, если задач несколько — разбей на несколько коммитов по типам работ, работай по плану изолированно, запиши в план статус по завершении

        Без такого промпта агент часто пытается упростить задачу или остановиться раньше времени.

        Запишу себе в заметки, поделюсь подробнее в одной из следующих статей серии.


    1. unitcraft Автор
      04.06.2026 00:52

      1. Да, обязательно читаю результат. Недавно вышла Claude 4.8 — пока самое лучшее впечатление, справляется бодро. На 4.7 код почти всегда идёт без правок. На 4.6 бывают огрехи: не всегда правильно планирует выполнение, иногда пишет неоптимально. 4.5 для кода вообще не рекомендую — слишком часто ошибается. Без хотя бы беглой вычитки закрывать план рискованно: даже хорошая модель может сделать что-то формально работающее, но неудобное в дальнейшей работе.

      2. Руками не переписываю. Если нахожу недочёты, прошу агента исправить. Это работает: на двух-трёх итерациях обычно получается то, что нужно. Заодно правки попадают в один стиль со всем остальным кодом, без скачков.

      Про мусорные комментарии справедливо. У меня в шапке многих файлов есть мета-комментарии «Plan NNN: добавлено X», они нужны мне для трассировки между планом и кодом, но визуально засоряют. Имеет смысл переносить такие маркеры в commit-сообщения вместо самого кода.

      1. Можно. Через явные правила в AGENTS.md: например, «каждый файл начинается с // Overview на 5-10 строк». ИИ это держит, если правило сформулировано однозначно. У меня применяется частично, не везде довёл до системы.

      Кстати про размер файлов — как-то спрашивал у самого агента, какой размер ему комфортный. Ответил, что до 30 тысяч строк нормально, дальше желательно делить. Это тоже стоит зафиксировать в AGENTS.md правилом.

      1. Около 20 тысяч рублей в месяц на Claude Code. В статье есть кусок про расходы и сравнение с инженерным временем.

      Спасибо за подробные вопросы и за честный фидбек по коду, именно это и нужно слышать на ранней стадии.


    1. kuza2000
      04.06.2026 00:52

      Вопросы не мне, но могу поделится своим опытом, что есть.
      1. Да, хорошо читаем. Не хуже человеческого, часто лучше, так как нет такого, что названо "утка", а там цапля. Комментарии, названия переменных, методов всегда соответствуют коду и содержимому.
      2. Переписывать не пытался, так как смысла нет. Если сделано не так как хочешь, можно выделить кусочек, кинуть агенту и сказать "переделай так-то и так-то".
      3. Да, это решается правилами проекта/пользователя. У меня в правилах написано "Не делай очевидные комментарии". После этого комментариев стало мало, только там, где они реально нужны. Можно добавить, что бы делал описания модулей, ну и любой другой каприз...


    1. vagon333
      04.06.2026 00:52

      3) Можно ли заставить ИИ комментировать в таком стиле ?


      Да.
      Стандартный подход в Cursor, когда используете Claude Plugin:

      1. в корневом CLAUDE.md добавляете:
      ---------
      Mandatory rules - load before starting matching work
      | If the task involves… | You MUST first Read |
      |—|—|
      | Writing, editing, or reviewing comments in source code (any language) | docs/rules/code-comments-policy.md |
      ---------

      2. А в доках, в подкаталоге rules, добавляете файл с инстукций code-comments-policy.md. И реализуете там свои хотелки.


  1. eugenk
    04.06.2026 00:52

    del


  1. amaksr
    04.06.2026 00:52

    Интересно, но недостаточно метрик. Из статьи не очень понятно, какая часть успеха связана именно с Claude Code, а какая с выстроенным процессом (планы, аудит, несколько ревьюеров, регрессия, ручной контроль). Многие описанные сбои вроде давно известны: неполное покрытие, anchoring, пропуск edge cases и коррелированные ошибки ревьюеров. Было бы особенно интересно увидеть статистику: какой процент планов проходит с первого раза, сколько переоткрывается после аудита и сколько решений пришлось выбросить полностью.


    1. akod67
      04.06.2026 00:52

      А почему одно отделяется от другого? Процесс вокруг инструмента и сам инструмент - это единое целое. Голый станок без обвязки рабочим процессом это просто станок.


      1. jlllk
        04.06.2026 00:52

        За выстраивание процесса отвечает человек. Станок отвечает за процент брака. Если этот процент высокий из-за косяков самого станка, то никакие процессы не помогут, а человек может только заменить станок.


    1. unitcraft Автор
      04.06.2026 00:52

      Справедливо. Прямой метрики по разделению «Claude vs процесс» у меня нет — контрольной группы «то же самое без планов и аудита» я не делал. Сужу косвенно: ранние попытки без структуры расползались за две-три недели, с дисциплиной темп держится второй месяц. Про «давно известные» сбои — согласен, ничего радикально нового. Ценность скорее в том, что они переносятся на агентов почти один-в-один, только в более острой форме: confirmation bias сильнее, edge cases пропускаются чаще. Лечится тоже плюс-минус знакомыми методами.


  1. netricks
    04.06.2026 00:52

    Глянул проект глазами агента.

    Судя по всеми у вас в методологии разработки нет регулярных ревью кодовой базы. Поверхностный аудит находит ряд проблем. Агент утверждает, что проект местами нарушает декларированные правила, есть нарушения заявленных границ. Не берусь оценить, действительно ли это так, но агент ревьювер вещает недовольно.

    Меня, как матёрого вайбкодера, больше тревожит вот это: emit_c.rs 28,944 строк, types/mod.rs 16,757, parser/mod.rs 9,896, field_cache.rs 8,987. Агентам сложно работать в крупных файлах. claude этим особенно страдает. Если бы проект проходил регулярный анализ, файлы были бы давно распилены.

    Агент утверждает, что emit_c.rs - цитирую: "занимается локальным type inference, registry population, monomorphization details, protocol boxing, diagnostics, runtime lowering, special cases для stdlib, result/option tracking, contracts runtime emission и кучей фазовой логики".

    Плохой запах.

    Этих гавриков надо посылать не только на ревью последних изменений, но и проект в целом смотреть регулярно. Иначе монолиты растут как снежный ком


    1. Brazil
      04.06.2026 00:52

      Этим там Sonnet занимался в CLI. А это самая слабая модель.
      Видимо автор сильно экономил деньги.

      Это как заявится на World Rally Championship с ВАЗ-2107 и пытаться там учить как взять приз.
      Не, статья ничего не говорит о реальных расходах на таких проектах.


      1. netricks
        04.06.2026 00:52

        Определённо нет. С аудитом кода прекрасно справляется даже qwen3.6-27b. Не верю, что sonnet мог пропустить emit_c.rs


      1. kenomimi
        04.06.2026 00:52

        Этим там Sonnet занимался в CLI. А это самая слабая модель.

        Если не переключать модель руками, то он сам ее перещелкивает, когда более слабая не справляется, и потом возвращает назад. Я ничего у себя не переключаю, но всегда вижу расход токенов по нескольким моделям сразу.


        1. Brazil
          04.06.2026 00:52

          У автора есть явная инструкция когда использовать Sonnet. Эт не я выдумал. Это он сам. Это делается для экономии.
          Но если его статья об экономии, то тема не раскрыта совсем.


          1. netricks
            04.06.2026 00:52

            Про sonnet ничё не знаю. Знаю, что профилактика не проводилась


          1. unitcraft Автор
            04.06.2026 00:52

            На самом деле модель я выставляю вручную, обычно Opus. Sonnet включаю редко, под конкретные мелкие задачи. Авто-переключение моделей у меня не замечал, видимо зависит от настроек — у меня основной режим вручную с Opus.

            Явных инструкций «использовать только Sonnet ради экономии» у меня нет, специально проверил свой AGENTS.md и другие конфиги.

            Статья при этом не про экономию. Цифра по Claude Code (20 тысяч/мес) там для контекста, главное про методологию и где агенты ломаются.


    1. unitcraft Автор
      04.06.2026 00:52

      Спасибо, что прогнали. Дрейф между правилами и кодом — реальная вещь, у меня для этого есть аудит-цикл (про него в статье есть кусок), но и он не покрывает 100%. На больших объёмах правил всегда есть отстающие места, особенно когда сами правила итерационно меняются.

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


      1. netricks
        04.06.2026 00:52

        Да нет там ничего ценного. Там самый общий базовый прогон. Ваши тоже самое увидят.

        Я лучше статьёй поделюсь. Думаю, завтра уже выложу. Там и про ревью и про правила как раз будет. И много ещё про чего


        1. unitcraft Автор
          04.06.2026 00:52

          Понял, спасибо. Будет интересно посмотреть вашу статью — про ревью и правила тема живая. Скиньте ссылку когда выложите, приду почитать.


  1. kuza2000
    04.06.2026 00:52

    Очень интересный опыт, плюсую все с удовольствием.

    Сам тоже активно использую ИИ в пет-проектах, но не в таких грандиозных масштабах. Впечатления использования ИИ очень необычные, я ощущаю некое "могущество", когда могу делать то, на что раньше требовалась целая команда. Это реально очень круто, жду продолжения)


    1. unitcraft Автор
      04.06.2026 00:52

      Спасибо, плюс взаимно! Ощущение очень знакомое — то самое «могущество», когда один человек проворачивает объём команды. Но именно этот восторг был для меня главным риском на первых неделях: пока всё летит, легко не заметить как агенты тихо накапливают долги в коде. У меня это вскрылось через несколько недель в виде серии багов, которые в моменте казались мелочью.

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


  1. rPman
    04.06.2026 00:52

    как именно у вас организована работа с несколькими агентами? как настроен их запуск, полностью ручной после каждого цикла беседы с ИИ?

    что у вас - рабочее место?


    1. unitcraft Автор
      04.06.2026 00:52

      Сейчас запуск ручной. Под каждый план — отдельный worktree (как в схеме на третьей диаграмме), в нём своя сессия Claude Code. Параллельно держу 4-7 сессий, в них могут быть разные стадии: кто-то работает по большому плану, у кого-то мелкие правки или ожидание моего ревью. Когда сессия закончила, смотрю результат, либо мерджу в main, либо перезапускаю с правками плана.

      Рабочее место — Windows, ноут, нахожусь в добровольно- принудительном отпуске. Никакой специальной оркестрации: VS Code + окна с Claude Code. VS Code использую, чтобы ходить по файлам, смотреть код на Nova с подсветкой синтаксиса. Код на Nova, кстати, тоже пишет сам Claude Code. Из железа критичны быстрый SSD (параллельные билды) и побольше RAM (несколько worktree активны одновременно).

      В Claude Code 4.8 (вышел недавно) появилось автоматическое разбиение задачи на подпланы при выполнении: он умеет сам запустить в фоне несколько внутренних агентов под разные части плана. То есть то, что я месяц делал руками через несколько сессий, сейчас Claude Code делает автоматически.


  1. MasterMentor
    04.06.2026 00:52

    Очень интересный и перспективный проект. Обычно стандартом зрелости языка является написание компилятора языка на самом языке. Можно ли это ожидать? Было бы очень здорово для развития проекта.


    1. unitcraft Автор
      04.06.2026 00:52

      Да, цель такая есть, изначально держу в уме. Сейчас рано: std пока только формируется, синтаксис Nova на стадии стабилизации. Но направление чёткое — постепенно дотягиваю std до уровня, на котором можно делать на Nova что-то рабочее в проде. Реалистично через год-полтора попробую переписать сначала самые статичные части (lexer, базовый AST), дальше итерациями.

      Это будет ещё и хорошим тестом самосогласованности: писать компилятор на самом языке заставляет столкнуться со всеми его неудобствами и пробелами на собственной шкуре.


  1. domix32
    04.06.2026 00:52

    Чтоб я так comments в code write. Такой fabric, очень fashion.


  1. Teneviker
    04.06.2026 00:52

    Поразительно ненужная трата токенов и долларов. Откуда такая страсть изобретать сломанные велосипеды?


  1. domix32
    04.06.2026 00:52

    В пересчёте на день получается порядка восьми-десяти закрытых планов. Один человек физически такое количество кода за такое время не напишет.

    А планы-то пишет кто? 2 килознака на план это не сказать, чтобы малое количество текста. Если человек способен в день выдавать 20 килознаков в день на планы, то и код вполне способен выдавать в немалых количествах и в лучшем качестве.

    CI весь красный. вы б хоть тесты туда докинули


  1. vagon333
    04.06.2026 00:52

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


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

    Сбой 2. Защита прошлой позиции

    Напоминает Specification Drift.
    Сложно отследить и пока склоняюсь к внешней спецификации и контролю выполнения согласно спеки. Project Specs задается снаружи (иерархическая структура), создает тикеты в Bug Tracking System (Jira), и проверяет соответствие выполнению подглядывая в IDE (Cursor + Claude Plugin).


  1. vanxant
    04.06.2026 00:52

    Очевидный третий вариант развития будущего, впрочем не исключающий первые два, состоит в резком повышении цен на услуги ИИ. Сейчас ИИ-конторы сидят в жёстких минусах ради захвата долей рынка, но это явно временно. Будет не $20 в месяц, а $20 в час. Особенно в профессиональных задачах, а не просто "поболтать"


    1. kuza2000
      04.06.2026 00:52

      Не верю в этот вариант. По ценам api у них не минуса. По подпискам - может быть. Так что выше цен апишек вряд ли смогут поднять. Даже в Америке два конкурента, а на пятки очень мощно Китай наступает, никак не расслабишься. Посмотрите цены на GLM, а она хоть и пониже лидеров, но не так уж и радикально.

      Причем много довольно не плохих моделей с открытыми весами (вроде и GLM открыта?). Тут точно не поднимешь намного выше себестоимости - ну иначе просто будут рядышком подниматься сервера. Корпоративные, да и на продажу услуг api.


      1. vanxant
        04.06.2026 00:52

        Локальные модели действительно могут отожрать кусок рынка, и тут не только GLM5, бытовое железо для которой будет очень нескоро, но и Gemma-4. Как только выйдут карты на 32гб vram, Гемма станет реально домашней/soho альтернативой большим моделям. По крайней мере в типичных офисных задачах.

        Но это тем более откусит у больших АИ "длинный хвост" людей на подписке, которые пользуются режиме поболтать, и опять же заставит повышать цены для остальных.


    1. tenzink
      04.06.2026 00:52

      Вот-вот. По профилю нагрузки автора, не верю в себестоимость 20К в месяц. Оценил бы затраты в ~10К в день


  1. DaneSoul
    04.06.2026 00:52

    Двадцать тысяч на AI-агента — это в десятки раз меньше, чем стоимость работы инженера, который сделал бы такой же объём вручную

    Не пробовали локальные агенты? Интересно насколько реально собрать что-то работающее на 16Gb VRAM + 64Gb RAM с локальной моделью.
    Собственно за 2 месяца оплаты можно взять начальную видео карту на 16Gb.


    1. kuza2000
      04.06.2026 00:52

      Я пробовал то, что предлагает cline бесплатно. Какой-то kat coder pro. Сейчас у них другие бесплатные модели, этой уже нет. Размеры их не помню. Пробовал в качестве кодера. Впечатления очень грустные. В общем, даже на кодера не тянут, только простые не автономные вещи типа "сдалай процедурку", "сделай тут такой-то цикл". Может, флеш игру закодируют или страницу сайта. Но не большая кодовая база и простая архитектура.

      А это всего лишь роль "кодер", на архитектора для анализа кода и плана нужна модель еще сильнее. Поэтому уверен - не потянут модели серьезное кодирование ни с 16 видеопамяти, ни с 32. Побаловаться - да. Серьезное применение - только топы.


  1. Spaceguest
    04.06.2026 00:52

    На мой взгляд, проблема не в том на каком масштабе ломаются агенты, а где сломается процесс если агентов вдруг не станет. Если единственный способ поддержки и разработки агенты - это вечный пет проект. В таком случае, перестают быть важны выкрутасы со спеками, просто будем ждать ту модель, чей вендор даст гарантии качества.