Инструмент

Что именно покинет мою машину?

Разобранный пример Evidence Package, поле за полем. Что пересекает границу, что не пересекает никогда — и та часть, которую страницы про приватность обычно опускают: где метаданные всё-таки бывают чувствительными.

Уходит в 1ADK

Всё это присутствует в настоящем пакете.

entities[].name

PaymentService

Как эта штука называется в коде.

entities[].type

SERVICE

Один из фиксированного набора видов, чтобы два анализа можно было сравнить.

entities[].description

Creates and changes payment operations.

Одно предложение, написанное для того, кто код не читает.

entities[].repository_path

app/Services/PaymentService.php

Относительно корня репозитория. Никогда не абсолютный путь.

relations[]

svc.payments WRITES_TO db.main

Какой компонент какой использует и как именно.

interfaces[].path_or_channel

POST /api/payments

Маршрут, а не то, что по нему ходит.

evidence[].locator

app/Services/PaymentService.php : 40-88

Путь и диапазон строк. Не сами строки.

claims[].value

Repeating a request with the same reference returns the first payment.

Читаемое утверждение, опирающееся на доказательство выше.

unknowns[].question

What happens to a payment the provider never confirms?

Вопрос, на который по коду ответить никто не смог бы.

coverage[]

REPOSITORY "." PARTIAL, excluded: vendor, node_modules

Что смотрели, а что нет.

source.revision

9f3c1a2

Коммит, на котором читали, — чтобы у картины была точка во времени.

В 1ADK не уходит

Это не опция и не настройка. Этому просто некуда попасть.

Содержимое файлов

В формате отсутствует

Нет поля, в которое агент мог бы положить тело функции. Описание, которое читается как исходник, отклоняется, и вместе с ним весь пакет.

Значения конфигурации

Отсутствуют

Ничего из .env и любого конфигурационного файла. Имена настроек появиться могут; их значения — нет.

Секреты

Отклоняются на входе

Токены, пароли, ключи, строки подключения и куки. Свободный текст просматривается на формы, которые они принимают, и пакет с такой формой отвергается целиком.

Содержимое базы

Отсутствует

Ни строк, ни дампов, ни SQL, ни клиентских записей.

Абсолютные пути

Отсутствуют

В домашнем каталоге есть имя человека. Только относительные пути.

Доступ к репозиторию

Не запрашивается

Ни доступа, ни деплой-ключа, ни OAuth-разрешения. В продукте нет поля, куда это можно было бы положить.

Соединение к вам

Не открывается

1ADK никогда не инициирует соединение в сторону клиентской машины. Любой обмен начинается с вашей стороны.

Где метаданные всё-таки бывают чувствительными

Эту часть страницы про приватность обычно пропускают. Метаданные не безобидны автоматически, и решение здесь принимать вам — с примером перед глазами, а не после регистрации.

  • app/Services/AcmeBankIntegration.php — путь может назвать клиента, о котором вы ещё не объявляли.
  • LayoffQueue — имя компонента может описать план.
  • POST /api/partners/{'{'}id{'}'}/settlement — маршрут может описать коммерческую договорённость.
  • Описание может нести бизнес-логику, которая сама по себе конфиденциальна: как считается скидка, что ищет антифрод-правило.
  • Карта целиком говорит читателю, где что лежит и какие части никто не проверял. В чужих руках это полезный документ.

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

  • выдуманный пример
  • без аккаунта
  • ничего не надо ставить
  • читается за 4 минуты

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

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

#Весь файл, как он выглядит на диске

Две колонки выше — это аргумент. А вот сам объект: фрагмент Evidence Package для выдуманной биллинговой системы, ровно в том виде, в котором его пишет агент.

1adk-package.json Вымышленный пример — не клиент
1adk-package.json
{
  "schema": "1adk.evidence-package/1",
  "protocol_version": "1",
  "scan_job_id": "9d1f…",
  "generated_by": { "agent": "claude-code", "version": "…" },
  "source": { "kind": "AGENT_SCAN", "title": "Static scan", "revision": "9f3c1a2" },

  "coverage": [
    { "kind": "REPOSITORY", "scope_key": ".", "status": "PARTIAL",
      "excluded": ["node_modules", "vendor"],
      "reason": "Dependencies were not read." }
  ],

  "limitations": ["Runtime behaviour was not observed; nothing was executed."],

  "entities": [
    { "key": "svc.payments", "type": "SERVICE", "name": "PaymentService",
      "description": "Creates and changes payment operations.",
      "repository_path": "app/Services/PaymentService.php",
      "confidence": "HIGH" },
    { "key": "db.main", "type": "DATABASE", "name": "Main database",
      "description": "Where orders and payments are kept." }
  ],

  "relations": [
    { "from": "svc.payments", "type": "WRITES_TO", "to": "db.main",
      "description": "Records every payment attempt." }
  ],

  "evidence": [
    { "key": "ev.create", "kind": "CODE_REFERENCE",
      "summary": "Where the payment is created.",
      "locator": { "path": "app/Services/PaymentService.php", "lines": "40-88" },
      "confidence": "HIGH" }
  ],

  "claims": [
    { "about": "op.create", "predicate": "idempotency",
      "value": "Repeating a request with the same reference returns the first payment.",
      "perspective": "OBSERVED", "evidence": ["ev.create"] }
  ],

  "unknowns": [
    { "question": "What happens to a payment the provider never confirms?",
      "why_it_matters": "Money may be taken with nothing recorded against it.",
      "reason_kind": "NOT_ESTABLISHED", "priority": "HIGH", "about": "svc.payments" }
  ]
}

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

#Что происходит между вашим диском и картой

  1. Агент пишет файл и останавливается

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

  2. Файл читает человек

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

  3. Загрузка по HTTPS, в карантин

    Байты приземляются не в хранилище проекта. Пока ничего не разбиралось.

  4. Проверка

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

  5. Ваше одобрение

    Прошедший проверку пакет ждёт. Вы видите, что в нём, и решаете, станет ли он частью проекта.

  6. Запись

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

#Точная формулировка — и та, которой не делает больше никто

Что 1ADK утверждает

1ADK не требует доступа к вашему репозиторию и не требует загружать исходный код в 1ADK.

Чего 1ADK не утверждает

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

Если ваш код не должен читать облачный агент — запускайте локального или не запускайте это вовсе.

#Чего эта страница не доказывает

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

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

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

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

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

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

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

Посмотрите на это на своей системе.

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

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