@simplysm/sd-claude 14.0.79 → 14.0.80

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.
@@ -5,13 +5,15 @@ description: SI/업무시스템 요구사항을 분석해 spec.md 로 구조화
5
5
 
6
6
  # sd-spec
7
7
 
8
- 요구사항 → spec.md 1개. 사이클(임의안 → 합의 → 반영)의 반복으로 채움.
8
+ 요구사항 → spec.md 1개. 사이클 반복으로 채움.
9
9
 
10
10
  ## 입출력
11
11
 
12
12
  - **Input**: Requirement Source (회의록·메일·문서·PDF·발화 등 비정형) + 사용자 대화 + (재진입) 기존 spec.md
13
13
  - **Output**: spec.md 1개 (후속 도구 sd-impl·sd-demo 의 입력 계약)
14
- - **폴더**: `.specs/{yyMMddHHmmss}_{slug}/` — `yyMMddHHmmss` 는 Bash `date +%y%m%d%H%M%S`, slug 는 한·두 단어 (sd-base-rules "slug")
14
+ - **폴더**: `.specs/{yyMMddHHmmss}_{slug}/`
15
+ - `yyMMddHHmmss`: Bash `date +%y%m%d%H%M%S` (예: `260513204500` = 2026-05-13 20:45:00)
16
+ - `slug`: 짧은 한·두 단어. 허용 문자 = 한글·영문·`_`·`-`·공백 (그 외 금지)
15
17
 
16
18
  ## 사이클 (본체)
17
19
 
@@ -27,28 +29,39 @@ description: SI/업무시스템 요구사항을 분석해 spec.md 로 구조화
27
29
 
28
30
  #### 큰 순서 (권장)
29
31
 
30
- | 순서 | spec.md 매핑 |
31
- | --------- | ------------------------------------- |
32
- | 분석 분할 | §2/§3 헤더 분할 + spec.md 골격 생성 |
33
- | 분석 명세 | §1 + §2/§3 본문 |
34
- | 설계 분할 | §4/§5/§6 헤더 분할 |
35
- | 설계 명세 | §4/§5/§6 본문 |
32
+ | 단계 | 진입 | spec.md 매핑 | 절차 위치 | 다음 |
33
+ | --------- | ------------------------ | ----------------------------------- | ----------------------- | ---------------- |
34
+ | 분석 분할 | Requirement Source 수집 | §2/§3 헤더 분할 + spec.md 골격 생성 | §2 안 "분할 절차" | §x.x 분석 명세 |
35
+ | 분석 명세 | 분석 분할 완료 §x.x | §1 + §2/§3 본문 | §별 작성법 (사이클 2~5) | §x.x 설계 분할 |
36
+ | 설계 분할 | 분석 명세 §x.x 본문 확정 | §4/§5/§6 헤더 분할 | §4 안 "설계 분할 절차" | §x.x 설계 명세 |
37
+ | 설계 명세 | 설계 분할 §x.x [OPEN] | §4/§5/§6 본문 | §별 작성법 (사이클 2~5) | (반복 / 종료) |
38
+
39
+ - **분할 단계 사이클** (분석 분할 / 설계 분할 공통, 5 단계 적용):
40
+ 1. 임의안 = 분류 평면 채팅 출력 + 순서·명칭
41
+ - 분석 분할 = §2 후보 / §3 후보 / 미분류 (분류 룰 = §2 "분할 절차")
42
+ - 설계 분할 = §4 후보 / §5 후보 / §6 후보 (분류 룰 = §4 "설계 분할 절차")
43
+ 2. 사용자 피드백 = 분류 이동 / 순서 / 명칭 / 추가·제거 / "전부 확정"
44
+ 3. 피드백 → 구성 갱신 → 채팅 재출력 → 2 재진입 (**루프**)
45
+ 4. "전부 확정" → 헤더 일괄 Write ([OPEN: 날짜] + 본문 = 분석 방법 자동)
46
+ - 분석 분할 = spec.md 골격 신규 + §2.x/§3.x 헤더 일괄
47
+ - 설계 분할 = §4.x/§5.x/§6.x 헤더 일괄
48
+ - **명세 단계**: §x.x 본문을 §별 임의안 단위 따라 1건씩 사이클 (2~5단계).
36
49
 
37
50
  #### 자유 진입
38
51
 
39
52
  - 큰 순서 안 §x.x 선택 = 사용자 자유 (지시 없으면 LLM 권장)
40
53
  - 큰 순서 간 §x.x 단위 파이프라인 — 전체 완료 강제 X
41
54
  - 예: §2.1 본문 확정 → §2.1 관련 §4/§5/§6 분할 진입 (§2.2 본문 미시작 OK)
42
- - 의존성 strict: 다음 큰 순서는 해당 §x.x 직전 순서 완료 후
55
+ - 의존성 strict: §x.x 단위로 직전 큰 순서 완료 후 다음 큰 순서 진입 (예: §4.1 본문 진입 = §4.1 헤더 분할 + §2.1 본문 완료 후)
43
56
  - 서브섹션끼리는 자유 (§4.1 안 와이어·항목·동작 등 순서)
44
57
  - §7/§8/§9 = 작업 중 자연 도출 (다른 § 영향, 5단계 참조)
45
- - §10 = 결정 발생 시 누적
58
+ - §10 = 결정 발생 시 누적 (각 결정 항목 = 1 사이클)
46
59
 
47
60
  #### 재진입 분기 (spec.md 첨부 시)
48
61
 
49
62
  | 상황 | 권장 진입점 |
50
63
  | ------------------------------------------ | ----------------------------------------------------------------- |
51
- | 헤더 `[OPEN: 날짜]` 있음 | 첫 OPEN 섹션 본문 포인터로 자료 재독 → 임의안 → 사이클 진입 |
64
+ | 헤더 `[OPEN: 날짜]` 있음 | 첫 OPEN 섹션 본문 분석 방법대로 재분석 → 임의안 → 사이클 진입 |
52
65
  | 본문 인라인 `[OPEN]` 만 | 첫 OPEN 항목부터 1건씩 |
53
66
  | 모두 `[확정]` | 사용자 추가 요구 대기 |
54
67
 
@@ -60,9 +73,9 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
60
73
 
61
74
  #### 자가검증 게이트
62
75
 
63
- 매 임의안 출력 직전 자문. 하나라도 실패 = 폐기 후 재작성 또는 사용자 질문.
76
+ 매 임의안 출력 직전 자문. 하나라도 실패 = 폐기 후 재작성 또는 사용자 질문. sd-base-rules "출력 직전 자가검증" 위에 추가되는 sd-spec 고유 검증.
64
77
 
65
- 1. **형식** — § 작성법 규약 따랐는가 (헤더 구조·표 형식·마커 표기)
78
+ 1. **형식** — § 작성법 규약 따랐는가 (해당 § 작성법 절 재독 후 헤더 구조·표 형식·마커 표기 점검)
66
79
  2. **출처** — 각 항목·필드·동작 1건마다 사용자 발언·자료 인용 가능한가
67
80
  - 인용 불가 = As-Is 답습 / 다른 §·example 패턴 복제 의심 → 제거 또는 별도 질문
68
81
  - As-Is (회의록·매뉴얼·현행 화면) 는 추정 자료 (sd-base-rules "결정 근거 안티패턴")
@@ -81,28 +94,33 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
81
94
  #### 확정 → Write
82
95
 
83
96
  - 헤더 마커 `[확정: YYYY-MM-DD]` 부착 (Bash `date +%Y-%m-%d`)
84
- - Write 직전 출력 1줄 (sd-base-rules "진행 근거 인용"):
97
+ - Write 직전 출력 1줄 (sd-base-rules "사용자 발언 의도 파악" — 의도 표기):
85
98
 
86
- `> 진행 근거: 사용자 발언 "<verbatim 인용>" 의 "<신호 부분>"`
99
+ `> 사용자 의도: 승인. 근거: 사용자 발언 "<verbatim 인용>" 의 "<실행 신호 부분>"`
87
100
 
88
101
  #### 수정 → 재작성
89
102
 
90
103
  - 사용자 정정 반영 → 2단계 임의안 재작성 → 3단계 재진행
91
104
 
92
- #### 보류 → Write (재분석 포인터)
105
+ #### 보류 → Write (분석 방법)
93
106
 
94
- - 헤더 마커 `[OPEN: YYYY-MM-DD]`
95
- - 본문 = 재분석 포인터만 (임의안 X):
96
- - **자료 위치**: Requirement Source 파일·범위 (예: `회의록.md L12-30`, `첨부A.pdf p.3`)
97
- - **대화 발췌**: 사용자 보류 즈음 또는 사이클 중간 끊김 시 사용자 의견·정정·근거 1~2줄 (Requirement Source 발화 X — 그건 자료 위치)
98
- - **자료 연결 메모**: 한 섹션이 여러 자료에 걸치면 연결 추정 한 줄
99
- - **다른 § 확정 영향 메모**: OPEN 유지 중 다른 § 확정이 본 OPEN 재분석에 영향 시 누적 한 줄. 형식: `§X.Y <섹션명> 확정 — <결정 한 줄>` (운용 = 5단계 OPEN 푸시)
107
+ OPEN 섹션 본문 = **분석 방법** (임의안 X) — 재분석할 절차 또는 접근 방식 자유 작성. 헤더 마커 `[OPEN: YYYY-MM-DD]`.
100
108
 
101
- 발생 경로:
102
- - 사용자 명시 보류 (임의안 후 보류 지시)
103
- - 헤더 분할 직후 자동 (분석 분할 §2.x/§3.x · 설계 분할 §4.x/§5.x/§6.x 헤더 분할 시 본문 미작성 상태로 일괄 OPEN)
109
+ 분석 방법 가이드 (해당 시 자유 조합):
104
110
 
105
- 재개 본문 포인터로 자료 재독 임의안 도출 확정되면 본문 임의안 교체 + 헤더 `[확정: 날짜]`.
111
+ - 자료 참고 자료 위치 명시 (예: `회의록.md L12-30`, `As-Is 매뉴얼 X.pdf p.3`)
112
+ - 사용자 보류 발언 인용 (1~2줄)
113
+ - 한 섹션이 여러 자료에 걸치면 자료 연결 추정 한 줄
114
+ - 다른 § 확정이 본 OPEN 재분석에 영향 시 한 줄 누적 (운용 = 5단계 OPEN 푸시. 형식: `§X.Y <섹션명> 확정 — <결정 한 줄>`)
115
+
116
+ **발생 경로** (본문 = 분석 방법 공통):
117
+
118
+ - 사용자 명시 보류 (임의안 후 보류 지시) — 분석 방법 자유 작성
119
+ - 헤더 분할 직후 자동 (본문 미작성 일괄 OPEN):
120
+ - 분석 분할 §2.x/§3.x — 분석 방법 = Requirement Source 자료 위치·접근 방식
121
+ - 설계 분할 §4.x/§5.x/§6.x — 분석 방법 = 관련 §2.x/§3.x 본문 참고
122
+
123
+ **재개**: 본문 분석 방법대로 자료 재독·분석 → 임의안 도출 → 확정되면 본문 임의안 교체 + 헤더 `[확정: 날짜]`.
106
124
 
107
125
  ### 5단계: 부산물 점검
108
126
 
@@ -127,11 +145,15 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
127
145
 
128
146
  영향 §가 현재 §와 다르면 "다른 § 영향" 절차.
129
147
 
148
+ #### 진행 방법 누적
149
+
150
+ 사이클 중 사용자가 진행 방식 합의 시 즉시 누적. 형식·운용 = `## spec.md 형식` 안 "진행 방법 누적" 절 참조.
151
+
130
152
  #### OPEN 섹션 영향 푸시
131
153
 
132
154
  확정 결정이 OPEN 상태 다른 § 재분석에 영향 줄 수 있는지 자문.
133
155
 
134
- - 영향 있으면 해당 OPEN 본문 포인터에 `§X.Y <섹션명> 확정 — <결정 한 줄>` 메모 추가
156
+ - 영향 있으면 해당 OPEN 본문 분석 방법에 `§X.Y <섹션명> 확정 — <결정 한 줄>` 메모 추가
135
157
  - 같은 작업에 함께. 사용자에 한 줄 보고
136
158
  - 별도 "맞나요?" X (확정 기록일 뿐, 임의안 X)
137
159
 
@@ -175,7 +197,7 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
175
197
  | 마커 | 의미 |
176
198
  | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
177
199
  | `[확정: YYYY-MM-DD]` | 섹션 확정. 본문 인라인 `[OPEN]` 있어도 무방. |
178
- | `[OPEN: YYYY-MM-DD]` | 섹션 미확정 (사용자 보류 또는 헤더 분할 직후 자동). 본문 = 재분석 포인터만. 임의안(BPMN/와이어프레임/항목 등) 채우지 X. |
200
+ | `[OPEN: YYYY-MM-DD]` | 섹션 미확정 (사용자 보류 또는 헤더 분할 직후 자동). 본문 = 분석 방법. 임의안(BPMN/와이어프레임/항목 등) 채우지 X. |
179
201
  | `[확정: YYYY-MM-DD, 구현: YYYY-MM-DD]` | §4/§5/§6 한정. `[확정]` 에 `구현: 날짜` 콤마 결합. sd-impl 시연 검증 통과 시 부착. 본문 변경 시 `, 구현: …` 제거 (구버전 구현 무효화). 운용 = 5단계 구현 마커 제거. |
180
202
 
181
203
  대괄호 쌍 연달은 표기(`[확정: …][구현: …]`) 마크다운이 reference-style 링크로 해석 → 단일 대괄호 안 콤마 결합 형식.
@@ -200,6 +222,35 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
200
222
  - `[화면.재고 확인]`·`[프로세스.입고]`·`[기타.과거 재고 조회]`
201
223
  - `[자동 처리.재고 스냅샷]`·`[횡단 처리.DataLog 기록]`·`[외부인터페이스.ERP 입고 통보]`·`[공통 정의.Location 라벨]`
202
224
 
225
+ **관련 섹션 한 줄**: §2~§9 본문에 `관련 섹션: [카테고리.이름], ...` 한 줄로 참조/의존 섹션 콤마 나열 (카테고리 제한 없음). **임의안 단위 X** — 다른 sub-section 작성 부산물로 자동 누적.
226
+
227
+ ### sub-section 헤더 레벨
228
+
229
+ §별 sub-section 의 spec.md 본문 표기 룰 통합 — 평문 (헤더 없이 라벨·한 줄·bullet 직접) / h4 마크다운 헤더 (`####`).
230
+
231
+ | § | 평문 sub-section (형식) | h4 sub-section |
232
+ | -- | ------------------------------------------------------------- | -------------------------------------------------------------------- |
233
+ | §2 | BPMN (mermaid fence) · 흐름 설명 bullet · 관련 섹션 (한 줄) | (없음) |
234
+ | §4 | 헤더 인덱스 (한 줄씩) · 기능 개요 (라벨 + bullet) | 와이어프레임 · 항목 · 동작 · 시각 규칙 · 도메인 규칙·로직 · 자유 추가 |
235
+ | §5 | 목적 (라벨 + 한 줄) · 트리거 (라벨 + 본문) · 관련 섹션 (한 줄) | 처리 · 예외 처리 · 자유 추가 |
236
+ | §6 | 목적 (라벨 + 한 줄) · 트리거 (라벨 + 본문) · 관련 섹션 (한 줄) | 처리 · 예외 처리 · 자유 추가 |
237
+ | §9 | 기본 정보 (라벨 bullet 3) · 관련 섹션 (한 줄) | 자료 매핑 · 예외 처리 |
238
+
239
+ SKILL.md 안 `#### BPMN`·`#### 목적` 등 표기는 작성법 sub-section 분류. spec.md 본문 표기는 위 표 룰.
240
+
241
+ ### 진행 방법 누적
242
+
243
+ 사이클 중 사용자가 진행 방식 합의 시 (예: "시트별로 분석", "시트별 분석 = 6단계 답습") 즉시 누적. 범위에 따라 2 경로:
244
+
245
+ **spec 전체 적용** → §10 진행 방법 항목 (`- YYYY-MM-DD: ...` bullet)
246
+
247
+ **분석 단위 한정** (§X.Y 또는 안 sub-section/sub-단위) → 해당 단위 도입부 NOTE blockquote:
248
+ - 형식: `> **NOTE** (진행 방법): <한 줄 요약>` blockquote + 다단 (`> 1. ...`·`> 2. ...` 형식)
249
+ - 분석 단위 헤더가 `[OPEN]` 상태면 본 NOTE 가 다른 대화 재진입 시 진행 룰 회복 출처
250
+ - 본 단위 모든 sub-단위 합의 후 `[확정]` 환원 시 NOTE 유지 (진행 이력 기록 보존) 또는 제거 (분석 단위 룰)
251
+
252
+ 별도 "맞나요?" X (사용자 발언 직접 기록).
253
+
203
254
  ## §1 개요
204
255
 
205
256
  **임의안 단위**: §1.1·§1.2·§1.3·§1.4 4건. §1.4 = ASCII 구성도 1 + 장치 목록 1 (총 2).
@@ -226,6 +277,8 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
226
277
 
227
278
  ### §1.4 환경/장치
228
279
 
280
+ 분석 단계 초안 합의 → 설계 단계 진행 중 보강 가능 (5단계 다른 § 영향).
281
+
229
282
  구성도와 장치 목록 목적 별개 → 각각 독립 작성.
230
283
 
231
284
  - **ASCII 구성도**: 현장이 어떻게 생겼는지 시각화 — 이해당사자 간 그림 맞추기
@@ -239,7 +292,6 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
239
292
  **임의안 단위**: §2.x 1개당 위→아래 1건씩:
240
293
  1. BPMN (사용자에겐 ASCII, 확정 후 mermaid 저장)
241
294
  2. 흐름 설명 bullet
242
- 3. 관련 섹션
243
295
 
244
296
  **모범**: example-spec.md §2.1.
245
297
 
@@ -291,24 +343,21 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
291
343
 
292
344
  ### 본문 구조
293
345
 
294
- #### 1. BPMN
295
-
296
- - 사용자에겐 ASCII, 확정 후 mermaid 저장
297
- - 노드 = 최종 사용자 액션·시스템 핵심 트랜잭션 (1행 동사구). 줄바꿈 `<br/>` X
298
- - Actor·장치·매체(PDA·PC·종이)는 액션 컨텍스트로 노드에 명시 OK (예: `창고 작업자: PDA 박스 바코드 스캔`). OS·해상도·API·DB 등 시스템 내부 디테일 X
299
- - 외부 채널 송신(메일·파일 다운로드)·외부 응답 수신(다음 사이클 자료 도착)도 노드. 처리 노드 = 사각(`T[...]`), 이벤트 노드 = 둥근(`E([...])`)
300
- - 분기 = 사용자 의사결정 분기만
301
-
302
- #### 2. 흐름 설명 bullet
303
-
304
- - BPMN 아래·관련 섹션 위에 자유 나열 (별도 헤더 X)
305
- - 노드 동사구만으로 안 잡히는 룰·조건·계산식·외부 약속·자료 출처 인용 등 1줄씩
306
- - §4/§5/§6 본문 작성 시 이 bullet 들을 근거로 매핑 → 누락 방지
307
- - 단, §4/§5/§6 자체 디테일(필드·UI·파일 확장자) / §7/§8/§9 정형 명세는 여기 X — 각 § 본문에선 이름 참조
346
+ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨" 표 참조.
308
347
 
309
- #### 3. 관련 섹션
348
+ **평문 sub-section** (§2.x 헤더 바로 아래, 위→아래):
310
349
 
311
- `관련 섹션: [카테고리.이름], ...` 한 줄. 본 섹션이 참조/의존하는 다른 섹션을 콤마 나열 (카테고리 제한 없음).
350
+ - **BPMN** (mermaid fence):
351
+ - 사용자에겐 ASCII, 확정 후 mermaid 저장
352
+ - 노드 = 최종 사용자 액션·시스템 핵심 트랜잭션 (1행 동사구). 줄바꿈 `<br/>` X
353
+ - Actor·장치·매체(PDA·PC·종이)는 액션 컨텍스트로 노드에 명시 OK (예: `창고 작업자: PDA 박스 바코드 스캔`). OS·해상도·API·DB 등 시스템 내부 디테일 X
354
+ - 외부 채널 송신(메일·파일 다운로드)·외부 응답 수신(다음 사이클 자료 도착)도 노드. 처리 노드 = 사각(`T[...]`), 이벤트 노드 = 둥근(`E([...])`)
355
+ - 분기 = 사용자 의사결정 분기만
356
+ - **흐름 설명 bullet** (BPMN 아래·관련 섹션 위에 자유 나열):
357
+ - 노드 동사구만으로 안 잡히는 룰·조건·계산식·외부 약속·자료 출처 인용 등 1줄씩
358
+ - §4/§5/§6 본문 작성 시 이 bullet 들을 근거로 매핑 → 누락 방지
359
+ - 단, §4/§5/§6 자체 디테일(필드·UI·파일 확장자) / §7/§8/§9 정형 명세는 여기 X — 각 § 본문에선 이름 참조
360
+ - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 한 줄, 자동 누적): 본문 내 참조 절 룰 따름
312
361
 
313
362
  ### 안티패턴 (분할)
314
363
 
@@ -332,23 +381,26 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
332
381
  ### 본문 구조
333
382
 
334
383
  - 요구 의도 (한 줄~한 문단)
335
- - `관련 섹션: [카테고리.이름], ...`
384
+ - 관련 섹션 (본문 내 참조 절)
336
385
  - 구현 디테일은 §4 화면 / §5 자동 처리 / §6 횡단 처리 본문에서
337
386
 
338
387
  ## §4 화면
339
388
 
340
389
  **임의안 단위**: §4.x 1개당 §4.x 표준 구조 절 단위로 위→아래, 각 확정 후 다음:
341
- 1. 헤더 인덱스 (Actor·관련 섹션) — 1건 (본문 짧으면 기능 개요와 묶기 가능)
342
- 2. 기능 개요 — 1건
343
- 3. 와이어프레임1건
344
- 4. 항목 영역(좌/우 등) 하위 요소(필터·시트 컬럼·입력/상세 폼) 단위로 쪼개기. 각 영역의 각 하위 요소별 1건
345
- 5. 동작 1건
390
+ 1. 기능 개요 — 1건
391
+ 2. 와이어프레임 — 1건
392
+ 3. 항목다단 분할:
393
+ - 1차: 영역 (좌/우 등) 단위 와이어프레임 영역 라벨 기준
394
+ - 2차: 영역 안 하위 요소 (필터·시트 컬럼·입력/상세 폼) 단위
395
+ - 1 임의안 = 1 (영역, 하위 요소) 쌍 — 예: `좌측 영역 — 필터` 1건, `좌측 영역 — 시트 컬럼` 별건
396
+ 4. 동작 — 1건
397
+ 5. 시각 규칙 (해당 시) — 1건
346
398
  6. 도메인 규칙·로직 (해당 시) — 규칙별 1건
347
- 7. 양식 매핑 (해당 시) — 양식별 1건
399
+ 7. 자유 추가 sub-section (해당 시) — sub-section 1건 (예: 업로드 양식·다운로드 양식 각각). 복잡 양식 안 sub-단위 (시트 등) = sub-단위별 1건.
348
400
 
349
- 신규 작성·정정·골격 신설 무관 동일 적용.
401
+ (헤더 인덱스 = Actor + 관련 섹션 모두 자동 누적 — 임의안 단위 X)
350
402
 
351
- 설계 분할 단계 헤더 분할 시 §4.x 헤더 `[OPEN: 날짜]` 일괄 + 본문 = 관련 §2.x/§3.x 1줄 참조 포인터. 임의안 본문(와이어프레임·항목·동작) X.
403
+ 신규 작성·정정·골격 신설 무관 동일 적용.
352
404
 
353
405
  **모범** (와이어 패턴별):
354
406
  - 시트 화면: example-spec.md §4.1·§4.3
@@ -356,6 +408,19 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
356
408
  - PDA: §4.5
357
409
  - 분석 시트: §4.6
358
410
 
411
+ ### 설계 분할 절차 (§4/§5/§6 공통)
412
+
413
+ 설계 분할 단계에서 §4/§5/§6 헤더를 §2/§3 본문 (+ §8 마스터 엔티티) 에서 도출. 절차:
414
+
415
+ 1. **§4 화면 도출**:
416
+ - §2 BPMN 최종 사용자 액션 노드 + §3 사용자 직접 요구 → 트랜잭션/조회 화면
417
+ - §8 마스터 엔티티 → 마스터 화면
418
+ - 도메인 묶음/장치별 그룹화 → 화면 목록 표
419
+ 2. **§5 자동 처리 도출** — §2/§3 의 시스템 백그라운드 처리 (스케줄·이벤트 트리거·외부 자료 수집·적재) 추출
420
+ 3. **§6 횡단 처리 도출** — §3 시스템 전반 자동 룰 + §4/§5 부수효과 동작 추출
421
+
422
+ 각 § 헤더 분할 직후 자동 OPEN (4단계 보류 발생 경로 참조).
423
+
359
424
  ### 화면 목록 표 (§4 첫머리)
360
425
 
361
426
  5컬럼: `§ | 분류 | 화면 | 유형 | 장치`
@@ -367,16 +432,18 @@ sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최
367
432
 
368
433
  ### 화면 정의 (§4.x 표준 구조)
369
434
 
370
- #### 헤더 인덱스 ( 줄씩)
435
+ 화면 헤더에 (장치) 표기 유지: `### N.N 화면명 (PC) [확정: 날짜]` 또는 `(PDA)`.
371
436
 
372
- - `Actor: <역할>`
373
- - `관련 섹션: [카테고리.이름], ...` — 모달 호출·시트 영역 재활용 등 화면 간 의존 포함
437
+ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨" 표 참조.
374
438
 
375
- 화면 헤더에 (장치) 표기 유지: `### N.N 화면명 (PC) [확정: 날짜]` 또는 `(PDA)`.
439
+ **평문 sub-section** (§4.x 헤더 바로 아래, 위→아래):
376
440
 
377
- #### 기능 개요
441
+ - **헤더 인덱스** (한 줄씩, 자동 누적 — 임의안 단위 X):
442
+ - `Actor: <역할>` — §2 BPMN swim lane 또는 §3 사용자 직접 요구에서 자연 도출
443
+ - `관련 섹션:` 본문 내 참조 절 룰 따름 — 모달 호출·시트 영역 재활용 등 화면 간 의존 포함
444
+ - **기능 개요**: `기능 개요:` 라벨 다음 bullet 로 화면 기능 설명
378
445
 
379
- bullet 화면 기능 설명.
446
+ **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
380
447
 
381
448
  #### 와이어프레임 (텍스트)
382
449
 
@@ -417,7 +484,10 @@ ASCII 그림 공통 규칙은 output-style `sd-tone` "ASCII 그림" 절 참조.
417
484
 
418
485
  #### 동작
419
486
 
420
- 액션 버튼·이벤트별 처리.
487
+ bullet `- <트리거>: 처리 내용` 형식.
488
+
489
+ - 트리거 예: `` `[버튼]` 클릭 ``, `박스 바코드 스캔`, `Enter 키`
490
+ - 처리 내용: 동사구 + 대상 (예: `[화면.X] 을 모달로 띄움`, `검색 필터 조건으로 목록 갱신`)
421
491
 
422
492
  #### 시각 규칙 (해당 시)
423
493
 
@@ -425,18 +495,19 @@ ASCII 그림 공통 규칙은 output-style `sd-tone` "ASCII 그림" 절 참조.
425
495
 
426
496
  #### 도메인 규칙·로직 (해당 시)
427
497
 
428
- 표준 절(항목/동작/양식 매핑)로 안 담기는 화면 고유 도메인 요구. 자유 명칭 절 필요한 만큼 추가. 누락 없이 적는 게 핵심.
429
-
430
- #### 양식 매핑 (해당 시)
498
+ 표준 sub-section 으로 안 담기는 화면 고유 도메인 요구. 자유 명칭 절 필요한 만큼 추가. 누락 없이 적는 게 핵심.
431
499
 
432
- 외부 양식 파일을 다루는 동작(업로드·다운로드)별로 매핑 표.
500
+ **자유 추가 sub-section** (`#### 도메인 규칙·로직` 아래, 화면별 필요 시 h4 자유 추가):
433
501
 
434
- - 컬럼: `파일 컬럼` + `도메인 모델 ([모델.X.Y])` + `변환·규칙 (해당 시)`
435
- - 양식별 별도 표 + 방향 명시 (예: `업로드 양식`, `다운로드 양식`)
436
- - §7.x 명세 양식이면 컬럼명 일치, 일회성이면 화면 안에서 직접 명세
502
+ - **양식 입출력** (예: `#### 업로드 양식`·`#### 다운로드 양식`) 양식별 별도 sub-section.
503
+ - 단순 양식: 안 단순 — 컬럼 `파일 컬럼` + `도메인 모델 ([모델.X.Y])` + `변환·규칙 (해당 )`. §7.x 명세 양식이면 컬럼명 일치, 일회성이면 sub-section 안에서 직접 명세.
504
+ - 복잡 양식 (다중 시트·구조 분할): 안 sub-단위 (시트 등) = h5 (`##### <시트>` 등). sub-단위 진행 방법 NOTE 가능 (`## spec.md 형식` 안 "진행 방법 누적" 절 참조).
505
+ - **기타 화면 고유 정보** — 자유 sub-section 이름. 표준 sub-section 으로 안 담기는 화면 고유 정보 누락 방지.
437
506
 
438
507
  ### 마스터 화면 표준
439
508
 
509
+ 화면 목록 표 유형 = 마스터인 §4.x 에 적용. 화면 정의 sub-header (와이어프레임·항목·동작) 와 함께.
510
+
440
511
  - ID 컬럼 = 편집 버튼 (`[E N]`)
441
512
  - 첫 컬럼 = 선택 체크박스 (`[ ]`)
442
513
  - 시트 상단 버튼바: `[등록] [선택 삭제] [선택 복구] [엑셀 업로드] [엑셀 다운로드]`
@@ -444,7 +515,7 @@ ASCII 그림 공통 규칙은 output-style `sd-tone` "ASCII 그림" 절 참조.
444
515
 
445
516
  ### 상단 command 바
446
517
 
447
- 페이지 제목 바로 아래, 시트/폼 영역 위. 페이지 전체 또는 현재 레코드 단위 액션 바.
518
+ 화면 정의 sub-header 와이어프레임·동작과 함께 작성. 페이지 제목 바로 아래, 시트/폼 영역 위. 페이지 전체 또는 현재 레코드 단위 액션 바.
448
519
 
449
520
  - 좌측: 필터 입력 + 조회 (list) / 진입 컨텍스트 표시 (detail)
450
521
  - 우측: 페이지·레코드 단위 액션 (있을 때만)
@@ -459,6 +530,8 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
459
530
 
460
531
  ### 모달 처리
461
532
 
533
+ 호출하는 쪽 §4.x 동작 sub-header + 피호출 §4.x 양쪽 적용.
534
+
462
535
  - 모달 화면 = 별도 §4.x. 부르는 쪽 동작에 "→ [화면.X] 을 모달로 띄움" 명시
463
536
  - 화면명에 "(모달)" 등 사용 맥락 표기 X — 같은 화면이 다른 곳에서 다르게 호출될 수 있음
464
537
  - 화면 일부 영역(시트·탭)이 다른 화면에서 모달로 재활용되면 별도 §4.x 분리 X. 대신 그 화면 동작 절 끝에 영역별 모달 호출 시 제약(편집 가능 여부 / 선택 전용 / multiselect) 한 줄씩 명시. 호출하는 쪽 동작은 "→ [화면.X] 의 <영역> 을 모달로 띄움" 표기
@@ -466,15 +539,10 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
466
539
  ## §5 자동 처리
467
540
 
468
541
  **임의안 단위**: §5.x 1개당 위→아래 1건씩:
469
- 1. Flowchart (사용자에겐 ASCII, 확정 후 mermaid 저장)
470
- 2. 목적 (본문 짧으면 트리거와 묶기 가능)
471
- 3. 트리거
472
- 4. 처리
473
- 5. 예외 처리
474
- 6. 양식 매핑 (해당 시) — 양식별 1건
475
- 7. 관련 섹션
476
-
477
- 설계 분할 단계 헤더 분할 시 §5.x 헤더 `[OPEN: 날짜]` 일괄 + 본문 = 관련 §2.x/§3.x 1줄 참조 포인터.
542
+ 1. 목적 / 트리거 (한 묶음)
543
+ 2. 처리
544
+ 3. 예외 처리
545
+ 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 읽기 양식·쓰기 양식 각각). 복잡 양식 안 sub-단위 (시트 등) = sub-단위별 1건.
478
546
 
479
547
  **모범**: example-spec.md §5.1.
480
548
 
@@ -486,46 +554,36 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
486
554
 
487
555
  ### 본문 구조
488
556
 
489
- #### Flowchart
557
+ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨" 표 참조.
490
558
 
491
- - 사용자에겐 ASCII, 확정 mermaid 저장
492
- - 노드 = 시스템 처리 단계 (1행 동사구)
493
- - 분기 = 시스템 조건 분기·예외
494
- - 시작 = 트리거 (시간·이벤트). 종결 = 결과
495
- - 특수 케이스(상태 머신 / 호출 시퀀스 등)는 mermaid 다른 type(stateDiagram-v2 / sequenceDiagram) 가능
559
+ **평문 sub-section** (§5.x 헤더 바로 아래, 라벨 + 본문 형식):
496
560
 
497
- #### 목적·트리거·처리·예외 처리
561
+ - `목적:` 도메인 목적 한 줄
562
+ - `트리거:` 스케줄·이벤트
563
+ - `관련 섹션:` 본문 내 참조 절 룰 따름
498
564
 
499
- - 목적: 본문 짧으면 트리거와 묶기 가능
500
- - 트리거: 스케줄·이벤트
501
- - 처리: 처리 단계
502
- - 예외 처리: 실패 케이스별 위험·대처·재시도 한계
565
+ **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
503
566
 
504
- #### 양식 매핑 (해당 시)
567
+ #### 처리
505
568
 
506
- 외부 양식 파일 다루는 처리(읽기·쓰기)별 매핑 표.
569
+ 처리 단계.
507
570
 
508
- - 컬럼: `파일 컬럼` + `도메인 모델 ([모델.X.Y])` + `변환·규칙 (해당 시)`
509
- - 양식별 별도 표 + 방향 명시 (예: `읽기 양식`, `쓰기 양식`)
510
- - §7.x 명세 양식이면 컬럼명 일치, 일회성이면 처리 본문에서 직접 명세
571
+ #### 예외 처리
511
572
 
512
- #### 관련 섹션
573
+ 실패 케이스별 위험·대처·재시도 한계.
513
574
 
514
- `관련 섹션: [카테고리.이름], ...` 줄.
575
+ **자유 추가 sub-section** (`#### 예외 처리` 아래, §5.x 별 필요 시 h4 자유 추가):
515
576
 
516
- ## §6 횡단 처리
577
+ - **양식 입출력** (예: `#### 읽기 양식`·`#### 쓰기 양식`) — §4 양식 입출력 sub-section 룰 동일. 방향 = 읽기·쓰기. 일회성이면 sub-section 안에서 직접 명세.
578
+ - **기타 자동 처리 고유 정보** — 자유 sub-section 이름.
517
579
 
518
- **임의안 단위**: §6.x 1개당 위→아래 1건씩 (§5 와 동일 구조 + 모델 매핑):
519
- 1. Flowchart (사용자에겐 ASCII, 확정 후 mermaid 저장)
520
- 2. 목적
521
- 3. 트리거 (부수효과 발동 조건)
522
- 4. 처리
523
- 5. 예외 처리
524
- 6. 양식 매핑 (해당 시)
525
- 7. 모델 매핑 (해당 시)
526
- 8. 관련 섹션
580
+ ## §6 횡단 처리
527
581
 
528
- 설계 분할 단계 헤더 분할 시 §6.x 헤더 `[OPEN: 날짜]` 일괄 + 본문 = 관련 §2.x/§3.x 1줄 참조 포인터.
582
+ **임의안 단위**: §6.x 1개당 위→아래 1건씩:
583
+ 1. 목적 / 트리거 (부수효과 발동 조건) (한 묶음)
584
+ 2. 처리
585
+ 3. 예외 처리
586
+ 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 양식 매핑·모델 매핑). 복잡 양식 안 sub-단위 = sub-단위별 1건.
529
587
 
530
588
  **모범**: example-spec.md §6.1.
531
589
 
@@ -544,15 +602,15 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
544
602
 
545
603
  ### 본문 구조
546
604
 
547
- #### Flowchart
605
+ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨" 표 참조.
548
606
 
549
- - §5 동일
550
- - 시작 = 트리거 (부수효과 발동 조건). 종결 = 결과·기록
607
+ **평문 sub-section** (§6.x 헤더 바로 아래, 라벨 + 본문 형식):
551
608
 
552
- #### 트리거 (부수효과 발동 조건)
609
+ - `목적:` 부수효과의 도메인 목적
610
+ - `트리거:` 어떤 동작의 부수로 발동되는지 + 적용 범위 (예: "모든 엔티티 update 시 / 전체", "특정 도메인 X 변경 시 / 특정 엔티티", "API 요청 시 / 전체")
611
+ - `관련 섹션:` 본문 내 참조 절 룰 따름
553
612
 
554
- - 어떤 동작의 부수로 발동되는지 명시 (예: "모든 엔티티 update 시", "특정 도메인 X 변경 시", "API 요청 시")
555
- - 적용 범위 (전체·특정 §·특정 엔티티) 명시
613
+ **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
556
614
 
557
615
  #### 처리
558
616
 
@@ -562,24 +620,18 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
562
620
 
563
621
  실패 케이스별 위험·대처·재시도 한계.
564
622
 
565
- #### 양식 매핑 (해당 시)
566
-
567
- §5 동일 룰.
568
-
569
- #### 모델 매핑 (해당 시)
570
-
571
- 이 횡단 처리가 사용·갱신하는 도메인 모델 매핑.
623
+ **자유 추가 sub-section** (`#### 예외 처리` 아래, §6.x 별 필요 h4 자유 추가):
572
624
 
573
- - 표: `필드 ([모델.X.Y])` + `용도` + `변환·규칙 (해당 시)`
574
-
575
- #### 관련 섹션
576
-
577
- `관련 섹션: [카테고리.이름], ...` 한 줄.
625
+ - **양식 입출력** (§5 양식 입출력 sub-section 동일)
626
+ - **모델 매핑** (예: `#### 모델 매핑`) — 이 횡단 처리가 사용·갱신하는 도메인 모델 매핑. 표 `필드 ([모델.X.Y])` + `용도` + `변환·규칙 (해당 시)`.
627
+ - **기타 횡단 처리 고유 정보** — 자유 sub-section 이름.
578
628
 
579
629
  ## §7 공통 정의
580
630
 
581
631
  작성 중 자연 도출 (5단계 다른 § 영향). 새 도메인 어휘·시스템 규격 발견 시 사이클 진입.
582
632
 
633
+ **모범**: example-spec.md §7.1~§7.4.
634
+
583
635
  ### §7.1 용어 사전 (고정)
584
636
 
585
637
  도메인 어휘·약어·시스템 내 의미 정의.
@@ -613,6 +665,8 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
613
665
 
614
666
  작성 중 자연 도출. 새 엔티티 발견 시 사이클 진입.
615
667
 
668
+ **모범**: example-spec.md §8.1~§8.6.
669
+
616
670
  섹션 구조: `필드:` 표 + `키/제약:` 불릿.
617
671
 
618
672
  ### 필드 표
@@ -635,6 +689,8 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
635
689
 
636
690
  작성 중 자연 도출. 외부 시스템 호출 발견 시 사이클 진입.
637
691
 
692
+ **모범**: example-spec.md §9.1.
693
+
638
694
  ### 정의
639
695
 
640
696
  §9 = 상대 시스템 고유 인터페이스 약속 (시스템마다 자료 매핑·방식 달라 협상 필요).
@@ -646,20 +702,34 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
646
702
 
647
703
  도메인 약속 레벨까지만. 구체 endpoint URL·HTTP method·query 파라미터·인증 흐름 단계(grant_type·scope·token endpoint)·SDK 메소드명 등 구현 디테일 X — 구현이 알아서. (§2 BPMN·§4 와이어·§8 도메인 모델과 동일 원칙)
648
704
 
649
- ### 본문 구조 (위→아래)
705
+ ### 본문 구조
706
+
707
+ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨" 표 참조.
650
708
 
651
- - **기본 정보** (헤더 없이 불릿 3개):
709
+ **평문 sub-section** (§9.x 헤더 바로 아래, 위→아래):
710
+
711
+ - **기본 정보** (라벨 bullet 3):
652
712
  - `상대 시스템: <시스템명>`
653
713
  - `방향: <방향 표기>`
654
714
  - `전송 방식: <방식>`
655
- - **자료 매핑** 헤더 + (상대 시스템 필드 시스템 출처)
656
- - **예외 처리** 헤더 + 본문 (실패 케이스별 위험·대처·재시도 한계)
657
- - **관련 섹션** — 호출자 등 참조/의존 섹션을 `[카테고리.이름]` 콤마 나열
715
+ - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 줄, 자동 누적): 본문 내 참조 절 룰 따름. 호출자 등 참조/의존 섹션 포함.
716
+
717
+ **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
718
+
719
+ #### 자료 매핑
720
+
721
+ 표 — 상대 시스템 필드 ↔ 본 시스템 출처.
722
+
723
+ #### 예외 처리
724
+
725
+ 실패 케이스별 위험·대처·재시도 한계.
658
726
 
659
727
  ## §10 본문 외 결정사항
660
728
 
661
729
  §1~§9 어디에도 자연스럽게 안 들어가는 결정·메모를 누적. §1~§9 적절한 자리에 박을 수 있는 결정은 §10 X (누락 도피처 X).
662
730
 
731
+ **모범**: example-spec.md §10.
732
+
663
733
  ### 형식
664
734
 
665
735
  각 항목:
@@ -675,6 +745,7 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
675
745
 
676
746
  매번 분류 X — 자연 흐름대로 누적. 분석 제외 신호 있을 때만 `[제외]` 마커.
677
747
 
748
+ - **진행 방법**: **spec 전체** 작업의 사용자 합의 진행 방식 (예: 작성 순서·범위 한정·전체 적용 규칙 등). 분석 단위 한정은 `## spec.md 형식` 안 "진행 방법 누적" 절 참조 — sd-spec 본인 후속 참조용
678
749
  - **미래 결정**: 단계 도달 전 결정 (예: "추후 §4.5 작성 시 X 항목 포함") — sd-spec 본인 후속 참조용
679
750
  - **구현 영역 결정**: spec 본문에 안 들어가는 구현 측 결정 (예: 라이브러리 선택) — sd-impl 후속 참조용
680
751
  - **부정 결정**: "X 안 함" 부정 명시 — 반복 질문 방지용
@@ -695,6 +766,9 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
695
766
  - 근거: 현재 단계 X
696
767
  - 후속 처리: 다른 spec 신규
697
768
  - 자료 위치: 회의록_3.md L80-95
769
+
770
+ - 2026-05-22: §4 와이어프레임은 영역 추상화만, 시각 디테일은 항목 표/동작 절로 분리
771
+ - 근거: 사용자 합의 — 와이어 분량 관리
698
772
  ```
699
773
 
700
774
  ## spec.md 골격 (분석 분할 단계)
@@ -734,7 +808,7 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
734
808
  ```
735
809
 
736
810
  분석 분할 결과 반영:
737
- - §2.x/§3.x 헤더 일괄 추가 (헤더 마커 `[OPEN: 날짜]` + 본문 = 재분석 포인터)
811
+ - §2.x/§3.x 헤더 일괄 추가 (헤더 마커 `[OPEN: 날짜]` + 본문 = 분석 방법)
738
812
  - §10 = 분석 분할 단계 사용자 명시 제외 결정 (`[제외]` 마커) 반영
739
813
 
740
814
  ## 외부 참조
@@ -743,4 +817,4 @@ list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단
743
817
  | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
744
818
  | [references/example-spec.md](references/example-spec.md) | spec.md 형식 모범 (WMS 예시 1건). 각 § 작성법의 "모범" 표기에서 참조 |
745
819
  | [.claude/references/sd-requirement-source-handling.md](../../references/sd-requirement-source-handling.md) | Requirement Source 부정확성 처리 (STT 오타·화자 모호·발화 모호·도메인 용어 다의성) |
746
- | [.claude/rules/sd-base-rules.md](../../rules/sd-base-rules.md) | 결정 근거·임의안 단위·진행 근거 인용·표현 톤 등 상위 룰 (자동 로드, 중복 명시 X) |
820
+ | [.claude/rules/sd-base-rules.md](../../rules/sd-base-rules.md) | 결정 근거·임의안 단위·발언 의도 파악·표현 톤 등 상위 룰 (자동 로드, 중복 명시 X) |