## KBX UX/AX Review - [ ] 기존 9개 Screen Type 중 하나를 사용했다. - [ ] 신규 Component보다 기존 KBX Component 재사용을 먼저 검토했다. - [ ] 업무 모듈에서 PrimeVue/AG Grid를 직접 import하지 않는다. - [ ] 주요 명령 위치가 KBX Command Bar 규칙과 같다. - [ ] Keyboard 흐름(F2/F3/F8/Tab/Enter/Esc)을 검토했다. - [ ] 입력 가능한 대량 데이터 화면의 Excel 정책을 정의했다. - [ ] 정상 건을 사용자가 불필요하게 확인하는 단계가 없는지 검토했다. - [ ] 오류 메시지가 원인과 다음 행동을 설명한다. - [ ] Client validation을 업무 정합성의 최종 방어선으로 사용하지 않는다. - [ ] 상태 변경, Audit, Concurrency, Idempotency 영향도를 검토했다. - [ ] AI가 없어도 동일 업무를 수행할 수 있다. - [ ] AI Action은 Proposal → Validation → Command 경계를 지킨다. - [ ] 현장 화면은 실제 장비/네트워크 조건의 수용시험 항목을 정의했다. ## Architecture - [ ] `node scripts/validate-kbx.mjs` 통과 - [ ] Screen ID / Version 갱신 여부 검토 - [ ] 기술부채 또는 KBX 예외가 있다면 이유와 재검토 시점을 기록했다. ## Production readiness - [ ] Long operations do not block the page with a modal spinner - [ ] Mutation retries are idempotent or explicitly disabled - [ ] 409/version conflicts cannot silently overwrite newer data - [ ] Stale operational data exposes freshness/reload where material - [ ] Unexpected errors expose a correlation reference, not stack traces - [ ] Degraded/read-only behavior is defined for affected workflows ## Component verification - [ ] 공통 Component 변경이면 `COMMON-DS-001`에서 Default/Readonly/Disabled/Error/Loading 상태를 확인했다. - [ ] Keyboard/Focus 계약 변경이면 E2E scenario를 갱신했다. - [ ] 의도된 시각 변경이면 Compact/Comfortable/Touch baseline 변경 사유를 기록했다. - [ ] 공통 Component의 동작/표현 변경이면 Component Version을 검토했다. - [ ] 색상만으로 상태를 전달하거나 Focus Indicator를 제거하지 않았다. ## Design ↔ Code parity / release - [ ] Design Token 변경은 `packages/kbx-ui/src/tokens/source/kbx.tokens.json`에서 시작했다. - [ ] Semantic/Component Token 값 변경이면 Visual Regression 영향도를 검토했다. - [ ] Core Component 상태가 `COMMON-DS-001`과 Figma contract에 모두 존재한다. - [ ] 새 raw color/px literal을 추가하지 않았다. 필요한 경우 먼저 Token 승격을 검토했다. - [ ] Component/Screen/Token 공개 계약 변경이면 `generated/release-impact.json`의 요구 bump를 확인했다. - [ ] Breaking 변경이면 Migration Guide를 작성했다. ## API contract / Problem governance - [ ] 업무 모듈에서 raw `/api/...`, `axios`, `fetch`를 직접 사용하지 않는다. - [ ] 신규/변경 Endpoint는 `contracts/api/kbx.api.json`과 동일한 Method/Route/Permission을 가진다. - [ ] Mutation Retry 가능 여부와 Idempotency 정책을 정의했다. - [ ] Validation/Business/Conflict/Permission/NotFound/Integration/System 오류를 KBX Problem으로 표현한다. - [ ] API 공개 계약 변경이면 `generated/release-impact.json`의 SemVer 요구수준을 확인했다. - [ ] Host에서 실제 Swashbuckle OpenAPI snapshot diff를 수행했다. ## Authorization / Sensitive Data - [ ] 신규 Permission은 `contracts/authorization/kbx.authorization.json`에 등록했습니다. - [ ] Frontend 숨김/Disabled만으로 보안을 처리하지 않고 Backend 최종 검증이 있습니다. - [ ] Sensitive Field는 기본 Masking이며 전체보기/비마스킹 Export 권한을 구분했습니다. - [ ] Sensitive 원문을 Telemetry/AI Context에 넣지 않았습니다. - [ ] 전체보기 또는 민감 데이터 공개가 필요한 경우 Audit 경로를 정의했습니다. ## KBX v18 Scenario / Test Data - [ ] 변경된 Golden Screen/업무 경계의 canonical scenario를 갱신했다. - [ ] Fixture는 synthetic-only이며 Production dump를 포함하지 않는다. - [ ] `idempotency=required` Command의 replay scenario가 있다. - [ ] Host에서 실행한 경우 Scenario Evidence/Correlation ID를 남겼다. ## External integration / resilience - [ ] Business State와 Integration State를 분리했다. - [ ] 새 외부연계는 `contracts/integrations/kbx.integrations.json`에 등록했다. - [ ] at-least-once 전달은 idempotency 경계를 가진다. - [ ] 짧은 transient retry는 bounded Polly pipeline이고 장기 retry는 Hangfire가 소유한다. - [ ] permanent failure는 사용자 업무 재실행이 아니라 Operations Exception으로 노출된다. - [ ] 실패주입 Scenario가 있다. ## External data / provenance - [ ] 외부 Provider 응답을 화면이 직접 해석하지 않고 canonical normalizer를 거칩니다. - [ ] providerObservedAt / receivedAt / ingestedAt 의미를 혼합하지 않았습니다. - [ ] Stale/Expired 데이터가 최신값처럼 보이지 않습니다. - [ ] request_descriptor에는 Secret/Token이 없고 raw payload 저장은 명시적 검토 없이는 금지합니다. - [ ] KRX 승인 서비스의 TTL/Schema를 공식 서비스 명세 없이 추정하지 않았습니다. ## Configuration / deployment governance - [ ] 신규 설정은 `contracts/configuration/kbx.configuration.json`에 등록했고 직접 `Environment.GetEnvironmentVariable()`을 사용하지 않았다. - [ ] Secret에는 기본값/예제값을 넣지 않았고 generated env example도 빈 값이다. - [ ] Production은 `predeploy` migration + HTTPS 원칙을 유지한다. - [ ] 환경별 다른 바이너리를 다시 빌드하지 않고 동일 Release Artifact를 승격한다. - [ ] destructive migration이 필요하다면 명시적 승인 marker와 Migration Guide가 있다. - [ ] 배포 전 Configuration Validation / Migration Dry Run / Release Governance evidence를 확인했다.