Как это работает

Как 1ADK разбирает систему, к которой у него нет доступа?

1ADK не прикасается к вашему коду. Он читает структурированное описание системы, которое сделал ваш собственный кодовый агент, проверяет его, запоминает, откуда взято каждое утверждение, и хранит результат так, чтобы следующий анализ можно было сравнить с этим.

Короткий ответ

Вы выбираете, как будет сделано чтение: либо подключаете привычного вам кодового агента, один раз вставив в него блок текста, и дальше кнопка Scan now в 1ADK отдаёт задание этой машине, — либо копируете ту же инструкцию, выполняете её сами и загружаете файл, который написал агент. Оба пути отправляют одно и то же: описание системы с основанием для каждого утверждения, без исходного кода. Ничто не становится частью проекта, пока вы это не посмотрите и не одобрите.

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

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

#Два пути

Они отличаются тем, кто переносит описание. Они не отличаются ни тем, что пересекает границу, ни тем, кто решает, что останется.

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

Два пути рядом
Что отличается С подключением Вручную
Настройка Один раз вставить блок текста в своего агента. Codex вдобавок требует одной строки, которую вы выполняете сами. Настраивать нечего.
Начать анализ Тот, кто подключал машину, нажимает Scan now, и она берёт задание сама. Любой, у кого есть код, копирует инструкцию и выполняет её.
Получить результат Машина отправляет описание, когда закончит. Агент пишет файл; вы читаете его и загружаете.
Что получает 1ADK То же самое описание. Никогда не исходный код. То же самое описание. Никогда не исходный код.
Что попадает в проект Только то, что вы одобрили. Только то, что вы одобрили.
Как это закончить Отозвать ключ. Он перестаёт работать на следующем обращении машины. Заканчивать нечего — подключения и не было.

Выбор не навсегда

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

#Подключение привычного агента

Блок текста, который вставляют в Claude Code или Codex, — а для Codex ещё одна строка, которую вы выполняете сами. Никакой программы 1ADK ставить не нужно.

  1. Вы открываете страницу подключения и выбираете агента

    Страница спрашивает, как вы хотите работать, и предлагает три ответа рядом: Claude Code, Codex или вручную. Выберите один из первых двух — и 1ADK покажет блок текста.

    Адрес репозитория не спрашивают ни там, ни когда проект заводится. Поля для него просто нет.

  2. Вы вставляете этот блок в агента

    Вставляйте его в агента, уже открытого в той папке, где лежит код: именно это решает, какой проект будет подключён. Это набор указаний, написанных для агента, а не команда, которую нужно понимать вам: агент забирает одноразовый код, годный несколько минут, добавляет 1ADK в свой собственный список инструментов, проверяет, что это работает, и обычными словами говорит вам, получилось или нет.

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

  3. Вы просите анализ, когда он вам нужен

    На странице подключения видно, что подключено, и там же есть кнопка Scan now — кабинет 1ADK на английском. 1ADK открывает задание; подключённая машина сама его спрашивает, читает систему там, где она уже лежит, и отправляет описание обратно.

    Машина отвечает тому, кто её подключил, поэтому Scan now принадлежит ему; остальные участники проекта запускают анализ вручную, и он покрывает ровно то же самое. 1ADK никогда не обращается к этой машине — любой обмен начинается с вашей стороны.

  4. Вы решаете, что будет записано

    Пришедшее описание проходит проверку и остаётся ждать. Вы видите сводку: сколько компонентов, сколько открытых вопросов, что агент не смог установить, — и решаете, становится ли это знанием проекта.

    Подключение не делает ничего автоматическим. Этот шаг одинаков на обоих путях.

Что держит подключённая машина

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

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

#Вручную

Ничего не подключено, ничего не настроено, и продукт работает.

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

  1. Скопировать инструкцию

    На странице задания лежит блок текста. Его копирует в кодовый агент — Claude Code, Codex или любой другой, умеющий читать локальный репозиторий, — тот, у кого код уже выгружен.

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

  2. Прочитать файл и загрузить его

    Агент пишет один JSON-файл в корень вашего репозитория и останавливается. Никуда ничего не отправляется. Кто-то открывает файл, видит ровно то, что там написано про его систему, и загружает в 1ADK, если его это устраивает.

    Это единственный путь, на котором человек может прочитать каждый байт до того, как он уйдёт с машины. Ради этого он и предложен.

  3. Вы решаете, что будет записано

    1ADK проверяет файл и держит его — ровно так же, как держит описание, пришедшее по подключению. Пока человек с вашей стороны не одобрил конкретный файл, в хранилище проекта не попадает ничего.

Как это происходит на практике

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

#Что пересекает границу

Самое важное предложение про 1ADK — отрицательное, и в нём стоит быть точным. На обоих путях оно одно и то же.

  • Имена — сервисов, модулей, классов, баз, очередей, эндпоинтов.
  • Относительные путиapp/Services/PaymentService.php и диапазоны строк.
  • Виды и связи — это читает то; это развёрнуто внутри того; это реализует то.
  • Описания — по предложению на каждую сущность, написанные для того, кто код не читает.
  • Утверждения и их основания — что говорится про компонент и из какого файла и строк это выведено.
  • Открытые вопросы — то, на что агент не смог ответить, и почему это важно.
  • Охват — какие части репозитория действительно смотрели, а какие нет.
  • Исходный код. Ни содержимого файлов, ни фрагментов. Ни одного тела функции.
  • Значения конфигурации. Ничего из .env и из конфигурационных файлов.
  • Секреты. Ни токенов, ни паролей, ни ключей, ни строк подключения, ни кук.
  • Данные. Ни строк таблиц, ни дампов, ни SQL, ни записей о клиентах.
  • Доступы. Ни доступа к репозиторию, ни SSH-ключа, ни облачной роли, ни VPN, ни входящего соединения любого вида.
  • Абсолютные пути. Только относительные — домашний каталог это чьё-то имя.

То, о чём обычно молчат

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

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

#Что лежит в описании

Это один JSON-файл, и на обоих путях он пишется в корень вашего репозитория — то есть лежит у вас на диске и читается независимо от того, подключали вы агента или нет.

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

Фрагмент описания Вымышленный пример — не клиент
{
  "entities": [
    { "key": "svc.payments", "type": "SERVICE", "name": "PaymentService",
      "description": "Создаёт и меняет платёжные операции.",
      "repository_path": "app/Services/PaymentService.php" }
  ],
  "evidence": [
    { "key": "ev.create", "kind": "CODE_REFERENCE",
      "summary": "Где создаётся платёж.",
      "locator": { "path": "app/Services/PaymentService.php", "lines": "40-88" },
      "confidence": "HIGH" }
  ],
  "claims": [
    { "about": "op.create", "predicate": "idempotency",
      "value": "Повтор запроса с тем же ключом возвращает первый платёж.",
      "perspective": "OBSERVED", "evidence": ["ev.create"] }
  ],
  "unknowns": [
    { "question": "Что происходит с платежом, который провайдер так и не подтвердил?",
      "why_it_matters": "Деньги могут быть списаны, а записи о них не останется.",
      "priority": "HIGH", "about": "svc.payments" }
  ]
}

Путь и диапазон строк. Предложение. Уровень уверенности. Вопрос, который намеренно оставлен открытым. И ничего, что можно было бы вставить обратно в редактор и собрать.

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

Охват фиксирует, что на самом деле смотрели. Если анализ пропустил vendor/, он об этом говорит. Поэтому 1ADK умеет отличать «этого компонента больше нет» от «в этот раз туда не заглядывали» — различие, которое на втором запуске оказывается неожиданно важным.

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

#Что происходит после того, как оно пришло

Одинаково, загрузил ли файл человек или его прислала подключённая машина. Сервер не доверяет одному больше, чем другому.

  1. Карантин

    Байты попадают туда, где нет ни одного хранилища проекта и куда остальной продукт не заглядывает. Ничего ещё не разобрано.

  2. Проверка

    Файл сверяют со схемой пакета, ограничением по размеру и тем заданием, к которому он себя относит. Свободный текст просматривают на формы, которые обычно принимают учётные данные: bearer-заголовок, ключ AWS, начало приватного ключа. Пакет с такой находкой отклоняют целиком.

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

  3. Ваше решение

    Проверенное описание ждёт. Вы видите, что в нём: количества, охват, ограничения, о которых заявил сам агент, — и либо одобряете его, либо выбрасываете. Одобрение даётся на конкретное описание и всегда явно.

  4. Запись

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

Знание каждого проекта живёт в собственном изолированном хранилище. Два проекта не делят одну базу, и в продукте нет запроса, способного прочитать сразу оба. У публичного сайта, который вы сейчас читаете, доступа ко всему этому нет вообще: это отдельное приложение, у которого нет ни одного доступа к базе платформы.

#Что вы получаете

Быстрее всего судить об этом, открыв готовое. Демонстрационный проект — это полностью разобранная система, вымышленная и подписанная как вымышленная на каждом экране, показанная теми же страницами, которыми пользуется настоящий клиент. Аккаунт не нужен.

#Второй запуск

Именно этот раздел решает, стоит ли продукт чего-нибудь после первой недели.

Карта изменившейся системы хуже, чем отсутствие карты, потому что по ней кто-нибудь начнёт действовать. Поэтому второй анализ — не повторение первого, а сравнение. 1ADK сопоставляет то, что говорит новое описание, с тем, что уже хранит, и сообщает четыре разные вещи:

  • Появилось — компонент, которого в прошлом анализе не было.
  • Изменилось — тот же компонент, описанный иначе.
  • Исчезло — и только там, где охват позволяет это утверждать. Если второй анализ в этот каталог не заглядывал, 1ADK не скажет, что компонент удалили.
  • Больше не подтверждается — утверждение, которое делали раньше и которое ничем в текущей картине не поддержано. Его не удаляют: его помечают как то, во что раньше верили.

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

Чего 1ADK не обещает про актуальность

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

1ADK не выполняет эту строку и не открывает анализ по собственному расписанию. Он и не может: машина, которая делает чтение, — ваша, а задание, на которое некому ответить, истечёт, оставив в истории проекта только запись о том, что ноутбук был выключен.

#Чего это не делает

Чего это не делает

  • Не запускает ваш софт. Ничего не выполняется, поэтому поведение во время работы — что происходит под нагрузкой, что видит конкретный пользователь — за пределами того, что может установить анализ.
  • Это не сканер безопасности. Он не ищет уязвимости и не утверждает, что ваша система защищена.
  • Не читает того, чего нет в репозитории. Зависимость, настроенная в облачной консоли и нигде в коде не упомянутая, — ровно тот случай, который станет открытым вопросом.
  • Полнота результата равна полноте анализа. Агент, пропустивший половину системы, даёт картину половины системы — поэтому охват сообщают, а не предполагают.
  • Он не дотягивается до вашей машины. Подключение даёт этой машине ключ, чтобы обращаться к 1ADK; самому 1ADK оно не даёт ничего, чем можно было бы обратиться обратно, и 1ADK никогда не открывает анализ сам — любой анализ начинается с вашей стороны: либо кнопку нажал человек, либо отработала строка в вашем планировщике.
  • Не пишет за вас документацию. Он фиксирует, что есть и чего не знают; решать, что с этим делать, по-прежнему человеку.

Вопросы, которые задают на самом деле

Нет. У 1ADK нет доступов к репозиторию, нет SSH и нет ни одного входящего соединения к вашим машинам. Обмен всегда идёт в обратную сторону: машина с вашей стороны сама обращается к 1ADK по HTTPS — будь то подключённый агент, который спрашивает следующее задание, или человек, который загружает файл.

Тем, кто переносит описание. С подключением тот, кто подключал машину, нажимает Scan now, и отвечает на это она. Вручную человек копирует инструкцию, выполняет её и загружает файл, который написал агент. Агента на обоих путях просят искать одно и то же, и границу пересекает одно и то же; отличается одно правило — вручную агенту запрещено открывать сетевые соединения вообще, и он останавливается на файле на диске, а с подключением ему разрешено обращаться к 1ADK и больше ни к кому. В обоих случаях ничто не становится частью проекта, пока вы это не одобрите.

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

Любой, кто и так читает этот код: вы, штатный разработчик, ваше агентство или тот разработчик, который уходит. Задача только на чтение, права администратора для неё не нужны. Подключение делают один раз — тот, у кого код уже выгружен; одобрять записанное может уже другой человек.

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

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

Сторона агента зависит от размера системы и от самого агента: минуты для небольшого сервиса, дольше для крупного монолита. Как только описание пришло, проверка проходит сразу, а запись становится в очередь; карта читается, как только запись прошла.

Ни на одном из двух путей не нужно ставить программу 1ADK. Подключение — это блок текста, который вставляют в привычного вам агента: он добавляет 1ADK в свой собственный список инструментов и сообщает, получилось ли. Codex вдобавок требует одной строки, которую вы выполняете в своей оболочке сами, — он берёт ключ только из переменной окружения. Вручную настраивать нечего вовсе — инструкция это просто текст.

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

Узнайте, чем вы на самом деле владеете.

Без доступа к репозиторию. Без загрузки исходного кода. Без банковской карты.

Построить карту проекта — бесплатно