Перейти к содержанию

Чек-лист готовности пакета

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

Граница с ядром

  • Ни одного изменения в ядре ради домена: статусы, поля, шаги, таблицы решений и слова домена — в пакете (Пакеты).
  • Своего оркестратора, базы и демона у вертикали нет: ход дела — процесс, реакция на факты — правила, действия во внешнем мире — скиллы (Вертикаль — пакет без runtime).
  • Своего интерфейса у пакета нет: люди видят его работу там же, где любую работу ядра (Интерфейс людей).
  • Память — только через ядро: процессы (memory, recall, remember), снимки наблюдателя, ctx.knowledge скиллов (Знания и онтология).

Манифест и переменные

  • spec.version — SemVer, поднята по характеру изменений (Установка и выпуск).
  • engines — диапазон версий ядра, на которых пакет проверен; requires — с диапазонами (Анатомия).
  • license (SPDX), authors, description заполнены.
  • Всё, что зависит от стенда (UUID пространства работы, адреса, пороги), — переменные ${ИМЯ} с description и kind; UUID стенда в файлах нет (Переменные).
  • Ни одного значения секрета в пакете: секреты — имена в placement.secrets агентов.
  • knowledge называет онтологии, на которые опираются процессы; своя онтология расширяет базовую, а не переобъявляет её виды.

Работа, правила, процессы

  • У каждого типа задачи — instructions для исполнителя, fieldSchema полей, которые читают процесс и правила (Работа).
  • Внешняя запись (external_write) стоит после решения человека: в исходе гейта типа задачи или шагом call сразу за approve процесса; retry и короткий timeout вокруг неё выбраны осознанно (Скиллы пакета, Внешняя запись из процесса).
  • Разовая реакция на факт — правило с dedupKeyTemplate; дело со стадиями и сроками — процесс (Правило или процесс).
  • У правил и процессов есть личность identity: {agent: …} с правами ровно на их действия (Агенты пакета).
  • Процесс с новым поведением — новая spec.version; удалённые элементы с живыми делами — карта migrations; переименование объекта — renames (Процессы в пакете).

Интеграция

  • Контракты скиллов сгенерированы из кода (skill-sdk export), YAML руками не правится (Скиллы пакета).
  • Скилл с внешней записью идемпотентен: ключ вызова уходит во внешнюю систему.
  • Предусмотренный исход скилла — выход, сбой среды — SkillError с retryable (skill-sdk, «Исход против сбоя»).
  • Наблюдатель строит dedup_key из того, что делает факт тем же фактом (объект и его версия); курсор — в ctx.state (Интеграции).
  • Образы наблюдателя и хоста скиллов собираются из сгенерированных Dockerfile поверх базовых образов платформы, закреплены тегом, в пакете — executor.image (Интеграции).
  • Метки узлов и имена секретов названы по смыслу доступа, а не по машине; package-sdk describe . показывает их полный перечень.

Агенты и права

  • Одна роль — один агент; хост скиллов и наблюдатель — разные агенты.
  • Права агентов — ровно то, что делают их действия: хосту скиллов — sessions.open, tasks.read, skills.execute; наблюдателю — observations.write; никому — admin и approvals.decide (Агенты пакета).
  • Желаемое состояние агентов (state, replicas) задано в файле, а не ручной остановкой на стенде.

Тесты

  • package-sdk test . зелёный целиком: проверка, контракты скиллов, тесты кода интеграции, сценарии (Тесты пакета).
  • Сценарий на каждую ветку процесса, каждую ветку условия правила и каждый исход гейта; в отчёте нет не пройдены и без сценариев.
  • Заглушки скиллов в сценариях отвечают по контракту скилла; отказ внешней системы тоже покрыт сценарием.
  • CI пакета запускает пирамиду с базой PostgreSQL для сценариев правил и типов задач и package-sdk docs . --check.

Выпуск и установка

  • Раздел README обновлён package-sdk docs . --write; журнал изменений описывает, что сделать при обновлении.
  • Тег выпуска опубликован и не переставлялся.
  • Установка берёт пакет из git по тегу; packages.lock обновлён и закоммичен в git установки (Установка и выпуск).
  • План plan --out показан человеку целиком: секции, правки консоли, replay и судьба живых дел; применён ровно этот план apply --plan.
  • Ненужное выводится retire установки, а не удалением файлов пакета.

См. также