Версия источника: 4880e8b4372c96001c2e052be28b68a95d31252b
Синхронизировано: 2026-11-09T11:15:07.649Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/4880e8b4372c96001c2e052be28b68a95d31252b

<a id="architecture-contract-first"></a>

# Контракты компонентов

## Коротко

Опишите вход, выход, ошибки и права, когда несколько частей системы взаимодействуют.

## Плохо

```text
Frontend ждёт price.
Backend отдаёт amount.
```

## Хорошо

```text
Контракт: amountMinor + currency.
Обе стороны проверяют один контракт.
```

## Почему

Несогласованные интерфейсы ломают интеграцию даже при работающих отдельных модулях.

## Когда применять

Для внешних границ и совместной разработки. Внутренней функции не всегда нужен OpenAPI.

## Как проверить

- Есть ли пример успешного ответа и ошибки?

## Человек

Согласует вход, выход, ошибки и владельцев границ.

## Агент

Изучает существующий код, предлагает минимальное решение и связывает изменения с критериями приёмки.

Контроль результата:

- Есть ли пример успешного ответа и ошибки?

## Источники

- [OpenAPI Specification v3.2.0](https://spec.openapis.org/oas/v3.2.0.html)

Уровень: Рекомендуется. Проверено: 2026-11-09. Изменено: 2026-11-09.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/4880e8b4372c96001c2e052be28b68a95d31252b/registry/standards/framework/lifecycle/rules/contract-first.md)
