Giting은 남의 도구를 실측한다. 이번엔 우리 도구를 우리한테 써봤다. giting-skills 스킬들로 그 마켓의 랜딩 한 장과 소개 덱 한 벌을 직접 지으며, 도움과 헛발질을 숨김없이 적었다.
Giting은 남의 오픈소스를 클론해서 재본다. 별점 대신 실측으로. 그런데 우리한테도 도구가 생겼다. giting-skills, 우리가 검수해서 올린 Claude Code 스킬 마켓이다.
그래서 정직한 질문 하나. 그 도구들, 정작 우리가 쓰면 쓸 만한가? 이번 호는 giting-skills 마켓의 랜딩 한 장과 소개 덱 한 벌을, 오직 우리 스킬만으로 지으면서 그때그때 도움 · 헛발질 · 안 씀을 기록했다.
먼저 밝혀 둔다. 판정은 없다. 이건 자기 제품에 별을 주는 리뷰가 아니라 제작기다. 남을 잴 때 쓰는 그 정직을, 이번엔 우리 손에 그대로 겨눴다.
만들 것 둘과, 스스로에게 건 규칙. 여기서 이 제작기의 조건을 세운다.
만들 것은 둘. giting-skills가 어떤 마켓인지 보여줄 랜딩 하나, 그 마켓을 소개하는 발표 덱 하나. 시작하기 전에, 무엇을 담아야 하는지부터 못 박았다.
그리고 스스로에게 건 규칙 셋. 이 셋이 이 지면을 자랑이 아니라 기록으로 묶는다.
이 규칙 아래, 실제 공정은 네 칸이었다.
위 네 칸이 이번 제작의 전 공정이다. 스킬이 각 칸에서 실제로 무슨 일을 했는지가 아래 두 산출물의 기록이다.
터미널 에디토리얼. 방향을 잡고, 재료를 얹고, 빠짐을 점검하고, 게이트를 통과시켰다.
여기까지 오는 데 스킬 넷과 게이트 하나가 관여했다. 각각이 무엇을 해줬고, 무엇을 못 했는지.
도움. 안티-슬롭 목록이 "Inter · 웜크림 · 보라 그라디언트" 같은 AI 기본값을 먼저 막았다. 개발자 마켓이라 무심코 갈 뻔한 SaaS 그라디언트 히어로를 처음부터 배제. 방향(색 · 타입 · do/don't)을 몇 분에 고정.
헛발질. 46개 스타일 목록에 "개발자 CLI 마켓" 딱 맞는 게 없어 터미널 에디토리얼을 직접 조합했다. 팔레트 추출기는 새로 만드는 랜딩이라 뽑을 원본이 없어 안 썼다.
도움. 국문 · mono 후보를 빠르게 좁히고 정확한 로드 스니펫(Pretendard=jsDelivr, JetBrains Mono=Google)을 그대로 가져와 silent fallback 0.
헛발질. "국문 개발자 도구 조합 레시피"는 사전 명시가 약해 페어링은 직접 판단. 한글 폰트 · 페어링 확장이 필요하다는 걸 이 제작에서 재확인했다.
도움. 무엇을 더할지 이름을 대준다. 고정 헤더 · 설치 블록 복사 버튼 · 카드 호버를 체크리스트로 빠짐없이. CLI 마켓에 복사 버튼은 진짜 UX 승리다(모바일에서 긴 커맨드를 손으로 못 친다).
헛발질. ui-menu는 AI에게 UI를 시키는 요청 사전이라, 직접 짤 땐 생성이 아니라 빠짐 점검 용도. 코드는 사람이 쓴다.
390px에서 넘침 · 깨짐을 진단했으나 고칠 증상이 없었다(min-width:0 · overflow-x · keep-all로 애초에 막고 지음). css-menu는 증상이 있을 때 빛나는 사전이다. 잘 지으면 사전이 논다. 그게 실패가 아니라 잘 지었다는 신호이자, 사전의 정직한 한계다.
도움. 출하 전 [object Object] · undefined · 미렌더 · 에러 문자열을 자동 게이트로 스캔. 누수 0. 눈으로 놓칠 창피한 누수를 결정적으로 막는 마지막 단계.
정리하면 design-brief · font-menu · ui-menu가 방향 · 재료 · 점검을, ambient-qa가 게이트를 맡았다. css-menu는 이번엔 놀았다. 그리고 그게 좋은 신호였다.
같은 방향을 승계하고, 논증 순서로 슬라이드를 나누고, 출하 직전 게이트가 진짜 위반 하나를 잡았다.
도움. "판단 먼저"가 핵심 규율이었다. 슬라이드마다 코드보다 그 장이 답할 질문 한 줄(이 마켓이 볼 가치가 있나 / 뭘 믿고 고르나 / 검수가 진짜인가)을 먼저 박으니, 일곱 장이 논증 순서로 저절로 섰다. 장식이 아니라 논리로 나눈다.
헛발질. slide-pick은 "무엇을 몇 장에 담을지"의 방법이지 조판 HTML을 뽑아주진 않는다. 레이아웃은 직접 짰다. 방법이 규율을 주고, 손은 사람이 움직인다.
재사용. 랜딩에서 고정한 방향(터미널 에디토리얼 · Pretendard + JetBrains Mono · 잉크 + 검수 그린)을 덱에 그대로 승계했다. 두 산출물의 시각 일관성이 목적이라 새로 안티-슬롭을 돌리지 않았다. 스킬의 진짜 값은 매번 새로 부르는 게 아니라 한 번 고정한 방향을 재현 가능하게 만드는 것이었다.
도움. 출하 직전 게이트로 돌리니 전체화면 버튼의 ⛶ 이모지(장식 이모지 금지 위반)를 잡았다. 눈으로는 기능 아이콘이라 넘길 뻔한 걸 하우스룰이 걸러 텍스트로 교체. 엠대시 · 좌측 액센트바 · 전체화면 버튼 규칙도 통과 확인. 봇 티가 안 나게 막는 그 규율이 여기서도 작동했다.
오탐. 슬라이드 수 검사가 "7장 ≠ 24"로 실패 신호를 냈다. 실제로는 일곱 장 다 정상. deck-lint의 1920×1080 전제가 우리 1280×720 커스텀 덱을 오해한 것(스킬 문서가 명시한 "확인 신호, 자동 실패 아님"). 사전도 틀린다. 사람이 눈으로 일곱 장 확인하고 통과시켰다.
도움. 덱 HTML도 같은 게이트로 스캔. 텍스트 누수 0. 랜딩과 덱, 둘 다 마지막 관문을 통과했다.
스킬 일곱을 두 산출물에 대고 하나의 표로. 그리고 이 제작이 확인시킨 우리 도구의 진짜 성격.
각 스킬이 랜딩과 덱에서 실제로 무엇이었나. 도움에는 늘 헛발질이 붙어 있었고, 어떤 것은 안 쓰는 게 맞았다.
| 스킬 | 랜딩 | 덱 | 한 줄 |
|---|---|---|---|
| design-brief | ✓△ | ↺ | 방향을 막아주고, 최종 스타일은 직접 조합. 덱엔 재사용. |
| font-menu | ✓△ | ↺ | 로드 스니펫은 정확, 국문 페어링은 직접. 덱엔 재사용. |
| ui-menu | ✓△ | · | 빠짐 점검(복사 버튼). 생성이 아니라 체크리스트. |
| css-menu | · | · | 증상 0. 잘 지으면 사전이 논다(=성공 신호). |
| slide-pick | · | ✓△ | 논증 골격을 세움. 조판 HTML은 직접. |
| deck-lint | · | ✓△ | 이모지 위반을 잡음. 슬라이드 수는 오탐. |
| ambient-qa | ✓ | ✓ | 출하 게이트. 두 번 다 누수 0. |
표를 세로로 읽으면 랜딩은 방향 · 재료 · 점검(design-brief · font-menu · ui-menu)에서, 덱은 조판 · 검수(slide-pick · deck-lint)에서 도구를 썼다. 가로로 읽으면 도움 칸마다 헛발질이 하나씩 붙어 있다. 완벽한 자동화가 아니라, 사람이 짜되 무심코 갈 곳을 막아주는 관계다.
방향(design-brief) · 재료(font-menu) · 빠짐 점검(ui-menu) · 논증 골격(slide-pick) · 출하 게이트(deck-lint · ambient-qa)를 준다. 코드와 조판은 사람이 한다.
css-menu는 증상이 없어 안 썼다. 실패가 아니라 잘 지었다는 신호다. 도구의 정직한 한계를 감추지 않는다.
deck-lint가 오탐을 냈다. 대부분을 잡고 한계를 아는 것이 좋은 도구다. 남을 잴 때 쓰는 정직을 자기 도구에도 그대로 적용한다.
자기 제품 리뷰가 아니라 제작기다. 도움과 헛발질을 숫자 없이, 있는 그대로 적었다.
이 지면에 쓴 스킬은 전부 마켓에 있다. 별점이 아니라 실측으로 검수한 것만.
# 마켓 등록 (한 번)
/plugin marketplace add hanmariyang/giting-skills
# 스킬 설치
/plugin install font-menu@giting이 매거진 지면도 예외가 아니다. 폰트 로드는 font-menu, 디자인 방향은 design-brief, 컴포넌트 점검은 ui-menu, 출하 검수는 ambient-qa. 같은 도구로 같은 정직을 적용해 지었다.