Интеграция с CI
Самая безопасная история для CI не обязана быть сложной. Она просто должна строго проверять публичный контракт проекта.
Минимальный CI gate
Для большинства authored projects базовый путь такой:
plugin-kit-ai doctor .
plugin-kit-ai generate .
plugin-kit-ai validate . --platform <target> --strictЕсли у вашего path есть stable smoke tests или bundle checks, добавляйте их после validation gate, а не вместо него.
Почему это работает
doctorрано ловит отсутствующие runtime prerequisitesgenerateдоказывает, что generated outputs можно воспроизвести из исходного состояния проектаvalidate --strictдоказывает, что repo внутренне согласован для выбранного target- для multi-target repo эта же логика должна выполняться по каждому target’у в support scope
Заметки по runtime
Go
Go — самый чистый CI path, потому что execution machine не обязана иметь Python или Node просто для удовлетворения runtime path.
Node/TypeScript
Явно добавляйте bootstrap:
plugin-kit-ai doctor .
plugin-kit-ai bootstrap .
plugin-kit-ai generate .
plugin-kit-ai validate . --platform codex-runtime --strictPython
Используйте тот же паттерн, что и для Node, и явно фиксируйте версию Python в CI.
Частые ошибки в CI
- запускать
validate --strictбезgenerate - воспринимать generated artifacts как вручную поддерживаемые файлы
- забывать про runtime prerequisites для Node или Python paths
- обещать совместимость для target, который находится вне stable support boundary
Рекомендуемое правило
Если CI не может воспроизвести authored outputs и пройти validate --strict, repo не готов к стабильному handoff. Для multi-target repo нужен явный зелёный прогон по каждому target’у в support scope.
Свяжите эту страницу с Готовностью к продакшену, Границей поддержки и Диагностикой проблем.