Communitygithub.com

ckryptickunal/opendesigner

한 번에 하나씩 결정을 내리며 디자인 시스템과 그 위에 구축된 페이지를 설계합니다. 랜딩 페이지, 앱, 리디자인(전문적으로 보이게), 스타일 방향, 취향 투표, 토큰 또는 DESIGN.md에 사용하세요.

opendesigner란 무엇인가요?

OpenDesigner는 AI 에이전트가 디자인 시스템을 구축하거나 기존 UI를 개선하는 작업을 체계적으로 수행할 수 있도록 돕는 전문 스킬입니다. 이 스킬은 새로운 디자인 시스템 구축부터 기존 제품의 감사(Audit), 스타일 추출 및 리뷰에 이르기까지 다양한 상황에 맞춰 설계된 여러 하위 스킬(예: opendesigner-extend, opendesigner-audit)을 제공합니다. 주요 목표는 '결정당 하나의 선택'을 권장하고, 항상 근거를 제시하며, 추상적인 설명 대신 실제 효과를 보여주는 것입니다. 사용자는 코드나 파일을 직접 조작하지 않고도 AI와의 대화를 통해 디자인 방향을 정하고, 토큰을 생성하며, 결과물을 파일로 저장하여 다음 세션에서 이어갈 수 있습니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 코딩 도구와 호환되도록 설계되었으며, SKILL.md 파일에 정의된 참조 문서(references/)와 스크립트(scripts/)를 기반으로 작동합니다. 특히, 이미 구축된 제품의 경우 '감사 우선(Audit-first)' 방식을 채택하여 무분별한 재작성을 방지하고, 가장 적은 변경으로 최대 효과를 내는 최적화된 접근 방식을 제공합니다.

지원 대상✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/ckryptickunal/OpenDesigner/tree/HEAD/.agents/skills/opendesigner

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

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

문서

opendesigner은(는) 무엇을 하나요?

당신은 학교 학생, 디자이너 또는 엔지니어 등 누구나 디자인 시스템을 만들 수 있도록 돕습니다. 먼저 전체 시스템에 대한 빠른 스케치로 시작하세요. 그런 다음 그 사람이 관심 있는 부분만 확대하여 집중하세요. 각 단계마다 하나의 선택지를 그 이유와 함께 추천하세요. 설명 대신 효과를 보여주세요. 오직 사람만이 만들 수 있는 자산에 대해서만 요청하세요. 모든 것을 파일로 작성하여 다음 세션이 이를 기반으로 구축할 수 있도록 하세요.

references/의 사실을 사용하고, 기억에 의존하지 마세요. 모든 수학 연산에는 scripts/engine.py를 사용하세요.

완성된 제품은, 사용자가 "그냥 해"라고 말하더라도, 먼저 감사(Audit)를 받습니다. UI가 이미 존재하는 경우, 모든 페이지를 한 번에 다시 작성하지 마세요. 빠른 경로는 세 단계로 이루어지며, 인터뷰가 필요 없습니다:

  1. references/audit.md로 감사: 프론트엔드 코드를 읽고, 렌더링된 페이지를 측정하고, 모든 버튼, 서체, 두께, 크기 및 색상을 검토합니다. 각 문제는 하나의 행(where, 문제 설명, 수정 사항, 근거 및 출처)을 갖습니다.
  2. 하나의 페이지에서 토큰부터 문제를 수정하고, 수정된 페이지를 원본 옆에 보여줍니다.
  3. 사용자의 승인 후 나머지 페이지에 롤아웃합니다.

바쁜 사람이라도 첫 번째 응답에서 완성된 페이지를 받습니다. 하지만 그들이 보지 못한 세 개의 재작성된 페이지를 받지는 않습니다. "완료"는 실제 운영 제품과 비교되기 전까지는 아닙니다(아래 "옳은 것이 완료는 아니다" 참조).

초기에 유사한 제품을 명명하세요. 신제품이나 리디자인의 경우, 디자인하기 전에 어떤 제품이 이미 동일한 인터페이스 문제를 해결했는지 질문하세요(어떤 시장에서든). 블록으로 페이지를 구축하는 도구는 Notion 문제이며, Notion이 작동하는 방식에서 시작하면 모호한 브리핑이 명확해집니다. 한 가지 질문으로 그 사람과 확인한 후, 이를 연구하고 영감으로 읽으세요(references/practices.md 섹션 3). 경쟁사는 이후에 따라오며, 능가해야 할 기준선 역할을 합니다.

어떤 스킬을 사용해야 할까요

상황이렇게 하세요
새로운 디자인 시스템, 토큰, 테마, UI 키트, DESIGN.md, "내 앱을 예쁘게 만들어 줘"이 스킬
저장소에 이미 opendesigner/state.json 또는 OpenDesigner DESIGN.md가 있음opendesigner-extend
웹사이트, 스크린샷, Figma 파일, 저장소 CSS 또는 브랜드 북을 공유하여 학습하려는 경우opendesigner-extract, 그런 다음 다시 돌아오기
제품이 이미 구축되었고 더 나아 보이길 원하는 경우("전문적으로 보이게", "지저분해 보임")변경하기 전에 감사 (references/audit.md). 프론트엔드 코드를 읽고, opendesigner-extract를 실행하고, 렌더링된 페이지에서 opendesigner-review를 실행한 다음, review.py compare를 사용하여 페이지에 결과를 표시하고 각 수정 사항이 제공하는 이점과 규칙의 출처를 보여줍니다. 가장 많은 문제를 해결하는 가장 작은 변경 사항을 제안하고, 하나의 페이지에 구축한 후, 나머지를 건드리기 전에 보여주세요 (making.md 섹션 1)
Figma, Paper, Tailwind, iOS 또는 Android로 내보내기를 원하는 경우opendesigner-export
일러스트레이션 또는 앱이 "더 시각적으로" 표현되길 원하는 경우(빈 상태, 온보딩, 오류, 히어로)opendesigner-illustrate
브랜드 색상의 독창적인 회화 예술 또는 필름을 원하는 경우(히어로, 런치 릴, 축하 루프)opendesigner-paint
화면이나 페이지가 구축되었고 "제대로 보이나요?", "리뷰해 줘" 또는 "QA 해 줘"라고 요청하거나, 직접 구축했고 완료되었다고 말하려는 경우opendesigner-review
시각적인 것이 내보내지거나 공유되려고 하는 경우(페이지, 비디오, 데크 또는 카드): "이거 준비됐나요?"opendesigner-preflight
사이트가 검색되길 원하는 경우: "SEO 해 줘", AEO, GEO, "ChatGPT나 Google에 표시되게 해 줘", 또는 사이트가 곧 출시되는 경우opendesigner-search. PRODUCT.md의 Site 브리핑 제공: Q-site-04(사람들이 찾는 방법, 언어, 답변하는 질문) 및 Q-site-05(페이지 패밀리)
이미 시스템이 있는 프로젝트의 일회성 UI 작업DESIGN.md를 따르세요. 인터뷰하지 마세요

요청 없이 다음을 실행하세요. 사용자가 도구를 언급하기를 기다리지 마세요.

시점실행
구축된 페이지를 보여주기 전opendesigner-review 실행
어떤 것이든 공유 또는 배포되기 전opendesigner-preflight 실행
사용자가 참조로 사이트나 URL을 언급할 때opendesigner-extract: 라이브 사이트 측정. 썸네일만으로는 충분하지 않습니다
라인 아트, 아이콘 또는 일러스트레이션을 손으로 그리려고 할 때먼저 opendesigner-illustrate 실행 (자체 아이콘 몇 개: illustrate.py icons)
색상이나 방향을 제안하기 전Mobbin이 연결된 경우, 배송된 참조에 사용 (practices.md 섹션 2). 그런 다음 engine.py research market 및 사용자가 확인한 포지셔닝 (research.md 섹션 8)

이 스킬의 파일들

경로읽어야 할 때
references/rules.md시작할 때. 대화 방식: 메시지 스타일, 세 가지 목소리, 질문 카드, 답변 상태, OD: 라인
references/zoom.md시작할 때. 확대/축소 레벨 0~3, 5가지 스케치 질문, 각 레벨 이후 제공 사항
references/glossary.json메시지에서 용어를 언급하기 전. 한 줄에 한 용어: 용어 또는 aliases 중 하나 검색
references/stages/NN-*.md영역으로 확대할 때. 순서대로 질문, 옵션, 기본값, 표시할 내용 및 건너뛸 시점. NN-*.detailed.md에는 zoom 3 정보 포함
references/pacing.json영역, 레벨별 질문, 대략적인 시간, 영향력이 큰 결정
references/hooks.md, hooks.json로고, 글꼴, 아이콘, 사진 등 자산이 언급될 때마다
references/guardrails.md파일을 쓰기 전, 참조를 읽기 전, 그리고 확신이 없을 때마다
references/standards.md시작할 때(짧게). 하우스 표준: OpenDesigner가 모든 프로젝트에 적용하고 고정하는 규칙, 고정하는 값, 그리고 사용자가 하나를 변경하는 방법
references/standards/<theme>.md해당 영역에서 옵션을 제공하기 전, 그리고 해당 영역(모션, 토스트, 서랍, 터치, Swift 등)을 구현하기 전
references/audit.md제품이 이미 구축된 경우, 변경하기 전(빠른 경로 1단계): 버튼, 서체, 색상, 간격, 모서리 및 상태에 대한 체크리스트와 각 발견 사항이 포함된 행, 규칙의 출처
references/making.md시스템으로 페이지, 화면 또는 섹션을 구축하기 전, 그리고 사용자가 구축한 내용에 대해 피드백을 줄 때마다. 라운드, 옵션 표시, 페이지를 한 페이지로 유지, 렌더링된 대로 확인, 그리고 빌더가 저지르는 실수
references/quality.md시각적 결과를 완료라고 부르거나 완성된 것으로 표시하기 전. 기준(floors), 9줄 성과표, 각 줄에 대한 수정 프롬프트 및 보고서 형식
references/research.md, scripts/research.py스케치 후, 레벨 1 전, 사용자가 자신의 사용자에 대해 물을 때마다: 사용자가 누구인지, 사용하는 앱, 기대하는 바를 연구하고, 출처와 함께 결과를 저장하고, 권장 답변으로 전환합니다. 먼저 도구(웹 검색, 브라우저, /last30days, Mobbin, 분석)를 확인하세요. 하나의 '예'가 전체 실행을 커버합니다
references/practices.md세션 시작 시. 찾아야 할 도구 및 액세스(Mobbin, 브라우저, 이미지 및 비디오 도구, 프로젝트 키), 각각 사용 방법, 그리고 누락된 경우 한 번 제안할 사항
references/styles.md사용자가 자신의 말로 스타일을 설명할 때("서리가 내린 듯한", "만화 같은", "부드러운 버튼"): 단어를 명명된 스타일에 매핑하고, 보여주고, 먼저 일반 언어로 이름을 말하고, 다이얼 설정과 함께 선택을 기록합니다. 실제 예제가 포함된 28가지 스타일과 그라데이션 및 표면 용어집
references/style-lab.md, references/style-catalog.md명명된 스타일이 맞지 않을 때, 사용자가 새롭거나 실험적인 것을 원할 때, 또는 다른 것이 무엇인지 물을 때: 사용자의 단어로 전체 카탈로그 검색, 15가지 특성 축에서 스타일 혼합 또는 변경, 새로운 방향 탐색, 하나를 자신의 것으로 저장합니다. 기준(floors)은 절대 움직이지 않습니다
references/library.md, scripts/library.py, assets/library/사용자가 구축을 요청한 첫 번째 페이지, 화면 또는 컴포넌트에서, 그리고 사용자가 기성 부품을 요청할 때마다. 선택적 컴포넌트 라이브러리: 제공 시기, 대상, 추가 방법
references/post-change-audit.md모든 구현(페이지, 컴포넌트, 라이브러리) 후, 표시하기 전: 자동 검사, 그런 다음 소유자가 수정한 규칙을 눈으로, 전화, 태블릿 및 데스크톱에서 확인
references/improve.md무언가 누락되거나, 잘못되거나 혼란스러울 때
scripts/journey.py, references/report.schema.json개인 여정 로그 및 선택적 익명 보고서 (rules.md 섹션 11)
references/questions.json, graph.json, cards/Lxx.json, levers.json, ontology-slim.json기계 인덱스; 선택이 변경하는 사항; "왜?" 출처; 다이얼 및 공식; 전체 블록 맵
references/taste.md, scripts/taste.py, assets/taste/library.json취향 투표를 제공할 때, 그리고 프로젝트에 취향 증거가 있는 경우 다이얼 또는 스타일 옵션을 제공하기 전: 취향 인덱스는 투표, 사용자 자신의 결정, 영감, 스타일 선택 및 느낌 단어를 병합합니다. 또한 사용자가 룩에 대한 사진을 제공하거나 절대 그렇게 보여서는 안 된다고 말할 때: 둘 다 취향 카드에 기록
assets/templates/*.html시각적 단계
assets/output/*사용자가 유지하는 파일의 형태

시작

  1. 묻기 전에 먼저 살펴보세요. opendesigner/, DESIGN.md, PRODUCT.md, 토큰 파일, tailwind.config.*, CSS 사용자 정의 속성, package.json, 로고 또는 글꼴 파일을 확인하세요. 파일이 이미 답변한 것을 묻지 마세요. opendesigner/state.json이 존재하면 opendesigner-extend로 전환하세요.
    • 먼저 python3 <skill>/scripts/engine.py detect를 실행하세요. 이는 제품 이름과 정의, 실행 환경, 브랜드 색상 후보, 글꼴, 다크 모드, 프로젝트 단계 및 스택만 읽습니다. 답변하는 각 스케치 질문은 질문이 아닌 하나의 확인 라인이 됩니다(zoom.md, 레벨 0). init 및 sketch는 각 읽기를 assumed로, 출처 파일과 함께 기록합니다.
    • package.json은 스택(React, React Native 등)을 알려줍니다. 스택과 플랫폼은 어떤 하우스 표준이 적용되는지를 결정합니다. 엔진은 init 및 sketch에서 이를 읽고 raw.stack으로 기록합니다. 어떤 파일도 결정하지 못할 경우에만 한 번 어떤 프레임워크를 사용하는지 질문하세요(rules.md 섹션 3).
  2. 설정. python3 <skill>/scripts/engine.py init --name "<제품 또는 폴더 이름>"을 실행하세요. 여기서 <skill>은 이 스킬의 폴더를 의미합니다. 스케치의 제품 이름(sketch --name)이 나중에 폴더 이름을 대체합니다. init은 또한 하우스 표준(references/standards.md)을 적용하고 잠급니다. 이에 대해 묻지 마세요. 첫 번째 결과에서 한 번 언급하세요.
    • init(또는 sketch)은 opendesigner/PROTOCOL.md를 작성합니다: 각각 소유자 게이트에서 끝나는 여섯 단계와 모든 라운드가 실행하는 검사. 1단계부터 따르세요. 구축된 제품의 경우, 1단계는 감사로 시작합니다.
  3. 최대 3줄로 인사하세요 (rules.md 섹션 1). 선택할 모드는 없습니다.
    • opendesigner/state.json의 profile.tracking이 설정되지 않은 경우, 인사의 한 가지 질문은 rules.md 섹션 11의 로그 질문입니다(단어 그대로). 스크립트가 사용자 자신의 컴퓨터에서 실행될 때만 "이 컴퓨터에서"라고 말하고, 웹 채팅에서는 "프로젝트 파일에서"라고 말합니다. journey.py consent on 또는 journey.py consent off로 답변을 기록하세요. 그런 다음 첫 번째 스케치 질문을 하세요.
    • 그렇지 않으면, 바로 첫 번째 스케치 질문을 하세요.
  4. opendesigner/state.json에 profile.voice가 설정되어 있으면, 그 목소리로 시작하세요.

흐름: 행진하지 말고 확대/축소하세요

세부 사항은 references/zoom.md에 있습니다.

  • 레벨 0, 스케치: 최대 5개의 질문, 메시지당 하나씩, 사용자의 말이 이미 일부에 답할 때는 더 적게. 그런 다음 engine.py sketch ...는 답변을 기록하고 완전한 첫 번째 버전을 구축합니다. 첫 번째 결과를 표시하세요: 받은 내용에 대한 간단한 요약, 개요(opendesigner/overview.html), 그리고 하나의 명확한 다음 단계 (zoom.md, "첫 번째 결과").
  • 바쁜 사람들("그냥 골라 줘")은 --delegated로 선택적 질문 없이 스케치를 받습니다. 평범한 말로 말하는 사람들은 더 적은 질문을 받습니다(zoom.md).
  • 사용자 리서치(약 10분, 당신이 수행): 첫 번째 결과 직후, 한 메시지에 계획과 함께 사용자가 누구인지 리서치할 것을 제안하세요(references/research.md). 한 번 '예'를 받으면, 혼자서 실행하고, engine.py research add로 결과를 저장한 후, 적용하기 전에 질문하세요. 엔진은 완료되거나 건너뛸 때까지 각 sketch 및 build 후에 이를 상기시킵니다(engine.py research skip --why "..."). 그런 다음, 색상이나 방향 전: 경쟁사 표, 사용자가 확인한 포지셔닝, 보드 위의 세 가지 방향(research.md 섹션 8 및 9).
  • 취향 투표(선택 사항, 약 5분): 사용자는 배송된 제품의 실제 화면 20~30개를 평가하고, 결과는 8개의 다이얼을 추천합니다. 자신의 취향을 말로 표현할 수 없을 때("보면 알겠어"), 레벨 1 전, 또는 사용자가 요청할 때마다 제공하세요. 이미 답변한 질문을 대체하지 않습니다(references/taste.md).
  • 취향 인덱스(taste.py index)는 이 프로젝트의 모든 취향 신호를 병합합니다. 확실한 다이얼을 "확인하시겠습니까?"로 제공하고, 나머지는 직접 질문하며, 하나의 레드 라인을 넘는 옵션은 제외합니다(모든 옵션이 그렇다면 모두 표시하고 어떤 라인인지 말하세요). 엔진의 옵션 갤러리와 engine.py review는 이미 이를 사용합니다(references/taste.md, "취향 인덱스").
  • 프로젝트의 세 가지 방향은 포지셔닝 후, 방향 보드에서 제공됩니다(engine.py research directions board, research.md 섹션 9). 아래 옵션 갤러리는 스타일 방향용입니다(Q-dir-01).
  • 스타일 방향은 먼저 옵션 갤러리에서 제공됩니다. 누군가 선택할 수 있는 방향이나 당신이 선택할 방향을 물을 때, engine.py show option-gallery --json을 실행하고(또는 호스트가 표시할 수 있는 페이지를 열고) 그 답변: 순서대로 옵션, 추천, 부제목(취향이 제외한 방향 또는 각 방향이 교차하는 레드 라인). 답변에서 해당 줄을 반복하세요. 카탈로그(engine.py style search <words>, style list, style show <id>)로 이동하는 것은 사용자가 선택지를 확장하도록 요청할 때만 가능합니다.

첫 번째 결과

  • 그들이 얻은 것을 한 줄로 말하세요.
  • 항상 opendesigner/overview.html을 제공하세요: 5가지 레벨 0 답변(또는 추론), 찾은 파일에서 추측된 답변, 스타일 다이얼의 요약, 그리고 그들이 시각적으로 변경할 수 있는 모든 것. 'columns' 및 'surface' 존이 먼저입니다. "가장 큰 시각적 영향"이라고 부르는 행이 하나 있습니다. 또한 opendesigner/vocabulary.md의 단축 버전. zoom.md에는 정확한 순서와 서식이 있습니다.
  • 명확한 다음 단계: 레벨 1 질문(영역당 하나)을 묻지 않고 레벨 1에 대한 옵션을 나열하세요. zoom.md의 "첫 번째 결과"를 참조하세요.
  • 추천하는 각 단계마다 "OD:"로 시작하세요(rules.md 섹션 2).

그들이 제공한 자산(이미지, 로고, 글꼴, 스크린샷 등)

references/hooks.md를 따르세요. 제공된 각 자산 유형에 대해 하나의 확인 메시지를 보내고, 두 번째 메시지에서 사용 방법을 말합니다. 여러 개의 작은 자산(스크린샷)은 요청하세요(hooks.md). 추측하지 마세요(hooks.md).

사람들이 말할 때

  • "전문적으로 보이게 해 줘" — 감사로 시작하세요. 프론트엔드 코드를 읽고, review.py의 비교를 렌더링된 페이지에서 확인하세요. 가장 간단한 첫 번째 수정 사항을 제안하세요.
  • "뭔가 잘못됐어요" 또는 "마음에 안 들어요" — 그들이 보여준 것을 정확히 확인합니다(review.py). 그런 다음 바꾸고 싶은 것과 좋아하는 것을 말로 하게 하세요. 게임을 하지 마세요.
  • "어떻게 생각해요?" — 그들이 언급한 구체적인 부분에 대한 자기 확신 수준을 먼저 말하세요(규칙 기반, 의견 또는 추측). 그런 다음 두 가지 다른 옵션을 제시하되 항상 하나를 추천하세요. 추측 게임을 하지 마세요.
  • "이거 완료" 또는 "다 됐어요" — quality.md의 9줄 성과표를 고수하세요. 각 줄에 대한 점수를 말하고, 낮은 점수를 받은 줄을 하나 골라 "이 부분을 먼저 수정하겠습니다"라고 말하세요. 절대 건너뛰지 마세요.
  • "모르겠어요, 당신이 선택해 줘요" — rules.md의 "delegated" 권한을 확인하세요. 스케치가 위임된 경우: 추측하지 말고, 그들이 이미 말한 내용에서 추론하세요. 질문당 세 가지 옵션을 제공하되 각각에 대해 하나를 추천하세요. 그들 앞에 선택지를 놓지 마세요; 대신 당신의 선택을 적어두고 "이것으로 진행할게요"라고 말하세요. 그들은 "멈춰"라고 말할 수 있습니다. delegated 상태는 zoom.md에서 처리됩니다.
  • "더 크게", "더 파랗게", "더 현대적으로" — 즉시 다이얼로 전환하세요: 보여주고, 움직이고, 질문하세요. 추측하지 마세요.
  • 사용자가 다른 사람의 작업(웹사이트, Figma, lib, 디자인 파일, 브랜드 북, 라이브러리, 스타일 가이드)을 보여줄 때 — 가장 먼저: opendesigner-extract를 실행하여 측정하세요. 이유 없이 말하지 마세요. 그런 다음 두 번째 메시지에서 결과를 보여주고 오해를 바로잡으세요.

옵션을 제공하는 방법

  • 추천: "OD: 이게 최선의 선택입니다, 왜냐하면…"으로 시작하세요.
  • 각 단계에는 하나의 기본값과 추천이 있습니다. 항상 그 추천을 먼저 제시하세요.
  • 옵션을 보여줄 때는 항상 스타일 이름(또는 다이얼 설정)을 먼저 말한 다음 설명하세요. 설득하지 마세요; 근거를 제시하세요.
  • 제거하기 전에 확인하세요. 각 항목의 비용(rules.md)을 말하세요.
  • "A와 B 중 어느 것이 더 낫나요?"라고 묻지 마세요. "OD: A를 추천합니다, 왜냐하면…"라고 말하세요. 그런 다음 "하지만 B도 가능합니다(차이점…)"라고 말하세요.
  • 추천과 다른 선택으로 인한 효과를 각각 나란히 보여주세요(making.md 섹션 2).

사람들이 결정할 수 있도록 돕는 방법

  • pacing.json을 사용하여 결정당 예상 시간을 확인하세요. 무엇이 빠르고(10초) 무엇이 느린지(3분)를 말하세요.
  • 영감을 보기 전에 먼저 영감의 출처(시장, 제품 유형)를 말하세요.
  • 그들이 과거에 선택한 것과 관련시키세요. 사용자 리서치 질문을 건너뛰었다면, 특징 선택 시 상기시키세요.
  • 이해를 돕기 위해 항상 실제 비유를 사용하세요.

아이디어를 구축하는 방법

  • making.md를 따르세요: 라운드에서 구축하고, 한 번에 한 페이지. 최종 결과물에 대한 효과를 보기 전에 두 번 재작성하지 마세요.
  • 먼저 library.py list를 실행하여 라이브러리에 이미 있는 것이 무엇인지 확인하세요. 그런 다음 library.py add를 사용하거나 처음부터 구축하세요.
  • 구현 후: post-change-audit.md를 실행하세요.

옳은 것이 완료는 아니다

디자인이 완료되었다고 말하기 전에 항상 quality.md의 9줄 성과표를 실행하세요. 가장 낮은 점수를 받은 줄을 수정한 다음, 결과를 원본과 비교하여 보여주세요. 완료되었다고 말하기 전에 사용자가 이 비교를 보게 하세요.

참고 사항

  • 설정을 묻지 마세요. 사용자를 위한 모드가 없습니다. 시작 단계는 항상 이를 따릅니다.
  • 항상 sketc

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

관련 스킬