# 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 검증 기록](foundation-color-storybook-2026-10-11.md)은 당시 누락 상태를 기록한 이력으로 보존한다. ## Token과 생성 경로 | Name | Canonical | Default HEX | Web CSS Variable | Status | Role | |---|---|---|---|---|---| | Generic Status Error | `color.status.error` | `#B3261E` | `--hm-sem-status-error` | Provisional | 일반 상태 오류 | [공개 계약](../../packages/ui/src/theme/contract.ts) + [Default JSON](../../themes/default.json) + [CSS 템플릿](../../scripts/theme-templates/default.css) → `npm run generate:theme-defaults` → [생성 CSS](../../packages/ui/src/theme/default.css) / [생성 기본값](../../packages/ui/src/theme/default-values.generated.ts). 생성 파일을 수동 수정하지 않았다. 84개 공개 입력 / 82개 Default 컬러 / 기존 radius 2개. 이 Token의 사용 가능 상태만 승인됐다. Confirmed 승격과 실제 Component 적용은 별도 사용자 결정이다. Input Error·Action Destructive와 병합하거나 기존 소비처를 자동 연결하지 않는다. [Runtime Token 계약](../guidelines/runtime-theme-contract.md#generic-status-error--provisional--2026-10-11). ## 보존과 선택 검증 - 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와 최종 실행 결과는 최종 응답에 기록한다.