@simplysm/sd-claude 14.0.51 → 14.0.53

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 (318) hide show
  1. package/claude/references/sd-frontend-design.md +10 -9
  2. package/claude/references/sd-simplysm-v14/angular/README.md +497 -0
  3. package/claude/references/sd-simplysm-v14/angular/bootstrap/provide-sd-angular.md +37 -0
  4. package/claude/references/sd-simplysm-v14/angular/bootstrap/sd-angular-config-provider.md +16 -0
  5. package/claude/references/sd-simplysm-v14/angular/directives/sd-command-directive.md +27 -0
  6. package/claude/references/sd-simplysm-v14/angular/directives/sd-events.md +25 -0
  7. package/claude/references/sd-simplysm-v14/angular/directives/sd-intersection-directive.md +36 -0
  8. package/claude/references/sd-simplysm-v14/angular/directives/sd-invalid.md +24 -0
  9. package/claude/references/sd-simplysm-v14/angular/directives/sd-resize-directive.md +42 -0
  10. package/claude/references/sd-simplysm-v14/angular/directives/sd-ripple.md +23 -0
  11. package/claude/references/sd-simplysm-v14/angular/directives/sd-router-link.md +38 -0
  12. package/claude/references/sd-simplysm-v14/angular/directives/sd-show-effect.md +18 -0
  13. package/claude/references/sd-simplysm-v14/angular/directives/sd-typed-template.md +69 -0
  14. package/claude/references/sd-simplysm-v14/angular/features/sd-address-search-modal.md +50 -0
  15. package/claude/references/sd-simplysm-v14/angular/features/sd-permission-table.md +20 -0
  16. package/claude/references/sd-simplysm-v14/angular/features/sd-shared-data-components.md +158 -0
  17. package/claude/references/sd-simplysm-v14/angular/features/sd-tiptap-editor.md +26 -0
  18. package/claude/references/sd-simplysm-v14/angular/pipes/format-pipe.md +41 -0
  19. package/claude/references/sd-simplysm-v14/angular/plugins/sd-global-error-handler.md +23 -0
  20. package/claude/references/sd-simplysm-v14/angular/plugins/sd-option-event-plugin.md +34 -0
  21. package/claude/references/sd-simplysm-v14/angular/provider-types/sd-menu.md +65 -0
  22. package/claude/references/sd-simplysm-v14/angular/provider-types/sd-modal-content-def.md +148 -0
  23. package/claude/references/sd-simplysm-v14/angular/provider-types/sd-toast-content-def.md +73 -0
  24. package/claude/references/sd-simplysm-v14/angular/provider-types/shared-data-base.md +59 -0
  25. package/claude/references/sd-simplysm-v14/angular/providers/sd-activated-modal-provider.md +34 -0
  26. package/claude/references/sd-simplysm-v14/angular/providers/sd-app-structure-provider.md +81 -0
  27. package/claude/references/sd-simplysm-v14/angular/providers/sd-busy-provider.md +18 -0
  28. package/claude/references/sd-simplysm-v14/angular/providers/sd-file-dialog-provider.md +40 -0
  29. package/claude/references/sd-simplysm-v14/angular/providers/sd-local-storage-provider.md +20 -0
  30. package/claude/references/sd-simplysm-v14/angular/providers/sd-modal-provider.md +67 -0
  31. package/claude/references/sd-simplysm-v14/angular/providers/sd-navigate-window-provider.md +18 -0
  32. package/claude/references/sd-simplysm-v14/angular/providers/sd-print-provider.md +25 -0
  33. package/claude/references/sd-simplysm-v14/angular/providers/sd-service-client-factory-provider.md +43 -0
  34. package/claude/references/sd-simplysm-v14/angular/providers/sd-shared-data-provider.md +64 -0
  35. package/claude/references/sd-simplysm-v14/angular/providers/sd-system-config-provider.md +46 -0
  36. package/claude/references/sd-simplysm-v14/angular/providers/sd-system-log-provider.md +18 -0
  37. package/claude/references/sd-simplysm-v14/angular/providers/sd-theme-provider.md +38 -0
  38. package/claude/references/sd-simplysm-v14/angular/providers/sd-toast-provider.md +65 -0
  39. package/claude/references/sd-simplysm-v14/angular/recipes/_common-rules.md +336 -0
  40. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-a-edit-save.md +191 -0
  41. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-b-delete-restore.md +103 -0
  42. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-c-modal-view.md +198 -0
  43. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-d-control-view.md +109 -0
  44. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-e-auxiliary.md +87 -0
  45. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail/extension-f-complex-detail.md +202 -0
  46. package/claude/references/sd-simplysm-v14/angular/recipes/crud-detail.md +280 -0
  47. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-a-inline-edit.md +386 -0
  48. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-b-selection.md +215 -0
  49. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-c-inline-delete.md +64 -0
  50. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-d-select-modal.md +193 -0
  51. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-e-readonly-modal.md +140 -0
  52. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-f-modal-edit.md +123 -0
  53. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list/extension-g-excel.md +145 -0
  54. package/claude/references/sd-simplysm-v14/angular/recipes/crud-list.md +377 -0
  55. package/claude/references/sd-simplysm-v14/angular/recipes/data-select-button.md +368 -0
  56. package/claude/references/sd-simplysm-v14/angular/recipes/page-modal-container.md +238 -0
  57. package/claude/references/sd-simplysm-v14/angular/styling/classes.md +149 -0
  58. package/claude/references/sd-simplysm-v14/angular/styling/mixins.md +100 -0
  59. package/claude/references/sd-simplysm-v14/angular/styling/themes.md +35 -0
  60. package/claude/references/sd-simplysm-v14/angular/styling/variables.md +147 -0
  61. package/claude/references/sd-simplysm-v14/angular/type-utilities/directive-input-signals.md +232 -0
  62. package/claude/references/sd-simplysm-v14/angular/ui-data/sd-list.md +37 -0
  63. package/claude/references/sd-simplysm-v14/angular/ui-data/sd-sheet.md +212 -0
  64. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-additional-button.md +26 -0
  65. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-anchor.md +31 -0
  66. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-button.md +103 -0
  67. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-checkbox-group.md +39 -0
  68. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-checkbox.md +81 -0
  69. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-date-range-picker.md +27 -0
  70. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-form.md +89 -0
  71. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-modal-select-button.md +54 -0
  72. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-numpad.md +26 -0
  73. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-range.md +26 -0
  74. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-select.md +68 -0
  75. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-shared-data-select.md +52 -0
  76. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-state-preset.md +37 -0
  77. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-switch.md +27 -0
  78. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-textarea.md +33 -0
  79. package/claude/references/sd-simplysm-v14/angular/ui-form/sd-textfield.md +145 -0
  80. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-dock-container.md +64 -0
  81. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-dock.md +37 -0
  82. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-gap.md +26 -0
  83. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban-board.md +96 -0
  84. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban-lane.md +34 -0
  85. package/claude/references/sd-simplysm-v14/angular/ui-layout/sd-kanban.md +29 -0
  86. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-collapse.md +35 -0
  87. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-pagination.md +26 -0
  88. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-container.md +49 -0
  89. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-menu.md +22 -0
  90. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-sidebar-user.md +43 -0
  91. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-tab.md +51 -0
  92. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-container.md +97 -0
  93. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-menu.md +23 -0
  94. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar-user.md +38 -0
  95. package/claude/references/sd-simplysm-v14/angular/ui-navigation/sd-topbar.md +30 -0
  96. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-busy-container.md +69 -0
  97. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-confirm-modal.md +30 -0
  98. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-dropdown.md +40 -0
  99. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-modal.md +34 -0
  100. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-prompt-modal.md +30 -0
  101. package/claude/references/sd-simplysm-v14/angular/ui-overlay/sd-toast.md +35 -0
  102. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-barcode.md +36 -0
  103. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-calendar.md +34 -0
  104. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-echarts.md +32 -0
  105. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-label.md +24 -0
  106. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-note.md +23 -0
  107. package/claude/references/sd-simplysm-v14/angular/ui-visual/sd-progress.md +23 -0
  108. package/claude/references/sd-simplysm-v14/angular/utils/inject-routing-signals.md +161 -0
  109. package/claude/references/sd-simplysm-v14/angular/utils/inject-sd-system-config-resource.md +35 -0
  110. package/claude/references/sd-simplysm-v14/angular/utils/mark.md +43 -0
  111. package/claude/references/sd-simplysm-v14/angular/utils/selection-managers.md +96 -0
  112. package/claude/references/sd-simplysm-v14/angular/utils/set-safe-style.md +19 -0
  113. package/claude/references/sd-simplysm-v14/angular/utils/setup-functions.md +93 -0
  114. package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/README.md +38 -0
  115. package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/apk-installer/apk-installer.md +115 -0
  116. package/claude/references/sd-simplysm-v14/capacitor-plugin-auto-update/auto-update/auto-update.md +113 -0
  117. package/claude/references/sd-simplysm-v14/capacitor-plugin-file-system/README.md +197 -0
  118. package/claude/references/sd-simplysm-v14/capacitor-plugin-intent/README.md +235 -0
  119. package/claude/references/sd-simplysm-v14/capacitor-plugin-usb-storage/README.md +251 -0
  120. package/claude/references/sd-simplysm-v14/core-browser/README.md +52 -0
  121. package/claude/references/sd-simplysm-v14/core-browser/extensions/copy-paste.md +59 -0
  122. package/claude/references/sd-simplysm-v14/core-browser/extensions/element-prototype-extensions.md +137 -0
  123. package/claude/references/sd-simplysm-v14/core-browser/extensions/get-bounds.md +84 -0
  124. package/claude/references/sd-simplysm-v14/core-browser/utils/download-blob.md +59 -0
  125. package/claude/references/sd-simplysm-v14/core-browser/utils/fetch-url-bytes.md +91 -0
  126. package/claude/references/sd-simplysm-v14/core-browser/utils/indexed-db-store.md +131 -0
  127. package/claude/references/sd-simplysm-v14/core-browser/utils/indexed-db-virtual-fs.md +121 -0
  128. package/claude/references/sd-simplysm-v14/core-browser/utils/open-file-dialog.md +60 -0
  129. package/claude/references/sd-simplysm-v14/core-common/README.md +179 -0
  130. package/claude/references/sd-simplysm-v14/core-common/errors/argument-error.md +26 -0
  131. package/claude/references/sd-simplysm-v14/core-common/errors/not-implemented-error.md +33 -0
  132. package/claude/references/sd-simplysm-v14/core-common/errors/sd-error.md +38 -0
  133. package/claude/references/sd-simplysm-v14/core-common/errors/timeout-error.md +36 -0
  134. package/claude/references/sd-simplysm-v14/core-common/extensions/array.md +125 -0
  135. package/claude/references/sd-simplysm-v14/core-common/extensions/map.md +43 -0
  136. package/claude/references/sd-simplysm-v14/core-common/extensions/set.md +35 -0
  137. package/claude/references/sd-simplysm-v14/core-common/features/debounce-queue.md +48 -0
  138. package/claude/references/sd-simplysm-v14/core-common/features/event-emitter.md +52 -0
  139. package/claude/references/sd-simplysm-v14/core-common/features/serial-queue.md +44 -0
  140. package/claude/references/sd-simplysm-v14/core-common/type-utils/common-types.md +100 -0
  141. package/claude/references/sd-simplysm-v14/core-common/type-utils/env.md +42 -0
  142. package/claude/references/sd-simplysm-v14/core-common/types/date-only.md +86 -0
  143. package/claude/references/sd-simplysm-v14/core-common/types/date-time.md +106 -0
  144. package/claude/references/sd-simplysm-v14/core-common/types/lazy-gc-map.md +59 -0
  145. package/claude/references/sd-simplysm-v14/core-common/types/time.md +62 -0
  146. package/claude/references/sd-simplysm-v14/core-common/types/uuid.md +41 -0
  147. package/claude/references/sd-simplysm-v14/core-common/utils/bytes.md +36 -0
  148. package/claude/references/sd-simplysm-v14/core-common/utils/dt.md +60 -0
  149. package/claude/references/sd-simplysm-v14/core-common/utils/err.md +26 -0
  150. package/claude/references/sd-simplysm-v14/core-common/utils/json.md +58 -0
  151. package/claude/references/sd-simplysm-v14/core-common/utils/num.md +56 -0
  152. package/claude/references/sd-simplysm-v14/core-common/utils/obj.md +107 -0
  153. package/claude/references/sd-simplysm-v14/core-common/utils/path.md +30 -0
  154. package/claude/references/sd-simplysm-v14/core-common/utils/primitive.md +28 -0
  155. package/claude/references/sd-simplysm-v14/core-common/utils/str.md +63 -0
  156. package/claude/references/sd-simplysm-v14/core-common/utils/template-strings.md +49 -0
  157. package/claude/references/sd-simplysm-v14/core-common/utils/transfer.md +35 -0
  158. package/claude/references/sd-simplysm-v14/core-common/utils/wait.md +35 -0
  159. package/claude/references/sd-simplysm-v14/core-common/utils/xml.md +49 -0
  160. package/claude/references/sd-simplysm-v14/core-common/utils/zip-archive.md +77 -0
  161. package/claude/references/sd-simplysm-v14/core-node/README.md +59 -0
  162. package/claude/references/sd-simplysm-v14/core-node/features/fs-watcher.md +110 -0
  163. package/claude/references/sd-simplysm-v14/core-node/logging/create-file-reporter.md +78 -0
  164. package/claude/references/sd-simplysm-v14/core-node/logging/pretty-reporter.md +38 -0
  165. package/claude/references/sd-simplysm-v14/core-node/logging/setup-consola.md +77 -0
  166. package/claude/references/sd-simplysm-v14/core-node/utils/cpx.md +128 -0
  167. package/claude/references/sd-simplysm-v14/core-node/utils/fsx.md +168 -0
  168. package/claude/references/sd-simplysm-v14/core-node/utils/pathx.md +73 -0
  169. package/claude/references/sd-simplysm-v14/core-node/worker/create-worker.md +85 -0
  170. package/claude/references/sd-simplysm-v14/core-node/worker/worker.md +160 -0
  171. package/claude/references/sd-simplysm-v14/excel/README.md +66 -0
  172. package/claude/references/sd-simplysm-v14/excel/core-classes/excel-cell.md +79 -0
  173. package/claude/references/sd-simplysm-v14/excel/core-classes/excel-col.md +36 -0
  174. package/claude/references/sd-simplysm-v14/excel/core-classes/excel-row.md +34 -0
  175. package/claude/references/sd-simplysm-v14/excel/core-classes/excel-workbook.md +93 -0
  176. package/claude/references/sd-simplysm-v14/excel/core-classes/excel-worksheet.md +147 -0
  177. package/claude/references/sd-simplysm-v14/excel/types/excel-address-point.md +33 -0
  178. package/claude/references/sd-simplysm-v14/excel/types/excel-style-options.md +57 -0
  179. package/claude/references/sd-simplysm-v14/excel/types/excel-value-type.md +28 -0
  180. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-content-type-data.md +23 -0
  181. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-drawing-data.md +29 -0
  182. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-relationship-data.md +39 -0
  183. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-shared-string-data.md +42 -0
  184. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-style-data.md +97 -0
  185. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-workbook-data.md +22 -0
  186. package/claude/references/sd-simplysm-v14/excel/types/excel-xml-worksheet-data.md +68 -0
  187. package/claude/references/sd-simplysm-v14/excel/types/excel-xml.md +15 -0
  188. package/claude/references/sd-simplysm-v14/excel/utilities/excel-utils.md +101 -0
  189. package/claude/references/sd-simplysm-v14/excel/wrapper/excel-wrapper.md +108 -0
  190. package/claude/references/sd-simplysm-v14/lint/README.md +183 -0
  191. package/claude/references/sd-simplysm-v14/orm-common/README.md +156 -0
  192. package/claude/references/sd-simplysm-v14/orm-common/core/db-context.md +208 -0
  193. package/claude/references/sd-simplysm-v14/orm-common/core/db-transaction-error.md +64 -0
  194. package/claude/references/sd-simplysm-v14/orm-common/expression/expr-unit.md +62 -0
  195. package/claude/references/sd-simplysm-v14/orm-common/expression/expr.md +198 -0
  196. package/claude/references/sd-simplysm-v14/orm-common/models/migration.md +37 -0
  197. package/claude/references/sd-simplysm-v14/orm-common/query-builder/create-query-builder.md +80 -0
  198. package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/executable.md +54 -0
  199. package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/parse-search-query.md +75 -0
  200. package/claude/references/sd-simplysm-v14/orm-common/queryable-executable/queryable.md +238 -0
  201. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/column-builder.md +63 -0
  202. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/foreign-key-builder.md +137 -0
  203. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/index-builder.md +54 -0
  204. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/procedure.md +67 -0
  205. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/table.md +95 -0
  206. package/claude/references/sd-simplysm-v14/orm-common/schema-builders/view.md +71 -0
  207. package/claude/references/sd-simplysm-v14/orm-common/types/data-type.md +146 -0
  208. package/claude/references/sd-simplysm-v14/orm-common/types/dialect.md +151 -0
  209. package/claude/references/sd-simplysm-v14/orm-common/types/expr.md +175 -0
  210. package/claude/references/sd-simplysm-v14/orm-common/types/parse-query-result.md +58 -0
  211. package/claude/references/sd-simplysm-v14/orm-common/types/query-def.md +224 -0
  212. package/claude/references/sd-simplysm-v14/orm-node/README.md +65 -0
  213. package/claude/references/sd-simplysm-v14/orm-node/connections/mssql-db-conn.md +85 -0
  214. package/claude/references/sd-simplysm-v14/orm-node/connections/mysql-db-conn.md +83 -0
  215. package/claude/references/sd-simplysm-v14/orm-node/connections/postgresql-db-conn.md +86 -0
  216. package/claude/references/sd-simplysm-v14/orm-node/core/create-db-conn.md +62 -0
  217. package/claude/references/sd-simplysm-v14/orm-node/core/create-orm.md +107 -0
  218. package/claude/references/sd-simplysm-v14/orm-node/core/node-db-context-executor.md +50 -0
  219. package/claude/references/sd-simplysm-v14/orm-node/types/db-conn-config.md +91 -0
  220. package/claude/references/sd-simplysm-v14/orm-node/types/db-conn-constants.md +33 -0
  221. package/claude/references/sd-simplysm-v14/orm-node/types/db-conn.md +60 -0
  222. package/claude/references/sd-simplysm-v14/orm-node/types/get-dialect-from-config.md +17 -0
  223. package/{README.md → claude/references/sd-simplysm-v14/sd-claude/README.md} +85 -84
  224. package/{docs → claude/references/sd-simplysm-v14/sd-claude}/assets.md +2 -2
  225. package/{docs → claude/references/sd-simplysm-v14/sd-claude}/hooks.md +15 -1
  226. package/claude/references/sd-simplysm-v14/sd-cli/README.md +138 -0
  227. package/claude/references/sd-simplysm-v14/sd-cli/angular-vite-plugin/sd-angular-plugin.md +60 -0
  228. package/claude/references/sd-simplysm-v14/sd-cli/config/build-target.md +31 -0
  229. package/claude/references/sd-simplysm-v14/sd-cli/config/npm-config.md +27 -0
  230. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-browser-support-config.md +19 -0
  231. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-build-package-config.md +21 -0
  232. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-capacitor-config.md +109 -0
  233. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-client-package-config.md +33 -0
  234. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-config.md +78 -0
  235. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-electron-config.md +27 -0
  236. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-package-config.md +18 -0
  237. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-post-publish-script-config.md +19 -0
  238. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-publish-config.md +72 -0
  239. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-pwa-config.md +41 -0
  240. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-scripts-package-config.md +19 -0
  241. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-server-package-config.md +32 -0
  242. package/claude/references/sd-simplysm-v14/sd-cli/config/sd-watch-hook-config.md +19 -0
  243. package/claude/references/sd-simplysm-v14/sd-cli/ts-compiler/sd-ts-compiler.md +158 -0
  244. package/claude/references/sd-simplysm-v14/service-client/README.md +74 -0
  245. package/claude/references/sd-simplysm-v14/service-client/features/event-client.md +93 -0
  246. package/claude/references/sd-simplysm-v14/service-client/features/file-client.md +63 -0
  247. package/claude/references/sd-simplysm-v14/service-client/features/orm-client-connector.md +89 -0
  248. package/claude/references/sd-simplysm-v14/service-client/features/orm-client-db-context-executor.md +31 -0
  249. package/claude/references/sd-simplysm-v14/service-client/main/service-client.md +206 -0
  250. package/claude/references/sd-simplysm-v14/service-client/protocol/client-protocol-wrapper.md +64 -0
  251. package/claude/references/sd-simplysm-v14/service-client/transport/service-transport.md +68 -0
  252. package/claude/references/sd-simplysm-v14/service-client/transport/socket-provider.md +100 -0
  253. package/claude/references/sd-simplysm-v14/service-client/types/blob-input.md +7 -0
  254. package/claude/references/sd-simplysm-v14/service-client/types/browser-worker.md +47 -0
  255. package/claude/references/sd-simplysm-v14/service-client/types/file-collection.md +21 -0
  256. package/claude/references/sd-simplysm-v14/service-client/types/service-connection-options.md +22 -0
  257. package/claude/references/sd-simplysm-v14/service-client/types/service-progress.md +39 -0
  258. package/claude/references/sd-simplysm-v14/service-common/README.md +161 -0
  259. package/claude/references/sd-simplysm-v14/service-common/app-structure/app-structure-item.md +107 -0
  260. package/claude/references/sd-simplysm-v14/service-common/app-structure/get-flat-permissions.md +57 -0
  261. package/claude/references/sd-simplysm-v14/service-common/app-structure/is-usable-modules-chain.md +23 -0
  262. package/claude/references/sd-simplysm-v14/service-common/app-structure/is-usable-modules.md +42 -0
  263. package/claude/references/sd-simplysm-v14/service-common/events/define-event.md +68 -0
  264. package/claude/references/sd-simplysm-v14/service-common/protocol/create-service-protocol.md +93 -0
  265. package/claude/references/sd-simplysm-v14/service-common/protocol/protocol-config.md +21 -0
  266. package/claude/references/sd-simplysm-v14/service-common/protocol/service-add-event-listener-message.md +23 -0
  267. package/claude/references/sd-simplysm-v14/service-common/protocol/service-auth-message.md +17 -0
  268. package/claude/references/sd-simplysm-v14/service-common/protocol/service-emit-event-message.md +21 -0
  269. package/claude/references/sd-simplysm-v14/service-common/protocol/service-error-message.md +29 -0
  270. package/claude/references/sd-simplysm-v14/service-common/protocol/service-event-message.md +21 -0
  271. package/claude/references/sd-simplysm-v14/service-common/protocol/service-get-event-listener-infos-message.md +19 -0
  272. package/claude/references/sd-simplysm-v14/service-common/protocol/service-message.md +52 -0
  273. package/claude/references/sd-simplysm-v14/service-common/protocol/service-progress-message.md +21 -0
  274. package/claude/references/sd-simplysm-v14/service-common/protocol/service-remove-event-listener-message.md +19 -0
  275. package/claude/references/sd-simplysm-v14/service-common/protocol/service-request-message.md +17 -0
  276. package/claude/references/sd-simplysm-v14/service-common/protocol/service-response-message.md +17 -0
  277. package/claude/references/sd-simplysm-v14/service-common/service-types/app-structure-service.md +15 -0
  278. package/claude/references/sd-simplysm-v14/service-common/service-types/auto-update-service.md +20 -0
  279. package/claude/references/sd-simplysm-v14/service-common/service-types/orm-service.md +61 -0
  280. package/claude/references/sd-simplysm-v14/service-common/types/service-upload-result.md +19 -0
  281. package/claude/references/sd-simplysm-v14/service-server/README.md +162 -0
  282. package/claude/references/sd-simplysm-v14/service-server/auth/auth-token-payload.md +18 -0
  283. package/claude/references/sd-simplysm-v14/service-server/auth/sign-jwt.md +30 -0
  284. package/claude/references/sd-simplysm-v14/service-server/auth/verify-jwt.md +35 -0
  285. package/claude/references/sd-simplysm-v14/service-server/core/auth.md +64 -0
  286. package/claude/references/sd-simplysm-v14/service-server/core/define-service.md +81 -0
  287. package/claude/references/sd-simplysm-v14/service-server/core/execute-service-method.md +43 -0
  288. package/claude/references/sd-simplysm-v14/service-server/core/service-context.md +79 -0
  289. package/claude/references/sd-simplysm-v14/service-server/legacy/handle-v1-connection.md +25 -0
  290. package/claude/references/sd-simplysm-v14/service-server/main/create-service-server.md +32 -0
  291. package/claude/references/sd-simplysm-v14/service-server/main/service-server.md +113 -0
  292. package/claude/references/sd-simplysm-v14/service-server/protocol/server-protocol-wrapper.md +35 -0
  293. package/claude/references/sd-simplysm-v14/service-server/services/app-structure-service.md +59 -0
  294. package/claude/references/sd-simplysm-v14/service-server/services/auto-update-service.md +34 -0
  295. package/claude/references/sd-simplysm-v14/service-server/services/orm-service.md +43 -0
  296. package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-http-request.md +33 -0
  297. package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-static-file.md +29 -0
  298. package/claude/references/sd-simplysm-v14/service-server/transport-http/handle-upload.md +33 -0
  299. package/claude/references/sd-simplysm-v14/service-server/transport-socket/service-socket.md +64 -0
  300. package/claude/references/sd-simplysm-v14/service-server/transport-socket/websocket-handler.md +57 -0
  301. package/claude/references/sd-simplysm-v14/service-server/types/service-server-options.md +36 -0
  302. package/claude/references/sd-simplysm-v14/service-server/utils/get-config.md +29 -0
  303. package/claude/references/sd-simplysm-v14/storage/README.md +99 -0
  304. package/claude/references/sd-simplysm-v14/storage/clients/ftp-storage-client.md +99 -0
  305. package/claude/references/sd-simplysm-v14/storage/clients/sftp-storage-client.md +108 -0
  306. package/claude/references/sd-simplysm-v14/storage/factory/storage-factory.md +114 -0
  307. package/claude/references/sd-simplysm-v14/storage/types/file-info.md +32 -0
  308. package/claude/references/sd-simplysm-v14/storage/types/storage-client.md +55 -0
  309. package/claude/references/sd-simplysm-v14/storage/types/storage-conn-config.md +34 -0
  310. package/claude/rules/sd-claude-rules.md +8 -8
  311. package/claude/rules/sd-simplysm-v14.md +33 -0
  312. package/claude/skills/sd-claude-docs/SKILL.md +41 -24
  313. package/claude/skills/sd-claude-docs/references/package-docs.md +240 -116
  314. package/claude/skills/sd-inner-debug/SKILL.md +1 -1
  315. package/claude/skills/sd-inner-review/SKILL.md +4 -2
  316. package/package.json +2 -3
  317. /package/{docs → claude/references/sd-simplysm-v14/sd-claude}/cli.md +0 -0
  318. /package/{docs → claude/references/sd-simplysm-v14/sd-claude}/scripts.md +0 -0
@@ -1,19 +1,27 @@
1
1
  # package-docs: 단일 패키지 문서 생성 지침
2
2
 
3
- subagent가 한 패키지 경로를 받아 해당 패키지의 **CLAUDE.md**와 (private 패키지가 아니면) **README.md + docs/**를 생성·갱신한다. subagent는 이 한 파일만 읽으면 산출물을 모두 생성할 수 있다.
3
+ subagent가 한 패키지 경로를 받아 해당 패키지의 **CLAUDE.md**와 (private 패키지가 아니면) **소비자 문서(README.md + _api-index.md + Entry 파일)**를 생성·갱신한다. subagent는 이 한 파일만 읽으면 모든 산출물을 생성할 수 있다.
4
4
 
5
5
  ## LLM 매뉴얼 원칙
6
6
 
7
7
  이 문서들은 **백과사전(wiki/API reference)이 아니라, 이 패키지를 소비하는 LLM(Claude Code)이 올바른 코드를 한 번에 쓰게 돕는 운영 매뉴얼**이다. 타겟 독자는 `Read` 툴로 md 파일을 로드해 소비자 코드를 작성하는 LLM 에이전트이며, 사람 개발자는 2차 독자다.
8
8
 
9
+ **핵심 설계 원리 — 작업 기반 발견성(Task-based Discoverability)**:
10
+
11
+ LLM은 "모달을 열어야 하는데" "목록 화면을 만들어야 하는데"처럼 **작업(task) 의도**를 갖고 문서에 접근한다. API 이름(`SdModalProvider`)을 미리 아는 경우는 드물다. 따라서:
12
+
13
+ - **README.md = 작업 라우터**. "하려는 작업 → 읽을 파일" 매핑이 README의 핵심 콘텐츠. API 이름·타입 나열은 README에 두지 않는다.
14
+ - **_api-index.md = API 참조 인덱스**. API 이름을 이미 알 때만 사용하는 보조 파일.
15
+ - **각 Entry 파일 첫 줄 = "읽어야 하는 상황"**. LLM이 파일을 열자마자 이 파일이 자기 작업에 맞는지 즉시 판단 가능해야 한다.
16
+
9
17
  **우선순위**:
10
18
 
11
19
  1. **언제 쓰고 언제 쓰지 말아야 하는가** (When to use / When NOT to use)
12
- 2. **전형적 호출 형태** (복붙 가능한 최소 예제 + 실전 예제)
13
- 3. **자주 틀리는 지점** (🚫 anti-pattern + 근거)
14
- 4. **정확한 시그니처** (호출에 필요한 수준까지)
20
+ 2. **전형적 호출 형태** (복붙 가능한 최소 예제 1개)
21
+ 3. **정확한 시그니처** (호출에 필요한 수준까지)
22
+ 4. **진짜 함정** (소스·JSDoc·테스트에서 확인된 것만. 쥐어짜내서 만들지 않는다)
15
23
 
16
- 타입 사전처럼 "모든 필드를 다 채우는 것"이 목표가 아니다. 시그니처는 LLM이 소스에서도 읽을 수 있으므로, 문서는 **소스에 없는 정보**(의도·선택 기준·함정)에 집중한다.
24
+ 타입 사전처럼 "모든 필드를 다 채우는 것"이 목표가 아니다. 시그니처는 LLM이 소스에서도 읽을 수 있으므로, 문서는 **소스에 없는 정보**(의도·선택 기준)에 집중한다. **매뉴얼은 "어떻게 해야 하는가"를 알려주는 것이 핵심이다.**
17
25
 
18
26
  ## 공통 규칙
19
27
 
@@ -21,10 +29,10 @@ subagent가 한 패키지 경로를 받아 해당 패키지의 **CLAUDE.md**와
21
29
 
22
30
  - **대화언어 + 3인칭 서술**. "You can use…", "I can help…" 금지 → "Processes X", "Returns Y" 형태. "적절히", "필요에 따라" 같은 모호한 표현 금지.
23
31
  - **소스에서 읽은 내용만** 문서화한다. 시그니처는 직접 복사하고, 존재하지 않는 파라미터·반환 타입·동작을 만들어내지 않는다 (hallucination 금지).
24
- - **기존 문서의 시그니처를 신뢰하지 않는다**. 기존 README.md/docs/**/*.md의 코드블록을 그대로 재사용하지 않는다. 반드시 소스를 Read하여 확인한 내용만 작성한다.
32
+ - **기존 문서의 시그니처를 신뢰하지 않는다**. 기존 README.md 및 출력 경로 하위 Entry 파일의 코드블록을 그대로 재사용하지 않는다. 반드시 소스를 Read하여 확인한 내용만 작성한다.
25
33
  - **일관된 용어**. 한 Entry 내에서 "Provider / Service / Module", "field / property / member" 같은 유사 용어를 혼용하지 않는다. LLM은 용어 동일성을 구조 신호로 사용한다.
26
34
  - **상수에 근거**. 예제의 매직 넘버(`timeout: 30000`, `retries: 3` 등)에는 왜 그 값인지 1줄 주석을 단다. 근거 없는 상수는 LLM이 임의 값으로 변조한다.
27
- - **엣지케이스까지**. 예제는 "happy path"만 보이고 에러·누락·기본값을 얼버무리지 않는다. 파일이 없을 때·네트워크 실패 처리까지 포함한다.
35
+ - **예제는 최소한으로**. 요구사항을 충족하는 최소 예제 1개면 충분하다. 불필요하게 부풀리거나 에러 처리·엣지케이스를 억지로 끼워넣지 않는다.
28
36
 
29
37
  ### 병합 규칙
30
38
 
@@ -44,13 +52,13 @@ CLAUDE.md의 "Key Patterns"와 README/docs의 Entry 문서는 동일한 소스
44
52
 
45
53
  ### 최상단 안내 문구
46
54
 
47
- `private: true`가 아닌 패키지인 경우, 제목(`# CLAUDE.md`) 바로 아래에 아래 인용 블록을 삽입한다. 이미 존재하면 갱신하지 않고 그대로 둔다.
55
+ `private: true`가 아닌 패키지인 경우, 제목(`# CLAUDE.md`) 바로 아래에 아래 인용 블록을 삽입한다. 이미 존재하면 갱신하지 않고 그대로 둔다. `{패키지명}`은 subagent 프롬프트에서 전달받은 패키지 디렉토리명이다.
48
56
 
49
57
  ```markdown
50
- > 이 패키지의 사용법 및 지침은 [README.md](./README.md) 및 [docs/](./docs/)를 참조한다.
58
+ > 이 패키지의 사용법 및 지침은 `{문서 루트}/{패키지명}/README.md`를 참조한다.
51
59
  ```
52
60
 
53
- `private: true` 패키지는 이 문구를 삽입하지 않는다 (README.md/docs/가 생성되지 않으므로).
61
+ `private: true` 패키지는 이 문구를 삽입하지 않는다 (소비자 문서가 생성되지 않으므로).
54
62
 
55
63
  ### 분석 대상
56
64
 
@@ -80,13 +88,21 @@ CLAUDE.md의 "Key Patterns"와 README/docs의 Entry 문서는 동일한 소스
80
88
 
81
89
  subagent 프롬프트에서 전달받은 "루트 수준 설정" 목록과 중복되는 내용은 반복하지 않는다.
82
90
 
83
- ## README.md + docs/ 생성
91
+ ## 소비자 문서 생성
84
92
 
85
93
  **`private: true` 패키지는 이 섹션 전체를 건너뛴다.**
86
94
 
87
- 출력 경로: `{패키지 경로}/README.md` (분할 구조면 `{패키지 경로}/docs/{category}/{entry}.md` 트리 추가).
95
+ 출력 경로: subagent 프롬프트에서 전달받은 `소비자 문서 출력 경로`를 사용한다 (예: `{문서 루트}/{패키지명}/`). README.md _api-index.md는 경로의 루트에, Entry 파일은 `{출력 경로}/{category}/{entry}.md`에 생성한다.
96
+
97
+ ### 산출물 구조
98
+
99
+ | 파일 | 역할 | 대상 독자 상태 |
100
+ |------|------|----------------|
101
+ | **README.md** | 작업 라우터 — "뭘 하려는데 어느 파일을 읽지?" | 작업 의도는 있지만 API 이름을 모름 |
102
+ | **_api-index.md** | API 참조 인덱스 — "이 API의 문서가 어디 있지?" | API 이름을 이미 알고 있음 |
103
+ | **{category}/{entry}.md** | Entry 상세 — 시그니처, 예제, anti-pattern | README 또는 _api-index에서 라우팅됨 |
88
104
 
89
- **구조 원칙**: export된 class/component/함수(Entry)는 자체 md 파일로 분리한다. README.md **llms.txt 스타일 인덱스**(소비자가 어느 Entry열지 결정하는 길잡이) 역할에 집중하고, 상세는 Entry 파일에 둔다. Entry는 **self-contained**하게 작성한다 — 소비자가 필요한 Entry 파일 하나만 조회해도 올바른 코드를 작성할 수 있어야 한다.
105
+ **README는 작업 기반 인덱스에 전념한다.** API 이름·타입·시그니처 나열은 README에 두지 않고 _api-index.md 분리한다. LLM이 README읽을 API 목록 노이즈 없이 "내 작업 읽을 파일"을 즉시 찾을 수 있어야 한다.
90
106
 
91
107
  **링크 규칙 (1-level deep)**: README → Entry까지만 링크한다. Entry 파일 본문에서 다른 Entry를 참조할 때는 "간단한 차이점 언급 + 링크"만 두고, 정의·세부 사용법을 그 링크에 떠넘기지 않는다. LLM이 부분 읽기(`offset/limit`)로 잘라 읽을 때 체인이 끊기면 정보가 유실된다.
92
108
 
@@ -99,7 +115,7 @@ subagent 프롬프트에서 전달받은 "루트 수준 설정" 목록과 중복
99
115
  main: "./dist/index.js" → src/index.ts (또는 src/index.tsx)
100
116
  ```
101
117
 
102
- 엔트리포인트 파일이 존재하지 않으면 사용자에게 알리고 README.md/docs/ 생성을 건너뛴다.
118
+ 엔트리포인트 파일이 존재하지 않으면 사용자에게 알리고 소비자 문서 생성을 건너뛴다.
103
119
 
104
120
  ### Export 체인 재귀 추적
105
121
 
@@ -169,46 +185,84 @@ main: "./dist/index.js" → src/index.ts (또는 src/index.tsx)
169
185
 
170
186
  카테고리 "Styling"으로 분류하고 하위 분류(Classes, CSS Custom Properties, Themes, Mixins)로 나눈다.
171
187
 
188
+ ### 작업 시나리오 수집
189
+
190
+ Entry 그룹핑과 스타일 에셋 분석 후, 각 Entry에 대해 **작업 시나리오**(= LLM이 이 Entry를 읽어야 하는 상황)를 수집한다. 이 정보는 README의 작업 라우팅 테이블과 각 Entry 파일의 "읽어야 하는 상황" 문구에 사용된다.
191
+
192
+ **수집 방법:**
193
+
194
+ 1. **소스 분석 기반**: anchor의 JSDoc, 클래스/함수명, public API에서 "이걸 사용하는 상황"을 추론
195
+ 2. **기존 문서 보존**: 기존 Entry 파일에 "읽어야 하는 상황" 문구가 있으면 소스 기준으로 유효성을 확인하고, 유효하면 그대로 사용
196
+ 3. **레시피 연동**: 기존 recipe에서 참조하는 Entry는 해당 recipe의 작업 시나리오를 상속
197
+
198
+ **작업 시나리오 작성 규칙:**
199
+
200
+ - **사용자 의도 언어로 작성**: "SdModalProvider를 사용할 때" ❌ → "코드에서 모달을 열어야 할 때" ✅
201
+ - **구체적 동사 사용**: "모달 관련 작업" ❌ → "모달을 프로그래밍 방식으로 열고 결과를 받아야 할 때" ✅
202
+ - **대안 안내 포함**: 유사 Entry가 있으면 "단순 확인/취소는 [`SdConfirmModal`](...) 참조" 형태로 분기 안내
203
+ - **1~2문장 이내**: 길어지면 LLM이 스캔하지 않는다
204
+
205
+ **작업 도메인 분류:**
206
+
207
+ 수집된 작업 시나리오를 **작업 도메인**으로 그룹핑한다. 작업 도메인은 기술 카테고리(providers, directives)가 아닌 **"사용자가 하려는 일"** 기준이다. 도메인명은 패키지 특성에 따라 자유롭게 설정한다.
208
+
209
+ 예시 (Angular UI 라이브러리의 경우):
210
+
211
+ | 작업 도메인 | 포함 시나리오 예시 |
212
+ |-------------|-------------------|
213
+ | 시작하기 | 부트스트랩, 환경 설정 |
214
+ | 화면 만들기 | 페이지/모달/컨트롤 컨테이너, CRUD 목록/상세 |
215
+ | 사용자 입력 받기 | 텍스트, 선택, 체크박스, 날짜, 파일 선택 |
216
+ | 데이터 표시하기 | 시트, 리스트, 캘린더, 차트, 라벨, 진행률 |
217
+ | 모달·알림·피드백 | 모달 열기, 토스트, 확인 대화상자, busy 표시 |
218
+ | 레이아웃·내비게이션 | 사이드바, 탑바, 도킹, 탭, 칸반, 페이지네이션 |
219
+ | 스타일·테마 | CSS 클래스, 변수, 다크모드 |
220
+
221
+ 하나의 Entry가 여러 작업 도메인에 관련될 수 있다. 이 경우 가장 직접적인 도메인에 배치하고, 보조 도메인에는 "(→ 도 참조)" 등으로 교차 참조한다.
222
+
172
223
  ### 분량 판단 & 문서 구조 결정
173
224
 
174
225
  수집된 Entry 수와 카테고리 수로 구조를 결정한다. 스타일 항목은 카테고리 `styling` 하나로 계산한다.
175
226
 
176
227
  | 조건 | 구조 |
177
228
  |------|------|
178
- | 카테고리 1개 **그리고** Entry 10개 이하 | README.md 단독 |
179
- | 그 외 | README.md (개요+카테고리 인덱스) + `docs/{category}/{entry}.md` (entry별 1 파일) |
229
+ | 카테고리 1개 **그리고** Entry 10개 이하 | README.md 단독 (작업 라우팅 + Entry 상세 인라인) |
230
+ | 그 외 | README.md (작업 라우팅) + _api-index.md (API 인덱스) + `{category}/{entry}.md` (entry별 1 파일) |
180
231
 
181
- **분할 구조 원칙**: 각 Entry는 해당 anchor 1개에만 집중한 md 파일이 되며, 카테고리는 **서브디렉토리**로만 표현된다 (카테고리 파일 `docs/{category}.md`을 만들지 않는다).
232
+ **분할 구조 원칙**: 각 Entry는 해당 anchor 1개에만 집중한 md 파일이 되며, 카테고리는 **서브디렉토리**로만 표현된다 (카테고리 파일 `{category}.md`을 만들지 않는다).
182
233
 
183
234
  ### 문서 작성 원칙
184
235
 
185
- - **기존 문서가 없으면** 분석 결과로 신규 작성. **있으면** `docs/` 하위 모든 파일(서브디렉토리 포함)을 읽어 분석 결과 기준으로 정합성을 맞춘다.
236
+ - **기존 문서가 없으면** 분석 결과로 신규 작성. **있으면** 출력 경로 하위 모든 파일(서브디렉토리 포함)을 읽어 분석 결과 기준으로 정합성을 맞춘다.
186
237
  - **소스와 무관한 내용(사용 가이드, 주의사항, 규칙 등)은 보존**이 원칙이되, 현재 소스 및 산출물과 상충하면(없어진 API 언급, 옛 동작 기준 설명, 더 이상 유효하지 않은 규칙, 산출물 문서 링크 등) 소스 및 산출물 기준으로 수정한다.
187
238
  - **소비자 관점 완전성**: 공개 entrypoint에서 export되어 **소비자 코드에 등장할 수 있는** 심볼은 문서화한다. 내부 재노출 유틸·타입 별칭은 주 Entry에 흡수하거나, "사용 빈도가 낮고 직접 쓰지 말아야 하는 경우" 생략할 수 있다 (생략 시 사유를 실행 로그에 남긴다). "모든 export를 기계적으로 나열"이 목표가 아니다.
188
239
  - **interface/type 필드 테이블**은 **소비자가 채워야 하는 필드**에 한정한다. 반환값으로만 소비되는 타입은 시그니처만 유지하고 필드 테이블을 생략할 수 있다. 단, 소스에 필드가 있는 interface를 빈 `{}`로 축약 표시하는 것은 금지한다.
189
240
  - **union type은 discriminant와 각 variant를 설명**한다. discriminated union인 경우 어떤 필드로 분기되는지와 각 variant를 나열한다.
190
- - **Negative constraints 우선**. "이렇게 해라"만 나열하지 않는다. 소스 JSDoc·테스트·기존 `_common-rules.md` 류 문서에서 확인되는 **하지 말아야 할 사용법**을 Anti-patterns로 명시한다. "하지 마라"가 LLM 실수 방지에 효과적이다.
241
+ - **Anti-pattern은 진짜 함정만**. 소스 JSDoc·테스트·기존 문서에서 **실제로 확인된** 함정만 Anti-patterns로 명시한다. 쥐어짜내서 억지 Bad 예시를 만들지 않는다. 확인된 함정이 없으면 Anti-patterns 섹션 자체를 생략한다.
191
242
 
192
243
  ### 반-기법 (피해야 할 작성 패턴)
193
244
 
194
245
  아래 패턴은 명시적으로 금지한다. 생성된 문서에서 발견되면 교정한다.
195
246
 
196
- 1. **Members/Parameters/Returns만 채운 API reference**시그니처는 LLM이 소스에서 읽을 있다. "언제 쓰는가 / 흔한 실수" 없는 타입 덤프는 토큰 낭비.
197
- 2. **백과사전식 산문** "이 기능은 ~를 위해 설계되었으며 역사적으로…" 같은 배경 서술. 별도 설명(Explanation) 문서가 필요하면 파일을 분리하되, Entry 본문에 섞지 않는다.
198
- 3. **Deeply nested 링크 체인**Entry 다른 Entry 다른 Entry. 1-level deep 원칙 위반.
199
- 4. **"자세한 상위/다른 페이지 참조"** — Entry가 self-contained하지 않으면 부분 로드 깨진다.
200
- 5. **1인칭·2인칭 서술** ("I can help…", "You should…") 3인칭으로 통일.
201
- 6. **시간 민감 정보 인라인** ("2025년 8월 이전엔…") 금방 거짓이 된다. "Deprecated" 또는 "Legacy" 별도 섹션으로 격리한다.
202
- 7. **동급 대안 나열** ("A, B, C 하나 고르세요")LLM이 무작위 선택. **기본 1개 추천 + 예외 상황에만 대안**.
203
- 8. **ALL CAPS / "ALWAYS"·"NEVER" 남발** 진짜 중요한 곳에서만 써야 신호가 산다. 근거 1줄이 더 효과적이다.
204
- 9. **Voodoo constants**근거 없는 매직 넘버.
205
- 10. **일관되지 않은 용어** 같은 개념을 여러 용어로 지칭하면 LLM이 별개 개념으로 오인.
206
- 11. **Positive-only 지침**금지사항 없이 권장사항만 있으면 LLM이 훈련 데이터 디폴트 패턴으로 회귀한다.
207
- 12. **Tutorial과 Reference 혼재** "설치 걸음…" 학습 서술을 API reference에 섞지 않는다.
208
-
209
- ### README.md 형식 (llms.txt 스타일 인덱스 + Task 라우팅)
210
-
211
- README.md는 **인덱스 + 작업→Entry 라우팅**에 집중한다. 분할 구조에서는 Entry 상세를 복사하지 않고 링크만 제공한다.
247
+ 1. **README에 API 목록 테이블** API 이름·타입·Description 나열은 _api-index.md의 역할. README에는 작업 라우팅만 둔다.
248
+ 2. **"Description" 컬럼**모든 테이블에서 API 설명 컬럼은 "언제 쓰나"로 작성한다. 타입 요약("프로그래밍 방식 모달 생성")보다 선택 기준("코드에서 모달을 열어야 때")이 LLM에게 유효하다.
249
+ 3. **기술 카테고리 기반 README 인덱스** "Providers", "Directives", "UI - Form" 같은 기술 분류를 README에서 사용하면 LLM이 작업과 매칭하지 못한다. README에는 작업 도메인 분류만 사용하고, 기술 카테고리는 _api-index.md에 둔다.
250
+ 4. **Members/Parameters/Returns만 채운 API reference** — 시그니처는 LLM이 소스에서 읽을 있다. "언제 쓰는가 / 흔한 실수" 없는 타입 덤프는 토큰 낭비.
251
+ 5. **백과사전식 산문** " 기능은 ~를 위해 설계되었으며 역사적으로…" 같은 배경 서술. 별도 설명(Explanation) 문서가 필요하면 파일을 분리하되, Entry 본문에 섞지 않는다.
252
+ 6. **Deeply nested 링크 체인** Entry 다른 Entry 다른 Entry. 1-level deep 원칙 위반.
253
+ 7. **"자세한 상위/다른 페이지 참조"**Entry가 self-contained하지 않으면 부분 로드 깨진다.
254
+ 8. **1인칭·2인칭 서술** ("I can help…", "You should…")3인칭으로 통일.
255
+ 9. **시간 민감 정보 인라인** ("2025년 8월 이전엔…") 금방 거짓이 된다. "Deprecated" 또는 "Legacy" 별도 섹션으로 격리한다.
256
+ 10. **동급 대안 나열** ("A, B, C 하나 고르세요") LLM이 무작위 선택. **기본 1개 추천 + 예외 상황에만 대안**.
257
+ 11. **ALL CAPS / "ALWAYS"·"NEVER" 남발** 진짜 중요한 곳에서만 써야 신호가 산다. 근거 1줄이 효과적이다.
258
+ 12. **Voodoo constants**근거 없는 매직 넘버.
259
+ 13. **일관되지 않은 용어** — 같은 개념을 여러 용어로 지칭하면 LLM이 별개 개념으로 오인.
260
+ 14. **억지 Anti-pattern** 소스에서 확인되지 않은 함정을 쥐어짜내서 Bad 예시로 만드는 것. 진짜 함정이 있을 때만 작성한다.
261
+ 15. **Tutorial과 Reference 혼재** — "설치 후 첫 걸음…" 학습 서술을 API reference에 섞지 않는다.
262
+
263
+ ### README.md 형식 (작업 라우터)
264
+
265
+ README.md는 **작업 라우팅에 전념**한다. API 목록, 시그니처, 상세 설명은 README에 두지 않는다.
212
266
 
213
267
  ```markdown
214
268
  # {package-name}
@@ -221,61 +275,122 @@ README.md는 **인덱스 + 작업→Entry 라우팅**에 집중한다. 분할
221
275
  npm install {package-name}
222
276
  \`\`\`
223
277
 
224
- ## 하려는 작업 먼저 읽을 파일
278
+ ## 먼저 읽기 (횡단 전제)
279
+
280
+ {있는 경우에만 이 섹션을 생성}
281
+
282
+ - [공통 규칙](./recipes/_common-rules.md) — 여러 Entry에 걸친 금지·컨벤션
283
+ - [Bootstrap](./bootstrap/...) — 반드시 등록해야 하는 provider / 초기화
284
+
285
+ ## 하려는 작업 → 읽을 파일
286
+
287
+ {작업 시나리오 수집에서 도출한 작업 도메인별로 그룹핑한다.
288
+ 모든 Entry가 최소 1개 작업 행에 포함되어야 한다.
289
+ "하려는 작업" 컬럼은 사용자 의도 언어로 작성한다.}
290
+
291
+ ### {작업 도메인 1}
225
292
 
226
- {Task 라우팅 테이블 LLM이 사용자 의도를 파일로 직역하도록}
293
+ | 하려는 작업 | 읽을 파일 |
294
+ |-------------|-----------|
295
+ | {사용자 의도 1줄} | [{entry 파일명}](./{category}/{entry}.md) |
296
+ | {사용자 의도 1줄} | [{entry 파일명}](./{category}/{entry}.md) |
227
297
 
228
- | 작업 | 먼저 읽을 파일 |
229
- |------|----------------|
230
- | 목록 화면 만들기 | [crud-list.md](./docs/recipes/crud-list.md) |
231
- | 모달 열기 | [sd-modal-provider.md](./docs/providers/sd-modal-provider.md) |
298
+ ### {작업 도메인 2}
299
+
300
+ | 하려는 작업 | 읽을 파일 |
301
+ |-------------|-----------|
232
302
  | ... | ... |
233
303
 
234
- ## 먼저 읽기 (횡단 전제)
304
+ {모든 작업 도메인을 나열}
235
305
 
236
- {있는 경우에만 섹션을 생성}
306
+ ##패키지를 쓰지 말아야 할 때
307
+
308
+ {있는 경우에만. 예: "서버 사이드 로직 → @simplysm/service-server"}
237
309
 
238
- - [공통 규칙](./docs/recipes/_common-rules.md) — 여러 Entry에 걸친 금지·컨벤션
239
- - [Bootstrap](./docs/providers/...) — 반드시 등록해야 하는 provider / 초기화
310
+ ---
240
311
 
241
- ## API Overview
312
+ > API 이름으로 검색: [_api-index.md](./_api-index.md)
313
+ ```
242
314
 
243
- {README 단독인 경우: 카테고리별로 모든 Entry를 인라인 포함}
244
- {분할 구조인 경우: 카테고리별 Entry 인덱스 테이블}
315
+ **README 작성 핵심 규칙:**
245
316
 
246
- ### {Category Name}
317
+ - **"하려는 작업" 컬럼은 사용자 의도 언어**: "SdTextfield를 사용" ❌ → "텍스트/숫자/날짜 입력 받기" ✅
318
+ - **유사 Entry의 차이를 "하려는 작업" 컬럼에 반영**: "드롭다운 선택" vs "모달에서 항목 선택" vs "공유 데이터에서 선택"
319
+ - **"먼저 읽기"는 "하려는 작업" 테이블 앞에 배치**: LLM이 Entry를 읽기 전에 횡단 규칙을 먼저 인지하도록
320
+ - **README 단독 구조**(Entry 10개 이하)에서는 "하려는 작업" 테이블 아래에 각 Entry 상세를 인라인으로 포함한다
247
321
 
248
- | Entry | Kind | 언제 쓰나 |
249
- |-------|------|-----------|
250
- | [`DbContext`](./docs/{category}/db-context.md) | class | {1줄 — "어떤 작업을 할 때 이걸 쓰나"} |
251
- | [`FtpStorage`](./docs/{category}/ftp-storage.md) | class | {1줄} |
322
+ ### _api-index.md 형식 (API 참조 인덱스)
323
+
324
+ 분할 구조에서만 생성한다 (README 단독 구조에서는 생략).
325
+
326
+ ```markdown
327
+ # API Index — {package-name}
328
+
329
+ > API 이름을 알고 있을 때 해당 문서를 찾는 인덱스.
330
+ > 작업 기반으로 찾으려면 [README.md](./README.md) 참조.
331
+
332
+ ## {Category Name}
252
333
 
253
- {"Description" 대신 "언제 쓰나" 컬럼을 사용한다. 타입 요약보다 선택 기준이 LLM에게 유효하다.}
334
+ | API | Kind | 문서 | 언제 쓰나 |
335
+ |-----|------|------|-----------|
336
+ | `ClassName` | class | [file.md](./{category}/file.md) | {1줄 — 어떤 작업을 할 때} |
254
337
 
255
338
  {스타일 항목이 수집된 경우:}
256
- ### Styling
339
+ ## Styling
257
340
 
258
- | Entry | 언제 쓰나 |
259
- |-------|-----------|
260
- | [CSS Classes](./docs/styling/classes.md) | 레이아웃·유틸리티 클래스가 필요할 때 |
261
- | [CSS Custom Properties](./docs/styling/variables.md) | 디자인 토큰을 오버라이드할 때 |
262
- | [Themes](./docs/styling/themes.md) | 테마 전환이 필요할 때 |
263
- | [Mixins / Functions](./docs/styling/mixins.md) | SCSS에서 직접 mixin 쓸 때 |
341
+ | Entry | 문서 | 언제 쓰나 |
342
+ |-------|------|-----------|
343
+ | CSS Classes | [classes.md](./styling/classes.md) | 레이아웃·유틸리티 클래스가 필요할 때 |
344
+ | CSS Custom Properties | [variables.md](./styling/variables.md) | 디자인 토큰을 오버라이드할 때 |
345
+ | Themes | [themes.md](./styling/themes.md) | 테마 전환이 필요할 때 |
346
+ | Mixins / Functions | [mixins.md](./styling/mixins.md) | SCSS에서 직접 mixin 쓸 때 |
347
+ ```
264
348
 
265
- {README 단독인 경우: 위 테이블 대신 스타일 전체 목록을 인라인으로 포함}
349
+ **_api-index.md 작성 규칙:**
266
350
 
267
- ## 패키지를 쓰지 말아야
351
+ - 카테고리는 기존 기술 분류(소스의 region/디렉토리 기반) 그대로 사용 — API 이름을 아는 사용자에게는 기술 분류가 자연스럽다
352
+ - "언제 쓰나" 컬럼은 필수 — API 이름을 찾아왔더라도 맞는 API인지 확인 필요
353
+ - 흡수된 타입(prefix 매칭, 시그니처 참조로 anchor에 흡수된 것)은 anchor 행에 포함하지 않고, Entry 파일 안에서만 노출
268
354
 
269
- {있는 경우에만. 예: "서버 사이드 로직 → @simplysm/service-server"}
355
+ ### {category}/{entry}.md 형식 (분할 대상만)
356
+
357
+ 각 Entry마다 `{출력 경로}/{category-kebab}/{entry.kebabName}.md`를 1개 생성한다. 카테고리는 서브디렉토리로 매핑한다.
358
+
359
+ #### 필수 상단: "읽어야 하는 상황"
360
+
361
+ **모든 Entry 파일의 제목 바로 아래에 "읽어야 하는 상황" 인용 블록을 필수로 작성한다.** 이 블록은 LLM이 파일을 열자마자 "이 파일이 내 작업에 맞는가?"를 즉시 판단하는 신호다.
362
+
363
+ ```markdown
364
+ # `{EntryName}`
365
+
366
+ > **읽어야 하는 상황**: {작업 시나리오에서 도출한 1~2문장}. {유사 Entry가 있으면 분기 안내}.
270
367
  ```
271
368
 
272
- ### docs/{category}/{entry}.md 형식 (분할 대상만)
369
+ 예시:
370
+
371
+ ```markdown
372
+ # `SdModalProvider`
373
+
374
+ > **읽어야 하는 상황**: 코드에서 프로그래밍 방식으로 모달을 열고 결과를 받아야 할 때. 단순 확인/취소 대화상자는 [`SdConfirmModal`](../ui-overlay/sd-confirm-modal.md), 텍스트 입력 대화상자는 [`SdPromptModal`](../ui-overlay/sd-prompt-modal.md)을 먼저 확인.
375
+ ```
376
+
377
+ ```markdown
378
+ # CRUD 리스트
379
+
380
+ > **읽어야 하는 상황**: 여러 레코드를 조회·필터링하는 목록 화면을 만들 때. 단일 레코드 상세/편집은 [crud-detail.md](./crud-detail.md) 참조.
381
+ ```
382
+
383
+ ```markdown
384
+ # `SdTextfield`
385
+
386
+ > **읽어야 하는 상황**: 한 줄 텍스트·숫자·날짜·시간·색상 등을 입력받을 때. 여러 줄 텍스트는 [`SdTextarea`](./sd-textarea.md), 리치 텍스트는 [`SdTiptapEditor`](../features/sd-tiptap-editor.md) 참조.
387
+ ```
273
388
 
274
- Entry마다 `{패키지 경로}/docs/{category-kebab}/{entry.kebabName}.md`를 1개 생성한다. 카테고리는 서브디렉토리로 매핑한다.
389
+ #### Entry 템플릿 선택
275
390
 
276
391
  Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선택한다:
277
392
 
278
- - **T1 (Recipe)**: `docs/recipes/` 하위 — 특정 화면·흐름을 만드는 방법 ("이 상황에서 어떻게 하지?")
393
+ - **T1 (Recipe)**: `recipes/` 하위 — 특정 화면·흐름을 만드는 방법 ("이 상황에서 어떻게 하지?")
279
394
  - **T2 (API Reference)**: class / provider / 단독 함수 / util 등 API 사용법 조회
280
395
  - **T3 (Rule / Decision)**: 여러 Entry에 걸친 횡단 규칙·금지 (예: `_common-rules.md`)
281
396
 
@@ -283,14 +398,14 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
283
398
 
284
399
  - 파일이 100줄 초과 예상이면 상단에 `## Contents` TOC를 둔다.
285
400
  - 어느 anchor Entry든 **anchor가 class/provider/주요 함수**이면 "When to use" 섹션을 **반드시** 작성한다. 소스에서 용도가 확인되지 않으면 "소스에서 확인되지 않음"으로 명시.
286
- - **anchor가 class/provider/주요 함수**이고 Usage 예제가 필요한 경우, **최소 예제 + 전형 예제 2개 이상**을 포함한다. 단순 util/상수는 1개로 충분하며, 의미 있는 예제를 만들 수 없으면 Usage 섹션 자체를 생략한다 (형식적 예제 금지).
401
+ - **예제는 최소 1개면 충분하다.** 복붙 가능한 최소 예제 1개로 사용법을 보여준다. 의미 있는 변형이 있을 때만 추가 예제를 둔다. 억지로 예제를 늘리지 않으며, 의미 있는 예제를 만들 수 없으면 Usage 섹션 자체를 생략한다 (형식적 예제 금지).
287
402
 
288
403
  #### T1: How-to / Recipe Entry 템플릿
289
404
 
290
405
  ```markdown
291
406
  # {레시피 이름}
292
407
 
293
- {1~2문장: 이 레시피가 해결하는 문제 / 산출하는 화면}
408
+ > **읽어야 하는 상황**: {이 레시피가 해결하는 문제 / 산출하는 화면을 1~2문장으로. 유사 레시피 분기 안내.}
294
409
 
295
410
  ## When to use / When NOT to use
296
411
 
@@ -306,19 +421,20 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
306
421
  ## 기본 레시피
307
422
 
308
423
  \`\`\`typescript
309
- {복붙 가능한 최소 완성 코드. 엣지케이스 처리 포함.}
424
+ {복붙 가능한 최소 완성 코드.}
310
425
  \`\`\`
311
426
 
312
427
  ## 변형 (Variation)
313
428
 
314
- ### {조건 A}
315
- {코드블록}
429
+ {의미 있는 변형이 있을 때만. 없으면 섹션 생략.}
316
430
 
317
- ### {조건 B}
431
+ ### {조건 A}
318
432
  {코드블록}
319
433
 
320
434
  ## 🚫 흔한 실수 (Anti-patterns)
321
435
 
436
+ {소스·JSDoc·테스트에서 **실제 확인된 함정만**. 확인된 것이 없으면 이 섹션 전체 생략. 억지로 Bad 예시를 만들지 않는다.}
437
+
322
438
  ### {실수 이름}
323
439
 
324
440
  \`\`\`typescript
@@ -341,7 +457,7 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
341
457
  ```markdown
342
458
  # `{EntryName}`
343
459
 
344
- {1문장: 무엇인지 + "언제 쓰나" 축약}
460
+ > **읽어야 하는 상황**: {1~2문장 어떤 작업을 때 이 API가 필요한가. 유사 API 분기 안내.}
345
461
 
346
462
  ## When to use
347
463
 
@@ -375,20 +491,16 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
375
491
 
376
492
  ## Usage
377
493
 
378
- ### 최소 예제
379
-
380
494
  \`\`\`typescript
381
- {복붙용 가장 단순한 호출. 상수에는 근거 주석.}
495
+ {복붙 가능한 최소 예제 1개. 이것만으로 사용법을 알 수 있어야 한다.}
382
496
  \`\`\`
383
497
 
384
- ### 전형 예제
385
-
386
- \`\`\`typescript
387
- {실전 컨텍스트 — 의존성 주입, 에러 처리, 엣지케이스 포함.}
388
- \`\`\`
498
+ {의미 있는 변형이 있을 때만 추가 예제. 없으면 위 1개로 충분.}
389
499
 
390
500
  ## 🚫 Anti-patterns
391
501
 
502
+ {소스·JSDoc·테스트에서 **실제 확인된 함정만**. 확인된 것이 없으면 이 섹션 전체 생략. 억지로 Bad 예시를 만들지 않는다.}
503
+
392
504
  ### {실수 이름}
393
505
 
394
506
  \`\`\`typescript
@@ -425,7 +537,7 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
425
537
  ```markdown
426
538
  # {규칙 모음 이름}
427
539
 
428
- {1~2문장: 이 규칙이 적용되는 범위와 목적}
540
+ > **읽어야 하는 상황**: {이 규칙이 적용되는 범위를 1~2문장으로}
429
541
 
430
542
  ## 적용 범위
431
543
 
@@ -474,21 +586,23 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
474
586
  - 비어 있는 섹션(예: 멤버 없음, 흔한 실수가 소스에서 확인되지 않음)은 생략한다.
475
587
  - anchor가 class/provider/주요 함수면 "When to use" 섹션은 **생략 불가**.
476
588
 
477
- ### Styling 분할 구조 (`docs/styling/*.md`)
589
+ ### Styling 분할 구조 (`styling/*.md`)
478
590
 
479
- 스타일 항목이 수집된 경우, 아래 4개 파일로 분할하여 생성한다. 모두 `docs/styling/` 서브디렉토리에 둔다.
591
+ 스타일 항목이 수집된 경우, 아래 4개 파일로 분할하여 생성한다. 모두 `styling/` 서브디렉토리에 둔다.
480
592
 
481
- - `docs/styling/classes.md` — 전역 CSS 클래스 목록
482
- - `docs/styling/variables.md` — CSS 커스텀 프로퍼티
483
- - `docs/styling/themes.md` — 테마 클래스와 각 테마가 오버라이드하는 변수
484
- - `docs/styling/mixins.md` — 공개 SCSS mixin / function
593
+ - `styling/classes.md` — 전역 CSS 클래스 목록
594
+ - `styling/variables.md` — CSS 커스텀 프로퍼티
595
+ - `styling/themes.md` — 테마 클래스와 각 테마가 오버라이드하는 변수
596
+ - `styling/mixins.md` — 공개 SCSS mixin / function
485
597
 
486
- 파일 형식:
598
+ 파일도 상단에 "읽어야 하는 상황" 인용 블록을 포함한다:
487
599
 
488
600
  ```markdown
489
601
  <!-- classes.md -->
490
602
  # CSS Classes
491
603
 
604
+ > **읽어야 하는 상황**: 레이아웃·유틸리티 클래스로 스타일링할 때. 커스텀 프로퍼티(변수) 오버라이드는 [variables.md](./variables.md), 테마 전환은 [themes.md](./themes.md) 참조.
605
+
492
606
  | Class | 언제 쓰나 |
493
607
  |-------|-----------|
494
608
  | `.flex-row` | {설명} |
@@ -496,6 +610,8 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
496
610
  <!-- variables.md -->
497
611
  # CSS Custom Properties
498
612
 
613
+ > **읽어야 하는 상황**: 디자인 토큰(색상, 간격, 폰트 등)을 오버라이드할 때.
614
+
499
615
  | Property | Default | Description |
500
616
  |----------|---------|-------------|
501
617
  | `--color-primary` | `#...` | {설명} |
@@ -503,39 +619,48 @@ Entry는 **anchor의 종류에 따라 아래 세 템플릿 중 하나**를 선
503
619
  <!-- themes.md -->
504
620
  # Themes
505
621
 
506
- ## `.theme-dark` (또는 프로젝트 네이밍 관례의 테마 클래스)
622
+ > **읽어야 하는 상황**: 다크 모드 테마를 전환하거나 커스텀 테마를 추가할 때.
623
+
624
+ ## `.theme-dark`
507
625
 
508
626
  {설명 + 오버라이드 변수 목록 테이블}
509
627
 
510
628
  <!-- mixins.md -->
511
629
  # Mixins / Functions
512
630
 
631
+ > **읽어야 하는 상황**: SCSS에서 직접 mixin이나 function을 사용할 때.
632
+
513
633
  | Name | Signature | 언제 쓰나 |
514
634
  |------|-----------|-----------|
515
635
  | `flex-direction` | `@mixin flex-direction($dir)` | {설명} |
516
636
  ```
517
637
 
518
- README 단독 구조이면 위 4개 섹션을 README의 `## Styling` 하위에 인라인으로 포함하고, `docs/styling/` 서브디렉토리는 만들지 않는다.
638
+ README 단독 구조이면 위 4개 섹션을 README의 `## Styling` 하위에 인라인으로 포함하고, `styling/` 서브디렉토리는 만들지 않는다.
519
639
 
520
640
  ### 이전 구조 잔여 파일 정리
521
641
 
522
642
  분할 구조 전환으로 더 이상 유효하지 않은 **레이아웃 파일만** 정리한다. 이 단계는 파일 레이아웃(구조)만 다루며, 내용의 정합성은 다음 "완전성 및 정확성 검증" 단계에서 처리한다.
523
643
 
524
- 1. 이전 구조(`docs/{category}.md` 단일 파일)에서 분할 구조(`docs/{category}/{entry}.md` 트리)로 전환되면서 더 이상 쓰이지 않는 **카테고리 단위 단일 파일**(예: `docs/utils.md`, `docs/pipes.md`, `docs/drivers.md` 등 카테고리가 디렉토리가 아닌 단일 md로 남은 경우)이 있으면 삭제한다.
525
- 2. 이전에 styling이 단일 파일(`docs/styling.md`)이었고 이번 실행에서 분할 구조(`docs/styling/*.md`)로 전환되면 이전 `docs/styling.md`를 삭제한다. 반대로 README 단독 구조로 전환되어 `docs/styling/` 서브디렉토리가 불필요해지면 해당 서브디렉토리를 삭제한다.
526
- 3. `docs/` 하위의 그 외 파일(현재 Entry 파일, recipe, 가이드 등)은 이 단계에서 삭제하지 않는다. 이들의 존속 여부는 다음 검증 단계 결과에 따라 결정된다.
644
+ 1. 이전 구조(`{category}.md` 단일 파일)에서 분할 구조(`{category}/{entry}.md` 트리)로 전환되면서 더 이상 쓰이지 않는 **카테고리 단위 단일 파일**(예: `utils.md`, `pipes.md`, `drivers.md` 등 카테고리가 디렉토리가 아닌 단일 md로 남은 경우)이 있으면 삭제한다.
645
+ 2. 이전에 styling이 단일 파일(`styling.md`)이었고 이번 실행에서 분할 구조(`styling/*.md`)로 전환되면 이전 `styling.md`를 삭제한다. 반대로 README 단독 구조로 전환되어 `styling/` 서브디렉토리가 불필요해지면 해당 서브디렉토리를 삭제한다.
646
+ 3. 출력 경로 하위의 그 외 파일(현재 Entry 파일, recipe, 가이드 등)은 이 단계에서 삭제하지 않는다. 이들의 존속 여부는 다음 검증 단계 결과에 따라 결정된다.
527
647
 
528
648
  ### 완전성 및 정확성 검증
529
649
 
530
- 문서 작업 후, 수집한 export 목록과 `docs/` 하위 **모든 파일**(자동 생성 Entry 파일·styling 파일·recipe·가이드 등 수동 작성물 전부 포함) README.md를 대조한다. 자동 생성물과 수동 작성물에 **동일한 정합성 규칙**을 적용한다.
650
+ 문서 작업 후, 수집한 export 목록과 출력 경로 하위 **모든 파일**(자동 생성 Entry 파일·styling 파일·recipe·가이드 등 수동 작성물 전부 포함), README.md, _api-index.md를 대조한다. 자동 생성물과 수동 작성물에 **동일한 정합성 규칙**을 적용한다.
531
651
 
532
652
  #### 완전성
533
653
 
534
- 1. export 목록의 각 항목이 README.md 또는 `docs/` 하위 어느 파일(서브디렉토리 포함)에 존재하는지 확인
654
+ 1. export 목록의 각 항목이 _api-index.md 또는 출력 경로 하위 어느 파일(서브디렉토리 포함)에 존재하는지 확인
535
655
  2. 누락된 항목이 있으면 해당 API를 문서에 추가 (단, "소비자 관점 완전성" 원칙에 따라 내부 유틸·재노출 타입은 흡수·생략 가능)
536
656
  3. 문서에 있는 심볼 참조 중 **현재 export에 없는 것**(제거·이름 변경된 API)은 소스 기준으로 수정하거나 제거
537
657
  4. **주제 자체가 소멸한 문서는 파일 통째로 삭제**: recipe·가이드·사용 예시처럼 특정 API 중심으로 작성된 파일의 경우, 해당 문서가 다루는 핵심 주제(제목·첫 문단·코드 예제에서 중심이 되는 anchor 심볼)가 현재 export에서 **전부 사라졌다면** 파일 내 심볼 참조를 하나씩 고치는 대신 **파일 자체를 삭제**한다. 주제가 일부만 바뀐 경우(일부 API만 사라짐)에는 내용을 수정하고 파일은 유지한다.
538
- 5. **README의 인덱스 링크 무결성**: 모든 `[...](./docs/...)` 링크의 대상 파일이 실제로 존재하는지 확인. 깨진 링크는 수정하거나 제거 (4번에서 파일이 삭제된 경우 해당 링크도 제거)
658
+
659
+ #### 작업 라우팅 완전성
660
+
661
+ 5. **README의 작업 라우팅 커버리지**: 모든 Entry가 README의 "하려는 작업" 테이블에 최소 1개 행으로 포함되어 있는지 확인. 누락된 Entry가 있으면 적절한 작업 도메인에 행을 추가한다.
662
+ 6. **README 링크 무결성**: 모든 `[...](./...)` 링크의 대상 파일이 실제로 존재하는지 확인. 깨진 링크는 수정하거나 제거 (4번에서 파일이 삭제된 경우 해당 링크도 제거)
663
+ 7. **_api-index.md 링크 무결성**: 모든 API 행의 문서 링크가 실제 파일을 가리키는지 확인
539
664
 
540
665
  #### 정확성
541
666
 
@@ -558,37 +683,36 @@ README 단독 구조이면 위 4개 섹션을 README의 `## Styling` 하위에
558
683
 
559
684
  | 검증 항목 | 확인 내용 |
560
685
  |-----------|-----------|
561
- | When to use 명시 | anchor가 class/provider/주요 함수인 Entry에 "언제 쓰나"가 1문장 이상 있는가 |
562
- | 계열 선택 기준 | 유사 역할 Entry가 ≥2개인 카테고리에 "무엇을 언제 고르는지" 한 줄 이상이 있는가 (README 테이블 또는 Entry 상호 링크) |
563
- | Anti-pattern 수집 | 소스 JSDoc·테스트·기존 recipe·`_common-rules.md` 문서에서 확인된 anti-pattern이 Entry에 반영되었는가 |
564
- | 예제 품질 | 예제에 매직 넘버가 있으면 근거 주석이 있는가. happy path만 보여주지 않는가 |
686
+ | "읽어야 하는 상황" 필수 | 모든 Entry 파일 제목 아래에 `> **읽어야 하는 상황**:` 인용 블록이 있는가 |
687
+ | 상황 문구 품질 | 사용자 의도 언어로 작성되었는가 (API 이름이 아닌 작업 설명) |
688
+ | When to use 명시 | anchor가 class/provider/주요 함수인 Entry에 "When to use" 섹션이 1문장 이상 있는가 |
689
+ | 계열 선택 기준 | 유사 역할 Entry가 ≥2개인 경우 "읽어야 하는 상황"에 상호 분기 안내가 있는가 |
690
+ | Anti-pattern 절제 | 소스에서 실제 확인된 함정만 기술했는가. 억지 Bad 예시가 없는가 |
691
+ | 예제 절제 | 요구사항당 최소 예제 1개로 충분한가. 불필요하게 부풀린 예제가 없는가 |
565
692
  | 3인칭 서술 | "I can…", "You should…" 류 1·2인칭 서술이 없는가 |
566
693
  | 용어 일관성 | 한 Entry 내에서 동일 개념에 대해 여러 용어가 혼용되지 않는가 |
694
+ | README 작업 도메인 | README의 "하려는 작업" 테이블이 기술 카테고리가 아닌 작업 도메인으로 그룹핑되었는가 |
567
695
 
568
696
  #### 검증 결과 표시
569
697
 
570
698
  ```
571
699
  완전성 검증: 52/52 API 문서화됨
700
+ 작업 라우팅: 52/52 Entry가 README에 포함됨
572
701
  정확성 검증: 52/52 API 시그니처 일치
573
- 매뉴얼 품질: 48/52 Entry에 When to use 명시, 12개 카테고리 10개에 선택 기준 있음
702
+ 매뉴얼 품질: 52/52 Entry에 "읽어야 하는 상황" 있음, 48/52에 When to use 명시
574
703
  ```
575
704
 
576
705
  불일치가 있는 경우:
577
706
 
578
707
  ```
579
708
  완전성 검증: 52/52 API 문서화됨
709
+ 작업 라우팅: 50/52 Entry가 README에 포함됨
710
+ 누락: SdResizeDirective, SdIntersectionDirective → "레이아웃·내비게이션" 도메인에 추가
580
711
  정확성 검증: 50/52 API 시그니처 일치
581
- 불일치: DbContext (tables→repositories 필드명 변경), FtpStorage (port: required→optional)
582
- 매뉴얼 품질: 누락 - FtpStorage에 When to use 없음, SdToast/SdAlert 선택 기준 없음
583
- 소스 기준으로 문서를 수정하고 매뉴얼 품질 누락 항목을 보완합니다.
712
+ 불일치: DbContext (tables→repositories 필드명 변경), FtpStorage (port: required→optional)
713
+ 매뉴얼 품질:
714
+ "읽어야 하는 상황" 누락: SdGap, SdLabel
715
+ When to use 누락: FtpStorage
716
+ 선택 기준 누락: SdToast/SdAlert 간 분기 안내 없음
717
+ → 소스 기준으로 문서를 수정하고 누락 항목을 보완합니다.
584
718
  ```
585
-
586
- ### package.json `files` 배열 동기화
587
-
588
- 생성된 `docs/`가 npm publish에 포함되도록 `{패키지 경로}/package.json`의 `files` 배열을 점검한다.
589
-
590
- 1. `package.json`에 `files` 필드가 없으면 이 단계를 건너뛴다 (npm이 기본으로 전체 파일 포함).
591
- 2. `files` 필드가 있으면:
592
- - 실행 후 `{패키지 경로}/docs/`가 존재하면, `files` 배열에 `"docs"`가 **없을 때 추가**한다.
593
- - 실행 후 `{패키지 경로}/docs/`가 존재하지 않으면(분량 축소로 단독 구조로 전환되었거나 Step 3 판단으로 `docs/`를 생성하지 않은 경우), `files` 배열에 `"docs"`가 **있을 때 제거**한다.
594
- 3. `README.md`는 npm이 `files` 선언과 무관하게 항상 포함하므로 `files`에 추가할 필요가 없다.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sd-inner-debug
3
- description: (내부 전용) 근본 원인 분석(ACH) 로직. sd-debug, sd-check 등에서 호출된다. 직접 호출하지 않는다.
3
+ description: 근본 원인 분석(ACH) 로직. 문제 발생시, 원인분석 해결방안을 도축하기 위해 사용한다.
4
4
  ---
5
5
 
6
6
  # sd-inner-debug: 근본 원인 분석