install
source · Clone the upstream repo
git clone https://github.com/KIM-KYOUNG-OH/dotfiles
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/KIM-KYOUNG-OH/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/issue-tech-doc-guide" ~/.claude/skills/kim-kyoung-oh-dotfiles-issue-tech-doc-guide && rm -rf "$T"
manifest:
.claude/skills/issue-tech-doc-guide/SKILL.mdsource content
Technical Documentation Guide Generator
신기술 스택 도입, 아키텍처 패턴, 구현 가이드를 분석하여 구조화된 기술 문서를 자동 생성하는 스킬입니다.
실행 절차
1. 정보 수집
다음 정보를 사용자에게 대화형으로 수집합니다:
- 프로젝트명: 기술 문서를 작성할 프로젝트 이름
- 문서 주제: 어떤 기술이나 아키텍처에 대한 문서인가
- 문서 목적: 도입 가이드 / 아키텍처 설계 / 구현 가이드 / 마이그레이션 가이드 등
- 대상 독자: 개발자 / 아키텍트 / 운영팀 / 경영진 등
- 기술 스택: 관련된 기술, 프레임워크, 라이브러리
- 현재 상황: 기존 시스템 현황 (해당되는 경우)
- 추가 요구사항: 특별히 포함해야 할 내용
2. 코드베이스 분석
필요한 경우 현재 코드베이스를 분석:
- 프로젝트 구조: 디렉토리 구조 파악
- 기존 패턴: 현재 사용 중인 아키텍처 패턴
- 의존성: 관련 라이브러리 및 버전
- 설정 파일: 관련 설정 및 환경 변수
3. 기술 조사
필요한 경우 외부 자료 조사:
- 공식 문서: 해당 기술의 공식 문서 참조
- 베스트 프랙티스: 업계 표준 및 권장 사항
- 사례 연구: 유사한 구현 사례
- 잠재적 이슈: 알려진 문제점 및 해결 방법
4. 문서 구조화
수집된 정보를 바탕으로:
- 개요 작성: 문서의 목적과 범위 정의
- 배경 설명: 왜 필요한가, 어떤 문제를 해결하는가
- 아키텍처 설계: 시스템 구조 및 컴포넌트 관계도
- 구현 가이드: 단계별 구현 방법
- 코드 예시: 실제 적용 가능한 코드
- 운영 가이드: 배포, 모니터링, 트러블슈팅
5. 문서 생성 및 저장
정리된 정보를 구조화된 마크다운 문서로 생성하고, Read 도구로
를 읽어 vault 경로, 파일명 규칙, 태그 체계, frontmatter 구조를 확인한 후 Obsidian vault에 저장합니다.~/.claude/policies/obsidian-document-policy.md
기술 문서 템플릿
# {문서 제목} ## 개요 ### 목적 {이 문서의 목적과 다루는 범위} ### 대상 독자 {누구를 위한 문서인가} ### 전제 조건 {이 문서를 읽기 전에 필요한 지식이나 준비사항} ## 배경 ### 동기 {왜 이 기술이나 아키텍처가 필요한가} ### 현재 상황 {기존 시스템의 현황 및 문제점} ### 기대 효과 {도입 또는 적용 후 기대되는 효과} ## 기술 개요 ### 핵심 개념 {기술의 핵심 개념 및 원리} ### 주요 특징 - **특징 1**: {설명} - **특징 2**: {설명} - **특징 3**: {설명} ### 장단점 분석 #### 장점 - {장점 1} - {장점 2} - {장점 3} #### 단점 및 고려사항 - {단점 1} - {단점 2} - {단점 3} ## 아키텍처 설계 ### 시스템 구조 ```mermaid graph TD A[컴포넌트 A] --> B[컴포넌트 B] B --> C[컴포넌트 C] C --> D[컴포넌트 D]
컴포넌트 구성
{컴포넌트 1}
역할: {이 컴포넌트가 하는 일} 책임: {주요 책임 사항} 인터페이스: {제공하는 API 또는 인터페이스}
{컴포넌트 2}
역할: {이 컴포넌트가 하는 일} 책임: {주요 책임 사항} 인터페이스: {제공하는 API 또는 인터페이스}
데이터 흐름
sequenceDiagram participant A as 클라이언트 participant B as API 서버 participant C as 데이터베이스 A->>B: 요청 B->>C: 쿼리 C-->>B: 결과 B-->>A: 응답
기술 스택
| 레이어 | 기술 | 버전 | 역할 |
|---|---|---|---|
| Frontend | {기술명} | {버전} | {역할} |
| Backend | {기술명} | {버전} | {역할} |
| Database | {기술명} | {버전} | {역할} |
| Infrastructure | {기술명} | {버전} | {역할} |
구현 가이드
환경 설정
필요한 도구
- {도구 1} (버전 {버전})
- {도구 2} (버전 {버전})
- {도구 3} (버전 {버전})
설치 및 설정
# 의존성 설치 {설치 명령어} # 환경 변수 설정 export KEY=value
단계별 구현
Step 1: {첫 번째 단계}
목표: {이 단계에서 달성할 목표}
구현:
{코드 예시}
설명: {코드 설명 및 주의사항}
Step 2: {두 번째 단계}
목표: {이 단계에서 달성할 목표}
구현:
{코드 예시}
설명: {코드 설명 및 주의사항}
설정 파일
{설정 파일 1}
위치:
{파일 경로}
{설정 파일 내용}
설명:
: {설명}key1
: {설명}key2
: {설명}key3
코드 예시
기본 사용법
{기본 사용 예시 코드}
고급 사용법
{고급 사용 예시 코드}
실전 예제
시나리오: {실제 사용 사례 설명}
{실전 예제 코드}
테스트
단위 테스트
{단위 테스트 코드}
통합 테스트
{통합 테스트 코드}
테스트 실행
{테스트 실행 명령어}
배포 가이드
배포 전 체크리스트
- {체크 항목 1}
- {체크 항목 2}
- {체크 항목 3}
배포 절차
-
{단계 1}
{명령어} -
{단계 2}
{명령어} -
{단계 3}
{명령어}
롤백 절차
{문제 발생 시 롤백하는 방법}
{롤백 명령어}
운영 가이드
모니터링
핵심 메트릭
- {메트릭 1}: {설명 및 임계값}
- {메트릭 2}: {설명 및 임계값}
- {메트릭 3}: {설명 및 임계값}
모니터링 도구
{사용할 모니터링 도구 및 설정 방법}
로깅
로그 레벨
- ERROR: {언제 사용}
- WARN: {언제 사용}
- INFO: {언제 사용}
- DEBUG: {언제 사용}
로그 위치
{로그 파일 위치 및 로그 수집 방법}
트러블슈팅
문제 1: {문제 설명}
증상: {어떤 증상이 나타나는가} 원인: {왜 발생하는가} 해결 방법: {어떻게 해결하는가}
{해결 명령어}
문제 2: {문제 설명}
증상: {어떤 증상이 나타나는가} 원인: {왜 발생하는가} 해결 방법: {어떻게 해결하는가}
{해결 명령어}
성능 최적화
최적화 포인트
-
{최적화 항목 1}
- 현재 상태: {현재 성능}
- 개선 방법: {개선 방안}
- 기대 효과: {기대되는 성능 향상}
-
{최적화 항목 2}
- 현재 상태: {현재 성능}
- 개선 방법: {개선 방안}
- 기대 효과: {기대되는 성능 향상}
보안 고려사항
보안 위험
-
{위험 1}
- 설명: {위험 내용}
- 대응 방안: {어떻게 대응할 것인가}
-
{위험 2}
- 설명: {위험 내용}
- 대응 방안: {어떻게 대응할 것인가}
보안 베스트 프랙티스
- {베스트 프랙티스 1}
- {베스트 프랙티스 2}
- {베스트 프랙티스 3}
참고 자료
공식 문서
관련 아티클
사례 연구
- {회사명 또는 프로젝트명} - {간단한 설명}
유용한 도구
- {도구 1}: {설명}
- {도구 2}: {설명}
FAQ
Q1: {자주 묻는 질문 1}
{답변}
Q2: {자주 묻는 질문 2}
{답변}
Q3: {자주 묻는 질문 3}
{답변}
용어 정리
- {용어 1}: {설명}
- {용어 2}: {설명}
- {용어 3}: {설명}
다음 단계
- {향후 개선 계획 1}
- {향후 개선 계획 2}
- {향후 개선 계획 3}
## 문서 저장 기술 문서 작성 완료 후, Read 도구로 `~/.claude/policies/obsidian-document-policy.md`를 읽어 저장 규칙을 확인하고 다음과 같이 저장합니다: 1. **프로젝트명 확인**: 사용자에게 프로젝트명 재확인 2. **문서명 확인**: 의미있는 파일명 제안 (예: `redis-caching-guide.md`) 3. **Frontmatter 생성**: - `type`: `technical-documentation` - `topic`: 주제 - `purpose`: 목적 - `audience`: 대상 독자 - `status`: `Draft` - **태그**: `doctype/technical-guide`, `topic/{기술명}`, `status/draft`, `project/{프로젝트명}` 4. **파일명**: 사용자 지정 또는 `{문서명}.md` 5. **저장 경로**: `~/OneDrive/my-obsidian-vault/002-PROJECTS/{프로젝트명}/` 자세한 저장 규칙은 `~/.claude/policies/obsidian-document-policy.md` 참조. ## 대상 독자별 작성 요령 ### 개발자 대상 - 코드 중심, 구현 세부사항 포함 - 단계별 구현 가이드 강조 - 실행 가능한 코드 예시 충분히 제공 ### 아키텍트 대상 - 아키텍처 패턴, 설계 결정 중심 - 시스템 구조 다이어그램 강조 - 트레이드오프 분석 포함 ### 운영팀 대상 - 배포, 모니터링, 트러블슈팅 중심 - 운영 절차 상세히 기술 - 문제 해결 가이드 포함 ### 경영진 대상 - 비즈니스 가치, ROI, 위험도 중심 - 요약 및 핵심 내용 강조 - 기술 용어 최소화 또는 설명 포함 ## Mermaid 다이어그램 규칙 ### 시스템 구조도 (graph) ```mermaid graph TD A[명확한 레이블] --> B[명확한 레이블] B --> C[명확한 레이블]
- 방향: TD (Top-Down), LR (Left-Right)
- 노드는 명확한 레이블 사용
- 화살표로 의존성 또는 데이터 흐름 표현
시퀀스 다이어그램 (sequenceDiagram)
sequenceDiagram participant A as 명확한 이름 participant B as 명확한 이름 A->>B: 동작 설명 B-->>A: 응답 설명
- 시간 순서대로 상호작용 표현
- 동기 호출:
, 비동기 응답:->>-->
제목 작성 규칙
- 명확성: 문서의 내용을 정확히 반영
- 구체성: 추상적이지 않고 구체적으로
- 예시:
- ✅ "Redis를 활용한 캐싱 전략 가이드"
- ✅ "마이크로서비스 아키텍처 설계 문서"
- ✅ "GraphQL API 구현 가이드"
- ❌ "기술 문서" (너무 일반적)
- ❌ "새로운 기술" (모호함)
문서 작성 원칙
- 명확성: 애매한 표현 지양, 명확하고 구체적으로
- 완결성: 문서만으로 이해하고 구현할 수 있도록
- 최신성: 버전 정보, 변경 이력 명시
- 검증 가능성: 예시 코드는 테스트된 것으로
- 구조화: 논리적 흐름, 계층 구조
- 시각화: 다이어그램으로 복잡한 내용 설명
실행 예시
User: 기술 문서 작성해줘 Assistant: 1. [정보 수집] 프로젝트명, 주제, 목적, 대상 독자 등 질문 2. [코드베이스 분석] 필요시 현재 프로젝트 구조 파악 3. [기술 조사] 필요시 공식 문서, 베스트 프랙티스 조사 4. [문서 구조화] 개요, 배경, 아키텍처, 구현 가이드 작성 5. [문서 생성] Read `~/.claude/policies/obsidian-document-policy.md` 후 저장