Transcription
Каждый раз, когда я начинаю новую сессию, мне приходится заново объяснять весь мой код ИИ. Вы открываете новый чат с ИИ. Вы вставляете структуру своих файлов. Вы объясняете свой стек. Вы описываете, как модули соединяются. Вы пишете три абзаца контекста, только чтобы он знал, где находится, а затем вы делаете все это снова завтра. Если вы когда-либо думали, что должен быть лучший способ сделать это, это видео для вас. Я использую систему из трех инструментов, которая полностью изменила мой подход к работе с ИИ над большими кодовыми базами. И сегодня я проведу вас через то, как именно это работает. Три инструмента: Graphify, Superpowers и Caveman. Каждый из них выполняет свою работу, и вместе они действуют как полноценная система инженерии ИИ, а не просто окно чата. Тем не менее, к концу этого видео у вас будет рабочий процесс, который вы сможете настроить сегодня. Думайте об этом так. У каждой хорошей инженерной команды есть три вещи: карта кодовой базы, процесс выполнения работы и способ эффективного общения. Эти инструменты дают вашей ИИ все три эти вещи. Graphify — это карта. Он читает весь ваш проект, ваши файлы, ваши документы, ваши диаграммы и создает граф знаний, который ИИ может фактически запрашивать. Таким образом, вместо того, чтобы каждый раз объяснять архитектуру, ИИ уже имеет ее. Три важные вещи. Один. Меньше токенов на запрос. Вместо того, чтобы загружать целые файлы в контекст, ваш ИИ запрашивает только то, что ему нужно, из графа. Быстрее, дешевле, точнее. Два. Разобранный, полностью локальный. Каждый язык программирования анализируется на вашей машине. Никаких загрузок, никакого ожидания на удаленном сервере, никакой задержки. Три. Ноль байтов исходного кода отправляется в облако. Ваш код никогда не покидает вашу среду. Граф ваш. История конфиденциальности чиста. Большинство ИИ-кодеров выглядят умными, пока не начинают ходить по кругу. Они угадывают, ищут и блуждают. В итоге вы нянчитесь с инструментом, который должен был сэкономить вам время. Superpowers отличается. Это не более умный агент, это дисциплинированный агент. Он предоставляет вашему ИИ структурированный рабочий процесс: планируй, реализуй, тестируй, проверяй, исправляй — каждый раз, без исключений. Прежде чем написать хоть одну строку кода, Superpowers задает правильные вопросы. Он извлекает из вас реальную спецификацию, устраняя разрастание объема и неправильные направления разработки до того, как они произойдут. Затем он разбивает вашу работу на точные мелкие задачи, точные пути к файлам, полный код, шаги проверки, достаточно ясные для новичков или разработчиков, чтобы следовать им, или для ИИ-агента, чтобы выполнить их, не теряя нить. Думайте об этом как о менеджере проекта, встроенном в вашего агента. Без Superpowers обычный ИИ-кодер сразу же приступает к написанию кода без плана, без тестов, без ограничений. С Superpowers каждый шаг обдуман. Разрыв кажется небольшим для простой задачи, но для большого, сложного проекта это разница между кодом, который вы можете поддерживать, и кодом, который вам придется переписывать с нуля. Caveman — это слой эффективности. Он поддерживает вывод ИИ кратким, точным и с низким количеством токенов, что означает более быстрые ответы и более низкую стоимость каждой сессии. Caveman отсекает лишнее, что ИИ не нужно говорить. Как вы можете видеть на примере, это 45-50 токенов в каждом ответе, что в масштабе составляет реальные деньги. Итак, результат: снижение потребления токенов на 75%, утроение скорости и вывод, который действительно легче читать. Итак, что это на самом деле меняет для вас? Позвольте мне привести четыре конкретных примера. Во-первых, вы перестаете заново объяснять свою архитектуру. С Graphify у ИИ уже есть карта. Он знает, что этот сервис зависит от этого модуля. Он знает, где находится бизнес-логика. Вам не нужно каждый день учить его своей кодовой базе. Во-вторых, ваши затраты на токены снижаются. Caveman отсекает ненужный вывод, а Graphify отсекает ненужный поиск и повторные объяснения. Для большого проекта с длительными сессиями это быстро накапливается. В-третьих, вы получаете надежный цикл реализации. Superpowers заставляет агента сначала планировать, затем создавать, затем тестировать, затем проверять. Больше никаких изменений в трех файлах, которых он не должен был касаться. И в-четвертых, вы получаете скорость без хаоса. Это то, что я бы назвал "вайб-кодингом" с ограничениями. Вы движетесь быстро, но ИИ следует процессу, поэтому вы не заканчиваете уборкой беспорядка в конце каждой сессии. Итак, это обзор. В остальной части этого видео я покажу вам, как именно настроить каждый из них. Я покажу вам, как запустить его на реальном репозитории, как на самом деле выглядит вывод. Если вы работаете с монорепозиторием, устаревшей кодовой базой или чем-либо еще, где вы тратите больше времени на объяснения, чем на создание, оставайтесь. Это будет полезно. Мы устанавливаем Caveman глобально, начиная с Claude, но та же настройка работает для всех поддерживаемых кодеров, включая Codex и другие. Цель проста. Независимо от того, с каким инструментом ИИ вы работаете, Caveman поддерживает связь плотной, прямой и последовательной во всех проектах. Если у вас уже установлен CLI Codex или Claude, установка должна пройти гладко. При возникновении проблем проверьте ссылку на GitHub в описании. Caveman теперь установлен с семью встроенными навыками, и он уже поддерживает как Codex, так и Claude. Поскольку я установил его ранее, он просто отображается как уже установленный плагин. Вы также можете заметить предупреждение Caveman MCP. Не беспокойтесь об этом. Мы можем безопасно игнорировать его на данный момент. Он также дает нам краткий обзор того, как использовать Caveman, и мы применим это на практике через мгновение. Прежде чем запустить Graphify, нам нужно выполнить один шаг, и он важен. Мы создадим файл .graphifyignore в корне монорепозитория. Думайте об этом точно так же, как о .gitignore. Используя этот файл, мы говорим Graphify, что следует пропускать при построении графа памяти. Это особенно важно в монорепозитории. У нас здесь два проекта: бэкенд на Python и приложение Flutter. И оба они генерируют много файлов, которые не имеют отношения к нашему фактическому исходному коду. Артефакты сборки, папки платформы, кэши инструментов, результаты тестирования. Если Graphify просканирует все это, граф станет зашумленным и менее полезным. Итак, в этом файле мы уже сгруппировали все по четким разделам. Пути вывода сборки, инструменты Flutter и Dart, сгенерированные файлы Flutter, папки платформ Android и iOS, и, наконец, пути к кэшу Python, Firebase и тестов. После того, как этот файл будет на месте, Graphify сосредоточится только на коде, который действительно важен. Этот шаг должен быть выполнен перед установкой. Не пропускайте его. Теперь давайте установим Graphify. Вы можете увидеть несколько различных вариантов установки. Но мы выберем рекомендуемый, который использует UV в качестве менеджера пакетов. Так что, если у вас еще не установлен UV, это ваш первый шаг. Сама установка проста. Одна команда, и вы готовы. Запустите ее, и как только она завершится, вы готовы к работе. В моем случае Graphify уже настроен, поэтому я перейду прямо к его использованию в Claude Code. Позвольте мне быстро открыть рабочую область проекта, и пока мы этим занимаемся, это хороший момент, чтобы включить Caveman. Мы вернемся в конце сессии, чтобы увидеть, сколько токенов удалось сэкономить. Теперь я скопировал команду Graphify и вставил ее в CLI Claude Code, и, как вы можете видеть, установка выполняется. Этот шаг занимает немного больше времени, чем обычная установка, и это намеренно. Я ускорю эту часть, а затем мы разберем, что именно произвел Graphify, потому что Graphify — это не просто установка пакета. Он выполняет несколько скриптов для анализа вашей кодовой базы и построения графа памяти. Это сгенерированные файлы, о которых мы говорили ранее. И мы видим, что Graphify почти закончил. Путь к папке вывода Graphify уже отображается в журналах. Посмотрите на это. Он уже обнаруживает "god node", помечает некоторые неожиданные соединения в кодовой базе и даже предлагает вопросы, которые мы можем задать напрямую графу памяти. Это солидный первый вывод. Но вот что действительно важно. Claude Code должен использовать граф при ответе на эти вопросы, а не возвращаться к чтению исходных файлов. Так что давайте проверим это прямо сейчас. Я возьму один из предложенных вопросов и вставлю его прямо в Claude Code. Посмотрим, понял ли он его или нет. И вот оно. Он понял вопрос, извлек ответ из графа памяти и не коснулся ни одного исходного файла, чтобы сделать это. Это именно то поведение, которое мы ищем. Вместо того, чтобы Claude читал файлы по одному, он обращается прямо к графу, и это дополняет то, что уже делает Caveman. Два уровня сокращения токенов работают вместе. Следующий — Superpowers, и это самый важный инструмент во всей настройке. Но сначала позвольте мне очистить сессию, чтобы мы начали с чистого листа. Чтобы установить Superpowers, введите {slash} plugin в Claude Code, чтобы открыть меню плагинов. Оттуда вы можете искать любой плагин по имени. Если он доступен, просто выберите его и нажмите Enter для установки. У меня уже установлен Superpowers, поэтому он не отобразится в разделе поиска плагинов. Но мы все равно можем проверить его на вкладке установленных. Теперь позвольте мне показать вам навыки Superpowers, которые мы фактически будем использовать. Вы можете просматривать их непосредственно в Claude Code, набрав {slash} superpower, и он перечислит все доступные. Эти навыки делают Superpowers мощными. Это не просто подсказки, они определяют поведение ИИ-агента. Планируй перед написанием одной строки кода, следуй структурированному рабочему процессу, проверяй свою работу и, самое главное, никаких случайных изменений. Эта дисциплина именно то, что делает ИИ-кодирование надежным в реальном проекте. Прежде чем перейти дальше, есть одна деталь настройки, которую я хочу выделить, и ее легко упустить. В файле project's claude.md или agent.md, если вы используете Codex, я явно указал кодеру использовать Superpowers и Graphify для каждой задачи. Это важно, потому что ИИ-агенты не сохраняют инструкции между сессиями. Без этого есть реальный шанс, что он тихо пропустит инструменты и вернется к старым привычкам: чтение файлов напрямую, немедленные изменения, без плана. Поэтому добавленная мной инструкция намеренно агрессивна. Даже если есть только 1% шанс, что Superpowers или Graphify могут помочь, используйте их в любом случае. Цель не подлежит обсуждению. Агент всегда работает с контекстом, всегда следует процессу и никогда не вносит случайных изменений. Итак, наш агент настроен на использование всех инструментов. Теперь пришло время что-то построить. И мы строим на основе того же приложения для отслеживания расходов, которое мы создали в предыдущем видео. Если вы еще не видели его, я оставлю ссылку в уведомлении и описании. Стоит посмотреть, прежде чем идти дальше. Первая функция, которую мы реализуем поверх этой основы, — это приветственное письмо. И прежде чем мы напишем хоть одну строку кода, я хочу показать вам, как именно будет работать эта система. Поскольку архитектура здесь чистая, и как только вы ее увидите, реализация станет совершенно понятной. Итак, три движущиеся части: приложение. Когда новый пользователь регистрируется, оно собирает основные данные: имя и адрес электронной почты, и передает запрос дальше. Бэкенд. Здесь происходит настоящая работа. Он проверяет запрос, безопасно хранит все конфиденциальные ключи на стороне сервера и подготавливает приветственное письмо. Сервис электронной почты. Он берет шаблон приветственного письма, заполняет данные пользователя и доставляет его в его почтовый ящик. Это полный поток. Пользователь регистрируется в бэкенде, подготавливает письмо, письмо попадает в почтовый ящик. Теперь мы не будем рассматривать каждую техническую деталь на экране. Для этого мы уже подготовили надлежащий документ по реализации. Он точно говорит Claude, что строить, какие файлы трогать, как должен работать поток и каких подводных камней следует избегать. Так что Claude не будет угадывать или исследовать вслепую. Он будет следовать документу по реализации для точных инструкций и создавать функцию непосредственно в существующей структуре приложения. Давайте запустим первую подсказку. Я сослался на документ по реализации непосредственно в подсказке и прошу Claude Code создать необходимую функциональность на его основе. Ни больше, ни меньше. Пока это выполняется, я открою панель использования Claude. Мы будем следить за потреблением токенов в течение всей сессии, чтобы увидеть реальное влияние в конце. Как вы можете видеть, Claude выбрал навыки Superpowers. Это именно то, что мы настроили ранее. Теперь смотрите. Claude переключается на Graphify, чтобы прочитать кодовую базу. Вместо того, чтобы открывать файлы по одному, он сначала обращается к графу памяти, чтобы понять структуру проекта. Это поведение, которое мы хотим. Я ускорю отсюда, и мы продолжим, как только процесс завершится. Посмотрите, что он произвел: полный план реализации. Разбит на восемь сфокусированных задач, готовых к выполнению. Он также дал нам два варианта выполнения. Исполнение с помощью под-агентов. Каждая задача назначается отдельному под-агенту с шагом проверки между каждым. Встроенное исполнение. Задачи выполняются одна за другой в той же сессии с использованием рабочего процесса Superpowers для выполнения планов. Но прежде чем выбрать любой вариант, остановитесь. Сначала прочитайте план. Это то, что я не могу подчеркнуть достаточно. Если в плане есть ошибка, все, что следует за ним, наследует эту ошибку. Агент будет уверенно строить неправильно, и к тому времени, когда вы заметите, вы уже будете на несколько задач впереди. Мы сталкивались с этой проблемой во время разработки более одного раза. План, который на первый взгляд казался разумным, содержал скрытую в нем неправильную предпосылку. Вот почему проверка плана для нас не подлежит обсуждению. Поэтому проверяйте каждую задачу. Проверяйте пути к файлам, поток, предположения. И если это функция, которая затрагивает критические части кодовой базы, привлеките человека для проверки, прежде чем позволить агенту коснуться хоть одного файла. План — это контракт. Получите его правильно перед началом выполнения. Давайте выберем исполнение с помощью под-агентов. Отсюда мы будем наблюдать, как все, что мы настроили, работает на практике. Caveman, Graphify и Superpowers работают вместе над реальной задачей. Я ускорю тяжелые части разработки, но не пропущу ничего важного. И следите за панелью использования Claude на протяжении всего процесса. К концу у нас будет реальное число, а не предположение, о том, насколько снизилось использование токенов, при этом рабочий процесс оставался структурированным, а вывод — надежным. Давайте проверим использование Claude. Мы перешли с 8% до 14%, и это включает фазу планирования, где Claude составил полный план реализации. Так что число уже выполняет реальную работу, а не просто сжигает токены. Пока еще разумно, но мы будем продолжать следить за ним. Ну, это не просто низкое число, это правильное число. Токены, потраченные на планирование, на понимание кодовой базы, на тщательную реализацию и на проверку вывода. Это ценное использование. То, что мы сокращаем, — это отходы: избыточное чтение файлов, контекст, который должен был исходить из графа, ответы, которые болтают, когда должны быть точными. Вот что обрабатывают Caveman и Graphify. Шесть задач выполнены, и мы переходим к седьмой. Эта задача более сложная, и если вы следили за панелью использования, вы, возможно, уже заметили ее увеличение. Это ожидаемо. Изменения в мобильном приложении, естественно, потребляют больше токенов, потому что агенту приходится рассуждать одновременно на нескольких уровнях: экраны, управление состоянием, сервисы, поток пользовательского интерфейса и часто интеграция с бэкендом. Так что увеличение числа здесь не является красным флагом. Это отражение сложности работы. Все семь задач выполнены, включая 20 тестов как в приложении Flutter, так и в функциях Python. Claude также подготовил сводку каждой выполненной задачи. Осталась одна задача: развертывание. Но сначала давайте посмотрим на цифры. Мы находимся на уровне 22% использования. Мы начали с 8%, так что вся разработка обошлась нам в 14%. Для такого рода работы мы обычно ожидаем потратить около 25%, что означает, что мы сэкономили примерно 11%. Это инкрементально. Сессия за сессией, функция за функцией, эта экономия накапливается. И дело не только в стоимости. Рабочий процесс оставался структурированным, изменения были безопасными, и все можно было проверить. Вы не обмениваете качество на эффективность, вы получаете и то, и другое. Это реальный результат. Claude сжимает сессию, так что давайте используем это время, чтобы запустить оба проекта локально и проверить, все ли работает от начала до конца. Сначала я заменю ключ API Resend. Это то, что фактически отправляет приветственное письмо. Затем я вставлю тот же ключ в файл .env, чтобы наша локальная функция Firebase могла его использовать. После этого мы запустим эмулятор Firebase. Это то, что позволяет мобильному приложению взаимодействовать с нашими локальными функциями во время тестирования. Никакая живая среда не затронута. Перед запуском приложения я выполню быструю команду flutter clean и повторно получу все зависимости. Это небольшая привычка, но она того стоит. Старые файлы сборки и устаревшие состояния зависимостей являются распространенным источником фантомных проблем, отладка которых отнимает время. После этого давайте запустим приложение в эмуляторе Android. Теперь я добавлю нового пользователя, пройдя процесс регистрации. Готово. Давайте проверим журналы эмулятора Firebase. Мы хотим убедиться, что функция сработала, и в выводе нет ничего неожиданного. Чистое выполнение, ошибок нет. Теперь настоящее испытание. Позвольте мне открыть почтовый ящик. Вот оно. Письмо получено. Полный поток работает от начала до конца. Пользователь регистрируется, бэкенд срабатывает, приветственное письмо попадает в почтовый ящик. Именно то, что мы хотели построить. В заключение, есть еще один шаг, который стоит сделать, и он важен для поддержания работоспособности настройки в долгосрочной перспективе. Нам нужно обновить память Graphify всем, что мы только что построили. Граф отражает кодовую базу на момент последнего запуска. Поэтому после любого значимого внедрения стоит его обновить. Я ускорю обновление, а затем посмотрим, что изменилось. Вот оно. "God node" был обновлен. Теперь он включает поток приветственного письма, который мы только что реализовали. Граф знает о новой функциональности. Давайте быстро проверим это. Я спрошу его напрямую. Что такое поток приветственного письма? И он извлек правильные детали непосредственно из последнего внедрения. Память графа актуальна. Теперь давайте проверим Caveman. Эта команда дает нам сводку использования токенов за сессию. Сэкономлено 65%. Это не маленькая оптимизация. Это более половины использования токенов, устраненного на реальной функции в реальном проекте, при этом рабочий процесс оставался структурированным, вывод проверялся, а кодовая база правильно понималась на протяжении всего процесса. И это полный рабочий процесс. Caveman для эффективности, Graphify для памяти, Superpowers для дисциплины. Вместе они превращают "вайб-кодинг" из азартной игры в нечто, на что вы действительно можете положиться. Теперь я хочу услышать от вас. Используете ли вы какую-либо подобную настройку для разработки с помощью ИИ? И какой подход вы предпочитаете? Тот из предыдущего видео, или этот с памятью графа, структурированным планированием и оптимизацией токенов? Оставьте свои мысли в комментариях. Спасибо за просмотр.