Communitygithub.com

felipebasurto/unslop-ui

AI 생성 인터페이스의 불필요한 문구와 장식을 제거하여 깔끔하고 사용자 중심의 UI로 정리합니다.

unslop-ui란 무엇인가요?

Unslop UI는 웹 페이지, 앱 화면, 차트, 대시보드 등에서 AI가 생성한 듯한 과도한 문구와 시각적 장식을 제거하는 스킬입니다. 이 스킬은 '사용되는 인터페이스는 읽히는 것이 아니라 사용되는 것'이라는 철학 아래, 사용자가 실제로 행동하는 데 필요한 단어만 남기고 나머지는 모두 삭제합니다. Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, `$ARGUMENTS`에 타겟을 지정하거나 대화에서 변경된 파일을 자동으로 분석합니다. 16개의 UI 규칙(U1~U16)과 `/pstack:unslop`의 글쓰기 원칙을 기반으로 인터페이스 카피(눈썹 레이블, 장식 번호 지정, 부제목, 봇 설명, 디자인 노트, 상태 문자열, 과잉 레이블링, 빈 슬로건 등)와 장식(뱃지, 상태 점, 장식용 이모지/아이콘 등), 차트 요소(차트 제목, 읽기 설명, 중복 인코딩, 차트 프레임, 범례 등)를 정리합니다. 또한 보안 장치로 aria-label이나 스크린리더 전용 텍스트는 절대 삭제하지 않으며, 데이터 소스의 텍스트는 컴포넌트에 하드코딩하지 않고 원본을 수정하도록 지시합니다. 변경 전후 카운트 및 규칙별 보고서를 자동 생성하여 체계적인 UI 개선을 지원합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/felipebasurto/unslop-ui/tree/main/skills/unslop-ui

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Unslop UI

웹 페이지, 앱 화면, 차트 또는 대시보드의 보이는 텍스트와 장식적인 크롬을 편집하여 AI가 생성한 것처럼 읽히지 않도록 합니다. 좋은 인터페이스는 읽히는 것이 아니라 사용되는 것입니다. 사용자가 행동하는 데 필요한 단어만 남기고 나머지는 자릅니다.

대상: $ARGUMENTS (비어 있으면 이 대화에서 변경된 파일을 사용하거나 묻습니다).

/pstack:unslop의 글쓰기 규칙

유지하는 모든 문자열에 이 규칙을 적용합니다. 규칙 번호로 인용합니다.

!python3 ${CLAUDE_SKILL_DIR}/scripts/load_unslop.py

위 줄이 여전히 명령 대신 규칙을 표시하는 경우(Claude Code 이외의 에이전트), 이 스킬의 폴더에서 python3 scripts/load_unslop.py를 실행하고 출력된 내용을 적용합니다.

UI 규칙

ID는 안정적입니다. 보고서에서 U1~U16으로 인용합니다.

인터페이스 카피

  • U1. 눈썹 레이블. 제목 위의 작은 대문자 또는 자간이 넓은 텍스트 ("PASSPORT", "FEATURES", "HOW IT WORKS"). 삭제합니다. 제목이 이미 섹션의 내용을 말하고 있습니다.
  • U2. 장식 번호 지정. "01 02 03", "01 // Features", "§", "//" 접두사. 순서가 실제이고 사용자가 그 순서를 따르는 경우(체크아웃 단계, 번호가 매겨진 설치 가이드)를 제외하고는 삭제합니다.
  • U3. 부제목 반사. 모든 제목 아래에 부제목이 있거나 H1 위에 한 줄이 있는 경우. 제목이 말하지 않는 사실을 명시하는 경우에만 하나를 유지합니다. "Analytics / Understand your data better"는 두 번째 줄을 잃습니다.
  • U4. 봇 설명. 요소가 시각적으로 수행하는 작업을 설명하는 캡션, 도움말 텍스트 및 설명 ("시작하려면 아래 버튼을 클릭하세요", "이 차트는 시간 경과에 따른 수익을 보여줍니다"). 삭제합니다. 제목과 캡션은 5단어 이하로 유지합니다. 예외: 빈 상태, 오류 메시지 및 파괴적 작업 확인(전체 문장을 사용할 수 있음).
  • U5. 디자인 노트 유출. 화면 작동 방식이나 디자인 이유에 대한 텍스트, 긴 괄호, "(실시간 업데이트)", "(AI 기반)". 삭제하거나 사용자가 실제로 찾을 법한 경우 툴팁으로 이동합니다.
  • U6. 상태 문자열. "·" 또는 "|"로 연결된 사실 ("12개 항목 · 2분 전 업데이트 · 동기화됨 · v2.1"). 사용자가 행동하는 한 가지 사실을 유지합니다. 다른 것은 필요한 곳에 두거나 삭제합니다.
  • U7. 모든 것에 레이블 지정. 플레이스홀더, 아이콘, 버튼 텍스트 또는 섹션 제목을 반복하는 레이블. 하나의 신호를 선택합니다. 돋보기 아이콘이 있는 검색 필드는 "Search" 레이블이나 "Search..." 플레이스홀더 중 하나만 있으면 됩니다.
  • U8. 단속적이고 빈 슬로건. "One. Big. Thing.", "Built different.", "Ship faster. Think less." 대상을 지칭하고 수행하는 작업을 명명하는 하나의 문장으로 다시 쓰거나 삭제합니다.

장식

  • U9. 실제 상태가 없는 배지와 알약. "LIVE", "NEW", "AI", "Beta", "Pro", "🔥 Popular" 등 분위기를 위해 추가된 것. 앱이 실제로 추적하는 데이터(실제 스트리밍이 라이브 중이거나, 마지막 방문 이후 실제로 새 항목인 경우)를 반영하는 경우에만 배지를 유지합니다.
  • U10. 상태 점. 텍스트 옆의 깜박이거나 색상이 있는 점 (animate-pulse, 작은 rounded-full 점). 실제 라이브 상태에 연결된 경우에만 유지합니다.
  • U11. 장식용 이모지 및 아이콘. 제목, 버튼, KPI 레이블 및 목록 항목에서. 삭제합니다. 아이콘은 컨트롤 자체인 경우(aria-label이 있는 아이콘 버튼) 또는 텍스트가 전달하지 않는 의미를 전달하는 경우에만 유지됩니다.

차트 및 대시보드

  • U12. 차트 유형을 명명하는 차트 제목. "Bar chart of monthly revenue"는 "Monthly revenue" 또는 발견 사항인 "Revenue doubled since March"가 됩니다.
  • U13. 읽기 지침. 차트 읽는 방법을 설명하는 부제목 또는 캡션 ("각 막대는 한 달을 나타냅니다", "자세한 내용은 마우스를 올리세요"). 삭제합니다.
  • U14. 두 번 말하기. 각 수량은 하나의 인코딩을 받습니다. 막대, 막대 위의 숫자, 높이의 그리드라인, 축 눈금이 모두 동일한 값을 말하는 것은 세 개가 너무 많습니다. 화살표 + 퍼센트 + "up"이라는 단어 + 그 아래 문장이 있는 KPI ("Revenue grew 12% compared to last month")는 텍스트에서 동일한 실수입니다. 독자에게 필요한 인코딩을 유지합니다. 모양을 위한 축과 그리드라인, 중요한 숫자(종종 마지막 지점 또는 최대값만)에 대한 인쇄된 값입니다.
  • U15. 데이터와 경쟁하는 차트 프레임. 플롯 영역 주변의 프레임 상자, 어둡거나 조밀한 그리드라인, 보조 눈금, 두꺼운 축 테두리, 3D, 마크의 그림자 및 광택, 플롯 뒤의 배경 채우기. 삭제하거나 유지해야 하는 것(몇 개의 그리드라인, 하나의 기준선)을 연한 회색의 가는 선으로 만듭니다. 데이터는 위에, 레이블은 옆에, 프레임은 가장 희미하게. 차트를 재설계하지 마십시오: 동일한 유형, 동일한 데이터, 동일한 시리즈 색상.
  • U16. 직접 레이블이 작동하는 곳의 범례. 이름을 색상에 일치시키도록 독자를 만드는 범례 상자는, 이름이 줄 끝이나 막대 옆에 있을 수 있을 때 사용됩니다. 시리즈에 직접 레이블을 지정하고(가급적 최신 값 포함, "This year 1,150"), 범례를 제거합니다. 4개 이상의 시리즈가 있거나 마크가 너무 가까워 레이블을 지정할 수 없는 경우 범례를 유지합니다.

변경 전/후 쌍의 경우, 얼마나 자를지 확실하지 않을 때 references/examples.md를 읽으십시오.

보호 장치

  • 보이는 텍스트와 장식 요소만 변경하십시오. 로직, 데이터, 색상, 간격 토큰 또는 레이아웃 구조를 건드리지 마십시오. U15에 따른 차트 프레임은 얇게 하거나 밝게 할 수 있는 유일한 예외입니다.
  • 요소를 삭제할 때, 이제 비어 있는 래퍼와 그것만을 위해 존재했던 마진이나 간격도 함께 삭제하십시오. 단일 자식을 보유하기 위해 존재했던 래퍼도 제거 대상입니다.
  • 아이콘 버튼의 aria-label, alt, title 또는 스크린리더 전용 텍스트는 절대 삭제하지 마십시오. 삭제된 보이는 텍스트가 유일한 접근 가능한 이름이었다면, aria-label로 이동하십시오.
  • 데이터, props, i18n 파일 또는 CMS에서 오는 텍스트: 컴포넌트에 하드코딩된 대체 텍스트를 사용하지 말고 원본(번역 파일, fixture)을 수정하거나 보고하십시오.
  • 플래그가 지정된 경우가 그 자리를 가질 만하다면(실제 상태, 실제 순서, 법적 텍스트), 유지하고 보고서에 그 이유를 명시하십시오.

절차

이 체크리스트를 복사하여 추적하십시오:

- [ ] 1. 카운트: python3 ${CLAUDE_SKILL_DIR}/scripts/count_tells.py <target>   (${CLAUDE_SKILL_DIR}는 이 파일의 폴더)
- [ ] 2. 모든 보이는 문자열과 장식 요소를 읽고, 각 문제를 U1-U16 또는 unslop 규칙 번호로 태그 지정
- [ ] 3. 편집
- [ ] 4. 동일한 명령으로 다시 카운트
- [ ] 5. 보고서

카운터는 정규식 휴리스틱입니다. 후보를 찾고 전후 숫자를 제공합니다. U3, U4, U5, U7, U8, U12, U13 및 U14는 읽기가 필요하므로 놓칩니다. U15 및 U16의 경우 코드 형식(그림자, 두꺼운 축 테두리 및 그리드라인, 켜진 범례)만 봅니다. 또한 일부 합법적인 경우를 플래그 지정합니다. 2단계에서의 읽기가 실제 확인입니다.

보고서 형식:

규칙전후
U1 눈썹60
unslop 13 em 대시40

그런 다음 의도적으로 유지한 항목을 한 줄에 하나씩 이유와 함께 나열합니다.

관련 스킬