+ 주어진 정보의 한계를 지키며 미정을 명시했다.
- 반복이 많고 미정 목록이 지나치게 장황하다.
잘못 만들어지는 건 레이아웃이 아니라 안 적힌 동작입니다.
| 분류 | 디자인 › 디자인 협업 |
|---|---|
| 태그 | 초안작성체크리스트형식변환 |
Write the handoff spec for this screen. ***Assume the person building it will not ask.*** **Premise: what gets built wrong is almost never the layout. It is the behaviour nobody wrote down.** **Cover, per element:** 1. **What it does** — ***on tap, on hover, on focus, when disabled*** 2. **Where the data comes from**, and ***what shows while it is loading and when it fails*** 3. **Limits** — ***max length, what happens past it: truncate, wrap, or scroll.* **Say which** 4. **Responsive behaviour** — ***what changes at narrower widths, and what must not*** 5. **Validation** — ***when it fires, what it says, where the message sits*** **And across the screen:** - ***Every state from the states list*** — empty, loading, partial, error, permission - **What is reused** from an existing component versus what is new - ***What is intentionally not handled*** — **say so explicitly. Silence reads as an oversight and gets invented** **Then:** - ***The three questions they will ask anyway***, answered - **What I have not decided**, ***marked as undecided rather than left blank*** — a blank gets filled by whoever is building - ***What I would rather they ask about than guess*** ⚠️ ***Work only from what I gave you. Do not invent what they meant, and do not assume a design or a constraint I did not state.***
인계에서 어긋나는 건 배치가 아니라 아무도 안 적은 동작이다 — 길이 초과 시 자를지 줄바꿈할지, 실패하면 뭐가 보일지, 비활성 상태는 눌리는지. 이 프롬프트는 요소마다 그걸 채우고, 안 정한 것을 빈칸이 아니라 "미정"으로 표시하게 한다. 빈칸은 만드는 사람이 채워버린다.
ChatGPT가 비추측 원칙을 가장 충실히 지켰다. Gemini는 상세하지만 대부분 창작이며, [C]는 제공되지 않았다.
+ 주어진 정보의 한계를 지키며 미정을 명시했다.
- 반복이 많고 미정 목록이 지나치게 장황하다.
+ 요구 항목별 구성이 선명하고 탐색이 쉽다.
- 필드·문구·API·수치와 정책을 대거 지어냈다.
| 기준 | ChatGPT | Gemini | 앞선 모델 |
|---|---|---|---|
| 지시 준수 | 9 | 3 | ChatGPT +200% |
| 정확성 | 9 | 2 | ChatGPT +350% |
| 구체성 | 8 | 5 | ChatGPT +60% |
| 구성·가독성 | 8 | 9 | Gemini +13% |
| 분량 적정성 | 5 | 3 | ChatGPT +67% |
gpt-5.6-sol가 모델 이름을 가린 채 1~10점으로 채점했습니다 (2026-09-25). 측정값이 아니라 AI 심사 결과입니다.
같은 입력을 세 모델에 넣어 받은 답을 그대로 옮겼습니다. 각 CLI(에이전트 하네스)에서 실행했습니다. ChatGPT·Claude 앱이나 웹에서는 답이 다를 수 있습니다.
화면: 결제 수단 등록 화면 (카드 등록 바텀시트) 만드는 사람: 이번 스프린트에 처음 합류한 외주 프론트엔드 개발자
대상 화면은 카드 등록 바텀시트다.
현재 제공된 정보에는 화면 이미지, 요소 목록, 카드사/결제 SDK, API, 상태 목록의 구체값이 없다. 따라서 아래 문서에서 확정할 수 없는 내용은 모두 미정으로 표시한다. 구현자가 임의로 보완하지 않는다.
현재 요소 목록이 제공되지 않았으므로, 아래는 구현 전 반드시 확정해야 하는 요소별 명세 표다. 표에 없는 요소는 새로 추가하지 않는다.
| 요소 | 탭 | 호버 | 포커스 | 비활성화 | 데이터/상태 | 길이 제한 | 반응형 | 검증 |
|---|---|---|---|---|---|---|---|---|
| 바텀시트 컨테이너 | 미정 | 해당 없음 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 |
| 닫기/취소 컨트롤 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 | 미정 | 해당 없음 |
| 카드 번호 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 유효기간 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| CVC 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 카드 소유자명 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 카드 등록 버튼 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 | 미정 | 미정 |
| 안내/오류 메시지 | 해당 없음 | 해당 없음 | 미정 | 해당 없음 | 미정 | 미정 | 미정 | 미정 |
현재 다음 항목은 결정되지 않았다.
구현자는 위 항목을 임의로 정하지 않는다.
카드 등록에 사용되는 데이터의 출처는 제공되지 않았다.
필수 로딩 상태는 존재해야 하지만, 표현 방식은 미정이다.
미정 항목:
실패 메시지와 복구 방식은 미정이다.
아래 상태는 모두 화면에 대해 정의되어야 한다. 현재 구체적인 UI와 문구는 제공되지 않았다.
의미와 진입 조건은 미정이다.
확정이 필요한 항목:
확정이 필요한 항목:
의미가 미정이다.
가능한 의미 중 어느 것인지 결정되지 않았다.
부분 입력 상태라면 다음을 정해야 한다.
오류 유형별 표시 방식이 미정이다.
각 오류에 대해 문구, 위치, 재시도 여부, 입력값 보존 여부가 필요하다.
권한 상태가 무엇을 뜻하는지 제공되지 않았다.
확정이 필요한 항목:
현재 결정되지 않았다.
현재 제공된 정보만으로는 확정할 수 없다.
다음 항목은 별도 결정이 필요하다.
각 텍스트와 입력값에 대해 다음이 미정이다.
구현자는 임의로 truncate, wrap, scroll 중 하나를 선택하지 않는다.
현재 검증 규칙은 전혀 제공되지 않았다.
확정해야 하는 항목:
검증 실행 시점
검증 대상
메시지 문구
메시지 위치
오류 필드의 시각적 상태
오류가 사라지는 시점
서버 오류와 클라이언트 오류의 구분
첫 오류 필드로 포커스를 이동할지 여부
오류가 여러 개일 때 표시 순서
현재 상태에서는 검증 문구나 필드별 길이를 확정할 수 없다.
기존 컴포넌트 목록이나 디자인 시스템 정보가 제공되지 않았다.
따라서 다음의 재사용 여부는 미정이다.
새 컴포넌트가 필요한지 여부도 미정이다.
다만 새로 구현하게 된다면, 다음을 기존 시스템과 먼저 대조해야 한다.
기존 컴포넌트가 있는데도 동일한 동작을 별도로 만들지 않는다.
현재 제공된 정보만으로 다음은 처리하지 않는다.
이 항목들은 화면에 없다는 뜻이 아니라, 현재 요구사항에 정의되어 있지 않아 구현 범위에 포함하지 않는다는 뜻이다.
아직 결정되지 않았다.
현재 확정된 것은 “카드를 등록하는 바텀시트”라는 목적뿐이다. 화면 이미지나 요소 목록 없이 입력 필드를 추정하지 않는다.
아직 결정되지 않았다.
API/SDK, 성공·실패 응답, 성공 후 화면 전환 또는 갱신 방식이 제공되지 않았다.
아직 결정되지 않았다.
필드별 오류, 서버 오류, 네트워크 오류, 권한 오류의 문구와 위치가 정의되지 않았다.
다음은 빈칸이 아니라 명시적인 미정 항목이다.
구현자가 우선 질문해야 하는 것은 다음이다.
이 다섯 가지가 정해지기 전에는 화면을 완성된 동작으로 구현할 수 없다.
| UI 디자인 브리프 프롬프트 | |
| 변경 요청의 실제 비용을 따지는 프롬프트 | |
| 경쟁 화면에서 결정을 읽어내는 프롬프트 | |
| 모호한 디자인 피드백을 해석하는 프롬프트 | |
| 디자인 핸드오프 노트 작성 프롬프트 |