# S02: Workspace и инженерный каркас Создать runnable пустое приложение, тестовые runners и CI без выдачи scaffolding за готовую функцию. Входной gate: S01-009. Выходной gate: S02-012. ## Задачи - [S02-001](../tasks/S02-001.md): Создать workspace по accepted ADR — ci-cd; todo. - [S02-002](../tasks/S02-002.md): Настроить production build — ci-cd; todo. - [S02-003](../tasks/S02-003.md): Настроить единый code quality check — ci-cd; todo. - [S02-004](../tasks/S02-004.md): Настроить unit/contract runner — qa; todo. - [S02-005](../tasks/S02-005.md): Настроить browser smoke runner — qa; todo. - [S02-006](../tasks/S02-006.md): Подключить app CI — ci-cd; todo. - [S02-007](../tasks/S02-007.md): Создать route skeleton — front; todo. - [S02-008](../tasks/S02-008.md): Валидировать public runtime config — ci-cd; todo. - [S02-009](../tasks/S02-009.md): Создать typed error vocabulary — protocol; todo. - [S02-010](../tasks/S02-010.md): Реализовать operation context primitive — orchestrator; todo. - [S02-011](../tasks/S02-011.md): Создать worker request bridge — crypto; todo. - [S02-012](../tasks/S02-012.md): Gate: Workspace и инженерный каркас — qa; todo. ## Граница этапа Выходной gate проверяет evidence/готовые проверки, не реализует функции за остальные задачи. Если отдельная карточка требует слишком большой контекст — split с сохранением requirements coverage.