Чек-лист готовности пакета¶
Проверочный список перед выпуском пакета и его интеграции: что должно быть сделано, чтобы пакет ставился на чужую инсталляцию без правки и без изменений ядра. Страница для автора и ревьюера пакета. Каждый пункт ведёт к статье, где он объяснён.
Граница с ядром¶
- Ни одного изменения в ядре ради домена: статусы, поля, шаги, таблицы решений и слова домена — в пакете (Пакеты).
- Своего оркестратора, базы и демона у вертикали нет: ход дела — процесс, реакция на факты — правила, действия во внешнем мире — скиллы (Вертикаль — пакет без 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установки, а не удалением файлов пакета.