AIRUS ProviderGovernanceOps · Upstream Portfolio Governance

Пятьдесят моделей не дают независимости, если за ними стоят один агрегатор, один баланс и один договор без обязательства предупреждать об изменениях. Рост каталога может скрывать рост зависимости: 400 моделей → один агрегатор → один баланс → один договор → одна точка отказа. AIRUS должен быть не клиентом своих провайдеров, а управляющим портфелем: покупать у каждого только его сильную сторону, ограничивать влияние и сохранять возможность безболезненно заменить любой внешний слой.

Количество логотипов ≠ независимость

400 моделей → один агрегатор → один баланс → один договор → одна точка отказа

Concentration Guard (по РЕАЛЬНОМУ spend, не по названиям):
  COGS доля провайдера        ≤ 35%
  critical workflow доля      ≤ 40%
  RF-only gateway доля        ≤ 50%
  gross profit доля           ≤ 30%
  маршрут без tested exit      0% критичного production

Две модели не независимы, если используют один upstream gateway, одну облачную инфраструктуру, общий баланс или один семейный checkpoint. Concentration Guard считает долю провайдера в реальном spend (агрегация usageEvent), а не в количестве доступных названий.

Честный провенанс + инвертированный fail-closed

Guard ≠ review-receipt: для концентрации безопасное направление ОБРАТНОЕ. Пустой портфель ≠ «нет риска».

Неизмеренное → CANNOT_CERTIFY
Отсутствие per-provider данных НЕ считается «0% → под лимитом → allow». Нет данных → cannot_certify (консервативно), а не тихое разрешение нового объёма.
COGS — live, остальное attested
Доля COGS считается из реального usageEvent-spend по providerCode (live_measured). GP/critical/RF доли, scorecard-баллы, exit-план — из переданных цифр (attested/computed), честно помечены.
Contract/exit — declared
Clauses и exit-drill — заявлены клиентом, AIRUS не верифицирует договор. Вердикт они не поднимают. exit_test:PASS из запроса не даёт GOVERNED.
Деньги — не float
Доли/ratios — числа; provider-adjusted cost — множитель риска, не абсолютные ₽ на float. Абсолютные суммы считает caller в decimal (баланс не двигается — это governance-аналитика).

Движки

Concentration Guard
Флагман. Доля крупнейшего провайдера в РЕАЛЬНОМ spend (агрегация usageEvent по providerCode = live) против лимитов: COGS≤35%, critical≤40%, RF-gateway≤50%, GP≤30%. Инвертированный fail-closed: нет данных → cannot_certify, НЕ '0% → allow'. Превышение → block_growth (запрет нового объёма).
Governance Receipt
Fail-closed: GOVERNED = AND(measured ∧ passed) по concentration/exit-gate/scorecard. Неизмеренная концентрация → CANNOT_CERTIFY. Провенанс: live_measured (реальный spend) / computed (attested-цифры) / declared (contract/exit — не поднимает вердикт) / roadmap. sha256 authoritative:false, verify-from-sealed, seal-once.
Provider Scorecard
Взвешенный композит: semantic quality 20% / reliability 15% / policy 15% / cost 15% / change 10% / support 10% / independence 10% / exit 5% → PREFERRED / HEALTHY / WATCH / RESTRICTED / EXIT. Нормируется на переданный вес; пустой вход → null, не выдумывает.
Provider-Adjusted Cost
Самый дешёвый nominal может стать самым дорогим после риска. Множитель: 1 + retry + verification + incident + prepaid liquidity + concentration reserve + migration reserve. Множитель (ratio), не абсолютные ₽ — деньги считает caller в decimal.
Exit Readiness
Критичный маршрут без заявленного exit-плана → block. Честно: реального exit-drill система не гоняет → статус НИКОГДА VERIFIED из body (declared). Реальный exit-drill/миграция — roadmap.
Independence (genuine reuse)
Два маршрута с общим failure domain (gateway/upstream/cloud/region/model family) не считаются независимыми резервами. Реально импортирует resilienceops.detectCommonMode — не переизобретает. Количество логотипов ≠ независимость.

Проверить решением

Публичный what-if: нет данных концентрации → insufficient_data (не allow).

curl -sX POST https://airus.world/v1/airus/provider-governance/concentration \
  -H 'content-type: application/json' \
  -d '{"dimensions":[{"name":"cogs","top_provider_share":null,"data_present":false}]}'
# → {"decision":"insufficient_data", ...}  (не allow — пустые данные не 0%)

Тенант-путь /v1/airus/provider-governance/evaluate считает концентрацию из РЕАЛЬНОГО spend + собирает exit/scorecard в запечатанный fail-closed рецепт. Смежное — ReliabilityChaosOps, ResilienceOps, Модели.