@simplysm/sd-claude 14.0.47 → 14.0.49

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 (130) hide show
  1. package/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
  2. package/claude/rules/sd-claude-rules.md +25 -10
  3. package/claude/rules/sd-options.md +11 -6
  4. package/claude/sd-subagent-start.sh +6 -0
  5. package/claude/settings.json +1 -12
  6. package/claude/skills/sd-check/SKILL.md +43 -12
  7. package/claude/skills/sd-claude-docs/SKILL.md +30 -58
  8. package/claude/skills/sd-claude-docs/references/package-claudemd.md +12 -0
  9. package/claude/skills/sd-claude-docs/references/package-doc-gen.md +26 -13
  10. package/claude/skills/sd-commit/SKILL.md +1 -1
  11. package/claude/skills/sd-debug/SKILL.md +5 -3
  12. package/claude/skills/sd-deliverable/SKILL.md +1 -1
  13. package/claude/skills/sd-dev/SKILL.md +14 -9
  14. package/claude/skills/sd-doc-extract/SKILL.md +8 -10
  15. package/claude/skills/sd-doc-extract/_common.py +8 -1
  16. package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
  17. package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
  18. package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
  19. package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
  20. package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
  21. package/claude/skills/sd-doc-extract/extract.py +22 -3
  22. package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
  23. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  24. package/claude/skills/sd-inner-review/SKILL.md +13 -0
  25. package/claude/skills/sd-issue/SKILL.md +1 -1
  26. package/claude/skills/sd-outlook/SKILL.md +1 -1
  27. package/claude/skills/sd-plan/SKILL.md +50 -17
  28. package/claude/skills/sd-prompt/SKILL.md +180 -178
  29. package/claude/skills/sd-prompt/references/eval-runner.md +5 -30
  30. package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
  31. package/claude/skills/sd-refactor/SKILL.md +2 -2
  32. package/claude/skills/sd-tdd/SKILL.md +45 -16
  33. package/claude/skills/sd-use/SKILL.md +84 -80
  34. package/claude/skills/sd-wbs/SKILL.md +84 -27
  35. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
  36. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
  37. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
  38. package/package.json +3 -2
  39. package/scripts/sync.mjs +4 -2
  40. package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
  41. package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
  42. package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
  43. package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
  44. package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
  45. package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
  46. package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -379
  47. package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
  48. package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
  49. package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
  50. package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
  51. package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
  52. package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -273
  53. package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
  54. package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
  55. package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
  56. package/claude/references/sd-simplysm14/angular/usage.md +0 -489
  57. package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
  58. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
  59. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
  60. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
  61. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
  62. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
  63. package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
  64. package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
  65. package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
  66. package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
  67. package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
  68. package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
  69. package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
  70. package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
  71. package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
  72. package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
  73. package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
  74. package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
  75. package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
  76. package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
  77. package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
  78. package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
  79. package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
  80. package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
  81. package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
  82. package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
  83. package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
  84. package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -453
  85. package/claude/references/sd-simplysm14/excel/docs/types.md +0 -459
  86. package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
  87. package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
  88. package/claude/references/sd-simplysm14/excel/usage.md +0 -134
  89. package/claude/references/sd-simplysm14/lint/usage.md +0 -130
  90. package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
  91. package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
  92. package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
  93. package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
  94. package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
  95. package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
  96. package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
  97. package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
  98. package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
  99. package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
  100. package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
  101. package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
  102. package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
  103. package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
  104. package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
  105. package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
  106. package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
  107. package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
  108. package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
  109. package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
  110. package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
  111. package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
  112. package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
  113. package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
  114. package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
  115. package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
  116. package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
  117. package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
  118. package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
  119. package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
  120. package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
  121. package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
  122. package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
  123. package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
  124. package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
  125. package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
  126. package/claude/references/sd-simplysm14/storage/usage.md +0 -301
  127. package/claude/references/sd-simplysm14.md +0 -35
  128. package/claude/rules/sd-clarify.md +0 -23
  129. package/claude/sd-session-start.sh +0 -10
  130. /package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/cli.md +0 -0
@@ -1,295 +0,0 @@
1
- # Utils & Setups
2
-
3
- ## Utility Functions
4
-
5
- ### `mark`
6
-
7
- WritableSignal의 변경 알림을 수동으로 트리거한다. 배열/객체의 내부 변경(mutation) 후 consumer에게 변경을 알릴 때 사용. shallow copy로 새 참조를 생성하여 signal을 업데이트한다.
8
-
9
- ```typescript
10
- function mark(sig: WritableSignal<any>): void
11
- ```
12
-
13
- | Parameter | Type | Description |
14
- |-----------|------|-------------|
15
- | `sig` | `WritableSignal<any>` | 대상 signal. 배열이면 `[...v]`, 객체이면 `{...v}`로 shallow copy하여 update |
16
-
17
- ### `withBusy`
18
-
19
- busy count를 증감시키면서 비동기 작업을 실행한다. finally에서 감소하므로 에러 시에도 안전.
20
-
21
- ```typescript
22
- async function withBusy(
23
- busyCount: WritableSignal<number>,
24
- fn: () => Promise<void>,
25
- ): Promise<void>
26
- ```
27
-
28
- ### `injectParent`
29
-
30
- ViewContainerRef injector chain을 순회하여 가장 가까운 부모 컴포넌트 인스턴스를 반환한다. Angular 내부 `_lView[8]` (CONTEXT slot) 사용.
31
-
32
- ```typescript
33
- function injectParent<T = object>(): T;
34
- function injectParent<T = object>(type: AbstractType<T>): T;
35
- function injectParent<T = object>(type: AbstractType<T>, options: { optional: true }): T | undefined;
36
- ```
37
-
38
- | Parameter | Type | Description |
39
- |-----------|------|-------------|
40
- | `type` | `AbstractType<T>` | 필터링할 부모 타입. 생략 시 가장 가까운 부모 반환 |
41
- | `options.optional` | `true` | 부모를 찾지 못해도 에러 대신 undefined 반환 |
42
-
43
- ### `setSafeStyle`
44
-
45
- Renderer2를 사용하여 여러 CSS 스타일을 일괄 적용한다.
46
-
47
- ```typescript
48
- function setSafeStyle(
49
- renderer: Renderer2,
50
- el: HTMLElement,
51
- style: Partial<CSSStyleDeclaration>,
52
- ): void
53
- ```
54
-
55
- ## Resource Functions
56
-
57
- ### `injectSdSystemConfigResource`
58
-
59
- 컴포넌트 태그명 기반 키로 시스템 설정을 읽고 쓰는 resource 래퍼. 생성자에서 호출.
60
-
61
- ```typescript
62
- function injectSdSystemConfigResource<T>(options: {
63
- key: Signal<string | undefined>;
64
- }): {
65
- value: Signal<T | undefined>;
66
- isLoading: Signal<boolean>;
67
- status: Signal<ResourceStatus>;
68
- hasValue: () => boolean;
69
- reload: () => void;
70
- set(value: T | undefined): void;
71
- update(fn: (prev: T | undefined) => T | undefined): void;
72
- }
73
- ```
74
-
75
- `set()`/`update()` 호출 시 signal을 즉시 업데이트하고, 비동기로 `SdSystemConfigProvider.setAsync()`를 호출하여 영속화한다.
76
-
77
- ## Page Code / View Signals
78
-
79
- ### `injectCurrentPageCodeSignal`
80
-
81
- 현재 활성 라우트의 경로 세그먼트를 `.`으로 연결한 코드 signal. `ActivatedRoute`가 없으면 undefined 반환.
82
-
83
- ```typescript
84
- function injectCurrentPageCodeSignal(): Signal<string> | undefined
85
- ```
86
-
87
- ### `injectFullPageCodeSignal`
88
-
89
- 전체 URL 기반 페이지 코드 signal. `NavigationEnd` 이벤트를 구독하여 URL에서 코드를 추출한다.
90
-
91
- ```typescript
92
- function injectFullPageCodeSignal(): Signal<string>
93
- ```
94
-
95
- ### `injectViewTitleSignal`
96
-
97
- 현재 뷰의 타이틀 signal. 모달이면 모달 타이틀, 페이지이면 `SdAppStructureProvider`에서 조회.
98
-
99
- ```typescript
100
- function injectViewTitleSignal(): Signal<string>
101
- ```
102
-
103
- ### `injectViewTypeSignal`
104
-
105
- 현재 뷰의 타입 signal. 모달/페이지/컨트롤 중 하나를 반환한다.
106
-
107
- ```typescript
108
- function injectViewTypeSignal(getComp: () => object): Signal<SdViewType>
109
- ```
110
-
111
- | Parameter | Type | Description |
112
- |-----------|------|-------------|
113
- | `getComp` | `() => object` | 현재 컴포넌트 인스턴스 반환 함수 (보통 `() => this`) |
114
-
115
- 반환값: `"modal"` (SdActivatedModalProvider 존재), `"page"` (라우트 컴포넌트이고 fullPageCode === currPageCode), `"control"` (그 외)
116
-
117
- ## Manager Functions
118
-
119
- ### `useSelectionManager`
120
-
121
- 선택 관리 composable. single/multi 모드를 지원한다.
122
-
123
- ```typescript
124
- function useSelectionManager<T>(options: {
125
- displayItems: Signal<T[]>;
126
- selectedItems: WritableSignal<T[]>;
127
- selectMode: Signal<"single" | "multi" | undefined>;
128
- getItemSelectableFn: Signal<((item: T) => boolean | string) | undefined>;
129
- }): {
130
- hasSelectable: Signal<boolean>;
131
- isAllSelected: Signal<boolean>;
132
- getSelectable(item: T): true | string | undefined;
133
- getCanChangeFn(item: T): () => boolean;
134
- select(item: T): void;
135
- deselect(item: T): void;
136
- toggle(item: T): void;
137
- toggleAll(): void;
138
- isSelected(item: T): boolean;
139
- }
140
- ```
141
-
142
- | Return | Type | Description |
143
- |--------|------|-------------|
144
- | `hasSelectable` | `Signal<boolean>` | selectMode가 설정되어 있는지 여부 |
145
- | `isAllSelected` | `Signal<boolean>` | 모든 선택 가능 항목이 선택되었는지 |
146
- | `getSelectable(item)` | `true \| string \| undefined` | 선택 가능 여부. string은 불가 사유 |
147
- | `getCanChangeFn(item)` | `() => boolean` | 선택 변경 가능 여부 함수 |
148
- | `select(item)` | `void` | 항목 선택 (single이면 교체) |
149
- | `deselect(item)` | `void` | 항목 선택 해제 |
150
- | `toggle(item)` | `void` | 항목 토글 |
151
- | `toggleAll()` | `void` | 전체 선택/해제 토글 |
152
- | `isSelected(item)` | `boolean` | 선택 여부 |
153
-
154
- ### `useSortingManager`
155
-
156
- 정렬 관리 composable.
157
-
158
- ```typescript
159
- function useSortingManager(options: {
160
- sorts: WritableSignal<SortingDef[]>;
161
- }): {
162
- defMap: Signal<Map<string, { indexText?: string; desc: boolean }>>;
163
- toggle(key: string, multiple: boolean): void;
164
- sort<T>(items: T[]): T[];
165
- }
166
- ```
167
-
168
- | Return | Type | Description |
169
- |--------|------|-------------|
170
- | `defMap` | `Signal<Map<string, ...>>` | 키별 정렬 정의 (인덱스 텍스트, 방향) |
171
- | `toggle(key, multiple)` | `void` | 정렬 토글. `multiple=true`면 멀티 소트, `false`면 단일 소트. 3단계: asc -> desc -> 없음 |
172
- | `sort(items)` | `T[]` | 정렬 적용. 원본 배열은 변경하지 않음 |
173
-
174
- ### `useExpandingManager`
175
-
176
- 트리 확장/축소 관리 composable.
177
-
178
- ```typescript
179
- function useExpandingManager<T>(binding: {
180
- items: Signal<T[]>;
181
- expandedItems: WritableSignal<T[]>;
182
- getChildrenFn: Signal<((item: T, index: number) => T[] | undefined) | undefined>;
183
- sort: (items: T[]) => T[];
184
- }): {
185
- displayItems: Signal<T[]>;
186
- hasExpandable: Signal<boolean>;
187
- isAllExpanded: Signal<boolean>;
188
- toggle(item: T): void;
189
- toggleAll(): void;
190
- isVisible(item: T): boolean;
191
- def(item: T): ExpandItemDef<T>;
192
- }
193
- ```
194
-
195
- | Return | Type | Description |
196
- |--------|------|-------------|
197
- | `displayItems` | `Signal<T[]>` | 트리를 평탄화한 전체 항목 (숨김 포함) |
198
- | `hasExpandable` | `Signal<boolean>` | 확장 가능한 항목 존재 여부 |
199
- | `isAllExpanded` | `Signal<boolean>` | 모든 확장 가능 항목이 펼쳐졌는지 |
200
- | `toggle(item)` | `void` | 항목 확장/축소 토글 |
201
- | `toggleAll()` | `void` | 전체 확장/축소 토글 |
202
- | `isVisible(item)` | `boolean` | 부모 체인이 모두 펼쳐져 항목이 보이는지 |
203
- | `def(item)` | `ExpandItemDef<T>` | 항목의 트리 정의 (depth, parentDef 등) |
204
-
205
- ## Setup Functions
206
-
207
- 생성자에서 호출하는 설정 함수들. `inject()`, `effect()`, `DestroyRef.onDestroy()`를 사용하여 수명주기를 관리한다.
208
-
209
- ### `setupBgTheme`
210
-
211
- body 배경 테마 색상을 설정한다. 파괴 시 자동 복원.
212
-
213
- ```typescript
214
- function setupBgTheme(options?: {
215
- theme?: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "blue-gray";
216
- lightness?: "lightest" | "lighter";
217
- }): void
218
- ```
219
-
220
- ### `setupRipple`
221
-
222
- 호스트 요소에 리플 효과를 설정한다. pointer 이벤트 기반.
223
-
224
- ```typescript
225
- function setupRipple(enableFn?: () => boolean): void
226
- ```
227
-
228
- ### `setupRevealOnShow`
229
-
230
- 뷰포트 진입 시 reveal 애니메이션을 설정한다. IntersectionObserver 사용.
231
-
232
- ```typescript
233
- function setupRevealOnShow(optFn?: () => {
234
- type?: "l2r" | "t2b";
235
- enabled?: boolean;
236
- }): void
237
- ```
238
-
239
- ### `setupInvalid`
240
-
241
- 유효성 검증 표시기를 설정한다. 빨간 점 indicator + hidden input으로 구현.
242
-
243
- ```typescript
244
- function setupInvalid(getInvalidMessage: () => string): void
245
- ```
246
-
247
- 빈 문자열이면 유효, 비어있지 않으면 무효.
248
-
249
- ### `setupModelHook`
250
-
251
- model signal의 `set`/`update`를 가드 함수로 래핑한다. 가드 함수가 `false`를 반환하면 값 변경을 차단.
252
-
253
- ```typescript
254
- function setupModelHook<T, S extends WritableSignal<T>>(
255
- model: S,
256
- canFn: Signal<(item: T) => boolean | Promise<boolean>>,
257
- ): void
258
- ```
259
-
260
- ### `setupCanDeactivate`
261
-
262
- 모달 또는 라우트에 canDeactivate 가드를 설정한다.
263
-
264
- ```typescript
265
- function setupCanDeactivate(fn: () => boolean): void
266
- ```
267
-
268
- 모달 내부이면 `SdActivatedModalProvider.canDeactivateFn`에 설정, 라우트 내부이면 `routeConfig.canDeactivate`에 추가.
269
-
270
- ### `setupCumulateSelectedKeys`
271
-
272
- items 변경 시 selectedItems 동기화, selectedItems 변경 시 selectedItemKeys 갱신.
273
-
274
- ```typescript
275
- function setupCumulateSelectedKeys<TItem, TKey>(options: {
276
- items: Signal<TItem[]>;
277
- selectedItems: WritableSignal<TItem[]>;
278
- selectedItemKeys: WritableSignal<TKey[]>;
279
- selectMode: () => "single" | "multi" | undefined;
280
- keySelectorFn: (item: TItem) => TKey | undefined;
281
- }): void
282
- ```
283
-
284
- ### `setupCloserWhenSingleSelectionChange`
285
-
286
- 단일 선택 모드에서 선택이 변경되면 모달을 자동으로 닫는다.
287
-
288
- ```typescript
289
- function setupCloserWhenSingleSelectionChange<TItem, TKey>(options: {
290
- selectedItemKeys: Signal<TKey[]>;
291
- selectedItems: Signal<TItem[]>;
292
- selectMode: () => "single" | "multi" | undefined;
293
- close: OutputEmitterRef<SelectModalOutputResult<TItem>>;
294
- }): void
295
- ```