ai-engineering-init 1.1.0

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 (313) hide show
  1. package/.claude/agents/code-reviewer.md +139 -0
  2. package/.claude/agents/project-manager.md +159 -0
  3. package/.claude/audio/completed.wav +0 -0
  4. package/.claude/commands/add-todo.md +255 -0
  5. package/.claude/commands/check.md +210 -0
  6. package/.claude/commands/crud.md +454 -0
  7. package/.claude/commands/dev.md +503 -0
  8. package/.claude/commands/init-docs.md +681 -0
  9. package/.claude/commands/next.md +251 -0
  10. package/.claude/commands/progress.md +242 -0
  11. package/.claude/commands/start.md +199 -0
  12. package/.claude/commands/sync.md +307 -0
  13. package/.claude/commands/update-status.md +428 -0
  14. package/.claude/docs/Mixin/344/275/277/347/224/250/346/214/207/345/215/227.md +299 -0
  15. package/.claude/docs/README.md +167 -0
  16. package/.claude/docs//345/211/215/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +599 -0
  17. package/.claude/docs//345/220/216/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +726 -0
  18. package/.claude/docs//345/267/245/344/275/234/346/265/201/345/274/200/345/217/221/346/214/207/345/215/227.md +714 -0
  19. package/.claude/docs//345/267/245/345/205/267/347/261/273/344/275/277/347/224/250/346/214/207/345/215/227.md +463 -0
  20. package/.claude/docs//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +390 -0
  21. package/.claude/docs//346/226/260/345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213/350/247/204/350/214/203.md +688 -0
  22. package/.claude/docs//346/226/260/351/241/271/347/233/256/345/274/200/345/217/221/346/265/201/347/250/213.md +365 -0
  23. package/.claude/docs//346/241/206/346/236/266/350/257/264/346/230/216.md +393 -0
  24. package/.claude/docs//350/267/257/347/224/261/351/205/215/347/275/256/346/214/207/345/215/227.md +246 -0
  25. package/.claude/framework-config.json +73 -0
  26. package/.claude/hooks/pre-tool-use.js +117 -0
  27. package/.claude/hooks/skill-forced-eval.js +167 -0
  28. package/.claude/hooks/stop.js +58 -0
  29. package/.claude/settings.json +41 -0
  30. package/.claude/skills/add-skill/SKILL.md +352 -0
  31. package/.claude/skills/api-development/SKILL.md +560 -0
  32. package/.claude/skills/architecture-design/SKILL.md +756 -0
  33. package/.claude/skills/backend-annotations/SKILL.md +674 -0
  34. package/.claude/skills/banana-image/CHANGELOG.md +37 -0
  35. package/.claude/skills/banana-image/README.md +146 -0
  36. package/.claude/skills/banana-image/SKILL.md +164 -0
  37. package/.claude/skills/banana-image/assets/logo.png +0 -0
  38. package/.claude/skills/banana-image/references/advanced-usage.md +189 -0
  39. package/.claude/skills/banana-image/scripts/apply_template.py +125 -0
  40. package/.claude/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  41. package/.claude/skills/banana-image/scripts/batch_prep.py +82 -0
  42. package/.claude/skills/banana-image/scripts/package-lock.json +1437 -0
  43. package/.claude/skills/banana-image/scripts/package.json +18 -0
  44. package/.claude/skills/banana-image/scripts/requirements.txt +10 -0
  45. package/.claude/skills/banana-image/templates/poster.json +22 -0
  46. package/.claude/skills/banana-image/templates/product.json +17 -0
  47. package/.claude/skills/banana-image/templates/social.json +22 -0
  48. package/.claude/skills/banana-image/templates/thumbnail.json +17 -0
  49. package/.claude/skills/brainstorm/SKILL.md +648 -0
  50. package/.claude/skills/bug-detective/SKILL.md +1206 -0
  51. package/.claude/skills/code-patterns/SKILL.md +590 -0
  52. package/.claude/skills/collaborating-with-codex/SKILL.md +174 -0
  53. package/.claude/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  54. package/.claude/skills/collaborating-with-gemini/SKILL.md +194 -0
  55. package/.claude/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  56. package/.claude/skills/crud-development/SKILL.md +649 -0
  57. package/.claude/skills/data-permission/SKILL.md +599 -0
  58. package/.claude/skills/database-ops/SKILL.md +407 -0
  59. package/.claude/skills/error-handler/SKILL.md +371 -0
  60. package/.claude/skills/file-oss-management/SKILL.md +863 -0
  61. package/.claude/skills/git-workflow/SKILL.md +375 -0
  62. package/.claude/skills/json-serialization/SKILL.md +357 -0
  63. package/.claude/skills/leniu-api-development/SKILL.md +803 -0
  64. package/.claude/skills/leniu-architecture-design/SKILL.md +598 -0
  65. package/.claude/skills/leniu-backend-annotations/SKILL.md +664 -0
  66. package/.claude/skills/leniu-code-patterns/SKILL.md +365 -0
  67. package/.claude/skills/leniu-crud-development/SKILL.md +1110 -0
  68. package/.claude/skills/leniu-data-permission/SKILL.md +256 -0
  69. package/.claude/skills/leniu-database-ops/SKILL.md +426 -0
  70. package/.claude/skills/leniu-error-handler/SKILL.md +462 -0
  71. package/.claude/skills/leniu-java-amount-handling/SKILL.md +461 -0
  72. package/.claude/skills/leniu-java-code-style/SKILL.md +510 -0
  73. package/.claude/skills/leniu-java-concurrent/SKILL.md +400 -0
  74. package/.claude/skills/leniu-java-entity/SKILL.md +751 -0
  75. package/.claude/skills/leniu-java-export/SKILL.md +560 -0
  76. package/.claude/skills/leniu-java-logging/SKILL.md +832 -0
  77. package/.claude/skills/leniu-java-mq/SKILL.md +338 -0
  78. package/.claude/skills/leniu-java-mybatis/SKILL.md +640 -0
  79. package/.claude/skills/leniu-java-report-query-param/SKILL.md +291 -0
  80. package/.claude/skills/leniu-java-task/SKILL.md +367 -0
  81. package/.claude/skills/leniu-java-total-line/SKILL.md +195 -0
  82. package/.claude/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  83. package/.claude/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  84. package/.claude/skills/leniu-mealtime/SKILL.md +215 -0
  85. package/.claude/skills/leniu-redis-cache/SKILL.md +316 -0
  86. package/.claude/skills/leniu-security-guard/SKILL.md +520 -0
  87. package/.claude/skills/leniu-utils-toolkit/SKILL.md +380 -0
  88. package/.claude/skills/openspec-apply-change/SKILL.md +156 -0
  89. package/.claude/skills/openspec-archive-change/SKILL.md +114 -0
  90. package/.claude/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  91. package/.claude/skills/openspec-continue-change/SKILL.md +118 -0
  92. package/.claude/skills/openspec-explore/SKILL.md +290 -0
  93. package/.claude/skills/openspec-ff-change/SKILL.md +101 -0
  94. package/.claude/skills/openspec-new-change/SKILL.md +74 -0
  95. package/.claude/skills/openspec-onboard/SKILL.md +529 -0
  96. package/.claude/skills/openspec-sync-specs/SKILL.md +138 -0
  97. package/.claude/skills/openspec-verify-change/SKILL.md +168 -0
  98. package/.claude/skills/performance-doctor/SKILL.md +627 -0
  99. package/.claude/skills/project-navigator/SKILL.md +305 -0
  100. package/.claude/skills/redis-cache/SKILL.md +839 -0
  101. package/.claude/skills/scheduled-jobs/SKILL.md +633 -0
  102. package/.claude/skills/security-guard/SKILL.md +748 -0
  103. package/.claude/skills/sms-mail/SKILL.md +766 -0
  104. package/.claude/skills/social-login/SKILL.md +668 -0
  105. package/.claude/skills/store-pc/SKILL.md +366 -0
  106. package/.claude/skills/task-tracker/SKILL.md +307 -0
  107. package/.claude/skills/tech-decision/SKILL.md +393 -0
  108. package/.claude/skills/tenant-management/SKILL.md +603 -0
  109. package/.claude/skills/test-development/SKILL.md +755 -0
  110. package/.claude/skills/ui-pc/SKILL.md +438 -0
  111. package/.claude/skills/utils-toolkit/SKILL.md +615 -0
  112. package/.claude/skills/websocket-sse/SKILL.md +716 -0
  113. package/.claude/skills/workflow-engine/SKILL.md +676 -0
  114. package/.claude/templates//345/276/205/345/212/236/346/270/205/345/215/225/346/250/241/346/235/277.md +56 -0
  115. package/.claude/templates//351/234/200/346/261/202/346/226/207/346/241/243/346/250/241/346/235/277.md +85 -0
  116. package/.claude/templates//351/241/271/347/233/256/347/212/266/346/200/201/346/250/241/346/235/277.md +43 -0
  117. package/.codex/skills/add-skill/SKILL.md +352 -0
  118. package/.codex/skills/add-todo/SKILL.md +269 -0
  119. package/.codex/skills/api-development/SKILL.md +693 -0
  120. package/.codex/skills/architecture-design/SKILL.md +628 -0
  121. package/.codex/skills/backend-annotations/SKILL.md +664 -0
  122. package/.codex/skills/banana-image/CHANGELOG.md +37 -0
  123. package/.codex/skills/banana-image/README.md +146 -0
  124. package/.codex/skills/banana-image/SKILL.md +164 -0
  125. package/.codex/skills/banana-image/assets/logo.png +0 -0
  126. package/.codex/skills/banana-image/references/advanced-usage.md +189 -0
  127. package/.codex/skills/banana-image/scripts/apply_template.py +125 -0
  128. package/.codex/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  129. package/.codex/skills/banana-image/scripts/batch_prep.py +82 -0
  130. package/.codex/skills/banana-image/scripts/package-lock.json +1437 -0
  131. package/.codex/skills/banana-image/scripts/package.json +18 -0
  132. package/.codex/skills/banana-image/scripts/requirements.txt +10 -0
  133. package/.codex/skills/banana-image/templates/poster.json +22 -0
  134. package/.codex/skills/banana-image/templates/product.json +17 -0
  135. package/.codex/skills/banana-image/templates/social.json +22 -0
  136. package/.codex/skills/banana-image/templates/thumbnail.json +17 -0
  137. package/.codex/skills/brainstorm/SKILL.md +648 -0
  138. package/.codex/skills/bug-detective/SKILL.md +1206 -0
  139. package/.codex/skills/check/SKILL.md +367 -0
  140. package/.codex/skills/code-patterns/SKILL.md +442 -0
  141. package/.codex/skills/collaborating-with-codex/SKILL.md +174 -0
  142. package/.codex/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  143. package/.codex/skills/collaborating-with-gemini/SKILL.md +194 -0
  144. package/.codex/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  145. package/.codex/skills/crud/SKILL.md +265 -0
  146. package/.codex/skills/crud-development/SKILL.md +637 -0
  147. package/.codex/skills/data-permission/SKILL.md +591 -0
  148. package/.codex/skills/database-ops/SKILL.md +553 -0
  149. package/.codex/skills/dev/SKILL.md +187 -0
  150. package/.codex/skills/error-handler/SKILL.md +361 -0
  151. package/.codex/skills/file-oss-management/SKILL.md +863 -0
  152. package/.codex/skills/git-workflow/SKILL.md +375 -0
  153. package/.codex/skills/init-docs/SKILL.md +194 -0
  154. package/.codex/skills/json-serialization/SKILL.md +357 -0
  155. package/.codex/skills/leniu-api-development/SKILL.md +803 -0
  156. package/.codex/skills/leniu-architecture-design/SKILL.md +594 -0
  157. package/.codex/skills/leniu-backend-annotations/SKILL.md +662 -0
  158. package/.codex/skills/leniu-code-patterns/SKILL.md +365 -0
  159. package/.codex/skills/leniu-crud-development/SKILL.md +1110 -0
  160. package/.codex/skills/leniu-data-permission/SKILL.md +256 -0
  161. package/.codex/skills/leniu-database-ops/SKILL.md +426 -0
  162. package/.codex/skills/leniu-error-handler/SKILL.md +462 -0
  163. package/.codex/skills/leniu-java-amount-handling/SKILL.md +461 -0
  164. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  165. package/.codex/skills/leniu-java-concurrent/SKILL.md +400 -0
  166. package/.codex/skills/leniu-java-entity/SKILL.md +751 -0
  167. package/.codex/skills/leniu-java-export/SKILL.md +560 -0
  168. package/.codex/skills/leniu-java-logging/SKILL.md +832 -0
  169. package/.codex/skills/leniu-java-mq/SKILL.md +338 -0
  170. package/.codex/skills/leniu-java-mybatis/SKILL.md +640 -0
  171. package/.codex/skills/leniu-java-report-query-param/SKILL.md +291 -0
  172. package/.codex/skills/leniu-java-task/SKILL.md +367 -0
  173. package/.codex/skills/leniu-java-total-line/SKILL.md +195 -0
  174. package/.codex/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  175. package/.codex/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  176. package/.codex/skills/leniu-mealtime/SKILL.md +215 -0
  177. package/.codex/skills/leniu-redis-cache/SKILL.md +316 -0
  178. package/.codex/skills/leniu-security-guard/SKILL.md +520 -0
  179. package/.codex/skills/leniu-utils-toolkit/SKILL.md +378 -0
  180. package/.codex/skills/next/SKILL.md +137 -0
  181. package/.codex/skills/openspec-apply-change/SKILL.md +156 -0
  182. package/.codex/skills/openspec-archive-change/SKILL.md +114 -0
  183. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  184. package/.codex/skills/openspec-continue-change/SKILL.md +118 -0
  185. package/.codex/skills/openspec-explore/SKILL.md +290 -0
  186. package/.codex/skills/openspec-ff-change/SKILL.md +101 -0
  187. package/.codex/skills/openspec-new-change/SKILL.md +74 -0
  188. package/.codex/skills/openspec-onboard/SKILL.md +529 -0
  189. package/.codex/skills/openspec-sync-specs/SKILL.md +138 -0
  190. package/.codex/skills/openspec-verify-change/SKILL.md +168 -0
  191. package/.codex/skills/performance-doctor/SKILL.md +627 -0
  192. package/.codex/skills/progress/SKILL.md +193 -0
  193. package/.codex/skills/project-navigator/SKILL.md +286 -0
  194. package/.codex/skills/redis-cache/SKILL.md +829 -0
  195. package/.codex/skills/scheduled-jobs/SKILL.md +633 -0
  196. package/.codex/skills/security-guard/SKILL.md +739 -0
  197. package/.codex/skills/sms-mail/SKILL.md +766 -0
  198. package/.codex/skills/social-login/SKILL.md +668 -0
  199. package/.codex/skills/start/SKILL.md +154 -0
  200. package/.codex/skills/store-pc/SKILL.md +491 -0
  201. package/.codex/skills/sync/SKILL.md +149 -0
  202. package/.codex/skills/task-tracker/SKILL.md +307 -0
  203. package/.codex/skills/tech-decision/SKILL.md +393 -0
  204. package/.codex/skills/tenant-management/SKILL.md +603 -0
  205. package/.codex/skills/test-development/SKILL.md +755 -0
  206. package/.codex/skills/ui-pc/SKILL.md +475 -0
  207. package/.codex/skills/update-status/SKILL.md +159 -0
  208. package/.codex/skills/utils-toolkit/SKILL.md +593 -0
  209. package/.codex/skills/websocket-sse/SKILL.md +716 -0
  210. package/.codex/skills/workflow-engine/SKILL.md +676 -0
  211. package/.cursor/agents/code-reviewer.md +139 -0
  212. package/.cursor/agents/project-manager.md +159 -0
  213. package/.cursor/commands/opsx-apply.md +152 -0
  214. package/.cursor/commands/opsx-archive.md +157 -0
  215. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  216. package/.cursor/commands/opsx-continue.md +114 -0
  217. package/.cursor/commands/opsx-explore.md +174 -0
  218. package/.cursor/commands/opsx-ff.md +94 -0
  219. package/.cursor/commands/opsx-new.md +69 -0
  220. package/.cursor/commands/opsx-onboard.md +525 -0
  221. package/.cursor/commands/opsx-sync.md +134 -0
  222. package/.cursor/commands/opsx-verify.md +164 -0
  223. package/.cursor/mcp.json +22 -0
  224. package/.cursor/skills/add-skill/SKILL.md +352 -0
  225. package/.cursor/skills/api-development/SKILL.md +560 -0
  226. package/.cursor/skills/architecture-design/SKILL.md +756 -0
  227. package/.cursor/skills/backend-annotations/SKILL.md +674 -0
  228. package/.cursor/skills/banana-image/CHANGELOG.md +37 -0
  229. package/.cursor/skills/banana-image/README.md +146 -0
  230. package/.cursor/skills/banana-image/SKILL.md +164 -0
  231. package/.cursor/skills/banana-image/assets/logo.png +0 -0
  232. package/.cursor/skills/banana-image/references/advanced-usage.md +189 -0
  233. package/.cursor/skills/banana-image/scripts/apply_template.py +125 -0
  234. package/.cursor/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  235. package/.cursor/skills/banana-image/scripts/batch_prep.py +82 -0
  236. package/.cursor/skills/banana-image/scripts/package-lock.json +1437 -0
  237. package/.cursor/skills/banana-image/scripts/package.json +18 -0
  238. package/.cursor/skills/banana-image/scripts/requirements.txt +10 -0
  239. package/.cursor/skills/banana-image/templates/poster.json +22 -0
  240. package/.cursor/skills/banana-image/templates/product.json +17 -0
  241. package/.cursor/skills/banana-image/templates/social.json +22 -0
  242. package/.cursor/skills/banana-image/templates/thumbnail.json +17 -0
  243. package/.cursor/skills/brainstorm/SKILL.md +648 -0
  244. package/.cursor/skills/bug-detective/SKILL.md +1206 -0
  245. package/.cursor/skills/code-patterns/SKILL.md +590 -0
  246. package/.cursor/skills/collaborating-with-codex/SKILL.md +174 -0
  247. package/.cursor/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  248. package/.cursor/skills/collaborating-with-gemini/SKILL.md +194 -0
  249. package/.cursor/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  250. package/.cursor/skills/crud-development/SKILL.md +649 -0
  251. package/.cursor/skills/data-permission/SKILL.md +599 -0
  252. package/.cursor/skills/database-ops/SKILL.md +407 -0
  253. package/.cursor/skills/error-handler/SKILL.md +371 -0
  254. package/.cursor/skills/file-oss-management/SKILL.md +863 -0
  255. package/.cursor/skills/git-workflow/SKILL.md +375 -0
  256. package/.cursor/skills/json-serialization/SKILL.md +357 -0
  257. package/.cursor/skills/leniu-api-development/SKILL.md +803 -0
  258. package/.cursor/skills/leniu-architecture-design/SKILL.md +598 -0
  259. package/.cursor/skills/leniu-backend-annotations/SKILL.md +664 -0
  260. package/.cursor/skills/leniu-code-patterns/SKILL.md +365 -0
  261. package/.cursor/skills/leniu-crud-development/SKILL.md +1110 -0
  262. package/.cursor/skills/leniu-data-permission/SKILL.md +256 -0
  263. package/.cursor/skills/leniu-database-ops/SKILL.md +426 -0
  264. package/.cursor/skills/leniu-error-handler/SKILL.md +462 -0
  265. package/.cursor/skills/leniu-java-amount-handling/SKILL.md +461 -0
  266. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  267. package/.cursor/skills/leniu-java-concurrent/SKILL.md +400 -0
  268. package/.cursor/skills/leniu-java-entity/SKILL.md +751 -0
  269. package/.cursor/skills/leniu-java-export/SKILL.md +560 -0
  270. package/.cursor/skills/leniu-java-logging/SKILL.md +832 -0
  271. package/.cursor/skills/leniu-java-mq/SKILL.md +338 -0
  272. package/.cursor/skills/leniu-java-mybatis/SKILL.md +640 -0
  273. package/.cursor/skills/leniu-java-report-query-param/SKILL.md +291 -0
  274. package/.cursor/skills/leniu-java-task/SKILL.md +367 -0
  275. package/.cursor/skills/leniu-java-total-line/SKILL.md +195 -0
  276. package/.cursor/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  277. package/.cursor/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  278. package/.cursor/skills/leniu-mealtime/SKILL.md +215 -0
  279. package/.cursor/skills/leniu-redis-cache/SKILL.md +316 -0
  280. package/.cursor/skills/leniu-security-guard/SKILL.md +520 -0
  281. package/.cursor/skills/leniu-utils-toolkit/SKILL.md +380 -0
  282. package/.cursor/skills/openspec-apply-change/SKILL.md +156 -0
  283. package/.cursor/skills/openspec-archive-change/SKILL.md +114 -0
  284. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +246 -0
  285. package/.cursor/skills/openspec-continue-change/SKILL.md +118 -0
  286. package/.cursor/skills/openspec-explore/SKILL.md +290 -0
  287. package/.cursor/skills/openspec-ff-change/SKILL.md +101 -0
  288. package/.cursor/skills/openspec-new-change/SKILL.md +74 -0
  289. package/.cursor/skills/openspec-onboard/SKILL.md +529 -0
  290. package/.cursor/skills/openspec-sync-specs/SKILL.md +138 -0
  291. package/.cursor/skills/openspec-verify-change/SKILL.md +168 -0
  292. package/.cursor/skills/performance-doctor/SKILL.md +627 -0
  293. package/.cursor/skills/project-navigator/SKILL.md +305 -0
  294. package/.cursor/skills/redis-cache/SKILL.md +839 -0
  295. package/.cursor/skills/scheduled-jobs/SKILL.md +633 -0
  296. package/.cursor/skills/security-guard/SKILL.md +748 -0
  297. package/.cursor/skills/sms-mail/SKILL.md +766 -0
  298. package/.cursor/skills/social-login/SKILL.md +668 -0
  299. package/.cursor/skills/store-pc/SKILL.md +366 -0
  300. package/.cursor/skills/task-tracker/SKILL.md +307 -0
  301. package/.cursor/skills/tech-decision/SKILL.md +393 -0
  302. package/.cursor/skills/tenant-management/SKILL.md +603 -0
  303. package/.cursor/skills/test-development/SKILL.md +755 -0
  304. package/.cursor/skills/ui-pc/SKILL.md +438 -0
  305. package/.cursor/skills/utils-toolkit/SKILL.md +615 -0
  306. package/.cursor/skills/websocket-sse/SKILL.md +716 -0
  307. package/.cursor/skills/workflow-engine/SKILL.md +676 -0
  308. package/AGENTS.md +669 -0
  309. package/CLAUDE.md +205 -0
  310. package/README.md +205 -0
  311. package/bin/index.js +179 -0
  312. package/init.sh +178 -0
  313. package/package.json +27 -0
@@ -0,0 +1,393 @@
1
+ ---
2
+ name: tech-decision
3
+ description: |
4
+ 当需要进行技术选型、对比方案时自动使用此 Skill。
5
+
6
+ 触发场景:
7
+ - 选择用什么技术/库
8
+ - 对比不同方案
9
+ - 技术决策
10
+ - 评估优缺点
11
+ - 选择 ruoyi-common 模块
12
+
13
+ 触发词:选型、用什么、对比、哪个好、优缺点、选择、技术方案、库、框架、工具、模块
14
+ ---
15
+
16
+ # 技术决策指南
17
+
18
+ ## 本项目技术栈(精确版本)
19
+
20
+ ### 后端核心技术
21
+
22
+ | 技术 | 版本 | 用途 | 模块位置 |
23
+ |------|------|------|---------|
24
+ | **Spring Boot** | 3.5.9 | 基础框架 | 全局 |
25
+ | **Java** | 17 | 开发语言 | 全局 |
26
+ | **MyBatis-Plus** | 3.5.16 | ORM 框架 | ruoyi-common-mybatis |
27
+ | **Sa-Token** | 1.44.0 | 权限认证 | ruoyi-common-satoken |
28
+ | **Hutool** | 5.8.43 | 工具库 | ruoyi-common-core |
29
+ | **Redisson** | 3.52.0 | Redis 客户端增强 | ruoyi-common-redis |
30
+ | **MapStruct-Plus** | 1.5.0 | 对象映射 | 全局 |
31
+ | **SpringDoc** | 2.8.15 | API 文档 | ruoyi-common-doc |
32
+ | **Lombok** | 1.18.42 | 代码简化 | 全局 |
33
+ | **FastExcel** | 1.3.0 | Excel 处理 | ruoyi-common-excel |
34
+
35
+ ### 后端扩展技术
36
+
37
+ | 技术 | 版本 | 用途 | 模块位置 |
38
+ |------|------|------|---------|
39
+ | **Lock4j** | 2.2.7 | 分布式锁 | ruoyi-common-redis |
40
+ | **SnailJob** | 1.9.0 | 分布式任务调度 | ruoyi-common-job |
41
+ | **AWS SDK** | 2.28.22 | 对象存储 | ruoyi-common-oss |
42
+ | **SMS4j** | 3.3.5 | 短信服务 | ruoyi-common-sms |
43
+ | **JustAuth** | 1.16.7 | 第三方登录 | ruoyi-common-social |
44
+ | **IP2Region** | 3.3.4 | IP 地址定位 | ruoyi-common-core |
45
+ | **P6spy** | 3.9.1 | SQL 日志 | 开发环境 |
46
+ | **Dynamic-DS** | 4.3.1 | 多数据源 | ruoyi-common-mybatis |
47
+ | **Warm-Flow** | 1.8.4 | 工作流引擎 | ruoyi-workflow |
48
+ | **BouncyCastle** | 1.80 | 加密算法 | ruoyi-common-encrypt |
49
+
50
+ ---
51
+
52
+ ## ruoyi-common 模块速查(24个模块)
53
+
54
+ ### 🔴 高频使用模块(几乎每个项目都用)
55
+
56
+ | 模块 | 说明 | 典型场景 |
57
+ |------|------|---------|
58
+ | `ruoyi-common-core` | 核心工具类 | StringUtils、MapstructUtils、异常处理 |
59
+ | `ruoyi-common-mybatis` | MyBatis 增强 | Mapper 基类(BaseMapperPlus)、分页、查询构建器、多数据源 |
60
+ | `ruoyi-common-redis` | Redis 缓存 | 缓存、分布式锁、延迟队列 |
61
+ | `ruoyi-common-satoken` | 权限认证 | 登录、权限控制、Token 管理 |
62
+ | `ruoyi-common-web` | Web 基础 | 拦截器、过滤器、跨域 |
63
+ | `ruoyi-common-json` | JSON 序列化 | Jackson 配置、Long 精度处理 |
64
+ | `ruoyi-common-log` | 日志记录 | 操作日志、登录日志 |
65
+ | `ruoyi-common-doc` | API 文档 | SpringDoc/Swagger 文档生成 |
66
+
67
+ ### 🟡 按需使用模块(根据业务需求)
68
+
69
+ #### 数据处理
70
+
71
+ | 模块 | 说明 | 使用场景 |
72
+ |------|------|---------|
73
+ | `ruoyi-common-excel` | Excel 导入导出 | 数据导入、报表导出 |
74
+ | `ruoyi-common-oss` | 对象存储 | 文件上传(S3/MinIO/阿里云/腾讯云) |
75
+ | `ruoyi-common-encrypt` | 数据加密 | 数据库字段加密存储 |
76
+ | `ruoyi-common-sensitive` | 数据脱敏 | 手机号、身份证脱敏显示 |
77
+ | `ruoyi-common-translation` | 数据翻译 | ID→名称、字典→标签自动转换 |
78
+
79
+ #### 通信与消息
80
+
81
+ | 模块 | 说明 | 使用场景 |
82
+ |------|------|---------|
83
+ | `ruoyi-common-websocket` | WebSocket | 实时消息推送、在线聊天 |
84
+ | `ruoyi-common-sse` | 服务端推送 | 流式响应、单向推送 |
85
+ | `ruoyi-common-mail` | 邮件发送 | 通知邮件、验证码 |
86
+ | `ruoyi-common-sms` | 短信发送 | 短信验证码、营销短信 |
87
+
88
+ #### 系统功能
89
+
90
+ | 模块 | 说明 | 使用场景 |
91
+ |------|------|---------|
92
+ | `ruoyi-common-tenant` | 多租户 | SaaS 多租户隔离 |
93
+ | `ruoyi-common-job` | 任务调度 | 定时任务(SnailJob) |
94
+ | `ruoyi-common-idempotent` | 幂等控制 | 防重复提交 |
95
+ | `ruoyi-common-ratelimiter` | 接口限流 | 防刷、保护接口 |
96
+ | `ruoyi-common-social` | 社交登录 | 第三方平台登录(JustAuth) |
97
+ | `ruoyi-common-security` | 应用安全 | XSS 防护、SQL 注入防护 |
98
+
99
+ ---
100
+
101
+ ## 技术选型决策树
102
+
103
+ ### 场景 1:需要实时通信?
104
+
105
+ ```
106
+ 需要实时双向通信?
107
+ ├─ 是 → WebSocket(ruoyi-common-websocket)
108
+ │ 适用:在线聊天、协同编辑、实时游戏
109
+
110
+ └─ 否 → 需要服务端主动推送?
111
+ ├─ 是 → SSE(ruoyi-common-sse)
112
+ │ 适用:流式响应、通知推送、进度更新
113
+
114
+ └─ 否 → HTTP 轮询或普通请求
115
+ ```
116
+
117
+ ### 场景 2:需要异步处理?
118
+
119
+ ```
120
+ 需要异步处理?
121
+ ├─ 简单异步(同一应用内)
122
+ │ └─ @Async + Spring TaskExecutor
123
+ │ 适用:发送邮件、记录日志等不需要可靠性保证的任务
124
+
125
+ ├─ 需要延迟执行?
126
+ │ └─ Redis 延迟队列(RedissonDelayedQueue)
127
+ │ 适用:订单超时取消、延迟通知(ruoyi-common-redis)
128
+
129
+ └─ 不需要异步 → 同步调用
130
+ ```
131
+
132
+ ### 场景 3:需要定时任务?
133
+
134
+ ```
135
+ 需要定时任务?
136
+ ├─ 单机简单任务(不需要分布式)
137
+ │ └─ @Scheduled(Spring 原生)
138
+ │ 适用:清理临时文件、统计数据、心跳检测
139
+
140
+ ├─ 分布式调度/复杂任务
141
+ │ └─ SnailJob(ruoyi-common-job)
142
+ │ 适用:多节点任务、失败重试、任务编排、可视化管理
143
+
144
+ └─ 延迟任务(非周期性)
145
+ └─ Redis 延迟队列
146
+ 适用:订单超时取消、定时发布
147
+ ```
148
+
149
+ ### 场景 4:需要缓存?
150
+
151
+ ```
152
+ 需要缓存?
153
+ ├─ 简单 Key-Value 缓存
154
+ │ └─ Redis String(ruoyi-common-redis)
155
+ │ 适用:用户信息、配置数据、Token
156
+
157
+ ├─ 分布式锁
158
+ │ └─ Lock4j + Redisson(ruoyi-common-redis)
159
+ │ 适用:库存扣减、防重复操作
160
+
161
+ ├─ 排行榜/计数器
162
+ │ └─ Redis ZSet/Hash
163
+ │ 适用:热门排行、点赞计数、在线人数
164
+
165
+ ├─ 布隆过滤器(防缓存穿透)
166
+ │ └─ Redisson BloomFilter
167
+ │ 适用:用户存在性检查、黑名单过滤
168
+
169
+ └─ 本地缓存(高频访问)
170
+ └─ Caffeine
171
+ 适用:字典数据、菜单数据(本项目已集成)
172
+ ```
173
+
174
+ ### 场景 5:需要第三方登录?
175
+
176
+ ```
177
+ 需要第三方登录?
178
+ └─ ruoyi-common-social(基于 JustAuth)
179
+ 支持 20+ 平台:微信、QQ、微博、GitHub、企业微信、钉钉等
180
+ ```
181
+
182
+ ---
183
+
184
+ ## 技术优先级指南
185
+
186
+ ### 优先级 1:首选方案(覆盖 80% 场景)
187
+
188
+ | 需求 | 首选技术 | 模块 | 理由 |
189
+ |------|---------|------|------|
190
+ | 缓存 | Redis | ruoyi-common-redis | 功能全面、生态成熟 |
191
+ | 分布式锁 | Lock4j | ruoyi-common-redis | 注解简单、自动续期 |
192
+ | 实时通信 | WebSocket | ruoyi-common-websocket | 双向通信、广泛支持 |
193
+ | 定时任务(简单) | @Scheduled | Spring 原生 | 零配置、够用 |
194
+ | 文件上传 | OSS | ruoyi-common-oss | 统一接口、多云支持 |
195
+ | 权限认证 | Sa-Token | ruoyi-common-satoken | 功能强大、文档好 |
196
+ | 对象转换 | MapStruct | 全局 | 编译期生成、性能好 |
197
+
198
+ ### 优先级 2:进阶方案(特定场景)
199
+
200
+ | 需求 | 进阶技术 | 模块 | 使用条件 |
201
+ |------|---------|------|---------|
202
+ | 定时任务(复杂) | SnailJob | ruoyi-common-job | 分布式、可视化 |
203
+ | 流式推送 | SSE | ruoyi-common-sse | 流式响应、实时推送 |
204
+ | 多数据源 | Dynamic-DS | ruoyi-common-mybatis | 多数据库切换 |
205
+ | 工作流 | Warm-Flow | ruoyi-workflow | 审批流程、流程编排 |
206
+
207
+ ### 优先级 3:专用方案(特殊需求)
208
+
209
+ | 需求 | 专用技术 | 模块 | 备注 |
210
+ |------|---------|------|------|
211
+ | 短信发送 | SMS4j | ruoyi-common-sms | 多平台聚合 |
212
+ | 第三方登录 | JustAuth | ruoyi-common-social | 20+ 平台支持 |
213
+ | 数据翻译 | Translation | ruoyi-common-translation | ID→名称自动转换 |
214
+
215
+ ---
216
+
217
+ ## 常见选型对比
218
+
219
+ ### 1. 异步处理选型
220
+
221
+ | 方案 | 适用场景 | 优点 | 缺点 |
222
+ |------|---------|------|------|
223
+ | **@Async** | 简单异步任务 | Spring 原生、零配置 | 无可靠性保证 |
224
+ | **Redis Streams** | 轻量消息、简单队列 | 无额外依赖、使用简单 | 功能有限、无事务 |
225
+ | **Redis 延迟队列** | 延迟任务 | 基于 Redisson、易用 | 不适合高吞吐 |
226
+
227
+ **本项目推荐**:
228
+ - 简单场景 → @Async
229
+ - 延迟任务 → Redis 延迟队列(ruoyi-common-redis)
230
+
231
+ ### 2. 定时任务选型
232
+
233
+ | 方案 | 适用场景 | 优点 | 缺点 |
234
+ |------|---------|------|------|
235
+ | **@Scheduled** | 单机简单任务 | 零配置、Spring 原生 | 无分布式支持 |
236
+ | **SnailJob** | 分布式复杂任务 | 可视化、失败重试、工作流 | 需要额外部署 |
237
+ | **XXL-Job** | 分布式任务 | 文档丰富、社区活跃 | 本项目未集成 |
238
+ | **Quartz** | 传统定时任务 | 功能完善、历史悠久 | 配置复杂 |
239
+
240
+ **本项目推荐**:
241
+ - 简单场景 → @Scheduled
242
+ - 复杂场景 → SnailJob(ruoyi-common-job)
243
+
244
+ ### 3. HTTP 客户端选型
245
+
246
+ | 方案 | 适用场景 | 优点 | 缺点 |
247
+ |------|---------|------|------|
248
+ | **RestTemplate** | 简单 HTTP 调用 | Spring 原生、简单 | 同步阻塞、功能有限 |
249
+ | **WebClient** | 响应式 HTTP | 异步非阻塞 | 学习曲线 |
250
+ | **OkHttp** | 高性能 HTTP | 连接池、拦截器 | 需要手动封装 |
251
+ | **Hutool HttpUtil** | 工具类调用 | 简单易用、已集成 | 功能相对简单 |
252
+
253
+ **本项目推荐**:
254
+ - 简单场景 → RestTemplate 或 Hutool HttpUtil
255
+ - 响应式场景 → WebClient
256
+
257
+ ### 4. Excel 处理选型
258
+
259
+ | 方案 | 适用场景 | 优点 | 缺点 |
260
+ |------|---------|------|------|
261
+ | **FastExcel** | 大文件、高性能 | 内存占用低、速度快 | 功能相对简单 |
262
+ | **EasyExcel** | 通用场景 | 功能全面、文档好 | 阿里维护 |
263
+ | **Apache POI** | 复杂操作 | 功能最全 | 内存占用大 |
264
+
265
+ **本项目推荐**:FastExcel(ruoyi-common-excel)
266
+
267
+ ---
268
+
269
+ ## 决策记录模板
270
+
271
+ ```markdown
272
+ # [决策标题]
273
+
274
+ ## 背景
275
+ [为什么需要做这个决策]
276
+
277
+ ## 决策内容
278
+ [选择了什么,如何实现]
279
+
280
+ ## 考虑的方案
281
+ | 方案 | 优点 | 缺点 | 评分 |
282
+ |------|------|------|------|
283
+ | 方案A | | | |
284
+ | 方案B | | | |
285
+ | 方案C | | | |
286
+
287
+ ## 决策理由
288
+ 1. [理由1]
289
+ 2. [理由2]
290
+ 3. [理由3]
291
+
292
+ ## 后果
293
+ - **优点**:[带来的好处]
294
+ - **缺点**:[需要接受的代价]
295
+ - **风险**:[潜在风险及应对]
296
+
297
+ ## 日期
298
+ [YYYY-MM-DD]
299
+ ```
300
+
301
+ ---
302
+
303
+ ## 模块引入示例
304
+
305
+ ### 在 pom.xml 中引入模块
306
+
307
+ ```xml
308
+ <!-- 按需引入 ruoyi-common 模块 -->
309
+ <dependencies>
310
+ <!-- 核心模块(必须) -->
311
+ <dependency>
312
+ <groupId>org.dromara</groupId>
313
+ <artifactId>ruoyi-common-core</artifactId>
314
+ </dependency>
315
+
316
+ <!-- MyBatis(必须) -->
317
+ <dependency>
318
+ <groupId>org.dromara</groupId>
319
+ <artifactId>ruoyi-common-mybatis</artifactId>
320
+ </dependency>
321
+
322
+ <!-- Redis 缓存(推荐) -->
323
+ <dependency>
324
+ <groupId>org.dromara</groupId>
325
+ <artifactId>ruoyi-common-redis</artifactId>
326
+ </dependency>
327
+
328
+ <!-- WebSocket(按需) -->
329
+ <dependency>
330
+ <groupId>org.dromara</groupId>
331
+ <artifactId>ruoyi-common-websocket</artifactId>
332
+ </dependency>
333
+
334
+ <!-- 短信服务(按需) -->
335
+ <dependency>
336
+ <groupId>org.dromara</groupId>
337
+ <artifactId>ruoyi-common-sms</artifactId>
338
+ </dependency>
339
+ </dependencies>
340
+ ```
341
+
342
+ ---
343
+
344
+ ## 评估检查清单
345
+
346
+ ### 选型前必查
347
+
348
+ - [ ] **功能满足**:是否满足当前功能需求?
349
+ - [ ] **性能满足**:是否满足性能要求?
350
+ - [ ] **社区活跃**:GitHub Stars、Issues 响应速度?
351
+ - [ ] **文档完善**:是否有中文文档?
352
+ - [ ] **兼容性**:与现有技术栈是否兼容?
353
+ - [ ] **学习成本**:团队是否熟悉?学习曲线如何?
354
+ - [ ] **维护成本**:长期维护成本如何?
355
+ - [ ] **安全漏洞**:是否有已知安全漏洞?
356
+ - [ ] **License**:是否允许商用?
357
+ - [ ] **项目已有**:ruoyi-common 是否已经集成?
358
+
359
+ ### 本项目优先原则
360
+
361
+ 1. **优先使用 ruoyi-common 模块**:已集成、已测试、风格统一
362
+ 2. **优先使用 Hutool 工具类**:项目已依赖,无需额外引入
363
+ 3. **优先使用 Spring 原生**:稳定、文档全、社区大
364
+ 4. **避免重复造轮子**:先查 ruoyi-common 是否有现成实现
365
+
366
+ ---
367
+
368
+ ## 快速决策参考
369
+
370
+ | 我想要... | 用这个 | 模块/技术 |
371
+ |----------|--------|---------|
372
+ | 缓存数据 | Redis | ruoyi-common-redis |
373
+ | 分布式锁 | Lock4j | ruoyi-common-redis |
374
+ | 发送短信 | SMS4j | ruoyi-common-sms |
375
+ | 发送邮件 | Spring Mail | ruoyi-common-mail |
376
+ | 上传文件 | AWS S3 SDK | ruoyi-common-oss |
377
+ | 定时任务(简单) | @Scheduled | Spring 原生 |
378
+ | 定时任务(复杂) | SnailJob | ruoyi-common-job |
379
+ | 实时推送 | WebSocket | ruoyi-common-websocket |
380
+ | 流式响应 | SSE | ruoyi-common-sse |
381
+ | 数据脱敏 | @Sensitive | ruoyi-common-sensitive |
382
+ | 字段加密 | @EncryptField | ruoyi-common-encrypt |
383
+ | 数据翻译 | Translation | ruoyi-common-translation |
384
+ | 接口限流 | @RateLimiter | ruoyi-common-ratelimiter |
385
+ | 防重复提交 | @RepeatSubmit | ruoyi-common-idempotent |
386
+ | 第三方登录 | JustAuth | ruoyi-common-social |
387
+ | Excel 导出 | FastExcel | ruoyi-common-excel |
388
+ | API 文档 | SpringDoc | ruoyi-common-doc |
389
+ | HTTP 调用 | RestTemplate/Hutool | Spring 原生/Hutool |
390
+ | 多租户隔离 | Tenant | ruoyi-common-tenant |
391
+ | 多数据源 | Dynamic-DS | ruoyi-common-mybatis |
392
+ | 工作流 | Warm-Flow | ruoyi-workflow |
393
+ | 应用安全 | Security | ruoyi-common-security |