# Fractera > Agentic Engineering Infrastructure — your own server, your own code, run and configured from one control panel. This file is the community `llms-full.txt` convention: the full text of every page listed in /llms.txt. --- # Fractera > Agentic Engineering Infrastructure — your own server, your own code, run and configured from one control panel. https://aifa.dev --- # Разработка циклами > Заметки об агентной разработке на ИИ, инженерии циклов и автономных кодинг-агентах — от команды, которая строит открытое, self-hosted AI-рабочее пространство. - [Промпт-инжиниринг умер. Да здравствует инжиниринг циклов.](https://aifa.dev/ru/blog/the-end-of-prompt-engineering): Борис Черный, ведущий разработку Claude Code в Anthropic, говорит, что больше не пишет промпты — он пишет циклы. Разбор: смерть промпт-инжиниринга и рождение инжиниринга циклов, агентные рабочие процессы, самокорректирующиеся агенты, почему судья важнее формулировки и как тот же цикл разведён в рабочем пространстве, которым вы владеете: машинные проверки в репозитории, память, переживающая сессию, и панель управления, которая собирает и умеет откатиться. - [Триллионная возможность — это салон по соседству](https://aifa.dev/ru/blog/trillion-dollar-service-opportunity): Почему самые большие деньги в ИИ прямо сейчас — это не единорог, а парикмахерская, косметология, стоматология по соседству. Проблема неявок, бизнесы без сайта и CRM, и как self-hosted рабочее пространство позволяет почти любому автоматизировать их, не собирая стек с нуля. --- # Продукты > Полный каталог продуктов. Всё, что мы предлагаем, в одном месте. --- # Промпт-инжиниринг умер. Да здравствует инжиниринг циклов. *Почему руководитель Claude Code в Anthropic только что объявил конец эпохи «заклинателей ИИ» — и что приходит на смену.* > Борис Черный, ведущий разработку Claude Code в Anthropic, говорит, что больше не пишет промпты — он пишет циклы. Разбор: смерть промпт-инжиниринга и рождение инжиниринга циклов, агентные рабочие процессы, самокорректирующиеся агенты, почему судья важнее формулировки и как тот же цикл разведён в рабочем пространстве, которым вы владеете: машинные проверки в репозитории, память, переживающая сессию, и панель управления, которая собирает и умеет откатиться. — Fractera, 2026-06-14 ## Цитата, которая разрушила иллюзию Несколько дней назад одна фраза **Бориса Черного** — инженера, ведущего разработку **Claude Code** в **Anthropic** — тихо прокатилась ударной волной по сообществу разработчиков. На публичной панели Черный приоткрыл, как люди, строящие самый сложный в мире кодовый ИИ, на самом деле работают со своими же моделями. Сказанное не просто спорит с общепринятым — оно объявляет устаревшей целую едва народившуюся дисциплину: > Я больше не пишу промпты для Claude. У меня работают циклы, которые сами обращаются к Claude и сами решают, что делать дальше. Моя работа — писать циклы. > > — Борис Черный · Claude Code, Anthropic Дайте этому осесть. Человек, держащий обе руки на руле лучшей в мире модели для разработки, говорит вам, что убрал руки с руля. Он не сидит в окне чата, вылизывая идеальный абзац инструкций. Он пишет код, который заставляет ИИ разговаривать с самим собой, оценивать собственные ошибки и исправлять их внутри замкнутого автономного контура. Он строит машину, которая рулит моделью, — и отпускает её ехать. Если вы всё ещё проводите дни, вылизывая промпты, чтобы выманить из модели нужный кусок кода, его сообщение звучит жёстко и ясно: **вы оптимизируете мир, которого уже нет.** ## Смена парадигмы: от микроменеджмента к архитектуре системы Чтобы увидеть, почему это тектонический сдвиг, посмотрите, как наши отношения с генеративным ИИ изменились всего за пару лет. ### Фаза 1 — линейный промпт (человек как узкое место) Ещё недавно вся отрасль была одержима **промпт-инжинирингом**. Мы обращались с языковыми моделями как с блестящими, но легко отвлекающимися джунами. Процесс был линейным, хрупким и полностью ручным: ``` ты пишешь промпт ─▶ ИИ пишет код ─▶ ты находишь баг ─▶ ты правишь промпт ─┐ ▲ │ └────────────────────────── снова руками ◀─────────────────────────────────┘ ``` В этой парадигме **узкое место — человек.** Вы пишете промпт, читаете ответ, замечаете синтаксическую ошибку, вставляете её обратно в чат и молитесь, чтобы модель не забыла контекст через пять шагов. Ощущается продуктивно. На деле это изматывающий микроменеджмент, который не масштабируется — и уж точно не работает, пока вы спите. ### Фаза 2 — инжиниринг циклов (автономный контур) То, что описывает Черный, — это **инжиниринг циклов**: агентные процессы, где человек выходит из контура исполнения целиком. Вы перестаёте вести машину. Вы строите трассу и даёте машине проходить круги. Вместо промпта, решающего задачу, вы пишете программный **цикл**, который встраивает ИИ в автоматический круг исполнения и проверки: 1. **Цель.** Человек ставит одну задачу верхнего уровня — «построй этот эндпоинт API и добейся 98 % покрытия тестами». 2. **Действие.** ИИ пишет первую версию кода. 3. **Проверка.** Автоматическая среда — компилятор, линтеры, юнит-тесты, ваш CI — прогоняет код и ловит каждую ошибку. 4. **Самокоррекция.** При провале система забирает трассу ошибки, отдаёт её ИИ как новую инструкцию и велит попробовать снова. ``` ты ставишь цель │ ▼ ИИ пишет код ─▶ CI прогоняет все проверки ─▶ зелено? ─▶ ✦ отгружено ▲ │ │ ▼ (красно) └── ИИ читает логи и переспрашивает сам себя ``` Цикл идёт на машинной скорости, перемалывая десятки итераций, сам себя правит и сам себя лечит, пока не выполнены условия проверки. Вы не набрали ни одного уточнения. Вы не писали промпты — вы построили трассу, а модель прошла каждый круг сама. ## Настоящее умение — не писать код. Настоящее умение — написать судью. Вот часть, которую почти все упускают, — а в ней вся игра. Трудное в цикле — **не** сгенерировать код. Модели уже пугающе хороши в этом. Трудное — это **то, что решает, хорош ли код.** Дайте циклу сильного, беспощадного проверяющего — настоящие тесты, статический анализ, компилятор, который не умеет врать, — и цикл сойдётся к чему-то по-настоящему работающему. Дайте слабого — и ровно тот же цикл будет бодро выдавать бесконечную реку уверенного, красиво отформатированного мусора, догаллюцинировав себя до зелёной галочки, которая ничего не значит. Значит, умение следующего десятилетия — не искусство формулировки. Это **проектирование проверки**: непробиваемых систем валидации, которые позволяют ИИ безопасно разговаривать с самим собой и не улететь с обрыва. Это более сложная, более редкая и куда более ценная инженерия, чем подбор нужных слов. ## От философии к продакшену: как мы собрали цикл Пока остальной технический мир разбирает цитату Черного в соцсетях, настоящий вызов выглядит неромантично: **как построить инфраструктуру инжиниринга циклов, которая работает в продакшене — вне внутренних лабораторий Anthropic?** Замкните цикл вокруг одной модели — и быстро упрётесь в стены реального мира: деградацию контекстного окна, галлюцинаторные спирали смерти и отсутствие памяти в масштабе проекта. В [Fractera](https://aifa.dev/ru) мы весь прошлый год относились к философии Черного не как к предсказанию, а как к **архитектурному чертежу** — и построили тот цикл, на котором это рабочее пространство и работает. ![Схема цикла разработки: владелец ставит цель, агент правит репозиторий, машинные проверки его судят, провал возвращается агенту новой инструкцией, а панель управления собирает, ведёт журнал и умеет откатиться](media:development-loop-2026.jpg) *Цикл в том виде, в котором он действительно разведён: агент в вашем репозитории, проверки, которые не умеют врать, и панель, замыкающая контур.* ### Анатомия цикла продакшн-уровня Чтобы циклы стали пригодны для настоящего софта, придётся перестать любоваться моделью и построить вокруг неё три неромантичные вещи — судью, память и руку, которая отгружает: - **Судья, которого нельзя уговорить.** Судья — это не вторая модель со своим мнением, а набор скриптов, роняющих сборку. Есть ли языковые сигналы на каждой публичной странице? Есть ли у каждого материала машинная версия, за которой приходит ИИ-читатель? Не сослались ли на картинку, которую никто не закоммитил? Каждая проверка появилась потому, что ровно этот дефект однажды уехал в продакшен, и отвечает она кодом выхода, а не абзацем. - **Память, которая переживает сессию.** Эффект амнезии реален: пятнадцать кругов вокруг упрямого бага — и агент теряет из виду архитектуру. Здесь память не служба, которая может лежать, а файлы рядом с кодом, уезжающие вместе с репозиторием: рабочая инструкция, уроки, дописанные в ту минуту, когда владелец поправил, список антипаттернов, подтверждённые пользовательские кейсы. Новая сессия начинается с их чтения — поэтому пятнадцатый круг знает то, что узнал первый. - **Финальное действие, которое агенту не принадлежит.** Цикл заканчивается в панели управления: она собирает проект, ведёт журнал развёртываний и умеет вернуться к последней рабочей сборке. Настройки, тексты и картинки меняются там вообще без пересборки — значит, цикл никогда не просят решать то, что задачей кода и не было. Обратите внимание, чего в этом перечне **нет**: роя моделей, надзирающих друг за другом. Это была наша первая архитектура, и мы её сняли. Оркестрация — самая эффектная часть агентной схемы и самая ненесущая часть работающей: слабого судью не чинят вторым мнением, а сильному оно почти никогда не нужно. ## Новая должностная инструкция инженера Мы уходим от написания кода, проходим мимо написания промптов и попадаем прямо в **строительство когнитивных конвейеров.** Ремесло — больше не инструкция, а система, внутри которой инструкция исполняется. И это не бесплатно. Вместе с циклами приходят две новые статьи расходов. **Долг понимания:** когда агент за кулисами триста раз переписал файл, ваше понимание собственной кодовой базы тихо истончается — работает, но вы уже не уверены почему. И **чистые вычисления:** цикл способен сжечь настоящие деньги в токенах, гоняясь за одним багом сотней молчаливых попыток. Инженеры, которые выигрывают в эту эпоху, относятся к балансу «цена против качества» как к осознанному проектному решению, а не как к сюрпризу в счёте. Этот сайт — один из таких циклов: страницы, которые вы читаете, статичны, и проверка не выпускала их, пока они не понесли языковые сигналы, машинную версию и своё место в карте сайта. — [Посмотреть рабочее пространство](/ru) Эпоха промпт-инжиниринга официально позади. Остался единственный вопрос — тот самый, на который Черный уже ответил себе: **вы всё ещё пытаетесь разговаривать со своим ИИ — или уже строите циклы, которые дают ему работать?** Источник: широко разошедшийся пост в LinkedIn Гильермо Флора, вынесший на публику слова Бориса Черного. Цитата приведена в том виде, в котором разошлась; архитектура и разбор — наши собственные. ## FAQ ### Что такое «инжиниринг циклов» и почему он вытесняет промпт-инжиниринг? Инжиниринг циклов — это написание автоматических процессов, которые сами обращаются к ИИ, прогоняют его результат через проверку (тесты, CI, компилятор), возвращают провалы обратно как новые инструкции и повторяют, пока результат не станет верным. Борис Черный, ведущий Claude Code в Anthropic, сказал, что больше не составляет промпты руками: он пишет циклы, которые делают это за него. Суть в том, что узким местом никогда не был промпт — узким местом был человек внутри контура обратной связи. ### Как цикл разработки разведён здесь, в продакшене? Кодовый агент работает внутри вашего собственного репозитория, на вашей машине, и рабочая инструкция проекта лежит рядом с кодом. Судья — это набор проверок, которые идут на каждой сборке и роняют её: языковые сигналы на каждой публичной странице, машинная версия у каждой опубликованной страницы, ни одной ссылки на некоммитнутую картинку, ни одного словаря с пропущенным ключом. Провал возвращается агенту новой инструкцией, и круг повторяется. Контур замыкает панель управления: она собирает проект, ведёт журнал развёртываний и умеет вернуться к последней рабочей сборке. ### Нужно ли уметь программировать, чтобы работать с этим циклом? Для большей части того, что на сайте вообще меняется, — нет. Название, описание, картинки, языки, аналитика и тексты настроек живут в панели управления и применяются без пересборки: это данные, а не код. Правки кода делает агент в вашем репозитории; вы их читаете и принимаете, а панель собирает результат. Честная граница такая: никто не обещает, что вы никогда не заглянете в изменения, — вам обещано, что вы никогда не будете запускать сборку руками и что неудачную можно откатить одним нажатием. --- # Триллионная возможность — это салон по соседству *Илон Маск говорил про космос, искусственный интеллект и автомобили. А зацепила меня мысль проще: у большинства бизнесов на земле до сих пор нет даже API. Вот ниша, которую я нашёл благодаря этому.* > Почему самые большие деньги в ИИ прямо сейчас — это не единорог, а парикмахерская, косметология, стоматология по соседству. Проблема неявок, бизнесы без сайта и CRM, и как self-hosted рабочее пространство позволяет почти любому автоматизировать их, не собирая стек с нуля. — Fractera, 2026-06-22 Это немного необычный пост, потому что начинается он с другого человека. Интервью Илона Маска выше привлекло моё внимание — он говорил про космос, про искусственный интеллект, про автомобили. Но больше всего меня вдохновил тихий момент. Он сказал, что несмотря на то, как ощущается современный мир — будто всё уже придумали, все сайты сделали, все приложения выпустили, все бизнес-процессы автоматизировали — подавляющее число бизнесов во всём мире не имеет даже API. Они работают по телефону. А некоторые — даже без него. > Если AI просто берёт то же, что отдают аутсорсу, и обслуживает клиента теми же приложениями, которыми пользуются люди, — можно мгновенно захватить рынок клиентского сервиса. А это около 1% мировой экономики. Близко к триллиону долларов. > > — Илон Маск · Интервью Dwarkesh Patel, февраль 2026 Перечитайте это глазами того, кто строит. Этот триллион лежит не в очередной соцсети и не в очередной обёртке над ИИ — он лежит внутри обычных бизнесов, которые так и не стали цифровыми. И барьером никогда не была идея; барьером была реализация. Собрать команду, поднять инфраструктуру, месяц за месяцем платить за стопку облачных сервисов. Именно этот барьер убирает self-hosted рабочее пространство — поэтому я запомнил именно эту тихую фразу, а не ракеты. ## Все научились программировать. На улице всё то же самое. Из общения со многими партнёрами я вижу принципиально два сценария. С одной стороны — множество разработчиков и даже тех людей, кто никогда не был разработчиком: те, кто раньше были маркетологами, контент-менеджерами, вдруг за один год научились программировать. Все стали создавать. Проектов очень много, и многие из них действительно интересные. А что в реальном мире? А в реальном мире всё то же самое. Вот и получается, что некоторые из нас нашли прекрасный способ радовать себя — выбросы дофамина от получения нового знания. Но всё же пора и деньги на этом зарабатывать. Так куда сместить фокус своего внимания? > Проблема: мы не можем предсказывать будущее. Особенно сейчас, когда рынок и технологии начали изменяться с необычайной скоростью. Адаптация к изменениям — это мучительный процесс смены стратегии. ## Я пошёл искать ответ. И нашёл парикмахерскую. Изучив это видео детально и проведя несколько десятков встреч, чтобы подтвердить ответ на этот вопрос, я выявил очень интересную бизнес-нишу: салоны красоты и неоперационной косметологии, медицинские центры, стоматологию. Несмотря на обилие автоматизации и CRM-систем, они не так уж и редко сталкиваются с проблемой: клиент оставляет заявку, назначает встречу или посещение — а затем не приходит. Когда менеджер им звонит — как правило в тот самый момент, когда уже наступает час встречи, — клиенты нередко отвечают: «ой, мы забыли. Что же вы не напомнили?» Конечно, безусловно, есть очень много готовых решений, которые можно поставить. Но ведь ещё больше тех клиентов, которым эти решения не поставили, — а у многих из них нет сайта, у многих нет и CRM-системы. ## Именно для этого такое рабочее пространство и нужно. [Fractera](https://aifa.dev/ru) — self-hosted рабочее пространство агентной инженерии, созданное специально для таких сценариев. В нём уже лежит то, что такой бизнес иначе покупал бы по отдельности: своя база и свои таблицы, хранилище файлов, распознавание речи в текст, канал, которым можно достать клиента в мессенджере, авторизация с ролями и публичный сайт, который поисковик действительно читает. Идей у владельца бизнеса может быть сколько угодно — детали уже на полке. Преимущество в том, что раньше для материализации этих идей нужно было невероятно долго работать с командой продуктологов, затем нанимать программистов, затем бесконечно думать о том, как это работает, или покупать дорогие сервисы под свои нужды. Сейчас это всё просто. Благодаря агентной инженерии практически любой человек может взять телефон и рассказать о том, как бы он хотел оптимизировать свой бизнес, и сделать это самостоятельно или при помощи человека, который в этом уже немного разбирается. Оно ещё и избавит вас от необходимости помнить, какие сервисы вы должны оплатить. Большинство облачных сервисов, которые превращаются в регулярные платежи и составляют львиную долю расходов, — база данных, хранилище, подписка на CRM — уже обычные функции вашего собственного приложения на вашем сервере. А ежедневные изменения — это вообще не развёртывание: название, тексты, картинки и языки правятся в панели управления и применяются без пересборки, тогда как код лежит в репозитории, который принадлежит вам. ## Один из многих. Их можно находить каждый день. Указанный пример — один из многих. Вы можете находить такие буквально каждый день и зарабатывать на их внедрении — а можете в своём бизнесе добавлять материализацию новых идей, ведь это практически бесплатно. Никогда раньше так не было. И хотя кажется, что уже практически невозможно найти новую нишу, чтобы создать стартап-единорог, — может быть, и не стоит об этом думать. Вместо того чтобы мечтать о единороге, можно просто автоматизировать соседнюю парикмахерскую, или салон красоты, или автосервис. Все те, с кем вы и так давно на связи. Все те, кто вам доверяет. Может быть, пришло время попробовать? ## FAQ ### Какому бизнесу это подходит лучше всего? Локальному сервисному бизнесу с записями и постоянными клиентами — салонам, неоперационной косметологии, клиникам, стоматологии, автосервису, — особенно тем, у кого нет сайта или CRM и есть регулярная проблема неявок. ### Нужно ли платить отдельно за базу данных, хранилище, подписку на CRM? Нет. Это обычные встроенные части вашего собственного приложения на вашем сервере, а не сторонние подписки со счётом каждый месяц. Платите вы за сам сервер. ### Нужно ли быть разработчиком? Для того, что бизнес меняет чаще всего, — нет: названия, тексты, цены, картинки и языки правятся в панели управления и применяются без пересборки. Построить что-то новое — работа кодового агента в вашем репозитории: вашего или того человека, который уже немного в этом разбирается. Сервер, модель ИИ и домен подключают за вас. --- # Политика конфиденциальности > Как этот сайт собирает, использует и защищает персональные данные. ## Что здесь должно быть Замените эту заглушку своим текстом. До этого страница всё равно работает: она полностью статическая и индексируется, поисковые системы получают её заголовок, описание и структурированные данные — как у статьи. Вернуться на [Fractera](https://aifa.dev/ru). Политика конфиденциальности называет, какие данные вы собираете, зачем, сколько храните и как посетитель может их удалить. --- # Условия использования > Правила использования этого сайта и его сервисов. ## Что здесь должно быть Замените эту заглушку своим текстом. До этого страница всё равно работает: она полностью статическая и индексируется, поисковые системы получают её заголовок, описание и структурированные данные — как у статьи. Вернуться на [Fractera](https://aifa.dev/ru). Условия использования говорят, что вы обещаете посетителям и чего ждёте от них. --- # Политика cookie > Какие cookie использует этот сайт и как ими управлять. ## Что здесь должно быть Замените эту заглушку своим текстом. До этого страница всё равно работает: она полностью статическая и индексируется, поисковые системы получают её заголовок, описание и структурированные данные — как у статьи. Вернуться на [Fractera](https://aifa.dev/ru). Политика cookie перечисляет, какие cookie ставит сайт, зачем каждая нужна и как отозвать согласие. --- # Доступность > Как этот сайт старается оставаться пригодным для всех и куда написать, если что-то здесь мешает. Мы хотим, чтобы этим сайтом мог пользоваться каждый — в том числе те, кто читает его экранным диктором, ходит по нему одной клавиатурой или увеличивает текст. Публичные страницы отдаются обычным серверным HTML и продолжают работать с выключенным JavaScript. Вернуться на [Fractera](https://aifa.dev/ru). Доступность не бывает законченной, часть сайта мы ещё не проверяли — поэтому не объявляем уровень соответствия, которого не измеряли. Если что-то здесь вам мешает, напишите нам по контактам, указанным на этом сайте: назовите страницу и опишите, что произошло. Мы ответим и исправим то, что в наших силах. --- # Архитектура > Как устроено это приложение: робот-установщик, который поднимает сервер, стартовый шаблон, внутри которого вы находитесь, и инфраструктурная оболочка вокруг них. Эта страница описывает каркас, на котором стоит приложение. Она написана сразу для двух читателей — человека, решающего, подходит ли продукт, и кодирующего агента, который будет его менять. Обоим нужно одно и то же: знать, какой слой за что отвечает, прежде чем к чему-либо прикасаться. Назад к [Fractera](https://aifa.dev/ru). **Архитектура существует благодаря трём основным элементам.** Всё остальное на этой странице принадлежит одному из них: - **Робот-установщик** — процесс, который запускает установку и запуск сервера на операционной системе Ubuntu, подключает авторизацию, базу данных, стартовый шаблон и прочее. - **Стартовый шаблон** — обязательные архитектурные принципы: переиспользуемые образцы поведения и специальные инструкции для искусственного интеллекта. Это внутренний скелет, ДНК проекта. - **Инфраструктурная оболочка** — всё, что вынесено за пределы самого приложения; в центре её лежат авторизация и память. ## Робот-установщик Fractera Сервер не настраивают руками. Установщик получает чистую машину с Ubuntu и оставляет после себя работающий контур. Он сообщает о ходе работы шаг за шагом, поэтому видно, где установка находится и где она остановилась, если остановилась. - системные пакеты, Node 22 и менеджер процессов; - семь процессов: приложение, авторизация, панель, слой данных, карта, каналы, граф знаний; - собранные приложение, авторизация и панель — плюс копия первой удачной сборки, чтобы было куда откатиться; - файл подкачки, если памяти меньше двух гигабайт: без него установка на младшем сервере умирает на середине. ### Установка клонированием репозитория через MCP-сервер Путь для тех, кто разворачивает сервер инструментом, а не руками: агент обращается к платформе по протоколу MCP и ставит проект сам. Продолжение следует в ближайшее время. ### Запуск через веб-интерфейс Основной путь. В панели управления есть раздел запуска проекта: одиннадцать шагов от пустого репозитория на GitHub до первого изменения, которое вы увидели на собственном адресе. Шаги двух родов, и разница содержательная. Одни закрывает машина — репозиторий ответил, ключ выдан, проект отправлен; такую отметку нельзя поставить из вежливости. Другие отмечаете вы: у панели нет глаз на вашем компьютере, и делать вид, что она видит созданную вами папку, было бы ложью. Вашу отметку можно снять — шаг снова открыт. #### Миграция из любого другого фреймворка Проект, который уже работает, переносится не переписыванием файлов. Его код читают как описание того, что он делает; из описания рождается очередь шагов, и первым строится скелет — адреса, таблицы, вход, права. Несовместимый стек поэтому не помеха: переезжает смысл способности, а не её файлы. До первого маршрута отвечают на четыре вопроса: что это за приложение, будет ли вход, будет ли ролевой доступ и какие роли что ограничивают. Ответ решает раскладку целиком — в каком слое живёт страница, какой замок стоит на двери, что видит гость. Ошибка здесь перекладывает скелет, а не правит страницу. Данные переносятся последними и отдельным шагом, под отдельным доступом. Дефекты исходного проекта при этом называются вслух и в новый не повторяются. ## Стартовый шаблон Вы читаете эту страницу внутри стартового шаблона. Это не заготовка страниц, а набор обязательных принципов и работающих примеров: на каждый класс вещей в проекте уже есть образец, и новое делается копированием работающего. Поэтому форма держится устройством, а не дисциплиной того, кто пишет. ### Готовность к высокой нагрузке Нагрузка выдерживается не мощностью сервера, а тем, что почти вся работа сделана заранее. Отдать готовую страницу стоит одинаково при десяти посетителях и при десяти тысячах. #### Генерация статических страниц Страницы собираются заранее, а не на каждый запрос. Это не деталь производительности, а причина сразу трёх свойств: - сайт остаётся дешёвым под нагрузкой: всплеск посещаемости не стоит ничего сверх; - поисковик получает готовую разметку, а не пустую страницу, которую нужно ждать; - переходы работают с выключенным JavaScript — маршрутизация серверная. Собирается по запросу только то, что зависит от того, КТО смотрит: личный кабинет, рабочий экран. Остальное обновляется по расписанию, и обновление одной страницы не пересобирает сайт. ### Специальные архитектурные инструкции Кодирующий агент начинает каждую сессию, не помня предыдущей. Переживает только записанное — внутри проекта, рядом с кодом. Этот корпус такая же часть архитектуры, как порты: он и делает вторую сессию не глупее первой. | Документ | Для чего нужен | | --- | --- | | Паспорт проекта | Что это за продукт, какие роли, какие языки, что решил владелец — его словами и с датой. Пока в паспорте стоит незакрытый вопрос, работа не начинается. | | Шаги разработки | Работа как файлы: шаг заводится до того, как сделан, и закрывается отчётом. Оборвавшаяся сессия не теряет ничего — новая продолжает с файлов. | | Тестирование | Чем шаг доказан: два независимых доказательства из разных плоскостей. Зелёная сборка не бывает ни одним из двух — её лог выглядит одинаково, работает способность или нет. | | Антипаттерны | Подходы, которые уже стоили времени здесь, каждый с механизмом отказа. Пополняется агентом в тот момент, когда тупик понят. | | Глоссарий | Слова проекта. Термин, значащий у двух сессий разное, — это два разных проекта. | #### Четыре режима разработки Режим отвечает на один вопрос: откуда берётся задача. Выбирается в настройках проекта и меняется в любой момент. - **Классический** — задача приходит от вас словами. Плана вперёд нет, учёта нет. - **Шаги** — очередь пронумерованных шагов, каждый описан до того, как сделан. Это умолчание. - **Кейсы** — работа начинается только с подтверждённого сценария продукта, и каждый шаг называет свой. - **Миграция** — очередь рождается из чтения проекта, который уже работает. ### Продукт — единица работы Один сервер несёт несколько продуктов: сегодня страница-визитка, через неделю наблюдатель, работающий по расписанию, потом справочная система компании. Каждый живёт своим темпом и не может незаметно повредить соседа — у него свои страницы, своя логика, свои таблицы и свои сценарии. Продукт создаётся в панели: вы выбираете одну из двадцати двух структур — витрина, магазин, доставка, справочная система компании и так далее, — и она отвечает за первые вопросы вместо вас. Дальше продукт проходит четыре фазы: расспрос, разбор на шаги, разработка, разбор сделанного. #### Почему не «проект» Потому что проект — не место. У него нет адреса, папки и таблиц, поэтому привязанный к нему сценарий невозможно исполнить: агент всё равно гадает, куда писать. У продукта всё три есть, и в этом вся разница. Его внутренний номер ничего не значит и не меняется никогда — на нём висят пути, а название и адрес вы правите свободно. #### Не у каждого продукта есть страница Продукт объявляет одну из трёх поверхностей, и умолчание всегда в сторону закрытого: - **публичная** — у продукта есть адрес, и посетители до него доходят; - **закрытая** — он живёт вкладкой в панели управления, снаружи входа нет; - **без экрана** — у продукта нет страниц вовсе: он работает по расписанию и через каналы связи, и вы встречаете его в Telegram или в его отчёте. ### Дизайн Цвет, шрифт и размеры не выбираются на каждой странице. Шкала лежит в одном месте, палитра в другом, а заголовок, набранный руками, не проходит проверку и до сайта не доезжает. Правило под этим короткое: **внешний вид страницы не зависит от того, кому она открыта.** Витрина и рабочая таблица набраны одинаково; доступ решает, что человек увидит, и никогда — как это набрано. #### Разделы дизайна Оформление правится внутри самого проекта, шестью разделами. Изменение видно на следующей загрузке страницы — пересобирать проект не нужно. - **Шрифты** — какими семействами набраны заголовки и текст; - **Шкала текста** — все размеры разом, одним множителем: набор становится крупнее или мельче, сохраняя пропорции; - **Формы** — скругления, границы, плотность; - **Цвет** — палитра ролями, а не значениями: светлая и тёмная темы это одни роли с разными величинами, а не два дизайна, которые надо держать в согласии руками; - **Блоки** — каталог того, из чего собираются страницы; - **Верстак** — служебные переключатели, например индикатор ширины экрана. #### Блоки Страница — это список блоков, а не свёрстанный файл. Каталог закрытый: вид, не объявленный в нём, для приложения не существует, и сборка отказывает. Видов больше тридцати, и у каждого есть образец, который можно открыть и посмотреть, — вид, который негде увидеть, не «неиспользуемый», а непроверенный. Новый блок рождается с участием искусственного интеллекта, в том числе из примеров кода, и **стандартизуется** — попадает в тот же каталог, а не остаётся разметкой одной страницы. Дальше он переиспользуется во всех проектах: один раз нарисован, один раз проверен, дальше берётся готовым. ##### Типы блоков Каталог отвечает «что бывает», и для выбора этого мало. Поэтому у блоков есть типы — по назначению, а не по устройству: сначала выбирают тип, и только внутри него вид. - первый экран · преимущества и ценность · как это работает · демонстрация продукта · сценарии применения; - сравнение · цены · отзывы · витрина работ · доверие; - материал страницы — заголовки, абзацы, списки, таблицы, врезки: половина каталога это он. ### Четыре файла конфигурации Значительная часть проекта меняется правкой четырёх файлов — без пересборки и без участия искусственного интеллекта. Приложение читает их на каждом запросе, поэтому изменение видно на следующей загрузке страницы. | Файл | Что в нём | | --- | --- | | Приложение | Имя, описание, адрес, логотип и картинки, значки, автор, соцпрофили, поиск, аналитика, валюта. | | Платформа | Какие способности включены: выключатели, режим разработки, параллельные маршруты. | | Дизайн | Шрифты, шкала, формы, цвет. | | Продукты | Реестр продуктов, по досье на каждый. | Исключение одно, и о нём лучше знать заранее: набор языков и ключи доступа живут в файле окружения, а он запекается на сборке. Сохранить там значение и не пересобрать проект — значит не изменить ничего. ### Мультиязычность Вы включаете языки, на которых говорит ваш рынок, остальные ждут. Включить ещё один позже — настройка, а не переделка сайта. Важнее понимать, чего добавление языка НЕ делает: - не делает ни одну страницу динамической: у каждого языка свои страницы, собранные заранее, — десять языков это десять наборов готовых страниц, а не одна страница, собираемая на лету; - не размывает позиции в поиске: страница объявляет себя оригиналом на своём языке и называет переводы, поэтому поисковик видит одну страницу на десяти языках, а не десять почти-копий, конкурирующих между собой; - не стоит скорости: отдать заранее собранную страницу — одинаковая работа независимо от того, сколько языков рядом. Одноязычный сайт — отдельный законный случай, а не урезанный: язык исчезает из адресов вовсе, и сайт перестаёт объявлять переводы, которых у него нет. ### Поиск и модели На современный сайт приходят два читателя, и им нужно разное. Поисковик отправляет на страницу человека. Модель приходит сама, читает и пересказывает. Продукт устроен для обоих, и это две разные задачи. Поисковику отдаётся готовая разметка: страница называет свой канонический адрес, переводы называют друг друга, структурные данные, карта сайта и правила для роботов идут по умолчанию. Машинные проверки не пропускают страницу, которая это нарушает. Модели отдаётся тот же текст без разметки: карта в `/llms.txt`, весь корпус в `/llms-full.txt` и markdown-версия рядом с каждой страницей. Это важно потому, что разметка для модели наполовину шум — меню, подвал, баннер согласия, скрипты, — и она тратит на него своё внимание. Пока семантическая структура проекта не готова, его рекомендуется закрыть от индексации: настройка живёт в настройках приложения, раздел «Поиск». Обе формы страницы при этом собираются из ОДНОГО содержания — отдельной «версии для ИИ», которая разойдётся с основной, не существует. ### Ролевой доступ из коробки Роли не строятся под проект — они уже есть. Три из них решают доступ: гость, вошедший пользователь и архитектор, то есть владелец сервера. Остальные двенадцать — словарь для бизнеса: покупатель, подписчик, менеджер, поддержка, доставка, финансы, редактор, администратор. Достаточно сказать, какой слой нужен странице. Замок стоит на слое маршрутов, а не в разметке каждой страницы, и дверь к данным не мягче самой страницы: закрыть страницу и оставить открытой дверь под ней — самый частый способ построить дырявый доступ. ### Параллельная маршрутизация Страница может состоять не из одного дерева, а из нескольких именованных областей, которые рисуются одновременно: шапка, подвал, левая и правая панели, центр со своей шапкой и подвалом, промо-экран, крошки, уведомления, модальное окно. Это способ собрать глубокий интерфейс для профессионала, не превращая сайт в приложение. - у области свои страницы и свои адреса — это самостоятельное дерево, а не кусок разметки; - у области своя граница ошибок: упавшая область показывает свою ошибку, остальная страница продолжает работать; - область включается и выключается, и выключенная не рисуется вовсе; - есть три рода маршрута: обычная страница, выдвижная панель и модальное окно поверх страницы — причём адрес при этом настоящий, и такую ссылку можно отправить; - поисковая оптимизация и заранее собранные страницы сохраняются, а изменения применяются без пересборки проекта. Продолжение следует в ближайшее время. ## Инфраструктурная оболочка Всё, что управляет проектом, вынесено за пределы самого проекта. В ваш репозиторий уезжает приложение; панель управления, авторизация и данные остаются на сервере. Причина не в закрытости: правка кода не должна уметь сломать то, чем этот код управляется. Сломать контур руками можно — это ваш сервер, — но тогда последствия остаются с вами, и мы говорим об этом прямо. ### Как всё связано На вашем сервере бок о бок работают несколько процессов. Четыре из них отвечают наружу, и у каждого ровно одна задача. Граница между ними проходит по порту, а не по папке — именно поэтому сбой в одном из них не утягивает за собой остальные. | Порт | Процесс | Для чего нужен | | --- | --- | --- | | 3000 | Ваше приложение | Страницы, которые видят посетители. С ним вы работаете каждый день. | | 3001 | Авторизация | Аккаунты, сессии, роли. Настраивается из панели управления, вы его не редактируете. | | 3002 | Панель управления | То же самое: настраивается, а не редактируется. | | 3300 | Слой данных | Строки, загруженные файлы, векторы — и единственная дверь ко всему остальному. Ваше приложение общается с ним. | Рядом работают ещё три сервиса, и ни один из них не является самостоятельной дверью: - карта — маршруты, матрицы расстояний и поиск адресов, порт 3400; - каналы — Telegram и всё, что за ним последует, порт 3500; - граф знаний — агентное RAG-хранилище, порт 9621. Ни один из этих портов недоступен из интернета: фаервол пропускает только веб-порты, и всё публичное поступает через них. Ваше приложение обращается к трём сервисам через слой данных — /service/geo, /service/channels, /service/rag — с тем же ключом, который открывает сам слой данных. #### Каждый слой переживает остальные Отдельные процессы — это не схема, а то, что происходит в плохой день. Любой из четырёх может остановиться, не утянув за собой остальные. | Если остановится это | Что продолжает работать | | --- | --- | | Ваше приложение | Панель, данные и учётные записи целы; недоступен только сайт. | | Панель управления | Сайт продолжает обслуживать посетителей; ждать приходится только изменениям. | | Слой данных | Заранее собранные страницы открываются — ради этого статическая генерация и нужна. | | Авторизация | Публичные страницы не задеты; закрывается только то, что за входом. | ### Работа с GitHub Репозиторий ваш. Проект отправляется в него и забирается обратно кнопкой в панели; адрес репозитория и токен доступа живут на сервере, а не в коде, поэтому они не уезжают вместе с проектом и не попадают в чужие руки вместе с ним. #### Право уйти Отвязаться от платформы — законный сценарий, а не поломка. Приложение — обычный проект: снимите зависимость от панели, и он запустится где угодно. Вы теряете то, что живёт на сервере: настройки без пересборки, слой данных и поиск по смыслу, авторизацию на 82 языках, журнал развёртываний с откатом, карту и каналы. Код остаётся у вас целиком. ### Собственный домен и сертификаты Проект работает в одном из двух режимов. На старте это адрес по IP и незащищённый протокол — так удобно знакомиться с проектом, и так честно сказано, что часть возможностей браузера в нём недоступна. Второй режим — собственный домен, HTTPS и строгая проверка ролей; в него переходят, как только решили развивать проект всерьёз. Подключение домена описано в панели: мастер из пяти шагов и пять записей у вашего регистратора — сам домен, `www` и три служебных имени для входа, панели и данных. Сертификат при этом выпускается автоматически. #### Сертификаты безопасности Сертификат выпускается и продлевается без участия человека: обновлением занимается системный таймер, который просыпается дважды в сутки и продлевает то, чему пора. Панель показывает срок годности и имена, которые сертификат покрывает, а рядом стоит кнопка ручного обновления — на случай, когда ждать нельзя. ##### Автоматический сертификат Бесплатный, от Let’s Encrypt. Срок жизни — 90 дней, и продлевается он заранее, а не в последний день. Важно понимать, что именно он подтверждает: **контроль над доменом, а не вашу организацию.** Проверки компании такой сертификат не содержит — Let’s Encrypt не выдаёт сертификатов с проверкой организации. ##### Собственный сертификат Загружается парой «сертификат и ключ» и заменяет автоматический. Нужен, когда этого требует ваша компания или внешний регулятор: например, когда сертификат обязан быть выпущен определённым центром или содержать проверку организации. Срок годности и покрытые имена панель показывает так же. ### Авторизация Учётные записи, сессии и роли живут отдельной службой, а не внутри приложения. Интерфейс входа переведён на 82 языка: покупатель приходит из страны, которую вы не выбирали, и на языке, которого вы не планировали. #### Вход по электронной почте Вариант по умолчанию, и его достаточно для прототипа: человек вводит адрес и получает ссылку в письме — пароля нет, значит нечего забыть и нечего украсть. Включается ключом почтовой службы, который вы вставляете в панели. #### Вход через Google Включается парой «идентификатор и секрет» из консоли Google; адрес возврата панель выдаёт готовым — его остаётся скопировать. Сверх этих двух способов доступно **более восьмидесяти** готовых провайдеров входа: подключение любого из них — заявка в поддержку, а не разработка. И главное: вход существует не сам по себе. Он возвращает **роль** — ту самую, на которой стоят слои маршрутов и замки на дверях к данным. Способ входа меняется; то, что человек получает после него, — нет. ### Память Память — сердце проекта, и она не одна. Четыре хранилища разного рода лежат за **одной дверью** и открываются одним ключом. Для агента искусственного интеллекта это разница между «найти по слову» и «понять, о чём речь»: без такой памяти он каждый раз начинает с нуля. #### База данных Строки приложения: пользователи, заказы, записи, журнал сборок. Новая таблица объявляется в одном месте и появляется одинаково и на вашей машине, и на сервере — отдельных миграций, которые надо помнить и запускать, здесь нет. #### Объектное хранилище Файлы и то, что о них известно: картинки, видео, документы, наборы значков. Файл адресуется по имени, а не по номеру, поэтому ссылка на него читается человеком и переживает переезд. Видео обрезается на сервере, и длительность после обрезки проверяется, а не предполагается. #### Векторное хранилище Поиск по смыслу, а не по совпадению слов. Он живёт рядом со строками, которые описывает: одна резервная копия, один контур доступа, одна семантика удаления. Разнеси их по разным службам — и однажды удалённая запись останется в поиске. #### Агентный RAG Граф связей: хранит не куски текста, а то, как сущности связаны между собой. Отвечает на вопросы, у которых нет одного источника ответа. Включается переключателем, собственного интерфейса не имеет намеренно — с ним разговаривают не глазами, а вопросами. Проверить память можно, ничего не программируя: **Telegram-бот отвечает вопросами к графу знаний** — вы пишете вопрос, он отвечает из загруженных документов, а если база пуста, честно говорит, что отвечать ему не из чего. Голосовое сообщение он расшифровывает сам. ### Каналы связи Глубоко встроен пока один канал — Telegram. «Глубоко» здесь значит не «умеет отправлять сообщения», а двустороннюю связь с проектом: входящие складываются в общий ящик, файлы принимаются, голос расшифровывается, ответ приходит из памяти проекта. Служба одна и читает бота одна: у Telegram сообщение достаётся ровно одному читателю, и второй опрашивающий молча съедал бы половину переписки. Следующий канал — почта, мессенджер, виджет на сайте — добавляется разработчиком как ещё одна запись в той же службе, а не как вторая служба. При этом собственные каналы связи внутри самого приложения архитектор строит сам: платформа нужна там, где канал обязан быть общим для всего сервера. ### Карта Карта в платформе — не «показать точку на подложке». Это маршруты между адресами, матрицы расстояний между десятками точек, поиск адреса по названию и порядок объезда: доставка, курьеры, выезды, обход объектов — любой процесс, у которого есть география. Особенность в том, **где** это считается: картографические движки работают на вашем же сервере, а не в чужом облаке. Отсюда два следствия — у запросов нет поштучного счёта, и адреса ваших клиентов не уезжают на сторону, чтобы вернуться расстоянием. ### Панель управления Панель намеренно уменьшается: её разделы один за другим переезжают внутрь проекта, туда, где лежит код. Но часть работы останется в ней всегда — та, что обязана пережить поломку самого приложения. Сломанное приложение не может починить себя изнутри. #### Резервное копирование Копия снимается по частям, и части выбираются по одной: база вместе с векторной памятью · файлы и то, что о них известно · граф знаний · настройки приложения · каналы связи · файл окружения. Шесть частей вместо одной большой кнопки — потому что восстанавливают обычно одно, а не всё: вернуть настройки, не трогая сегодняшние заказы, иначе невозможно. #### Развёртывание и ошибки Журнал сборок хранит, что собиралось, когда, сколько шло, чем кончилось и весь вывод целиком. Провалившаяся сборка не оставляет проект в неопределённом состоянии: возвращается последняя удачная, и сайт продолжает работать. Пользоваться этим можно руками, но обычно не нужно: развёртыванием и разбором ошибок управляют через агента-программиста, а панель остаётся страховкой и наблюдательным постом — местом, куда приходят, когда что-то пошло не так.