Обновить
16K+
14
Александр Рогов@Ra2007

Full-Stack JS Architect

24,1
Рейтинг
8
Подписчики
Отправить сообщение

Работал с несколькими такими продуктами в последние полгода, и это принципиально другая история. Архитектор со спекой задаёт правильные вопросы ещё до первого промпта: что хранится, где граница доверия, что происходит при компрометации ключа. AI получает нормальное ТЗ и строит соответственно. Security-инженер после сборки запустит OWASP ZAP, прогонит Semgrep, проверит заголовки. Нагрузочник поставит k6 и посмотрит что будет при 10x трафике. Без навыка чтения кода они всё равно верифицируют поведение, а не текст. Проблема из моего комментария была про другой сценарий: человек без вопросов на входе и без инструментов проверки на выходе.

Работаю на Max подписке Claude Code уже два месяца, до этого сидел на API с pay-per-token. Разница в экономике ощутимая, но не там где ожидал. Токены на API при активной разработке выходили в $150-200 в месяц, Max стоит $100, казалось бы очевидно. Но главная выгода не в деньгах, а в поведении: когда платишь за токен, начинаешь неосознанно сжимать контекст, резать историю, избегать больших файлов. На фиксированной подписке агент наконец-то получает полный контекст без ограничений и качество заметно другое. Единственное о чём редко пишут: у Code-подписок свои rate limits которые не совпадают с API лимитами, и в пиковые часы можно упереться в throttling даже на Max.

Наступал на это ровно три месяца назад. Попросил агента проверить почему падает один тест, через пять минут он переписал три файла, добавил хелпер и вынес конфиг. Тест прошёл, но в проде это выявило регрессию, потому что никто не ожидал изменений в этих файлах и ревью проходило по-другому. Решение, которое сработало: в CLAUDE.md жёсткий протокол для диагностических задач, агент останавливается после постановки диагноза, показывает список файлов которые собирается трогать, ждёт явного подтверждения. Замедляет цикл на 30 секунд, но снимает именно эту проблему. Способность сделать и право сделать разные вещи, и без явного барьера в инструкциях агент их не разграничивает.

Работаю с 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 делает неплохо, но обычно режет по техническим границам, а не по бизнес-логике. Второй-третий запрос с уточнением «модуль должен иметь одну бизнес-причину для изменения» даёт результат который можно взять за основу. Финальное слово всё равно у меня.

Обезличивание закрывает часть случаев. У нас 30-40% задач это архитектурные решения и бизнес-логика которую мы не хотим отдавать в любой внешний сервис, не только из-за ФЗ. Там обезличивание не поможет, нужно своё железо. Поэтому граница между RAG на локальных данных и дообучением для нас реальная

Информация

В рейтинге
381-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Full-Stack JS Architect
Старший
JavaScript
React
TypeScript
Node.js
React Native
MobX
Next.js
Redux
GraphQL
WebSockets