@simplysm/sd-claude 13.0.90 → 13.0.91

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.
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: sd-plan
3
- description: 요구분석서 또는 점검 결과를 기반으로 TDD 방식의 구현계획서를 작성. 사용자가 구현계획/plan 작성을 요청할 때 사용
4
- argument-hint: "<spec/audit 파일 경로 [R번호]> 또는 <간단한 요구사항>"
3
+ description: 입력 문서(spec/audit/debug 등)를 기반으로 TDD 방식의 구현계획서를 작성. 사용자가 구현계획/plan 작성을 요청할 때 사용
4
+ argument-hint: "<입력 문서 경로 [R번호]> 또는 <간단한 요구사항>"
5
5
  ---
6
6
 
7
7
  # sd-plan: 구현계획서 작성
8
8
 
9
- 요구분석서(spec) 또는 점검 결과(audit)를 기반으로 TDD 방식의 세부 구현 계획을 수립한다.
9
+ 입력 문서(spec, audit, debug )를 기반으로 TDD 방식의 세부 구현 계획을 수립한다.
10
10
 
11
11
  ## 1. 인자 파싱
12
12
 
13
13
  `$ARGUMENTS`를 분석하여 호출 방식을 결정한다.
14
14
 
15
- ### 1-1. spec/audit 파일 경로 (+ 선택적 R번호)
15
+ ### 1-1. 입력 문서 파일 경로 (+ 선택적 R번호)
16
16
 
17
17
  `$ARGUMENTS`에 `.md`로 끝나는 경로가 포함된 경우:
18
18
 
@@ -26,15 +26,30 @@ argument-hint: "<spec/audit 파일 경로 [R번호]> 또는 <간단한 요구사
26
26
 
27
27
  `$ARGUMENTS`가 비어있으면:
28
28
 
29
- - 현재 대화 맥락에서 spec/audit 내용을 파악한다
30
- - 대화에도 spec/audit가 없으면 AskUserQuestion으로 spec 또는 review 파일 경로, 또는 요구사항을 요청한다
29
+ - 현재 대화 맥락에서 입력 문서 내용을 파악한다
30
+ - 대화에도 입력 문서가 없으면 AskUserQuestion으로 입력 문서 경로 또는 요구사항을 요청한다
31
31
 
32
32
  ### 1-3. 간단한 요구사항 텍스트
33
33
 
34
34
  위 조건에 해당하지 않으면 (`.md` 경로가 아닌 일반 텍스트):
35
35
 
36
- - spec/audit 없이 해당 텍스트를 요구사항으로 직접 사용한다
37
- - 이 경우 spec/audit 참조 없이 바로 plan을 수립한다
36
+ - 입력 문서 없이 해당 텍스트를 요구사항으로 직접 사용한다
37
+ - 이 경우 입력 문서 참조 없이 바로 plan을 수립한다
38
+
39
+ ## 참조 문서 수정 (전 단계 공통)
40
+
41
+ 2~5단계 진행 중 참조 spec/audit 문서에 누락, 오류, 모호한 점을 발견하면 다음 프로세스를 따른다:
42
+
43
+ 1. 발견된 이슈와 제안하는 수정 내용을 텍스트로 설명한다
44
+ 2. AskUserQuestion으로 수정 승인을 요청한다
45
+ 3. 승인 시: spec/audit 파일을 Edit으로 최소 수정하고, 현재 단계를 계속한다
46
+ 4. 거부 시: 현재 문서 내용 그대로 작업을 계속한다
47
+ 5. 수정 범위가 과도하면 (새 R항목 추가, 요구사항 전면 재정의 등): `/sd-spec` 재실행을 안내하고 현재 plan 작성을 중단한다
48
+
49
+ **최소 수정 원칙:**
50
+ - 발견된 이슈에 직접 관련된 부분만 수정한다
51
+ - 기존 문서의 구조와 다른 항목은 유지한다
52
+ - 한 번에 하나의 이슈만 처리한다 (여러 이슈 발견 시 순차 처리)
38
53
 
39
54
  ## 2. 요구사항 분석 및 작업 계획
40
55
 
@@ -115,9 +130,9 @@ argument-hint: "<spec/audit 파일 경로 [R번호]> 또는 <간단한 요구사
115
130
 
116
131
  **참조 문서 표기 규칙:**
117
132
 
118
- - spec/audit 파일 경로로 호출된 경우: `**참조 문서:** {경로} {R번호}` 형식으로 상단에 명시
119
- - 현재 대화의 spec/audit인 경우: `**참조 문서:** 현재 대화의 spec/audit` 으로 명시
120
- - spec/audit 없이 호출된 경우: `**참조 문서:**` 줄 생략
133
+ - 입력 문서 파일 경로로 호출된 경우: `**참조 문서:** {경로} {R번호}` 형식으로 상단에 명시
134
+ - 현재 대화의 입력 문서인 경우: `**참조 문서:** 현재 대화의 입력 문서` 명시
135
+ - 입력 문서 없이 호출된 경우: `**참조 문서:**` 줄 생략
121
136
 
122
137
  **다중 작업인 경우:**
123
138
 
@@ -140,10 +155,10 @@ argument-hint: "<spec/audit 파일 경로 [R번호]> 또는 <간단한 요구사
140
155
 
141
156
  ## 6. 파일 저장
142
157
 
143
- - spec/audit 파일 기반 호출: 해당 문서와 동일 디렉토리에 저장. 전체면 `plan.md`, 특정 R항목이면 `{R번호}_plan.md` (예:
144
- `R2_plan.md`). spec이 서브디렉토리(`{R번호}/spec.md`)에 있는 경우에도 동일 규칙 적용 (해당 서브디렉토리에 저장)
145
- - 현재 대화의 spec/audit 기반이고 파일 경로가 있는 경우: 해당 문서와 동일 디렉토리에 저장. 파일명 규칙 동일
146
- - spec/audit 없이 호출된 경우: 새 디렉토리 `.tasks/{yyMMddHHmmss}_{topic}/plan.md` 생성 (`yyMMddHHmmss`는 Bash
158
+ - 입력 문서 파일 기반 호출: 해당 문서와 동일 디렉토리에 저장. 전체면 `plan.md`, 특정 R항목이면 `{R번호}_plan.md` (예:
159
+ `R2_plan.md`). 입력 문서가 서브디렉토리(`{R번호}/spec.md`)에 있는 경우에도 동일 규칙 적용 (해당 서브디렉토리에 저장)
160
+ - 현재 대화의 입력 문서 기반이고 파일 경로가 있는 경우: 해당 문서와 동일 디렉토리에 저장. 파일명 규칙 동일
161
+ - 입력 문서 없이 호출된 경우: 새 디렉토리 `.tasks/{yyMMddHHmmss}_{topic}/plan.md` 생성 (`yyMMddHHmmss`는 Bash
147
162
  `date +%y%m%d%H%M%S`, `{topic}`은 영문 kebab-case)
148
163
 
149
164
  ## 7. 완료 안내
@@ -30,6 +30,25 @@ argument-hint: "<plan 파일 경로> [--worktree]"
30
30
  - 기본값: 비활성 (현행 동작)
31
31
  - 활성 시: 2단계에서 worktree 격리 실행 전략을 적용한다
32
32
 
33
+ ## 참조 문서 수정 (전 단계 공통)
34
+
35
+ 2~5단계 진행 중 참조 plan 또는 spec 문서에 누락, 오류, 실제 코드와의 불일치를 발견하면 다음 프로세스를 따른다:
36
+
37
+ 1. 발견된 이슈와 제안하는 수정 내용을 텍스트로 설명한다
38
+ 2. AskUserQuestion으로 수정 승인을 요청한다
39
+ 3. 승인 시: plan.md (또는 spec.md)를 Edit으로 최소 수정하고, 현재 단계를 계속한다
40
+ 4. 거부 시: 현재 문서 내용 그대로 작업을 계속한다
41
+ 5. 수정 범위가 과도하면: `/sd-plan` (또는 `/sd-spec`) 재실행을 안내하고 현재 구현을 중단한다
42
+
43
+ **최소 수정 원칙:**
44
+ - 발견된 이슈에 직접 관련된 부분만 수정한다
45
+ - 기존 문서의 구조와 다른 항목은 유지한다
46
+ - 한 번에 하나의 이슈만 처리한다 (여러 이슈 발견 시 순차 처리)
47
+
48
+ **worktree subagent 제약:**
49
+ - worktree subagent 내에서는 상위 문서(plan/spec)를 직접 수정하지 않는다
50
+ - subagent는 발견한 이슈를 반환 결과에 포함하고, 메인 에이전트가 이 섹션의 프로세스에 따라 수정을 처리한다
51
+
33
52
  ## 2. 작업 파악 및 실행 전략
34
53
 
35
54
  plan에서 작업 목록을 파악하고 스케줄링을 결정한다.
@@ -91,7 +110,7 @@ plan의 GREEN Phase에 명시된 구현 계획에 따라 최소한의 구현을
91
110
 
92
111
  ### Refactor Phase
93
112
 
94
- `/simplify 다음 파일만 리뷰: {수정한 파일 목록}` 하여 품질을 개선한다.
113
+ `/simplify 다음 파일만 리뷰: {수정한 파일 목록}` 하여 품질을 개선한다. simplify 완료 후 반드시 이 스킬의 다음 단계로 계속 진행한다.
95
114
  - 완료 후 테스트를 재실행하여 통과를 확인한다
96
115
  - 리팩터링으로 테스트가 깨지면 수정 후 재확인한다
97
116
 
@@ -129,8 +148,7 @@ worktree subagent 완료 후 반환된 branch를 순차적으로 merge한다.
129
148
  - RED Phase의 테스트 시나리오가 모두 작성·실행되었는지
130
149
  - GREEN Phase의 구현 항목이 모두 구현되었는지
131
150
  3. 누락 항목이 있으면 (최대 2회 반복):
132
- - 해당 항목만 추가 구현한다 (전체 TDD 사이클 불필요)
133
- - `/sd-commit`으로 commit한다
151
+ - 누락 항목에 대해 3단계 TDD 사이클(RED → GREEN → Refactor → Commit)을 수행한다
134
152
  - 1번으로 돌아가 다시 대조한다
135
153
  4. 2회 반복 후에도 누락이 남아있으면 남은 항목을 사용자에게 보고한다
136
154
  5. 모든 항목이 충족되면 6단계로 진행한다
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: sd-review
3
+ description: spec/plan 문서와 구현을 비교하여 완성도를 검증. 사용자가 구현 결과의 문서 대비 충족 여부 확인을 요청할 때 사용
4
+ argument-hint: "<파일/디렉토리 경로...>"
5
+ ---
6
+
7
+ # sd-review: 구현 완성도 검증
8
+
9
+ spec/plan 문서와 실제 구현을 비교하여 항목별 충족 여부를 검증한다.
10
+
11
+ ## 1. 인자 파싱
12
+
13
+ `$ARGUMENTS`를 공백으로 분리하여 각 토큰을 판별한다. 이 단계에서는 경로만 수집하고, 실제 Read는 2단계에서 수행한다.
14
+
15
+ ### 1-1. 파일 경로
16
+
17
+ `.md`로 끝나는 토큰은 파일 경로로 수집한다.
18
+
19
+ ### 1-2. 디렉토리 경로
20
+
21
+ `.md`를 포함하지 않는 토큰은 디렉토리 경로로 처리한다.
22
+ - Glob으로 다음 패턴을 탐색하여 경로를 수집한다:
23
+ - `{디렉토리}/**/spec.md`
24
+ - `{디렉토리}/**/plan.md`
25
+ - `{디렉토리}/R*_plan.md`
26
+ - 파일 경로와 디렉토리 경로가 혼합된 경우 각각 적용 후 합산하고, 동일 경로가 중복되면 제거한다
27
+ - 매칭되는 파일이 없으면 해당 경로를 무시하고 진행한다
28
+
29
+ ### 1-3. 인자 없음
30
+
31
+ `$ARGUMENTS`가 비어있으면:
32
+ - 현재 대화에서 언급된 spec/plan 파일 경로를 수집한다
33
+ - 대화에도 문서가 없으면 AskUserQuestion으로 파일 또는 디렉토리 경로를 요청한다
34
+
35
+ ## 2. 문서 수집 및 항목 추출
36
+
37
+ ### 2-1. 문서 Read 및 유형 판별
38
+
39
+ 수집된 모든 경로의 파일을 Read한다. 파일이 존재하지 않으면 경고를 출력하고 해당 파일을 건너뛴다.
40
+
41
+ 파일명과 경로 패턴으로 유형을 판별한다:
42
+
43
+ | 경로 패턴 | 유형 |
44
+ |----------|------|
45
+ | `{task디렉토리}/spec.md` | 상위 spec |
46
+ | `{task디렉토리}/R숫자/spec.md` | 상세 spec |
47
+ | `{task디렉토리}/plan.md` | 전체 plan |
48
+ | `{task디렉토리}/R숫자_plan.md` | R별 plan |
49
+
50
+ 인식되지 않는 파일명 패턴은 경고를 출력하고 건너뛴다.
51
+
52
+ ### 2-2. 문서 간 계층 매핑
53
+
54
+ 문서들의 관계를 매핑한다:
55
+ - 상위 spec의 R항목 ↔ 상세 spec (R번호/spec.md)
56
+ - 상위 spec의 R항목 ↔ R별 plan (R번호_plan.md)
57
+ - 전체 plan → 상위 spec 전체에 대응
58
+
59
+ ### 2-3. 검증 항목 추출
60
+
61
+ 각 문서에서 검증 대상 항목을 추출한다:
62
+ - **spec**: `### R숫자.` 패턴의 헤딩 아래 전체 내용 (하위 헤딩, 목록, 표 포함)을 해당 R항목의 요구사항으로 추출한다
63
+ - **plan**: 각 작업의 `### GREEN Phase` 섹션에 명시된 구현 항목을 추출한다
64
+
65
+ plan이 있는 R항목은 plan의 구현 항목이 더 상세하므로 **plan 기준으로 검증**한다.
66
+ plan이 없는 R항목은 spec의 요구사항 텍스트 기준으로 검증한다.
67
+
68
+ ## 3. 코드베이스 분석
69
+
70
+ Agent tool (subagent_type: Explore)로 각 검증 항목의 구현 여부를 판정한다.
71
+
72
+ **탐색 범위:** plan에 `대상` 필드가 있으면 해당 경로를 우선 탐색한다. 없으면 spec의 영향 범위 표를 참조한다. 둘 다 없으면 코드베이스 전체를 탐색한다.
73
+
74
+ **병렬 실행:** 독립적인 검증 항목은 여러 Agent 호출을 동시에 수행하여 병렬로 판정한다.
75
+
76
+ **판정 기준:**
77
+ - **spec 요구사항**: 해당 기능이 코드에 존재하고 요구사항의 의도를 충족하는지
78
+ - **plan 구현 항목**: GREEN Phase에 명시된 각 구현 사항이 실제 코드에 반영되었는지
79
+
80
+ 각 항목에 대해 다음을 기록한다:
81
+ - 충족/미충족 판정
82
+ - 판정 근거 (확인한 파일 경로 및 코드 위치)
83
+ - 미충족인 경우 사유
84
+
85
+ ## 4. 결과 출력 및 완료 안내
86
+
87
+ ### 4-1. 콘솔 출력 (항상)
88
+
89
+ 다음 형식으로 결과를 출력한다:
90
+
91
+ ```markdown
92
+ ## 리뷰 결과
93
+
94
+ ### {상위 spec 파일명}
95
+ - [x] R1. {요구사항 제목} — 충족
96
+ - [ ] R2. {요구사항 제목} — 미충족: {사유}
97
+
98
+ **충족률: {N}/{M}**
99
+ ```
100
+
101
+ ### 4-2. 파일 저장 (미충족 항목이 있을 때만)
102
+
103
+ 미충족 항목이 하나라도 있으면 `review.md`를 생성한다. 동일 위치에 기존 review.md가 있으면 덮어쓴다.
104
+
105
+ **저장 위치:**
106
+ - 디렉토리 입력 → 해당 디렉토리
107
+ - 파일 나열 → 첫 번째 파일의 디렉토리
108
+
109
+ **review.md 구조:**
110
+
111
+ ```markdown
112
+ # 리뷰 결과: {문서 경로 또는 디렉토리}
113
+
114
+ **검토일:** {현재 날짜}
115
+ **검토 문서:** {입력 문서 목록}
116
+ **충족률:** {N}/{M}
117
+
118
+ ## 미충족 항목
119
+
120
+ ### {문서명} — R번호. {요구사항 제목}
121
+
122
+ **요구사항:** {원문 요약}
123
+ **판정 근거:** {확인한 코드 위치 및 미충족 사유}
124
+
125
+ ## 다음 단계
126
+
127
+ - `/sd-plan-dev {plan경로}` — {plan이 있는 미충족 항목 설명}
128
+ - `/sd-plan {spec경로} R번호` — {plan이 없는 미충족 항목 설명}
129
+ ```
130
+
131
+ ### 4-3. 완료 안내
132
+
133
+ - **전체 충족**: 전체 통과 메시지를 출력한다
134
+ - **미충족 존재**: review.md 경로를 안내하고, 사용자에게 직접 문서를 확인할 것을 권장하며, 다음 단계를 출력한다:
135
+ - plan이 있는 미충족 항목: `/sd-plan-dev {plan경로}`
136
+ - plan이 없는 미충족 항목: `/sd-plan {spec경로} R번호`
@@ -101,7 +101,7 @@ sd-plan의 테스트 전략 결정과 sd-plan-dev의 TDD 사이클 실행을 통
101
101
 
102
102
  GREEN Phase에서 대상 파일을 수정한 경우에만 수행한다.
103
103
 
104
- `/simplify 다음 파일만 리뷰: {수정한 파일 목록}` 하여 품질을 개선한다.
104
+ `/simplify 다음 파일만 리뷰: {수정한 파일 목록}` 하여 품질을 개선한다. simplify 완료 후 반드시 이 스킬의 다음 단계로 계속 진행한다.
105
105
  - 완료 후 테스트를 재실행하여 통과를 확인한다
106
106
  - 리팩터링으로 테스트가 깨지면 수정 후 재확인한다
107
107
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/sd-claude",
3
- "version": "13.0.90",
3
+ "version": "13.0.91",
4
4
  "description": "Simplysm Claude Code asset installer",
5
5
  "author": "simplysm",
6
6
  "license": "Apache-2.0",