К содержимому

Проект

Найти корни проектов, проиндексировать их без секретов, прочитать публичные символы и записать паспорт проекта.

Проект

Проект в ai_stp — каталог, который вы называете, а не диск, по которому CLI идёт искать. Discovery сканирует только переданный корень. Домашний каталог отклоняется. Индексация ограничена и пропускает секреты и двоичное содержимое. Паспорт проекта закрепляет этот индекс вместе с toolchain и конфигурацией, которые были в силе.

Эти команды не собирают сетап и не пишут target harness. Они описывают одно дерево, чтобы у позднего выбора было на чём стоять.

Команды

КомандаMutabilityConfirmationКогда
ai-stp project discoverreadnoneперечислить проекты внутри названного каталога; больше ничего не сканирует
ai-stp project indexreadnoneпроиндексировать один корень проекта, ограниченно, пропуская секреты и двоичное содержимое
ai-stp project symbolsreadnoneпрочитать публичные символы проекта, точки входа и тесты; графа вызовов нет
project passportapplynoneзаписать ревизию паспорта проекта, закрепляющую индекс, toolchain и конфигурацию
ai-stp project revision pushapplyexplicit_flagопубликовать allowlisted-проекцию локального паспорта в ledger организации
ai-stp project revision pullreadnoneпрочитать redacted-узлы ledger организации для одной связи

--root обязателен на discover, index, symbols и passport. Настроенного запасного пути нет, и «текущий каталог» молчанием не подразумевается. Revision push и pull берут идентификатор локального проекта и связь организации.

Типичный путь

ai-stp project discover --root <root> --json
ai-stp project index --root <root> --json
ai-stp project symbols --root <root> --json
ai-stp project passport --root <root> --json

<root> — точный корень проекта, не домашний каталог и не родитель многих репозиториев, если вы не хотели искать внутри этого родителя. discover перечисляет кандидатов внутри каталога. index, symbols и passport каждый принимают один корень проекта.

project index и project symbols — чтения: они ничего не пишут. project passport сохраняет ревизию в локальном реестре. Он идемпотентен — неизменённый проект ничего не добавляет — но идемпотентность не есть только чтение.

discover может вернуть несколько кандидатов. index, symbols и passport каждый принимают одно из этих значений root. Не передавайте родителя discovery в index, если этот родитель сам не является проектом. Вложенные репозитории перечислены отдельно, чтобы можно было выбрать.

project discover

Перечислить проекты внутри названного каталога. Больше ничего не сканирует.

ai-stp project discover --root <root> --json

Корень называют, а не ищут. Нет режима, в котором эта команда идёт смотреть сама.

Успешный data называет:

ПолеЧто это
discovery_rootкаталог, который вы назвали, в разрешённом виде
completeзакончилось ли сканирование внутри своих границ
candidatesкаждый с root, kind, state, markers, reason
diagnosticsпропущенные пути, каждый с code, path, reason
schema_versionmajor схемы этого отчёта

kind кандидата — project или nested_repository. state — new или established. code диагностики — excluded, entry_limit, symlink или unreadable.

Если complete равен false, список — не всё дерево. Читайте diagnostics, прежде чем считать тишину за «здесь ничего нет».

project index

Проиндексировать один корень проекта, ограниченно, пропуская секреты и двоичное содержимое.

ai-stp project index --root <root> --json

Читает и сообщает. Паспорт, который записывает индекс, — другая команда. Короткий ответ, который выглядит полным, хуже полного ответа, который говорит, где остановились, поэтому state — complete или partial, а stopped_by называет границу, когда индекс частичный.

Успешный data называет:

ПолеЧто это
rootкорень проекта, который индексировали
statecomplete или partial
stopped_byкакая граница сработала, или null
filesкаждый с path, kind, language, lines, size_bytes, digest
excludedкаждый с path и reason
schema_versionmajor схемы этого отчёта

kind файла — manifest, lock, agent_surface, source, document, config или text. Содержимого исключённых файлов в конверте нет. Секретов и двоичных байтов в конверте нет.

project symbols

Прочитать публичные символы проекта, точки входа и тесты. Графа вызовов нет.

ai-stp project symbols --root <root> --json

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

Успешный data называет:

ПолеЧто это
rootкорень проекта, который читали
stateзакончилось ли чтение внутри своих границ
stopped_byкакая граница сработала, или null
languagesкаждый с language, state, method, files, symbols, entry_points, tests, reason
schema_versionmajor схемы этого отчёта

state языка — available или not_available. Язык, который есть в дереве, но для которого в этом билде нет парсера, всё равно перечислен, с причиной.

project passport

Записать ревизию паспорта проекта, закрепляющую индекс, toolchain и конфигурацию.

ai-stp project passport --root <root> --json

Результат — вид паспорта (kind равен project) с stable_id, revision_id, parent_revision_ids, owner_id, facts, created_at и schema_version. Как читать эту форму — Паспорта.

Факты закрепляют то, что наблюдали, а не то, что вы хотели бы видеть. Изменить дерево и записать снова — добавить ревизию. Предыдущую это не правит.

Локальный паспорт не находится в ledger организации. После связи проекта путь в организацию — project revision push, затем project revision pull, если другой device уже публиковал, затем project sync plan и project sync apply. --local-revision у плана — это ledger revision_id из квитанции push. Собственный revision_id паспорта — другой домен дайджеста; план с ним отклоняется как ревизия, которой организация не видела.

Ledger организации

Локальный паспорт остаётся на устройстве, пока вы не опубликуете его allowlisted-проекцию. project revision push — эта публикация: дайджесты, счётчики и состояние индекса, никогда пути и исходники. project revision pull читает redacted-узлы, которые уже опубликовал другой device. Ни одна из этих команд не двигает указатели ProjectLink; это project sync plan, затем project sync apply. План local_to_remote отклоняется, пока ревизии нет в ledger организации.

Флаги, подтверждение и схемы результата берите из ai-stp help --agent --json. Не копируйте их сюда.

Что содержит успешный конверт

Discover, index и symbols каждый возвращают поля, названные в своих разделах. project passport возвращает поля вида паспорта. Каждый конверт также несёт ok, warnings, next_actions, request_id, operation_id и schema_version.

Домашние пути в полях root и path свёрнуты для отображения. Это не другой каталог на диске.

Чего эти команды никогда не делают

  • не сканируют домашний каталог и не весь диск;
  • не держат секретное или двоичное содержимое файлов в индексе;
  • не строят граф вызовов, граф пакетных зависимостей и embedding модели;
  • не собирают сетап и не пишут target harness;
  • не кладут токены и тела .env в паспорт проекта.

Типичные отказы

Что видноЧто это значитЧто делать
AI_STP_VALIDATION_ERROR нет --rootdiscover, index, symbols и passport его требуютпередать --root <root>
AI_STP_VALIDATION_ERROR home directorydiscovery отказывается сканировать homeназвать каталог проекта внутри него
state: partial на index или symbolsсработала граница размера, глубины, числа записей или временичитать stopped_by; не считать ответ полным
complete: false на discoverсканирование остановилось внутри границчитать diagnostics
AI_STP_VALIDATION_ERROR unreadable rootпути нет или его нельзя прочитатьпередать точный существующий корень проекта
ожидание, что index запишет паспортиндексация — чтениеproject passport --root <root> --json
AI_STP_PRECONDITION_FAILED нет паспорта для публикацииrevision push проецирует локальный паспортproject passport --root <root> --json
AI_STP_PRECONDITION_FAILED заново наблюдать project linkпустой мигрированный link_id — не привязкаproject link show, затем та же команда
AI_STP_PRECONDITION_FAILED ревизии нет в ledger организации--local-revision плана — не id ledgerproject revision push, затем план с revision_id квитанции

Связанные страницы

СтраницаЗачем
Паспортакак читать вид паспорта
Конфигурацияprojects.discovery_roots
Выборпаспорт проекта якорит сессию
Targetежедневное состояние одного проекта и harness
Команды компонентанативные компоненты внутри проекта
Быстрый старт для человекапуть первого запуска не требует проекта

!!! note "Флаги из ai-stp help --agent --json" Если help --agent расходится с флагом на этой странице, прав CLI. Необязательные флаги здесь не перечислены. Читайте их из дескриптора. Discover, index, symbols и passport требуют --root. Revision push и pull — нет.