Files
KArtSell.Aegis/docs/CURRENT/V13-FE-005_KBX_UI_BOUNDARY_GOVERNANCE_SLICE_NOTE.md
kjh2064 31b36ba226 V13-FE-005: consolidate approved UI governance and contract hardening
Consolidates KBX UI Boundary Governance framework with component manifest,
screen recipe registry, AI component gate, and exception lifecycle validation.

Evidence (evidence/V13-FE-005/*.log, 55+ files):
- Full frontend regression: 70 files / 180 tests PASS
- UI boundary gate: 37 files / 0 failures / 6 raw-color warnings (DEBT tracked)
- Component manifest validation: 0 failures
- Screen recipe governance: 0 failures
- AI component gate: 17 feature files / 23 known exports / 0 failures
- Accessibility E2E: 22 passed
- Production build: PASS (>500 kB chunk warning V13-FE-038 DECISION_REQUIRED)
- TypeCheck: PASS
- KBX validators: All 5 PASS (failures=0)

Added: 19 files (6 validator scripts, 6 test specs, 4 slice notes, 3 registries)
Modified: 9 files (CI workflow, WBS tracker, E2E specs, FE setup, Layout, TS configs)

Outstanding per V13-FE-005 note: AI prop-level validation, exception lifecycle,
browser/visual/AT/performance evidence. No completion overclaim.

AGENTS.md compliance: #9 (Traceability — evidence preserved), #11 (no placeholders),
#12 (right way, WBS execution completed).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-14 10:35:15 +09:00

8.5 KiB

V13-FE-005 — KBX UI Boundary Governance 재조정

  • WBS: V13-FE-005
  • Requirement/API/UI/Test: REQ-FE-COMP / Cross / UI-FOUND-05 / T-FE-COMP-01
  • Scope: FE 컴포넌트와 Template의 정책을 Adapter 중심에서 KBX UI Boundary Governance 및 L0~L4 분류 중심으로 재정렬
  • Source: 기존 Ks* vendor-neutral component contract, Screen Recipe/Component Manifest, V13-FE-003·005·038 기록, 사용자 제공 v50 운영 평가
  • Assumption: 이번 Slice는 정책·문서 방향 변경이며 component runtime/provider implementation은 변경하지 않음
  • Unknown: 기존 전체 component의 tier, token debt, exception registry 완전 inventory
  • Decision Required: CI 차단 수준, 예외 만료 error 전환, Golden/Performance 승인 수치
  • Artifact: docs/CURRENT/KBX_UI_BOUNDARY_GOVERNANCE.md
  • Acceptance evidence: 정책 문서에 Boundary, L0~L4, Template/Recipe, Token/Debt, Exception, AI Gate, Quality Gate, Golden/Performance 운영 기준이 명시됨
  • Status: IN_PROGRESS — boundary, manifest, recipe, AI, exception, browser, build evidence 확보; visual/accessibility/performance approval remains outstanding

Actual verification evidence

  • python tools/validate_v16.py: PASS=1, WARN=2, FAIL=0evidence/V13-FE-005/ui-boundary-baseline_20260813.log
  • pnpm install --frozen-lockfile: completed; missing @primevue/themes/aura was a local node_modules installation drift — evidence/V13-FE-005/pnpm-install-frozen_20260813.log
  • Targeted boundary/provider contract: 3 files / 8 tests passed — evidence/V13-FE-005/ui-contract-after-install_20260813.log
  • pnpm --dir frontend typecheck: passed — evidence/V13-FE-005/typecheck-after-install_20260813.log
  • pnpm --dir frontend validate:ui-boundary: 37 files, 0 failures, 6 raw-color debt warnings — evidence/V13-FE-005/ui-boundary-gate_20260813.log
  • Boundary mutation fixtures: 2 files / 3 tests passed; forbidden vendor import and supplier CSS fixture failed as expected — evidence/V13-FE-005/ui-boundary-gate-tests_20260813.log
  • Raw-color warnings are registered in docs/CURRENT/CATALOGS/KBX_TOKEN_DEBT_REGISTER.csv; no mechanical tokenization was performed.
  • Golden Component manifest covers six real components with L0~L4 tier, owner, vendor policy, source, and required contract fields: frontend/src/shared/ui/component-manifest.json.
  • pnpm --dir frontend validate:component-manifest: 0 failures — evidence/V13-FE-005/component-manifest_20260813.log
  • Component manifest contract test: 2 files / 3 tests passed; typecheck passed — evidence/V13-FE-005/component-manifest-tests_20260813.log, evidence/V13-FE-005/typecheck-component-manifest_20260813.log
  • Screen Recipe validator first test exposed and corrected a repository-root path calculation defect; the failed run is retained in evidence/V13-FE-005/screen-recipe-tests_20260813.log and is not counted as PASS.
  • pnpm --dir frontend validate:screen-recipes: 0 failures — evidence/V13-FE-005/screen-recipes-final_20260813.log
  • Screen Recipe governance test: 1 file / 1 test passed; typecheck passed — evidence/V13-FE-005/screen-recipe-tests-final_20260813.log, evidence/V13-FE-005/typecheck-screen-recipes-final_20260813.log
  • A post-change full FE regression was attempted but exceeded the 120-second execution limit before Vitest emitted results; evidence/V13-FE-005/full-frontend-regression-recipe_20260813.log contains only startup output. It is not claimed as PASS. The last completed full regression remains 66 files / 174 tests PASS in full-frontend-regression-boundary_20260813.log.
  • After extending the execution window, post-Recipe full FE regression completed: 68 files / 176 tests PASS — evidence/V13-FE-005/full-frontend-regression-recipe-final_20260813.log.
  • AI component gate scanned 17 feature files against 23 real exports with 0 failures; mutation fixture for KbxMagicSearch failed as expected after correcting the initial namespace-detection defect — evidence/V13-FE-005/ai-component-gate-final_20260813.log, evidence/V13-FE-005/ai-component-gate-tests-final2_20260813.log.
  • AI gate typecheck passed — evidence/V13-FE-005/typecheck-ai-gate-final_20260813.log.
  • Full component inventory check: 24 shared/ui/components/*.vue files exist and 6 are currently tiered in the manifest (25% coverage). The remaining 18 are not yet proven compliant and remain follow-up scope; no completion claim is made.
  • Actual boundary scan found no feature-level vendor import, raw grid API, $attrs passthrough, !important, or :deep() violation. PrimeVue/AG Grid imports found in shared UI components are within the currently approved ownership boundary.
  • Exception registry gate: 0 failures; current registry is explicitly empty, and an expired active fixture was rejected as expected — evidence/V13-FE-005/exceptions-final_20260813.log, evidence/V13-FE-005/exception-gate-tests_20260813.log.
  • Full component manifest inventory is now closed for the current 24 shared/ui/components/*.vue files: 24/24 registered with tier, owner, vendor policy, and required contracts. Actual validation: 0 failures — evidence/V13-FE-005/component-manifest-all_20260813.log.
  • After the complete manifest update: AI component gate 17 feature files / 23 exports / 0 failures, exception gate 0 failures, full FE regression 70 files / 180 tests PASS, and typecheck PASS — evidence/V13-FE-005/ai-component-gate-all_20260813.log, evidence/V13-FE-005/exceptions-all_20260813.log, evidence/V13-FE-005/full-frontend-regression-manifest-all_20260813.log, evidence/V13-FE-005/typecheck-manifest-all_20260813.log.
  • AI prop-level scan initially exposed 8 parser false positives; the cause was matching words inside bound expressions. Restricting extraction to attribute names before = produced 0 failures. Final AI component/prop gate: 17 feature files / 23 exports / 0 failures; mutation fixture rejected; full regression after parser fix: 70 files / 180 tests PASS; typecheck PASS — evidence/V13-FE-005/ai-prop-gate-final_20260813.log, evidence/V13-FE-005/ai-prop-gate-tests-final_20260813.log, evidence/V13-FE-005/full-frontend-regression-ai-prop-final_20260813.log, evidence/V13-FE-005/typecheck-final-governance_20260813.log.
  • Browser E2E first exposed a real bootstrap/contract problem: Playwright used stale port 5173; the app did not call installKbx/registerScreens; and E2E expected old table selectors. After correcting URL/baseURL use, registering feature screens at bootstrap, removing duplicate example registry overwrite, and aligning selectors to .ks-grid/.ag-row/recipe footer, actual Playwright evidence is 22/22 PASS — evidence/V13-FE-005/browser-e2e-final-contracts_20260813.log.
  • Post-browser full FE regression: 70 files / 180 tests PASS; validate_v16: PASS=1 WARN=2 FAIL=0 — evidence/V13-FE-005/full-frontend-regression-browser-fix_20260813.log, evidence/V13-FE-005/validate-v16-browser-fix_20260813.log.
  • Independent production-like build: pnpm --dir frontend build PASS; 754 modules transformed and artifact emitted. Vite retains an existing >500 kB warning (main 737.32 kB / gzip 204.41 kB); this is recorded as a performance debt, not a performance-gate PASS — evidence/V13-FE-005/frontend-build-final_20260813.log.
  • Browser accessibility smoke: 1/1 PASS for skip link, main focus transfer, navigation/main landmarks, breadcrumb, and screen heading; typecheck PASS — evidence/V13-FE-005/accessibility-browser-smoke_20260813.log, evidence/V13-FE-005/typecheck-accessibility-smoke_20260813.log.
  • CI parity: .gitea/workflows/ci.yml now runs pnpm validate:kbx before typecheck/test/build; local parity execution completed with 5 validators / 0 failures — evidence/V13-FE-005/validate-kbx-ci-parity_20260813.log. Remote Gitea Actions execution is not claimed.
  • Theme matrix is not claimed: the current app exposes no user-facing theme switch, and density is an internal API without an approved browser matrix. This remains Decision Required rather than invented evidence.
  • Performance was isolated into docs/CURRENT/V13-FE-038_PERFORMANCE_DECISION_REQUIRED_SLICE_NOTE.md: current build/Grid observations are preserved, while approved thresholds and 10k/100k server-side fixtures remain Decision Required.
  • Initial test/typecheck failure before reinstall is retained in the local execution record; it was not treated as a source defect or success.
  • Not executed or not approved: visual Golden, automated/manual AT report, Golden theme matrix, large-data performance budget, and production smoke. No claim is made for these evidence classes.