# 분기 자문 점검 리포트 6시간 → 30분: Claude Skills로 도메인 전문성을 패키지화한 이야기
## 소개 — 시도하고자 했던 것과 그 이유
저는 매 분기마다 **관리 포트폴리오 vs 벤치마크(BM) 점검 리포트**를 작성하는데, 이 작업이 매번 비슷한 패턴인데도 처음부터 다시 하느라 시간이 많이 들었습니다.
전형적인 한 회차 작업 흐름:
1. 엑셀에서 NAV·보유 펀드·자산배분 데이터 추출 (1~2시간)
2. 관리 포트폴리오 vs BM 갭 분해, 지역·섹터 틸트 분석 (2~3시간)
3. 환오픈 시나리오·교체 펀드 후보 작성 (1~2시간)
4. HTML/문서 작성, 톤·용어 다듬기 (1~2시간)
→ **한 번에 6~10시간**. 분기마다 반복.
이 작업을 매번 처음부터 하면서 또 다른 문제도 있었습니다 — 새 창을 열 때마다 Claude에게 **"우리 동네 용어·톤·분석 표준"을 다시 설명**해야 했습니다.
> "캐비엇이란 단어 쓰지 말자" → 다음 새 창에서 또 캐비엇 사용
> "사실 그대로 담백하게, 자랑하지 마" → 새 창에선 또 화려한 형용
> "위험조정수익 = 연환산수익/연환산변동성" → 다음에는 또 '샤프-라이크' 같은 임시 표현
목표는 단순 자동화가 아니라 **"내 분석 방법론·도메인 지식·톤 규약을 그대로 기억하는 보조 분석가"** 만들기.
---
## 진행 방법 — Claude Skills로 도메인 전문성 패키지화
### 사용 도구
- **Claude Opus 4.7** (claude.ai 웹)
- **Claude Skills** 기능 — 분석 워크플로우·표준·도메인 지식을 `.skill` 파일로 패키지화
- Python (Excel 파싱, NAV 시계열 처리), HTML/CSS (리포트 렌더링)
### 핵심 접근: **"One-off → 패턴 추출 → 스킬화"**
처음부터 완벽한 스킬을 만들려고 하지 않았습니다. 대신:
**Step 1 — 한 번을 처음부터 끝까지 함께 만들면서 모든 의사결정 명시**
분기 리포트 한 회차를 Claude와 처음부터 끝까지 만들면서, 매 단계의 의사결정·톤·표현·분석 방법을 다 짚고 가는 게 첫 단계였습니다. 그러면서 받은 피드백·교환을 다음 회차용 스킬에 그대로 인코딩.
대표적인 교환 예:
```
나: "이 표현 너무 강해 — 사실 그대로 담백하게"
Claude: 톤 중립화 ("악화"→"확대", "손해다"→"AP 불리하게")
→ 스킬 EDITORIAL.md에 표준 매핑 저장
```
```
나: "외화주식 펀드 A에 UH 클래스 있어"
Claude: (사내 등록 미확인이라 잘못 표시) → "운영팀 확인 필요" 표현 제거
→ 스킬에 "사용자가 데이터 제공하면 그 데이터 신뢰" 규약 추가
```
**Step 2 — PM 뷰 질문 표준화**
매 회차 시장 판단(PM view)이 필요합니다. 처음엔 임의 질문 → 4 질문(2 라운드)으로 정착:
- **Q1**: 한국주식 방향 (적극 확대 / 점진 확대 / 유지 / 축소)
- **Q2**: 외화주식 환오픈(UH) 전환 적극성
- **Q3**: 채권 듀레이션 (즉시 전면 / 단계적 / 유지)
- **Q4: 가장 우려되는 위기 시나리오** ← **항상 함께** (미국 침체 / 인플레 재발 / 지정학 / 특별 우려 없음)
Q4가 신의 한 수였습니다. 한 회차에서 답이 **"인플레 재발"**이었는데, 이 답이 결론 페이지에 **실물 자산·TIPS·금 검토** 같은 신규 권고를 자동 생성했습니다. 단순 directional bet → 헤지 자산군 검토까지 분석 깊이가 한 단계 더.
**Step 3 — 분석 프레임 정량화**
다른 분야 분석 스킬(TDF 피어 분석)의 정량 분석 패턴을 흡수:
- **Brinson Allocation Effect** — 지역·섹터 틸트를 정성 표 → 정량 기여(%p)
- **민감도 임계점 분석** — 단일 변수별 ±5/10/15%p 충격 시 갭 변동 테이블, bp 단위 통일로 자산군 간 직접 비교
- **시나리오 A/B 대칭 파라미터** — A의 ×(-1) = B, 같은 폭 반대 방향
- **리스크/리워드 비대칭 분석** — A 갭 변동폭 vs B 갭 변동폭 → 비대칭 비율 명시
이 표준이 **CLAUDE.md**(프로젝트 컨텍스트)에 들어가서 모든 자문 리포트에서 일관되게 적용됩니다.
### 핵심 프롬프트 — Skill 정의 (`SKILL.md`의 핵심)
스킬을 만들 때 사용한 description의 핵심:
```markdown
---
name: pension-bm-comparison-report
description: Build a Korean-language single-tier HTML monitoring
report comparing pension advisory portfolio vs official benchmark BM.
Use whenever the user asks for BM 점검, AP-BM 비교, beat-BM 분석.
Includes Brinson Allocation Effect (정량 기여 %p 분해 with 정규화),
민감도 임계점 분석 (단일 변수, bp 단위 통일), 시나리오 A/B 대칭
파라미터 (정량 시뮬레이션, 비대칭 분석), Acts 01-06 forward plan,
FX-open scenario with institutional precedent (NPS, GPFG, 김재욱),
전략 의사결정 프레임 (유지/부분 헤지/양쪽 불리만). Output: 8-page HTML.
---
## Step 1 — PM view confirmation (mandatory)
Each cycle context changes. Ask PM view via ask_user_input_v0 —
4 questions in 2 rounds (max 3 per call):
**Round 1**: Q1 한국주식, Q2 환오픈, Q4 위기 시나리오 (always together)
**Round 2**: Q3 듀레이션
## Step 2 — Quantitative analysis standards
(Brinson formula, sensitivity threshold method,
scenario A/B symmetry, risk/reward asymmetry — full reference
in ANALYSIS_FRAMEWORK.md)
## Step 3 — Editorial pass
- 톤: 사실 그대로 담백하게 (자랑·변명 X)
- 용어: "캐비엇" 금지 → 단서·유의 사항
- 단위: % %p 년 bp 모든 숫자에 표시
- 색: red=불리 / navy=유리 / gold=강조
```
### 최종 패키지 구성 (5개 파일)
```
.
├── CLAUDE.md # 프로젝트 컨텍스트 (새 창마다 첫 메시지)
├── README.md # 두 스킬 사용 가이드
├── INPUTS_종합_체크리스트.md # 매 회차 준비할 데이터·정보
├── pension-monitoring-report.skill # 스킬 1 (AP vs MP 비교)
└── pension-bm-comparison-report.skill # 스킬 2 (AP vs BM 비교)
```
### 새 창 시작 메시지 (실전 사용)
스킬 만든 뒤 새 창에선 이렇게 시작:
```
[CLAUDE.md 내용 첨부 또는 붙여넣기]
이번 회차 BM 점검 리포트 만들어줘.
[파일 첨부]
- 포트폴리오_모니터링_매크로.xlsm (관리 포트 NAV + 보유펀드 + 전 등급 유니버스)
- 자산배분_명세.xlsx (지역·섹터·look-through 비중)
- bm_기준가.tsv (BM 일별 시계열)
- 펀드A_UH.xlsx (외화주식 환오픈 클래스 NAV)
회계연도: FY26 진행만
시장 환경: 미국 추가 인상 확률 53%, 한국 올해 2회+ 인상 expectation
```
→ Claude가 자동으로:
1. 데이터 추출 (xlsm·xlsx·tsv 파싱)
2. PM 뷰 4 질문 (`ask_user_input_v0`로 인터랙티브 질문)
3. 갭 분석 + Brinson 분해 + 민감도 + 시나리오
4. 8페이지 HTML 리포트 생성
한국 은행 웹사이트 스크린샷
한국사이트 스크린샷
---
## 결과와 배운 점
### 결과 — 정량
- **작업 시간 6~10시간 → 30분~1시간** (데이터 첨부 + 4 질문 답변 + 결과 검토)
- **품질 일관성**: 매 분기 톤·용어·구조 동일. 6개 Acts·환오픈 7섹션·정량 분해 자동 적용
- **포터블**: 다른 동료와 패키지 공유 가능 (5개 파일)
### 결과 — 정성 (분석 깊이)
처음엔 단순 갭 비교만 했는데, 반복하면서 추가된 것들:
- **기관 사례** — 국민연금 2015~ 100% 환오픈 정책, 노르웨이 GPFG 미헤지, 김재욱 2022 한국 자연헤지 실증 → 환오픈 권고의 정당성 강화
- **구조적 원화 약세 thesis** — 한미 성장률 격차 / 일본 재정확장→엔화 약세 / 대미 투자 자본 유출
- **자연헤지 메커니즘** — risk-off 시 USD↑KRW↓ → 외화주식 손실 완충. **단 채권엔 효과 약함** 단서 보존
- **펀드 교체 후보** — 보유 외 사내 유니버스에서 트랙 좋은 펀드 자동 발굴
- **3 모드 의사결정 프레임** — 확신/부분 헤지/모호 모드별 액션 분기
### 시행착오 — 핵심 5가지
**1. 처음엔 너무 방어적 framing**
"자문 개시 시점이 12월이라 그 전은 의미가 적다..." 같은 변명을 Claude가 자동 삽입. 사용자가 "편향 없이 사실 그대로" 요청 → **스킬에 "방어적 framing 자동 삽입 금지" 규약** 추가.
**2. 임시 표현이 굳어버리는 함정**
"샤프-라이크"(샤프 비슷한) 같은 임시 표현이 보고서에 그대로 정착할 뻔. WM 컨텍스트에선 어색 → **"위험조정수익"으로 통일 + 산식 fnote 명시**. 스킬에 "임시 표현 금지, 이 용어로 통일" 규약 인코딩.
**3. PM 뷰 매 회차 다시 물어야 함**
이전 회차 답변이 다음 회차에도 유효하다고 가정하면 안 됨 (시장 환경이 매 분기 변함). → 스킬 Step 1에 **"PM 뷰 매 회차 새로 확인"** 명시.
**4. 데이터 검증 실수**
핵심 펀드의 UH 클래스 존재 여부를 사내 시트만 보고 판단해 "운영팀 확인 필요" 표시. 사용자가 별도 NAV 파일을 이미 첨부했음을 놓침. → **"사용자가 데이터 제공하면 그 데이터를 신뢰"** 규약.
**5. 4번째 PM 뷰 질문(위기 시나리오)의 가치**
처음엔 3 질문만 (한국·환오픈·금리). 사용자가 "더 유익한 질문 추천"을 요청 → **Q4(위기 시나리오) 추가**. 답에 따라 결론에 새 자산군(Gold·TIPS·실물) 권고 자동 등장 → 리포트가 정성적 베팅을 넘어 **헤지 전략까지 다루는 수준**으로 격상.
### 나만의 꿀팁
**🎯 팁 1: "One-off → 스킬화" 워크플로우**
처음부터 완벽한 스킬 만들려 하지 말 것. **한 번 완전한 산출물을 만들면서 사용자 피드백·교환을 기록 → 패턴 추출 → 스킬화**. 이게 가장 빠르고 정확.
**🎯 팁 2: 매 회차 변하는 것 vs 고정인 것 분리**
스킬에 인코딩 (고정):
- 디자인 시스템 (컬러 팔레트, 폰트, 컴포넌트)
- 분석 프레임 (Brinson 수식, 시나리오 대칭 원칙)
- 톤·용어 규약 (캐비엇 금지, 위험조정수익 통일)
- 기관 사례·thesis 등 도메인 지식
회차마다 새로 받음:
- 데이터 (NAV, 비중 최신화)
- PM 뷰 4 답변
- 시장 환경 수치 (FedWatch 등)
- 사용자 추가 요청
**🎯 팁 3: PM 뷰 질문에 "위기 시나리오" 항상 포함**
방향성 질문(상승/유지/하락)만 받으면 단순 베팅. **위기 시나리오 답변이 함께 있으면 헤지 자산군 권고까지 깊이 + 비대칭 리스크 인식 가능**.
**🎯 팁 4: 임시 표현 그대로 두지 말 것**
"~라이크", "~비슷한" 같은 임시 표현이 보고서에 굳으면 나중에 클라이언트가 의아해함. **반드시 정식 용어로 변경 + 산식 fnote**.
**🎯 팁 5: CLAUDE.md = 프로젝트 컨텍스트**
매 새 창마다 같은 컨텍스트 다시 설명하기 싫음. **CLAUDE.md 파일을 만들어 첫 메시지에 붙여넣으면**, Claude가 톤·용어·매크로 컨텍스트 모두 인지하고 응답. 이게 진짜 시간 절약.
**🎯 팁 6: `ask_user_input_v0` 활용**
PM 뷰 질문은 4지선다 선택지 형식으로 받음. 모바일에서도 빠르게 답 가능. **컨텍스트 윈도우 효율도 좋음** (긴 텍스트 입력 없이 선택만).
### 도움 필요한 부분
- **인터랙티브 차트 라이브러리** — 정적 HTML 리포트에 어울리는 추천 있으시면 듣고 싶음. 현재는 SVG로 단순 차트만. Recharts 같은 React 컴포넌트는 정적 출력에 어울리지 않음.
- **스킬 버전 관리** — v1 → v2 업데이트 시 변경 사항 추적 좋은 방법?
### 앞으로의 계획
- 시황 코멘트 PPT 자동 생성 스킬 (현재는 마크다운 편집 가이드까지만)
- 클라이언트 응대용 이메일 자동 작성 스킬 (개인화된 한 문장 hook 포함)
- 정식 Sharpe Ratio (rf=무위험수익률 시계열) 도입 — 현재는 rf=0 단순화
- TDF 피어 분석 스킬과 통합 패키지 (정량 분석 표준 공유 → 더 깊은 분석)
---
## 도움 받은 글
- [Anthropic Skills 공식 문서](https://docs.claude.com/en/docs/agents/skills) — 스킬 구조·메타데이터 명세
- [지피터스] 다른 분들의 Skill 사례글 — `One-off → 패턴 추출` 아이디어 차용
- 사내 다른 분이 만든 피어 분석 자동화 스크립트 — Brinson 정량 분해 / 민감도 임계점 / 시나리오 대칭 패턴 흡수
---
> **핵심 요약**: 도메인 전문 업무를 LLM과 함께 자동화할 때, **단순 프롬프트 모음**이 아니라 **"내가 이 분야에서 어떻게 일하는지"를 포함한 스킬 패키지**로 만들면 결과 품질이 한 단계 다릅니다. 5개 파일(CLAUDE.md + README + INPUTS + 2 .skill)로 6~10시간 작업을 30분으로 줄였고, 새 동료가 와도 같은 품질로 일할 수 있도록 패키지가 자기 자신을 설명합니다.