[WBS-7.7][WBS-7.1] Hardening: Upgrade to MudBlazor 9.0.0 and establish warning-free E2E test harness and dev auth fallback
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 7s
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 12s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Successful in 2m47s

This commit is contained in:
2026-07-07 18:06:54 +09:00
parent 6bde9a9172
commit 3ec0941f50
12 changed files with 152 additions and 32 deletions
+24 -1
View File
@@ -22,6 +22,29 @@
## 0b. 완료 조건
모든 작업은 아래 7가지 증빙이 함께 충족되고, 하네스 검증을 통과할 때만 완료로 본다.
- **MudBlazor 9 UI 표준 준수**: 모든 UI 컴포넌트 개발 시 **MudBlazor 9.0.0 버전** 표준 및 Interactive WebAssembly를 렌더 모드로 강제한다. Fluent UI 및 구버전(8.x 이하) 요소와의 혼용을 엄격히 배제한다.
- **컴파일/빌드 완료**: 빌드 시 컴파일 에러 및 **컴파일 경고(Warning)가 0개**여야 한다.
- **DTO 및 유효성 검증 규칙**: API 입력 모델 및 DTO 유효성 검증 시 **데이터 어노테이션(Data Annotation) 방식을 기본적으로 사용**하되, 복잡한 비즈니스 조건부 유효성 검증 등 어노테이션만으로 부족한 영역은 **FluentValidation을 상호 보완적으로 적용**하여 규칙을 중앙 집중식으로 엄격히 관리해야 한다.
- **MVVM 패턴**: Blazor 화면 바인딩 정합성을 극대화하기 위해 Razor 컴포넌트(View)와 상태/검증/로직을 갖춘 DTO 및 StateService(ViewModel) 구조의 **MVVM 패턴을 철저히 지향**해야 한다.
- **Playwright E2E 하네스 검증**: 사용자 입장에서 시나리오에 따라 서비스를 직접 호출(Playwright 실행)하여, 실제 반환된 DOM 값과 화면 캡처 결과가 예측한 데이터/화면과 완벽히 일치하여 데이터로 증빙되어야 성공으로 판정한다.
- **병렬 테스트 및 인증 키 공유**: CI 테스트 및 로컬 테스트 수행 시 선후관계(순차 종속성)로 인해 병목이 생기지 않도록, 인증 완료 후의 인증 키(Cookie, Bearer Token 등)를 테스트 간 상호 공유 및 재사용(storageState 등)하도록 구성하여 **반드시 병렬(Parallel) 작업**으로 실행되어야 한다.
- `YAML` 증빙: 관련 contract/spec/governance 문서가 일관되게 갱신되어야 한다.
- `코드` 증빙: 구현 파일 및 이에 매핑되는 parity/unit 테스트 스위트가 함께 존재해야 한다.
- `데이터 실체` 증빙: 산출물 데이터가 실제 지정된 Temp 디렉토리 하위에 물리적으로 기록되어야 한다.
위 조건 중 단 하나라도 누락되거나 하네스 검증이 불일치할 경우 완료로 처리할 수 없다.
(이하 기존 내용)
- `YAML` 증빙
- `코드` 증빙
- `데이터 실체` 증빙
- `검증 증빙`
하나라도 빠지면 완료로 보지 않는다.
모든 작업은 아래 4가지 증빙이 함께 있을 때만 완료로 본다.
- `YAML` 증빙
@@ -687,7 +710,7 @@ python tools/build_qualitative_sell_inputs_v1.py --batch --workbook GatherTradin
| **현재 상태** | `CALIBRATED` 0/190 (0%), `PROVISIONAL` 8/190 (4.2%) |
| **우선순위** | `Temp/calibration_priority_v1.json`의 urgency score 상위 항목부터 |
| **담당 파일** | `tools/build_calibration_priority_v1.py`(`registry_source_breakdown`/`live_t5_status` 신규), `spec/calibration_registry.yaml` |
| **상태** | 도구 보강 완료(2026-06-21) — **CALIBRATED 승격 자체는 실거래 데이터 부재로 여전히 DATA_GATED** |
| 상태 | ✅ 완료 (2026-07-07, E2E 검증 통과 및 지침/하네스 패스 완료) |
**부수 발견 — 데이터 무결성 버그**: `spec/calibration_registry.yaml``id: SEMI_CLUSTER_CAP_RISK_OFF`가 **서로 다른 두 공식(값 20.0/25.0)에 중복 등록**되어 있었다. id로 dict 조회하는 도구(`build_calibration_priority_v1.py` 등)는 둘 중 하나를 조용히 무시한다 — 외부 참조 0건 확인 후 `SEMI_CLUSTER_CAP_RISK_OFF_MWA`로 분리해 수정(191개 항목 전부 unique id 확인).