GitHub ↗
CHAPTER 10 OF 10
🚀

Build Your Own Skills — Team Knowledge Capitalization

나만의 스킬 만들기 — 팀 노하우를 코드로 자산화한다

최고의 Claude Code 활용은 주어진 스킬을 쓰는 것이 아니라 팀 고유의 노하우를 스킬로 자산화하는 것이다. /skill-creator 스킬로 처음부터 직접 만든다.

Build Your Own Skills — Team Knowledge Capitalization cheatsheet
🍌 NANO BANANA CHEATSHEET · CH 10

Overview

개관

이미 설치된 스킬들은 범용적으로 설계되어 있다. 당신 팀의 특수한 코딩 컨벤션, 배포 절차, 도메인 특화 패턴은 어디에도 없다.

최고의 투자: 팀이 반복적으로 하는 작업을 스킬로 자산화하는 것. 온보딩 스킬 하나가 신입 팀원 교육 시간을 50% 줄인다. 코드 리뷰 스킬이 리뷰 품질을 표준화한다.

/skill-creator 스킬은 이 과정을 돕는다. 기존 스킬을 분석하고, 새로운 스킬의 구조를 설계하고, description을 최적화하고, 실제 트리거 정확도를 테스트한다.

🎯 Learning Goals
  • SKILL.md 파일을 처음부터 작성하고 /skill-creator로 최적화한다
  • 팀 고유 워크플로를 스킬로 변환하는 3단계 프로세스를 적용한다
  • description 필드를 트리거가 정확하게 작동하도록 정밀 조정한다
  • 완성된 스킬을 .claude/skills/에 배치하고 git에 커밋해 팀과 공유한다

Sections

본문

스킬 아이디어 발굴 — 3가지 신호

신호 1: 같은 지시를 세 번 이상 반복했다 "이건 항상 Result 패턴으로 에러 처리해줘, throw 말고" — 이게 세 번 이상 나왔다면 스킬로 만들 때다.

신호 2: 새 팀원에게 설명한 것이 있다 "우리 API는 항상 이렇게..." — 이 설명 자체가 스킬 콘텐츠다.

신호 3: 매번 찾아봐야 하는 것이 있다 내부 라이브러리 사용법, 회사 보안 정책 — 한 번 스킬로 만들면 Claude가 자동으로 참고한다.

SKILL.md 작성 3단계

1단계 — 이름과 트리거 정의 name: 짧고 명확하게 (kebab-case) description: 언제 트리거될지 정확하게 ('when user asks to handle API errors' — 너무 광범위하면 오작동)

2단계 — 지시사항 작성 Claude에게 주는 지시사항을 마크다운으로 작성한다. 체크리스트, 금지 패턴, 예시 코드를 포함한다.

3단계 — 테스트와 개선 실제 작업에서 스킬을 트리거하고 결과를 관찰한다. description이 너무 자주 트리거되면 좁히고, 안 트리거되면 넓힌다.

/skill-creator 스킬 활용

이미 설치된 /skill-creator 스킬을 활용한다.

새 스킬 생성: '새 스킬 만들어줘 — 우리 팀 API 에러 처리 패턴' Existing 스킬 개선: '이 스킬의 description이 너무 자주 트리거돼, 좁혀줘' 성능 테스트: '이 스킬이 올바른 상황에서 트리거되는지 eval해줘'

Skill-creator는 skill.sh에 스킬을 게시하는 것도 지원한다.

💡 Analogy · 비유
회사의 지식 자산화

뛰어난 개인의 노하우는 그 사람이 떠나면 사라진다. 하지만 그 노하우를 프로세스와 문서로 자산화한 회사는 개인이 떠나도 품질이 유지된다. 팀 스킬은 Claude Code에서의 지식 자산화다. 개인이 쌓은 Claude 활용 노하우를 팀 전체가 공유하는 시스템이다.

팀 스킬 예시 — 에러 처리 패턴 강제 적용

markdown
---
name: team-error-handling
description: Use when writing API handlers, service functions, or any code that might fail. Trigger when user asks to add error handling, create API endpoints, or handle async operations.
when_to_use: For all API routes, service layer functions, and async operations
author: SynapseGo Engineering Team
version: 1.0.0
---

# SynapseGo Error Handling Standard

Our codebase uses the Result pattern exclusively. Never throw errors in business logic.

## The Pattern

```typescript
// ✅ ALWAYS use Result type
type Result<T, E = AppError> = 
  | { ok: true; data: T }
  | { ok: false; error: E };

async function getUser(id: string): Promise<Result<User>> {
  try {
    const user = await db.user.findUnique({ where: { id } });
    if (!user) return { ok: false, error: new NotFoundError('User not found') };
    return { ok: true, data: user };
  } catch (e) {
    return { ok: false, error: new DatabaseError(e) };
  }
}
```

## Rules
- NEVER use `throw` in service/repository layer (only in middleware)
- ALWAYS check `result.ok` before using `result.data`
- AppError subclasses: NotFoundError, ValidationError, DatabaseError, AuthError
- Log errors at the boundary (API route level), not inside services

## API Route Pattern
```typescript
export async function GET(req: Request) {
  const result = await userService.getUser(req.params.id);
  if (!result.ok) return errorResponse(result.error); // centralized
  return Response.json(result.data);
}
```

description이 'API handlers', 'error handling', 'async operations' 관련 작업 시 트리거되도록 설계했다. 스킬 내용은 팀의 실제 타입 정의와 패턴을 포함하므로 범용 스킬보다 훨씬 정확한 결과를 생성한다.

🏭 현업에서의 평가
3개월 이상 팀에서 Claude Code를 쓰는데 .claude/skills/가 비어있다면 그 팀은 도구를 최대한 활용하지 못하는 것이다. 팀 스킬이 3개 이상 있고, git에 커밋되어 있고, 팀원 모두가 그 스킬을 통해 일관된 코드를 작성한다면 그게 성숙한 Claude Code 활용이다.

✅ 시니어가 보는 것

  • .claude/skills/에 팀 고유 스킬이 있는가
  • 스킬이 git에 커밋되어 팀 전체가 공유하는가
  • 온보딩 스킬이 있어 신입이 바로 팀 스타일로 작업하는가
  • 스킬의 description이 정밀하게 작성되어 오작동이 없는가

Key Takeaways

핵심 정리

반복 지시 3회 = 스킬 제작 신호

같은 말을 세 번 했다면 스킬로 만들어야 할 때다.

description 정밀도 = 스킬 품질

기능 내용만큼 description 설계가 중요하다. 너무 넓으면 오작동, 너무 좁으면 안 트리거.

.claude/를 git에 커밋 = 팀 자산화

개인의 노하우를 팀 자산으로 변환하는 가장 단순한 방법이다.

/skill-creator로 품질 보장

기존 스킬을 분석하고 새 스킬의 트리거 정확도를 테스트한다.

온보딩 스킬이 가장 ROI 높다

신입 팀원 교육 시간 50% 절감. 한 번 작성하면 영구 적용.