+ 수치 차이와 구조적 원인을 정확히 연결했다.
- 다소 길고 일부 개선 토큰은 근거가 약하다.
UI나 제품 화면을 넣으면 타이포그래피, 간격, 색, 컴포넌트, 인터랙션의 불일치와 디자인 부채를 점수와 함께 받습니다.
| 분류 | 디자인 › 화면·제품 설계 |
|---|---|
| 태그 | 분석검토체크리스트 |
You are a design systems engineer performing a forensic UI audit. Your objective is to detect inconsistencies, fragmentation, and hidden design debt. Be specific. Avoid generic feedback. --- ### 1. Typography System - Font scale consistency - Heading hierarchy clarity ### 2. Spacing & Layout - Margin/padding consistency - Layout rhythm vs randomness ### 3. Color System - Semantic consistency - Redundant or conflicting colors ### 4. Component Consistency - Buttons (variants, states) - Inputs (uniform patterns) - Cards, modals, navigation ### 5. Interaction Consistency - Hover / active states - Behavioral uniformity ### 6. Design Debt Signals - One-off styles - Inline overrides - Visual drift across pages --- ### Output Format: **Consistency Score (1–10)** **Critical Inconsistencies** **System Violations** **Design Debt Indicators** **Standardization Plan** **Priority Fix Roadmap**
디자인 시스템이 화면 전반에서 어긋난 지점을 찾을 때 쓰기 좋다. 1~10점 일관성 점수와 표준화 계획, 우선순위 수정 로드맵을 요구한다.
ChatGPT가 근거와 실행안의 균형이 가장 좋다. Gemini는 구체적이지만 과장과 오류가 있으며, [C]는 답변이 없다.
+ 수치 차이와 구조적 원인을 정확히 연결했다.
- 다소 길고 일부 개선 토큰은 근거가 약하다.
+ 클래스별 비교와 개선 코드가 매우 구체적이다.
- 접근성 판정·40px 높이·일정 추정이 부정확하다.
| 기준 | ChatGPT | Gemini | 앞선 모델 |
|---|---|---|---|
| 지시 준수 | 10 | 9 | ChatGPT +11% |
| 정확성 | 9 | 5 | ChatGPT +80% |
| 구체성 | 10 | 9 | ChatGPT +11% |
| 구성·가독성 | 9 | 8 | ChatGPT +13% |
| 분량 적정성 | 8 | 5 | ChatGPT +60% |
gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-25). 측정값이 아니라 AI 심사 결과입니다.
같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.
[붙여 넣은 자료]
다음은 저희 커머스 어드민 서비스의 컴포넌트 CSS 발췌본입니다.
.btn-primary { padding: 10px 16px; background: #3B82F6; border-radius: 6px; font-size: 14px; }
.btn-submit { padding: 12px 20px; background: #2563EB; border-radius: 4px; font-size: 15px; }
.card { padding: 16px; margin-bottom: 24px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.card-product { padding: 14px; margin-bottom: 20px; border-radius: 12px; box-shadow: 0 2px 4px rgba(0,0,0,0.08); }
.text-heading { font-family: Pretendard; font-size: 22px; font-weight: 700; }
.text-title { font-family: Noto Sans KR; font-size: 20px; font-weight: 600; }
.input-box { border: 1px solid #D1D5DB; padding: 8px 12px; border-radius: 4px; }
.input-search { border: 1px solid #E5E7EB; padding: 10px 14px; border-radius: 8px; }
.error-text { color: #FF3B30; }
.error-msg { color: #DC2626; }
버튼, 카드, 인풋이 페이지마다 조금씩 다른 값으로 재구현되어 있는데 정확히 뭐가 문제인지 정리해 주세요.Consistency Score (1–10)
4/10
기본 컴포넌트 구조는 존재하지만, 동일한 역할의 컴포넌트가 페이지별로 별도 구현되어 있어 토큰과 상태 정의가 분리된 상태입니다.
Critical Inconsistencies
.btn-primary와 .btn-submit으로 분리되어 있습니다.10px 16px vs 12px 20px#3B82F6 vs #2563EB6px vs 4px14px vs 15px.card와 .card-product가 카드 변형인지 별도 컴포넌트인지 정의되어 있지 않습니다.16px vs 14px24px vs 20px8px vs 12px8px 12px, 4px10px 14px, 8pxsize 또는 variant 규칙이 필요합니다.#FF3B30은 iOS 계열 색상에 가깝고#DC2626은 Tailwind 계열 색상입니다.System Violations
Pretendard와 Noto Sans KR로 혼용됩니다.22px / 700과 20px / 600이 이름만 다르고 계층 관계가 정의되어 있지 않습니다.heading, title이 실제 HTML heading 단계와 연결되어 있지 않습니다.#3B82F6과 #2563EB 모두 파란색 primary 계열이지만 용도가 정의되지 않았습니다.14px, 16px, 20px, 24px가 각각 어떤 의미인지 알 수 없습니다.4px, 6px, 8px, 12px로 분산되어 있습니다.Design Debt Indicators
.btn-submit, .input-search, .card-product처럼 페이지 또는 기능 중심의 one-off 클래스가 생성되어 있습니다..error-text, .error-msg로 나뉘어 있습니다.primary는 스타일 변형이고 submit은 사용 목적입니다.variant와 type을 분리해야 합니다.Standardization Plan
:root {
--font-family-base: "Pretendard", sans-serif;
--font-size-sm: 14px;
--font-size-md: 16px;
--font-size-lg: 20px;
--font-size-xl: 22px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--radius-sm: 4px;
--radius-md: 6px;
--radius-lg: 8px;
--color-primary: #2563EB;
--color-primary-hover: #1D4ED8;
--color-border: #D1D5DB;
--color-error: #DC2626;
}
variant와 size를 둡니다.variant: primary, secondary, dangersize: sm, md, lgtype: button, submit, resetsubmit을 별도 시각 컴포넌트로 만들지 않고, 필요하면 type="submit"으로 처리합니다.
padding: 16px, radius: 8pxvariant="product"로 정의.card-product를 제거하고 .card를 재사용input 기본 스타일size: sm, md, lgvariant: default, searcharia-invalid와 공통 .is-error로 통합.text-error,
.input.is-error,
.form-message.is-error {
color: var(--color-error);
}
Priority Fix Roadmap
.btn-submit, .error-msg 같은 기능·페이지별 중복 클래스 정리 핵심 문제는 값이 조금씩 다른 것 자체보다, 그 차이가 “의도된 변형”인지 “페이지별 재구현”인지 구분할 수 없다는 점입니다. Tokens → Base component → Variant → State 순서로 체계를 정리해야 추가적인 시각적 드리프트를 막을 수 있습니다.
| 7대7 축구 팀 앱 설계 프롬프트 | |
| 접근성 감사자 역할을 맡기는 프롬프트 | |
| 접근성 감사자 역할 프롬프트 | |
| 접근성 전문가 역할 프롬프트 | |
| 접근성 테스트 워크플로 프롬프트 |