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,475 @@
1
+ ---
2
+ name: ui-pc
3
+ description: |
4
+ 前端(plus-ui)组件库指南。包含 21 个自定义组件、7 个 Store 模块、19 个工具模块。
5
+
6
+ 触发场景:
7
+ - 开发前端后台管理页面
8
+ - 使用 Element Plus 组件
9
+ - 表格、表单、弹窗、图表等前端 UI
10
+ - 使用 useDict、useDictStore 等
11
+ - 使用 Utils 工具函数
12
+
13
+ 触发词:el-、DictTag、Pagination、RightToolbar、ImagePreview、前端组件、后台页面、管理端、useDict、useDictStore、i18n
14
+
15
+ 适用目录:plus-ui/**
16
+ ---
17
+
18
+ # 前端组件库指南
19
+
20
+ > **适用于**: `plus-ui/` 目录下的前端后台管理页面开发
21
+
22
+ ---
23
+
24
+ ## 目录结构
25
+
26
+ ```
27
+ plus-ui/src/
28
+ ├── api/ # API 接口定义
29
+ ├── assets/ # 静态资源
30
+ ├── components/ # 自定义组件(21个)
31
+ ├── directive/ # 自定义指令
32
+ ├── enums/ # 枚举定义
33
+ ├── hooks/ # Hooks(1个)
34
+ ├── lang/ # 国际化
35
+ ├── layout/ # 布局组件
36
+ ├── plugins/ # 插件
37
+ ├── router/ # 路由配置
38
+ ├── store/ # Pinia Store(7个模块)
39
+ ├── types/ # 类型定义
40
+ ├── utils/ # 工具函数(19个)
41
+ └── views/ # 页面视图
42
+ ```
43
+
44
+ ---
45
+
46
+ ## 组件总览(21 个)
47
+
48
+ | 组件 | 用途 | 使用场景 |
49
+ |------|------|----------|
50
+ | `Breadcrumb` | 面包屑导航 | 页面顶部路径导航 |
51
+ | `DictTag` | 字典标签 | 显示字典值对应的标签 |
52
+ | `Editor` | 富文本编辑器 | 内容编辑 |
53
+ | `FileUpload` | 文件上传 | 附件上传 |
54
+ | `Hamburger` | 汉堡菜单按钮 | 侧边栏折叠切换 |
55
+ | `IconSelect` | 图标选择器 | 选择系统图标 |
56
+ | `iFrame` | 内嵌页面 | 嵌入外部页面 |
57
+ | `ImagePreview` | 图片预览 | 表格中图片缩略图 |
58
+ | `ImageUpload` | 图片上传 | 头像/图片上传 |
59
+ | `LangSelect` | 语言选择 | 切换系统语言 |
60
+ | `Pagination` | 分页组件 | 列表分页 |
61
+ | `ParentView` | 父级视图 | 路由嵌套容器 |
62
+ | `Process` | 流程组件 | 流程展示 |
63
+ | `RightToolbar` | 右侧工具栏 | 表格工具栏(搜索/刷新/列设置) |
64
+ | `RoleSelect` | 角色选择器 | 选择角色 |
65
+ | `RuoYiDoc` | 文档链接 | 跳转官方文档 |
66
+ | `RuoYiGit` | Git链接 | 跳转仓库 |
67
+ | `Screenfull` | 全屏切换 | 页面全屏 |
68
+ | `SizeSelect` | 尺寸选择 | 切换组件尺寸 |
69
+ | `SvgIcon` | SVG图标 | 显示 SVG 图标 |
70
+ | `TopNav` | 顶部导航 | 顶部菜单导航 |
71
+ | `UserSelect` | 用户选择器 | 选择用户 |
72
+
73
+ ### 常用组件示例
74
+
75
+ #### DictTag - 字典标签
76
+
77
+ ```vue
78
+ <template>
79
+ <dict-tag :options="sys_normal_disable" :value="row.status" />
80
+ </template>
81
+
82
+ <script setup lang="ts">
83
+ const { sys_normal_disable } = useDict('sys_normal_disable')
84
+ </script>
85
+ ```
86
+
87
+ #### Pagination - 分页
88
+
89
+ ```vue
90
+ <pagination
91
+ v-show="total > 0"
92
+ :total="total"
93
+ v-model:page="queryParams.pageNum"
94
+ v-model:limit="queryParams.pageSize"
95
+ @pagination="getList"
96
+ />
97
+ ```
98
+
99
+ #### RightToolbar - 工具栏
100
+
101
+ ```vue
102
+ <right-toolbar
103
+ v-model:showSearch="showSearch"
104
+ @queryTable="getList"
105
+ />
106
+ ```
107
+
108
+ #### ImagePreview - 图片预览
109
+
110
+ ```vue
111
+ <image-preview :src="row.avatar" :width="50" :height="50" />
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Store 模块(7 个)
117
+
118
+ | Store | 文件 | 职责 |
119
+ |-------|------|------|
120
+ | `useUserStore` | `store/modules/user.ts` | 用户信息、登录状态、角色权限 |
121
+ | `useAppStore` | `store/modules/app.ts` | 应用状态(侧边栏、设备类型) |
122
+ | `useDictStore` | `store/modules/dict.ts` | 字典数据缓存 |
123
+ | `useNoticeStore` | `store/modules/notice.ts` | 通知消息 |
124
+ | `usePermissionStore` | `store/modules/permission.ts` | 权限路由管理 |
125
+ | `useSettingsStore` | `store/modules/settings.ts` | 系统设置 |
126
+ | `useTagsViewStore` | `store/modules/tagsView.ts` | 标签页管理 |
127
+
128
+ ### useUserStore 用法
129
+
130
+ ```typescript
131
+ import { useUserStore } from '@/store/modules/user'
132
+
133
+ const userStore = useUserStore()
134
+
135
+ // 属性
136
+ userStore.userId // 用户ID
137
+ userStore.tenantId // 租户ID
138
+ userStore.token // 登录令牌
139
+ userStore.nickname // 昵称
140
+ userStore.avatar // 头像
141
+ userStore.roles // 角色列表
142
+ userStore.permissions // 权限列表
143
+
144
+ // 方法
145
+ await userStore.login(userInfo) // 登录
146
+ await userStore.getInfo() // 获取用户信息
147
+ await userStore.logout() // 登出
148
+ userStore.setAvatar(url) // 设置头像
149
+ ```
150
+
151
+ ### useDictStore 用法
152
+
153
+ ```typescript
154
+ import { useDictStore } from '@/store/modules/dict'
155
+
156
+ const dictStore = useDictStore()
157
+ const dicts = dictStore.getDict('sys_normal_disable')
158
+ dictStore.setDict('sys_normal_disable', dictData)
159
+ ```
160
+
161
+ ---
162
+
163
+ ## Hooks(1 个)
164
+
165
+ ### useDialog
166
+
167
+ ```typescript
168
+ import useDialog from '@/hooks/useDialog'
169
+
170
+ const { dialogVisible, openDialog, closeDialog } = useDialog()
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Utils 工具函数(19 个模块)
176
+
177
+ ### dict.ts - 字典工具(高频使用)
178
+
179
+ ```typescript
180
+ import { useDict } from '@/utils/dict'
181
+
182
+ // 获取字典数据
183
+ const { sys_normal_disable, sys_user_sex } = useDict(
184
+ 'sys_normal_disable',
185
+ 'sys_user_sex'
186
+ )
187
+
188
+ // 返回格式:
189
+ // { label: '正常', value: '0', elTagType: 'primary', elTagClass: '' }
190
+ ```
191
+
192
+ ### request.ts - HTTP 请求
193
+
194
+ ```typescript
195
+ import request from '@/utils/request'
196
+
197
+ // GET 请求
198
+ export function listUser(query) {
199
+ return request({
200
+ url: '/system/user/list',
201
+ method: 'get',
202
+ params: query
203
+ })
204
+ }
205
+
206
+ // POST 请求
207
+ export function addUser(data) {
208
+ return request({
209
+ url: '/system/user',
210
+ method: 'post',
211
+ data: data
212
+ })
213
+ }
214
+ ```
215
+
216
+ ### auth.ts - 认证工具
217
+
218
+ ```typescript
219
+ import { getToken, setToken, removeToken } from '@/utils/auth'
220
+
221
+ const token = getToken()
222
+ setToken('new-token')
223
+ removeToken()
224
+ ```
225
+
226
+ ### ruoyi.ts - 通用工具
227
+
228
+ ```typescript
229
+ import {
230
+ parseTime, // 时间格式化
231
+ resetForm, // 重置表单
232
+ addDateRange, // 添加日期范围参数
233
+ selectDictLabel, // 获取字典标签
234
+ handleTree, // 构造树形结构
235
+ blobValidate // Blob 验证
236
+ } from '@/utils/ruoyi'
237
+
238
+ // 日期范围查询
239
+ addDateRange(queryParams, dateRange, 'createTime')
240
+
241
+ // 构造树形结构
242
+ const treeData = handleTree(data, 'id', 'parentId')
243
+ ```
244
+
245
+ ### validate.ts - 验证工具
246
+
247
+ ```typescript
248
+ import {
249
+ isURL,
250
+ isLowerCase,
251
+ isUpperCase,
252
+ isAlphabets,
253
+ isEmail,
254
+ isMobile,
255
+ isPhone,
256
+ isIdCard,
257
+ isNumber,
258
+ isIntegerGreaterThanZero
259
+ } from '@/utils/validate'
260
+
261
+ if (isEmail(value)) { ... }
262
+ if (isMobile(value)) { ... }
263
+ ```
264
+
265
+ ### index.ts - 通用工具函数
266
+
267
+ ```typescript
268
+ import {
269
+ formatDate, // 日期格式化
270
+ formatTime, // 时间格式化(相对时间)
271
+ debounce, // 防抖
272
+ deepClone, // 深拷贝
273
+ uniqueArr, // 数组去重
274
+ hasClass, // 判断类名
275
+ addClass, // 添加类名
276
+ removeClass, // 移除类名
277
+ isExternal // 是否外部链接
278
+ } from '@/utils'
279
+ ```
280
+
281
+ ### crypto.ts - 加密工具
282
+
283
+ ```typescript
284
+ import { encrypt, decrypt } from '@/utils/crypto'
285
+
286
+ const encrypted = encrypt(data)
287
+ const decrypted = decrypt(encrypted)
288
+ ```
289
+
290
+ ### jsencrypt.ts - RSA 加密
291
+
292
+ ```typescript
293
+ import { encrypt, decrypt } from '@/utils/jsencrypt'
294
+
295
+ const encrypted = encrypt(password)
296
+ ```
297
+
298
+ ### permission.ts - 权限工具
299
+
300
+ ```typescript
301
+ import { checkPermi, checkRole } from '@/utils/permission'
302
+
303
+ // 检查权限
304
+ if (checkPermi(['system:user:add'])) { ... }
305
+
306
+ // 检查角色
307
+ if (checkRole(['admin'])) { ... }
308
+ ```
309
+
310
+ ### websocket.ts - WebSocket
311
+
312
+ ```typescript
313
+ import { initWebSocket, closeWebSocket, sendMessage } from '@/utils/websocket'
314
+
315
+ initWebSocket(url, onMessage, onError)
316
+ sendMessage(data)
317
+ closeWebSocket()
318
+ ```
319
+
320
+ ### sse.ts - Server-Sent Events
321
+
322
+ ```typescript
323
+ import { createSSE, closeSSE } from '@/utils/sse'
324
+
325
+ const sse = createSSE(url, onMessage)
326
+ closeSSE(sse)
327
+ ```
328
+
329
+ ---
330
+
331
+ ## 标准列表页结构
332
+
333
+ ### 1. 搜索区域
334
+
335
+ ```vue
336
+ <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
337
+ <el-form-item label="用户名称" prop="userName">
338
+ <el-input
339
+ v-model="queryParams.userName"
340
+ placeholder="请输入用户名称"
341
+ clearable
342
+ @keyup.enter="handleQuery"
343
+ />
344
+ </el-form-item>
345
+ <el-form-item label="状态" prop="status">
346
+ <el-select v-model="queryParams.status" placeholder="用户状态" clearable>
347
+ <el-option
348
+ v-for="dict in sys_normal_disable"
349
+ :key="dict.value"
350
+ :label="dict.label"
351
+ :value="dict.value"
352
+ />
353
+ </el-select>
354
+ </el-form-item>
355
+ <el-form-item>
356
+ <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
357
+ <el-button icon="Refresh" @click="resetQuery">重置</el-button>
358
+ </el-form-item>
359
+ </el-form>
360
+ ```
361
+
362
+ ### 2. 工具栏区域
363
+
364
+ ```vue
365
+ <el-row :gutter="10" class="mb8">
366
+ <el-col :span="1.5">
367
+ <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['system:user:add']">
368
+ 新增
369
+ </el-button>
370
+ </el-col>
371
+ <el-col :span="1.5">
372
+ <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['system:user:edit']">
373
+ 修改
374
+ </el-button>
375
+ </el-col>
376
+ <el-col :span="1.5">
377
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">
378
+ 删除
379
+ </el-button>
380
+ </el-col>
381
+ <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" />
382
+ </el-row>
383
+ ```
384
+
385
+ ### 3. 表格区域
386
+
387
+ ```vue
388
+ <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
389
+ <el-table-column type="selection" width="50" align="center" />
390
+ <el-table-column label="用户编号" align="center" prop="userId" />
391
+ <el-table-column label="用户名称" align="center" prop="userName" />
392
+ <el-table-column label="头像" align="center" prop="avatar" width="80">
393
+ <template #default="scope">
394
+ <image-preview :src="scope.row.avatar" :width="50" :height="50" />
395
+ </template>
396
+ </el-table-column>
397
+ <el-table-column label="状态" align="center" prop="status">
398
+ <template #default="scope">
399
+ <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
400
+ </template>
401
+ </el-table-column>
402
+ <el-table-column label="操作" align="center" width="180">
403
+ <template #default="scope">
404
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['system:user:edit']">
405
+ 修改
406
+ </el-button>
407
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['system:user:remove']">
408
+ 删除
409
+ </el-button>
410
+ </template>
411
+ </el-table-column>
412
+ </el-table>
413
+
414
+ <pagination
415
+ v-show="total > 0"
416
+ :total="total"
417
+ v-model:page="queryParams.pageNum"
418
+ v-model:limit="queryParams.pageSize"
419
+ @pagination="getList"
420
+ />
421
+ ```
422
+
423
+ ### 4. 弹窗表单
424
+
425
+ ```vue
426
+ <el-dialog :title="title" v-model="open" width="500px" append-to-body>
427
+ <el-form ref="formRef" :model="form" :rules="rules" label-width="80px">
428
+ <el-form-item label="用户名称" prop="userName">
429
+ <el-input v-model="form.userName" placeholder="请输入用户名称" />
430
+ </el-form-item>
431
+ <el-form-item label="状态" prop="status">
432
+ <el-radio-group v-model="form.status">
433
+ <el-radio
434
+ v-for="dict in sys_normal_disable"
435
+ :key="dict.value"
436
+ :value="dict.value"
437
+ >{{ dict.label }}</el-radio>
438
+ </el-radio-group>
439
+ </el-form-item>
440
+ </el-form>
441
+ <template #footer>
442
+ <div class="dialog-footer">
443
+ <el-button type="primary" @click="submitForm">确 定</el-button>
444
+ <el-button @click="cancel">取 消</el-button>
445
+ </div>
446
+ </template>
447
+ </el-dialog>
448
+ ```
449
+
450
+ ---
451
+
452
+ ## 权限指令
453
+
454
+ ```vue
455
+ <!-- 按钮权限 -->
456
+ <el-button v-hasPermi="['system:user:add']">新增</el-button>
457
+
458
+ <!-- 角色权限 -->
459
+ <el-button v-hasRole="['admin']">管理员按钮</el-button>
460
+ ```
461
+
462
+ ---
463
+
464
+ ## 参考文件位置
465
+
466
+ | 用途 | 路径 |
467
+ |------|------|
468
+ | 标准 CRUD 页面 | `plus-ui/src/views/system/user/index.vue` |
469
+ | API 定义规范 | `plus-ui/src/api/system/user/index.ts` |
470
+ | 字典标签组件 | `plus-ui/src/components/DictTag/index.vue` |
471
+ | 分页组件 | `plus-ui/src/components/Pagination/index.vue` |
472
+ | 工具栏组件 | `plus-ui/src/components/RightToolbar/index.vue` |
473
+ | 字典工具 | `plus-ui/src/utils/dict.ts` |
474
+ | 通用工具 | `plus-ui/src/utils/ruoyi.ts` |
475
+ | 用户 Store | `plus-ui/src/store/modules/user.ts` |
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: update-status
3
+ description: |
4
+ 当需要增量更新项目状态、同步最近代码变更时自动使用此 Skill。
5
+
6
+ 触发场景:
7
+ - 完成一个功能或任务后更新状态
8
+ - 每天开始或结束时同步代码变更
9
+ - 代码审查完成后更新文档
10
+ - 日常维护项目状态
11
+
12
+ 触发词:更新状态、update-status、状态更新、增量更新、日常同步、更新进度
13
+ ---
14
+
15
+ # /update-status - 项目状态智能更新
16
+
17
+ 日常使用的增量更新命令。自动扫描最近的代码变更,智能更新项目文档,保持文档与代码同步。
18
+
19
+ ---
20
+
21
+ ## 🎯 适用场景
22
+
23
+ | 场景 | 说明 | 频率 |
24
+ |------|------|------|
25
+ | **功能完成** | 完成一个功能或任务后更新状态 | 实时 |
26
+ | **日常同步** | 每天开始或结束时同步代码变更 | 每天1-2次 |
27
+ | **代码审查后** | 审查完成后更新文档 | 按需 |
28
+ | **周期回顾** | 本周末更新本周的工作成果 | 每周1次 |
29
+
30
+ ---
31
+
32
+ ## 📊 与 /sync 的区别
33
+
34
+ | 对比项 | `/update-status`(增量)| `/sync`(全量)|
35
+ |--------|----------------------|----------------|
36
+ | **执行速度** | ⚡ 快速 | 🐢 较慢 |
37
+ | **扫描范围** | 最近 N 条提交 | 整个项目 |
38
+ | **处理方式** | 增量更新 | 全量重建 |
39
+ | **使用频率** | 日常频繁使用 | 每周一次 |
40
+
41
+ ---
42
+
43
+ ## 🚀 执行流程
44
+
45
+ ### 第一步:检查和初始化文档(强制执行)
46
+
47
+ ```bash
48
+ # 检查文档目录
49
+ Glob pattern: "docs/*.md"
50
+
51
+ # 必要的文档文件
52
+ docs/README.md # 项目简介
53
+ docs/PROJECT_STATUS.md # 项目进度
54
+ docs/TODO.md # 待办清单
55
+ ```
56
+
57
+ ### 第二步:分析最近的代码变更
58
+
59
+ ```bash
60
+ # 获取最近 20 条提交
61
+ git log -20 --oneline --format="%h|%s|%aI" --all
62
+
63
+ # 扫描业务模块变更
64
+ Glob pattern: "ruoyi-modules/ruoyi-*/src/main/java/**/controller/*Controller.java"
65
+
66
+ # 扫描代码中的待办标记
67
+ Grep pattern: "TODO:|FIXME:|XXX:" path: ruoyi-modules/ glob: "*.java" output_mode: content -B 1
68
+ ```
69
+
70
+ ### 第三步:更新项目进度文档
71
+
72
+ 分析功能完整性,更新 PROJECT_STATUS.md:
73
+ - 新增已完成功能
74
+ - 更新进行中功能的完成度
75
+ - 更新统计信息
76
+
77
+ ### 第四步:更新待办清单文档
78
+
79
+ 同步 TODO.md:
80
+ - 将完成的功能移到已完成区域
81
+ - 添加新发现的 TODO/FIXME
82
+
83
+ ---
84
+
85
+ ## 输出格式
86
+
87
+ ```markdown
88
+ # 📝 项目状态更新报告
89
+
90
+ **更新时间**:YYYY-MM-DD HH:mm
91
+ **扫描范围**:最近 20 条 Git 提交
92
+
93
+ ---
94
+
95
+ ## 📂 文档状态
96
+
97
+ | 文档 | 操作 | 状态 |
98
+ |------|------|------|
99
+ | PROJECT_STATUS.md | 已更新 | ✅ |
100
+ | TODO.md | 已同步 | ✅ |
101
+
102
+ ---
103
+
104
+ ## 📊 本次变更统计
105
+
106
+ ### PROJECT_STATUS.md 更新
107
+ - ✅ 新增已完成:X 项
108
+ - 🔄 更新进行中:X 项
109
+
110
+ ### TODO.md 联动更新
111
+ - ✅ 移至已完成:X 项
112
+ - 📋 新增待办:X 项
113
+
114
+ ---
115
+
116
+ ## 💡 下一步建议
117
+
118
+ ### 立即处理
119
+ \`/check\` # 检查代码规范
120
+ \`/progress\` # 查看详细进度
121
+
122
+ ### 日常操作
123
+ \`/dev 新功能名称\` # 继续开发新功能
124
+ \`/crud 表名\` # 为表生成代码
125
+ \`/add-todo 任务描述\` # 添加新的待办
126
+ ```
127
+
128
+ ---
129
+
130
+ ## 🔗 相关命令
131
+
132
+ | 命令 | 用途 | 何时使用 |
133
+ |------|------|---------|
134
+ | `/update-status` | 增量更新(当前) | 功能完成后立即使用 |
135
+ | `/sync` | 全量同步 | 每周一次定期整理 |
136
+ | `/progress` | 项目进度分析 | 了解完成情况 |
137
+ | `/check` | 代码规范检查 | 代码审查前 |
138
+ | `/add-todo` | 添加单个待办 | 临时添加任务 |
139
+
140
+ ---
141
+
142
+ ## 📌 最佳实践
143
+
144
+ ### ✅ 推荐做法
145
+
146
+ 1. **功能完成后立即更新**
147
+ ```bash
148
+ git push
149
+ /update-status
150
+ ```
151
+
152
+ 2. **利用每天的开始或结束**
153
+ - 早晨:`/update-status` 了解最新状态
154
+ - 下午:`/update-status` 汇总今天的工作
155
+
156
+ 3. **每周末进行全量同步**
157
+ ```bash
158
+ /sync
159
+ ```