@simplysm/sd-claude 14.0.82 → 14.0.84

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 (90) hide show
  1. package/claude/references/sd-requirement-source-handling.md +20 -20
  2. package/claude/references/sd-simplysm14/README.md +13 -13
  3. package/claude/references/sd-simplysm14/manuals/client-component.md +92 -92
  4. package/claude/references/sd-simplysm14/manuals/client-crud.md +11 -11
  5. package/claude/references/sd-simplysm14/manuals/client-demo.md +28 -28
  6. package/claude/references/sd-simplysm14/manuals/client-rules.md +1 -1
  7. package/claude/references/sd-simplysm14/manuals/client-setup.md +21 -21
  8. package/claude/references/sd-simplysm14/manuals/client-tab.md +3 -3
  9. package/claude/references/sd-simplysm14/manuals/logging.md +15 -15
  10. package/claude/references/sd-simplysm14/manuals/orm-union.md +6 -6
  11. package/claude/references/sd-simplysm14/manuals/orm.md +19 -19
  12. package/claude/references/sd-simplysm14/manuals/test.md +33 -33
  13. package/claude/rules/sd-design-rules.md +18 -18
  14. package/claude/sd-system-prompt.md +369 -0
  15. package/claude/skills/sd-commit/SKILL.md +10 -10
  16. package/claude/skills/sd-config/SKILL.md +2 -2
  17. package/claude/skills/sd-demo/SKILL.md +45 -45
  18. package/claude/skills/sd-dev/SKILL.md +15 -15
  19. package/claude/skills/sd-docs/SKILL.md +7 -7
  20. package/claude/skills/sd-docs/references/subagent-prompt.md +33 -33
  21. package/claude/skills/sd-impl/SKILL.md +60 -60
  22. package/claude/skills/sd-review/SKILL.md +9 -9
  23. package/claude/skills/sd-skill/SKILL.md +74 -74
  24. package/claude/skills/sd-skill/evals/fixtures/existing-skill/.claude/skills/todo-format/SKILL.md +1 -1
  25. package/claude/skills/sd-spec/SKILL.md +354 -319
  26. package/claude/skills/sd-spec/references/example-spec.md +104 -104
  27. package/claude/skills/sd-unpack/SKILL.md +34 -34
  28. package/claude/skills/sd-unpack/scripts/handlers/__pycache__/office_com.cpython-314.pyc +0 -0
  29. package/claude/skills/sd-unpack/scripts/handlers/office_com.py +234 -159
  30. package/claude/skills/sd-use/SKILL.md +4 -4
  31. package/package.json +1 -1
  32. package/claude/references/sd-simplysm14/apis/angular/README.md +0 -37
  33. package/claude/references/sd-simplysm14/apis/angular/app-structure.md +0 -92
  34. package/claude/references/sd-simplysm14/apis/angular/buttons.md +0 -88
  35. package/claude/references/sd-simplysm14/apis/angular/crud.md +0 -100
  36. package/claude/references/sd-simplysm14/apis/angular/forms.md +0 -200
  37. package/claude/references/sd-simplysm14/apis/angular/infrastructure.md +0 -231
  38. package/claude/references/sd-simplysm14/apis/angular/kanban.md +0 -80
  39. package/claude/references/sd-simplysm14/apis/angular/layout.md +0 -92
  40. package/claude/references/sd-simplysm14/apis/angular/modal.md +0 -115
  41. package/claude/references/sd-simplysm14/apis/angular/routing.md +0 -107
  42. package/claude/references/sd-simplysm14/apis/angular/select-dropdown.md +0 -35
  43. package/claude/references/sd-simplysm14/apis/angular/selection-managers.md +0 -82
  44. package/claude/references/sd-simplysm14/apis/angular/shared-data.md +0 -134
  45. package/claude/references/sd-simplysm14/apis/angular/sheet.md +0 -127
  46. package/claude/references/sd-simplysm14/apis/angular/toast.md +0 -97
  47. package/claude/references/sd-simplysm14/apis/angular/visual.md +0 -167
  48. package/claude/references/sd-simplysm14/apis/capacitor-plugin-auto-update/README.md +0 -79
  49. package/claude/references/sd-simplysm14/apis/capacitor-plugin-file-system/README.md +0 -83
  50. package/claude/references/sd-simplysm14/apis/capacitor-plugin-intent/README.md +0 -91
  51. package/claude/references/sd-simplysm14/apis/capacitor-plugin-usb-storage/README.md +0 -49
  52. package/claude/references/sd-simplysm14/apis/core-browser/README.md +0 -143
  53. package/claude/references/sd-simplysm14/apis/core-common/README.md +0 -58
  54. package/claude/references/sd-simplysm14/apis/core-common/extensions.md +0 -88
  55. package/claude/references/sd-simplysm14/apis/core-common/features.md +0 -51
  56. package/claude/references/sd-simplysm14/apis/core-common/types.md +0 -88
  57. package/claude/references/sd-simplysm14/apis/core-common/utils.md +0 -189
  58. package/claude/references/sd-simplysm14/apis/core-node/README.md +0 -12
  59. package/claude/references/sd-simplysm14/apis/core-node/consola.md +0 -59
  60. package/claude/references/sd-simplysm14/apis/core-node/cpx.md +0 -44
  61. package/claude/references/sd-simplysm14/apis/core-node/fs-watcher.md +0 -42
  62. package/claude/references/sd-simplysm14/apis/core-node/fsx.md +0 -53
  63. package/claude/references/sd-simplysm14/apis/core-node/pathx.md +0 -24
  64. package/claude/references/sd-simplysm14/apis/core-node/worker.md +0 -65
  65. package/claude/references/sd-simplysm14/apis/excel/README.md +0 -193
  66. package/claude/references/sd-simplysm14/apis/lint/README.md +0 -94
  67. package/claude/references/sd-simplysm14/apis/orm-common/README.md +0 -58
  68. package/claude/references/sd-simplysm14/apis/orm-common/db-context.md +0 -77
  69. package/claude/references/sd-simplysm14/apis/orm-common/executable.md +0 -20
  70. package/claude/references/sd-simplysm14/apis/orm-common/expr.md +0 -92
  71. package/claude/references/sd-simplysm14/apis/orm-common/queryable.md +0 -98
  72. package/claude/references/sd-simplysm14/apis/orm-common/schema-builders.md +0 -128
  73. package/claude/references/sd-simplysm14/apis/orm-node/README.md +0 -69
  74. package/claude/references/sd-simplysm14/apis/sd-claude/README.md +0 -32
  75. package/claude/references/sd-simplysm14/apis/sd-cli/README.md +0 -80
  76. package/claude/references/sd-simplysm14/apis/sd-cli/sd-config.md +0 -155
  77. package/claude/references/sd-simplysm14/apis/service-client/README.md +0 -131
  78. package/claude/references/sd-simplysm14/apis/service-common/README.md +0 -29
  79. package/claude/references/sd-simplysm14/apis/service-common/app-structure.md +0 -63
  80. package/claude/references/sd-simplysm14/apis/service-common/messages.md +0 -56
  81. package/claude/references/sd-simplysm14/apis/service-common/protocol.md +0 -64
  82. package/claude/references/sd-simplysm14/apis/service-common/service-types.md +0 -43
  83. package/claude/references/sd-simplysm14/apis/service-server/README.md +0 -13
  84. package/claude/references/sd-simplysm14/apis/service-server/auth.md +0 -39
  85. package/claude/references/sd-simplysm14/apis/service-server/builtin-services.md +0 -71
  86. package/claude/references/sd-simplysm14/apis/service-server/define-service.md +0 -55
  87. package/claude/references/sd-simplysm14/apis/service-server/internals.md +0 -82
  88. package/claude/references/sd-simplysm14/apis/service-server/server.md +0 -57
  89. package/claude/references/sd-simplysm14/apis/storage/README.md +0 -71
  90. package/claude/rules/sd-base-rules.md +0 -306
@@ -5,27 +5,27 @@ 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
- - **Input**: Requirement Source (회의록·메일·문서·PDF·발화 등 비정형) + 사용자 대화 + (재진입) 기존 spec.md.
12
+ - **Input**: Requirement Source (회의록·메일·문서·PDF·발화 등 비정형 자료) + 사용자와의 대화 + (재진입) 기존 spec.md.
13
13
  - **Output**: spec.md 1개 (후속 도구 sd-impl·sd-demo 의 입력 계약).
14
14
  - **폴더**: `.specs/{yyMMddHHmmss}_{slug}/`.
15
- - `yyMMddHHmmss`: Bash `date +%y%m%d%H%M%S` (예: `260513204500` = 2026-05-13 20:45:00).
16
- - `slug`: 짧은 한·두 단어. 허용 문자 = 한글·영문·`_`·`-`·공백 (그 외 금지).
15
+ - `yyMMddHHmmss`: PowerShell `Get-Date -Format "yyMMddHHmmss"` 명령으로 생성 (예: `260513204500` = 2026-05-13 20:45:00).
16
+ - `slug`: 짧은 한·두 단어. 허용 문자는 한글·영문·`_`·`-`·공백 (그 외 문자는 금지).
17
17
 
18
18
  ## 사이클 (본체)
19
19
 
20
- 1 임의안 = 1 사이클. 5단계 강제.
20
+ 초안 1 1 사이클. 6단계 모두 거치는 것이 강제.
21
21
 
22
22
  ```
23
- 1. 무엇 선정 → 2. 임의안 작성 → 3. "맞나요?" 합의 → 4. spec.md 반영 → 5. 부산물 점검
23
+ 1. 무엇 선정 → 2. 초안 작성 → 3. "맞나요?" 합의 → 4. spec.md 반영 → 5. 곁가지로 나온 것 점검 → 6. 세션 종료 신호
24
24
  ```
25
25
 
26
26
  ### 1단계: 무엇 선정
27
27
 
28
- **사용자 지시 우선**. 지시 없으면 LLM 권장 순서 따름.
28
+ 사용자 지시가 우선. 지시가 없으면 LLM 권장 순서 따름.
29
29
 
30
30
  #### 큰 순서 (권장)
31
31
 
@@ -33,136 +33,143 @@ description: SI/업무시스템 요구사항을 분석해 spec.md 로 구조화.
33
33
 
34
34
  | 단계 | 진입 | spec.md 매핑 | 절차 위치 | 다음 |
35
35
  | --------- | ------------------------ | ----------------------------------- | ----------------------- | ---------------- |
36
- | 분석 분할 | Requirement Source 수집 | §2/§3 헤더 분할 + spec.md 골격 생성 | §2 "분할 절차" | §x.x 분석 명세 |
37
- | 분석 명세 | 분석 분할 완료 §x.x | §1 + §2/§3 본문 | §별 작성법 (사이클 2~5) | §x.x 설계 분할 |
38
- | 설계 분할 | 분석 명세 §x.x 본문 확정 | §4/§5/§6 헤더 분할 | §4 "설계 분할 절차" | §x.x 설계 명세 |
39
- | 설계 명세 | 설계 분할 §x.x [OPEN] | §4/§5/§6 본문 | §별 작성법 (사이클 2~5) | (반복 / 종료) |
40
-
41
- - **분할 단계 사이클** (분석 분할 / 설계 분할 공통, 5 단계 적용):
42
- 1. 임의안 = 분류 평면 채팅 출력 + 순서·명칭.
43
- - 분석 분할 = §2 후보 / §3 후보 / 미분류 (분류 룰 = §2 "분할 절차").
44
- - 설계 분할 = §4 후보 / §5 후보 / §6 후보 (분류 룰 = §4 "설계 분할 절차").
45
- 2. 사용자 피드백 = 분류 이동 / 순서 / 명칭 / 추가·제거 / "전부 확정".
46
- 3. 피드백 → 구성 갱신 → 채팅 재출력 → 2 재진입 (**루프**).
47
- 4. "전부 확정" → 헤더 일괄 Write ([OPEN: 날짜] + 본문 = 분석 방법 자동).
48
- - 분석 분할 = spec.md 골격 신규 + §2.x/§3.x 헤더 일괄.
49
- - 설계 분할 = §4.x/§5.x/§6.x 헤더 일괄.
50
- - **명세 단계**: §x.x 본문을 §별 임의안 단위에 따라 1건씩 사이클 (2~5단계).
36
+ | 분석 분할 | Requirement Source 수집 | §2/§3 헤더 분할 + spec.md 골격 생성 | §2 "분할 절차" | §x.x 분석 명세 |
37
+ | 분석 명세 | 분석 분할 완료 §x.x | §1 + §2/§3 본문 | §별 작성법 (사이클 2~6) | §x.x 설계 분할 |
38
+ | 설계 분할 | 분석 명세 §x.x 본문 확정 | §4/§5/§6 헤더 분할 | §4 "설계 분할 절차" | §x.x 설계 명세 |
39
+ | 설계 명세 | 설계 분할 §x.x [OPEN] | §4/§5/§6 본문 | §별 작성법 (사이클 2~6) | (반복 / 종료) |
40
+
41
+ - **분할 단계 사이클** (분석 분할 / 설계 분할 공통, 6단계 적용 — 아래 1~4 는 본체 step 2~4 의 분할 단계용 변형. 본체 step 1·5·6 그대로 적용):
42
+ 1. 초안 = 분류별 평면 목록을 채팅 출력 + 순서·명칭 제시.
43
+ - 분석 분할 시 분류 = §2 후보 / §3 후보 / 미분류 (분류 룰 = §2 "분할 절차").
44
+ - 설계 분할 시 분류 = §4 후보 / §5 후보 / §6 후보 (분류 룰 = §4 "설계 분할 절차").
45
+ 2. 사용자 피드백 종류 = 분류 이동 / 순서 변경 / 명칭 변경 / 항목 추가·제거 / "전부 확정".
46
+ 3. 피드백 반영 → 구성 갱신 → 채팅 재출력 → 2 단계로 재진입 (**루프**).
47
+ 4. 사용자가 "전부 확정" 발언 → 헤더 일괄 Write (헤더 마커 `[OPEN: 날짜]` + 본문 = 분석 방법 자동 작성).
48
+ - 분석 분할 = spec.md 골격을 신규 생성 + §2.x/§3.x 헤더 일괄 작성.
49
+ - 설계 분할 = §4.x/§5.x/§6.x 헤더 일괄 작성.
50
+ - **명세 단계**: §x.x 본문을 §별 초안 단위에 따라 1건씩 사이클 진행 (본체 2~6단계).
51
51
 
52
52
  #### 자유 진입
53
53
 
54
- - 큰 순서 §x.x 선택 = 사용자 자유 (지시 없으면 LLM 권장).
55
- - 큰 순서 §x.x 단위 파이프라인 — 전체 완료 강제 X.
56
- - 예: §2.1 본문 확정 → §2.1 관련 §4/§5/§6 분할 진입 (§2.2 본문 미시작 OK).
57
- - 의존성 strict: §x.x 단위로 직전 큰 순서 완료 다음 큰 순서 진입 (예: §4.1 본문 진입 = §4.1 헤더 분할 + §2.1 본문 완료 후).
58
- - 서브섹션끼리는 자유 (§4.1 와이어·항목·동작 순서).
59
- - §7/§8/§9 = 작업 자연 도출 (다른 § 영향, 5단계 참조).
60
- - §10 = 결정 발생 누적 (확정 항목 = 1 사이클).
54
+ - 큰 순서 내부에서 어떤 §x.x 선택할지는 사용자의 자유 (지시가 없으면 LLM 권장).
55
+ - 큰 순서들 간에는 §x.x 단위로 파이프라인 진행 큰 순서 전체 완료를 강제하지 않음.
56
+ - 예: §2.1 본문 확정 → §2.1 관련 §4/§5/§6 분할 진입 (§2.2 본문 미시작 상태에서도 허용).
57
+ - 의존성 엄격 적용: §x.x 단위로 직전 큰 순서가 완료된 후에 다음 큰 순서 진입 (예: §4.1 본문 진입 조건 = §4.1 헤더 분할 완료 + §2.1 본문 확정).
58
+ - 서브섹션 간 순서는 자유 (예: §4.1 내부의 와이어·항목·동작 등의 순서).
59
+ - §7/§8/§9 작업 중에 자연스럽게 도출됨 ("다른 섹션 반영거리" 절차이며, 5단계 참조).
60
+ - §10 결정이 발생할 때마다 누적 (확정 항목 1건당 1 사이클).
61
61
 
62
62
  #### 재진입 분기 (spec.md 첨부 시)
63
63
 
64
64
  spec.md 첨부 재진입 시 상황별 권장 진입점:
65
65
 
66
- | 상황 | 권장 진입점 |
67
- | ------------------------------------------ | ----------------------------------------------------------------- |
68
- | 헤더 `[OPEN: 날짜]` 있음 | 첫 OPEN 섹션 본문 분석 방법대로 재분석 → 임의안 → 사이클 진입 |
69
- | 본문 인라인 `[OPEN]` 만 | 첫 OPEN 항목부터 1건씩 |
70
- | 모두 `[확정]` | 사용자 추가 요구 대기 |
66
+ | 상황 | 권장 진입점 |
67
+ | ------------------------------------------ | -------------------------------------------------------------------------- |
68
+ | 헤더 `[OPEN: 날짜]` 있는 섹션 존재 | 첫 OPEN 섹션의 본문 분석 방법대로 재분석 → 초안 작성 → 사이클 진입 |
69
+ | 헤더는 `[확정]` 이고 본문에 인라인 `[OPEN]` 만 존재 | 첫 OPEN 항목부터 1건씩 처리 |
70
+ | 모든 섹션이 `[확정]` | 사용자의 추가 요구 대기 |
71
71
 
72
- ### 2단계: 임의안 작성
72
+ ### 2단계: 초안 작성
73
73
 
74
- #### 임의안 단위
74
+ #### 초안 단위
75
75
 
76
- sd-base-rules "단위 흡수 금지" 적용 — 단번에 yes/no 가능한 최소 단위. 응답당 선택지 세트 1개. §별 작성법 첫머리에 단위 명시.
76
+ sd-base-rules "묶음 채택 금지" 적용 — 사용자가 한 번에 yes/no 답할 수 있는 최소 단위. 응답 1건에 선택지 세트 1개. §별 작성법 첫머리에 단위 명시.
77
77
 
78
- #### 자가검증 게이트
78
+ #### 스스로 검증 게이트
79
79
 
80
- 임의안 출력 직전 자문. 하나라도 실패 = 폐기 후 재작성 또는 사용자 질문. sd-base-rules "응답 송출 직전 자가 점검" 위에 추가되는 sd-spec 고유 검증.
80
+ 초안 출력 직전마다 자문. 가지라도 실패 초안 폐기 후 재작성 또는 사용자에게 질문. sd-base-rules "응답 전송 직전 자가 점검" 더해 적용되는 sd-spec 고유 검증.
81
81
 
82
- 1. **형식** — § 작성법 규약 따랐는가 (해당 § 작성법 재독 후 헤더 구조·표 형식·마커 표기 점검).
83
- 2. **출처** — 각 항목·필드·동작 1건마다 사용자 발언·자료 인용 가능한가.
82
+ 1. **형식** — 해당 § 작성법 규약을 따랐는지 (해당 § 작성법 절을 재독한 후 헤더 구조·표 형식·마커 표기 점검).
83
+ 2. **출처** — 각 항목·필드·동작 1건마다 사용자 발언·자료를 인용할 수 있는지.
84
84
  - 인용 불가 = As-Is 답습 / 다른 §·example 패턴 복제 의심 → 제거 또는 별도 질문.
85
85
  - As-Is (회의록·매뉴얼·현행 화면) 는 추정 자료 (sd-base-rules "결정 근거 안티패턴").
86
- - 다른 §·example **형식만** 가져오고 **내용물** (항목·컬럼·필드·액션·동작) 은 본 §의 §2.x/§3.x 본문·사용자 발언에서 직접 도출.
87
- 3. **단순화 차단** — spec 명시 정의·식·분기·경계를 임의안에서 자체 단순화·근사화·안전 처리 (NULL 강제·0 클램프·방어 가드·생략 분기) 추가하지 않았는가.
88
- - 그대로 풀어쓸 것.
89
- - 정확 풀이 부담 크면 단순화안을 사용자에 보고 후 합의.
86
+ - 다른 §·example 에서는 **형식만** 가져오고, **내용물** (항목·컬럼·필드·액션·동작) 은 본 §의 §2.x/§3.x 본문·사용자 발언에서 직접 도출.
87
+ 3. **단순화 차단** — spec 명시 정의·식·분기·경계에 대해 초안에서 자체 단순화·근사화·안전 처리 (NULL 강제·0 클램프·방어 가드·분기 생략) 를 임의로 추가하지 않았는지.
88
+ - 식은 그대로 풀어쓸 것.
89
+ - 정확 풀이 부담이 크면 단순화안을 사용자에게 보고 후 합의.
90
90
 
91
91
  ### 3단계: "맞나요?" 합의
92
92
 
93
- - "맞나요?" + 사용자 답변 대기.
93
+ - "맞나요?" 라고 묻고 사용자 답변 대기.
94
94
  - 답변 종류: 확정 / 수정 / 보류.
95
95
 
96
96
  ### 4단계: spec.md 반영
97
97
 
98
98
  #### 확정 → Write
99
99
 
100
- 헤더 마커 `[확정: YYYY-MM-DD]` 부착 (Bash `date +%Y-%m-%d`).
100
+ 헤더 마커 `[확정: YYYY-MM-DD]` 부착 (날짜는 PowerShell `Get-Date -Format "yyyy-MM-dd"` 로 생성).
101
101
 
102
102
  #### 수정 → 재작성
103
103
 
104
- - 사용자 정정 반영 → 2단계 임의안 재작성 → 3단계 재진행.
104
+ - 사용자의 정정을 반영 → 2단계로 돌아가 초안 재작성 → 3단계 재진행.
105
105
 
106
106
  #### 보류 → Write (분석 방법)
107
107
 
108
- OPEN 섹션 본문 = **분석 방법** (임의안 X) — 재분석할 절차 또는 접근 방식 자유 작성. 헤더 마커 `[OPEN: YYYY-MM-DD]`.
108
+ OPEN 섹션의 본문 = **분석 방법** (초안 아님) — 재분석할 절차 또는 접근 방식을 자유롭게 작성. 헤더 마커 `[OPEN: YYYY-MM-DD]`.
109
109
 
110
110
  분석 방법 가이드 (해당 시 자유 조합):
111
111
 
112
112
  - 자료 참고 시 자료 위치 명시 (예: `회의록.md L12-30`, `As-Is 매뉴얼 X.pdf p.3`).
113
- - 사용자 보류 발언 인용 (1~2줄).
114
- - 한 섹션이 여러 자료에 걸치면 자료 연결 추정줄.
115
- - 다른 § 확정이 본 OPEN 재분석에 영향 누적 (운용 = 5단계 OPEN 푸시. 형식: `§X.Y <섹션명> 확정 — <결정 한 줄>`).
113
+ - 사용자의 보류 발언 인용 (1~2줄).
114
+ - 한 섹션이 여러 자료에 걸쳐있으면 자료 연결 추정을줄로 기록.
115
+ - 다른 § 확정이 본 OPEN 재분석에 영향을 경우 줄씩 누적 (운용 절차 = 5단계 OPEN 푸시. 형식: `§X.Y <섹션명> 확정 — <결정 한 줄>`).
116
116
 
117
- **발생 경로** (본문 = 분석 방법 공통):
117
+ **발생 경로** (본문이 분석 방법인 점은 공통):
118
118
 
119
- - 사용자 명시 보류 (임의안 후 보류 지시) — 분석 방법 자유 작성.
120
- - 헤더 분할 직후 자동 (본문 미작성 일괄 OPEN):
121
- - 분석 분할 §2.x/§3.x — 분석 방법 = Requirement Source 자료 위치·접근 방식.
122
- - 설계 분할 §4.x/§5.x/§6.x — 분석 방법 = 관련 §2.x/§3.x 본문 참고.
119
+ - 사용자가 명시적으로 보류 (초안 제시 후 보류 지시) — 분석 방법을 자유롭게 작성.
120
+ - 헤더 분할 직후 자동 (본문 미작성 상태로 일괄 OPEN 처리):
121
+ - 분석 분할의 §2.x/§3.x — 분석 방법 = Requirement Source 자료의 위치·접근 방식.
122
+ - 설계 분할의 §4.x/§5.x/§6.x — 분석 방법 = 관련 §2.x/§3.x 본문 참고.
123
123
 
124
- **재개**: 본문 분석 방법대로 자료 재독·분석 → 임의안 도출 → 확정되면 본문 임의안 교체 + 헤더 `[확정: 날짜]`.
124
+ **재개**: 본문에 적힌 분석 방법대로 자료 재독·분석 → 초안 도출 → 확정되면 본문을 초안으로 교체 + 헤더 마커 `[확정: 날짜]` 로 갱신.
125
125
 
126
- ### 5단계: 부산물 점검
126
+ ### 5단계: 곁가지로 나온 것 점검
127
127
 
128
- 사이클 종료 직전 자문. 해당 처리.
128
+ 사이클 종료 직전마다 자문. 해당하는 경우에만 처리.
129
129
 
130
- #### 다른 § 영향 발견
130
+ #### 다른 섹션 반영거리
131
131
 
132
- 발견 경로 무관 — 본문 작성 중·자료 재독 중·외부 조사·OPEN 섹션 재분석 부산물어디서든 다른 §(기존 §x.x 본문 보강·신규 §x.x 추가·§7/§8/§9 공통 섹션 추가) 반영 정보 발견 시:
132
+ 발견 경로는 무관 — 본문 작성 중·자료 재독 중·외부 조사·OPEN 섹션 재분석 곁가지어디서든, 다른 § (기존 §x.x 본문 보강·신규 §x.x 추가·§7/§8/§9 공통 섹션 추가) 반영할 정보를 발견했을 때:
133
133
 
134
- 1. 발견 즉시 같은 처리 휘발·미루기 금지.
135
- 2. 해당 § 사이클 진입 (임의안 → 합의 → 반영) → 원 작업 재개.
134
+ **처리 갈래** (영향 크기 + 영향 섹션 상태별):
136
135
 
137
- - §2.1 작성 "BOA 매일 갱신·라인 며칠 사라짐" 발견메모 없이 §2.1 계속.
138
- - §7.x 보강 사이클 즉시 진입 확정 §7.x 반영 → §2.1 재개.
136
+ - 영향 작음 (한 줄 보강·기존 본문 초안 1 정도) 같은 턴에 처리. 해당 § 사이클 진입 (초안 합의 반영) 원 작업 재개.
137
+ - 영향 큼 (새 §x.x 신설·여러 초안 필요)영향 섹션의 상태에 따라:
138
+ - 영향 섹션 헤더가 `[OPEN]` 상태 → 그 본문 분석 방법에 한 줄 추가 (`<날짜> 추가: <내용>`).
139
+ - 영향 섹션 헤더가 `[확정]` 상태 → 본문 안에 인라인 `[OPEN]` 항목을 추가 (헤더 [확정] 은 유지).
140
+ - 영향 섹션 헤더가 존재하지 않음 → 헤더 신설 + `[OPEN: 날짜]` + 본문에 분석 방법 작성.
141
+ - 처리 후 사용자에게 한 줄 보고. 다음 세션 재진입 시 기존 흐름이 자동으로 회수됨.
139
142
 
140
- #### 사용자 흘림 반영
143
+ - §2.1 작성 중에 "BOA 는 매일 갱신되고 라인은 며칠 내 사라짐" 을 발견 → 아무 처리 없이 §2.1 만 계속 진행.
144
+ - ✅ (영향 작음) §7.x 보강 사이클로 즉시 진입 → 확정 → §7.x 에 반영 → §2.1 재개.
145
+ - ✅ (영향 큼) §7.x 본문에 `[OPEN]` 항목 추가 → 사용자에게 한 줄 보고 → §2.1 재개.
141
146
 
142
- 사용자가 흘리듯 말한 가드레일·단서·미반영 의견은 영향 § 임의안 작성 시 반영. 휘발 금지.
147
+ #### 지나가는 챙기기
143
148
 
144
- - §1 단계에서 "Location 코드 영문 대문자만" 흘림 §7.1 임의안에 미반영.
145
- - ✅ §7.1 임의안에 "Location 코드 영문 대문자/숫자/하이픈" 포함.
149
+ 사용자가 지나가듯 (가드레일·단서·미반영 의견) 영향 받는 § 초안 작성 시 반영. 놓치는 것 금지.
146
150
 
147
- 영향 §가 현재 §와 다르면 "다른 § 영향" 절차.
151
+ - §1 단계에서 사용자가 "Location 코드는 영문 대문자만" 이라고 지나가듯 말함 → §7.1 초안에 미반영.
152
+ - ✅ §7.1 초안에 "Location 코드는 영문 대문자·숫자·하이픈 허용" 을 포함.
153
+
154
+ 영향 받는 §가 현재 §와 다르면 위 "다른 섹션 반영거리" 절차 적용.
148
155
 
149
156
  #### 진행 방법 누적
150
157
 
151
- 사이클 중 사용자가 진행 방식 합의 즉시 누적. 형식·운용 = `## spec.md 형식` "진행 방법 누적" 절 참조.
158
+ 사이클 중 사용자와 진행 방식을 합의하면 즉시 누적. 형식·운용은 `## spec.md 형식` "진행 방법 누적" 절 참조.
152
159
 
153
160
  #### OPEN 섹션 영향 푸시
154
161
 
155
- 확정 결정이 OPEN 상태 다른 § 재분석에 영향 줄 수 있는지 자문.
162
+ 확정된 결정이 OPEN 상태의 다른 §의 재분석에 영향을 줄 수 있는지 자문.
156
163
 
157
- - 영향 있으면 해당 OPEN 본문 분석 방법에 `§X.Y <섹션명> 확정 — <결정 한 줄>` 메모 추가.
158
- - 같은 작업에 함께. 사용자에 한 줄 보고.
159
- - 별도 "맞나요?" X (확정 기록일 뿐, 임의안 X).
164
+ - 영향이 있으면 해당 OPEN 본문 분석 방법에 `§X.Y <섹션명> 확정 — <결정 한 줄>` 메모 추가.
165
+ - 같은 작업 안에서 함께 처리. 사용자에게 한 줄 보고.
166
+ - 별도의 "맞나요?" 합의는 진행하지 않음 (확정 기록일 뿐, 초안 아님).
160
167
 
161
168
  #### §4/§5/§6 구현 마커 제거
162
169
 
163
- §4.x/§5.x/§6.x 본문 또는 그 본문이 의존하는 § 본문 갱신 `[확정: X, 구현: Y]` `, 구현: Y` 부분만 제거 `[확정: X]` (이전 구현 무효화 → sd-impl 재실행 대기). 확정 날짜 갱신 여부는 무관.
170
+ §4.x/§5.x/§6.x 본문 또는 그 본문이 의존하는 § 본문을 갱신할 때, `[확정: X, 구현: Y]` 에서 `, 구현: Y` 부분만 제거하여 `[확정: X]` 로 변경 (이전 구현을 무효화 → sd-impl 재실행 대기 상태로). 확정 날짜 갱신 여부는 무관.
164
171
 
165
- **의존 식별** — §4.x/§5.x/§6.x 본문에 다음 중 하나라도 나타나는 §x.x = 그 §4.x/§5.x/§6.x 의 의존:
172
+ **의존 식별** — §4.x/§5.x/§6.x 본문에 다음 중 하나라도 나타나는 §x.x 그 §4.x/§5.x/§6.x 의 의존 대상으로 간주:
166
173
  - `관련 섹션:` 줄의 `[프로세스.X]`·`[기타.X]`·`[화면.X]`·`[자동 처리.X]`·`[횡단 처리.X]`·`[외부인터페이스.X]`.
167
174
  - 본문 어느 위치든 등장하는 `[모델.X…]`·`[공통 정의.X]`.
168
175
  - §7 외부 자료 명세를 컬럼명 일치로 끌어다 쓴 양식 매핑 표 (해당 §7.x).
@@ -170,15 +177,44 @@ OPEN 섹션 본문 = **분석 방법** (임의안 X) — 재분석할 절차 또
170
177
 
171
178
  **전파 방향**: 참조 대상 → 참조하는 §4.x/§5.x/§6.x 단방향.
172
179
 
173
- **처리**: "다른 § 영향" 과 같은 턴. 변경 임의안 확정 시 영향 §4.x/§5.x/§6.x 번호 매겨 각 한 줄 이유와 함께 모아 "맞나요?".
174
- - 전부 동의 → 일괄 마커 제거.
175
- - 일부 유지 지목 (예: "3~5는 유지") 지목 항목 마커 유지, 나머지만 제거.
180
+ **처리** (영향 §4/§5/§6 개수별 갈래):
181
+
182
+ - 적음 (5개 내외) "다른 섹션 반영거리" 같은 턴에 처리. 영향 받는 §4.x/§5.x/§6.x 를 번호를 매겨 각각 한 줄 이유와 함께 묶어 "맞나요?" 합의 요청.
183
+ - 사용자가 전부 동의 → 일괄 마커 제거.
184
+ - 사용자가 일부 유지를 지목 (예: "3~5는 유지") → 지목된 항목은 마커 유지, 나머지만 제거.
185
+ - 많음 → 즉시 일괄 제거 + 사용자에게 한 줄 보고 (제거된 §4/§5/§6 목록 포함). 유지 검토는 다음 세션에서 그 §4/§5/§6 진입 시 본문 재검토 단계에서 수행.
186
+
187
+ ### 6단계: 세션 종료 신호
188
+
189
+ 사이클 5단계 처리 후마다 자문 — "이 세션의 주 작업이 자연 종결됐는가?"
190
+
191
+ **자연 종결 조건** (모두 충족):
192
+ - 세션 진입 시 잡은 §x.x 큰 단위의 모든 초안이 [확정] 상태.
193
+ - 그 작업으로 발생한 곁가지 (다른 섹션 반영거리·구현 마커 제거 등) 가 처리 완료 또는 다음 세션으로 넘김 메모가 완료된 상태.
194
+ - 사용자의 추가 지시가 없음.
195
+
196
+ **종결 시 출력**:
197
+ - 완료한 §x.x 명시.
198
+ - 다음 권장 §x.x 후보 1~3건 제시 (큰 순서 + 자유 진입 룰에 따라 LLM 이 판단).
199
+
200
+ 출력 문구 모범:
201
+
202
+ ```
203
+ §4.2 화면 본문 모든 초안 확정. 세션 자연 종결.
204
+
205
+ 다음 권장 (1건 골라 새 세션):
206
+ 1. §4.3 화면 (같은 §2.1 입고 파생 — 의존 흐름 연속)
207
+ 2. §2.2 본문 (다음 분석 명세 — 다른 프로세스 진행)
208
+ 3. §7.2 신규 (이번 세션 곁가지로 도출)
209
+ ```
210
+
211
+ **비종결 시**: 종결 출력 없이 다음 초안 사이클로 계속 진행.
176
212
 
177
213
  ## spec.md 형식
178
214
 
179
215
  ### 섹션 구조
180
216
 
181
- spec.md §별 섹션 이름과 분류:
217
+ spec.md § 별 섹션 이름과 분류:
182
218
 
183
219
  | § | 섹션 | 분류 |
184
220
  | --- | ---------------- | ---------------------------- |
@@ -188,10 +224,10 @@ spec.md §별 섹션 이름과 분류:
188
224
  | §4 | 화면 | 설계 분할/명세 |
189
225
  | §5 | 자동 처리 | 설계 분할/명세 |
190
226
  | §6 | 횡단 처리 | 설계 분할/명세 |
191
- | §7 | 공통 정의 | 자연 도출 (다른 § 영향) |
192
- | §8 | 도메인 모델 | 자연 도출 (다른 § 영향) |
193
- | §9 | 외부 인터페이스 | 자연 도출 (다른 § 영향) |
194
- | §10 | 본문 외 확정 사항 | 메타 (결정 발생 누적) |
227
+ | §7 | 공통 정의 | 자연 도출 (다른 섹션 반영거리) |
228
+ | §8 | 도메인 모델 | 자연 도출 (다른 섹션 반영거리) |
229
+ | §9 | 외부 인터페이스 | 자연 도출 (다른 섹션 반영거리) |
230
+ | §10 | 본문 외 확정 사항 | 메타 (결정이 발생할 때마다 누적) |
195
231
 
196
232
  ### 마커
197
233
 
@@ -201,11 +237,11 @@ spec.md §별 섹션 이름과 분류:
201
237
 
202
238
  | 마커 | 의미 |
203
239
  | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
204
- | `[확정: YYYY-MM-DD]` | 섹션 확정. 본문 인라인 `[OPEN]` 있어도 무방. |
205
- | `[OPEN: YYYY-MM-DD]` | 섹션 미확정 (사용자 보류 또는 헤더 분할 직후 자동). 본문 = 분석 방법. 임의안(BPMN/와이어프레임/항목 등) 채우지 X. |
206
- | `[확정: YYYY-MM-DD, 구현: YYYY-MM-DD]` | §4/§5/§6 한정. `[확정]` 에 `구현: 날짜` 콤마 결합. sd-impl 시연 검증 통과 시 부착. 본문 변경 `, 구현: …` 제거 (구버전 구현 무효화). 운용 = 5단계 구현 마커 제거. |
240
+ | `[확정: YYYY-MM-DD]` | 섹션 확정. 본문에 인라인 `[OPEN]` 있어도 무방. |
241
+ | `[OPEN: YYYY-MM-DD]` | 섹션 미확정 상태 (사용자가 보류했거나, 헤더 분할 직후 자동으로 부착). 본문 = 분석 방법. 초안 (BPMN·와이어프레임·항목 등) 채우지 않음. |
242
+ | `[확정: YYYY-MM-DD, 구현: YYYY-MM-DD]` | §4/§5/§6 에만 적용. `[확정]` 에 `구현: 날짜` 콤마로 결합. sd-impl 시연 검증 통과 시 부착. 본문이 변경되면 `, 구현: …` 부분만 제거 (구버전 구현 무효화). 운용 절차는 5단계의 "구현 마커 제거". |
207
243
 
208
- 대괄호 쌍 연달은 표기(`[확정: …][구현: …]`) 마크다운이 reference-style 링크로 해석 → 단일 대괄호 콤마 결합 형식.
244
+ 대괄호 쌍 연이은 표기(`[확정: …][구현: …]`) 마크다운이 reference-style 링크로 해석함 → 단일 대괄호 안에 콤마로 결합하는 형식 사용.
209
245
 
210
246
  #### 본문 인라인 마커
211
247
 
@@ -215,21 +251,21 @@ spec.md §별 섹션 이름과 분류:
215
251
  | -------- | ----------------------------------------- |
216
252
  | `[OPEN]` | 정보 부족·근거 없는 항목. 향후 확정 필요. |
217
253
 
218
- - 임의 채우거나 누락하지 말고 `[OPEN]` 표기.
219
- - 근거 부족 판정 = sd-base-rules "결정 근거" 적용. As-Is 만 근거인 항목·답변 범위 흡수 등 안티패턴 자료는 근거 없음으로 `[OPEN]`.
220
- - 헤더 `[확정]` + 본문 `[OPEN]` = OPEN 인정 상태로 섹션 확정. 향후 OPEN 처리.
221
- - 묻기 선택지: `맞나요? [OPEN 상태로 확정 / 섹션 전체 보류 / OPEN 하나씩 해결]`.
254
+ - 임의로 채우거나 누락하지 말고 `[OPEN]` 으로 표기.
255
+ - 근거 부족 판정 기준은 sd-base-rules "결정 근거" 적용. As-Is 만 근거인 항목·답변 범위 흡수 등 안티패턴 자료는 근거 없음으로 보고 `[OPEN]` 으로 표기.
256
+ - 헤더 `[확정]` + 본문 `[OPEN]` 조합은 OPEN 인정한 상태로 섹션을 확정. 이후에는 OPEN 항목만 처리.
257
+ - 사용자에게 물을 때 선택지: `맞나요? [OPEN 상태로 확정 / 섹션 전체 보류 / OPEN 하나씩 해결]`.
222
258
 
223
259
  ### 본문 내 참조 (이름 기반)
224
260
 
225
- 본문 다른 섹션 참조 § 번호 대신 `[카테고리.이름]` 형식. 다단 가능. § 번호는 분석 중 자주 바뀌므로 이름 기반이 안정적.
261
+ 본문 내에서 다른 섹션을 참조할 § 번호 대신 `[카테고리.이름]` 형식 사용. 다단 표기 가능. § 번호는 분석 중 자주 바뀌므로 이름 기반 표기가 더 안정적.
226
262
 
227
263
  예:
228
264
  - `[모델.재고]`·`[모델.박스.수량]`·`[모델.박스.품목.코드]`.
229
265
  - `[화면.재고 확인]`·`[프로세스.입고]`·`[기타.과거 재고 조회]`.
230
266
  - `[자동 처리.재고 스냅샷]`·`[횡단 처리.DataLog 기록]`·`[외부인터페이스.ERP 입고 통보]`·`[공통 정의.Location 라벨]`.
231
267
 
232
- **관련 섹션 한 줄**: §2~§9 본문에 `관련 섹션: [카테고리.이름], ...` 한 줄로 참조/의존 섹션 콤마 나열 (카테고리 제한 없음). **임의안 단위 X** — 다른 sub-section 작성 부산물로 자동 누적.
268
+ **관련 섹션 한 줄**: §2~§9 본문에 `관련 섹션: [카테고리.이름], ...` 형식의 한 줄로 참조·의존 섹션을 콤마로 나열 (카테고리 제한 없음). **초안 단위가 아님** — 다른 sub-section 작성 곁가지로 자동 누적.
233
269
 
234
270
  ### sub-section 헤더 레벨
235
271
 
@@ -243,171 +279,171 @@ spec.md §별 섹션 이름과 분류:
243
279
  | §6 | 목적 (라벨 + 한 줄) · 트리거 (라벨 + 본문) · 관련 섹션 (한 줄) | 처리 · 예외 처리 · 자유 추가 |
244
280
  | §9 | 기본 정보 (라벨 bullet 3) · 관련 섹션 (한 줄) | 자료 매핑 · 예외 처리 |
245
281
 
246
- SKILL.md `#### BPMN`·`#### 목적` 표기는 작성법 sub-section 분류. spec.md 본문 표기는 위 룰.
282
+ SKILL.md 내의 `#### BPMN`·`#### 목적` 등의 표기는 작성법 설명용 sub-section 분류 표기. 실제 spec.md 본문에서의 표기는 위 표의 룰 따름.
247
283
 
248
284
  ### 진행 방법 누적
249
285
 
250
- 사이클 중 사용자가 진행 방식 합의 (예: "시트별로 분석", "시트별 분석 = 6단계 답습") 즉시 누적. 범위에 따라 2 경로:
286
+ 사이클 중 사용자와 진행 방식을 합의하면 (예: "시트별로 분석", "시트별 분석 = 6단계 답습") 즉시 누적. 적용 범위에 따라 2 경로:
251
287
 
252
- **spec 전체 적용** → §10 진행 방법 항목 (`- YYYY-MM-DD: ...` bullet).
288
+ **spec 전체에 적용되는 경우** → §10 진행 방법 항목으로 누적 (`- YYYY-MM-DD: ...` bullet 형식).
253
289
 
254
- **분석 단위 한정** (§X.Y 또는 sub-section/sub-단위) → 해당 단위 도입부 NOTE blockquote:
290
+ **분석 단위 한정** (§X.Y 또는 내부의 sub-section/sub-단위) → 해당 단위 도입부에 NOTE blockquote 작성:
255
291
  - 형식: `> **NOTE** (진행 방법): <한 줄 요약>` blockquote + 다단 (`> 1. ...`·`> 2. ...` 형식).
256
- - 분석 단위 헤더가 `[OPEN]` 상태면 본 NOTE 가 다른 대화 재진입 시 진행 룰 회복 출처.
257
- - 본 단위 모든 sub-단위 합의 후 `[확정]` 환원 NOTE 유지 (진행 이력 기록 보존) 또는 제거 (분석 단위 ).
292
+ - 분석 단위 헤더가 `[OPEN]` 상태면 본 NOTE 가 다른 대화 재진입 시 진행 룰 회복의 출처가 됨.
293
+ - 본 단위의 모든 sub-단위 합의 후 `[확정]` 환원 시, NOTE 유지 (진행 이력 기록 보존) 하거나 제거 (분석 단위에만 적용되었던 룰이므로) 가능.
258
294
 
259
- 별도 "맞나요?" X (사용자 발언 직접 기록).
295
+ 별도의 "맞나요?" 합의는 진행하지 않음 (사용자 발언을 직접 기록하는 행위이므로).
260
296
 
261
297
  ## §1 개요
262
298
 
263
- **임의안 단위**: §1.1·§1.2·§1.3·§1.4 4건. §1.4 = ASCII 구성도 1 + 장치 목록 1 (총 2).
299
+ **초안 단위**: §1.1·§1.2·§1.3·§1.4 가 각각 1건씩 총 4건. 단, §1.4 ASCII 구성도 1 + 장치 목록 1건으로 총 2건.
264
300
 
265
301
  **모범**: example-spec.md §1.1~§1.4.
266
302
 
267
303
  ### §1.1 핵심 목적
268
304
 
269
- - 한 줄 동사형단위.
270
- - 분석 분할 단계 도메인 관계도 기반 사이클·관계 표현.
271
- - §2.x 동사구 항목 나열 X (그건 §1.2 역할).
305
+ - 한 줄 동사형의단위로 작성.
306
+ - 분석 분할 단계의 도메인 관계도를 기반으로 사이클·관계를 표현.
307
+ - §2.x 동사구 항목 나열 금지 (해당 표현은 §1.2 역할).
272
308
 
273
309
  ### §1.2 주요 목표
274
310
 
275
- - 단위: 최종 사용자 업무 흐름 1건 (화면·기능 단위 X).
276
- - 표현: 한 줄 동사구. 최종 사용자 도메인 어휘.
277
- - §2 업무 프로세스 헤더와 1:1 매핑이 일반적.
278
- - §2.x 본문 핵심 항목은 한 줄에 모두 담아 임의 축약·누락 X.
311
+ - 단위: 최종 사용자의 업무 흐름 1건 (화면·기능 단위가 아님).
312
+ - 표현: 한 줄 동사구. 최종 사용자 도메인 어휘 사용.
313
+ - §2 업무 프로세스 헤더와 1:1 매핑되는 것이 일반적.
314
+ - §2.x 본문의 핵심 항목은 한 줄에 모두 담아야 하며, 임의 축약·누락 금지.
279
315
 
280
316
  ### §1.3 최종 사용자/이해관계자
281
317
 
282
- - 실제 담당자 이름 X.
283
- - 일반화.
318
+ - 실제 담당자의 이름 사용 금지.
319
+ - 역할로 일반화하여 표현.
284
320
 
285
321
  ### §1.4 환경/장치
286
322
 
287
- 분석 단계 초안 합의 설계 단계 진행 보강 가능 (5단계 다른 § 영향).
323
+ 분석 단계에서 초안을 합의한 뒤, 설계 단계 진행 중에도 보강 가능 (5단계의 다른 섹션 반영거리 절차).
288
324
 
289
- 구성도와 장치 목록 목적 별개 각각 독립 작성.
325
+ 구성도와 장치 목록은 목적이 별개이므로 각각 독립적으로 작성.
290
326
 
291
327
  - **ASCII 구성도**: 현장이 어떻게 생겼는지 시각화 — 이해당사자 간 그림 맞추기.
292
- - 포함: 솔루션 노드(서버·DB·클라이언트) + 노드 간 연결선 + 물리 위치 그룹(IDC·사무실·창고) + 자동 연동 외부 시스템.
293
- - 제외: Actor, 외부 관계자(인적·조직), 수동 채널(메일·종이), 구체 제품명(MySQL)·통신 프로토콜(HTTPS), 장치 사양(OS·해상도).
294
- - **장치 목록**: 솔루션이 대상으로 하는 장치/환경 스펙 — 서버·DB·클라이언트 등. OS·버전·제품명·모델·해상도·하드웨어.
295
- - 명시 스펙에 맞게 개발 다른 스펙 환경 동작은 책임 범위 외.
328
+ - 포함 대상: 솔루션 노드 (서버·DB·클라이언트) + 노드 간 연결선 + 물리 위치 그룹 (IDC·사무실·창고) + 자동 연동되는 외부 시스템.
329
+ - 제외 대상: Actor, 외부 관계자 (인적·조직), 수동 채널 (메일·종이), 구체 제품명 (MySQL)·통신 프로토콜 (HTTPS), 장치 사양 (OS·해상도).
330
+ - **장치 목록**: 솔루션이 대상으로 하는 장치·환경 스펙 — 서버·DB·클라이언트 등. OS·버전·제품명·모델·해상도·하드웨어.
331
+ - 명시한 스펙에 맞게 개발하며, 스펙 환경에서의 동작은 책임 범위 외.
296
332
 
297
333
  ## §2 업무 프로세스
298
334
 
299
- **임의안 단위**: §2.x 1개당 위→아래 1건씩:
300
- 1. BPMN (사용자에겐 ASCII, 확정 후 mermaid 저장).
335
+ **초안 단위**: §2.x 1개당 위→아래 순서로 1건씩 진행:
336
+ 1. BPMN (사용자에게 보여줄 때는 ASCII, 확정 후 mermaid 형식으로 저장).
301
337
  2. 흐름 설명 bullet.
302
338
 
303
339
  **모범**: example-spec.md §2.1.
304
340
 
305
341
  ### 분할 단위 = BPMN end-to-end process
306
342
 
307
- §2.x 1건 = BPMN end-to-end process 1건 (= Value Stream L1). start event ~ end event 풀 사이클. 사이클 내부 handoff (역할 전환·시간 지연·외부 채널·동일인 다른 시점) 흡수 — BPMN swim lane / 노드 분기로 표현. **handoff 는 분리 사유 X**.
343
+ §2.x 1건 = BPMN end-to-end process 1건 (= Value Stream L1). start event ~ end event 풀 사이클. 사이클 내부의 handoff (역할 전환·시간 지연·외부 채널·동일인의 다른 시점) 포함 — BPMN swim lane 또는 노드 분기로 표현. **handoff 는 §2.x 분리 사유가 아님**.
308
344
 
309
345
  - **start event** (BPMN 시작 트리거):
310
- - Message — 외부 actor 메시지·자료 도착 (구매처 발주·고객 주문·거래처 EDI).
311
- - Timer — 시간 도래 (세무 신고일·정산 마감일).
346
+ - Message — 외부 actor 메시지·자료가 도착 (구매처 발주·고객 주문·거래처 EDI).
347
+ - Timer — 시간이 도래 (세무 신고일·정산 마감일).
312
348
  - Signal — 외부 조건 신호.
313
349
  - **end event** (BPMN 종결 outcome):
314
- - 외부 가치 전달·외부 자료 송신 (출하 완료·세금 제출·EDI 송신).
315
- - **분리 기준 = pivotal event** (Event Storming):
316
- 1. start event 별개 (입고 start ↔ 출고 start).
317
- 2. end event 별개.
318
- 3. 도메인 어휘 자체 전환점 (DDD 경계).
350
+ - 외부 가치 전달 또는 외부 자료 송신 (출하 완료·세금 제출·EDI 송신).
351
+ - **분리 기준 = pivotal event** (Event Storming 의 pivotal event 개념):
352
+ 1. start event 별개 (입고 start ↔ 출고 start).
353
+ 2. end event 별개.
354
+ 3. 도메인 어휘 자체의 전환점 (DDD 경계).
319
355
 
320
356
  ### 분할 절차 (분석 분할 단계)
321
357
 
322
- 분석 분할 단계에서 §2/§3 분할 동시 진행. 절차 4단계.
358
+ 분석 분할 단계에서 §2/§3 분할을 동시에 진행. 절차는 4단계.
323
359
 
324
- 1. **domain event 추출** (Event Storming "chaotic events") — Requirement Source 에서 동사 과거형 사건 모두 평면 추출. 원본 구조(메일·슬라이드·문서) 무관.
325
- 2. **timeline 정렬** ("Enforce timeline") — 비즈니스 시간 정렬. 모호 시점은 인접 후보로 보류.
326
- 3. **pivotal event 식별** — start/end/도메인 어휘 전환점 마킹. 외부 관계자 평면(구매처·공급처·고객·하청·감독기관)단계 자연 도출이게 §1 작성용 도메인 관계도 자료.
327
- 4. **bounded subdomain 그룹화** — 한 pivotal trigger ~ 다음 pivotal outcome = 1 사이클. 사이클 handoff 흡수.
360
+ 1. **domain event 추출** (Event Storming "chaotic events" 단계) — Requirement Source 에서 동사 과거형 사건을 모두 평면적으로 추출. 원본 구조 (메일·슬라이드·문서) 와는 무관.
361
+ 2. **timeline 정렬** (Event Storming 의 "Enforce timeline" 단계) — 비즈니스 시간 순으로 정렬. 시점이 모호한 항목은 인접 후보로 보류.
362
+ 3. **pivotal event 식별** — start/end/도메인 어휘 전환점을 마킹. 외부 관계자 평면 (구매처·공급처·고객·하청·감독기관) 이 단계에서 자연스럽게 도출됨 결과가 §1 작성용 도메인 관계도 자료가 됨.
363
+ 4. **bounded subdomain 그룹화** — 한 pivotal trigger ~ 다음 pivotal outcome 까지가 1 사이클. 사이클 내부의 handoff 도 포함.
328
364
 
329
365
  #### 분할 결과 매핑 (분석 분할 출력)
330
366
 
331
- 3분류:
367
+ 3가지로 분류:
332
368
  - **사이클** (multi-event handoff 포함) → §2.x.
333
369
  - **단일 user goal 완결** → §3.x.
334
- - **사이클·user goal 단위 아닌 것** (도메인 룰·계산식·기존 화면 미세 변경·자료 해석 파라미터·기타 규칙) → **미분류**.
370
+ - **사이클도 user goal 단위도 아닌 것** (도메인 룰·계산식·기존 화면 미세 변경·자료 해석 파라미터·기타 규칙) → **미분류**.
335
371
 
336
372
  #### 분석 분할 채팅 출력 형식
337
373
 
338
- - 3분류 일괄 나열 (§2 / §3 / 미분류).
339
- - 자문·내부 절차 해설·출처 인용 X.
340
- - 화면·마스터 흡수 들여쓰기 X (설계 분할 시야).
341
- - 자료 부족 분리 항목은 별도 질문으로 함께 제시.
342
- - 사이클 2단계 자가검증 게이트 출처 적용 — 인용 불가 항목은 후보에서 빼고 별도 질문으로 분리.
374
+ - 3가지 분류를 일괄 나열 (§2 / §3 / 미분류).
375
+ - 자문·내부 절차 해설·출처 인용은 출력에 포함 금지.
376
+ - 화면·마스터를 포함한 들여쓰기 표기 금지 (들여쓰기는 설계 분할 단계의 시야이므로).
377
+ - 자료가 부족하여 분리해야 하는 항목은 별도 질문으로 함께 제시.
378
+ - 사이클 2단계의 "스스로 검증 게이트" 출처 항목 적용 — 인용이 불가능한 항목은 후보에서 빼고 별도 질문으로 분리.
343
379
 
344
380
  ### 헤더 명칭
345
381
 
346
- - 외부 관계자 평면 기반 도메인 업무 동사구.
347
- - 시스템·문서·메뉴·양식 명칭 그대로 X.
382
+ - 외부 관계자 평면 기반의 도메인 업무 동사구 사용.
383
+ - 시스템·문서·메뉴·양식의 명칭을 그대로 사용 금지.
348
384
  - ❌ `발주서 변경 요청` (발주서 = 시스템 문서).
349
385
  - ✅ `구매처 발주 변경 요청`.
350
386
 
351
387
  ### 본문 구조
352
388
 
353
- sub-section 헤더 레벨 = `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
389
+ sub-section 헤더 레벨은 `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
354
390
 
355
- **평문 sub-section** (§2.x 헤더 바로 아래, 위→아래):
391
+ **평문 sub-section** (§2.x 헤더 바로 아래에 위→아래 순서로 작성):
356
392
 
357
393
  - **BPMN** (mermaid fence):
358
- - 사용자에겐 ASCII, 확정 후 mermaid 저장.
359
- - 노드 = 최종 사용자 액션·시스템 핵심 트랜잭션 (1행 동사구). 줄바꿈 `<br/>` X.
360
- - Actor·장치·매체(PDA·PC·종이)는 액션 컨텍스트로 노드에 명시 OK (예: `창고 작업자: PDA 박스 바코드 스캔`). OS·해상도·API·DB 등 시스템 내부 디테일 X.
361
- - 외부 채널 송신(메일·파일 다운로드)·외부 응답 수신(다음 사이클 자료 도착)도 노드. 처리 노드 = 사각(`T[...]`), 이벤트 노드 = 둥근(`E([...])`).
362
- - 분기 = 사용자 의사결정 분기만.
363
- - **흐름 설명 bullet** (BPMN 아래·관련 섹션 위에 자유 나열):
364
- - 노드 동사구만으로 잡히는 룰·조건·계산식·외부 약속·자료 출처 인용 1줄씩.
365
- - §4/§5/§6 본문 작성 시 이 bullet 들을 근거로 매핑 누락 방지.
366
- - 단, §4/§5/§6 자체 디테일(필드·UI·파일 확장자) / §7/§8/§9 정형 명세는 여기 X — 각 § 본문에선 이름 참조.
367
- - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 한 줄, 자동 누적): 본문 내 참조 룰 따름.
394
+ - 사용자에게 보여줄 때는 ASCII, 확정 후 mermaid 형식으로 저장.
395
+ - 노드 = 최종 사용자 액션 또는 시스템 핵심 트랜잭션 (1행 동사구). 줄바꿈 `<br/>` 사용 금지.
396
+ - Actor·장치·매체 (PDA·PC·종이) 는 액션 컨텍스트로 노드 안에 명시 허용 (예: `창고 작업자: PDA 박스 바코드 스캔`). OS·해상도·API·DB 등 시스템 내부 디테일은 제외.
397
+ - 외부 채널 송신 (메일·파일 다운로드) 과 외부 응답 수신 (다음 사이클 자료 도착) 노드로 표현. 처리 노드는 사각 (`T[...]`), 이벤트 노드는 둥근 (`E([...])`).
398
+ - 분기는 사용자의 의사결정 분기만 표현.
399
+ - **흐름 설명 bullet** (BPMN 아래, 관련 섹션 위에 자유롭게 나열):
400
+ - 노드 동사구만으로는 표현되지 않는 룰·조건·계산식·외부 약속·자료 출처 인용 등을 한 줄씩 기재.
401
+ - §4/§5/§6 본문 작성 시 이 bullet 들을 근거로 매핑하여 누락 방지.
402
+ - 단, §4/§5/§6 자체의 디테일 (필드·UI·파일 확장자) §7/§8/§9 정형 명세는 여기에 작성 금지 — 각 § 본문에서는 이름으로만 참조.
403
+ - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 형식의 한 줄, 자동 누적): "본문 내 참조" 절의 룰 따름.
368
404
 
369
405
  ### 안티패턴 (분할)
370
406
 
371
- - ❌ 같은 사이클의 A→B→C 단계별 담당자·산출물 다르다는 이유로 §2.A·§2.B·§2.C 로 쪼개기.
372
- - ❌ 메뉴 그룹화·기존 화면 폴더·코드 As-Is 구조로 묶기/쪼개기.
407
+ - ❌ 같은 사이클의 A→B→C 단계별로 담당자·산출물이 다르다는 이유로 §2.A·§2.B·§2.C 로 쪼개는 행위.
408
+ - ❌ 메뉴 그룹·기존 화면 폴더·코드 As-Is 구조를 기준으로 묶거나 쪼개는 행위.
373
409
 
374
410
  ## §3 기타 요구사항
375
411
 
376
- **임의안 단위**: §3.x 1개당 본문 짧으면 전체 1건. 길어지면 요구 의도 관련 섹션 분리.
412
+ **초안 단위**: §3.x 1개당 본문이 짧으면 전체를 1건으로. 본문이 길어지면 "요구 의도" "관련 섹션" 으로 분리하여 별건으로 진행.
377
413
 
378
414
  **모범**: example-spec.md §3.1.
379
415
 
380
416
  ### 분할 단위 = Cockburn sea level use case
381
417
 
382
- - "primary actor go away happy after having done this in a single sitting?".
383
- - 행위자가 1회 작업으로 끝내고 만족하고 떠나는 단일 user goal.
384
- - 사이클·handoff·지연 없음.
385
- - 정형 분해(화면/자동 처리/횡단 처리) 동반하는 사용자 직접 요구.
386
- - 시스템 전반 자동 룰 (예: "모든 데이터 수정 시 DataLog 기록") 도 §3 — 설계는 §6 횡단 처리에서.
418
+ - Cockburn 의 정의: "primary actor go away happy after having done this in a single sitting?".
419
+ - 행위자가 1회 작업으로 끝내고 만족하여 떠나는 단일 user goal.
420
+ - 사이클·handoff·지연이 없음.
421
+ - 정형 분해 (화면 / 자동 처리 / 횡단 처리) 동반하는, 사용자의 직접 요구.
422
+ - 시스템 전반 자동 룰 (예: "모든 데이터 수정 시 DataLog 기록") 도 §3 에 포함 그에 대한 설계는 §6 횡단 처리에서 수행.
387
423
 
388
424
  ### 본문 구조
389
425
 
390
- - 요구 의도 (한 줄~한 문단).
391
- - 관련 섹션 한 줄 (본문 내 참조 절).
392
- - 구현 디테일은 §4 화면 / §5 자동 처리 / §6 횡단 처리 본문에서.
426
+ - 요구 의도 (한 또는 한 문단).
427
+ - 관련 섹션 한 줄 ("본문 내 참조" 룰 따름).
428
+ - 구현 디테일은 §4 화면 / §5 자동 처리 / §6 횡단 처리 본문에 작성.
393
429
 
394
430
  ## §4 화면
395
431
 
396
- **임의안 단위**: §4.x 1개당 §4.x 표준 구조 단위로 위→아래, 각 확정 후 다음:
432
+ **초안 단위**: §4.x 1개당 "§4.x 표준 구조" 절의 단위로 위→아래 순서로 진행. 단위 확정 후 다음 단위로 이동:
397
433
  1. 기능 개요 — 1건.
398
434
  2. 와이어프레임 — 1건.
399
- 3. 항목 — 다단 분할:
400
- - 1차: 영역 (좌/우 등) 단위 — 와이어프레임 영역 라벨 기준.
401
- - 2차: 영역 하위 요소 (필터·시트 컬럼·입력/상세 폼) 단위.
402
- - 1 임의안 = 1 (영역, 하위 요소) 쌍 — 예: `좌측 영역 — 필터` 1건, `좌측 영역 — 시트 컬럼` 별건.
435
+ 3. 항목 — 다단으로 분할:
436
+ - 1 분할: 영역 (좌/우 등) 단위 — 와이어프레임의 영역 라벨 기준.
437
+ - 2 분할: 영역 내부의 하위 요소 (필터·시트 컬럼·입력 폼·상세 폼) 단위.
438
+ - 초안 1 = (영역, 하위 요소) 쌍 1건 — 예: `좌측 영역 — 필터` 1건, `좌측 영역 — 시트 컬럼` 별건.
403
439
  4. 동작 — 1건.
404
440
  5. 시각 규칙 (해당 시) — 1건.
405
441
  6. 도메인 규칙·로직 (해당 시) — 규칙별 1건.
406
- 7. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 업로드 양식·다운로드 양식 각각). 복잡 양식 sub-단위 (시트 등) = sub-단위별 1건.
442
+ 7. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 업로드 양식·다운로드 양식 각각 별건). 복잡 양식 내부의 sub-단위 (시트 등) sub-단위별 1건.
407
443
 
408
- (헤더 인덱스 = Actor + 관련 섹션 모두 자동 누적 — 임의안 단위 X).
444
+ (헤더 인덱스 = Actor + 관련 섹션 으로 구성되며, 둘 다 자동 누적 — 초안 단위가 아님).
409
445
 
410
- 신규 작성·정정·골격 신설 무관 동일 적용.
446
+ 신규 작성·정정·골격 신설 어느 경우든 동일하게 적용.
411
447
 
412
448
  **모범** (와이어 패턴별):
413
449
  - 시트 화면: example-spec.md §4.1·§4.3.
@@ -420,255 +456,255 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
420
456
  설계 분할 단계에서 §4/§5/§6 헤더를 §2/§3 본문 (+ §8 마스터 엔티티) 에서 도출. 절차:
421
457
 
422
458
  1. **§4 화면 도출**:
423
- - §2 BPMN 최종 사용자 액션 노드 + §3 사용자 직접 요구 → 트랜잭션/조회 화면.
424
- - §8 마스터 엔티티 → 마스터 화면.
425
- - 도메인 묶음/장치별 그룹화 → 화면 목록 표.
426
- 2. **§5 자동 처리 도출** — §2/§3 의 시스템 백그라운드 처리 (스케줄·이벤트 트리거·외부 자료 수집·적재) 추출.
427
- 3. **§6 횡단 처리 도출** — §3 시스템 전반 자동 룰 + §4/§5 부수효과 동작 추출.
459
+ - §2 BPMN 최종 사용자 액션 노드 + §3 사용자 직접 요구 → 트랜잭션 화면 또는 조회 화면.
460
+ - §8 마스터 엔티티 → 마스터 화면.
461
+ - 도메인 묶음 또는 장치별로 그룹화 → 화면 목록 표.
462
+ 2. **§5 자동 처리 도출** — §2/§3 의 시스템 백그라운드 처리 (스케줄·이벤트 트리거·외부 자료 수집·적재) 추출.
463
+ 3. **§6 횡단 처리 도출** — §3 시스템 전반 자동 룰 + §4/§5 부수효과 동작을 추출.
428
464
 
429
- 각 § 헤더 분할 직후 자동 OPEN (4단계 보류 발생 경로 참조).
465
+ 각 § 헤더 분할 직후 자동 OPEN 상태가 됨 (4단계의 "보류 발생 경로" 참조).
430
466
 
431
467
  ### 화면 목록 표 (§4 첫머리)
432
468
 
433
- 5컬럼: `§ | 분류 | 화면 | 유형 | 장치`.
469
+ 5컬럼 구조: `§ | 분류 | 화면 | 유형 | 장치`.
434
470
 
435
- - 분류: 도메인 묶음/메뉴 그룹 자유 명칭 (예: `기준정보`·`입고`·`재고`). LLM 임의안 확정.
436
- - 유형: 마스터 / 트랜잭션 / 조회.
437
- - 장치: PC / PDA / 기타.
438
- - 화면 추가/제거 표도 갱신. 같은 분류끼리 인접 배치.
471
+ - 분류: 도메인 묶음·메뉴 그룹의 자유 명칭 (예: `기준정보`·`입고`·`재고`). LLM 초안을 제시 후 사용자와 확정.
472
+ - 유형: 마스터 / 트랜잭션 / 조회 중 택1.
473
+ - 장치: PC / PDA / 기타 중 택1.
474
+ - 화면이 추가·제거되면 표도 함께 갱신. 같은 분류끼리 인접 배치.
439
475
 
440
476
  ### 화면 정의 (§4.x 표준 구조)
441
477
 
442
- 화면 헤더에 (장치) 표기 유지: `### N.N 화면명 (PC) [확정: 날짜]` 또는 `(PDA)`.
478
+ 화면 헤더에 (장치) 표기를 유지: `### N.N 화면명 (PC) [확정: 날짜]` 또는 `(PDA)`.
443
479
 
444
- sub-section 헤더 레벨 = `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
480
+ sub-section 헤더 레벨은 `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
445
481
 
446
- **평문 sub-section** (§4.x 헤더 바로 아래, 위→아래):
482
+ **평문 sub-section** (§4.x 헤더 바로 아래에 위→아래 순서로 작성):
447
483
 
448
- - **헤더 인덱스** (한 줄씩, 자동 누적 — 임의안 단위 X):
449
- - `Actor: <역할>` — §2 BPMN swim lane 또는 §3 사용자 직접 요구에서 자연 도출.
450
- - `관련 섹션:` 본문 내 참조 절 룰 따름 — 모달 호출·시트 영역 재활용 등 화면 간 의존 포함.
451
- - **기능 개요**: `기능 개요:` 라벨 다음 bullet 로 화면 기능 설명.
484
+ - **헤더 인덱스** (한 줄씩 작성, 자동 누적 — 초안 단위가 아님):
485
+ - `Actor: <역할>` — §2 BPMN swim lane 또는 §3 사용자 직접 요구에서 자연 도출.
486
+ - `관련 섹션:` "본문 내 참조" 절 룰 따름 — 모달 호출·시트 영역 재활용 등 화면 간 의존 포함.
487
+ - **기능 개요**: `기능 개요:` 라벨 다음에 bullet 로 화면 기능을 설명.
452
488
 
453
489
  **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
454
490
 
455
491
  #### 와이어프레임 (텍스트)
456
492
 
457
493
  **형식 일탈 금지**:
458
- - example-spec.md 의 가장 가까운 화면 패턴 라인을 형식 모범으로 직접 참조 — 시트=§4.1·§4.3 / 폼 모달=§4.2·§4.4 / PDA4.5 / 분석 시트=§4.6.
459
- - ASCII 박스(┌─┐ │ └┘)·영역 추상화 표기(`<필터>`·`<시트>`·`<폼>` 등)·액션 버튼 텍스트 표기 자체 변형 X.
494
+ - example-spec.md 의 가장 가까운 화면 패턴 라인을 형식 모범으로 직접 참조 — 시트 형식은 §4.1·§4.3 / 폼 모달은 §4.2·§4.4 / PDA 는 §4.5 / 분석 시트는 §4.6.
495
+ - ASCII 박스 (┌─┐ │ └┘) ·영역 추상화 표기 (`<필터>`·`<시트>`·`<폼>` 등) ·액션 버튼 텍스트 표기를 임의로 변형 금지.
460
496
 
461
- **원칙**: 영역 배치·구획만. 디테일(필드·시트 컬럼·실제 값·아이콘 placeholder·fixed 경계·비활성 행 등 시각 표현)은 와이어에 X — 항목 표·동작 절·도메인 규칙 절이 단일 출처.
497
+ **원칙**: 영역 배치·구획만 표현. 디테일 (필드·시트 컬럼·실제 값·아이콘 placeholder·fixed 경계·비활성 행 등 시각 표현) 은 와이어에 두지 않음 — 항목 표·동작 절·도메인 규칙 절이 단일 출처.
462
498
 
463
- - 데이터 영역: 영역 타입 + 짧은 라벨로 추상화 — `<필터>`·`<폼>`·`<시트>`·`<목록>`·`<PO 목록>`·`<라인 시트 - 작성영역>` 등. 영역 종류가 한눈에 잡히면 라벨 보강.
464
- - 액션 버튼: 텍스트 유지 (`[조회]`·`[저장]`·`[등록]`) — 버튼 위치가 와이어의 정보. 아이콘만 있는 버튼도 텍스트로.
465
- - 영역(좌/우 분할·탭·상단 command 바·시트 상단 버튼바)으로 나뉘면 박스 라인으로 구획.
466
- - 상태(작성중/확정 등)에 따라 영역 구획 크게 달라지면 상태별 분리. 제목: `와이어프레임 (<상태명>):` (예: `와이어프레임 (확정 전):`).
499
+ - 데이터 영역: 영역 타입 + 짧은 라벨로 추상화 — `<필터>`·`<폼>`·`<시트>`·`<목록>`·`<PO 목록>`·`<라인 시트 - 작성영역>` 등. 영역 종류가 한눈에 잡히지 않으면 라벨을 보강.
500
+ - 액션 버튼: 텍스트를 유지 (`[조회]`·`[저장]`·`[등록]`) — 버튼 위치 자체가 와이어가 전달하는 정보. 아이콘만 있는 버튼도 텍스트로 표기.
501
+ - 영역 (좌/우 분할·탭·상단 command 바·시트 상단 버튼바) 으로 나뉠 경우 박스 라인으로 구획.
502
+ - 상태 (작성중·확정 등) 에 따라 영역 구획이 크게 달라지면 상태별로 분리. 제목 형식: `와이어프레임 (<상태명>):` (예: `와이어프레임 (확정 전):`).
467
503
 
468
504
  #### 항목
469
505
 
470
- 데이터 항목만 (필터·시트 컬럼·입력/상세 폼). 액션 버튼은 "동작" 에.
506
+ 데이터 항목만 작성 (필터·시트 컬럼·입력 폼·상세 폼). 액션 버튼은 "동작" 절에 작성.
471
507
 
472
- - **표 제목 = 와이어 영역 라벨과 동일 명칭** 굵게 — 와이어 `<필터>` → `**필터**`, `<품목 목록 시트>` → `**품목 목록 시트**`, `<스캔 입력 폼>` → `**스캔 입력 폼**`.
473
- - 한 영역에 종류 다른 여러 개 종류 부기 — `**<영역 라벨> — <필터|시트 컬럼|입력 폼>**` (예: `**헤더 목록 — 필터**`, `**BOA 시트 — 시트 컬럼**`).
474
- - 시트 화면 기본 구성: 상단 command 바의 `<필터>` + 시트 영역 (시트 컬럼) 2 그룹.
508
+ - **표 제목 = 와이어의 영역 라벨과 동일 명칭** 굵게 표기 와이어의 `<필터>` → `**필터**`, `<품목 목록 시트>` → `**품목 목록 시트**`, `<스캔 입력 폼>` → `**스캔 입력 폼**`.
509
+ - 한 영역에 종류가 다른 표가 여러 개 있을 경우 종류를 부기 — `**<영역 라벨> — <필터|시트 컬럼|입력 폼>**` (예: `**헤더 목록 — 필터**`, `**BOA 시트 — 시트 컬럼**`).
510
+ - 시트 화면의 기본 구성: 상단 command 바의 `<필터>` + 시트 영역 (시트 컬럼) 2 그룹.
475
511
 
476
- **표 형식** — 도메인 매핑은 별도 컬럼 (필터는 시트 컬럼과 중복이라 도메인 매핑 X):
512
+ **표 형식** — 도메인 매핑은 별도 컬럼으로 (필터는 시트 컬럼과 중복되므로 도메인 매핑 컬럼 없음):
477
513
  - 입력 폼: `항목 | 종류 | 필수 | 도메인 매핑 | 비고`.
478
514
  - 시트 컬럼: `컬럼 | 종류 | 필수 | 도메인 매핑 | 비고`.
479
515
  - 필터: `항목 | 종류 | 필수 | 비고`.
480
516
 
481
- - 필수 컬럼: 무의미한 경우(조회 시트 컬럼 등) `-`.
482
- - 도메인 매핑: `[모델.X.Y]` (양식 매핑과 일관). 매핑 없는 항목(선택 체크박스 등) `-`.
483
- - 비고: 표시 내용 (이름과 도메인으로 자명하지 않을 때 어떤 값이 표시되는지) / 편집 방법 (편집 가능 항목 — 예: 클릭 시 모달, 인라인 편집) / 기타 자유 설명.
517
+ - 필수 컬럼: 의미가 없는 경우 (조회 시트 컬럼 등) `-`.
518
+ - 도메인 매핑: `[모델.X.Y]` 형식 (양식 매핑과 일관). 매핑이 없는 항목 (선택 체크박스 등) `-`.
519
+ - 비고: 표시 내용 (이름과 도메인만으로 자명하지 않을 때 어떤 값이 표시되는지) / 편집 방법 (편집 가능 항목 — 예: 클릭 시 모달, 인라인 편집) / 기타 자유 설명.
484
520
 
485
- **시트 컬럼 그룹핑** (해당 시): 컬럼이 도메인적으로 묶일 표 안에 그룹 표시.
486
- - 그룹 헤더 1줄 (`**그룹명**`, 다른 빈 칸).
487
- - 자식 컬럼은 `└ ` 들여쓰기 prefix.
488
- - 컬럼 유지.
521
+ **시트 컬럼 그룹핑** (해당 시): 컬럼들이 도메인적으로 묶일 경우 표 안에 그룹 표시.
522
+ - 그룹 헤더 행을 1줄 (`**그룹명**` 표시, 다른 셀은 빈 칸).
523
+ - 자식 컬럼은 `└ ` 들여쓰기 prefix 부착.
524
+ - 표의 컬럼 수는 유지.
489
525
 
490
526
  #### 동작
491
527
 
492
- bullet `- <트리거>: 처리 내용` 형식.
528
+ bullet `- <트리거>: 처리 내용` 형식으로 작성.
493
529
 
494
- - 트리거 예: `` `[버튼]` 클릭 ``, `박스 바코드 스캔`, `Enter 키`.
530
+ - 트리거 예시: `` `[버튼]` 클릭 ``, `박스 바코드 스캔`, `Enter 키`.
495
531
  - 처리 내용: 동사구 + 대상 (예: `[화면.X] 을 모달로 띄움`, `검색 필터 조건으로 목록 갱신`).
496
532
 
497
533
  #### 시각 규칙 (해당 시)
498
534
 
499
- 행 단위·조건부 시각 표현 (비활성 행 취소선·상태별 강조 색·아이콘). 컬럼 단위 표현은 항목 비고에 작성하므로 여기 X.
535
+ 행 단위·조건부 시각 표현 (비활성 행 취소선·상태별 강조 색·아이콘) 을 작성. 컬럼 단위 표현은 항목 표의 비고에 작성하므로 여기에는 작성하지 않음.
500
536
 
501
537
  #### 도메인 규칙·로직 (해당 시)
502
538
 
503
- 표준 sub-section 으로 담기는 화면 고유 도메인 요구. 자유 명칭 필요한 만큼 추가. 누락 없이 적는 핵심.
539
+ 표준 sub-section 으로 담기지 않는, 화면 고유의 도메인 요구를 작성. 자유 명칭의 절을 필요한 만큼 추가. 누락 없이 적는 것이 핵심.
504
540
 
505
541
  **자유 추가 sub-section** (`#### 도메인 규칙·로직` 아래, 화면별 필요 시 h4 자유 추가):
506
542
 
507
- - **양식 입출력** (예: `#### 업로드 양식`·`#### 다운로드 양식`) — 양식별 별도 sub-section.
508
- - 단순 양식: 단순 표 — 컬럼 `파일 컬럼` + `도메인 모델 ([모델.X.Y])` + `변환·규칙 (해당 시)`. §7.x 명세 양식이면 컬럼명 일치, 일회성이면 sub-section 안에서 직접 명세.
509
- - 복잡 양식 (다중 시트·구조 분할): sub-단위 (시트 등) = h5 (`##### <시트>` 등). sub-단위 진행 방법 NOTE 가능 (`## spec.md 형식` "진행 방법 누적" 절 참조).
510
- - **기타 화면 고유 정보** — 자유 sub-section 이름. 표준 sub-section 으로 담기는 화면 고유 정보 누락 방지.
543
+ - **양식 입출력** (예: `#### 업로드 양식`·`#### 다운로드 양식`) — 양식별로 별도 sub-section 작성.
544
+ - 단순 양식: 내부에 단순 표 — 컬럼은 `파일 컬럼` + `도메인 모델 ([모델.X.Y])` + `변환·규칙 (해당 시)`. §7.x 명세된 양식이면 컬럼명을 일치시키고, 일회성 양식이면 sub-section 내부에서 직접 명세.
545
+ - 복잡 양식 (다중 시트·구조 분할): 내부의 sub-단위 (시트 등) h5 (`##### <시트>` 등) 로 작성. sub-단위 내부에 진행 방법 NOTE 작성 가능 (`## spec.md 형식` "진행 방법 누적" 절 참조).
546
+ - **기타 화면 고유 정보** — sub-section 이름은 자유. 표준 sub-section 으로 담기지 않는 화면 고유 정보의 누락 방지 목적.
511
547
 
512
548
  ### 마스터 화면 표준
513
549
 
514
- 화면 목록 유형 = 마스터인 §4.x 에 적용. 화면 정의 sub-header (와이어프레임·항목·동작) 와 함께.
550
+ 화면 목록 표에서 유형이 "마스터" §4.x 에 적용. 화면 정의 sub-header (와이어프레임·항목·동작) 와 함께 작성.
515
551
 
516
- - ID 컬럼 = 편집 버튼 (`[E N]`).
517
- - 첫 컬럼 = 선택 체크박스 (`[ ]`).
552
+ - ID 컬럼은 편집 버튼 (`[E N]`) 으로 표현.
553
+ - 첫 컬럼은 선택 체크박스 (`[ ]`).
518
554
  - 시트 상단 버튼바: `[등록] [선택 삭제] [선택 복구] [엑셀 업로드] [엑셀 다운로드]`.
519
- - ID 정렬 역방향.
555
+ - ID 정렬은 역방향 (내림차순).
520
556
 
521
557
  ### 상단 command 바
522
558
 
523
- 화면 정의 sub-header 와이어프레임·동작과 함께 작성. 페이지 제목 바로 아래, 시트/폼 영역 위. 페이지 전체 또는 현재 레코드 단위 액션 바.
559
+ 화면 정의 sub-header 와이어프레임·동작과 함께 작성. 페이지 제목 바로 아래, 시트·폼 영역 위에 배치. 페이지 전체 또는 현재 레코드 단위의 액션 바.
524
560
 
525
- - 좌측: 필터 입력 + 조회 (list) / 진입 컨텍스트 표시 (detail).
526
- - 우측: 페이지·레코드 단위 액션 (있을 때만).
527
- - 좌/우 사이 ` │ ` 세로 구분선.
561
+ - 좌측: 필터 입력 + 조회 (list 화면) / 진입 컨텍스트 표시 (detail 화면).
562
+ - 우측: 페이지 단위·레코드 단위 액션 (있는 경우에만).
563
+ - 좌·우 사이에 ` │ ` 세로 구분선.
528
564
 
529
565
  **우측 버튼 그룹 순서** (좌→우):
530
566
  1. 기본 CRUD (저장 / 삭제 / 복구).
531
567
  2. 워크플로 상태 전환 (확정 / 취소 / 승인 / 반려).
532
568
  3. 유틸리티 (원본 다운로드 / 프린트 / PDF).
533
569
 
534
- list·detail 동일. 새 버튼은 해당 그룹 끝에 추가. 시트 상단 버튼바도 동일 그룹 순서 (마스터 화면 표준은 구체 인스턴스).
570
+ list 화면과 detail 화면 모두 동일. 새 버튼은 해당 그룹의 끝에 추가. 시트 상단 버튼바도 동일한 그룹 순서를 따름 (마스터 화면 표준은 구체 인스턴스).
535
571
 
536
572
  ### 모달 처리
537
573
 
538
- 호출하는 쪽 §4.x 동작 sub-header + 피호출 §4.x 양쪽 적용.
574
+ 호출하는 쪽 §4.x 동작 sub-header 호출되는 §4.x 양쪽 모두에 적용.
539
575
 
540
- - 모달 화면 = 별도 §4.x. 부르는 동작에 "→ [화면.X] 을 모달로 띄움" 명시.
541
- - 화면명에 "(모달)" 사용 맥락 표기 X — 같은 화면이 다른 곳에서 다르게 호출될 수 있음.
542
- - 화면 일부 영역(시트·탭)이 다른 화면에서 모달로 재활용되면 별도 §4.x 분리 X. 대신 그 화면 동작 절 끝에 영역별 모달 호출 시 제약(편집 가능 여부 / 선택 전용 / multiselect) 한 줄씩 명시. 호출하는 동작은 "→ [화면.X] 의 <영역> 을 모달로 띄움" 표기.
576
+ - 모달 화면도 별도의 §4.x. 호출하는 쪽의 동작에 "→ [화면.X] 을 모달로 띄움" 명시.
577
+ - 화면명에 "(모달)" 등의 사용 맥락 표기 금지 — 같은 화면이 다른 곳에서는 다른 방식으로 호출될 수 있음.
578
+ - 화면의 일부 영역 (시트·탭) 이 다른 화면에서 모달로 재활용되는 경우, 별도 §4.x 분리하지 않음. 대신 그 화면의 동작 절 끝에 "영역별로 모달 호출 시 제약" (편집 가능 여부 / 선택 전용 / multiselect) 한 줄씩 명시. 호출하는 쪽의 동작은 "→ [화면.X] 의 <영역> 을 모달로 띄움" 으로 표기.
543
579
 
544
580
  ## §5 자동 처리
545
581
 
546
- **임의안 단위**: §5.x 1개당 위→아래 1건씩:
582
+ **초안 단위**: §5.x 1개당 위→아래 순서로 1건씩:
547
583
  1. 목적 / 트리거 (한 묶음).
548
584
  2. 처리.
549
585
  3. 예외 처리.
550
- 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 읽기 양식·쓰기 양식 각각). 복잡 양식 sub-단위 (시트 등) = sub-단위별 1건.
586
+ 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 읽기 양식·쓰기 양식 각각 별건). 복잡 양식 내부의 sub-단위 (시트 등) sub-단위별 1건.
551
587
 
552
588
  **모범**: example-spec.md §5.1.
553
589
 
554
590
  ### 정의
555
591
 
556
- 스케줄러/이벤트 트리거로 도는 시스템 백그라운드 처리. 표준 프로토콜·채널을 통한 외부 자료 수집·적재(메일 폴링 + 첨부 적재, FTP 자료 흡수)도 §5 — 시스템별 협상 없는 표준 인터페이싱은 §9 X.
592
+ 스케줄러 또는 이벤트 트리거로 동작하는 시스템 백그라운드 처리. 표준 프로토콜·채널을 통한 외부 자료 수집·적재 (메일 폴링 + 첨부 적재, FTP 자료 수집 등) 도 §5 에 포함 — 시스템별 협상이 필요 없는 표준 인터페이싱은 §9 가 아님.
557
593
 
558
- §6 횡단 처리와 차이: §5 = 스케줄/이벤트 명시 트리거. §6 = 다른 동작 부수효과 트리거.
594
+ §6 횡단 처리와의 차이: §5 = 스케줄·이벤트로 명시적인 트리거가 있음. §6 = 다른 동작의 부수효과로 트리거됨.
559
595
 
560
596
  ### 본문 구조
561
597
 
562
- sub-section 헤더 레벨 = `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
598
+ sub-section 헤더 레벨은 `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
563
599
 
564
- **평문 sub-section** (§5.x 헤더 바로 아래, 라벨 + 본문 형식):
600
+ **평문 sub-section** (§5.x 헤더 바로 아래에 "라벨 + 본문" 형식으로 작성):
565
601
 
566
- - `목적:` 도메인 목적줄.
567
- - `트리거:` 스케줄·이벤트.
568
- - `관련 섹션:` 본문 내 참조 절 룰 따름.
602
+ - `목적:` 도메인 목적을줄로.
603
+ - `트리거:` 스케줄·이벤트 명시.
604
+ - `관련 섹션:` "본문 내 참조" 절 룰 따름.
569
605
 
570
- **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
606
+ **h4 sub-section** (평문 아래에 고정 순서로 위→아래 작성):
571
607
 
572
608
  #### 처리
573
609
 
574
- 처리 단계.
610
+ 처리 단계 작성.
575
611
 
576
612
  #### 예외 처리
577
613
 
578
- 실패 케이스별 위험·대처·재시도 한계.
614
+ 실패 케이스별 위험·대처·재시도 한계 작성.
579
615
 
580
- **자유 추가 sub-section** (`#### 예외 처리` 아래, §5.x 필요 시 h4 자유 추가):
616
+ **자유 추가 sub-section** (`#### 예외 처리` 아래에, §5.x 별로 필요 시 h4 자유 추가):
581
617
 
582
- - **양식 입출력** (예: `#### 읽기 양식`·`#### 쓰기 양식`) — §4 양식 입출력 sub-section 동일. 방향 = 읽기·쓰기. 일회성이면 sub-section 안에서 직접 명세.
583
- - **기타 자동 처리 고유 정보** — 자유 sub-section 이름.
618
+ - **양식 입출력** (예: `#### 읽기 양식`·`#### 쓰기 양식`) — §4 의 "양식 입출력" sub-section 룰과 동일. 방향은 읽기·쓰기. 일회성 양식이면 sub-section 안에서 직접 명세.
619
+ - **기타 자동 처리 고유 정보** — sub-section 이름은 자유.
584
620
 
585
621
  ## §6 횡단 처리
586
622
 
587
- **임의안 단위**: §6.x 1개당 위→아래 1건씩:
623
+ **초안 단위**: §6.x 1개당 위→아래 순서로 1건씩:
588
624
  1. 목적 / 트리거 (부수효과 발동 조건) (한 묶음).
589
625
  2. 처리.
590
626
  3. 예외 처리.
591
- 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 양식 매핑·모델 매핑). 복잡 양식 sub-단위 = sub-단위별 1건.
627
+ 4. 자유 추가 sub-section (해당 시) — sub-section 별 1건 (예: 양식 매핑·모델 매핑 각각 별건). 복잡 양식 내부의 sub-단위는 sub-단위별 1건.
592
628
 
593
629
  **모범**: example-spec.md §6.1.
594
630
 
595
631
  ### 정의
596
632
 
597
- 다른 동작의 부수효과로 발동되는 시스템 동작. §3 기타 요구사항의 시스템 전반 자동 룰을 설계로 풀이.
633
+ 다른 동작의 부수효과로 발동되는 시스템 동작. §3 기타 요구사항의 시스템 전반 자동 룰을 설계 차원에서 풀이.
598
634
 
599
635
  예시:
600
- - DataLog 기록 — 데이터 변경 부수.
601
- - 권한 체크 — 요청 부수.
602
- - 캐시 무효화 — 변경 부수.
603
- - 알림 발송 — 이벤트 부수.
604
- - 감사 로그 — 동작 부수.
636
+ - DataLog 기록 — 데이터 변경의 부수효과.
637
+ - 권한 체크 — 요청의 부수효과.
638
+ - 캐시 무효화 — 변경의 부수효과.
639
+ - 알림 발송 — 이벤트의 부수효과.
640
+ - 감사 로그 — 동작의 부수효과.
605
641
 
606
- §5 자동 처리와 차이: §5 = 스케줄/이벤트 명시 트리거 (예: 매일 자정·메일 도착). §6 = 다른 동작 부수효과 트리거 (예: 모든 엔티티 update 시).
642
+ §5 자동 처리와의 차이: §5 = 스케줄·이벤트로 명시적 트리거 (예: 매일 자정·메일 도착). §6 = 다른 동작의 부수효과로 트리거 (예: 모든 엔티티 update 시).
607
643
 
608
644
  ### 본문 구조
609
645
 
610
- sub-section 헤더 레벨 = `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
646
+ sub-section 헤더 레벨은 `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
611
647
 
612
- **평문 sub-section** (§6.x 헤더 바로 아래, 라벨 + 본문 형식):
648
+ **평문 sub-section** (§6.x 헤더 바로 아래에 "라벨 + 본문" 형식으로 작성):
613
649
 
614
650
  - `목적:` 부수효과의 도메인 목적.
615
651
  - `트리거:` 어떤 동작의 부수로 발동되는지 + 적용 범위 (예: "모든 엔티티 update 시 / 전체", "특정 도메인 X 변경 시 / 특정 엔티티", "API 요청 시 / 전체").
616
- - `관련 섹션:` 본문 내 참조 절 룰 따름.
652
+ - `관련 섹션:` "본문 내 참조" 절 룰 따름.
617
653
 
618
- **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
654
+ **h4 sub-section** (평문 아래에 고정 순서로 위→아래 작성):
619
655
 
620
656
  #### 처리
621
657
 
622
- 처리 단계.
658
+ 처리 단계 작성.
623
659
 
624
660
  #### 예외 처리
625
661
 
626
- 실패 케이스별 위험·대처·재시도 한계.
662
+ 실패 케이스별 위험·대처·재시도 한계 작성.
627
663
 
628
- **자유 추가 sub-section** (`#### 예외 처리` 아래, §6.x 필요 시 h4 자유 추가):
664
+ **자유 추가 sub-section** (`#### 예외 처리` 아래에, §6.x 별로 필요 시 h4 자유 추가):
629
665
 
630
- - **양식 입출력** (§5 양식 입출력 sub-section 동일).
631
- - **모델 매핑** (예: `#### 모델 매핑`) — 이 횡단 처리가 사용·갱신하는 도메인 모델 매핑. 표 `필드 ([모델.X.Y])` + `용도` + `변환·규칙 (해당 시)`.
632
- - **기타 횡단 처리 고유 정보** — 자유 sub-section 이름.
666
+ - **양식 입출력** (§5 의 "양식 입출력" sub-section 룰과 동일).
667
+ - **모델 매핑** (예: `#### 모델 매핑`) — 이 횡단 처리가 사용·갱신하는 도메인 모델 매핑. 표 컬럼은 `필드 ([모델.X.Y])` + `용도` + `변환·규칙 (해당 시)`.
668
+ - **기타 횡단 처리 고유 정보** — sub-section 이름은 자유.
633
669
 
634
670
  ## §7 공통 정의
635
671
 
636
- 작성 중 자연 도출 (5단계 다른 § 영향). 도메인 어휘·시스템 규격 발견 사이클 진입.
672
+ 작성 중 자연스럽게 도출됨 (5단계의 "다른 섹션 반영거리" 절차). 새로운 도메인 어휘·시스템 규격을 발견하면 사이클 진입.
637
673
 
638
674
  **모범**: example-spec.md §7.1~§7.4.
639
675
 
640
676
  ### §7.1 용어 사전 (고정)
641
677
 
642
- 도메인 어휘·약어·시스템 내 의미 정의.
678
+ 도메인 어휘·약어·시스템 내 의미를 정의.
643
679
 
644
680
  ### §7.2~ 기타 공통 규격
645
681
 
646
- 시스템 전반 규격 (바코드 형식·라벨·공통 정책 등).
682
+ 시스템 전반 규격 (바코드 형식·라벨·공통 정책 등) 작성.
647
683
 
648
- 특정 §2/§3 본문 단계에서 자연 흡수되는 규칙(업로드 자료 컬럼 매핑·자료 해석 규칙)은 §7 X → 사용처 본문에 둠.
684
+ 특정 §2/§3 본문 단계에서 자연스럽게 포함되는 규칙 (업로드 자료 컬럼 매핑·자료 해석 규칙) 은 §7 두지 않음 → 사용처 본문에 둠.
649
685
 
650
686
  ### 외부 자료 명세
651
687
 
652
- §7 외부 자료 = **시스템 외부에서 정의되어 도메인 모델로 자명하지 않은** 자료 (예: 외부 시스템 송신 파일, 거래처 표준 양식, 정해진 외부 규격). 도메인 모델의 자체 엑셀 업로드/다운로드 양식은 §7 X — §8 도메인 모델 + §4/§5/§6 양식 매핑으로 자명.
688
+ §7 외부 자료 = **시스템 외부에서 정의되어 도메인 모델로 자명하지 않은** 자료 (예: 외부 시스템 송신 파일, 거래처 표준 양식, 정해진 외부 규격). 도메인 모델의 자체 엑셀 업로드·다운로드 양식은 §7 아님 — §8 도메인 모델 + §4/§5/§6 양식 매핑으로 자명.
653
689
 
654
- 자료별 필수. 외부 자료의 모든 컬럼/필드를 1행 1정의 (자료 자체 객관 명세).
690
+ 자료별로 표가 필수. 외부 자료의 모든 컬럼·필드를 1행 1정의로 작성 (자료 자체의 객관 명세).
655
691
 
656
- **자료-레벨 메타** (송신 측·자료 라이프사이클·갱신 주기·식별 키 구조 등 자료 *전체* 적용 객관 명세):
657
- - 근거 있을 컬럼 표 위에 자유 작성 (불릿/단락/`라벨: 값` 모두 허용).
658
- - 컬럼 표 안에 욱여넣지 X.
692
+ **자료-레벨 메타** (송신 측·자료 라이프사이클·갱신 주기·식별 키 구조 등 자료 *전체* 적용되는 객관 명세):
693
+ - 근거가 있을 때만 컬럼 표 위에 자유 작성 (불릿·단락·`라벨: 값` 형식 모두 허용).
694
+ - 컬럼 표 안에 욱여넣지 않음.
659
695
 
660
696
  **컬럼 표**:
661
- - 외부 자료 여러 개 (`SAP.XML`·`D1.CSV`) 자료별 별도 표.
662
- - 컬럼: 자료 성격에 따라 LLM 임의안 확정. 예: `컬럼명/식별자 | 필수/선택 | 설명/규칙`.
663
- - 모든 컬럼 유지.
664
- - "설명/규칙" 류 = **그 컬럼이 무엇인지** (데이터 정의: 형식·값 범위·의미·제약) 만. **용도** (어디에 어떻게 쓰이는지) X — 용도·매핑은 사용처(§4/§5/§6 양식 매핑)에서.
665
- - 각 셀 값은 근거 채택 가능 자료 있을 때만. 추정·임의 작성 X.
666
- - "원본 따름"·"전체 명세는 X.xlsx 참조" 등 외부 참조로 본문 정의 대체 X.
667
- - 원본 자료 LLM 접근 불가/누락/모호 → 임의 처리 X. 사용자에게 자료 또는 명세 정보 요청.
697
+ - 외부 자료가 여러 개 (`SAP.XML`·`D1.CSV`) 이면 자료별로 별도의 표 작성.
698
+ - 컬럼 구성은 자료 성격에 따라 LLM 초안 제시 후 사용자와 확정. 예: `컬럼명/식별자 | 필수/선택 | 설명/규칙`.
699
+ - 모든 컬럼에 대한 행을 유지.
700
+ - "설명/규칙" 류 컬럼에는 **그 컬럼이 무엇인지** (데이터 정의: 형식·값 범위·의미·제약) 작성. **용도** (어디에 어떻게 쓰이는지) 작성 금지 — 용도·매핑은 사용처 (§4/§5/§6 양식 매핑) 에서 작성.
701
+ - 각 셀 값은 근거로 채택 가능한 자료가 있을 때만 작성. 추정·임의 작성 금지.
702
+ - "원본 따름"·"전체 명세는 X.xlsx 참조" 등 외부 참조로 본문 정의를 대체 금지.
703
+ - 원본 자료에 LLM 접근 불가하거나 누락·모호 → 임의 처리 금지. 사용자에게 자료 또는 명세 정보 요청.
668
704
 
669
705
  ## §8 도메인 모델
670
706
 
671
- 작성 중 자연 도출. 엔티티 발견 사이클 진입.
707
+ 작성 중 자연스럽게 도출됨. 새로운 엔티티를 발견하면 사이클 진입.
672
708
 
673
709
  **모범**: example-spec.md §8.1~§8.6.
674
710
 
@@ -676,85 +712,85 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
676
712
 
677
713
  ### 필드 표
678
714
 
679
- 컬럼: `필드 | 타입 | 필수 | 비고`.
715
+ 컬럼 구성: `필드 | 타입 | 필수 | 비고`.
680
716
 
681
- - 비고: **그 필드가 무엇인지** (데이터 정의: 형식·값 범위·의미·제약·예시) 만. **용도·출처·외부 양식/외부 시스템과의 매핑** X — §4/§5/§6 양식 매핑·모델 매핑 / §9 자료 매핑에서.
717
+ - 비고에는 **그 필드가 무엇인지** (데이터 정의: 형식·값 범위·의미·제약·예시) 작성. **용도·출처·외부 양식·외부 시스템과의 매핑** 작성 금지 — §4/§5/§6 양식 매핑·모델 매핑 / §9 자료 매핑에서 작성.
682
718
 
683
719
  ### 키/제약 불릿
684
720
 
685
- - **식별 키**: 모든 엔티티에 `ID` 필드 (숫자, 자동 부여) 명시.
686
- - **비즈니스 키** (코드 등): 별도 명시. 수정 가능 (PK 아님).
687
- - **활성/비활성 boolean** = 소프트 삭제 플래그. 마스터에 완전 삭제 없음. UI "삭제/복구" 액션과 매핑 → §7.1 용어 사전에 한 명문화.
721
+ - **식별 키**: 모든 엔티티에 `ID` 필드 (숫자, 자동 부여) 명시.
722
+ - **비즈니스 키** (코드 등): 별도로 명시. 수정 가능 (PK 아님).
723
+ - **활성/비활성 boolean** = 소프트 삭제 플래그. 마스터에는 완전 삭제가 없음. UI "삭제/복구" 액션과 매핑됨 → §7.1 용어 사전에 한 줄로 명문화.
688
724
 
689
725
  ## §9 외부 인터페이스
690
726
 
691
- **임의안 단위** (한 §9.x 당 2회):
692
- 1. 기본 정보 + 자료 매핑 → "맞나요?".
693
- 2. 예외 처리 → "맞나요?".
727
+ **초안 단위** (한 §9.x 당 2회 진행):
728
+ 1. 기본 정보 + 자료 매핑 → "맞나요?" 합의.
729
+ 2. 예외 처리 → "맞나요?" 합의.
694
730
 
695
- 작성 중 자연 도출. 외부 시스템 호출 발견 사이클 진입.
731
+ 작성 중 자연스럽게 도출됨. 외부 시스템 호출을 발견하면 사이클 진입.
696
732
 
697
733
  **모범**: example-spec.md §9.1.
698
734
 
699
735
  ### 정의
700
736
 
701
- §9 = 상대 시스템 고유 인터페이스 약속 (시스템마다 자료 매핑·방식 달라 협상 필요).
737
+ §9 = 상대 시스템 고유의 인터페이스 약속 (시스템마다 자료 매핑·방식이 달라 협상이 필요한 것).
702
738
 
703
- - 포함 예: 상대 ERP/거래처 자체 정의 API·EDI 규격, 외부 시스템 webhook 페이로드.
704
- - 제외 예: 표준 프로토콜·채널 (메일 SMTP/IMAP/Exchange/Graph, FTP, 표준 OAuth). 시스템별 협상 없음 → §5 자동 처리에서 트리거·처리·양식 매핑으로 흡수.
739
+ - 포함 예시: 상대 ERP·거래처가 자체 정의한 API·EDI 규격, 외부 시스템의 webhook 페이로드.
740
+ - 제외 예시: 표준 프로토콜·채널 (메일 SMTP·IMAP·Exchange·Graph, FTP, 표준 OAuth). 시스템별 협상이 없음 → §5 자동 처리에서 트리거·처리·양식 매핑으로 처리.
705
741
 
706
742
  ### 디테일 범위
707
743
 
708
- 도메인 약속 레벨까지만. 구체 endpoint URL·HTTP method·query 파라미터·인증 흐름 단계(grant_type·scope·token endpoint)·SDK 메소드명 등 구현 디테일 X구현이 알아서. (§2 BPMN·§4 와이어·§8 도메인 모델과 동일 원칙).
744
+ 도메인 약속 레벨까지만 작성. 구체 endpoint URL·HTTP method·query 파라미터·인증 흐름 단계 (grant_type·scope·token endpoint) ·SDK 메소드명 등 구현 디테일은 제외구현 단계에서 처리. (§2 BPMN·§4 와이어·§8 도메인 모델과 동일한 원칙).
709
745
 
710
746
  ### 본문 구조
711
747
 
712
- sub-section 헤더 레벨 = `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
748
+ sub-section 헤더 레벨은 `## spec.md 형식` "sub-section 헤더 레벨" 표 참조.
713
749
 
714
- **평문 sub-section** (§9.x 헤더 바로 아래, 위→아래):
750
+ **평문 sub-section** (§9.x 헤더 바로 아래에 위→아래 순서로 작성):
715
751
 
716
- - **기본 정보** (라벨 bullet 3):
752
+ - **기본 정보** (라벨 bullet 3):
717
753
  - `상대 시스템: <시스템명>`.
718
754
  - `방향: <방향 표기>`.
719
755
  - `전송 방식: <방식>`.
720
- - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 한 줄, 자동 누적): 본문 내 참조 절 룰 따름. 호출자 등 참조/의존 섹션 포함.
756
+ - **관련 섹션** (`관련 섹션: [카테고리.이름], ...` 형식의 한 줄, 자동 누적): "본문 내 참조" 절 룰 따름. 호출자 등 참조·의존 섹션 포함.
721
757
 
722
- **h4 sub-section** (평문 아래, 고정 순서, 위→아래):
758
+ **h4 sub-section** (평문 아래에 고정 순서로 위→아래 작성):
723
759
 
724
760
  #### 자료 매핑
725
761
 
726
- 표 — 상대 시스템 필드 ↔ 본 시스템 출처.
762
+ 형식 — 상대 시스템의 필드 ↔ 본 시스템의 출처.
727
763
 
728
764
  #### 예외 처리
729
765
 
730
- 실패 케이스별 위험·대처·재시도 한계.
766
+ 실패 케이스별 위험·대처·재시도 한계 작성.
731
767
 
732
768
  ## §10 본문 외 확정 사항
733
769
 
734
- §1~§9 어디에도 자연스럽게 들어가는 결정·메모를 누적. §1~§9 적절한 자리에 박을 수 있는 결정은 §10 X (누락 도피처 X).
770
+ §1~§9 어느 곳에도 자연스럽게 들어가지 않는 결정·메모를 누적. §1~§9 적절한 자리에 넣을 수 있는 결정은 §10 두지 않음 (누락 도피처가 아님).
735
771
 
736
772
  **모범**: example-spec.md §10.
737
773
 
738
774
  ### 형식
739
775
 
740
- 항목:
776
+ 항목의 구조:
741
777
 
742
778
  - **헤더 1줄** (필수): `- YYYY-MM-DD: <결정 한 줄>`.
743
779
  - 분석 제외 시: `- YYYY-MM-DD [제외]: <결정 한 줄>`.
744
- - **자식 bullet**: 자유 (개수·내용 자유).
745
- - **결정 근거 필수** (1개 이상).
746
- - 자유 항목 예: 자료 위치·영향 범위·대화 발췌·메모·관련 § 등.
747
- - 분석 제외 시 추가 필수: `후속 처리`·`자료 위치`.
780
+ - **자식 bullet**: 형식 자유 (개수·내용 모두 자유).
781
+ - **결정 근거 1개 이상 필수**.
782
+ - 자유 항목 예시: 자료 위치·영향 범위·대화 발췌·메모·관련 § 등.
783
+ - 분석 제외 시 추가 필수 항목: `후속 처리`·`자료 위치`.
748
784
 
749
785
  ### 포괄 결정 종류
750
786
 
751
- 매번 분류 X — 자연 흐름대로 누적. 분석 제외 신호 있을 때만 `[제외]` 마커.
787
+ 매번 분류하지 않음 — 자연 흐름대로 누적. 분석 제외 신호가 있을 때만 `[제외]` 마커 부착.
752
788
 
753
- - **진행 방법**: **spec 전체** 작업의 사용자 합의 진행 방식 (예: 작성 순서·범위 한정·전체 적용 규칙 등). 분석 단위 한정은 `## spec.md 형식` "진행 방법 누적" 절 참조 — sd-spec 본인 후속 참조용.
754
- - **미래 결정**: 단계 도달 결정 (예: "추후 §4.5 작성 시 X 항목 포함") — sd-spec 본인 후속 참조용.
755
- - **구현 영역 결정**: spec 본문에 들어가는 구현 측 결정 (예: 라이브러리 선택) — sd-impl 후속 참조용.
789
+ - **진행 방법**: **spec 전체** 작업에 대한 사용자 합의 진행 방식 (예: 작성 순서·범위 한정·전체 적용 규칙 등). 분석 단위에 한정된 진행 방법은 `## spec.md 형식` "진행 방법 누적" 절 참조 — sd-spec 자신의 후속 참조용.
790
+ - **미래 결정**: 해당 단계에 도달하기 전에 미리 내린 결정 (예: "추후 §4.5 작성 시 X 항목 포함") — sd-spec 자신의 후속 참조용.
791
+ - **구현 영역 결정**: spec 본문에 들어가지 않는 구현 측 결정 (예: 라이브러리 선택) — sd-impl 후속 참조용.
756
792
  - **부정 결정**: "X 안 함" 부정 명시 — 반복 질문 방지용.
757
- - **분석 제외**: 본 spec 에서 다루지 않는 항목 — 다른 spec/sd-dev/운영 잔손 등 외부 후속 처리.
793
+ - **분석 제외**: 본 spec 에서 다루지 않는 항목 — 다른 spec·sd-dev·운영 잔손 등 외부 후속 처리 대상.
758
794
 
759
795
  ### 예시
760
796
 
@@ -768,7 +804,7 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
768
804
  - 근거: 사용자 명시 (PG사 계약 호환)
769
805
 
770
806
  - 2026-05-22 [제외]: 다국어 지원
771
- - 근거: 현재 단계 X
807
+ - 근거: 현재 단계 아님
772
808
  - 후속 처리: 다른 spec 신규
773
809
  - 자료 위치: 회의록_3.md L80-95
774
810
 
@@ -778,7 +814,7 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
778
814
 
779
815
  ## spec.md 골격 (분석 분할 단계)
780
816
 
781
- 분석 분할 단계에서 spec.md 신규 생성 박는 골격. `{name}` = 사용자와 합의한 시스템명.
817
+ 분석 분할 단계에서 spec.md 신규 생성할 사용하는 골격. `{name}` 사용자와 합의한 시스템명.
782
818
 
783
819
  ```markdown
784
820
  # {name} 요구 분석서
@@ -813,8 +849,8 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
813
849
  ```
814
850
 
815
851
  분석 분할 결과 반영:
816
- - §2.x/§3.x 헤더 일괄 추가 (헤더 마커 `[OPEN: 날짜]` + 본문 = 분석 방법).
817
- - §10 = 분석 분할 단계 사용자 명시 제외 결정 (`[제외]` 마커) 반영.
852
+ - §2.x/§3.x 헤더를 일괄 추가 (헤더 마커 `[OPEN: 날짜]` + 본문 = 분석 방법).
853
+ - §10 에는 분석 분할 단계에서 사용자가 명시한 제외 결정 (`[제외]` 마커) 반영.
818
854
 
819
855
  ## 외부 참조
820
856
 
@@ -822,4 +858,3 @@ sub-section 헤더 레벨 = `## spec.md 형식` 안 "sub-section 헤더 레벨"
822
858
  | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
823
859
  | [references/example-spec.md](references/example-spec.md) | spec.md 형식 모범 (WMS 예시 1건). 각 § 작성법의 "모범" 표기에서 참조 |
824
860
  | [.claude/references/sd-requirement-source-handling.md](../../references/sd-requirement-source-handling.md) | Requirement Source 부정확성 처리 (STT 오타·화자 모호·발화 모호·도메인 용어 다의성) |
825
- | [.claude/rules/sd-base-rules.md](../../rules/sd-base-rules.md) | 결정 근거·임의안 단위·발언 의도 파악·표현 톤 등 상위 룰 (자동 로드, 중복 명시 X) |