# V13-FE-003 — UI Adapter Port 재검증

| 항목 | 값 |
| --- | --- |
| Requirement / API / DB / Job / UI / Test | REQ-FE-ADAPTER / Cross / Cross / Cross / UI-FOUND-03 / T-FE-ADAPTER-01 |
| Dependency / Gate | V13-FE-001 (COMPLETED) / G0 |
| Artifact | `frontend/src/shared/ui/adapter/contracts.ts` |
| Acceptance | provider ID/version과 feature-vendor-neutral port 계약 고정 |

## Source / Assumption / Unknown / Decision Required

- **Source:** `adapter/contracts.ts`는 v4.0에 button, field, dialog, feedback, navigation, grid를 포함한 14 capability를 명시한다. `uiAdapter.contract.spec.ts`는 native와 PrimeVue/AG Grid adapter를 같은 contract로 검증한다.
- **Assumption:** WBS의 "8개 Port"는 최소 기준이며, 현재 승인된 v4.0의 14 capability를 축소하지 않는다.
- **Unknown:** KBX의 고수준 layout/form component를 새 port로 승격할 필요성은 아직 검증되지 않았다.
- **Decision Required:** FormGrid/ValidationSummary 이식 후 세 번 이상 provider-neutral 재사용이 확인될 때에만 별도 port 추가 ADR을 검토한다.

## KBX 차용 경계

- 허용: Vue/CSS만으로 독립된 form layout, validation presentation, state refresh 안내를 K-ArtSell token/port로 재구현.
- 금지: `@kbx/contracts`, KBX 권한 host, router/store, PrimeVue peer dependency를 feature 또는 shared layout에 이식.
- 기존 `QueryStateBoundary`는 13개 상태와 correlation/retry를 보유하므로 KBX state boundary를 복제하지 않고 필요한 refresh 표현만 별도 Slice에서 흡수한다.

## 실제 증거

`pnpm vitest run src/shared/ui/adapter/tests/uiAdapter.contract.spec.ts src/shared/ui/tests/adapterCompatibility.spec.ts`

- 2 files / 4 tests passed
- exit 0, 2026-08-09

이 결과는 adapter contract 검증에 한정된다. build, visual, AT, DB 또는 migration 통과를 주장하지 않는다.
