한 줄 결과물: 문구마다 "현재 문구 / 문제 / 제안 / 근거"를 한 행으로 적은 검수표와 정해진 어조, 사람이 결정할 항목.
스킬 본문: ../../ux-writing-ko/SKILL.md · 템플릿: copy-review.md, voice-tone-guide.md · 참고: checklists.md
언제 쓰나
- 버튼, 레이블, 오류 메시지, 빈 상태, 확인 대화상자, 온보딩, 알림, 툴팁 문구를 쓰거나 검수할 때
- 제품 전체의 어조(해요체/합쇼체)를 정하거나 흩어진 문구를 통일할 때
- 번역투, AI 문체, 과한 부정·피동을 걸러낼 때
- 쓰지 않을 때: 줄바꿈·글꼴·표기 배치(
korean-typography), 법무·정책 문구의 의미 판단, 사실 확인
샘플

| 입력 | 값 |
|---|---|
| 문구 | "오류가 발생하였습니다." / "확인 · 취소" / "데이터가 없습니다." / "삭제 처리되었습니다" |
| 어조 | 해요체(사용자 결정 또는 제품 규칙) |
| 제안 | "저장하지 못했어요. 연결을 확인하고 다시 시도해 주세요." / "삭제하기 · 그대로 두기" / "아직 프로젝트가 없어요. 첫 프로젝트를 만들어 보세요." / "삭제했어요" |
| 근거 분류 | 공식 규범, 공개 사례, 팀 실무 기준, 점검 도구 지적(후보)로 행마다 하나 |
표 안의 제안 문구는 SKILL.md의 원칙(무슨 일, 왜, 어떻게 해결하나)을 따른 예시다. 원인을 모르면 모른다고 쓰고 다음 행동을 준다.
따라하기
- 문구를 한 표에 모은다. 위치(화면, 상태), 현재 문구, 종류(버튼, 레이블, 오류, 빈 상태 등). 종류가 빈 행이 없어야 한다.
ux-writing-ko 스킬로 이 화면 문구를 검수해 줘: <파일 또는 문구 표>. 어조는 해요체로 정해져 있어. 의미가 바뀌는 제안은 "의미 변경 가능"으로 표시해 줘. - 기계 점검을 먼저 돌린다. 결과는 후보 목록이다. 모든 지적을 문맥에서 확인해 채택 또는 기각(이유)을 붙인다.
printf '오류가 발생하였습니다.\n삭제 처리되었습니다\n' > 문구.txt python3 ux-writing-ko/scripts/copy_lint.py 문구.txt --kind ui --register 해요체 # - 1번째 줄 · 기준 어조와 다름[중간] · '합쇼체 (기준 해요체)' # - 2번째 줄 · 피동 표현[낮음] · '되었' - 목적별 원칙으로 읽는다. 오류는 무슨 일, 왜, 어떻게 해결하나 세 가지가 있는지, 확인 대화상자는 버튼이 "확인/취소"만이 아니라 행동 동사인지 본다.
- 어조를 정한다. 기본 어조는 사람이 결정한다. 정해지면 한 제품 안에서 섞지 않는다. 고객에게 내보내는 사내 문서는 합쇼체(~니다)만 쓴다.
- 제안을 쓴다. 행마다 1~2안, 근거 분류를 붙인다. 의미, 수치, 확신도가 원문과 같은지 행마다 확인한다.
- 제안에 린터를 다시 돌린다.
python3 ux-writing-ko/scripts/copy_lint.py --selftest # 자체 시험 15/15 통과
흔한 실패
- 린터 지적을 곧바로 고친다. 규칙 기반이라 오탐과 누락이 있다.
- 해요체를 UI 표준으로 단정한다. 공개 사례는 한 회사의 지침이다.
- 정책, 약관, 법무 문구의 의미를 바꾼다. 쉬운 말 대안은 "초안, 법무 확인 필요"로 표시한다.
- 고객 이름과 자료를 검수표에 넣는다.
다음 스킬
- 줄 수가 늘었는지 실측은
korean-typography - 인포그랩 어조와 표기 결정은
infograb-design-decisions, 화면 전체 검수는ui-review