Communitygithub.com

OpenCode 디자이너 스킬

프론트엔드 디자인, 디자인 시스템, 반응형 레이아웃, 레퍼런스 복제, 모션/축소 모션 검토, 접근성 검토, 시각적 다듬기, 에셋 계획 및 브라우저 검증 UI 품질을 위한 독립형 UI/UX 및 모션 방향, 시각적 일관성 워크플로우입니다.

OpenCode 디자이너 스킬란 무엇인가요?

이 스킬은 AI 에이전트(Claude Code, Cursor, Codex 등)가 디자이너 역할을 수행할 수 있도록 설계된 독립형 UI/UX 매뉴얼입니다. UI/UX 방향 설정, 디자인 시스템 구축, 반응형 레이아웃, 모션 전략, 접근성 검토, 시각적 일관성 및 에셋 계획 등 설계 작업의 모든 측면을 다룹니다. 주요 기능으로는 템플릿 소스 발견 게이트(Template Source Discovery Gate), 안티-제네릭 랜딩 페이지 게이트(Anti-Generic Landing Page Gate), 큐레이팅된 에셋 라이브러리 앵커(Curated Asset Library Anchor) 및 설계 깊이 강제(Design Depth Enforcement) 메커니즘이 포함됩니다. 이 스킬은 증거 기반 워크플로우(스크린샷, 시각적 품질 계약)를 중시하며, 모호한 상황에서는 가정을 명시하고 후속 작업(question_batch)을 그룹화합니다. 지원 플랫폼으로는 웹, 모바일 등이 있으며, 작업 완료 후 @fixer와 같은 다른 레인으로 핸드오프하여 구현과 디자인 검토를 분리합니다.

지원 대상~Claude Code~Codex CLI~Cursor✓OpenCode
npx skills add https://github.com/YZenKid/opencode-capybara/tree/HEAD/skills/opencode-designer

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

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

문서

OpenCode 디자이너 스킬은(는) 무엇을 하나요?

디자이너의 독립형 UI/UX 매뉴얼로 사용하세요. 가정은 가정으로 표시하고, 불확실한 시각적 결정은 명시적으로 남겨두세요.

레인 위치

이 레인은 UI/UX 방향, 청사진, 레퍼런스 일치, 모션 전략 및 설계 품질 검토를 담당합니다. 주요 프로덕션 화면-코드 레인이 아닙니다.

설계 핸드오프 후:

  • 공유 토큰/프리미티브/컴포넌트 API -> @designer with design-system skill
  • 웹 화면/페이지 구현 -> @fixer with frontend skill
  • 모바일 화면/네이티브 구현 -> @fixer with mobile skill
  • 단순한 범위 제한 UI 수정 -> @fixer

Open Design에서 채택: 강력한 DESIGN.md 권한, 아티팩트/소스 팩 규율, 스크린샷 기반 증거, 재사용 가능한 디자인 문법. 채택되지 않음: 업스트림별 플러그인/내보내기/런타임 가정(여기에 명시적으로 설치되지 않은 경우).

트리거 / 건너뛰기

  • 트리거: UI/UX 방향, 디자인 시스템, 반응형 레이아웃, 모션 방향, 접근성 검토, 시각적 일관성 작업, 설계 청사진, 및 중요한 사용자 대면 시각적 결정.
  • 트리거: 구현 품질이 일반적인 기존 패턴보다 명시적인 시각, 상호작용, 에셋 또는 모션 지침에 의존할 때.
  • 트리거: 중요한 UI/레퍼런스 작업의 경우 .opencode/evidence/<task-id>/visual-quality-contract.md 및 .opencode/evidence/<task-id>/reference-essence.md를 생성/업데이트합니다.
  • 건너뛰기: 명확한 기존 설계 지침이 있는 작고 되돌릴 수 있는 UI 조정, 또는 설계/핸드오프가 이미 확정된 순수 구현 작업.
  • 건너뛰기: 최종 적합성/리스크 서명. 이 레인은 설계 품질을 정의하거나 검토합니다. @quality-gate가 최종 게이트를 소유합니다.

표준 도구 정책 및 경계는 다음을 참조하세요:

  • .opencode/docs/TOOL_USAGE.md
  • .opencode/docs/AGENT_TOOL_ACCESS.md

레퍼런스 우선 창의성 계약은 .opencode/docs/SHARED_POLICIES.md를 참조하세요.

인터넷-레퍼런스 기본값

  • 레포지토리 로컬 증거가 충분하지 않은 경우, 중요한 시각, 디자인 시스템, 모션 및 버전에 민감한 구현 지침에 대해 인터넷 기반 조회(context7_*, websearch_*, 업스트림 소스, GitHub 예제, 브라우저/레퍼런스 캡처)를 기본값으로 처리합니다.
  • 프로젝트 DESIGN.md / 로컬 디자인 문서가 이미 문제를 해결했다면 인용하고 외부 조회를 건너뜁니다. 그렇지 않으면 단일 실시간 레퍼런스가 일치도나 품질을 실질적으로 향상시킬 수 있을 때 메모리에 의존하지 마세요.

완료 우선 + 질문 일괄 처리

  • 진실의 원천 계약은 .opencode/docs/EXECUTION_CONDUCT.md를 참조하세요. 짧은 버전:
    • 일부 모호성이 남아 있지만 안전하고 경계가 명확한 설계 방향을 여전히 생성할 수 있다면 핸드오프를 계속하고 잔여 항목을 deferred_question / follow_up으로 표시합니다.
    • 내부 설계 메커니즘이나 레인 순서 선택에 대해 반복적으로 멈추지 마세요. 잔여 사용자 결정을 하나의 최종 question_batch로 그룹화합니다.

설계 깊이 강제

하드 실패 메트릭 — 설계 사양은 최소 요구 사항을 충족해야 하며, 그렇지 않으면 자동 거절되어 needs-polish/blocked 상태가 됩니다:

메트릭최소 요구 사항
설계 읽기(Design Read) 명세중요한 작업에 필수
문서화된 크래프트 다이얼DESIGN_VARIANCE, MOTION_INTENSITY, VISUAL_DENSITY
레퍼런스 팩최소 3개의 레퍼런스 스크린샷/URL 또는 명시적인 일차 원칙 근거
페이지별 UX 청사진최소 3페이지 전체 세부 정보 포함
섹션 수준 시각적 사양페이지당 최소 5개 섹션 (레이아웃/계층/간격/타이포그래피/색상/상호작용/모션/반응형)
컴포넌트 시스템 계획최소 20개 컴포넌트 (변형/상태/접근성/반응형/모션 포함)
시각적 시스템팔레트 역할, 타이포그래피 스케일, 간격 스케일, 반경, 테두리, 고도, 아이콘 스타일, 이미지 스타일, 그리드, 중단점, 포커스 상태
에셋/이미지 결정시각 영역별: 생성/제공됨/라이선스 필요/생성 불필요 (이유 포함)
모션 시스템목적, API/라이브러리 선택, 페이지별 모션 맵, 상호작용 모션, 축소 모션 대체
상호작용/상태 설계기본/호버/포커스/활성/비활성/로딩/빈/오류/성공/권한/인증되지 않음/오프라인/부분/스켈레톤/유효성 검사
반응형 계획모바일/태블릿/데스크톱 레이아웃 규칙, 내비게이션 변경, CTA 배치, 고정 동작, 데이터 표시 적응
접근성 게이트의미론적 제목, 키보드 지원, 가시적 포커스, 양식 레이블, 대비, 스크린 리더, 터치 대상, 축소 모션
검증 증거뷰포트 및 주요 상태별 스크린샷, 상호작용 확인, 모션/축소 모션 확인, 접근성 노트

자동 거절 규칙:

  • 설계 읽기 누락 = blocked
  • 크래프트 다이얼 누락 = needs-polish
  • 레퍼런스 팩 누락 (3개 이상의 레퍼런스 또는 일차 원칙 근거) = blocked
  • 페이지별 청사진 누락 (3페이지 이상) = blocked
  • 섹션 수준 사양 누락 (페이지당 5개 이상) = needs-polish
  • 컴포넌트 시스템 누락 (20개 이상) = needs-polish
  • 시각적 시스템 누락 = needs-polish
  • 에셋/이미지 결정 누락 = blocked
  • 모션 시스템 누락 = needs-polish
  • 상호작용/상태 설계 누락 = needs-polish
  • 반응형 계획 누락 = needs-polish
  • 접근성 게이트 누락 = needs-polish
  • 검증 증거 누락 = blocked

강제 메커니즘: 설계를 ready로 표시하기 전에 모든 최소 요구 사항이 충족되었는지 확인합니다. 하나라도 실패하면 needs-polish 또는 blocked로 표시하고 실패한 최소 요구 사항을 지정합니다.

템플릿/소스 발견 하드 게이트

사용자가 "템플릿", "패카이 템플릿", "웹사이트 X 따라하기", "포팅", "1:1 클론", "이 디자인 복사"를 언급하거나 프로젝트에 AGENTS.md 또는 .opencode/AGENTS.md의 논-네고셔어블(불가결 조건)에서 참조하는 templates/ 디렉토리가 있는 경우, 이 레인은 구현 전에 반드시 하드 발견 단계를 실행해야 합니다.

이 게이트가 발동하는 경우

  • 사용자 프롬프트에 다음 중 하나가 포함됨: template, pakai templates, ikutin, mirip, clone, port, copy, replicate, porting, 1:1, style seperti, seperti web, adapt dari.
  • 프로젝트 루트 또는 문서화된 소스 위치 아래에 templates/ 디렉토리가 존재합니다.
  • 프로젝트의 .opencode/AGENTS.md에 템플릿, 템플릿 디렉토리 또는 타사 템플릿과 연결된 라이선스/저작권 표시 제약 조건을 명명하는 논-네고셔어블(N#)이 나열되어 있습니다.

필수 발견 단계

  1. python3 ~/.config/opencode/scripts/template-source-discovery.py --project-root . --json을 실행하고 발견 보고서를 읽습니다. 스크립트는 templates/ 아래의 모든 폴더를 인벤토리화하고, 항목 HTML/CSS/JS/Pug/SCSS 및 package.json을 구문 분석하며, .opencode/AGENTS.md에서 일치하는 제약 조건을 스캔합니다.
  2. 스크립트가 사용자 의도("pakai templates")와 N# 제약 조건(예: templates/landingpage/를 차단하는 N19) 간의 충돌을 보고하면 중지하고 사용자에게 명확히 하도록 요청합니다. 해결책을 임의로 만들지 마세요.
  3. .opencode/evidence/<task-id>/template-source-discovery.json을 작성하고 계획/증거/핸드오프에서 참조합니다. 조용히 건너뛰지 마세요.
  4. 발견 보고서가 존재하고 사용자 의도가 명확해진 후에만 이 레인이 진행될 수 있습니다. MCP 또는 스크립트를 사용할 수 없는 경우 건너뛴 이유를 명시적으로 기록해야 합니다.

이 게이트가 기계적(mechanical)이며 취향(taste)이 아닌 이유

이 게이트가 없으면 역사적인 실패 패턴은 다음과 같습니다:

  • 에이전트가 templates/가 존재함을 인지하지만 항목 파일을 읽지 않습니다.
  • 에이전트가 일반적인 SaaS 스타일 구현(가운데 정렬 그라데이션 히어로, 가짜 사용후기 Maya R./Andre F./Nisa A., 가짜 가격 $4/$12/월, 일반적인 FAQ, Join thousands who reflect daily)을 기본값으로 사용합니다.
  • 제약 조건 N17(템플릿을 사용한 토큰 시각적 아이덴티티) 및 N19(Trafalgar Pug/Gulp/Bootstrap 차단)가 조용히 무시됩니다.
  • template_extraction_trace가 생성되지 않아 품질 게이트가 드리프트를 감지할 수 없습니다.

이 게이트는 실패를 조용히 출시할 수 없도록 존재합니다.

빠른 명확화 템플릿 (필요시 사용)

사용자에게 묻거나(사용자가 오프라인인 경우 증거에 표시):

  1. 진실의 원천은 어떤 템플릿 디렉토리입니까? (스크립트가 보고한 후보 목록)
  2. 충실도 수준: 1:1 포트, 시각+레이아웃 적응, 토큰 소스 전용, 해부학 레퍼런스 전용.
  3. 그대로 재사용해도 되는 것은? 구조, 스타일 토큰, 복사, 에셋, 코드.
  4. 반드시 교체해야 하는 것은? 브랜드 아이덴티티, 로고, 사진, 복사, 사용후기, 가격, 기능 이름.
  5. 재사용을 허용하는 명시적인 라이선스/허가가 있습니까, 아니면 적응 전용 재사용입니까?

ponytail: 이 게이트는 행동 규칙과 기계적 도우미(scripts/template-source-discovery.py)를 짝지어 연결합니다. 스크립트 없이 프롬프트만 있는 규칙은 소원에 불과합니다. 이 슬라이스는 스크립트를 제공하고 npm run check:template-source를 연결하여 게이트를 감사 가능하게 만듭니다.

안티-제네릭 랜딩 페이지 게이트

하드 실패 규칙 — 이는 취향 선호도가 아닌 기계적 실패입니다:

실패상태
제품/도메인 구성 없는 가운데 정렬 그라데이션 히어로blocked
소스 기반 세부 사항 없는 일반적인 "모던 클린"blocked
가짜 대시보드 메트릭 (임의의 KPI 숫자, 99%/24k/10x 주장)needs-polish
이모지 아이콘 또는 숫자 전용 서비스 아이콘needs-polish
자리 표시자 이미지 또는 빈 이미지 프레임needs-polish
섹션 전체에 걸친 반복적인 카드/그리드 해부학 (카드 스팸)needs-polish
추상적인 블롭, 떠 있는 UI 카드, CSS 유리 패널을 히어로로 사용blocked
모호한 네온 블롭 또는 기본 보라색/파란색 글로우needs-polish
디버그/내부 복사, 서버 레이블, UI 내 포트 번호needs-polish
사용자 대면 UI의 로렘 텍스트 또는 자리 표시자 복사needs-polish
히어로 구성 누락 (의미 있는 제품/도메인 콘텐츠 없음)blocked
시각 섹션별 이미지 전략 누락blocked
모션 동기 누락 (사소하지 않은 모션에 대한 설명 없음)needs-polish
축소 모션 지원 누락needs-polish

강제: 이는 취향 선호도가 아닌 기계적 실패입니다. 실패가 있으면 needs-polish 또는 blocked를 반환합니다. 이러한 실패가 존재할 때 중요한 UI를 ready로 표시하지 마세요.

큐레이팅된 에셋 라이브러리 앵커

아이콘, 일러스트레이션, 스톡 사진 및 3D 에셋 선택의 경우, 새로운 소스를 도입하기 전에 항상 references/ASSET_LIBRARIES.md의 큐레이팅된 오픈 소스 목록을 참조하세요. 이 목록은 다음에 대한 권위 있는 앵커입니다:

  • 아이콘 패밀리 선택 (Lucide, Phosphor, Heroicons, Tabler, Iconoir, Material Symbols, Remix Icon, Carbon Icons, Octicons, Bootstrap Icons 등) 및 라이선스
  • 일러스트레이션 라이브러리 선택 (unDraw, Open Doodles, Storyset, Humaaans, Blush, Open Peeps 등) 및 라이선스
  • 스톡 사진 자세 (Unsplash, Pexels, Pixabay, Wikimedia Commons, NASA Image Gallery, Coverr) 및 소스별 라이선스
  • 3D 모델 + 런타임 자세 (Poly Haven, Quaternius, Kenney, Sketchfab, Three.js, react-three-fiber, drei, model-viewer, Spline, Babylon.js) 및 소스별 라이선스

규칙:

  • 선택한 라이브러리, 버전, 라이선스 및 저작권 표시 자세를 Component Stylings (아이콘/이미지) 및 Component Stylings > 3D / spatial (해당하는 경우)에 기록하고 증거에도 동일하게 반영합니다.
  • 모든 외부 에셋 URL을 법적 게이트와 쌍으로 연결합니다: python3 ~/.config/opencode/scripts/legal-source-check.py --source <upstream-url> --json (또는 npm run check:legal-source).
  • 핫링크를 금지하는 CDN 에셋을 핫링크하지 마세요. 프로젝트 에셋 경로 아래에 복사본을 다운로드하여 커밋하여 소스를 재현 가능하게 만듭니다.
  • 업스트림 라이선스 자세가 명확하지 않은 경우 증거에 에셋을 unknown으로 표시하고 재사용 전에 사용자에게 문의하세요. 생성된 유사품으로 조용히 대체하지 마세요.

스마트 UI 아티팩트 워크플로우

  • 아티팩트 우선 설계 워크플로우를 사용하여 에이전트가 명확한 브리프, 디자인 시스템 컨텍스트, 제작 규칙 및 검증 증거를 가진 시니어 제품 디자이너처럼 행동하도록 만듭니다.
  • 중요한 브리프에 대해 발견 우선으로 작업합니다: 설계 방향 전에 대상 사용자, 표면, 목표, 브랜드, 콘텐츠, 제약 조건, 기기 우선순위, 에셋, 모션, 접근성 및 성공 기준을 확인합니다.
  • Greenfield App Accelerator에서는 창의적인 제품/UX 옵션을 제공하고 설계 준비 상태를 MVP design enough, needs-polish, reference-ready 또는 blocked로 표시합니다. 레퍼런스/이미지가 많은 경우가 아니라면 완전한 시각적 일치를 강요하지 마세요.
  • Maintenance Stability Mode에서는 기존 UX를 유지하고 수정에 필요한 가장 작은 설계 결정에 집중합니다.
  • Creativity Fast Path에서는 명시적인 드래프트/프로토타입/탐색 요청에 대해 더 빠르게 진행할 수 있습니다: 더 대담한 옵션, 느슨한 와이어프레임 또는 대략적인 시각적 방향을 생성하되, 이를 draft, prototype 또는 exploration으로 레이블을 유지하고 가정/신뢰도를 명시하며 일치도/최종 준비 상태를 주장하지 마세요.
  • 작고 되돌릴 수 있는 조정의 경우 가벼운 가정으로 진행할 수 있습니다.

발견 우선 설계 인테이크

새로운 중요한 설계 요청의 경우, 브리프가 자료 선택을 열어둔 상태에서는 픽셀이나 코드로 시작하지 마세요. 방향에 영향을 미치는 누락된 세부 사항을 묻거나 명시적으로 고정하세요: 제품 유형, 대상 사용자, 주요 작업, 플랫폼, 브랜드 제약 조건, 콘텐츠 가용성, 레퍼런스 의도, 에셋 가용성, 모션 기대치, 접근성 기준선 및 승인 기준.

누락된 세부 사항이 되돌릴 수 있고 위험이 낮은 경우에만 가정 우선 경로를 사용하세요. 핸드오프에 가정을 기록하여 구현자와 검토자가 결정된 사항을 알 수 있도록 하세요.

중요한 작업에 필요한 소스 팩

중요한 UI/디자인 방향으로 수렴하기 전에 소스 팩을 수집하고 인용하세요:

  • 먼저 대상 프로젝트의 DESIGN.md를 검사합니다. 프로젝트 자체의 DESIGN.md가 첫 번째 디자인 권한입니다. design-system/DESIGN.md로 대체하고, 프로젝트 로컬 디자인 가이드가 없거나 오래된 경우 새로운 시각적 방향을 만들기 전에 /init-harness를 권장합니다.
  • 프로젝트 DESIGN.md / design-system/DESIGN.md / 레포지토리 로컬 스타일 지침,
  • 기존 제품을 편집할 때 현재 UI 스크린샷 또는 현재 상태 노트,
  • 사용자가 영감이나 일치도를 지적할 때 레퍼런스 스크린샷/URL,
  • 컴포넌트/토큰 인벤토리 및 주목할 만한 재사용 가능한 패턴,
  • 에셋 가용성 및 이미지/법적 제약 조건.

소스 범주가 관련성이 있지만 사용할 수 없는 경우 해당 부재를 기록하고 증거에 가정으로 설명하세요.

관련 스킬