# Scripts ## `staging-smoke.sh` Post-deploy smoke helper для staging/production-like окружений. ```bash ./scripts/staging-smoke.sh https://crank.example.com ``` ## `authenticated-staging-smoke.sh` Browser-authenticated smoke helper. Обязательные переменные: - `CRANK_STAGING_ADMIN_EMAIL` - `CRANK_STAGING_ADMIN_PASSWORD` ```bash CRANK_STAGING_ADMIN_EMAIL=owner@example.com \ CRANK_STAGING_ADMIN_PASSWORD=secret \ ./scripts/authenticated-staging-smoke.sh https://crank.example.com ``` ## `authenticated-product-smoke.sh` Authenticated product smoke helper. Создает временную REST operation на внутренний `admin-api` health endpoint, публикует агента, выпускает API-ключ и проверяет MCP `tools/list` / `tools/call`. Внешние публичные API не используются. Обязательные переменные: - `CRANK_STAGING_ADMIN_EMAIL` - `CRANK_STAGING_ADMIN_PASSWORD` ```bash CRANK_STAGING_ADMIN_EMAIL=owner@example.com \ CRANK_STAGING_ADMIN_PASSWORD=secret \ ./scripts/authenticated-product-smoke.sh https://crank.example.com ``` По умолчанию временные сущности удаляются после успешной проверки. Для отладки можно оставить их в workspace: ```bash CRANK_PRODUCT_SMOKE_KEEP_ASSETS=1 ./scripts/authenticated-product-smoke.sh https://crank.example.com ``` ## `check-rust-code-health.sh` Проверяет базовые правила сопровождаемости Rust-кода: - новые `.rs` файлы не больше 1000 строк; - существующие крупные файлы не должны расти сверх текущего baseline; - крупные inline test modules запрещены вне legacy allowlist. ```bash ./scripts/check-rust-code-health.sh ``` ## `check-rust-boundaries.sh` Проверяет направление зависимостей между Rust workspace crates: - приложения из `apps/*` могут зависеть от crates, но не от других приложений; - crates не должны зависеть от приложений; - `crank-core` не зависит от runtime, registry и adapters; - `crank-registry` не зависит от runtime и adapters; - `crank-runtime` не зависит от registry. ```bash ./scripts/check-rust-boundaries.sh ``` ## `check-community-scope.sh` Проверяет, что в community-репозиторий не попали функции и тексты за пределами REST -> MCP сценария. ```bash ./scripts/check-community-scope.sh ``` Unit-тесты checker-а лежат в `tests/unit`: ```bash python3 -m unittest discover -s tests/unit ```