@simplysm/sd-claude 14.0.63 → 14.0.64
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.
- package/claude/references/sd-simplysm-v14/sd-claude/assets.md +3 -2
- package/claude/rules/sd-ask.md +242 -0
- package/claude/rules/sd-clarify.md +24 -132
- package/claude/rules/sd-claude-rules.md +5 -3
- package/claude/rules/sd-response-format.md +3 -1
- package/claude/skills/sd-issue/SKILL.md +6 -2
- package/claude/skills/sd-sit/SKILL.md +141 -0
- package/claude/skills/sd-sit-plan/SKILL.md +159 -0
- package/claude/skills/sd-subdomain/SKILL.md +439 -0
- package/claude/skills/sd-use/SKILL.md +0 -1
- package/package.json +1 -1
- package/claude/skills/sd-deliverable/SKILL.md +0 -320
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sd-deliverable
|
|
3
|
-
description: 코드 분석 기반으로 사용자 매뉴얼(md)과 SIT 문서(md)를 생성·업데이트하는 스킬. "매뉴얼 만들어줘", "SIT 문서 만들어줘", "산출물 생성", "매뉴얼 업데이트" 등을 요청할 때 사용한다.
|
|
4
|
-
effort: low
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# sd-deliverable: 매뉴얼 & SIT 생성
|
|
8
|
-
|
|
9
|
-
코드베이스를 분석하여 **사용자 매뉴얼**과 **SIT(시스템 통합 테스트) 문서**를 md 파일로 생성한다.
|
|
10
|
-
기존 문서가 있으면 코드 변경 사항을 반영하여 증분 업데이트한다.
|
|
11
|
-
|
|
12
|
-
## 산출물 구조
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
{출력 디렉토리}/
|
|
16
|
-
├── 00-목차.md
|
|
17
|
-
├── 01-개요.md
|
|
18
|
-
├── 02-{기능1}.md
|
|
19
|
-
├── 03-{기능2}.md
|
|
20
|
-
├── ...
|
|
21
|
-
└── SIT.md
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
- 매뉴얼은 기능 단위로 파일을 분리한다. 목차 파일(`00-목차.md`)에서 각 파일로 링크한다.
|
|
25
|
-
- SIT는 단일 파일(`SIT.md`)로 생성한다.
|
|
26
|
-
|
|
27
|
-
## Step 1: 입력 확인
|
|
28
|
-
|
|
29
|
-
### 인자 해석
|
|
30
|
-
|
|
31
|
-
```
|
|
32
|
-
/sd-deliverable {대상 경로} [--ref {참조 문서 경로}] [--out {출력 디렉토리}]
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
| 인자 | 필수 | 설명 |
|
|
36
|
-
|------|:---:|------|
|
|
37
|
-
| 대상 경로 | O | 분석할 코드 경로 (패키지 또는 모듈 디렉토리) |
|
|
38
|
-
| `--ref` | X | 참조할 스펙/문서 경로 (`.tasks/` 디렉토리 등). 비즈니스 용어와 범위 고정에 사용 |
|
|
39
|
-
| `--out` | X | 출력 디렉토리. 미지정 시 `.docs/{yyMMddHHmmss}_{topic}/` |
|
|
40
|
-
|
|
41
|
-
- `{yyMMddHHmmss}`: **반드시 Bash 도구로 `date +%y%m%d%H%M%S`를 실행하여 얻는다.**
|
|
42
|
-
- `{topic}`: 대상 경로에서 추출한 모듈명을 영어 kebab-case로 (예: `scheduling`, `inventory`)
|
|
43
|
-
- 대상 경로가 없으면 AskUserQuestion으로 질문한다.
|
|
44
|
-
|
|
45
|
-
### 기존 문서 탐지
|
|
46
|
-
|
|
47
|
-
출력 디렉토리에 `00-목차.md` 또는 `SIT.md`가 이미 존재하면 **업데이트 모드**로 진입한다.
|
|
48
|
-
사용자가 `--out`으로 기존 문서가 있는 디렉토리를 지정한 경우도 업데이트 모드이다.
|
|
49
|
-
|
|
50
|
-
## Step 2: 코드 분석
|
|
51
|
-
|
|
52
|
-
대상 경로의 코드를 **계층적으로** 분석한다. 이 단계에서 수집한 정보가 매뉴얼과 SIT의 원본 데이터가 된다.
|
|
53
|
-
|
|
54
|
-
### 분석 순서
|
|
55
|
-
|
|
56
|
-
#### 1단계: 구조 파악
|
|
57
|
-
|
|
58
|
-
| 대상 | 목적 |
|
|
59
|
-
|------|------|
|
|
60
|
-
| 라우트/메뉴 정의 | 화면 목록과 계층 구조 파악 |
|
|
61
|
-
| 패키지/모듈 구조 | 기능 그룹 파악 |
|
|
62
|
-
|
|
63
|
-
- 이 프로젝트: `packages/client-common/src/commons/app-structure-items.ts`에서 메뉴 구조, `packages/client-admin/src/routes.ts`에서 라우트 확인
|
|
64
|
-
|
|
65
|
-
#### 2단계: 데이터 모델
|
|
66
|
-
|
|
67
|
-
| 대상 | 목적 |
|
|
68
|
-
|------|------|
|
|
69
|
-
| DB 엔티티 정의 | 필드명, 타입, 관계, 제약조건 파악 |
|
|
70
|
-
| 관계(FK, 1:N, N:M) | 드롭다운 연동, 종속 관계 파악 |
|
|
71
|
-
|
|
72
|
-
- 이 프로젝트: `packages/db-main/src/models/` 하위의 엔티티 파일
|
|
73
|
-
|
|
74
|
-
#### 3단계: 비즈니스 로직
|
|
75
|
-
|
|
76
|
-
| 대상 | 목적 |
|
|
77
|
-
|------|------|
|
|
78
|
-
| 상수/열거형 | 드롭다운 선택지, 상태값, 고정값 |
|
|
79
|
-
| 유틸/검증 함수 | 유효성 검증 규칙, 계산 로직 |
|
|
80
|
-
| 서비스/API | 데이터 흐름, 처리 순서 |
|
|
81
|
-
|
|
82
|
-
- 이 프로젝트: `packages/common/src/` 하위의 상수·유틸 파일
|
|
83
|
-
|
|
84
|
-
#### 4단계: UI 상세
|
|
85
|
-
|
|
86
|
-
| 대상 | 목적 |
|
|
87
|
-
|------|------|
|
|
88
|
-
| 페이지/컴포넌트 | 화면 레이아웃, 입력 필드, 버튼, 그리드 컬럼 |
|
|
89
|
-
| 모달/다이얼로그 | 보조 화면 흐름 |
|
|
90
|
-
| 드롭다운 연동 | 선택에 따른 데이터 필터링 |
|
|
91
|
-
|
|
92
|
-
분석 대상 파일이 20개 이상이면 Agent 도구로 병렬 분석한다.
|
|
93
|
-
|
|
94
|
-
### `--ref` 참조 문서 활용
|
|
95
|
-
|
|
96
|
-
참조 문서가 지정된 경우:
|
|
97
|
-
|
|
98
|
-
1. 참조 문서를 먼저 읽어 비즈니스 용어 사전과 기능 범위를 파악한다.
|
|
99
|
-
2. 코드 분석 시 참조 문서의 용어를 우선 사용한다.
|
|
100
|
-
3. 코드에는 있지만 참조 문서에 없는 기능은 분석 결과에 포함하되, 참조 문서 범위 외임을 표시한다.
|
|
101
|
-
|
|
102
|
-
### 분석 결과 출력
|
|
103
|
-
|
|
104
|
-
코드 분석이 완료되면, 발견한 **기능 목록**을 사용자에게 테이블로 보여준다:
|
|
105
|
-
|
|
106
|
-
```markdown
|
|
107
|
-
## 분석 결과: {모듈명}
|
|
108
|
-
|
|
109
|
-
| # | 기능 | 화면/메뉴 | 핵심 동작 |
|
|
110
|
-
|---|------|----------|----------|
|
|
111
|
-
| 1 | BOA 관리 | BOA | 파일 업로드, 변경 감지, 반영 판정 |
|
|
112
|
-
| 2 | RevisePO | RevisePO 작성 | PO 변경요청 (5개 유형) |
|
|
113
|
-
| ...| | | |
|
|
114
|
-
|
|
115
|
-
이 기능 목록을 기반으로 매뉴얼과 SIT를 생성합니다.
|
|
116
|
-
범위를 조정하려면 말씀해주세요.
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
사용자가 범위 조정 없이 진행하면 Step 3 또는 Step 4로 넘어간다.
|
|
120
|
-
|
|
121
|
-
## Step 3: 신규 생성
|
|
122
|
-
|
|
123
|
-
기존 문서가 없을 때 매뉴얼과 SIT를 새로 생성한다.
|
|
124
|
-
|
|
125
|
-
### 3-1: 매뉴얼 생성
|
|
126
|
-
|
|
127
|
-
#### 파일 구조 결정
|
|
128
|
-
|
|
129
|
-
- 기능 1~3개: `00-목차.md` + 기능별 1개 파일
|
|
130
|
-
- 기능 4개 이상: `00-목차.md` + `01-개요.md` + 기능별 파일
|
|
131
|
-
|
|
132
|
-
#### 각 기능 파일의 구조
|
|
133
|
-
|
|
134
|
-
```markdown
|
|
135
|
-
# {기능명}
|
|
136
|
-
|
|
137
|
-
## 개요
|
|
138
|
-
{기능의 목적과 위치 (메뉴 경로)}
|
|
139
|
-
|
|
140
|
-
## 화면 구성
|
|
141
|
-
{화면 레이아웃, 필터, 그리드 컬럼 등}
|
|
142
|
-
|
|
143
|
-
## 주요 기능
|
|
144
|
-
{기능별 상세 설명 — 입력, 동작, 결과}
|
|
145
|
-
|
|
146
|
-
## 유효성 검증
|
|
147
|
-
{입력 제약, 상태 제약 등 — 코드의 검증 로직에서 도출}
|
|
148
|
-
|
|
149
|
-
## 상태 흐름
|
|
150
|
-
{상태 전이가 있는 경우 mermaid stateDiagram으로 표현}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
이 구조는 가이드라인이다. 기능의 성격에 따라 섹션을 추가하거나 생략한다:
|
|
154
|
-
- 출력/다운로드 기능이 있으면 `## 출력` 섹션 추가
|
|
155
|
-
- 드롭다운 연동이 복잡하면 mermaid flowchart로 연동 관계 표현
|
|
156
|
-
- 분기가 3개 이상이면 mermaid 다이어그램으로 overview 제시 후 상세 설명
|
|
157
|
-
|
|
158
|
-
#### 작성 원칙
|
|
159
|
-
|
|
160
|
-
- **코드에서 확인한 사실만 작성한다.** 코드에 없는 기능이나 동작을 추측하지 않는다.
|
|
161
|
-
- **사용자 관점으로 작성한다.** 코드 내부 구현(클래스명, 함수명, 변수명)을 노출하지 않는다. 단, DB 필드명은 데이터 식별을 위해 괄호 안에 표기할 수 있다.
|
|
162
|
-
- **표(table)를 적극 활용한다.** 컬럼 설명, 필터 항목, 선택지 목록 등은 표로 정리한다.
|
|
163
|
-
- **mermaid를 활용한다.** 상태 흐름, 드롭다운 연동, 복잡한 분기 로직에 사용한다. 프로세스 설명에서 반복 혹은 분기가 3건 이상이면 반드시 mermaid 다이어그램을 먼저 제시한다.
|
|
164
|
-
|
|
165
|
-
### 3-2: SIT 생성
|
|
166
|
-
|
|
167
|
-
#### SIT.md 구조
|
|
168
|
-
|
|
169
|
-
```markdown
|
|
170
|
-
# SIT: {모듈명}
|
|
171
|
-
|
|
172
|
-
> 생성일: {YYYY-MM-DD}
|
|
173
|
-
> 대상: {대상 경로}
|
|
174
|
-
|
|
175
|
-
## 범례
|
|
176
|
-
|
|
177
|
-
| 기호 | 의미 |
|
|
178
|
-
|------|------|
|
|
179
|
-
| [x] | Pass |
|
|
180
|
-
| [ ] | 미실행 |
|
|
181
|
-
| [~] | 변경으로 인해 재테스트 필요 |
|
|
182
|
-
| ~~취소선~~ | 삭제된 기능 (기록 보존) |
|
|
183
|
-
|
|
184
|
-
## 1. {기능명}
|
|
185
|
-
|
|
186
|
-
| No | 시나리오 | 사전 조건 | 테스트 절차 | 기대 결과 | Pass | 비고 |
|
|
187
|
-
|----|---------|----------|-----------|----------|------|------|
|
|
188
|
-
| 1.1 | {시나리오} | {사전 조건} | {절차} | {기대 결과} | [ ] | |
|
|
189
|
-
| 1.2 | {시나리오} | {사전 조건} | {절차} | {기대 결과} | [ ] | |
|
|
190
|
-
|
|
191
|
-
## 2. {기능명}
|
|
192
|
-
...
|
|
193
|
-
|
|
194
|
-
## E2E. 통합 시나리오
|
|
195
|
-
|
|
196
|
-
| No | 시나리오 | 사전 조건 | 테스트 절차 | 기대 결과 | Pass | 비고 |
|
|
197
|
-
|----|---------|----------|-----------|----------|------|------|
|
|
198
|
-
| E1 | {E2E 시나리오} | {사전 조건} | {절차} | {기대 결과} | [ ] | |
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
#### 테스트 케이스 번호 규칙
|
|
202
|
-
|
|
203
|
-
- 기능별: `{기능번호}.{순번}` (예: 1.1, 1.2, 2.1)
|
|
204
|
-
- E2E: `E{순번}` (예: E1, E2)
|
|
205
|
-
- 번호는 증분 업데이트 시에도 기존 번호를 유지한다. 삭제된 번호는 재사용하지 않는다.
|
|
206
|
-
|
|
207
|
-
#### 테스트 케이스 도출 기준
|
|
208
|
-
|
|
209
|
-
코드에서 확인된 다음 항목을 테스트 케이스로 변환한다:
|
|
210
|
-
|
|
211
|
-
| 코드 요소 | 테스트 유형 |
|
|
212
|
-
|-----------|-----------|
|
|
213
|
-
| CRUD 동작 | 생성/조회/수정/삭제 정상 동작 |
|
|
214
|
-
| 상태 전이 (DRAFT→COMPLETED 등) | 전이 성공 + 전이 불가 케이스 |
|
|
215
|
-
| 유효성 검증 함수 | 유효한 입력 + 무효한 입력 |
|
|
216
|
-
| 드롭다운 연동 (FK 관계) | 상위 선택 → 하위 필터링 |
|
|
217
|
-
| 자동 계산 필드 | 입력 → 계산 결과 확인 |
|
|
218
|
-
| 파일 업로드/다운로드 | 정상 파일 + 형식 오류 |
|
|
219
|
-
| 권한 분기 (use/edit) | 권한별 접근 가능/불가 |
|
|
220
|
-
|
|
221
|
-
#### 작성 원칙
|
|
222
|
-
|
|
223
|
-
- **Happy path + Negative 균형**: 각 기능에 정상 케이스와 실패/에러 케이스를 모두 포함한다.
|
|
224
|
-
- **사용자 앞에서 실행 가능**: 절차는 UI 조작 단위로 작성한다 (클릭, 입력, 선택 등). 코드 실행이나 DB 직접 조회를 절차에 포함하지 않는다.
|
|
225
|
-
- **기대 결과는 관찰 가능**: 화면에서 확인할 수 있는 결과만 기재한다 (메시지, 상태 변경, 데이터 표시 등).
|
|
226
|
-
- **E2E 시나리오**: 여러 기능을 횡단하는 흐름을 최소 1건 이상 포함한다.
|
|
227
|
-
|
|
228
|
-
### 3-3: 목차 생성
|
|
229
|
-
|
|
230
|
-
모든 파일이 생성된 후 `00-목차.md`를 작성한다.
|
|
231
|
-
|
|
232
|
-
```markdown
|
|
233
|
-
# {모듈명} 매뉴얼
|
|
234
|
-
|
|
235
|
-
## 목차
|
|
236
|
-
|
|
237
|
-
| 문서 | 설명 |
|
|
238
|
-
|------|------|
|
|
239
|
-
| [01-개요](01-개요.md) | ... |
|
|
240
|
-
| [02-{기능}](02-{기능}.md) | ... |
|
|
241
|
-
| [SIT](SIT.md) | 시스템 통합 테스트 |
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
## Step 4: 증분 업데이트
|
|
245
|
-
|
|
246
|
-
기존 문서가 있을 때, 코드 변경 사항을 반영하여 문서를 업데이트한다.
|
|
247
|
-
|
|
248
|
-
### 4-1: 기존 문서 읽기
|
|
249
|
-
|
|
250
|
-
출력 디렉토리의 모든 md 파일을 읽어 현재 문서 상태를 파악한다:
|
|
251
|
-
- 매뉴얼: 각 파일의 기능 범위와 내용
|
|
252
|
-
- SIT: 각 테스트 항목의 Pass/Fail 상태, 비고 내용
|
|
253
|
-
|
|
254
|
-
### 4-2: 변경 사항 식별
|
|
255
|
-
|
|
256
|
-
Step 2의 코드 분석 결과와 기존 문서를 비교하여 변경 사항을 분류한다:
|
|
257
|
-
|
|
258
|
-
| 분류 | 조건 | 매뉴얼 처리 | SIT 처리 |
|
|
259
|
-
|------|------|-----------|---------|
|
|
260
|
-
| **변경 없음** | 코드와 문서가 일치 | 그대로 유지 | Pass/Fail/비고 보존 |
|
|
261
|
-
| **기능 변경** | 코드가 변경됨 (로직, 필드, 검증 등) | 해당 섹션 업데이트 | 해당 항목 `[~]`로 변경 (재테스트 필요) |
|
|
262
|
-
| **기능 추가** | 코드에 있지만 문서에 없음 | 새 섹션/파일 추가 | 새 테스트 항목 추가 `[ ]` |
|
|
263
|
-
| **기능 삭제** | 문서에 있지만 코드에 없음 | 해당 섹션 제거 | 해당 항목 ~~취소선~~ 처리 (기록 보존) |
|
|
264
|
-
|
|
265
|
-
### 4-3: SIT 업데이트 규칙
|
|
266
|
-
|
|
267
|
-
- **Pass 보존**: 변경되지 않은 항목의 `[x]`(Pass)와 비고는 절대 변경하지 않는다.
|
|
268
|
-
- **재테스트 표시**: 변경된 기능의 항목은 `[x]` → `[~]`로 변경한다. `[ ]`(미실행)는 그대로 유지한다.
|
|
269
|
-
- **삭제 기록**: 삭제된 기능의 항목은 행 전체를 취소선으로 감싼다. 번호는 재사용하지 않는다.
|
|
270
|
-
- **추가 항목**: 기존 번호 뒤에 새 번호로 추가한다. (예: 1.5 다음에 1.6, 1.7)
|
|
271
|
-
- **비고 보존**: 모든 항목의 비고 컬럼 내용은 항상 보존한다.
|
|
272
|
-
|
|
273
|
-
### 4-4: 변경 요약 출력
|
|
274
|
-
|
|
275
|
-
업데이트 완료 후, 변경 내역을 사용자에게 요약한다:
|
|
276
|
-
|
|
277
|
-
```markdown
|
|
278
|
-
## 업데이트 요약
|
|
279
|
-
|
|
280
|
-
| 유형 | 건수 | 상세 |
|
|
281
|
-
|------|------|------|
|
|
282
|
-
| 매뉴얼 변경 | N건 | {변경된 섹션 목록} |
|
|
283
|
-
| 매뉴얼 추가 | N건 | {추가된 파일/섹션} |
|
|
284
|
-
| 매뉴얼 삭제 | N건 | {삭제된 파일/섹션} |
|
|
285
|
-
| SIT 재테스트 | N건 | {[~]로 변경된 항목} |
|
|
286
|
-
| SIT 추가 | N건 | {새로 추가된 항목} |
|
|
287
|
-
| SIT 삭제 | N건 | {취소선 처리된 항목} |
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
## Step 5: 커버리지 검증
|
|
291
|
-
|
|
292
|
-
매뉴얼과 SIT 간의 기능 커버리지를 검증한다.
|
|
293
|
-
|
|
294
|
-
### 검증 항목
|
|
295
|
-
|
|
296
|
-
1. **매뉴얼 → SIT**: 매뉴얼에 기술된 각 기능에 대응하는 SIT 테스트가 1건 이상 존재하는가?
|
|
297
|
-
2. **SIT → 매뉴얼**: SIT에 있는 테스트가 매뉴얼에 기술되지 않은 기능을 참조하지 않는가?
|
|
298
|
-
|
|
299
|
-
### 누락 발견 시
|
|
300
|
-
|
|
301
|
-
누락된 항목을 보완하고 재검증한다. 보완 시:
|
|
302
|
-
- 매뉴얼에 기능이 있고 SIT에 테스트가 없으면 → SIT에 테스트 추가
|
|
303
|
-
- SIT에 테스트가 있고 매뉴얼에 기능이 없으면 → 매뉴얼에 해당 기능 설명 추가
|
|
304
|
-
|
|
305
|
-
검증 결과를 사용자에게 알리지 않는다 — 누락이 없으면 완료 메시지로 직행한다. 보완이 필요했으면 보완한 내용만 간략히 알린다.
|
|
306
|
-
|
|
307
|
-
## Step 6: 완료
|
|
308
|
-
|
|
309
|
-
생성/업데이트된 파일 경로 목록을 출력한다.
|
|
310
|
-
|
|
311
|
-
```markdown
|
|
312
|
-
## 완료
|
|
313
|
-
|
|
314
|
-
{출력 디렉토리}/
|
|
315
|
-
├── 00-목차.md
|
|
316
|
-
├── 01-개요.md
|
|
317
|
-
├── 02-BOA-관리.md
|
|
318
|
-
├── 03-RevisePO-작성.md
|
|
319
|
-
├── SIT.md
|
|
320
|
-
```
|