@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,63 +5,63 @@ description: spec.md 의 화면 1개를 클라이언트 패키지의 화면 컴
5
5
 
6
6
  # sd-demo
7
7
 
8
- spec.md 화면 1개를 클라이언트 패키지의 화면 컴포넌트 자리에 데모로 만듦. 와이어프레임 상의 배치·라벨·동작 흐름이 일치하는 클릭 가능 UI. 후속 단계에서 같은 자리에 실제 로직을 채워 진화함.
8
+ spec.md 화면 1개를 클라이언트 패키지의 화면 컴포넌트 자리에 데모로 생성. 와이어프레임의 배치·라벨·동작 흐름과 일치하는 클릭 가능 UI 산출. 후속 단계에서 같은 자리에 실제 로직을 채워 진화시킴.
9
9
 
10
10
  ## 본질: UI 가 1순위
11
11
 
12
- 소비자는 시연 받는 사용자. 사용자는 화면만 봄. 코드는 후속 단계가 다시 짬.
12
+ 대상은 시연을 받는 사용자. 사용자는 화면만 봄. 코드는 후속 단계에서 다시 작성됨.
13
13
 
14
- - **본 작업의 주력 = template 복원.** 와이어프레임을 시각적으로 정확·정돈되게.
15
- - 코드 골격(시그널·effect·DI·핸들러)은 **코드베이스에서 분석해 따라감** — 본 스킬은 라이브러리 규약을 박아두지 않음.
16
- - 데이터 변경 시뮬레이션 금지. 저장·삭제 핸들러는 마커만. 클릭은 받되 결과 반영 X.
14
+ - **본 작업의 주력은 template(HTML) 복원** 와이어프레임을 시각적으로 정확·정돈되게 재현.
15
+ - 코드 골격(시그널·effect·DI·핸들러)은 **코드베이스에서 분석해 따름** — 본 스킬에 라이브러리 규약을 박아두지 않음.
16
+ - 데이터 변경 시뮬레이션 금지. 저장·삭제 핸들러는 마커만 작성. 클릭은 받되 결과 반영 금지.
17
17
  - 모달 띄우기는 실제로 작동시켜 시연 가치 확보.
18
18
 
19
19
  ## 워크플로
20
20
 
21
21
  ### 1단계: 입력 확보
22
22
 
23
- 호출에 다음 필요:
23
+ 호출에 다음 입력이 필요:
24
24
 
25
- - 대상 spec.md 경로.
26
- - 만들 화면 식별자 — `[화면.X]` 또는 §4.x.
27
- - 산출 위치 초안 — 클라이언트 패키지 + 화면 폴더. client 타겟이 1개면 자동, 여러 개면 후보 제시 후 사용자 확정. (3단계-C 끝에서 도메인 인접 결과로 갱신)
25
+ - 대상 spec.md 경로.
26
+ - 만들 화면의 식별자 — `[화면.X]` 형태 또는 spec.md "화면 설계" 섹션의 화면 항목.
27
+ - 산출 위치 초안 — 클라이언트 패키지 + 화면 폴더. client 타겟이 1개면 자동 선택, 여러 개면 후보 제시 후 사용자 확정. (3단계-C 끝에서 도메인이 인접한 결과로 갱신)
28
28
 
29
- 없으면 묻기. spec.md 식별자 매칭이 안 되면 §4 화면 목록 표에서 후보 제시 후 확정.
29
+ 누락된 입력이 있으면 사용자에게 묻기. spec.md 에서 식별자 매칭이 안 되면 "화면 설계" 섹션의 화면 목록 표에서 후보 제시 후 확정.
30
30
 
31
- **충돌 확인**: 대상 화면(또는 동반 모달 §4.x) 파일이 이미 있으면 묻기 — ① 덮어쓰기 / ② spec 변경분만 보강 / ③ 취소. 호출자 발화에 명시 분기가 있으면 묻지 않고 그 분기로 진행.
31
+ **충돌 확인**: 대상 화면(또는 동반 모달 화면) 파일이 이미 존재하면 묻기 — ① 덮어쓰기 / ② spec 변경분만 보강 / ③ 취소. 호출자 발화에 명시된 분기가 있으면 묻지 않고 그 분기로 진행.
32
32
 
33
- ### 2단계: spec §4.x 분석
33
+ ### 2단계: 대상 화면 항목 분석
34
34
 
35
- §4.x 에서 추출:
35
+ spec.md 대상 화면 항목에서 다음을 추출:
36
36
 
37
37
  - 헤더 인덱스(Actor · 관련 섹션 · 장치).
38
38
  - 기능 개요 · 와이어프레임 · 항목표 · 동작 · 도메인 규칙(해당 시).
39
- - §동작에 등장하는 모달 호출 `→ [화면.Y] 을 모달로 띄움` 모두 수집.
39
+ - 동작 항목에 등장하는 모달 호출(`→ [화면.Y] 을 모달로 띄움` 형태) 모두 수집.
40
40
 
41
41
  ### 3단계: 분석 자료 확보
42
42
 
43
- **[gate] 3단계 A (라이브러리 문서) 진입 전엔 3단계 이후 출력 금지**.
43
+ **[gate] 3단계-A (라이브러리 문서) 진입 전엔 3단계 이후 출력 금지**.
44
44
 
45
45
  - 3단계 진입 시 A 부터 Read (B·C 보다 먼저).
46
- - 스킵 안티패턴 — "참고 코드 부재" 신호 (빈 패키지·답습 화면 없음·client 타겟 비어있음 등) A 건너뛰고 B(본체 소스 grep)·C(부위별 수집) 점프.
47
- - A 미진입 3단계 이후 모든 출력 보류.
46
+ - 스킵 안티패턴 — "참고 코드 부재" 신호(빈 패키지·참고할 화면 없음·client 타겟 비어있음 등) 이유로 A 건너뛰고 B(본체 소스 grep)·C(부위별 수집) 로 바로 진입.
47
+ - A 미진입 3단계 이후 모든 출력 보류.
48
48
 
49
- 산출물을 만들기 전, 다음을 분석해 라이브러리 규약을 확보함.
49
+ 산출물을 만들기 전, 다음을 분석해 라이브러리 규약을 파악.
50
50
 
51
51
  **A. 라이브러리 문서**
52
52
 
53
- 코드베이스에 권위 규약/매뉴얼 문서가 있으면 1순위로 따름.
53
+ 코드베이스에 권위 있는 규약·매뉴얼 문서가 있으면 1순위로 따름.
54
54
 
55
55
  - `@simplysm/*` 14.x 사용 시 — [.claude/references/sd-simplysm14/README.md](../../references/sd-simplysm14/README.md) Read 후 "개발 매뉴얼" 항목 진입. 클라이언트 화면은 `client-component.md`, 화면 컨트롤은 `client-tab.md` 등.
56
- - 그 외 framework 코드베이스 안의 동등 위치 문서를 찾아 Read.
56
+ - 그 외 framework 사용 코드베이스 안의 동등 위치 문서를 찾아 Read.
57
57
 
58
58
  **B. 라이브러리 컴포넌트 소스**
59
59
 
60
- 쓰려는 컴포넌트(예: `sd-form`, `sd-crud-list`)가 있으면 **본체 소스를 직접 Read** input/output·동작을 정확히 파악. 사용처 grep 만으로는 누락된 prop 을 놓침.
60
+ 사용 예정 컴포넌트(예: `sd-form`, `sd-crud-list`)가 있으면 **본체 소스를 직접 Read** 하여 input/output·동작을 정확히 파악. 사용처 grep 만으로는 누락된 prop 을 놓침.
61
61
 
62
62
  **C. 부위별 패턴 레퍼런스 수집**
63
63
 
64
- 코드베이스의 클라이언트 화면 전반에서 **부위(부분)별로 공통 패턴**을 수집함. "구성 똑같은 화면 1개를 골라 통째 답습" 모델이 아님. 일치 화면이 있어도, 부위별 종합 결과 위에 추가로 얹음.
64
+ 코드베이스의 클라이언트 화면 전반에서 **부위(부분)별로 공통 패턴**을 수집. "구성이 똑같은 화면 1개를 골라 통째로 따라하기" 방식은 금지. 일치하는 화면이 있어도, 부위별 종합 결과 위에 추가로 얹음.
65
65
 
66
66
  **수집 대상 부위** (대상 화면이 사용하는 것만 골라 수집):
67
67
 
@@ -78,24 +78,24 @@ spec.md 화면 1개를 클라이언트 패키지의 화면 컴포넌트 자리
78
78
 
79
79
  **절차**:
80
80
 
81
- 1. 클라이언트 패키지의 화면 폴더 전반 Glob 으로 훑어 화면 목록 확보.
82
- 2. 위 부위별로 **각 부위마다 화면 2~4개**를 골라 template 부분 발췌 Read. 도메인 영역(같은 sub-app)이 가까운 화면 우선. 부위마다 다른 화면을 골라도 됨 (예: 헤더는 화면 X·Y, 리스트는 화면 Z·W).
83
- 3. 부위별 공통 패턴(자주 쓰는 슬롯·클래스·요소 구조) 메모화. 1회만 쓰인 변종은 채택 후보에서 배제, 다수에서 반복되는 것을 채택.
84
- 4. 부위별 패턴이 화면마다 갈라지면 (예: 리스트가 테이블·카드 두 갈래) 대상 화면의 와이어프레임이 어느 쪽인지로 선택.
81
+ 1. 클라이언트 패키지의 화면 폴더 전반을 Glob 으로 훑어 화면 목록을 확보.
82
+ 2. 위 부위별로 **각 부위마다 화면 2~4개**를 골라 template 부분을 발췌 Read. 도메인 영역(같은 sub-app)이 가까운 화면 우선. 부위마다 다른 화면을 골라도 됨 (예: 헤더는 화면 X·Y, 리스트는 화면 Z·W).
83
+ 3. 부위별 공통 패턴(자주 쓰는 슬롯·클래스·요소 구조) 메모. 1회만 쓰인 변종은 채택 후보에서 배제하고, 다수에서 반복되는 것을 채택.
84
+ 4. 부위별 패턴이 화면마다 갈라지면(예: 리스트가 테이블·카드 두 갈래) 대상 화면의 와이어프레임이 어느 쪽에 해당하는지에 따라 선택.
85
85
 
86
- **도메인 인접 후보 → 산출 위치 확정**: 같은 sub-app·같은 도메인 폴더에 화면이 1개 이상 있으면 그 폴더로 1단계 산출 위치 초안 갱신 (자동 채택). 0개면 라우팅·메뉴 등록 위치를 사용자에게 1회 질문.
86
+ **도메인 인접 후보 → 산출 위치 확정**: 같은 sub-app·같은 도메인 폴더에 기존 화면이 1개 이상 있으면 그 폴더로 1단계 산출 위치 초안을 갱신(자동 채택). 0개면 라우팅·메뉴 등록 위치를 사용자에게 질문.
87
87
 
88
- LLM 단독 판단 한계: 동일 구성 화면이 한 곳도 없다고 라이브러리 규약만으로 그리면 됨. **반드시 부위별로 수집한 패턴을 근거로** 그려야 함. 부위별 후보가 0개인 부위가 있으면 그 부위만 사용자에게 1회 질문 (그 화면의 그 부위 어떻게 처리할지).
88
+ LLM 단독 판단의 한계: 동일 구성 화면이 한 곳도 없다는 이유로 라이브러리 규약만으로 그리는 금지. **반드시 부위별로 수집한 패턴을 근거로** 작성. 부위별 후보가 0개인 부위가 있으면 그 부위만 사용자에게 질문(그 화면의 그 부위를 어떻게 처리할지).
89
89
 
90
90
  ### 4단계: 생성
91
91
 
92
- 3단계 분석 자료(A/B/C)를 1순위 근거로, **template 부터** 채움.
92
+ 3단계 분석 자료(A/B/C)를 1순위 근거로, **template(HTML) 부터** 채움.
93
93
 
94
- - 파일명·selector·시그널·DI 명명 등은 라이브러리 문서(A) 가 정한 형식 그대로.
95
- - 슬롯·영역 분할·클래스 패턴은 3단계-C 부위별 패턴 채택분 그대로. 부위별로 다른 화면을 참조했더라도 각 부위 채택분을 그대로 옮김.
96
- - 부위별 채택분의 출처(레퍼런스 화면 파일 경로)를 메모해 5단계 점검 입력으로 사용.
97
- - 모달 호출 화면이면 동반 모달 §4.x 같은 단계로 생성. 모달 띄우기는 실제 작동시켜 시연 가치 확보.
98
- - 저장·삭제 등 데이터 변경 핸들러는 마커(`// sd-demo: 미구현 — 동작 자리`)만. 클릭은 받되 결과 반영 X.
94
+ - 파일명·selector·시그널·DI(Dependency Injection) 명명 등은 라이브러리 문서(A) 가 정한 형식 그대로 적용.
95
+ - 슬롯·영역 분할·클래스 패턴은 3단계-C 부위별 패턴 채택분을 그대로 적용. 부위별로 다른 화면을 참조했더라도 각 부위의 채택분을 그대로 옮김.
96
+ - 부위별 채택분의 출처(레퍼런스 화면 파일 경로)를 메모해 5단계 점검의 입력으로 활용.
97
+ - 모달 호출이 포함된 화면이면 동반 모달 화면 항목도 같은 단계로 생성. 모달 띄우기는 실제로 작동시켜 시연 가치 확보.
98
+ - 저장·삭제 등 데이터 변경 핸들러는 마커(`// sd-demo: 미구현 — 동작 자리`) 작성. 클릭은 받되 결과 반영 금지.
99
99
 
100
100
  **표식 마커 (고정)**
101
101
 
@@ -106,26 +106,26 @@ LLM 단독 판단 한계: 동일 구성 화면이 한 곳도 없다고 라이브
106
106
  | 더미 타입 인라인 선언 위 | `// sd-demo: 더미 타입 — 구현 단계에서 @모델/X 로 교체` |
107
107
  | 임의 추정값 선언/사용 위 | `// sd-demo: 임의 추정값 — 확인 필요` |
108
108
 
109
- 다른 변형 사용 금지. 후속 단계가 grep 으로 추적함.
109
+ 다른 변형 사용 금지 후속 단계에서 grep 으로 추적함.
110
110
 
111
111
  ### 5단계: 자체 점검
112
112
 
113
- **패스 1: 부위별 패턴 일치** — 3단계-C 에서 부위마다 채택한 레퍼런스 화면을 다시 Read 부위별로 비교:
113
+ **패스 1: 부위별 패턴 일치** — 3단계-C 에서 부위마다 채택한 레퍼런스 화면을 다시 Read 하여 부위별로 비교:
114
114
 
115
- - 헤더/툴바: 도구 버튼 배치·라벨 형식·간격·클래스 동일.
116
- - 영역 분할: split/탭/sheet/dock 사용 동일.
117
- - 리스트: 헤더 셀·행 셀 마크업·정렬/선택 슬롯 동일.
118
- - 폼: 필드 그리드·라벨/입력 배치·푸터 버튼 동일.
119
- - 모달: 헤더·본문·푸터 구조 동일.
120
- - 빈 상태: 아이콘·여백·문구 동일.
115
+ - 헤더/툴바: 도구 버튼 배치·라벨 형식·간격·클래스가 동일한지.
116
+ - 영역 분할: split/탭/sheet/dock 사용이 동일한지.
117
+ - 리스트: 헤더 셀·행 셀 마크업·정렬/선택 슬롯이 동일한지.
118
+ - 폼: 필드 그리드·라벨/입력 배치·푸터 버튼이 동일한지.
119
+ - 모달: 헤더·본문·푸터 구조가 동일한지.
120
+ - 빈 상태: 아이콘·여백·문구가 동일한지.
121
121
 
122
- 부위 중 한 곳이라도 채택 패턴과 어긋나면(임의 변형·새 클래스 발명·새 슬롯 사용) 수정. "비슷한 화면이 없어서 알아서 그렸다" 자기 합리화 금지 — 그 부위 채택분이 비어 있다는 뜻이므로 3단계-C 로 돌아가 수집·재선택.
122
+ 부위 중 한 곳이라도 채택 패턴과 어긋나면(임의 변형·새 클래스 발명·새 슬롯 사용) 수정. "비슷한 화면이 없어서 알아서 그렸다" 자기 합리화 금지 — 그 부위의 채택분이 비어 있다는 뜻이므로 3단계-C 로 돌아가 수집·재선택.
123
123
 
124
- **패스 2: 라이브러리 문서 위배 점검** — 3단계-A 의 매뉴얼 문서 항목별 일치 확인. 위배 항목이 있으면 수정 후 재점검.
124
+ **패스 2: 라이브러리 문서 위배 점검** — 3단계-A 의 매뉴얼 문서 항목별로 일치 여부 확인. 위배 항목이 있으면 수정 후 재점검.
125
125
 
126
126
  ### 6단계: 완료 보고
127
127
 
128
- 만든 파일 목록 보고 후 종료.
128
+ 생성한 파일 목록을 보고 후 종료.
129
129
 
130
130
  ## 운용
131
131
 
@@ -5,7 +5,7 @@ description: 코드 변경 요청을 사용자와 합의 후 코드 변경분과
5
5
 
6
6
  # sd-dev
7
7
 
8
- spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플로는 자동 진행 — 단 파일 삭제·시연 등 확인성 보고는 단계별 발생. 합의 결과는 대화 메모리에만.
8
+ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플로는 자동 진행 — 단 파일 삭제·시연 등 사용자 확인이 필요한 지점에서는 보고·승인 절차 수행. 합의 결과는 별도 산출물로 저장하지 않고 대화 메모리에만 유지.
9
9
 
10
10
  ## 워크플로
11
11
 
@@ -17,11 +17,11 @@ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플
17
17
  - 대상 파일·모듈·패키지.
18
18
  - 변경의 입출력·동작 — 이름·시그니처·예외 동작 등.
19
19
 
20
- 근거 충분(사용자 발화 명시 + 기존 코드 패턴 추론 가능)이면 묻지 않고 진행. 부족분은 1건씩 질문 (sd-base-rules "사용자 질의 시"). 외부 자료(시크릿·시안·샘플 데이터)가 필요하면 이 단계에서 요청.
20
+ 근거 충분(사용자 발화 명시 + 기존 코드 패턴으로 추론 가능)이면 묻지 않고 진행. 부족분은 1건씩 질문 (sd-base-rules "사용자 질의 시"). 외부 자료(예: 디자인 시안·샘플 데이터·접근 자격증명)가 필요하면 이 단계에서 사용자에게 요청.
21
21
 
22
22
  ### 2단계: 분석
23
23
 
24
- 부재로 워크플로를 멈추지 않음. 발견된 만큼 활용.
24
+ 자료가 없어도 워크플로를 멈추지 않음. 발견된 만큼 활용.
25
25
 
26
26
  **A. 라이브러리·개발 매뉴얼**:
27
27
  - `@simplysm/*` 14.x — `.claude/references/sd-simplysm14/README.md` 참조.
@@ -37,7 +37,7 @@ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플
37
37
 
38
38
  ### 3단계: 작업 분해 표
39
39
 
40
- 2단계 분석을 토대로 작업 분해 표 작성. assistant 응답으로 출력 (4단계 입력).
40
+ 2단계 분석을 토대로 작업 분해 표 작성. 응답 본문에 형태로 출력하여 다음 4단계 TDD 사이클의 입력으로 사용.
41
41
 
42
42
  | 항목 | 요구 | 현재 코드 상태 | 판정 | 매핑 파일 | 의존 |
43
43
  | ---- | ---- | -------------- | ---- | --------- | ---- |
@@ -51,16 +51,16 @@ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플
51
51
  **컬럼**:
52
52
  - **항목**: 분해 단위 1개의 짧은 식별자.
53
53
  - **요구**: 1단계 의도파악 합의 내용 인용.
54
- - **현재 코드 상태**: 코드베이스 조사 결과. 신규는 "없음", 수정은 "있음(어떻게)".
55
- - **판정**: 없음 / 불일치 / 일치.
56
- - **매핑 파일**: 작성·갱신될 파일 경로.
57
- - **의존**: 다른 항목 ID.
54
+ - **현재 코드 상태**: 코드베이스 조사 결과. 신규 작업은 "없음", 기존 수정은 "있음(현재 동작 요약)".
55
+ - **판정**: 없음 / 불일치 / 일치 중 하나.
56
+ - **매핑 파일**: 작성·갱신될 파일의 경로.
57
+ - **의존**: 선행되어야 할 다른 항목의 식별자.
58
58
 
59
59
  ### 4단계: TDD 사이클
60
60
 
61
- 표의 (없음·불일치) 항목만 의존 순서로 진행. 일치 항목은 손대지 않음.
61
+ 표에서 판정이 "없음" 또는 "불일치" 인 항목만 의존 순서대로 진행. "일치" 항목은 손대지 않음.
62
62
 
63
- 각 작업(= 표 1행) 시작 **테스트 작성 가능 여부** 판정 — 입출력 명확 + 외부 의존 통제 가능한가.
63
+ 각 작업(표 1행) 시작할 **테스트 작성 가능 여부** 판정 — 입출력이 명확하고 외부 의존을 통제할 수 있는지 여부.
64
64
 
65
65
  - **테스트 가능**: **RED → GREEN → REFACTOR**.
66
66
  - **RED**: 테스트만 작성 → 단위 테스트 실행 → 실패 확인. **이 단계에서 구현 파일 절대 손대지 말 것.**
@@ -68,19 +68,19 @@ spec.md 없이 진행하는 가벼운 코드 작업. 의도 합의 후 워크플
68
68
  - **REFACTOR**: 중복·가독성·기존 패턴 정합 정리 → 통과 유지 확인. 정리할 게 없으면 스킵.
69
69
  - **테스트 불가/비효율** (UI 시각·외부 서비스 실호출 등): **구현 → REFACTOR**.
70
70
 
71
- **의도 모호 발견 시**: 사이클 중 1단계에서 합의되지 않은 모호함 발견 즉시 멈추고 1단계 회귀. 자체 판단 채움 금지.
71
+ **의도 모호 발견 시**: 사이클 진행 중 1단계 의도파악에서 합의되지 않은 모호함을 발견하면 즉시 멈추고 1단계 의도파악으로 회귀. 자체 판단으로 채우기 금지.
72
72
 
73
73
  ### 5단계: 코드 정리
74
74
 
75
- 전체 변경분을 한번 훑어 정돈. 4단계 REFACTOR 잡지 못한 횡단 이슈와 작업 잔재가 대상.
75
+ 전체 변경분을 훑어 정돈. 4단계 TDD 사이클의 REFACTOR 단계가 잡지 못한 횡단 이슈와 작업 잔재를 정리 대상으로 함.
76
76
 
77
77
  - **횡단 중복**: 작업 사이클 사이에 동일 로직이 흩어져 있으면 합치기.
78
78
  - **인접 코드 패턴 정합**: 코드베이스 컨벤션 vs 실제 작성 — 파일 위치·네이밍·구조.
79
- - **불필요한 코드**: 미사용 import·변수·주석, 요구 없는 옵션·추상화 제거. 갱신·덮어쓰기 결과로 어디서도 참조되지 않는 파일도 포함. **단 파일 단위 삭제는 후보 목록을 사용자에게 보고 → 확정분만 삭제** (dynamic import·문서 자산 등 보존분 사용자 제외).
80
- - **권위 자료 정합**: 2-A 매뉴얼 위반 항목 수정.
79
+ - **불필요한 코드**: 미사용 import·변수·주석, 요구 없는 옵션·추상화 제거. 갱신·덮어쓰기 결과로 어디서도 참조되지 않는 파일도 포함. **단 파일 단위 삭제는 후보 목록을 사용자에게 보고 → 확정된 것만 삭제** (dynamic import·문서 자산 등 보존 대상은 사용자가 제외).
80
+ - **권위 자료 정합**: 2단계 분석 항목 A(라이브러리·개발 매뉴얼)에서 확인한 규약을 위반한 항목 수정.
81
81
 
82
82
  정리 후 단위 테스트 재실행 — 회귀 없음 확인.
83
83
 
84
84
  ### 6단계: 검증
85
85
 
86
- 산출물이 브라우저 시연이 필요한 화면·UI 사용자에게 dev 서버 실행 요청 브라우저 자동화 도구로 시연. 그 외(라이브러리·CLI·내부 모듈·서버 함수)는 4단계 단위 테스트 통과로 종결.
86
+ 산출물이 브라우저 시연이 필요한 화면·UI 이면 사용자에게 dev 서버 실행을 요청한 브라우저 자동화 도구로 시연. 그 외(라이브러리·CLI·내부 모듈·서버 함수)는 4단계 TDD 사이클의 단위 테스트 통과로 종결.
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: sd-docs
3
- description: `@simplysm/*` 라이브러리 패키지의 API 문서를 `.claude/references/sd-simplysm14/apis/<패키지명>/` 자리에 사용 트리거 기준으로 산출·갱신. Use when 라이브러리 API 문서를 새로 작성하거나 코드 변경을 반영해 갱신할 때.
3
+ description: `@simplysm/*` 라이브러리 패키지의 API 문서를 `.claude/references/sd-simplysm14/apis/<패키지명>/` 위치에 사용 트리거 기준으로 작성·갱신. Use when 라이브러리 API 문서를 새로 작성하거나 코드 변경을 반영해 갱신할 때.
4
4
  effort: "low"
5
5
  ---
6
6
 
7
7
  # sd-docs
8
8
 
9
- `@simplysm/*` 라이브러리 패키지의 API 문서를 코드 진실에 맞춰 산출·갱신함. 메인 에이전트가 패키지 목록 추출과 상위 README 인덱스 갱신을 담당하고, 패키지별 산출은 subagent 1개씩 병렬 위임함.
9
+ `@simplysm/*` 라이브러리 패키지의 API 문서를 코드를 근거로 작성·갱신. 메인 에이전트가 패키지 목록 추출과 상위 README 인덱스 갱신을 담당하고, 패키지별 문서 작성은 패키지 1개당 subagent 1개를 호출해 병렬 위임.
10
10
 
11
- ## 산출 자리
11
+ ## 산출물 위치
12
12
 
13
13
  - `.claude/references/sd-simplysm14/apis/<패키지명>/README.md` — 패키지당 1개, 필수.
14
- - `.claude/references/sd-simplysm14/apis/<패키지명>/<군명>.md` — 사용 트리거 군이 본질적으로 커서 README 한 장에 풀어쓰면 다른 컨텍스트 정보까지 끌려나오는 경우에만 분할 산출.
15
- - `.claude/references/sd-simplysm14/README.md` 의 "패키지 인덱스" 섹션 — 메인이 자동 갱신.
14
+ - `.claude/references/sd-simplysm14/apis/<패키지명>/<군명>.md` — 사용 트리거 군이 커서 README 한 장에 풀어쓰면 같은 README 의 다른 정보까지 함께 읽혀 부담이 커지는 경우에만 분할 산출.
15
+ - `.claude/references/sd-simplysm14/README.md` 의 "패키지 인덱스" 섹션 — 메인 에이전트가 갱신.
16
16
 
17
17
  ## 워크플로
18
18
 
@@ -25,7 +25,7 @@ effort: "low"
25
25
 
26
26
  ### 2. 패키지별 subagent 병렬 호출
27
27
 
28
- `public 리스트` 의 패키지 수만큼 `general-purpose` subagent 호출을 **단일 메시지 안에서 병렬**로 보냄. 각 호출 프롬프트는 [references/subagent-prompt.md](references/subagent-prompt.md) 양식을 그대로 사용하고, `<PACKAGE_NAME>` 과 `<PACKAGE_DIR>` 만 치환함.
28
+ `public 리스트` 의 패키지 수만큼 `general-purpose` subagent 호출을 **단일 메시지 안에서 병렬**로 보냄. 각 호출 프롬프트는 [references/subagent-prompt.md](references/subagent-prompt.md) 양식의 "프롬프트" 마커 아래 본문을 그대로 사용하고, `<PACKAGE_NAME>` 과 `<PACKAGE_DIR>` 만 치환.
29
29
 
30
30
  각 subagent 의 산출 (풀 재작성 모드 — 기존 파일 참고 없이 처음부터 작성):
31
31
 
@@ -33,7 +33,7 @@ effort: "low"
33
33
  - 필요 시 `apis/<패키지명>/<군명>.md` 재작성. 코드에서 사라진 군의 파일은 삭제.
34
34
  - 결과 보고 1단락 (산출 파일 목록, 분할 발생 여부, 한 줄 트리거 요약).
35
35
 
36
- **범위 한정**: subagent 는 `apis/<패키지명>/` 자리만 다룸. 상위 `.claude/references/sd-simplysm14/README.md` 는 건드리지 않음 (메인 에이전트가 §3 에서 처리).
36
+ **범위 한정**: subagent 는 `apis/<패키지명>/` 위치만 다룸. 상위 `.claude/references/sd-simplysm14/README.md` 는 건드리지 않음 (다음 단계의 "패키지 인덱스 섹션 갱신" 에서 메인 에이전트가 처리).
37
37
 
38
38
  ### 3. 상위 README 의 "패키지 인덱스" 섹션 갱신 (파일 보존 + 섹션 내 항목만 갱신)
39
39
 
@@ -1,52 +1,52 @@
1
1
  # subagent 호출 프롬프트 (sd-docs)
2
2
 
3
- 메인 에이전트가 패키지 1개당 1번씩 `general-purpose` subagent 를 호출할 때 쓰는 프롬프트 양식이다. `<PACKAGE_NAME>` 과 `<PACKAGE_DIR>` 치환한다.
3
+ 메인 에이전트가 패키지 1개당 1번씩 `general-purpose` subagent 를 호출할 때 쓰는 프롬프트 양식. `<PACKAGE_NAME>` 과 `<PACKAGE_DIR>` 자리만 치환.
4
4
 
5
5
  ---
6
6
 
7
7
  ## 프롬프트 (이 마커 아래 전부를 그대로 subagent 에 전달)
8
8
 
9
- 너는 `<PACKAGE_NAME>` 패키지(소스 위치: `<PACKAGE_DIR>/src/`)의 API 문서를 작성·갱신하는 subagent 다. 산출 자리는 `.claude/references/sd-simplysm14/apis/<PACKAGE_NAME 의 패키지명 부분>/` 이다(예: `@simplysm/foo` → `apis/foo/`). 아래 규칙을 따라 끝까지 진행한다.
9
+ 너는 `<PACKAGE_NAME>` 패키지(소스 위치: `<PACKAGE_DIR>/src/`)의 API 문서를 작성·갱신하는 subagent. 산출 자리는 `.claude/references/sd-simplysm14/apis/<PACKAGE_NAME 의 `@simplysm/` 접두사를 제외한 짧은 이름>/` (예: `@simplysm/foo` → `apis/foo/`). 아래 규칙을 끝까지 따름.
10
10
 
11
11
  ### 1. 입력 분석
12
12
 
13
- 다음만 진실 근거로 사용한다 — 외부 자료·과거 git 기록·다른 패키지 사용처는 보지 않는다.
13
+ 다음만 진실 근거로 사용 — 외부 자료·과거 git 기록·다른 패키지의 사용처는 참조 금지.
14
14
 
15
15
  - `<PACKAGE_DIR>/src/index.ts` 의 export — **entry 시작점**. 여기서 노출된 심볼만 문서 대상.
16
16
  - 위 entry 가 재노출하는 각 심볼의 정의 파일(타입 시그니처 + 본문).
17
- - 위 정의 파일 또는 동일 패키지 파일의 JSDoc 주석.
18
- - `tests/` 디렉토리 중 해당 패키지를 import 해 검증하는 테스트 코드(있을 경우만).
17
+ - 위 정의 파일 또는 동일 패키지 안의 다른 파일에 달린 JSDoc 주석.
18
+ - `tests/` 디렉토리 중 해당 패키지를 import 해 검증하는 테스트 코드 (존재할 경우에만).
19
19
 
20
- 타입 시그니처에서 직접 드러나지 않는 사용 패턴이 필요하면 위 4개 소스 안에서만 추론한다.
20
+ 타입 시그니처에서 직접 드러나지 않는 사용 패턴을 보강해야 하면 위 4개 소스 안에서만 추론.
21
21
 
22
22
  ### 2. 사용 트리거 군 분류
23
23
 
24
- entry 의 export 심볼들을 "한 작업 컨텍스트에서 함께 참조될 군"으로 묶는다. 예: 에러 처리 군, 값 타입 군, 큐/이벤트 군. 분류 기준은 폴더 구조나 심볼 종류가 아니라 **사용 시점**(언제 같이 읽힐 것인가)이다.
24
+ entry 의 export 심볼들을 "한 작업 컨텍스트에서 함께 참조될 군"으로 묶음. 예: 에러 처리 군, 값 타입 군, 큐/이벤트 군. 분류 기준은 폴더 구조나 심볼 종류가 아니라 **사용 시점**(언제 같이 읽힐 것인가) 기준.
25
25
 
26
- 군이 모호하거나 작아 트리거가 1~2개뿐인 심볼은 별도 만들지 말고 README 의 공통 인라인 항목에 둔다.
26
+ 군이 모호하거나 작아 트리거가 1~2개뿐인 심볼은 별도 군을 만들지 말고 README 의 공통 인라인 섹션에 배치.
27
27
 
28
28
  ### 3. 산출 단위 판정
29
29
 
30
- 기본은 `README.md` 1장. 다음 조건을 **모두** 만족하는 군만 별도 `<군명>.md` 로 분할한다.
30
+ 기본은 `README.md` 1장. 다음 조건을 **모두** 만족하는 군만 별도 `<군명>.md` 로 분할.
31
31
 
32
- - 군의 사용법·주의사항을 README 에 풀어쓰면, 다른 컨텍스트 정보까지 같이 끌려나와 다른 작업 시점에서 읽는 부담이 커진다.
33
- - 군 단독으로 사용 예·시그니처·주의 8줄 이상 필요하다.
32
+ - 해당 군의 사용법·주의사항을 README 에 풀어쓰면, 무관한 다른 컨텍스트 정보까지 같이 끌려나와 다른 작업 시점에서 읽기 부담이 커지는 경우.
33
+ - 해당 군 단독으로 사용 예·시그니처·주의가 합쳐 8줄 이상 필요한 경우.
34
34
 
35
- 위를 만족하지 않으면 README 안에 머무른다.
35
+ 조건을 만족하지 않으면 README 안에 유지.
36
36
 
37
37
  ### 4. 풀 재작성 모드 (범위: `apis/<패키지명>/` 자리만)
38
38
 
39
- - 기존 `apis/<패키지명>/README.md` 와 분할 `<군명>.md` 가 있어도 **참고하지 않고 처음부터 작성**한다. 코드 + 본 프롬프트 형식 룰(§5·§6·§7) 만을 진실 근거로 삼는다.
40
- - 기존 파일 내용·표현 보존 시도 금지. 룰 변경(예: 식별자 풀이 의무) 이 자동 반영되도록 매 호출마다 패키지별 산출물(README + 분할 `<군명>.md`)을 다시 만든다.
41
- - 결과적으로 코드가 바뀐 패키지도 표현이 달라질 수 있다 — 정상.
42
- - 코드에서 사라진 군의 분할 파일은 삭제한다.
43
- - **범위 밖**: 상위 `.claude/references/sd-simplysm14/README.md` 는 절대 건드리지 않는다 (메인 에이전트가 인덱스 섹션 항목만 갱신, subagent 와 무관).
39
+ - 기존 `apis/<패키지명>/README.md` 와 분할 `<군명>.md` 가 있어도 **참고하지 않고 처음부터 작성**. 코드 + 본 프롬프트의 형식 룰(아래 README 형식 섹션·분할 .md 형식 섹션·작성 원칙 섹션) 만을 진실 근거로 삼음.
40
+ - 기존 파일 내용·표현 보존 시도 금지. 룰 변경(예: 식별자 풀이 의무) 이 자동 반영되도록 매 호출마다 패키지별 산출물(README + 분할 `<군명>.md`) 을 다시 작성.
41
+ - 결과적으로 코드가 변경되지 않은 패키지도 표현이 달라질 수 있음 — 정상.
42
+ - 코드에서 사라진 군의 분할 파일은 삭제.
43
+ - **범위 밖**: 상위 `.claude/references/sd-simplysm14/README.md` 는 건드리지 (메인 에이전트가 인덱스 섹션 항목만 갱신, subagent 와 무관).
44
44
 
45
45
  ### 5. README.md 형식
46
46
 
47
- 각 패키지의 `apis/<패키지명>/README.md` 는 다음 구조를 따른다.
47
+ 각 패키지의 `apis/<패키지명>/README.md` 는 다음 구조를 따름.
48
48
 
49
- H1 은 `# @simplysm/<short-name>` 형식으로 고정한다 (예: `# @simplysm/foo`).
49
+ H1 은 `# @simplysm/<short-name>` 형식으로 고정 (예: `# @simplysm/foo`).
50
50
 
51
51
  ```markdown
52
52
  # @simplysm/<short-name>
@@ -60,9 +60,9 @@ H1 은 `# @simplysm/<short-name>` 형식으로 고정한다 (예: `# @simplysm/f
60
60
 
61
61
  ## <인라인 군 이름 1>
62
62
 
63
- 심볼별 짧은 시그니처 + 옵션/prop/필드/enum literal 1줄 풀이 + 즉시 사용 가능한 사용법. 본질적으로 큰 군이라 분할된 경우 이 섹션은 없고, 위 인덱스에서 `자세히:` 링크로 안내한다.
63
+ 심볼별로 짧은 시그니처 + 옵션·prop·필드·enum literal(열거형 리터럴 값) 1줄 풀이 + 즉시 사용 가능한 사용법을 작성. 본질적으로 큰 군이라 분할된 경우 이 섹션은 두지 않고, 위 인덱스에서 `자세히:` 링크로 안내.
64
64
 
65
- **식별자 풀이 의무**: 시그니처에 나오는 옵션·prop·필드·enum literal 각각에 1줄 풀이를 단다. 풀이 = `<무엇을 함>` + (enum/boolean 이면) `<값별 동작 차이>` + `<언제 쓰는지 단서 1조각>`. 이름만 나열은 금지.
65
+ **식별자 풀이 의무**: 시그니처에 나오는 옵션·prop·필드·enum literal 각각에 1줄 풀이 부착. 풀이 구성 = `<무엇을 함>` + (enum/boolean 인 경우) `<값별 동작 차이>` + `<언제 쓰는지 단서 1조각>`. 이름만 나열하는 형식 금지.
66
66
 
67
67
  예 (나쁨/좋음):
68
68
 
@@ -83,9 +83,9 @@ inputs: selectMode, autoSelect: "click"|"focus", useAutoSort, focusMode: "row"|"
83
83
 
84
84
  ### 6. 분할 .md 형식
85
85
 
86
- `<군명>.md` 는 다음 구조.
86
+ `<군명>.md` 는 다음 구조를 따름.
87
87
 
88
- 분할 `.md` 의 H1 도 동일 형식 + 군명을 붙인다: `# @simplysm/<short-name> — <군명>`.
88
+ 분할 `.md` 의 H1 도 동일 형식 + 군명을 붙임: `# @simplysm/<short-name> — <군명>`.
89
89
 
90
90
  ```markdown
91
91
  # @simplysm/<short-name> — <군명>
@@ -94,7 +94,7 @@ inputs: selectMode, autoSelect: "click"|"focus", useAutoSort, focusMode: "row"|"
94
94
 
95
95
  ## <심볼>
96
96
 
97
- 시그니처, 옵션/prop/필드/enum literal 1줄 풀이(위 §5 "식별자 풀이 의무" 동일 적용), 사용 예, 주의사항.
97
+ 시그니처, 옵션·prop·필드·enum literal 1줄 풀이(위 README 형식 섹션의 "식별자 풀이 의무" 동일 적용), 사용 예, 주의사항.
98
98
 
99
99
  ## <심볼>
100
100
  ...
@@ -102,17 +102,17 @@ inputs: selectMode, autoSelect: "click"|"focus", useAutoSort, focusMode: "row"|"
102
102
 
103
103
  ### 7. 작성 원칙
104
104
 
105
- - 산출물 소비자는 Claude 에이전트다. 사람 가독성보다 에이전트가 즉시 따를 수 있는 간결·명확성이 우선.
106
- - **코드 본문에 드러난 동작은 JSDoc 없어도 적는다**. 옵션·prop·필드·enum literal 의 동작을 본문(분기·기본값·사용처)에서 추론해 풀이. 단, 본문에서 확인 불가한 외부 추측·미검증 동작은 금지.
107
- - **식별자만 나열 금지** — 위 §5·§6 "식별자 풀이 의무" 강제. 이름 콤마 나열로 끝내지 않는다. 자명해 보여도 enum literal 의 값별 동작, boolean 의 토글 효과, 함수형 prop 의 호출 시점은 반드시 풀이.
108
- - 사용 예는 실제 호출 코드 형태로 1~3줄, 군마다 1개 정도.
105
+ - 산출물의 소비자는 Claude 에이전트. 사람 가독성보다 에이전트가 즉시 따를 수 있는 간결·명확성이 우선.
106
+ - **코드 본문에 드러난 동작은 JSDoc 없어도 기재**. 옵션·prop·필드·enum literal 의 동작을 본문(분기·기본값·사용처) 에서 추론해 풀이. 단, 본문에서 확인 불가한 외부 추측·미검증 동작은 기재 금지.
107
+ - **식별자만 나열 금지** — 위 README 형식 섹션·분할 .md 형식 섹션의 "식별자 풀이 의무" 강제. 이름을 콤마로 나열하고 끝내지 것. 자명해 보여도 enum literal 의 값별 동작, boolean 의 토글 효과, 함수형 prop 의 호출 시점은 반드시 풀이.
108
+ - 사용 예는 실제 호출 코드 형태로 1~3 분량, 군마다 1개 가량.
109
109
  - 분량을 늘리기 위한 부연·중복·꾸밈 금지. 단, 식별자 풀이는 "분량 늘리기" 가 아니라 필수 정보로 취급 — 풀이 생략을 통한 분량 절약 금지.
110
110
 
111
111
  ### 8. 산출 보고
112
112
 
113
- 작성/갱신을 마치면 호출자(메인)에게 다음을 1단락으로 보고한다.
113
+ 작성·갱신을 마치면 호출자(메인 에이전트) 에게 다음 항목을 1단락으로 보고.
114
114
 
115
- - 신규 작성인지 갱신인지.
116
- - 산출/갱신한 파일 목록(README 분할 .md 포함).
117
- - 패키지 한 줄 트리거 요약(메인이 상위 README 인덱스에 문장).
118
- - 삭제한 파일(있다면).
115
+ - 신규 작성인지 갱신인지 구분.
116
+ - 산출·갱신한 파일 목록 (README 분할 `.md` 모두 포함).
117
+ - 패키지의 한 줄 트리거 요약 (메인 에이전트가 상위 README 인덱스에 옮겨 적을 문장).
118
+ - 삭제한 파일이 있으면 그 목록.