@simplysm/sd-claude 14.0.46 → 14.0.48

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 (127) hide show
  1. package/{claude/references/sd-simplysm14/sd-claude/usage.md → README.md} +2 -2
  2. package/claude/rules/sd-claude-rules.md +27 -9
  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 +18 -9
  7. package/claude/skills/sd-claude-docs/SKILL.md +29 -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 +22 -12
  10. package/claude/skills/sd-debug/SKILL.md +5 -3
  11. package/claude/skills/sd-deliverable/SKILL.md +0 -1
  12. package/claude/skills/sd-dev/SKILL.md +14 -9
  13. package/claude/skills/sd-doc-extract/SKILL.md +7 -9
  14. package/claude/skills/sd-doc-extract/_common.py +8 -1
  15. package/claude/skills/sd-doc-extract/_extract_docx.py +74 -34
  16. package/claude/skills/sd-doc-extract/_extract_pdf.py +12 -1
  17. package/claude/skills/sd-doc-extract/_extract_pptx.py +103 -23
  18. package/claude/skills/sd-doc-extract/_extract_xlsb.py +93 -4
  19. package/claude/skills/sd-doc-extract/_extract_xlsx.py +98 -36
  20. package/claude/skills/sd-doc-extract/extract.py +22 -3
  21. package/claude/skills/sd-inner-clarify/SKILL.md +78 -0
  22. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  23. package/claude/skills/sd-inner-review/SKILL.md +13 -0
  24. package/claude/skills/sd-plan/SKILL.md +50 -17
  25. package/claude/skills/sd-prompt/SKILL.md +180 -178
  26. package/claude/skills/sd-prompt/references/eval-runner.md +5 -31
  27. package/claude/skills/sd-prompt/references/sd-eval-env-template.md +23 -0
  28. package/claude/skills/sd-refactor/SKILL.md +2 -2
  29. package/claude/skills/sd-tdd/SKILL.md +46 -10
  30. package/claude/skills/sd-use/SKILL.md +84 -80
  31. package/claude/skills/sd-wbs/SKILL.md +85 -27
  32. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/assets.md +2 -3
  33. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/hooks.md +7 -6
  34. package/{claude/references/sd-simplysm14/sd-claude/docs → docs}/scripts.md +1 -9
  35. package/package.json +3 -2
  36. package/scripts/sync.mjs +4 -2
  37. package/claude/references/sd-simplysm14/angular/docs/bootstrap.md +0 -48
  38. package/claude/references/sd-simplysm14/angular/docs/directives.md +0 -236
  39. package/claude/references/sd-simplysm14/angular/docs/features.md +0 -379
  40. package/claude/references/sd-simplysm14/angular/docs/pipes.md +0 -32
  41. package/claude/references/sd-simplysm14/angular/docs/plugins.md +0 -37
  42. package/claude/references/sd-simplysm14/angular/docs/provider-types.md +0 -283
  43. package/claude/references/sd-simplysm14/angular/docs/providers.md +0 -370
  44. package/claude/references/sd-simplysm14/angular/docs/styling.md +0 -222
  45. package/claude/references/sd-simplysm14/angular/docs/type-utilities.md +0 -250
  46. package/claude/references/sd-simplysm14/angular/docs/ui-data.md +0 -275
  47. package/claude/references/sd-simplysm14/angular/docs/ui-form.md +0 -490
  48. package/claude/references/sd-simplysm14/angular/docs/ui-layout.md +0 -140
  49. package/claude/references/sd-simplysm14/angular/docs/ui-navigation.md +0 -241
  50. package/claude/references/sd-simplysm14/angular/docs/ui-overlay.md +0 -157
  51. package/claude/references/sd-simplysm14/angular/docs/ui-visual.md +0 -127
  52. package/claude/references/sd-simplysm14/angular/docs/utils.md +0 -295
  53. package/claude/references/sd-simplysm14/angular/usage.md +0 -489
  54. package/claude/references/sd-simplysm14/capacitor-plugin-auto-update/usage.md +0 -182
  55. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/file-operations.md +0 -154
  56. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/permissions.md +0 -84
  57. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/storage-paths.md +0 -107
  58. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/docs/types.md +0 -83
  59. package/claude/references/sd-simplysm14/capacitor-plugin-file-system/usage.md +0 -133
  60. package/claude/references/sd-simplysm14/capacitor-plugin-intent/usage.md +0 -203
  61. package/claude/references/sd-simplysm14/capacitor-plugin-usb-storage/usage.md +0 -258
  62. package/claude/references/sd-simplysm14/core-browser/usage.md +0 -306
  63. package/claude/references/sd-simplysm14/core-common/docs/errors.md +0 -82
  64. package/claude/references/sd-simplysm14/core-common/docs/extensions.md +0 -167
  65. package/claude/references/sd-simplysm14/core-common/docs/features.md +0 -136
  66. package/claude/references/sd-simplysm14/core-common/docs/types.md +0 -245
  67. package/claude/references/sd-simplysm14/core-common/docs/utils.md +0 -591
  68. package/claude/references/sd-simplysm14/core-common/usage.md +0 -255
  69. package/claude/references/sd-simplysm14/core-node/docs/child-process.md +0 -182
  70. package/claude/references/sd-simplysm14/core-node/docs/features.md +0 -214
  71. package/claude/references/sd-simplysm14/core-node/docs/file-system.md +0 -509
  72. package/claude/references/sd-simplysm14/core-node/docs/file-watching.md +0 -139
  73. package/claude/references/sd-simplysm14/core-node/docs/logging.md +0 -180
  74. package/claude/references/sd-simplysm14/core-node/docs/path.md +0 -176
  75. package/claude/references/sd-simplysm14/core-node/docs/utilities-cpx.md +0 -194
  76. package/claude/references/sd-simplysm14/core-node/docs/utilities-fsx.md +0 -469
  77. package/claude/references/sd-simplysm14/core-node/docs/utilities-pathx.md +0 -151
  78. package/claude/references/sd-simplysm14/core-node/docs/worker-threads.md +0 -334
  79. package/claude/references/sd-simplysm14/core-node/docs/worker.md +0 -205
  80. package/claude/references/sd-simplysm14/core-node/usage.md +0 -259
  81. package/claude/references/sd-simplysm14/excel/docs/core-classes.md +0 -443
  82. package/claude/references/sd-simplysm14/excel/docs/types.md +0 -455
  83. package/claude/references/sd-simplysm14/excel/docs/utilities.md +0 -194
  84. package/claude/references/sd-simplysm14/excel/docs/wrapper.md +0 -73
  85. package/claude/references/sd-simplysm14/excel/usage.md +0 -134
  86. package/claude/references/sd-simplysm14/lint/usage.md +0 -130
  87. package/claude/references/sd-simplysm14/orm-common/docs/core.md +0 -188
  88. package/claude/references/sd-simplysm14/orm-common/docs/expression.md +0 -190
  89. package/claude/references/sd-simplysm14/orm-common/docs/models.md +0 -17
  90. package/claude/references/sd-simplysm14/orm-common/docs/query-builder.md +0 -97
  91. package/claude/references/sd-simplysm14/orm-common/docs/queryable-executable.md +0 -250
  92. package/claude/references/sd-simplysm14/orm-common/docs/schema-builders.md +0 -364
  93. package/claude/references/sd-simplysm14/orm-common/docs/types.md +0 -522
  94. package/claude/references/sd-simplysm14/orm-common/usage.md +0 -229
  95. package/claude/references/sd-simplysm14/orm-node/docs/connections.md +0 -137
  96. package/claude/references/sd-simplysm14/orm-node/docs/core.md +0 -131
  97. package/claude/references/sd-simplysm14/orm-node/docs/types.md +0 -173
  98. package/claude/references/sd-simplysm14/orm-node/usage.md +0 -143
  99. package/claude/references/sd-simplysm14/sd-cli/usage.md +0 -782
  100. package/claude/references/sd-simplysm14/service-client/docs/features.md +0 -217
  101. package/claude/references/sd-simplysm14/service-client/docs/main.md +0 -148
  102. package/claude/references/sd-simplysm14/service-client/docs/protocol.md +0 -53
  103. package/claude/references/sd-simplysm14/service-client/docs/transport.md +0 -131
  104. package/claude/references/sd-simplysm14/service-client/docs/types.md +0 -129
  105. package/claude/references/sd-simplysm14/service-client/usage.md +0 -202
  106. package/claude/references/sd-simplysm14/service-common/docs/app-structure.md +0 -175
  107. package/claude/references/sd-simplysm14/service-common/docs/events.md +0 -64
  108. package/claude/references/sd-simplysm14/service-common/docs/protocol.md +0 -331
  109. package/claude/references/sd-simplysm14/service-common/docs/service-types.md +0 -90
  110. package/claude/references/sd-simplysm14/service-common/docs/types.md +0 -19
  111. package/claude/references/sd-simplysm14/service-common/usage.md +0 -154
  112. package/claude/references/sd-simplysm14/service-server/docs/auth.md +0 -64
  113. package/claude/references/sd-simplysm14/service-server/docs/core.md +0 -174
  114. package/claude/references/sd-simplysm14/service-server/docs/legacy.md +0 -25
  115. package/claude/references/sd-simplysm14/service-server/docs/main.md +0 -88
  116. package/claude/references/sd-simplysm14/service-server/docs/protocol.md +0 -33
  117. package/claude/references/sd-simplysm14/service-server/docs/services.md +0 -94
  118. package/claude/references/sd-simplysm14/service-server/docs/transport-http.md +0 -93
  119. package/claude/references/sd-simplysm14/service-server/docs/transport-socket.md +0 -119
  120. package/claude/references/sd-simplysm14/service-server/docs/types.md +0 -36
  121. package/claude/references/sd-simplysm14/service-server/docs/utils.md +0 -22
  122. package/claude/references/sd-simplysm14/service-server/usage.md +0 -171
  123. package/claude/references/sd-simplysm14/storage/usage.md +0 -301
  124. package/claude/references/sd-simplysm14.md +0 -35
  125. package/claude/rules/sd-clarify.md +0 -23
  126. package/claude/sd-session-start.sh +0 -10
  127. /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
- ```