Files
HMDesign/docs/reports/generic-status-error-token-2026-10-11.md
T

5.8 KiB

Generic Status Error 독립 Semantic Token — 2026-10-11

RESULT: PARTIAL. 독립 Token과 Foundation Color 연결은 완료했다. Guard의 패키지 범위·동적 스타일 미검증은 원본대로 보존하며 별도 실행 증거와 구분한다.

기준과 범위

  • 경로: D:\디자인시스템\HMDesign-Gitea-Transfer, main, 공식 origin https://gitea.hmac.kr/b25027/HMDesign.git.
  • 시작 Local/Remote HEAD: 3ecc8c7402c9ce51011ebb584e06d13aebf80d64. 시작 Working Tree는 깨끗했다.
  • 범위: Theme 공개 입력 + 기존 Foundation Color Story / React. 신규 화면·Component·Pattern·Navigation 없음. 기존 foundation-color--all ID와 ReferencePage / ReferenceSection / SemanticColor / Swatch / Computed Property Hook을 유지했다.
  • 읽기 전용 참고 ui_viz 및 GitHub 이전 원본은 수정하지 않았다. 이전 Foundation Color 검증 기록은 당시 누락 상태를 기록한 이력으로 보존한다.

Token과 생성 경로

Name Canonical Default HEX Web CSS Variable Status Role
Generic Status Error color.status.error #B3261E --hm-sem-status-error Provisional 일반 상태 오류

공개 계약 + Default JSON + CSS 템플릿 → npm run generate:theme-defaults → 생성 CSS / 생성 기본값. 생성 파일을 수동 수정하지 않았다. 84개 공개 입력 / 82개 Default 컬러 / 기존 radius 2개.

이 Token의 사용 가능 상태만 승인됐다. Confirmed 승격과 실제 Component 적용은 별도 사용자 결정이다. Input Error·Action Destructive와 병합하거나 기존 소비처를 자동 연결하지 않는다. Runtime Token 계약.

보존과 선택 검증

  • Default JSON의 기존 81개 컬러 값, default.css의 기존 140개 CSS 선언이 시작 HEAD와 동일하다. 새 Token 외 UI 소스 123개는 불변이다.
  • Input Error / Alert destructive / Toast Error / Badge destructive의 #D32F2F, color.action.destructive 및 기존 Alias 체인, Dashboard issue #FF4D4F 유지.
  • Input Disabled Label 60%, Green/Brown/Orange 8단계 및 모든 기존 Background / Button Gradient 유지. Component·Pattern·Theme의 다른 값과 대표 Story ID 변경 없음.
  • 생성 stale 검사 + root/UI/CENTER typecheck 및 패키지 빌드 PASS. Theme-only artifact 빌드 PASS.
  • Storybook static build PASS: 기존 storybook-static 출력의 폰트 쓰기 권한 오류 이후 _local/generic-status-error-20261011/storybook 별도 경로로 빌드 성공. 기존 500kB chunk / bundler 성능 경고는 남아 있으며 코드 오류는 없다.
  • 공개 패키지 API에서 새 Token 기본값·유효 입력·invalid 거부·독립 override·reset 복구·기존 Destructive 값 보존 PASS. Runtime Contract MD의 모든 84개 key/property/default 연결 PASS.
  • 브라우저 Foundation Color: 실제 Swatch rgb(179, 38, 30), root 변수 #b3261e, 표시 HEX #B3261E, Canonical / CSS Variable / Provisional PASS. 기존 수집 Theme property 200개 계산값 변화 0.
  • 최종 static Storybook에서도 동일 Swatch·HEX·변수 확인 PASS, 브라우저 console error 0. Input / Alert destructive / Toast Error / Badge destructive의 계산 변수 모두 #d32f2f. 390px에서 Canonical과 CSS Variable은 각각 한 줄 식별 가능, 카드·문서 가로 overflow 0.
  • 390 / 768 / 1280 / 1440px에서 문서 가로 overflow 없음, 새 카드의 scrollWidth/clientWidth 및 scrollHeight/clientHeight 일치, 정상 줄바꿈과 Swatch 유지 확인. 기존 카드·CSS 레이아웃은 변경하지 않았다.
  • MD 검사: 108개 문서 / 내부 링크 495개, 누락 경로·heading 0. Git diff whitespace 검사 PASS.
  • 전체 Component/Storybook 회귀 검증은 반복하지 않았다. 신규 control·Label·keyboard/focus·Navigation 검증은 이번 변경에 해당하지 않는다. 실제 스크린리더·실기기 검증 NOT VERIFIED.

Guard와 실행 증거 구분

node scripts/ai-generation-guard.mjs --target . --scope PARTIAL --profile STORYBOOK --files src/foundation/color.stories.tsx,packages/ui/src/theme/contract.ts,packages/ui/src/theme/default.css,packages/ui/src/theme/default-values.generated.ts,scripts/theme-templates/default.css,themes/default.json --json을 1회 실행했다. FAIL 0 / 원본 status 및 staticStatus는 NOT VERIFIED.

SCOPE-001: package 계약·생성값·CSS/template은 증명된 Storybook 소비 그래프 밖이며 별도 build/runtime API 검사로 확인했다. TOKEN-002: 기존 동적 style/property/template과 StoryPage className은 정적 해석의 한계다. Generic Status Error Swatch 위치(color.stories.tsx:85)의 실제 var 연결 및 계산색은 위 브라우저 증거로 확인했다. 이 근거는 다른 동적 위치 전체를 검증했다는 뜻이 아니다.

Guard CSS styleEvidence: STATIC PASS / RUNTIME NOT VERIFIED / DESIGN_INTENT PASS / FINAL NOT VERIFIED. 원본 Guard를 덮어쓰거나 전체 PASS로 바꾸지 않았다. 이번 추가의 디자인 의도는 사용자 승인 범위인 독립 Provisional Token과 기존 카드 표시다. 로컬 원본 증거는 _local/generic-status-error-20261011/에 보관한다(배포/Clone 근거는 이 문서).

Git

관련 변경만 Stage하고 staged diff 검토 후 feat(theme): add provisional generic status error token으로 Commit, 공식 Gitea main에 일반 Push한다. Commit/Push 직전 원격 main을 시작 SHA와 비교하고 변경 시 중단한다. Local/Remote SHA·Working Tree와 최종 실행 결과는 최종 응답에 기록한다.