- generic [ref=e3]:
  - link "본문으로 건너뛰기" [ref=e4] [cursor=pointer]:
    - /url: "#ks-main"
  - banner [ref=e5]:
    - button "K-ArtSell Aegis IMPLEMENTATION_TEMPLATE" [ref=e6] [cursor=pointer]:
      - strong [ref=e7]: K-ArtSell Aegis
      - generic [ref=e8]: IMPLEMENTATION_TEMPLATE
    - button "메뉴명 · 화면코드 · 업무명 검색 Ctrl K" [ref=e9]:
      - generic [ref=e10]: 메뉴명 · 화면코드 · 업무명 검색
      - generic [ref=e11]: Ctrl K
    - status [ref=e12]: 투자자문형 · 자동주문/KIS 제출 OFF · 자동 모델승격 OFF
  - navigation "열린 업무" [ref=e13]:
    - generic [ref=e14]:
      - button "컴포넌트 확인" [ref=e15] [cursor=pointer]
      - button "탭 고정" [ref=e17] [cursor=pointer]: 📍
      - button "탭 닫기" [ref=e18] [cursor=pointer]: ×
  - generic [ref=e19]:
    - complementary "주요 메뉴" [ref=e20]:
      - button "« 접기" [expanded] [ref=e21] [cursor=pointer]
      - generic [ref=e22]:
        - heading "Design System" [level=2] [ref=e23]
        - link "컴포넌트 확인" [ref=e24] [cursor=pointer]:
          - /url: /internal/ui-standard
      - generic [ref=e25]:
        - heading "Operations" [level=2] [ref=e26]
        - link "데이터 품질" [ref=e27] [cursor=pointer]:
          - /url: /ops/data-quality
        - link "시장 데이터 수집" [ref=e28] [cursor=pointer]:
          - /url: /ops/market-data-ingestion
        - link "수집 이력" [ref=e29] [cursor=pointer]:
          - /url: /ops/market-data-history
        - link "모델 운영" [ref=e30] [cursor=pointer]:
          - /url: /ops/model-operations
      - generic [ref=e31]:
        - heading "Portfolio" [level=2] [ref=e32]
        - link "포트폴리오 리스크" [ref=e33] [cursor=pointer]:
          - /url: /portfolio/risk
        - link "리밸런싱 제안" [ref=e34] [cursor=pointer]:
          - /url: /portfolio/rebalance
      - generic [ref=e35]:
        - heading "Research" [level=2] [ref=e36]
        - link "매도 의사결정" [ref=e37] [cursor=pointer]:
          - /url: /research/sell-decision
    - main [ref=e38]:
      - generic [ref=e39]:
        - generic [ref=e40]:
          - generic [ref=e41]:
            - heading "표준 UI 패턴" [level=1] [ref=e42]
            - paragraph [ref=e43]: Feature는 공급자 라이브러리를 직접 사용하지 않고, v4 어댑터·레이아웃·화면 계약을 사용한다.
            - generic [ref=e44]:
              - generic [ref=e45]: "상태: READY"
              - generic [ref=e46]: "As-of: 2026-08-02"
              - generic [ref=e47]: "Version: UI-CONTRACT-4.0"
          - button "새 화면 패킷" [ref=e49] [cursor=pointer]
        - generic [ref=e50]:
          - generic [ref=e51]:
            - strong [ref=e52]: "10"
            - generic [ref=e53]: 화면 타입
          - generic [ref=e54]:
            - strong [ref=e55]: "14"
            - generic [ref=e56]: 어댑터 포트
          - generic [ref=e57]:
            - generic [ref=e58]: primevue-aggrid
            - generic [ref=e60]: PrimeVue + AG Grid Community
          - generic [ref=e61]:
            - generic [ref=e62]: 자동주문 OFF
            - generic [ref=e64]: 고정 경계
        - generic [ref=e66]:
          - generic [ref=e67]:
            - generic [ref=e68]: 검색
            - textbox "검색" [ref=e69]:
              - /placeholder: 화면 ID, 타입 또는 컴포넌트
          - generic [ref=e70]:
            - generic [ref=e71]: 상태
            - combobox "전체" [ref=e73]
        - generic [ref=e79]:
          - generic [ref=e81]:
            - main [ref=e82]:
              - generic [ref=e85]:
                - generic [ref=e86]: No Rows To Show
                - grid [ref=e87]:
                  - rowgroup [ref=e88]:
                    - row [ref=e89]:
                      - columnheader [ref=e90]
                      - columnheader "화면 ID" [ref=e91]:
                        - generic [ref=e93] [cursor=pointer]
                      - columnheader "화면 타입" [ref=e95]:
                        - generic [ref=e97] [cursor=pointer]
                      - columnheader "표준 컴포넌트" [ref=e99]:
                        - generic [ref=e101] [cursor=pointer]
                      - columnheader "필수 증거" [ref=e103]:
                        - generic [ref=e105] [cursor=pointer]
                      - columnheader "상태" [ref=e107]:
                        - generic [ref=e109] [cursor=pointer]
                  - rowgroup [ref=e111]:
                    - row [ref=e112]:
                      - gridcell [ref=e113]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e114] [cursor=pointer]
                      - gridcell "T01" [ref=e115]
                      - gridcell "검색·목록형 CRUD" [ref=e116]
                      - gridcell "SearchListCrudPage" [ref=e117]
                      - gridcell "3" [ref=e118]
                      - gridcell "READY" [ref=e119]
                    - row [ref=e120]:
                      - gridcell [ref=e121]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e122] [cursor=pointer]
                      - gridcell "T02" [ref=e123]
                      - gridcell "상세 조회형" [ref=e124]
                      - gridcell "DetailReadPage" [ref=e125]
                      - gridcell "3" [ref=e126]
                      - gridcell "READY" [ref=e127]
                    - row [ref=e128]:
                      - gridcell [ref=e129]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e130] [cursor=pointer]
                      - gridcell "T03" [ref=e131]
                      - gridcell "등록·편집 Form" [ref=e132]
                      - gridcell "EditFormPage" [ref=e133]
                      - gridcell "3" [ref=e134]
                      - gridcell "READY" [ref=e135]
                    - row [ref=e136]:
                      - gridcell [ref=e137]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e138] [cursor=pointer]
                      - gridcell "T04" [ref=e139]
                      - gridcell "Master-Detail" [ref=e140]
                      - gridcell "MasterDetailCrudPage" [ref=e141]
                      - gridcell "3" [ref=e142]
                      - gridcell "READY" [ref=e143]
                    - row [ref=e144]:
                      - gridcell [ref=e145]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e146] [cursor=pointer]
                      - gridcell "T05" [ref=e147]
                      - gridcell "검토·승인 Workbench" [ref=e148]
                      - gridcell "ApprovalWorkbenchPage" [ref=e149]
                      - gridcell "3" [ref=e150]
                      - gridcell "READY" [ref=e151]
                    - row [ref=e152]:
                      - gridcell [ref=e153]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e154] [cursor=pointer]
                      - gridcell "T06" [ref=e155]
                      - gridcell "단계 Wizard" [ref=e156]
                      - gridcell "StepWizardPage" [ref=e157]
                      - gridcell "3" [ref=e158]
                      - gridcell "READY" [ref=e159]
                    - row [ref=e160]:
                      - gridcell [ref=e161]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e162] [cursor=pointer]
                      - gridcell "T07" [ref=e163]
                      - gridcell "Dashboard·Scorecard" [ref=e164]
                      - gridcell "ScorecardDashboardPage" [ref=e165]
                      - gridcell "3" [ref=e166]
                      - gridcell "READY" [ref=e167]
                    - row [ref=e168]:
                      - gridcell [ref=e169]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e170] [cursor=pointer]
                      - gridcell "T08" [ref=e171]
                      - gridcell "Batch·데이터 운영" [ref=e172]
                      - gridcell "BatchOperationsPageV2" [ref=e173]
                      - gridcell "3" [ref=e174]
                      - gridcell "READY" [ref=e175]
                    - row [ref=e176]:
                      - gridcell [ref=e177]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e178] [cursor=pointer]
                      - gridcell "T09" [ref=e179]
                      - gridcell "대사·예외 처리" [ref=e180]
                      - gridcell "ReconciliationExceptionPage" [ref=e181]
                      - gridcell "3" [ref=e182]
                      - gridcell "READY" [ref=e183]
                    - row [ref=e184]:
                      - gridcell [ref=e185]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e186] [cursor=pointer]
                      - gridcell "T10" [ref=e187]
                      - gridcell "버전 비교·거버넌스" [ref=e188]
                      - gridcell "VersionGovernancePage" [ref=e189]
                      - gridcell "3" [ref=e190]
                      - gridcell "READY" [ref=e191]
                    - row [ref=e192]:
                      - gridcell [ref=e193]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e194] [cursor=pointer]
                      - gridcell "T11" [ref=e195]
                      - gridcell "대량 입력(Fast Grid Entry)" [ref=e196]
                      - gridcell "FastEntryGridPage" [ref=e197]
                      - gridcell "3" [ref=e198]
                      - gridcell "READY" [ref=e199]
                    - row [ref=e200]:
                      - gridcell [ref=e201]:
                        - checkbox "Press Space to toggle row selection (unchecked)" [ref=e202] [cursor=pointer]
                      - gridcell "T12" [ref=e203]
                      - gridcell "작업 큐(Work Queue)" [ref=e204]
                      - gridcell "WorkQueuePage" [ref=e205]
                      - gridcell "2" [ref=e206]
                      - gridcell "READY" [ref=e207]
                  - rowgroup
                  - rowgroup
                  - rowgroup
              - region [ref=e215]:
                - generic [ref=e216]:
                  - heading "컴포넌트 동작 프리뷰" [level=2] [ref=e217]
                  - paragraph [ref=e218]: 공유 UI 포트를 실제 상태로 확인하는 내부 전용 카탈로그입니다.
                - generic [ref=e219]:
                  - generic [ref=e220]:
                    - heading "Actions" [level=3] [ref=e221]
                    - button "기본 버튼" [ref=e222] [cursor=pointer]
                    - button "주의 상태" [ref=e223] [cursor=pointer]
                  - generic [ref=e224]:
                    - heading "Status" [level=3] [ref=e225]
                    - generic [ref=e226]:
                      - generic [ref=e227]: READY
                      - generic [ref=e229]: REVIEW
                      - generic [ref=e231]: BLOCKED
                  - generic [ref=e233]:
                    - heading "Inputs" [level=3] [ref=e234]
                    - generic [ref=e235]:
                      - generic [ref=e236]: 텍스트 필드
                      - textbox "텍스트 필드" [ref=e237]: 샘플 값
                    - generic [ref=e238]:
                      - generic [ref=e239]: 선택 필드
                      - combobox "준비" [ref=e241]
              - region [ref=e245]:
                - generic [ref=e246]:
                  - heading "입력 유형 기능 테스트" [level=2] [ref=e247]
                  - paragraph [ref=e248]: 서버 요청 없이 shared UI의 입력·검증·읽기전용 조합을 확인합니다.
                - alert [ref=e291]:
                  - strong [ref=e292]: 저장할 수 없습니다. 1개 항목을 확인하세요.
                  - list [ref=e293]:
                    - listitem [ref=e294]: 0보다 큰 금액을 입력하세요.
                - generic [ref=e249]:
                  - generic [ref=e250]:
                    - heading "기본 입력" [level=2] [ref=e251]
                    - paragraph [ref=e252]: 필수 항목과 유효성 상태를 조작할 수 있습니다.
                    - button "읽기 전용" [ref=e254] [cursor=pointer]
                  - group "기능 테스트 입력" [ref=e256]:
                    - generic [ref=e257]:
                      - generic [ref=e258]: 이름
                      - textbox "이름" [active] [ref=e259]: 테스트
                    - generic [ref=e260]:
                      - generic [ref=e261]: 금액
                      - spinbutton "금액" [invalid] [ref=e263]
                      - alert [ref=e295]: 0보다 커야 합니다.
                    - generic [ref=e264]:
                      - generic [ref=e265]: 기준일
                      - generic [ref=e266]:
                        - combobox "기준일" [ref=e267]
                        - button "Choose Date" [ref=e268]
                    - generic [ref=e271] [cursor=pointer]:
                      - checkbox "검증 조건을 확인했습니다" [checked] [ref=e273]
                      - generic [ref=e274]: 검증 조건을 확인했습니다
                    - generic [ref=e276]:
                      - button "검증 실행" [ref=e277] [cursor=pointer]
                      - button "초기화" [ref=e278] [cursor=pointer]
            - complementary [ref=e279]:
              - generic [ref=e280]:
                - heading "교체 계약" [level=2] [ref=e281]
                - paragraph [ref=e282]:
                  - text: 기본 공급자 교체는
                  - code [ref=e283]: VITE_UI_ADAPTER
                  - text: 와 provider registry에서 수행한다. Feature 코드는 변경하지 않는다.
                - paragraph [ref=e284]: PrimeVue+AG Grid와 Native reference adapter가 동일 contract test를 통과해야 한다.
                - paragraph [ref=e285]: 생산 교체는 접근성, 키보드, 상태행렬, 시각회귀, 대량목록 성능을 별도 Gate로 검증한다.
          - text: "데이터 기준시각: 2026-08-02"
  - contentinfo [ref=e286]: RESEARCH_CANDIDATE_NOT_PRODUCTION
  - generic "애플리케이션 버전" [ref=e287]: v0.1.0 · UI contract 4.0