+ Respects source limits and explicitly marks unknowns.
- Too repetitive and overly long in listing undecided items.
What gets built wrong is the behaviour nobody wrote down, not the layout.
| Category | Design › Design collaboration |
|---|---|
| Tags | DraftingChecklistReformatting |
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.***
Handoffs fail on unwritten behaviour — what happens past the character limit, what shows on failure, whether disabled is tappable. This fills those in and marks undecided items rather than leaving blanks.
ChatGPT best follows the no-invention constraint. Gemini is detailed but largely fabricated, while [C] was not provided.
+ Respects source limits and explicitly marks unknowns.
- Too repetitive and overly long in listing undecided items.
+ Clear, navigable coverage of the requested sections.
- Invents many fields, messages, APIs, values, and policies.
| Criterion | ChatGPT | Gemini | Leader |
|---|---|---|---|
| Instruction following | 9 | 3 | ChatGPT +200% |
| Accuracy | 9 | 2 | ChatGPT +350% |
| Specificity | 8 | 5 | ChatGPT +60% |
| Structure | 8 | 9 | Gemini +13% |
| Right length | 5 | 3 | ChatGPT +67% |
Scored 1–10 by gpt-5.6-sol with model names hidden (2026-09-25). This is an AI review, not a measurement.
We gave three models the same input and copied their answers unedited. Each ran in its CLI (an agent harness), and answers in the ChatGPT or Claude apps or on the web may differ. Outputs are in Korean.
The screen: 결제 수단 등록 화면 (카드 등록 바텀시트) Who builds it: 이번 스프린트에 처음 합류한 외주 프론트엔드 개발자
대상 화면은 카드 등록 바텀시트다.
현재 제공된 정보에는 화면 이미지, 요소 목록, 카드사/결제 SDK, API, 상태 목록의 구체값이 없다. 따라서 아래 문서에서 확정할 수 없는 내용은 모두 미정으로 표시한다. 구현자가 임의로 보완하지 않는다.
현재 요소 목록이 제공되지 않았으므로, 아래는 구현 전 반드시 확정해야 하는 요소별 명세 표다. 표에 없는 요소는 새로 추가하지 않는다.
| 요소 | 탭 | 호버 | 포커스 | 비활성화 | 데이터/상태 | 길이 제한 | 반응형 | 검증 |
|---|---|---|---|---|---|---|---|---|
| 바텀시트 컨테이너 | 미정 | 해당 없음 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 |
| 닫기/취소 컨트롤 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 | 미정 | 해당 없음 |
| 카드 번호 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 유효기간 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| CVC 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 카드 소유자명 입력 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 미정 | 검증 규칙 미정 |
| 카드 등록 버튼 | 미정 | 미정 | 미정 | 미정 | 미정 | 해당 없음 | 미정 | 미정 |
| 안내/오류 메시지 | 해당 없음 | 해당 없음 | 미정 | 해당 없음 | 미정 | 미정 | 미정 | 미정 |
현재 다음 항목은 결정되지 않았다.
구현자는 위 항목을 임의로 정하지 않는다.
카드 등록에 사용되는 데이터의 출처는 제공되지 않았다.
필수 로딩 상태는 존재해야 하지만, 표현 방식은 미정이다.
미정 항목:
실패 메시지와 복구 방식은 미정이다.
아래 상태는 모두 화면에 대해 정의되어야 한다. 현재 구체적인 UI와 문구는 제공되지 않았다.
의미와 진입 조건은 미정이다.
확정이 필요한 항목:
확정이 필요한 항목:
의미가 미정이다.
가능한 의미 중 어느 것인지 결정되지 않았다.
부분 입력 상태라면 다음을 정해야 한다.
오류 유형별 표시 방식이 미정이다.
각 오류에 대해 문구, 위치, 재시도 여부, 입력값 보존 여부가 필요하다.
권한 상태가 무엇을 뜻하는지 제공되지 않았다.
확정이 필요한 항목:
현재 결정되지 않았다.
현재 제공된 정보만으로는 확정할 수 없다.
다음 항목은 별도 결정이 필요하다.
각 텍스트와 입력값에 대해 다음이 미정이다.
구현자는 임의로 truncate, wrap, scroll 중 하나를 선택하지 않는다.
현재 검증 규칙은 전혀 제공되지 않았다.
확정해야 하는 항목:
검증 실행 시점
검증 대상
메시지 문구
메시지 위치
오류 필드의 시각적 상태
오류가 사라지는 시점
서버 오류와 클라이언트 오류의 구분
첫 오류 필드로 포커스를 이동할지 여부
오류가 여러 개일 때 표시 순서
현재 상태에서는 검증 문구나 필드별 길이를 확정할 수 없다.
기존 컴포넌트 목록이나 디자인 시스템 정보가 제공되지 않았다.
따라서 다음의 재사용 여부는 미정이다.
새 컴포넌트가 필요한지 여부도 미정이다.
다만 새로 구현하게 된다면, 다음을 기존 시스템과 먼저 대조해야 한다.
기존 컴포넌트가 있는데도 동일한 동작을 별도로 만들지 않는다.
현재 제공된 정보만으로 다음은 처리하지 않는다.
이 항목들은 화면에 없다는 뜻이 아니라, 현재 요구사항에 정의되어 있지 않아 구현 범위에 포함하지 않는다는 뜻이다.
아직 결정되지 않았다.
현재 확정된 것은 “카드를 등록하는 바텀시트”라는 목적뿐이다. 화면 이미지나 요소 목록 없이 입력 필드를 추정하지 않는다.
아직 결정되지 않았다.
API/SDK, 성공·실패 응답, 성공 후 화면 전환 또는 갱신 방식이 제공되지 않았다.
아직 결정되지 않았다.
필드별 오류, 서버 오류, 네트워크 오류, 권한 오류의 문구와 위치가 정의되지 않았다.
다음은 빈칸이 아니라 명시적인 미정 항목이다.
구현자가 우선 질문해야 하는 것은 다음이다.
이 다섯 가지가 정해지기 전에는 화면을 완성된 동작으로 구현할 수 없다.
| Design Brief | |
| Work out what a change request actually costs | |
| Read the decisions behind a competitor's screen | |
| Decode vague design feedback | |
| Design Handoff Notes - AI First, Human Readable |