@simplysm/sd-claude 14.0.78 → 14.0.79
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/output-styles/sd-tone.md +26 -2
- package/claude/references/sd-simplysm14/manuals/logging.md +1 -1
- package/claude/rules/sd-base-rules.md +109 -87
- package/claude/skills/sd-dev/SKILL.md +1 -1
- package/claude/skills/sd-impl/SKILL.md +15 -14
- package/claude/skills/sd-impl/references/spec-cross-check.md +2 -2
- package/claude/skills/sd-spec/SKILL.md +746 -192
- package/claude/skills/sd-spec/references/example-spec.md +107 -35
- package/claude/skills/sd-unpack/SKILL.md +39 -14
- package/claude/skills/sd-unpack/scripts/handlers/__pycache__/_common.cpython-314.pyc +0 -0
- package/claude/skills/sd-unpack/scripts/handlers/__pycache__/eml_handler.cpython-314.pyc +0 -0
- package/claude/skills/sd-unpack/scripts/handlers/__pycache__/office_com.cpython-314.pyc +0 -0
- package/claude/skills/sd-unpack/scripts/handlers/__pycache__/pdf_handler.cpython-314.pyc +0 -0
- package/claude/skills/sd-unpack/scripts/handlers/_common.py +59 -0
- package/claude/skills/sd-unpack/scripts/handlers/eml_handler.py +7 -0
- package/claude/skills/sd-unpack/scripts/handlers/msg_handler.py +11 -0
- package/claude/skills/sd-unpack/scripts/handlers/office_com.py +288 -79
- package/claude/skills/sd-unpack/scripts/handlers/office_worker.py +3 -2
- package/claude/skills/sd-unpack/scripts/handlers/pdf_handler.py +78 -10
- package/package.json +1 -1
- package/claude/skills/sd-spec/references/spec-authoring.md +0 -298
- package/claude/skills/sd-spec/references/spec-md-template.md +0 -29
- package/claude/skills/sd-wip/SKILL.md +0 -38
- package/claude/skills/sd-wip/evals/fixtures/empty/.gitkeep +0 -0
- package/claude/skills/sd-wip/evals/fixtures/with-artifact/projects/acct/_wip.md +0 -3
- package/claude/skills/sd-wip/evals/fixtures/with-artifact/projects/acct/spec.md +0 -15
- package/claude/skills/sd-wip/evals/fixtures/with-existing-wip/.wips/260101120000_acct.md +0 -6
- package/claude/skills/sd-wip/evals/fixtures/with-existing-wip-for-compact/.wips/260101120000_acct.md +0 -14
- package/claude/skills/sd-wip/evals/golden.jsonl +0 -4
- package/claude/skills/sd-wip/references/compact.md +0 -79
|
@@ -22,12 +22,36 @@ keep-coding-instructions: true
|
|
|
22
22
|
- 식별자 — 실제 의미를 옆에 표기 (원본 없이도 문장만으로 의미 전달):
|
|
23
23
|
- 코드 심볼
|
|
24
24
|
- 영문 변수명·함수명 (예: `surplus`·`isCompleted`·`joinSingle`)
|
|
25
|
-
-
|
|
26
|
-
- 번호·§번호
|
|
25
|
+
- 기술 약어 (API·DB 컬럼 축약 등)
|
|
27
26
|
- 수식·계산식 (예: `(A − B) − C`) — 값 대입 시나리오 1건 동반
|
|
28
27
|
- SQL·프레임워크·구현 용어 (예: "LEFT JOIN 깊이 1 자르기"·"subagent 위탁") — 도메인 흐름으로 풀이
|
|
29
28
|
- "이해 못함"·"무슨 소리야" 피드백 시 같은 내용 반복 X. 도메인 시나리오로 재풀이.
|
|
30
29
|
|
|
30
|
+
## 내부 문서 거론 시
|
|
31
|
+
|
|
32
|
+
**적용**: 사용자 응답 중 내부 문서 (룰·스킬·합의 산출물·참고 자료) 거론 시.
|
|
33
|
+
|
|
34
|
+
**원칙**: 사용자는 *문서 역할* 만 인지, *문서 내부* 는 미인지.
|
|
35
|
+
|
|
36
|
+
**경계**:
|
|
37
|
+
|
|
38
|
+
- 면제 (문서 자체): 파일명·분류명
|
|
39
|
+
- 풀이 (문서 내부): §·헤더·룰명·결정 단어·내부 식별자
|
|
40
|
+
|
|
41
|
+
**풀이 형식**:
|
|
42
|
+
|
|
43
|
+
- 의미·내용 1줄 동반 또는 도메인 시나리오로 풀이
|
|
44
|
+
- 자가 점검 — "이 표현이 문서 내부를 가리키는가? 사용자 처음 보는가?"
|
|
45
|
+
|
|
46
|
+
**❌ 위반 패턴**:
|
|
47
|
+
|
|
48
|
+
- `<§·룰명·내부 식별자> 에 따라 X` — 식별자만 노출, 풀이 누락
|
|
49
|
+
|
|
50
|
+
**✅ 정상 패턴**:
|
|
51
|
+
|
|
52
|
+
- `<§·룰의 본질·의미> → X` — 의미를 일반어로 풀어쓰기
|
|
53
|
+
- 필요 시 `(출처: <문서명>)` 짧게 부기
|
|
54
|
+
|
|
31
55
|
## 응답·산출물 표현
|
|
32
56
|
|
|
33
57
|
**구조 선호** (산문체 회피·세로 정돈):
|
|
@@ -53,7 +53,7 @@ console.error("[X] 실패:", err);
|
|
|
53
53
|
|
|
54
54
|
- **해결**: `createLogger(tag)` 사용 (`@simplysm/core-common`, 내부 구현은 lazy Proxy — 첫 메서드 접근 시점까지 `withTag` 생성을 지연).
|
|
55
55
|
- 모든 환경(Node·브라우저·Capacitor)에서 위치(모듈 레벨·함수 내부·class field)에 관계없이 `createLogger` 로 통일.
|
|
56
|
-
- `consola.withTag()` 직접 호출 금지.
|
|
56
|
+
- `consola.withTag()` 직접 호출 금지. 발견 시 **`createLogger` 로의 코드 교체가 무조건 의무**. tag 인자 유지·재선정 여부는 그 후의 부수 결정이며, "tag 그대로 쓸 수 있다" 같은 판단으로 *교체 행위 자체* 를 생략 금지.
|
|
57
57
|
|
|
58
58
|
## 예외 — `eslint-disable no-console` 가 정당화되는 자리
|
|
59
59
|
|
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
4
4
|
|
|
5
|
+
## 대화
|
|
6
|
+
|
|
7
|
+
모든 사용자 응답·도구 호출에 적용되는 상위 메타. 다른 § 진입 전 먼저 통과.
|
|
8
|
+
|
|
9
|
+
**발동 시점**:
|
|
10
|
+
- 사용자 발언 받은 직후 (응답 설계 전)
|
|
11
|
+
- 응답 출력 직전 (모든 응답)
|
|
12
|
+
- 도구 호출 직전 (모든 도구)
|
|
13
|
+
|
|
14
|
+
**메타 룰**:
|
|
15
|
+
|
|
16
|
+
- **깊이 생각**:
|
|
17
|
+
- 표면 이해로 응답 X
|
|
18
|
+
- 사용자 발언의 의도·목적·맥락 추출 후 응답
|
|
19
|
+
- **사용자 발언 ≠ 권위**:
|
|
20
|
+
- 사용자 발언은 [§결정 근거](#결정-근거) 채택 가능 자료 — 그러나 자동 채택 X
|
|
21
|
+
- 근거로 직접 검토 후 채택·반박·재질문
|
|
22
|
+
- 사용자 제안이 분석 결과와 충돌 → 반박 또는 재질문, 권위로 받지 말 것
|
|
23
|
+
- **불분명하면 질문**:
|
|
24
|
+
- 의도·대상·범위 불분명 → 추측 진행 X
|
|
25
|
+
- [§질문/답변](#질문답변) 프로토콜 따라 질문
|
|
26
|
+
|
|
27
|
+
**출력 직전 자가검증** (위반 시 출력 보류):
|
|
28
|
+
- [ ] 사용자 의도·목적을 파악했는가
|
|
29
|
+
- [ ] 사용자의 본래의 의도/목적을 이탈하지 않았는가
|
|
30
|
+
- [ ] 사용자 발언을 권위가 아닌 근거로 검토했는가 (반박·재질문 여지 점검)
|
|
31
|
+
- [ ] 추측으로 메우거나 묵시 확장하지 않았는가
|
|
32
|
+
- [ ] [§결정 근거](#결정-근거)·[§질문/답변](#질문답변) 디테일을 적용했는가
|
|
33
|
+
|
|
34
|
+
**❌ 위반 예**:
|
|
35
|
+
- 사용자 제안 즉시 "(추천)" 표시로 무조건 동의 — 권위 수용, 근거 검토 생략
|
|
36
|
+
- 사용자 답변에서 직접 도출되지 않는 항목 묵시 확장
|
|
37
|
+
- 추상 표현 ("적절히"·"필요시") 으로 결정 회피
|
|
38
|
+
- 사용자 의도 파악 없이 단어만 받아 즉시 도구 호출
|
|
39
|
+
|
|
40
|
+
표현·톤 규칙은 활성 output-style (`sd-tone`) 참조.
|
|
41
|
+
|
|
5
42
|
## 단순함
|
|
6
43
|
|
|
7
44
|
**Stay in scope. Do not gold-plate.** (코드·문서·분석·대화 등 모든 작업)
|
|
@@ -46,16 +83,24 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
46
83
|
- 과거 변경의 기술. 현재 세션의 지시 아님
|
|
47
84
|
- 사용자 명시 지침으로 읽었더라도 결정 근거로 사용 금지
|
|
48
85
|
- 현재 코드 동작 추적 단서로만 활용 가능 (지시로 격상 X)
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
86
|
+
- **단위 흡수 금지** (1 단위 = 1 결정):
|
|
87
|
+
- **공통**:
|
|
88
|
+
- 1 단위 (답변·임의안) = 1 결정 항목
|
|
89
|
+
- 직접 도출되지 않는 결정 항목 흡수 금지
|
|
90
|
+
- 묵시 흡수 발견 시 분리하여 별도 단위로
|
|
91
|
+
- **받기 (사용자 답변)**:
|
|
92
|
+
- 답변 1건 → 결정 1건. 답변에서 직접 도출되지 않는 항목 흡수 X
|
|
93
|
+
- 선택지 답변: N개 중 답변한 선택지만 채택, 나머지는 자동 기각
|
|
94
|
+
- ❌ 답변 "A 컬럼 안 씀" → 결정 "전체 헤더 기준 — A 컬럼 제거" (전체 채택 = 묵시 흡수)
|
|
95
|
+
- ❌ 선택지 "A·B" → "A로 가" 답변 → A 실행 + B 도 적용 (B 는 자동 기각)
|
|
96
|
+
- ✅ 답변 "A 컬럼 안 씀" → 결정 "A 컬럼 노출 X". 다른 컬럼은 별도 질문
|
|
97
|
+
- **던지기 (임의안)**:
|
|
98
|
+
- 사용자가 단번에 yes/no 판단 가능한 최소 단위
|
|
99
|
+
- 1 임의안 = 1 결정 항목 (자료 위치·구조·룰·서식·식·옵션 다발 묶기 X)
|
|
100
|
+
- 본문이 짧고 1 결정의 부연뿐이면 함께 가능
|
|
101
|
+
- 신규/정정·정형/비정형 무관
|
|
102
|
+
- ❌ sub-section 골격 신설 시 자료 위치 + 시퀀스 룰 + W 열 룰 + 시트 구조 + 구분 분기 + 사용자 입력 분류 + 셀 서식 한꺼번에 임의안 → "맞나요?"
|
|
103
|
+
- ✅ 자료 위치 1건 → 확정 → 시퀀스 룰 1건 → 확정 → 다음 항목
|
|
59
104
|
|
|
60
105
|
## 질문/답변
|
|
61
106
|
|
|
@@ -78,14 +123,7 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
78
123
|
- 결정 항목이 여러 개로 보여도 첫 1건만 질문
|
|
79
124
|
- 답변 받은 뒤 다음 건
|
|
80
125
|
- 묶음 출력 금지
|
|
81
|
-
-
|
|
82
|
-
- 사용자가 단번에 yes/no 판단 가능한 최소 단위로 제시
|
|
83
|
-
- 1 임의안 = 1 결정 항목 (자료 위치·구조·룰·서식·식·옵션 등 다발 묶기 X)
|
|
84
|
-
- 본문이 짧고 1 결정의 부연뿐이면 함께 가능
|
|
85
|
-
- 신규/정정·정형/비정형 작업 무관 동일 적용
|
|
86
|
-
- 다중 결정 항목 묵시 묶기 = "답변 범위 흡수" 안티패턴 동일
|
|
87
|
-
- ❌ 나쁜 예: sub-section 골격 신설 시 자료 위치 + 시퀀스 룰 + W 열 룰 + 시트 구조 + 구분 분기 + 사용자 입력 분류 + 셀 서식 한꺼번에 임의안 → "맞나요?"
|
|
88
|
-
- ✅ 좋은 예: 자료 위치 1건 → 확정 → 시퀀스 룰 1건 → 확정 → 다음 항목
|
|
126
|
+
- 임의안 분량·단위 — [§단위 흡수 금지](#결정-근거) 참조
|
|
89
127
|
- `AskUserQuestion` 도구 절대 사용 금지
|
|
90
128
|
|
|
91
129
|
**질문 전 점검**:
|
|
@@ -139,68 +177,50 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
139
177
|
|
|
140
178
|
## 문제 해결
|
|
141
179
|
|
|
142
|
-
-
|
|
180
|
+
- **근본 원인 우선**:
|
|
143
181
|
- 증상이 아닌 근본 원인부터 분석
|
|
144
182
|
- 원인·해결 방법을 먼저 제시
|
|
145
|
-
- 진행·질의 여부는 [
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
183
|
+
- 진행·질의 여부는 [§결정 근거](#결정-근거) 에 따름
|
|
184
|
+
- 예시 (A 로 수정한 B 가 이상함):
|
|
185
|
+
- ❌ B 수정 (증상 회피)
|
|
186
|
+
- ✅ A 의 근본 문제 식별 및 A 수정
|
|
149
187
|
|
|
150
|
-
- "모름"
|
|
188
|
+
- **"모름" 선언**:
|
|
151
189
|
- 정보 부족·근거 없음 → 추측으로 메우지 말 것
|
|
152
190
|
- "모름" 또는 "확인 필요" 명시
|
|
153
|
-
- 메움 행위
|
|
191
|
+
- 메움 행위 = 정확도 위장한 오답 (그럴듯한 reasoning 이 더 위험)
|
|
154
192
|
- 메움 대신 행동:
|
|
155
193
|
- 사용자에게 추가 정보 요청
|
|
156
194
|
- 검증 도구(Read·Grep·Bash) 로 직접 확인
|
|
157
195
|
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
- 코드: `파일경로:라인` + 식별자
|
|
162
|
-
- 로그·재현 단서: 인용 부분 발췌
|
|
163
|
-
- 근거 못 대면 "가설:" 또는 "추정:" 마커 부착
|
|
164
|
-
- 예: "가설: X 때문일 가능성"
|
|
196
|
+
- **진단·분석 결론 — 가설→검증→인용→자기검증 4단** (일반 정보 전달·튜토리얼·코딩 가이드 제외):
|
|
197
|
+
- **① 가설 수립**:
|
|
198
|
+
- "X 때문일 가능성" 마커 부착
|
|
165
199
|
- 단정 표현 금지
|
|
166
|
-
-
|
|
167
|
-
|
|
168
|
-
-
|
|
169
|
-
-
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- ② 반증 없는가 (모순 정보 무시 X?)
|
|
191
|
-
- ③ 다른 가설 배제했는가
|
|
192
|
-
- 자문 실패 시 가설 마커 부착 또는 추가 검증
|
|
193
|
-
- 실패 항목 숨기고 결론 단정 X
|
|
194
|
-
|
|
195
|
-
## 대화
|
|
196
|
-
|
|
197
|
-
- 사용자의 의도·목적을 정확히 파악
|
|
198
|
-
- 불분명하면 질문으로 명확화
|
|
199
|
-
- 사용자 제안·의견에 무조건 동의 금지
|
|
200
|
-
- 권위로 두지 말고 근거로 직접 판단해 답변
|
|
201
|
-
|
|
202
|
-
질문·답변 프로토콜은 [질문/답변](#질문답변) 참조.
|
|
203
|
-
표현·톤 규칙은 활성 output-style (`sd-tone`) 참조.
|
|
200
|
+
- **② 검증 도구 우선**:
|
|
201
|
+
- 메모리·일반지식만으로 단정 X
|
|
202
|
+
- 도구 사용 가능한데 추론으로 단정 = 안티패턴
|
|
203
|
+
- 절차: 검증 계획 → 도구 호출 → 결과로 가설 확정·반증
|
|
204
|
+
- 확인 경로 (대상별):
|
|
205
|
+
- 워크스페이스 코드·로그: Read·Grep·Bash
|
|
206
|
+
- 의존 라이브러리: `node_modules`·`@types` 코드 직접 Read
|
|
207
|
+
- 공식 문서: WebFetch 로 조회
|
|
208
|
+
- 표준 라이브러리·언어 기본 동작: 표준 범위 단정 가능 (예: `Array.map` 기본 동작)
|
|
209
|
+
- 특정 옵션·버전별 동작·엣지케이스: 직접 확인 필수
|
|
210
|
+
- **③ 결론 단정 시 근거 인용**:
|
|
211
|
+
- 적용 표현 예: "X 때문이다"·"X 가 원인"·"X 가 동작한다"
|
|
212
|
+
- 인용 형식:
|
|
213
|
+
- 코드: `파일경로:라인` + 식별자
|
|
214
|
+
- 로그·재현 단서: 인용 부분 발췌
|
|
215
|
+
- 근거 못 대면 "가설:" 또는 "추정:" 마커 부착, 단정 표현 금지
|
|
216
|
+
- 인용 품질 — 막연 "확인했음"·"코드 봤음" X. `파일경로+라인+식별자` 까지 명시
|
|
217
|
+
- **④ 출력 직전 자기검증** (각 claim 자문):
|
|
218
|
+
- 근거 있는가 (인용 가능?)
|
|
219
|
+
- 반증 없는가 (모순 정보 무시 X?)
|
|
220
|
+
- 다른 가설 배제했는가
|
|
221
|
+
- 자문 실패 시 가설 마커 부착 또는 추가 검증
|
|
222
|
+
- 실패 항목 숨기고 결론 단정 X
|
|
223
|
+
- **❌ 안티패턴**: "아마 ~일 거다" 식 추측을 단정 표현으로 출력
|
|
204
224
|
|
|
205
225
|
## Convention 굳히기 금지
|
|
206
226
|
|
|
@@ -250,21 +270,6 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
250
270
|
- 자동 로드되는 상위 룰(예: `sd-base-rules.md`)에 이미 명시된 내용을 하위 지침 문서(`CLAUDE.md`·스킬 SKILL.md·참고 자료 등)에 다시 옮기지 말 것
|
|
251
271
|
- 하위 문서는 해당 스코프 고유 내용만 작성
|
|
252
272
|
|
|
253
|
-
## 타임스탬프
|
|
254
|
-
|
|
255
|
-
산출 폴더·파일명에 시각을 포함할 때:
|
|
256
|
-
|
|
257
|
-
- 형식: `yyMMddHHmmss` (예: `260513204500` = 2026-05-13 20:45:00)
|
|
258
|
-
- 획득: Bash 도구 `date +%y%m%d%H%M%S` 실행 결과
|
|
259
|
-
|
|
260
|
-
## slug
|
|
261
|
-
|
|
262
|
-
산출 폴더·파일명에 포함하는 짧은 인간 가독 식별자.
|
|
263
|
-
|
|
264
|
-
- 짧은 한·두 단어
|
|
265
|
-
- 허용 문자: 한글·영문·`_`·`-`·공백
|
|
266
|
-
- 그 외 문자 금지
|
|
267
|
-
|
|
268
273
|
## 분석 작업
|
|
269
274
|
|
|
270
275
|
- `.back` 폴더 및 `.gitignore` 등재 경로:
|
|
@@ -327,7 +332,7 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
327
332
|
- 명시 시: cwd 기준 resolve 되어 프로젝트 루트로 떨어짐
|
|
328
333
|
- 읽기 인자는 무관
|
|
329
334
|
|
|
330
|
-
|
|
335
|
+
## 도구 결과 완전성
|
|
331
336
|
|
|
332
337
|
- 도구 결과 부분만 읽고 작업 완료 금지
|
|
333
338
|
- 절단·부분 신호 무시 절대 금지
|
|
@@ -371,7 +376,24 @@ Claude 에이전트가 반드시 지켜야 할 행동 지침이다.
|
|
|
371
376
|
| `@simplysm/*` 14.x 패키지의 코드 설계 및 변경 | `.claude/references/sd-simplysm14/README.md` |
|
|
372
377
|
| Requirement Source 부정확성 (STT 오타·화자 모호·발화 모호·도메인 용어 다의성) 처리 | `.claude/references/sd-requirement-source-handling.md` |
|
|
373
378
|
|
|
374
|
-
##
|
|
379
|
+
## 정의·형식
|
|
380
|
+
|
|
381
|
+
### 용어
|
|
375
382
|
|
|
376
383
|
- **Requirement Source**: sd-spec 의 입력 자료 (회의록·고객 송부 자료·문서·메일 등 분석 출발 자료)
|
|
377
384
|
- **최종 사용자**: 시스템의 실제 도메인 사용자 (개발자·시스템 관리자 등 외)
|
|
385
|
+
|
|
386
|
+
### 타임스탬프
|
|
387
|
+
|
|
388
|
+
산출 폴더·파일명에 시각을 포함할 때:
|
|
389
|
+
|
|
390
|
+
- 형식: `yyMMddHHmmss` (예: `260513204500` = 2026-05-13 20:45:00)
|
|
391
|
+
- 획득: Bash 도구 `date +%y%m%d%H%M%S` 실행 결과
|
|
392
|
+
|
|
393
|
+
### slug
|
|
394
|
+
|
|
395
|
+
산출 폴더·파일명에 포함하는 짧은 인간 가독 식별자.
|
|
396
|
+
|
|
397
|
+
- 짧은 한·두 단어
|
|
398
|
+
- 허용 문자: 한글·영문·`_`·`-`·공백
|
|
399
|
+
- 그 외 문자 금지
|
|
@@ -11,7 +11,7 @@ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의가 끝나면
|
|
|
11
11
|
|
|
12
12
|
### 1단계: 의도파악
|
|
13
13
|
|
|
14
|
-
사용자 발화를 토대로 무엇을 만들거나 바꿀지 합의. **1건씩 질문 → 답변 → 다음 건** (sd-base-rules "결정 근거"). 합의 결과는 대화
|
|
14
|
+
사용자 발화를 토대로 무엇을 만들거나 바꿀지 합의. **1건씩 질문 → 답변 → 다음 건** (sd-base-rules "결정 근거"). 합의 결과는 대화 메모리에만.
|
|
15
15
|
|
|
16
16
|
다음을 확정해야 진행:
|
|
17
17
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sd-impl
|
|
3
|
-
description: spec.md 의 단위(§4.x 화면
|
|
3
|
+
description: spec.md 의 단위(§4.x 화면 / §5.x 자동 처리 / §6.x 횡단 처리) 1개를 현재 코드베이스 상태와 비교해 차이만큼 풀 구현(테스트·시연 포함)한다. Use when "화면 풀 구현", "데모를 실 구현으로", "화면 실가동", "자동 처리 풀 구현", "횡단 처리 풀 구현" 을 요청할 때.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# sd-impl
|
|
7
7
|
|
|
8
|
-
spec.md 단위(§4.x 화면
|
|
8
|
+
spec.md 단위(§4.x 화면 / §5.x 자동 처리 / §6.x 횡단 처리) 1개를 현재 코드베이스 상태와 비교해 빠지거나 어긋난 부분만큼 풀 구현한다. 데모 골격이 있으면 보존. 신규/갱신 무관 동일 워크플로. 끝에 사용자 시연으로 회귀를 잡는다.
|
|
9
9
|
|
|
10
10
|
## 본질
|
|
11
11
|
|
|
@@ -19,18 +19,18 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
19
19
|
### 1단계: 입력 확보
|
|
20
20
|
|
|
21
21
|
- 대상 spec.md 경로
|
|
22
|
-
- 구현할 단위 식별자 — `§4.x` (화면)
|
|
22
|
+
- 구현할 단위 식별자 — `§4.x` (화면) / `§5.x` (자동 처리) / `§6.x` (횡단 처리)
|
|
23
23
|
|
|
24
|
-
없으면 묻기. spec.md 에 식별자 매칭이 안 되면 §4 화면 목록 / §5 자동 처리
|
|
24
|
+
없으면 묻기. spec.md 에 식별자 매칭이 안 되면 §4 화면 목록 표 / §5 자동 처리 / §6 횡단 처리 헤더 목록에서 후보 제시 후 확정.
|
|
25
25
|
|
|
26
26
|
### 2단계: 외부 입력 점검 (BLOCKING)
|
|
27
27
|
|
|
28
|
-
작업 대상 §4.x/§5.x 와 그가 참조하는 §5/§6/§7/§8 항목 점검:
|
|
28
|
+
작업 대상 §4.x/§5.x/§6.x 와 그가 참조하는 §5/§6/§7/§8/§9 항목 점검:
|
|
29
29
|
|
|
30
30
|
- **헤더 `[OPEN: 날짜]` 섹션**: 본문이 재분석 포인터일 뿐 임의안 부재 → sd-impl 해소 불가. 사용자 보고 후 **종료**. 사용자가 sd-spec 으로 확정 받은 뒤 sd-impl 재호출.
|
|
31
31
|
- **본문 인라인 `[OPEN]`**: `sd-base-rules` "결정 근거" 적용 — 근거 없으면 1건씩 질문. 답변 후 즉시 spec.md 반영 → 다음 건. 결정이 다른 섹션의 구조 변경(필드 추가, 새 규칙 항목 등)을 요구하면 헤더 OPEN 과 동일 처리: 종료 + sd-spec 재호출. 종료 전 식별·보고:
|
|
32
32
|
- sd-spec 에 넘길 변경 항목 (§ 위치 + 변경 내용)
|
|
33
|
-
- 그 변경이 영향 미치는 **다른 §4.x/§5.x 단위 목록** — 구조 변경된 §5/§6/§7/§8 항목을 spec 에서 역인용해 수집
|
|
33
|
+
- 그 변경이 영향 미치는 **다른 §4.x/§5.x/§6.x 단위 목록** — 구조 변경된 §5/§6/§7/§8/§9 항목을 spec 에서 역인용해 수집
|
|
34
34
|
- 영향 단위 중 이미 구현된 것 / 미구현인 것 구분
|
|
35
35
|
- **사용자 제공 예정 자료**: spec 본문에 "사용자 제공 예정" 류로 적힌 파일·값. 사용자 회신 후 진행.
|
|
36
36
|
- **묵시적 모호**: 명시 마커 없지만 spec 본문이 분기·정의·정의식·경계 케이스를 다루지 않는 부분. 4단계 분해 표 작성 중 발견될 가능성 높음. 발견 시 본 단계로 회귀해 인라인 `[OPEN]` 절차 적용.
|
|
@@ -49,9 +49,9 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
49
49
|
|
|
50
50
|
풀 구현은 다층 흐름이 한 줄로 가야 일관성이 유지된다. 답습 단위 1개를 통째 답습하는 모델이 아니라, 기준 단위 1개를 잡고 비어있거나 부적합한 계층만 다른 단위에서 보강한다. 계층 간 의존성(모델 → 데이터 접근 → 본체 → 테스트)을 끊지 않으면서, 기준 단위에 부재한 계층의 LLM 단독 처방을 막는다.
|
|
51
51
|
|
|
52
|
-
**4계층**: 도메인 모델 / 데이터 접근 / 본체(§4.x = 화면 컴포넌트, §5.x = 자동 처리 로직 +
|
|
52
|
+
**4계층**: 도메인 모델 / 데이터 접근 / 본체(§4.x = 화면 컴포넌트, §5.x = 자동 처리 로직 + 트리거, §6.x = 횡단 처리 로직 + 부수효과 후크) / 테스트.
|
|
53
53
|
|
|
54
|
-
**B-1. 기준 단위 선정** (같은 종류 §4.x↔§4.x, §5.x↔§5.x 안에서):
|
|
54
|
+
**B-1. 기준 단위 선정** (같은 종류 §4.x↔§4.x, §5.x↔§5.x, §6.x↔§6.x 안에서):
|
|
55
55
|
|
|
56
56
|
1. 도메인/sub-app 인접 풀구현 단위 후보 Glob 탐색.
|
|
57
57
|
2. 1개 → 자동 채택. 2개 이상 → 후보 목록 제시 후 사용자 1회 질문. 0개 → 같은 종류 전 범위로 확장 후 동일 규칙.
|
|
@@ -75,7 +75,7 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
75
75
|
|
|
76
76
|
### 4단계: spec 분해 표
|
|
77
77
|
|
|
78
|
-
대상 §4.x/§5.x 와 참조 §5/§6/§7/§8 본문을 **항목 단위까지 분해**해 표 작성. 표는 assistant 응답으로 출력 (이후 5·6단계 입력).
|
|
78
|
+
대상 §4.x/§5.x/§6.x 와 참조 §5/§6/§7/§8/§9 본문을 **항목 단위까지 분해**해 표 작성. 표는 assistant 응답으로 출력 (이후 5·6단계 입력).
|
|
79
79
|
|
|
80
80
|
| 항목 | spec 인용 | 현재 코드 상태 | 판정 | 매핑 파일 | 의존 |
|
|
81
81
|
| ---- | --------- | -------------- | ---- | --------- | ---- |
|
|
@@ -133,7 +133,7 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
133
133
|
- **계층별 정합 점검**: 3-B 의 기준 단위 + 보강 출처 파일을 다시 Read 해 4계층별로 실제 작성분과 비교. 한 계층이라도 채택 패턴과 어긋나면 (임의 변형·새 발명) 수정.
|
|
134
134
|
- 도메인 모델: 필드·타입·제약·네이밍 패턴 일치
|
|
135
135
|
- 데이터 접근: 함수 시그니처·쿼리 패턴·에러 처리 일치
|
|
136
|
-
- 본체: 컴포넌트 구조·상태·핸들러·의존성 패턴 일치 (§4.x) / 트리거·처리 단계 구조 일치 (§5.x)
|
|
136
|
+
- 본체: 컴포넌트 구조·상태·핸들러·의존성 패턴 일치 (§4.x) / 트리거·처리 단계 구조 일치 (§5.x) / 부수효과 후크·처리 단계 구조 일치 (§6.x)
|
|
137
137
|
- 테스트: 러너·assertion·mock 패턴 일치
|
|
138
138
|
- **불필요한 코드**: 미사용 import·변수·주석, 요구 없는 옵션·추상화 제거. 작업 결과로 어디서도 참조되지 않는 파일도 포함 (검사 범위는 전체 워크스페이스). **단 파일 단위 삭제는 후보 목록을 사용자에게 보고 → 확정분만 삭제** (dynamic import·마이그레이션·문서 자산 등 보존분 사용자 제외).
|
|
139
139
|
- **매뉴얼 권위 규약**: 3-A Read 한 매뉴얼 위반 항목 수정.
|
|
@@ -146,19 +146,20 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
146
146
|
|
|
147
147
|
**dev 서버·외부 프로세스 자체 실행 금지**: assistant 가 직접 `ng serve`·`npm run dev`·`vite`·`pnpm dev` 등으로 dev 서버를 띄우지 않는다. 사용자가 띄워 주소를 회신할 때까지 대기. 사용자가 본 단계 스킵을 지시하거나 시연 불가 환경이 명시되면 본 단계 스킵 후 9단계.
|
|
148
148
|
|
|
149
|
-
주소 회신 후 `playwright-cli` 로 §4.x/§5.x 동작 시나리오 직접 시연:
|
|
149
|
+
주소 회신 후 `playwright-cli` 로 §4.x/§5.x/§6.x 동작 시나리오 직접 시연:
|
|
150
150
|
|
|
151
151
|
- 기능 개요·동작 사용자 흐름 1회씩 수행.
|
|
152
152
|
- 화면 항목·와이어프레임 위치와 실제 렌더 비교.
|
|
153
153
|
- §5.x (자동 처리) 는 트리거 발생 → 결과 확인.
|
|
154
|
+
- §6.x (횡단 처리) 는 부수효과 트리거 동작 발동 → 결과·기록 확인.
|
|
154
155
|
|
|
155
156
|
회귀 발견 시 5단계 회귀 → 수정 → 재시연.
|
|
156
157
|
|
|
157
158
|
### 9단계: 완료 보고
|
|
158
159
|
|
|
159
|
-
- 대상 spec.md 의 해당 §4.x / §5.x 헤더 `[확정: 날짜]` 를 `[확정: 날짜, 구현: 오늘날짜]` 로 확장 (Bash `date +%Y-%m-%d`). 이미 `구현: …` 가 들어있으면 그 날짜만 갱신.
|
|
160
|
+
- 대상 spec.md 의 해당 §4.x / §5.x / §6.x 헤더 `[확정: 날짜]` 를 `[확정: 날짜, 구현: 오늘날짜]` 로 확장 (Bash `date +%Y-%m-%d`). 이미 `구현: …` 가 들어있으면 그 날짜만 갱신.
|
|
160
161
|
- 만들거나 갱신한 파일 목록 보고 (마커 부착한 spec.md 포함).
|
|
161
|
-
- 본 세션에서 §5/§6/§7/§8 공통 자원을 신규/변경했다면, 그 자원을 참조하는 **다른 §4.x/§5.x 중 이미 구현된 것**을 spec 역인용으로 수집해 영향 단위 목록 보고 (재구현 필요 여부 사용자 판단용). 변경 없었으면 생략.
|
|
162
|
+
- 본 세션에서 §5/§6/§7/§8/§9 공통 자원을 신규/변경했다면, 그 자원을 참조하는 **다른 §4.x/§5.x/§6.x 중 이미 구현된 것**을 spec 역인용으로 수집해 영향 단위 목록 보고 (재구현 필요 여부 사용자 판단용). 변경 없었으면 생략.
|
|
162
163
|
- 시연에서 사용자 확인 끝나면 종료.
|
|
163
164
|
|
|
164
165
|
## 운용
|
|
@@ -167,4 +168,4 @@ spec.md 단위(§4.x 화면 또는 §5.x 자동 처리) 1개를 현재 코드베
|
|
|
167
168
|
- **사용자 보고 어휘**: 코드 식별자(변수명·SQL 함수명·타입 키워드 등) 노출 금지. 도메인 어휘로 풀어 보고. (output-style `sd-tone` "산출물 소비자 도메인 어휘" 적용)
|
|
168
169
|
- **spec.md 동기화**: sd-impl 이 직접 손대는 spec 변경은 다음 2건뿐. 헤더 OPEN·구조 변경은 2단계 규칙대로 종료 후 sd-spec.
|
|
169
170
|
- 본문 인라인 `[OPEN]` 해소 시 마커를 결정 내용으로 교체 (2단계).
|
|
170
|
-
- 9단계 완료 시 §4.x/§5.x 헤더 `[확정: …]` 를 `[확정: …, 구현: 날짜]` 로 확장.
|
|
171
|
+
- 9단계 완료 시 §4.x/§5.x/§6.x 헤더 `[확정: …]` 를 `[확정: …, 구현: 날짜]` 로 확장.
|
|
@@ -20,7 +20,7 @@ sd-impl 의 spec ↔ 코드 독립 대조를 수행해줘.
|
|
|
20
20
|
|
|
21
21
|
**대상**:
|
|
22
22
|
- spec.md 경로: <절대경로>
|
|
23
|
-
- 단위 식별자: <§4.x
|
|
23
|
+
- 단위 식별자: <§4.x / §5.x / §6.x>
|
|
24
24
|
|
|
25
25
|
**참조 자료**:
|
|
26
26
|
|
|
@@ -37,7 +37,7 @@ sd-impl 의 spec ↔ 코드 독립 대조를 수행해줘.
|
|
|
37
37
|
|
|
38
38
|
**작업**:
|
|
39
39
|
|
|
40
|
-
1. spec.md 의 §<단위> 본문 + 참조 §5/§6/§7/§8 항목을 다시 읽는다.
|
|
40
|
+
1. spec.md 의 §<단위> 본문 + 참조 §5/§6/§7/§8/§9 항목을 다시 읽는다.
|
|
41
41
|
2. 현재 구현 파일을 모두 읽는다.
|
|
42
42
|
3. spec ↔ 코드를 항목 단위로 1:1 대조 (단위 전체 대상. "이번 변경분만" 스코프 제한 없음).
|
|
43
43
|
4. 차이 발견 시 아래 4분류로 보고:
|