Работаю с Claude Code каждый день, поэтому слежу за развитием Anthropic внимательно. Что меня в этой истории цепляет больше всего: не сам запрет, а прецедент. Anthropic отключила доступ для всех, а не только иностранцев, чтобы не нарушить экспортные ограничения. Фактически одно административное решение США заставило компанию жертвовать платящими пользователями глобально. До этого экспортный контроль распространялся на чипы, NVIDIA A100 не продать в Китай, но код ты пишешь сам. Теперь объектом ограничений стали веса конкретной модели. Если эта логика распространится, следующий шаг, экспортные лицензии на API-ключи, и тогда гражданство разработчика становится частью инфраструктурного риска для любой команды.
С позитивным подкреплением согласен, «вот как делаем» работает лучше «никогда так». Но в нашем CLAUDE.md держим и то, и другое: позитив задаёт направление, а негативный пример помогает с граничными случаями когда правило нарушается неочевидно. Интересно про граф, что используете, что-то собственное или готовый инструмент?
Совпадает с тем, что вижу в ежедневной работе с Claude Code. У Claude есть устойчивая привычка: перед деструктивными действиями делать паузу, уточнять, предлагать обратимый вариант. Это иногда замедляет разработку, но ни разу не приводило к потере данных. С другими агентами такого не было. Похоже, выравнивание и осторожность это не отдельный режим модели, а сквозной поведенческий паттерн, который проявляется и в коде, и в симуляции.
Это как раз то, что вижу с Claude Code в продакшене. Агент без ограничений стягивает зависимости из 15-20 файлов в одну функцию: технически работает, но человеку потом надо держать в голове весь этот граф, чтобы что-то изменить. Вышел из ситуации через CLAUDE.md: явные границы модулей, правило не больше 3 зависимостей в методе, запрет на импорт через 2 уровня. Когда добавил эти ограничения, читаемость выросла, а агент не потерял скорость. Ограничение контекста как компенсация когнитивной асимметрии.
Видел несколько таких продуктов за последние время. Красивый лендинг, работающее демо, берёшь первый аудит по OWASP: ключи AWS в клиентском коде, JWT без проверки подписи, SQL без параметризации. AI тут не виноват, он написал то, что попросили. Проблема в том, что вайбкодер не знает вопросов, которые нужно задать: что хранится, кто имеет доступ, что падает если ключ утечёт. Инженер с тем же AI строит иначе именно потому, что у него есть этот список.
Согласен, это пост, а не статья, формат осознанный. Несколько коротких наблюдений из ежедневной работы, без разделов и схем. На Хабре оба формата существуют, этот ближе к заметке из практики.
Хорошая точка для замера. Самый интересный момент здесь не интерфейс, а то что модель самостоятельно заложила мораль в баланс. Это ближе к системному мышлению чем к синтаксису. Используем Claude Code на 200к строках TypeScript в agentic-режиме, и разрыв между «одним промптом» и «реальным продуктом» чувствуем каждый день: один запрос отлично, но системный дрейф через 3 месяца инструмент не видит. Fable 5 заявляет «держит контекст и проверяет себя». Было бы интересно протестировать на длинной архитектурной задаче, не на геймдеве.
Работаем с такой же структурой в CLAUDE.md, только на уровне проекта а не разового запроса. Из 10 блоков больше всего весят «Критерии готовности» и «Ограничения с примерами». На практике заменили почти все правила на примеры из кодовой базы: не «никогда не используй X», а «вот что сломалось в прошлый раз когда использовали X». CLAUDE.md вырос до 8000 слов и стал работать хуже чем на 2000. Агент перегружается не от количества блоков, а от абстрактных запретов без контекста.
Шаг с контекстом из кодовой базы самый сложный на практике. Мы тестировали несколько подходов на 200к строках TypeScript: diff без контекста даёт 70-80% «очевидных» замечаний которые и без того поймает линтер. Полезные находки начинаются когда в контекст попадают зависимые модули и тесты. Но граница «сколько контекста достаточно» каждый раз разная. Маленький PR с одним изменением интерфейса может затрагивать 15 файлов которые модель не видит.
У нас Claude Code, но для изолированного контура не подходит. В вашем сценарии смотрел бы на DeepSeek V3 или Qwen2.5-Coder-32B: оба сильные в коде, запускаются локально, по цене на порядок ниже. Галлюцинационные циклы лечим делением задачи на подзадачи и жёстким лимитом на размер контекста, совпадает с вашим опытом.
То что модель нашла zero-day в JS-движке Firefox звучит как маркетинг, но для меня это конкретный сигнал о возможностях code analysis. Я каждый день доверяю Claude Code ревью кода на 200к строк TypeScript. Разница между «модель видит ошибки» и «модель видит эксплоиты» не такая большая, как хочется думать. Маркетинг вероятно есть, но за ним реальный скачок в понимании кода.
Confused deputy, точная формулировка. У нас в Claude Code решается на двух уровнях: settings.json явно разрешает конкретные инструменты (bash, edit, write), всё остальное требует подтверждения. CLAUDE.md на уровне модуля ограничивает что агент видит, только релевантный контекст, а не весь проект. Не панацея, но снижает радиус ущерба. Для задач с внешними системами держу human-in-the-loop обязательным.
Узнал историю: тот же паттерн, агент не справляется на старте, потом находишь ключ. У нас в JS-проекте переломным стало не добавление документации фреймворков, а примеры из нашего кода с пометкой «так делаем» и «так не делаем». Агент начал воспроизводить наши паттерны, а не книжные. Ограничения с архитектурными задачами тоже знакомы: не справляется там где нужно удерживать контекст 10+ файлов одновременно.
По автомоду согласен, у меня скиллы через using-superpowers автоматически подтягивают нужные файлы в начале сессии. /compact запускаю вручную когда вижу предупреждение про 80%+ контекст, примерно раз в 40-50 итераций на больших задачах. Плагины контроля не ставил, какой используете?
Понял, спасибо. У нас пока решается версией в названии файла: deployment-v2.md вместо обновления старого. Не масштабируется, но хотя бы видно что менялось. Зайду в репо посмотреть как архитектуру выстроили.
Не монолит. У нас CLAUDE.md на уровне репозитория плюс отдельные CLAUDE.md в каждом модуле с границами и контрактами. Агент читает только то что нужно для текущей задачи. Не идеальное решение, на крупных рефакторингах контекст всё равно расползается, но в рамках одного модуля держит. 200к строк так с 2024, пока не утонули.
Да, итерации работают. У нас похожий паттерн: первый вариант разбивки Claude делает неплохо, но обычно режет по техническим границам, а не по бизнес-логике. Второй-третий запрос с уточнением «модуль должен иметь одну бизнес-причину для изменения» даёт результат который можно взять за основу. Финальное слово всё равно у меня.
Обезличивание закрывает часть случаев. У нас 30-40% задач это архитектурные решения и бизнес-логика которую мы не хотим отдавать в любой внешний сервис, не только из-за ФЗ. Там обезличивание не поможет, нужно своё железо. Поэтому граница между RAG на локальных данных и дообучением для нас реальная
Понятно, при систематическом lost in the middle промпт-инжиниринг не спасает. У нас пока 200к строк TypeScript и примеры из живой базы держат планку, но чувствую что порог есть. Как у вас выглядит обучение кодера, на синтетике или на реальных diff-ах из вашей кодовой базы?
«Дрейфующая гранулярность» точное название. Наблюдаем то же самое: код сначала монолит, потом сам вырисовывает границы через боль. У нас сигнал что граница проведена не там, когда CLAUDE.md одного модуля начинает ссылаться на детали соседнего. Про перекладывание разделения на ИИ интересно, пробовали? Мы пару раз просили Claude предложить разбивку, результат неплохой но требует ревью.
Работаю с Claude Code каждый день, поэтому слежу за развитием Anthropic внимательно. Что меня в этой истории цепляет больше всего: не сам запрет, а прецедент. Anthropic отключила доступ для всех, а не только иностранцев, чтобы не нарушить экспортные ограничения. Фактически одно административное решение США заставило компанию жертвовать платящими пользователями глобально. До этого экспортный контроль распространялся на чипы, NVIDIA A100 не продать в Китай, но код ты пишешь сам. Теперь объектом ограничений стали веса конкретной модели. Если эта логика распространится, следующий шаг, экспортные лицензии на API-ключи, и тогда гражданство разработчика становится частью инфраструктурного риска для любой команды.
С позитивным подкреплением согласен, «вот как делаем» работает лучше «никогда так». Но в нашем CLAUDE.md держим и то, и другое: позитив задаёт направление, а негативный пример помогает с граничными случаями когда правило нарушается неочевидно. Интересно про граф, что используете, что-то собственное или готовый инструмент?
Совпадает с тем, что вижу в ежедневной работе с Claude Code. У Claude есть устойчивая привычка: перед деструктивными действиями делать паузу, уточнять, предлагать обратимый вариант. Это иногда замедляет разработку, но ни разу не приводило к потере данных. С другими агентами такого не было. Похоже, выравнивание и осторожность это не отдельный режим модели, а сквозной поведенческий паттерн, который проявляется и в коде, и в симуляции.
Это как раз то, что вижу с Claude Code в продакшене. Агент без ограничений стягивает зависимости из 15-20 файлов в одну функцию: технически работает, но человеку потом надо держать в голове весь этот граф, чтобы что-то изменить. Вышел из ситуации через CLAUDE.md: явные границы модулей, правило не больше 3 зависимостей в методе, запрет на импорт через 2 уровня. Когда добавил эти ограничения, читаемость выросла, а агент не потерял скорость. Ограничение контекста как компенсация когнитивной асимметрии.
Видел несколько таких продуктов за последние время. Красивый лендинг, работающее демо, берёшь первый аудит по OWASP: ключи AWS в клиентском коде, JWT без проверки подписи, SQL без параметризации. AI тут не виноват, он написал то, что попросили. Проблема в том, что вайбкодер не знает вопросов, которые нужно задать: что хранится, кто имеет доступ, что падает если ключ утечёт. Инженер с тем же AI строит иначе именно потому, что у него есть этот список.
Согласен, это пост, а не статья, формат осознанный. Несколько коротких наблюдений из ежедневной работы, без разделов и схем. На Хабре оба формата существуют, этот ближе к заметке из практики.
Хорошая точка для замера. Самый интересный момент здесь не интерфейс, а то что модель самостоятельно заложила мораль в баланс. Это ближе к системному мышлению чем к синтаксису. Используем Claude Code на 200к строках TypeScript в agentic-режиме, и разрыв между «одним промптом» и «реальным продуктом» чувствуем каждый день: один запрос отлично, но системный дрейф через 3 месяца инструмент не видит. Fable 5 заявляет «держит контекст и проверяет себя». Было бы интересно протестировать на длинной архитектурной задаче, не на геймдеве.
Работаем с такой же структурой в CLAUDE.md, только на уровне проекта а не разового запроса. Из 10 блоков больше всего весят «Критерии готовности» и «Ограничения с примерами». На практике заменили почти все правила на примеры из кодовой базы: не «никогда не используй X», а «вот что сломалось в прошлый раз когда использовали X». CLAUDE.md вырос до 8000 слов и стал работать хуже чем на 2000. Агент перегружается не от количества блоков, а от абстрактных запретов без контекста.
Шаг с контекстом из кодовой базы самый сложный на практике. Мы тестировали несколько подходов на 200к строках TypeScript: diff без контекста даёт 70-80% «очевидных» замечаний которые и без того поймает линтер. Полезные находки начинаются когда в контекст попадают зависимые модули и тесты. Но граница «сколько контекста достаточно» каждый раз разная. Маленький PR с одним изменением интерфейса может затрагивать 15 файлов которые модель не видит.
У нас Claude Code, но для изолированного контура не подходит. В вашем сценарии смотрел бы на DeepSeek V3 или Qwen2.5-Coder-32B: оба сильные в коде, запускаются локально, по цене на порядок ниже. Галлюцинационные циклы лечим делением задачи на подзадачи и жёстким лимитом на размер контекста, совпадает с вашим опытом.
То что модель нашла zero-day в JS-движке Firefox звучит как маркетинг, но для меня это конкретный сигнал о возможностях code analysis. Я каждый день доверяю Claude Code ревью кода на 200к строк TypeScript. Разница между «модель видит ошибки» и «модель видит эксплоиты» не такая большая, как хочется думать. Маркетинг вероятно есть, но за ним реальный скачок в понимании кода.
Confused deputy, точная формулировка. У нас в Claude Code решается на двух уровнях: settings.json явно разрешает конкретные инструменты (bash, edit, write), всё остальное требует подтверждения. CLAUDE.md на уровне модуля ограничивает что агент видит, только релевантный контекст, а не весь проект. Не панацея, но снижает радиус ущерба. Для задач с внешними системами держу human-in-the-loop обязательным.
Узнал историю: тот же паттерн, агент не справляется на старте, потом находишь ключ. У нас в JS-проекте переломным стало не добавление документации фреймворков, а примеры из нашего кода с пометкой «так делаем» и «так не делаем». Агент начал воспроизводить наши паттерны, а не книжные. Ограничения с архитектурными задачами тоже знакомы: не справляется там где нужно удерживать контекст 10+ файлов одновременно.
По автомоду согласен, у меня скиллы через using-superpowers автоматически подтягивают нужные файлы в начале сессии. /compact запускаю вручную когда вижу предупреждение про 80%+ контекст, примерно раз в 40-50 итераций на больших задачах. Плагины контроля не ставил, какой используете?
Понял, спасибо. У нас пока решается версией в названии файла: deployment-v2.md вместо обновления старого. Не масштабируется, но хотя бы видно что менялось. Зайду в репо посмотреть как архитектуру выстроили.
Не монолит. У нас CLAUDE.md на уровне репозитория плюс отдельные CLAUDE.md в каждом модуле с границами и контрактами. Агент читает только то что нужно для текущей задачи. Не идеальное решение, на крупных рефакторингах контекст всё равно расползается, но в рамках одного модуля держит. 200к строк так с 2024, пока не утонули.
Да, итерации работают. У нас похожий паттерн: первый вариант разбивки Claude делает неплохо, но обычно режет по техническим границам, а не по бизнес-логике. Второй-третий запрос с уточнением «модуль должен иметь одну бизнес-причину для изменения» даёт результат который можно взять за основу. Финальное слово всё равно у меня.
Обезличивание закрывает часть случаев. У нас 30-40% задач это архитектурные решения и бизнес-логика которую мы не хотим отдавать в любой внешний сервис, не только из-за ФЗ. Там обезличивание не поможет, нужно своё железо. Поэтому граница между RAG на локальных данных и дообучением для нас реальная
Понятно, при систематическом lost in the middle промпт-инжиниринг не спасает. У нас пока 200к строк TypeScript и примеры из живой базы держат планку, но чувствую что порог есть. Как у вас выглядит обучение кодера, на синтетике или на реальных diff-ах из вашей кодовой базы?
«Дрейфующая гранулярность» точное название. Наблюдаем то же самое: код сначала монолит, потом сам вырисовывает границы через боль. У нас сигнал что граница проведена не там, когда CLAUDE.md одного модуля начинает ссылаться на детали соседнего. Про перекладывание разделения на ИИ интересно, пробовали? Мы пару раз просили Claude предложить разбивку, результат неплохой но требует ревью.