@simplysm/sd-claude 13.0.85 → 13.0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +160 -30
  2. package/claude/rules/sd-claude-rules.md +14 -11
  3. package/claude/rules/sd-library-issue.md +9 -4
  4. package/claude/rules/sd-readme.md +5 -0
  5. package/claude/skills/sd-audit/SKILL.md +133 -0
  6. package/claude/skills/sd-check/SKILL.md +111 -49
  7. package/claude/skills/sd-commit/SKILL.md +121 -32
  8. package/claude/skills/sd-debug/SKILL.md +96 -82
  9. package/claude/skills/sd-document/SKILL.md +64 -58
  10. package/claude/skills/sd-document/_common.py +1 -6
  11. package/claude/skills/sd-document/extract_docx.py +0 -1
  12. package/claude/skills/sd-document/extract_pdf.py +17 -25
  13. package/claude/skills/sd-document/extract_pptx.py +0 -1
  14. package/claude/skills/sd-document/extract_xlsx.py +2 -4
  15. package/claude/skills/sd-email-analyze/SKILL.md +33 -23
  16. package/claude/skills/sd-init/SKILL.md +99 -80
  17. package/claude/skills/sd-plan/SKILL.md +87 -123
  18. package/claude/skills/sd-plan-dev/SKILL.md +122 -0
  19. package/claude/skills/sd-readme/SKILL.md +147 -100
  20. package/claude/skills/sd-spec/SKILL.md +140 -0
  21. package/claude/skills/sd-spec/sections/api.md +85 -0
  22. package/claude/skills/sd-spec/sections/architecture.md +104 -0
  23. package/claude/skills/sd-spec/sections/db.md +99 -0
  24. package/claude/skills/sd-spec/sections/process.md +98 -0
  25. package/claude/skills/sd-spec/sections/ui.md +146 -0
  26. package/claude/skills/sd-test/SKILL.md +116 -0
  27. package/claude/skills/sd-use/SKILL.md +149 -0
  28. package/package.json +1 -1
  29. package/claude/rules/sd-simplysm-usage.md +0 -7
  30. package/claude/skills/sd-api-review/SKILL.md +0 -85
  31. package/claude/skills/sd-document/__pycache__/_common.cpython-313.pyc +0 -0
  32. package/claude/skills/sd-review/SKILL.md +0 -72
  33. package/claude/skills/sd-simplify/SKILL.md +0 -66
@@ -0,0 +1,99 @@
1
+ # DB 관련 추가 섹션
2
+
3
+ 요구사항에 DB/테이블/스키마가 포함된 경우, 기본 섹션에 아래 양식을 추가한다.
4
+
5
+ ## 테이블 스키마
6
+
7
+ 테이블의 컬럼과 제약조건을 정의한다.
8
+
9
+ **양식:**
10
+ ```markdown
11
+ ## 테이블 스키마
12
+
13
+ ### {테이블명}
14
+
15
+ | 컬럼 | 타입 | NULL | 기본값 | 설명 |
16
+ |------|------|------|-------|------|
17
+ | {컬럼명} | {타입} | {Y/N} | {기본값} | {설명} |
18
+
19
+ **인덱스:**
20
+ - {인덱스명}: {컬럼 목록} ({UNIQUE/일반})
21
+
22
+ **외래키:**
23
+ - {컬럼} → {참조테이블}.{참조컬럼}
24
+ ```
25
+
26
+ **예시:**
27
+ ```markdown
28
+ ## 테이블 스키마
29
+
30
+ ### users
31
+
32
+ | 컬럼 | 타입 | NULL | 기본값 | 설명 |
33
+ |------|------|------|-------|------|
34
+ | id | INT | N | AUTO_INCREMENT | PK |
35
+ | name | VARCHAR(100) | N | | 사용자 이름 |
36
+ | email | VARCHAR(255) | N | | 이메일 주소 |
37
+ | role | ENUM('admin','user','viewer') | N | 'user' | 역할 |
38
+ | created_at | DATETIME | N | CURRENT_TIMESTAMP | 생성일시 |
39
+ | deleted_at | DATETIME | Y | NULL | 삭제일시 (soft delete) |
40
+
41
+ **인덱스:**
42
+ - idx_users_email: email (UNIQUE)
43
+ - idx_users_role: role (일반)
44
+
45
+ **외래키:**
46
+ - 없음
47
+ ```
48
+
49
+ ## ERD (Mermaid)
50
+
51
+ 테이블 간 관계를 Mermaid ERD로 표현한다.
52
+
53
+ **양식:**
54
+ ````markdown
55
+ ## ERD
56
+
57
+ ```mermaid
58
+ erDiagram
59
+ {테이블A} ||--o{ {테이블B} : "{관계 설명}"
60
+ {테이블A} {
61
+ type column_name "설명"
62
+ }
63
+ ```
64
+ ````
65
+
66
+ **예시:**
67
+ ````markdown
68
+ ## ERD
69
+
70
+ ```mermaid
71
+ erDiagram
72
+ users ||--o{ orders : "주문"
73
+ orders ||--|{ order_items : "주문 항목"
74
+ products ||--o{ order_items : "상품"
75
+
76
+ users {
77
+ int id PK
78
+ varchar name "사용자 이름"
79
+ varchar email "이메일"
80
+ }
81
+ orders {
82
+ int id PK
83
+ int user_id FK
84
+ datetime ordered_at "주문일시"
85
+ varchar status "주문 상태"
86
+ }
87
+ order_items {
88
+ int id PK
89
+ int order_id FK
90
+ int product_id FK
91
+ int quantity "수량"
92
+ }
93
+ products {
94
+ int id PK
95
+ varchar name "상품명"
96
+ decimal price "가격"
97
+ }
98
+ ```
99
+ ````
@@ -0,0 +1,98 @@
1
+ # 프로세스 관련 추가 섹션
2
+
3
+ 요구사항에 프로세스/흐름이 포함된 경우, 기본 섹션에 아래 양식을 추가한다.
4
+
5
+ ## 프로세스 플로우차트
6
+
7
+ 업무 프로세스나 기능 흐름을 Mermaid 플로우차트로 표현한다.
8
+
9
+ **양식:**
10
+ ````markdown
11
+ ## 프로세스 흐름
12
+
13
+ ### {프로세스명}
14
+
15
+ ```mermaid
16
+ flowchart TD
17
+ A[{시작}] --> B{조건}
18
+ B -->|{Yes}| C[{처리}]
19
+ B -->|{No}| D[{처리}]
20
+ C --> E[{종료}]
21
+ D --> E
22
+ ```
23
+
24
+ **단계 설명:**
25
+ | 단계 | 설명 | 담당 |
26
+ |------|------|------|
27
+ | {단계명} | {상세 설명} | {시스템/사용자} |
28
+ ````
29
+
30
+ **예시:**
31
+ ````markdown
32
+ ## 프로세스 흐름
33
+
34
+ ### 주문 처리
35
+
36
+ ```mermaid
37
+ flowchart TD
38
+ A[주문 접수] --> B{재고 확인}
39
+ B -->|재고 있음| C[결제 처리]
40
+ B -->|재고 없음| D[품절 안내]
41
+ C --> E{결제 성공?}
42
+ E -->|성공| F[배송 준비]
43
+ E -->|실패| G[결제 실패 안내]
44
+ F --> H[배송 시작]
45
+ H --> I[배송 완료]
46
+ ```
47
+
48
+ **단계 설명:**
49
+ | 단계 | 설명 | 담당 |
50
+ |------|------|------|
51
+ | 주문 접수 | 사용자가 장바구니에서 주문 확정 | 사용자 |
52
+ | 재고 확인 | 주문 상품의 재고 수량 확인 | 시스템 |
53
+ | 결제 처리 | PG사 연동 결제 수행 | 시스템 |
54
+ | 배송 준비 | 포장 및 송장 생성 | 시스템 |
55
+ ````
56
+
57
+ ## 시퀀스 다이어그램
58
+
59
+ 시스템 간 또는 컴포넌트 간 상호작용을 Mermaid 시퀀스 다이어그램으로 표현한다.
60
+
61
+ **양식:**
62
+ ````markdown
63
+ ## 시퀀스 다이어그램
64
+
65
+ ### {상호작용명}
66
+
67
+ ```mermaid
68
+ sequenceDiagram
69
+ participant {Actor1}
70
+ participant {Actor2}
71
+ {Actor1}->>+{Actor2}: {요청}
72
+ {Actor2}-->>-{Actor1}: {응답}
73
+ ```
74
+ ````
75
+
76
+ **예시:**
77
+ ````markdown
78
+ ## 시퀀스 다이어그램
79
+
80
+ ### 사용자 로그인
81
+
82
+ ```mermaid
83
+ sequenceDiagram
84
+ participant Browser
85
+ participant Server
86
+ participant DB
87
+
88
+ Browser->>+Server: POST /api/auth/login (email, password)
89
+ Server->>+DB: SELECT user WHERE email = ?
90
+ DB-->>-Server: user record
91
+ Server->>Server: bcrypt.compare(password, hash)
92
+ alt 인증 성공
93
+ Server-->>Browser: 200 { token }
94
+ else 인증 실패
95
+ Server-->>-Browser: 401 { error }
96
+ end
97
+ ```
98
+ ````
@@ -0,0 +1,146 @@
1
+ # UI 관련 추가 섹션
2
+
3
+ 요구사항에 UI/화면이 포함된 경우, 기본 섹션에 아래 양식을 추가한다.
4
+
5
+ ## 화면 레이아웃
6
+
7
+ 화면의 전체 구조를 기술한다. 필요시 ASCII 레이아웃을 포함한다.
8
+
9
+ **양식:**
10
+ ```markdown
11
+ ## 화면 레이아웃
12
+
13
+ ### {화면명}
14
+
15
+ **구성:**
16
+ - 상단: {설명}
17
+ - 좌측: {설명}
18
+ - 메인: {설명}
19
+ - 하단: {설명}
20
+
21
+ **와이어프레임:**
22
+ (ASCII 또는 텍스트 기반 레이아웃)
23
+ ```
24
+
25
+ **예시:**
26
+ ```markdown
27
+ ## 화면 레이아웃
28
+
29
+ ### 관리자 대시보드
30
+
31
+ **구성:**
32
+ - 상단: 네비게이션 바 (로고, 메뉴, 사용자 정보)
33
+ - 좌측: 사이드 메뉴 (대시보드, 사용자 관리, 설정)
34
+ - 메인: 통계 카드 영역 + 최근 활동 테이블
35
+ - 하단: 없음
36
+
37
+ **와이어프레임:**
38
+ ┌─────────────────────────────────┐
39
+ │ Logo [대시보드] [사용자] [설정] │
40
+ ├────────┬────────────────────────┤
41
+ │ 메뉴 │ [통계1] [통계2] [통계3] │
42
+ │ │ │
43
+ │ 대시보드│ 최근 활동 │
44
+ │ 사용자 │ ┌──┬──────┬─────┬──┐ │
45
+ │ 설정 │ │# │ 제목 │ 상태 │..│ │
46
+ │ │ └──┴──────┴─────┴──┘ │
47
+ └────────┴────────────────────────┘
48
+ ```
49
+
50
+ ## 시트/테이블 컬럼 정의
51
+
52
+ 데이터를 표시하는 시트나 테이블의 컬럼을 정의한다.
53
+
54
+ **양식:**
55
+ ```markdown
56
+ ## 시트 컬럼 정의
57
+
58
+ ### {시트/테이블명}
59
+
60
+ | 컬럼명 | 타입 | 필수 | 정렬 | 설명 |
61
+ |-------|------|------|------|------|
62
+ | {컬럼} | {text/number/date/select/...} | {Y/N} | {Y/N} | {설명} |
63
+ ```
64
+
65
+ **예시:**
66
+ ```markdown
67
+ ## 시트 컬럼 정의
68
+
69
+ ### 사용자 목록
70
+
71
+ | 컬럼명 | 타입 | 필수 | 정렬 | 설명 |
72
+ |-------|------|------|------|------|
73
+ | 이름 | text | Y | Y | 사용자 표시 이름 |
74
+ | 이메일 | text | Y | Y | 로그인 이메일 |
75
+ | 역할 | select | Y | Y | admin / user / viewer |
76
+ | 가입일 | date | Y | Y | 계정 생성일 |
77
+ | 상태 | select | Y | N | active / inactive / suspended |
78
+ | 최근 접속 | date | N | Y | 마지막 로그인 시간 |
79
+ ```
80
+
81
+ ## 필터 폼 정의
82
+
83
+ 시트/테이블의 필터 폼을 별도로 정의한다.
84
+
85
+ **양식:**
86
+ ```markdown
87
+ ## 필터 폼
88
+
89
+ ### {시트/테이블명} 필터
90
+
91
+ | 필터명 | 입력 타입 | 설명 |
92
+ |-------|----------|------|
93
+ | {필터} | {text/select/date-range/...} | {설명} |
94
+ ```
95
+
96
+ **예시:**
97
+ ```markdown
98
+ ## 필터 폼
99
+
100
+ ### 사용자 목록 필터
101
+
102
+ | 필터명 | 입력 타입 | 설명 |
103
+ |-------|----------|------|
104
+ | 이름/이메일 | text | 이름 또는 이메일로 검색 |
105
+ | 역할 | select (다중) | admin / user / viewer |
106
+ | 상태 | select (다중) | active / inactive / suspended |
107
+ | 가입일 | date-range | 시작일 ~ 종료일 |
108
+ ```
109
+
110
+ ## 데이터 편집 폼 정의
111
+
112
+ 데이터 생성/수정을 위한 편집 폼을 정의한다.
113
+
114
+ **양식:**
115
+ ```markdown
116
+ ## 편집 폼
117
+
118
+ ### {폼명}
119
+
120
+ | 필드명 | 입력 타입 | 필수 | 기본값 | 설명 |
121
+ |-------|----------|------|-------|------|
122
+ | {필드} | {text/number/select/date/textarea/...} | {Y/N} | {기본값} | {설명} |
123
+
124
+ **검증 규칙:**
125
+ - {필드}: {규칙}
126
+ ```
127
+
128
+ **예시:**
129
+ ```markdown
130
+ ## 편집 폼
131
+
132
+ ### 사용자 등록/수정
133
+
134
+ | 필드명 | 입력 타입 | 필수 | 기본값 | 설명 |
135
+ |-------|----------|------|-------|------|
136
+ | 이름 | text | Y | | 사용자 표시 이름 |
137
+ | 이메일 | text | Y | | 로그인용 이메일 주소 |
138
+ | 비밀번호 | password | Y (등록 시) | | 8자 이상, 영문+숫자 |
139
+ | 역할 | select | Y | user | admin / user / viewer |
140
+ | 메모 | textarea | N | | 관리자 메모 |
141
+
142
+ **검증 규칙:**
143
+ - 이메일: 이메일 형식, 중복 불가
144
+ - 비밀번호: 최소 8자, 영문+숫자 포함
145
+ - 이름: 최대 100자
146
+ ```
@@ -0,0 +1,116 @@
1
+ ---
2
+ name: sd-test
3
+ description: 테스트 대상에 대해 작업 유형별 TDD 테스트를 독립 수행. 사용자가 특정 모듈/기능의 테스트 작성이나 실행을 요청할 때 사용
4
+ argument-hint: "<테스트 대상 파일 경로> [추가 컨텍스트]"
5
+ ---
6
+
7
+ # sd-test: 독립 TDD 테스트
8
+
9
+ sd-plan의 테스트 전략 결정과 sd-plan-dev의 TDD 사이클 실행을 통합하여, plan 없이도 테스트를 독립 수행한다.
10
+
11
+ ## 1. 인자 파싱
12
+
13
+ `$ARGUMENTS`를 분석하여 테스트 대상을 결정한다.
14
+
15
+ ### 1-1. 파일 경로 + 선택적 추가 컨텍스트
16
+
17
+ `$ARGUMENTS`에서 파일 경로와 추가 컨텍스트를 분리한다:
18
+ - 첫 번째 토큰이 존재하는 파일 경로이면 테스트 대상으로 사용
19
+ - 나머지 텍스트가 있으면 추가 컨텍스트(특정 동작 검증 포인트)로 사용
20
+ - 파일이 존재하지 않으면 AskUserQuestion으로 올바른 경로를 요청한다
21
+ - 예: `src/utils.ts 특정함수 동작확인` → 대상: `src/utils.ts`, 컨텍스트: `특정함수 동작확인`
22
+ - 예: `.claude/skills/sd-spec/SKILL.md` → 대상: 해당 파일, 컨텍스트: 없음
23
+
24
+ ### 1-2. 인자 없음
25
+
26
+ `$ARGUMENTS`가 비어있으면:
27
+ - 현재 대화 맥락에서 테스트 대상을 파악한다
28
+ - 대화에도 대상이 없으면 AskUserQuestion으로 테스트 대상 파일 경로를 요청한다
29
+
30
+ ## 2. 코드베이스 분석
31
+
32
+ 테스트 대상 파일과 관련된 코드베이스를 분석한다. 다음을 병렬로 수행한다:
33
+ - 대상 파일을 Read한다
34
+ - 프로젝트 테스트 환경(vitest) 존재 여부를 확인한다 (`vitest.config.*`, `package.json`의 devDependencies 등)
35
+
36
+ 테스트 작성에 필요한 경우에만 대상 파일의 직접 의존성(import/require)을 추가로 확인한다.
37
+
38
+ ## 3. 작업 유형 분류
39
+
40
+ 대상 파일의 성격에 따라 테스트 전략을 결정한다.
41
+
42
+ | 작업 유형 | 테스트 전략 |
43
+ |----------|-----------|
44
+ | 코드 작업 (로직) | 프로젝트 테스트 환경(vitest) 확인 → 있으면 vitest 테스트 작성 및 실행 |
45
+ | 코드 작업 (로직, 테스트 환경 없음) | subagent 기반 `test.md` 작성 및 실행 |
46
+ | 코드 작업 (비로직, 텍스트/상수/설정 변경 등) | 테스트 생략 → 완료 안내 |
47
+ | 비코드 작업 (LLM용 문서, SKILL.md 등) | subagent 기반 `test.md` 작성 및 실행 |
48
+ | 비코드 작업 (일반 문서, README 등) | 테스트 생략 → 완료 안내 |
49
+
50
+ 테스트 생략인 경우 "테스트가 필요하지 않은 작업 유형입니다."를 출력하고 종료한다.
51
+
52
+ ## 4. 테스트 시나리오 작성 원칙
53
+
54
+ 테스트는 **상태(정적)가 아닌 동작**을 검증한다:
55
+ - 상태 (X): "파일에 특정 텍스트가 적혀있는지 확인" → 정적 검사에 불과
56
+ - 동작 (O): "실행했을 때 기대한 동작이 나타나는지 확인" → 실제 동작 검증
57
+
58
+ 예:
59
+ - LLM용 문서: "SKILL.md에 '테스트 재실행' 문구가 있는지"(X) → "LLM이 SKILL.md를 따라 실행했을 때 실제로 테스트를 재실행하는지"(O)
60
+ - 코드: "함수가 존재하는지"(X) → "함수에 특정 입력을 넣으면 기대 출력이 나오는지"(O)
61
+
62
+ ## 5. RED Phase: 테스트 시나리오 작성 및 실행
63
+
64
+ 4단계의 원칙에 따라 테스트 시나리오를 작성하고 실행한다.
65
+
66
+ ### vitest 테스트인 경우
67
+
68
+ 1. 대상 파일과 추가 컨텍스트를 분석하여 테스트 시나리오를 작성한다
69
+ 2. vitest 테스트 파일을 작성한다
70
+ - 프로젝트의 기존 테스트 파일 패턴을 탐색하여 (`*.test.ts`, `*.spec.ts`, `__tests__/` 등) 동일한 패턴으로 생성한다
71
+ - 기존 패턴이 없으면 `{대상파일명}.test.{확장자}`로 대상 파일과 동일 디렉토리에 생성한다
72
+ 3. Bash로 `vitest run {테스트 파일}` 실행하여 현재 상태를 확인한다
73
+
74
+ ### subagent 테스트인 경우 (LLM용 문서, 테스트 환경 없는 코드 등)
75
+
76
+ 1. 대상 파일과 추가 컨텍스트를 분석하여 테스트 시나리오를 작성한다
77
+ 2. `test.md` 파일을 작성한다
78
+ - 저장 위치: `.tasks/{yyMMddHHmmss}_{topic}/test.md` (Bash `date +%y%m%d%H%M%S`, topic은 대상 파일명 기반 kebab-case)
79
+ - 형식:
80
+ ```markdown
81
+ ## 테스트 1: {테스트 제목}
82
+ **입력:** {subagent에게 실행시킬 지시}
83
+ **기대 결과:** {검증 기준}
84
+ ```
85
+ 3. Agent tool로 subagent를 생성하여 테스트를 실행한다
86
+ - subagent에게 전달할 내용: 대상 파일 경로, test.md 경로, "test.md의 각 테스트를 실행하고 PASS/FAIL을 판정하라"는 지시
87
+
88
+ **이미 모든 테스트가 통과하면 (vitest/subagent 공통):**
89
+ - "모든 테스트가 이미 통과합니다. 수정이 필요하지 않습니다."를 출력하고 종료한다
90
+
91
+ ## 6. GREEN Phase: 대상 수정 및 재테스트
92
+
93
+ 테스트 실패 항목에 대해 대상 파일을 수정한다.
94
+ - 수정 후 테스트를 재실행한다
95
+ - vitest: Bash로 `vitest run {테스트 파일}` 재실행
96
+ - subagent: Agent tool로 subagent 재실행
97
+ - 여전히 실패하면 다시 수정 → 재테스트를 반복한다
98
+ - 최대 3회 반복한다. 3회 시도 후에도 실패하면 실패 원인을 분석하여 사용자에게 보고하고 중단한다
99
+
100
+ ## 7. Refactor Phase
101
+
102
+ GREEN Phase에서 대상 파일을 수정한 경우에만 수행한다.
103
+
104
+ `/simplify 다음 파일만 리뷰: {수정한 파일 목록}` 하여 품질을 개선한다.
105
+ - 완료 후 테스트를 재실행하여 통과를 확인한다
106
+ - 리팩터링으로 테스트가 깨지면 수정 후 재확인한다
107
+
108
+ ## 8. 완료 안내
109
+
110
+ TDD 사이클이 완료되면 다음을 출력한다:
111
+ - 테스트 결과 요약 (통과/수정됨)
112
+ - 수정된 파일 목록
113
+
114
+ ## 9. 커밋
115
+
116
+ 수정된 파일이 있으면 `/sd-commit`을 실행하여 자동 커밋한다.
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: sd-use
3
+ description: 사용자의 요청을 분석하여 적절한 sd-* 스킬을 자동으로 매칭하고 즉시 실행.
4
+ argument-hint: "<요청 내용> | --help"
5
+ ---
6
+
7
+ # sd-use: 자동 스킬 라우터
8
+
9
+ 사용자가 어떤 스킬을 써야할지 모를 때, 요청을 분석하여 적절한 sd-* 계열 스킬을 자동으로 매칭하고 즉시 실행한다.
10
+
11
+ ## 1. 인자 파싱
12
+
13
+ `$ARGUMENTS`에서 사용자 요청 텍스트를 추출한다.
14
+ - `$ARGUMENTS`가 `--help`이면 바로 **5. 도움말 출력** 단계로 이동한다
15
+ - `$ARGUMENTS`가 비어있으면 현재 대화 맥락에서 요청을 파악한다
16
+ - 대화 맥락도 없으면 AskUserQuestion으로 요청 내용을 질문한다
17
+
18
+ ## 2. 스킬 매칭
19
+
20
+ 사용자 요청의 의도를 분석하여 아래 sd-* 스킬 중 가장 적합한 스킬을 판단한다. sd-use 자신은 매칭 대상에서 제외한다.
21
+
22
+ | 스킬 | 설명 | 키워드 힌트 |
23
+ |------|------|------------|
24
+ | sd-debug | 문제(버그, 에러, 비정상 동작)의 근본 원인을 분석하고 해결책을 제시 | 버그, 에러, 오류, 안됨, 무한루프, 크래시, 실패, 문제 |
25
+ | sd-document | 문서 파일(.docx/.xlsx/.pptx/.pdf)을 읽어 분석하거나 새 문서를 생성 | .docx, .xlsx, .pptx, .pdf, 문서 읽기, 문서 생성, 보고서, 엑셀 |
26
+ | sd-email-analyze | 이메일 파일(.eml/.msg)을 분석하여 헤더, 본문, 첨부파일을 추출 | .eml, .msg, 이메일, 메일 분석 |
27
+ | sd-init | 프로젝트 설정 파일을 분석하여 CLAUDE.md를 자동 생성 | CLAUDE.md, 프로젝트 초기화, init |
28
+ | sd-plan | 요구분석서 또는 리뷰 결과를 기반으로 TDD 방식의 구현계획서를 작성 | 구현계획, plan, 계획 수립, spec 기반 |
29
+ | sd-plan-dev | 구현계획서를 기반으로 TDD 방식의 실제 구현을 수행 | 구현 실행, plan-dev, 계획 실행, TDD 실행 |
30
+ | sd-readme | LLM 인덱싱용 README.md 및 docs/ 생성 | README, 문서화, 패키지 문서 |
31
+ | sd-audit | 코드베이스를 여러 관점에서 병렬로 점검하고 승인된 결과를 문서로 저장 | 점검, 감사, 개선점, 문제점 |
32
+ | sd-spec | 사용자 요청과 코드베이스를 분석하여 요구분석서를 작성 | 요구분석, 요구사항, spec, 기능 정의 |
33
+ | sd-check | typecheck, lint(fix), 단위test를 순차 수행하고 에러를 자동 수정 | 품질 검사, check, typecheck, lint, 코드 검사, 자동 수정 |
34
+ | sd-test | 테스트 대상에 대해 작업 유형별 TDD 테스트를 독립 수행 | 테스트, 테스트 작성, 유닛 테스트 |
35
+ | sd-commit | 변경사항을 분석하여 [type] scope 형식의 커밋 메시지를 생성하고 커밋 | 커밋, commit, 변경사항 저장, git commit |
36
+
37
+ 키워드 힌트는 참고용이며, 최종 판단은 요청의 전체 맥락과 의도를 기준으로 한다.
38
+
39
+ ### 매칭 결과 분기
40
+
41
+ **단일 스킬이 명확히 매칭되는 경우:**
42
+ - 바로 3단계(스킬 실행)로 진행한다
43
+
44
+ **복수 스킬이 후보인 경우 (판단 어려움):**
45
+ - 후보 스킬들의 설명을 텍스트로 먼저 출력한다
46
+ - AskUserQuestion으로 후보 목록을 제시하여 사용자에게 선택을 요청한다
47
+ - 사용자가 선택한 스킬로 3단계를 진행한다
48
+
49
+ **매칭 스킬이 없는 경우:**
50
+ - "적합한 스킬을 찾을 수 없습니다."를 출력한 뒤 위 테이블의 스킬 목록을 안내하고 종료한다
51
+
52
+ ## 3. 스킬 안내 출력
53
+
54
+ 스킬을 실행하기 전에 다음 형식으로 안내를 출력한다:
55
+
56
+ ```
57
+ > **`/sd-{매칭된 스킬명}`** — {스킬 설명}
58
+ >
59
+ > 유사 스킬: `/sd-{유사1}` (차이점), `/sd-{유사2}` (차이점)
60
+ >
61
+ > 다음부터는 `/sd-{매칭된 스킬명} {인자}`로 직접 호출할 수 있습니다.
62
+ ```
63
+
64
+ - 유사 스킬은 위 테이블에서 매칭 스킬과 혼동될 수 있는 스킬 1~2개를 선택한다
65
+ - 각 유사 스킬에 매칭 스킬과의 차이점을 간결히 설명한다
66
+ - 유사 스킬이 없으면 해당 줄을 생략한다
67
+
68
+ ## 4. 스킬 실행
69
+
70
+ 사용자 요청 전체를 인자로 하여 Skill tool로 매칭된 스킬을 호출한다.
71
+
72
+ ## 5. 도움말 출력
73
+
74
+ `--help` 인자가 주어졌을 때 아래 내용을 그대로 출력하고 종료한다:
75
+
76
+ ````
77
+ ## sd-* 스킬 프로세스 다이어그램
78
+
79
+ ### 메인 개발 파이프라인
80
+
81
+ ```
82
+ /sd-spec /sd-audit /sd-debug
83
+ (요구분석) (코드점검) (버그분석)
84
+ | | |
85
+ v v v
86
+ spec.md audit.md debug.md
87
+ | | |
88
+ +------------ ---+------------------+
89
+ v
90
+ /sd-plan
91
+ (구현계획 작성)
92
+ |
93
+ v
94
+ plan.md
95
+ |
96
+ v
97
+ /sd-plan-dev
98
+ (TDD 방식 구현 수행)
99
+ |
100
+ v
101
+ 코드 + 테스트
102
+ ```
103
+
104
+ ### 독립 스킬
105
+
106
+ ```
107
+ /sd-check ─────────> typecheck + lint(fix) + test 순차 실행 + 자동 수정
108
+
109
+ /sd-test ──────────> 테스트 작성 + 실행 (RED > GREEN > Refactor)
110
+
111
+ /sd-readme ────────> README.md + docs/ 생성
112
+
113
+ /sd-init ──────────> CLAUDE.md 자동 생성
114
+
115
+ /sd-document ──────> .docx/.xlsx/.pptx/.pdf 읽기/쓰기
116
+
117
+ /sd-commit ────────> 변경사항 분석 + [type] scope 커밋 메시지 생성 + 커밋
118
+
119
+ /sd-email-analyze ─> .eml/.msg 분석 > 첨부파일 추출
120
+ |
121
+ v
122
+ /sd-document (문서 첨부파일)
123
+ ```
124
+
125
+ ### 라우터
126
+
127
+ ```
128
+ /sd-use ──> 사용자 자연어 요청을 분석하여 위 모든 sd-* 스킬로 자동 매칭
129
+ ```
130
+
131
+ ### 스킬 목록
132
+
133
+ | 스킬 | 설명 | 사용 예시 |
134
+ |------|------|----------|
135
+ | `/sd-spec` | 요구분석서 작성 | `/sd-spec 로그인 기능 추가` |
136
+ | `/sd-audit` | 병렬 코드 점검 | `/sd-audit packages/core-common` |
137
+ | `/sd-debug` | 버그 원인 분석 | `/sd-debug 로그인 시 500 에러 발생` |
138
+ | `/sd-plan` | TDD 구현계획 작성 | `/sd-plan .tasks/.../spec.md` |
139
+ | `/sd-plan-dev` | 구현계획 기반 구현 | `/sd-plan-dev .tasks/.../plan.md` |
140
+ | `/sd-check` | 코드 품질 검사 + 자동 수정 | `/sd-check packages/core-common` |
141
+ | `/sd-test` | 독립 TDD 테스트 | `/sd-test packages/core-common/src/utils.ts` |
142
+ | `/sd-readme` | README.md 생성 | `/sd-readme packages/core-common` |
143
+ | `/sd-init` | CLAUDE.md 생성 | `/sd-init` |
144
+ | `/sd-commit` | 커밋 메시지 생성 + 커밋 | `/sd-commit` |
145
+ | `/sd-document` | 문서 읽기/쓰기 | `/sd-document report.xlsx` |
146
+ | `/sd-email-analyze` | 이메일 분석 | `/sd-email-analyze mail.eml` |
147
+ | `/sd-use` | 자동 스킬 매칭 | `/sd-use 로그인 버그 좀 봐줘` |
148
+ | `/sd-use --help` | 이 가이드 표시 | `/sd-use --help` |
149
+ ````
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-claude",
3
- "version": "13.0.85",
3
+ "version": "13.0.86",
4
4
  "description": "Simplysm Claude Code asset installer",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",
@@ -1,7 +0,0 @@
1
- # @simplysm Package Documentation
2
-
3
- When you need detailed API information, usage examples, or component props for `@simplysm/*` packages,
4
- read the corresponding package's README.md.
5
-
6
- 1. Read the package's README.md: `packages/{package-name}/README.md`
7
- 2. If the README.md contains a `docs/` index (Documentation table), read only the relevant category's `docs/*.md` files as needed