# KBX v24 Validation Report

## 범위

- Field interaction states
- Async Loading / Empty / Error recovery
- SearchPanel field coverage
- DataGrid runtime/personalization boundary
- Scoped Keyboard Manager
- Accessible Tabs
- Component Catalog reproducibility
- Existing Screen/API/Authorization/Telemetry/Integration/Deployment governance regression

## 추가 Gate

```text
validate-interaction-contracts.mjs
```

검증 대상:

- stateful input family가 `KbxFieldState`를 소비하는가
- SearchPanel이 checkbox/default/remember/saved-search contract를 가지는가
- Grid가 DataState/Changed/Validation/Preference/Summary를 가지는가
- Application/Page가 central keyboard manager를 우회하지 않는가
- Browser protected shortcut을 override하지 않는가
- Tabs가 Arrow/Home/End + ARIA panel contract를 가지는가
- DataState가 Public API/Manifest/Catalog에 존재하는가

## 최종 Static Gate 결과

2026-08-08 기준 `node scripts/validate-kbx.mjs` 전체 통과.

| 항목 | 결과 |
|---|---:|
| Design tokens | 109 |
| Screen definitions | 19 |
| Navigation entries | 15 |
| Component definitions | 77 |
| Core component APIs | 34 |
| Component catalog entries | 50 |
| TypeScript / Vue script units | 266 |
| API operations | 56 |
| Permissions | 50 |
| Test scenarios | 17 |
| Fixture sets | 13 |
| Golden screen coverage | 7 / 7 |
| Canonical fields used | 36 |
| Local/unknown fields | 48 |
| Field promotion candidates | 3 |
| Deprecated field uses | 0 |
| DB migrations checked | 14 |
| Design debt | 366 / baseline 366 |
| Release impact | minor / declared minor |

추가 확인:

- 8개 Desktop Template + T09 Mobile + Home/Navigation/Golden Screen completeness PASS
- 13개 stateful input family interaction contract PASS
- SearchPanel / DataGrid runtime state / scoped Keyboard Manager / accessible Tabs PASS
- API / Integration / Provider / External Data / Configuration / Migration / Deployment / Authorization / Telemetry / Experiment governance PASS
- Design-code parity: 109 tokens / 34 core components / 77 total components PASS
- Architecture validation: 70 module source files / 14 migrations PASS

## Design Debt Ratchet

v23 측정치 429에서 v24는 366으로 감소했다.

```text
429 -> 366
-63 literals (-14.7%)
```

이전 장기 baseline 567과 비교하면 201건 감소다. v24에서는 `governance/design-debt-baseline.json`을 366으로 갱신하여 이후 변경이 이 수치를 초과하면 Gate가 실패하도록 했다.

## 런타임 테스트 주의

배포 압축본에는 `node_modules`와 실행 중인 Web/API가 포함되어 있지 않으므로 Playwright/Vitest browser runtime 자체는 패키지 생성 과정에서 실행하지 않았다.

대신 다음을 제공한다.

- `scenario.common.design-system.interactions` E2E 계약
- Tabs Arrow/Home/End Playwright 시나리오
- Keyboard Manager Vitest contract
- TypeScript/Vue syntax transpile
- 전체 KBX static governance gate

실제 CI에서는 의존성 설치 후 Vitest/Playwright를 기존 Gitea Actions 파이프라인에서 실행하는 것을 전제로 한다.
