SLOPSHOPPER

ko-labels

슬래시 명령과 /config 설정 행에 한국어 설명을 덧붙인다

new
v0.1.0no licenseupdated 2026-10-14dbsrjs/claude-mods/ko-labels
A shopper browsing a rack in a slop shop
README

Claude Code 모드

Claude Code 안에서 도는 개인용 모드(function hooks 플러그인). 2026-10-14 에 Nexus 저장소(.claude/mods/)에서 떼어 왔다.

모드하는 일
git-band입력창 위에 프로젝트 · 브랜치 · 원격 대비 앞뒤 · 변경 · CI(최신 워크플로 실행) · 마지막 커밋을 보인다. /git-band 로 즉시 새로 고침
ko-labels슬래시 명령 설명과 /config 설정 이름에 한국어를 병기한다. 사전(hooks/dictionary.ts)에 없는 것은 원문 그대로

설치

터미널의 Claude Code 프롬프트에서(이 저장소가 마켓플레이스다 — 루트의 .claude-plugin/marketplace.json):

/plugin install git-band --marketplace dbsrjs/claude-mods
/plugin install ko-labels --marketplace dbsrjs/claude-mods

y 로 마켓플레이스를 추가하고 범위는 user 를 고른다.

고치면서 쓸 때는 설치 대신 폴더를 직접 올린다 — 저장하면 다시 읽힌다:

claude --plugin-dir git-band --plugin-dir ko-labels

전제

  • git-band 의 CI 칸은 gh 가 설치 · 로그인돼 있어야 나온다. 없으면 CI ? (gh 없음) · (gh 로그인 필요) 로 이유를 보인다
  • 띠에 이전 커밋 기준 이 붙으면 최신 CI 실행이 지금 HEAD 의 것이 아니다(아직 push 안 했거나 CI 가 안 돌았다)

검사

claude plugin validate git-band
claude plugin test git-band

.claude-plugin/types/ 는 엔진이 로드할 때마다 새로 깔기 때문에 커밋하지 않는다(자체 .gitignore).

Source 2 files
hooks/register.ts 40 lines
1import type { Register } from 'claude-code'
2
3import { COMMANDS, CONFIG } from './dictionary'
4
5// 이미 한글이 들어 있으면(이 모드나 다른 플러그인이 붙였거나 원래 한국어) 다시 붙이지 않는다.
6const HANGUL = /[ㄱ-ㆎ가-힣]/
7
8// 플러그인 · 스킬 명령은 `anthropic-skills:pdf` 처럼 접두사가 붙는다. 정확한 이름을 먼저,
9// 없으면 마지막 마디로 찾는다.
10export function lookupCommand(name: string): string | undefined {
11  return COMMANDS[name] ?? COMMANDS[name.split(':').pop() ?? name]
12}
13
14// 명령 목록은 한 줄로 그려져 길면 뒤가 잘린다. 스킬 설명은 영어가 길어서 뒤에 붙이면
15// 한국어가 잘려 보이지 않으므로 앞에 둔다.
16export function koDescription(name: string, description: string): string | undefined {
17  const ko = lookupCommand(name)
18  if (!ko || HANGUL.test(description)) return undefined
19  return description ? `${ko} — ${description}` : ko
20}
21
22// 설정 행은 라벨이 짧아 잘릴 걱정이 없으므로 원문 옆에 둔다(원문을 먼저 두어 문서 · 검색어와 대조된다).
23export function koLabel(key: string, label: string): string | undefined {
24  const ko = CONFIG[key]
25  if (!ko || HANGUL.test(label)) return undefined
26  return `${label} · ${ko}`
27}
28
29export const register: Register = on => {
30  on('command.describe', ($, e, next) => {
31    const description = koDescription(e.command, e.description)
32    return description ? next({ ...e, description }) : next(e)
33  })
34
35  on('config.describe', ($, e, next) => {
36    const label = koLabel(e.key, e.label)
37    return label ? next({ ...e, label }) : next(e)
38  })
39}
40
hooks/dictionary.ts 173 lines
1// 이름 → 한국어 설명. 영어 고유 명칭(MCP · IDE · CLAUDE.md · Chrome 등)은 그대로 둔다.
2// 엔진이 이름으로만 찾으므로, 사전에 없는 명령 · 행은 원문 그대로 보인다(조용히 틀리게 번역하지 않는다).
3
4export const COMMANDS: Readonly<Record<string, string>> = {
5  // 내장 명령
6  'add-dir': '작업 디렉터리 추가',
7  advisor: '중요한 순간에 더 강한 모델에게 자문',
8  agents: '서브에이전트 관리',
9  autocompact: '자동 압축 창 크기 설정',
10  btw: '작업을 멈추지 않고 곁가지 질문',
11  bug: '버그 신고 · 피드백 보내기',
12  feedback: '버그 신고 · 피드백 보내기',
13  chrome: 'Claude in Chrome 설정',
14  clear: '빈 컨텍스트로 새 세션 시작(이전 세션은 /resume 으로 재개 가능)',
15  color: '이번 세션 입력창 색 설정',
16  compact: '지금까지의 대화를 요약해 컨텍스트 확보',
17  config: '설정 열기 · 키로 설정 변경',
18  context: '현재 컨텍스트 사용량 보기',
19  copy: '마지막 응답 복사',
20  cost: '세션 비용 · 사용량 보기',
21  debug: '디버그 로그 켜고 문제 진단',
22  doctor: 'Claude Code 설치 · 설정 상태 점검',
23  effort: '모델 추론 노력 수준 설정',
24  exit: 'Claude Code 종료',
25  quit: 'Claude Code 종료',
26  export: '대화를 파일 · 클립보드로 내보내기',
27  fast: '빠른 모드 전환',
28  focus: '집중 보기 전환(프롬프트 · 요약 · 응답만)',
29  goal: '조건을 만족할 때까지 계속 작업할 목표 설정',
30  heapdump: 'JS 힙 덤프 저장',
31  help: '도움말 · 명령 목록',
32  hooks: '훅 설정 관리',
33  ide: 'IDE 연결 관리',
34  import: '다른 AI 코딩 에이전트의 설정 가져오기',
35  init: '코드베이스 문서화용 CLAUDE.md 생성',
36  insights: 'Claude Code 세션 분석 보고서 생성',
37  'install-github-app': 'GitHub Actions 용 Claude 앱 설치',
38  'install-slack-app': 'Slack 용 Claude 앱 설치',
39  keybindings: '단축키 설정',
40  'list-agents': '메시지를 보낼 수 있는 서브에이전트 · 팀원 · 세션 목록',
41  login: '로그인 · 계정 전환',
42  logout: '로그아웃',
43  mcp: 'MCP 서버 관리',
44  memory: '메모리 파일(CLAUDE.md) 편집',
45  model: '사용할 AI 모델 설정',
46  'output-style': '출력 스타일 목록 · 전환',
47  permissions: '도구 허용 · 거부 규칙 관리',
48  allowed_tools: '도구 허용 · 거부 규칙 관리',
49  plugin: '플러그인 관리',
50  plugins: '플러그인 관리',
51  'pr-comments': 'GitHub PR 댓글 가져오기',
52  'privacy-settings': '개인정보 설정',
53  recap: '세션 한 줄 요약 지금 만들기',
54  'release-notes': '릴리스 노트 보기',
55  'reload-plugins': '변경된 플러그인을 이번 세션에 적용',
56  'reload-skills': '세션 중 추가 · 변경된 스킬 다시 읽기',
57  'remote-control': '다른 기기에서 이 세션 원격 제어',
58  rename: '현재 대화 이름 바꾸기',
59  resume: '이전 대화 재개',
60  continue: '이전 대화 재개',
61  review: 'PR 리뷰',
62  rewind: '대화 · 코드를 이전 시점으로 되감기',
63  checkpoint: '대화 · 코드를 이전 시점으로 되감기',
64  sandbox: '샌드박스 설정',
65  'security-review': '현재 브랜치 변경의 보안 리뷰',
66  'skill-doctor': '안 쓰이면서 컨텍스트를 차지하는 스킬 보기',
67  skills: '스킬 목록',
68  stats: '사용 통계 보기',
69  status: '버전 · 모델 · 계정 · 연결 상태 보기',
70  statusline: '상태 줄 설정',
71  tasks: '백그라운드 작업 목록',
72  bashes: '백그라운드 작업 목록',
73  'team-onboarding': '사용 기록으로 팀원용 Claude Code 안내서 만들기',
74  'terminal-setup': '터미널 줄바꿈 키(Shift+Enter) 설정',
75  theme: '테마 변경',
76  todos: '할 일 목록 보기',
77  upgrade: '요금제 업그레이드',
78  usage: '세션 비용 · 요금제 사용량 · 한도 기여 항목 보기',
79  vim: 'Vim 편집 모드 전환',
80
81  // 내장 스킬
82  batch: '대규모 변경을 계획하고 여러 worktree 에이전트로 병렬 실행',
83  'claude-api': 'Claude API · Anthropic SDK 참고 자료',
84  'code-review': '현재 diff · PR 의 버그 리뷰',
85  dataviz: '차트 · 그래프 · 대시보드 작성 가이드',
86  'deep-research': '여러 출처를 조사해 인용 보고서 작성',
87  design: '요청서로 새 Design 아티팩트 만들기',
88  'design-consent': 'Design 프로젝트 접근 권한 허용',
89  'design-revoke': 'Design 프로젝트 접근 권한 회수',
90  'design-sync': 'React 디자인 시스템을 claude.ai/design 으로 올리기',
91  'artifact-capabilities': '아티팩트 런타임 기능 안내',
92  'artifact-design': '아티팩트 디자인 가이드',
93  'artifact-diagramming': '아티팩트 다이어그램 가이드',
94  'fewer-permission-prompts': '자주 쓰는 읽기 전용 명령을 허용 목록에 추가해 권한 확인 줄이기',
95  'keybindings-help': '단축키 바꾸기 도움말',
96  loop: '프롬프트 · 명령을 주기적으로 반복 실행',
97  'plugin-authoring': '모드(띠 · 패널 · 상태 줄 · 훅) 만들기',
98  run: '앱을 실행해 변경을 직접 확인',
99  'run-skill-generator': '프로젝트별 run 스킬 작성 · 개선',
100  simplify: '변경 코드의 재사용 · 단순화 · 효율 정리',
101  slides: '요청서로 새 슬라이드 덱 만들기',
102  'update-config': 'settings.json 설정(훅 · 권한 · 환경 변수) 변경',
103  verify: '변경이 실제로 동작하는지 끝까지 실행해 확인',
104  'workflow-authoring': 'Workflow 스크립트 작성 참고 자료',
105
106  // 클라우드 · 사용자 스킬
107  'startup-hook-skill': '클라우드 세션용 시작 훅 만들기',
108  'session-start-hook': '클라우드 세션용 시작 훅 만들기',
109  'built-in-browser': '데스크톱 앱 내장 브라우저 사용 안내',
110  'chrome-browser': 'Claude in Chrome 확장 사용 안내',
111  'computer-use': '내 컴퓨터의 앱 조작(computer use) 안내',
112  docs: '함께 편집 · 공유하는 문서 만들기',
113  docx: 'Word(.docx) 문서 만들기 · 편집',
114  'google-workspace': 'Google Docs · Sheets · Slides 파일 만들기 · 편집',
115  'import-memory': '다른 AI 비서의 메모리 가져오기',
116  morning: '아침 브리핑 만들기 · 예약',
117  pdf: 'PDF 읽기 · 병합 · 분할 · 생성',
118  pptx: 'PowerPoint(.pptx) 만들기 · 편집',
119  'skill-creator': '스킬 만들기 · 개선 · 평가',
120  xlsx: '스프레드시트 만들기 · 편집',
121
122  // 이 저장소(Nexus) 스킬
123  'nexus-android-verify': 'Android 에뮬레이터 · 실기기에서 앱 변경 확인',
124  'nexus-deck': 'Nexus 발표 자료(PPT) 만들기',
125  'nexus-migration': 'Prisma 마이그레이션 추가 · 변경(HNSW 인덱스 보호)',
126  'nexus-pc-handoff': 'PC 를 옮길 때 git 으로 안 옮겨지는 것 챙기기',
127  'nexus-verify': 'check:* 계약 검증 실행 · 디버그',
128}
129
130export const CONFIG: Readonly<Record<string, string>> = {
131  autoCompact: '자동 압축',
132  autoContinueAtUsageLimit: '사용 한도에서 자동으로 계속',
133  switchModelsOnFlag: '메시지가 플래그되면 모델 전환',
134  tips: '팁 보기',
135  reduceMotion: '움직임 줄이기',
136  thinking: '생각 모드',
137  promptSuggestionEnabled: '프롬프트 제안',
138  recap: '세션 요약',
139  checkpoints: '코드 되감기(체크포인트)',
140  workflows: '동적 워크플로',
141  workflowKeywordTriggerEnabled: 'Ultracode 키워드로 시작',
142  workflowSizeGuideline: '동적 워크플로 규모',
143  artifacts: '아티팩트',
144  verbose: '자세한 출력',
145  progressBar: '터미널 진행 막대',
146  turnDuration: '턴 소요 시간 보기',
147  timeFormat: '시간 형식',
148  permissionMode: '기본 권한 모드',
149  worktreeBaseRef: 'worktree 기준 ref',
150  useAutoModeDuringPlan: '계획 중 자동 모드 사용',
151  gitignore: '파일 선택기에서 .gitignore 따르기',
152  copyFullResponse: '/copy 선택 창 건너뛰기',
153  copyOnSelect: '선택하면 복사',
154  autoScroll: '자동 스크롤',
155  defaultToAgentsView: '기본으로 에이전트 보기 열기',
156  leftArrowOpensAgents: '← 키로 에이전트 보기 열기',
157  autoUpdatesChannel: '자동 업데이트 채널',
158  theme: '테마',
159  notifChannel: '로컬 알림',
160  inputNeededNotifEnabled: '조치가 필요하면 푸시',
161  agentPushNotifEnabled: 'Claude 가 판단하면 푸시',
162  outputStyle: '출력 스타일',
163  language: '언어',
164  editor: '편집기 모드',
165  askUserQuestionTimeout: '질문 자동 진행 대기 시간',
166  externalEditorContext: '외부 편집기에 마지막 응답 표시',
167  prStatus: 'PR 상태 표시줄 보기',
168  model: '모델',
169  autoConnectIde: 'IDE 자동 연결(외부 터미널)',
170  chrome: 'Claude in Chrome 기본 사용',
171  dialogExpiry: '대화 상자 만료',
172}
173