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,366 @@
1
+ ---
2
+ name: store-pc
3
+ description: |
4
+ 前端状态管理指南。包含 Vuex Store 的创建和使用规范。
5
+
6
+ 触发场景:
7
+ - 创建/使用 Vuex Store
8
+ - Vuex 状态管理
9
+ - 跨组件数据共享
10
+ - 全局状态管理
11
+
12
+ 触发词:Vuex、store、mapState、mapActions、commit、dispatch、状态管理
13
+
14
+ 适用目录:/Users/xujiajun/Developer/frontProj/web/src/store/**
15
+ ---
16
+
17
+ # 前端状态管理指南
18
+
19
+ > **适用于**: 腾云智慧食堂管理系统前端项目(Vue 2.7.16 + Vuex 3.4.0)
20
+ >
21
+ > **Store 目录**: `/Users/xujiajun/Developer/frontProj/web/src/store/`
22
+
23
+ ---
24
+
25
+ ## 目录结构
26
+
27
+ ```
28
+ src/store/
29
+ ├── index.js # Store 入口(Vuex 初始化)
30
+ ├── getters.js # 全局 getters
31
+ └── modules/ # Store 模块(28个)
32
+ ├── user.js # 用户状态(最核心)
33
+ ├── app.js # 应用状态(语言/尺寸)
34
+ ├── permission.js # 权限路由管理
35
+ ├── tagsView.js # 标签页管理
36
+ ├── settings.js # 系统设置
37
+ ├── marketing.js # 营销状态
38
+ ├── order.js # 订单状态
39
+ ├── stock.js # 库存状态
40
+ ├── reportcenter.js # 报表状态
41
+ ├── account.js # 账户状态
42
+ ├── purchase.js # 采购状态
43
+ ├── chart.js # 图表状态
44
+ ├── notice.js # 通知状态
45
+ ├── upload.js # 上传状态
46
+ ├── menudish.js # 菜品状态
47
+ ├── supplyChain.js # 供应链状态
48
+ └── ... # 其他业务模块
49
+ ```
50
+
51
+ ---
52
+
53
+ ## 全局 Getters(getters.js)
54
+
55
+ ```javascript
56
+ // 常用全局 getters(可直接用 mapGetters 访问)
57
+ {
58
+ token, // 登录 token
59
+ name, // 用户名
60
+ userInfo, // 完整用户信息对象
61
+ permissions, // 权限列表
62
+ hasRoles, // 是否已加载角色(用于路由守卫)
63
+ permission_routes, // 已生成的权限路由
64
+ adminMerchant, // 是否为超级管理员商户
65
+ url, // API base URL
66
+ language, // 当前语言(zh/en)
67
+ size, // Element UI 组件尺寸
68
+ areaOptions, // 区域选项(来自 supplyChain)
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## 创建新 Store
75
+
76
+ ### 标准模板
77
+
78
+ ```javascript
79
+ // src/store/modules/xxx.js
80
+ import { getList, getDetail } from '@/api/xxx'
81
+
82
+ const state = {
83
+ list: [],
84
+ current: null,
85
+ loading: false,
86
+ total: 0
87
+ }
88
+
89
+ const mutations = {
90
+ SET_LIST: (state, list) => {
91
+ state.list = list
92
+ },
93
+ SET_CURRENT: (state, current) => {
94
+ state.current = current
95
+ },
96
+ SET_LOADING: (state, loading) => {
97
+ state.loading = loading
98
+ },
99
+ SET_TOTAL: (state, total) => {
100
+ state.total = total
101
+ }
102
+ }
103
+
104
+ const actions = {
105
+ /**
106
+ * 获取列表
107
+ */
108
+ async fetchList({ commit }, params) {
109
+ commit('SET_LOADING', true)
110
+ try {
111
+ const res = await getList({
112
+ page: { current: params.current || 1, size: params.size || 20 },
113
+ object: params
114
+ })
115
+ commit('SET_LIST', res.records || [])
116
+ commit('SET_TOTAL', res.total || 0)
117
+ return res
118
+ } finally {
119
+ commit('SET_LOADING', false)
120
+ }
121
+ },
122
+
123
+ /**
124
+ * 获取详情
125
+ */
126
+ async fetchDetail({ commit }, id) {
127
+ const res = await getDetail({ id })
128
+ commit('SET_CURRENT', res)
129
+ return res
130
+ },
131
+
132
+ /**
133
+ * 重置状态
134
+ */
135
+ reset({ commit }) {
136
+ commit('SET_LIST', [])
137
+ commit('SET_CURRENT', null)
138
+ commit('SET_TOTAL', 0)
139
+ }
140
+ }
141
+
142
+ const getters = {
143
+ list: state => state.list,
144
+ current: state => state.current,
145
+ loading: state => state.loading,
146
+ total: state => state.total
147
+ }
148
+
149
+ export default {
150
+ namespaced: true,
151
+ state,
152
+ mutations,
153
+ actions,
154
+ getters
155
+ }
156
+ ```
157
+
158
+ ### 在 index.js 中注册
159
+
160
+ ```javascript
161
+ // src/store/index.js
162
+ import xxx from './modules/xxx'
163
+
164
+ export default new Vuex.Store({
165
+ modules: {
166
+ // ... 其他模块
167
+ xxx
168
+ }
169
+ })
170
+ ```
171
+
172
+ ---
173
+
174
+ ## 使用 Store
175
+
176
+ ### 方式 1:直接访问
177
+
178
+ ```javascript
179
+ export default {
180
+ computed: {
181
+ list() {
182
+ return this.$store.state.xxx.list
183
+ },
184
+ loading() {
185
+ return this.$store.state.xxx.loading
186
+ },
187
+ // 使用全局 getter
188
+ token() {
189
+ return this.$store.getters.token
190
+ },
191
+ userInfo() {
192
+ return this.$store.getters.userInfo
193
+ }
194
+ },
195
+ methods: {
196
+ getData() {
197
+ this.$store.dispatch('xxx/fetchList', this.queryParams)
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ### 方式 2:mapState / mapGetters / mapActions
204
+
205
+ ```javascript
206
+ import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'
207
+
208
+ export default {
209
+ computed: {
210
+ // 模块内 state
211
+ ...mapState('xxx', ['list', 'loading', 'total']),
212
+
213
+ // 全局 getters
214
+ ...mapGetters(['token', 'userInfo', 'permissions', 'adminMerchant'])
215
+ },
216
+ methods: {
217
+ ...mapActions('xxx', ['fetchList', 'fetchDetail', 'reset']),
218
+
219
+ async getData() {
220
+ await this.fetchList({ ...this.queryParams, ...this.page })
221
+ }
222
+ },
223
+ mounted() {
224
+ this.getData()
225
+ }
226
+ }
227
+ ```
228
+
229
+ ---
230
+
231
+ ## 核心 Store 模块说明
232
+
233
+ ### user.js(用户状态)
234
+
235
+ 最重要的模块,包含:
236
+ - `state.token` - 登录 token
237
+ - `state.userInfo` - 完整用户信息(userId、roles、roleCode、merchantId 等)
238
+ - `state.hasRoles` - 是否已加载角色信息
239
+ - `state.adminMerchant` - 是否为超级管理员(`roleCode === 'ROLE_ADMIN'`)
240
+ - `state.merchantList` - 商户列表(管理员可切换商户)
241
+
242
+ ```javascript
243
+ // 在路由守卫中获取用户信息
244
+ const userInfo = await store.dispatch('user/getInfo')
245
+
246
+ // 登出
247
+ await store.dispatch('user/resetToken')
248
+ localStorage.clear()
249
+ locationHref()
250
+ ```
251
+
252
+ ### permission.js(权限路由)
253
+
254
+ - 根据用户角色动态生成路由
255
+ - `state.routes` - 完整路由表(用于菜单渲染)
256
+ - `state.addRoutes` - 动态添加的路由
257
+
258
+ ```javascript
259
+ // 在路由守卫中生成权限路由
260
+ const accessRoutes = await store.dispatch('permission/generateRoutes')
261
+ accessRoutes.forEach(route => {
262
+ router.addRoute(route)
263
+ })
264
+ ```
265
+
266
+ ### app.js(应用状态)
267
+
268
+ - `state.language` - 当前语言(zh/en)
269
+ - `state.size` - Element UI 组件尺寸
270
+
271
+ ---
272
+
273
+ ## 最佳实践
274
+
275
+ ### 1. 何时使用 Store
276
+
277
+ | 场景 | 是否使用 Store |
278
+ |------|---------------|
279
+ | 多个页面/组件共享的数据 | ✅ 使用 |
280
+ | 用户登录状态、权限 | ✅ 使用(user 模块) |
281
+ | 全局配置(语言、尺寸) | ✅ 使用(app 模块) |
282
+ | 页面内部状态(表单数据)| ❌ 用 data |
283
+ | 父子组件传值 | ❌ 用 props/emit |
284
+ | 兄弟组件通信(简单) | ❌ 用 eventBus |
285
+
286
+ ### 2. 命名规范
287
+
288
+ ```javascript
289
+ // ✅ 正确:Mutation 大写字母+下划线
290
+ const mutations = {
291
+ SET_LIST: (state, list) => { state.list = list },
292
+ SET_LOADING: (state, v) => { state.loading = v }
293
+ }
294
+
295
+ // ✅ 正确:Action 小驼峰
296
+ const actions = {
297
+ fetchList: async ({ commit }, params) => { },
298
+ fetchDetail: async ({ commit }, id) => { }
299
+ }
300
+
301
+ // ✅ 正确:模块文件名小写,匹配业务名
302
+ // store/modules/marketing.js
303
+ // store/modules/order.js
304
+ ```
305
+
306
+ ### 3. 登出时重置 Store
307
+
308
+ ```javascript
309
+ // 在 user store 中
310
+ const actions = {
311
+ async resetToken({ commit }) {
312
+ commit('SET_TOKEN', '')
313
+ commit('SET_HAS_ROLES', false)
314
+ removeToken()
315
+ removeTenant()
316
+ }
317
+ }
318
+
319
+ // 登出时(permission.js 路由守卫中)
320
+ await store.dispatch('user/resetToken')
321
+ localStorage.clear()
322
+ locationHref() // 使用全局 locationHref 跳转(不用 router.push)
323
+ ```
324
+
325
+ ### 4. 分页数据格式
326
+
327
+ ```javascript
328
+ // 后端返回的分页数据格式
329
+ {
330
+ records: [], // 数据列表(非 rows)
331
+ total: 100,
332
+ current: 1,
333
+ size: 20
334
+ }
335
+
336
+ // 请求分页参数格式
337
+ {
338
+ page: { current: 1, size: 20 },
339
+ object: { ...queryParams } // 查询条件
340
+ }
341
+ ```
342
+
343
+ ---
344
+
345
+ ## 参考文件
346
+
347
+ | Store | 路径 |
348
+ |-------|------|
349
+ | Store 入口 | `/Users/xujiajun/Developer/frontProj/web/src/store/index.js` |
350
+ | 全局 Getters | `/Users/xujiajun/Developer/frontProj/web/src/store/getters.js` |
351
+ | 用户 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/user.js` |
352
+ | 权限 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/permission.js` |
353
+ | 应用 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/app.js` |
354
+ | 设置 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/settings.js` |
355
+ | 标签页 Store | `/Users/xujiajun/Developer/frontProj/web/src/store/modules/tagsView.js` |
356
+
357
+ ---
358
+
359
+ ## 注意事项
360
+
361
+ 1. **本项目使用 Vuex 3.x**(非 Pinia),与 Vue 2 配套
362
+ 2. **Store 模块必须设置 `namespaced: true`**
363
+ 3. **异步操作放在 Actions 中**,同步操作放在 Mutations 中
364
+ 4. **分页数据用 `records`**,不是 `rows`(与 RuoYi 后端框架不同)
365
+ 5. **登出使用 `locationHref()`** 而非 `router.push('/login')`,目的是清除内存中的数据
366
+ 6. **`adminMerchant` 为 true 时**,用户是超级管理员(`roleCode === 'ROLE_ADMIN'`),可切换商户
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: task-tracker
3
+ description: |
4
+ 开发任务进度跟踪系统。当用户需要记录复杂开发任务的需求、步骤、进度时自动使用此 Skill。
5
+ 创建 Markdown 文档实现任务上下文持久化,支持中断后快速恢复。
6
+
7
+ 触发场景:
8
+ - 多步骤功能开发(需要跨会话)
9
+ - 复杂需求的步骤分解与跟踪
10
+ - 任务进度记录与更新
11
+ - 中断后的任务恢复
12
+ - 历史任务查询与归档
13
+
14
+ 触发词:创建任务、跟踪任务、记录进度、任务跟踪、继续任务、恢复任务、查看任务、归档任务、任务列表
15
+ ---
16
+
17
+ # 任务跟踪技能
18
+
19
+ ## 何时使用
20
+
21
+ ✅ 用户明确要求跟踪任务("创建任务跟踪"、"记录进度"、"跟踪这个任务")
22
+ ✅ 复杂的多步骤开发任务
23
+ ✅ 需要跨会话恢复的工作
24
+
25
+ ❌ 简单的单步操作
26
+ ❌ 纯咨询性对话
27
+
28
+ ## 目录结构
29
+
30
+ ```
31
+ {项目根目录}/
32
+ └── docs/
33
+ └── tasks/
34
+ ├── README.md # 使用说明(首次自动生成)
35
+ ├── active/ # 进行中的任务
36
+ │ └── task-20260121-153045-用户反馈.md
37
+ └── archive/ # 已完成的任务
38
+ └── 2026-01/
39
+ └── task-20260120-优惠券系统.md
40
+ ```
41
+
42
+ ## 文档模板
43
+
44
+ ```markdown
45
+ # 任务:{任务标题}
46
+
47
+ **状态**: 🟢 进行中 | 🔵 已完成 | 🔴 已暂停
48
+ **创建时间**: {YYYY-MM-DD HH:MM:SS}
49
+ **更新时间**: {YYYY-MM-DD HH:MM:SS}
50
+ **Git 分支**: {branch_name}
51
+
52
+ ---
53
+
54
+ ## 📋 需求描述
55
+
56
+ {用户原始需求的详细描述,包括背景、目标、约束条件}
57
+
58
+ ---
59
+
60
+ ## 🎯 实现步骤
61
+
62
+ - [ ] 1. {步骤1简述}
63
+ - **文件**: `path/to/file.ext`
64
+ - **说明**: {详细说明}
65
+
66
+ - [x] 2. {步骤2简述}
67
+ - **文件**: `another/file.ext`
68
+ - **说明**: {详细说明}
69
+ - **完成时间**: {YYYY-MM-DD HH:MM}
70
+
71
+ - [ ] 3. {步骤3简述}
72
+
73
+ ---
74
+
75
+ ## 📝 关键决策
76
+
77
+ - **模块归属**: {模块名称}
78
+ - **数据库表**: {表名前缀}
79
+ - **主键策略**: {ID生成方式}
80
+ - **技术选型**: {框架/库版本}
81
+
82
+ ---
83
+
84
+ ## 🔄 当前进度
85
+
86
+ **已完成**: {X} / {总数} 步骤 ({百分比}%)
87
+
88
+ **下一步操作**:
89
+ 1. {下一步具体要做的事情}
90
+ 2. {再下一步}
91
+
92
+ ---
93
+
94
+ ## 📁 相关文件
95
+
96
+ - `{文件路径}` - {文件用途}
97
+
98
+ ---
99
+
100
+ ## ⚠️ 注意事项
101
+
102
+ - {需要特别注意的点}
103
+ - {已知问题或风险}
104
+
105
+ ---
106
+
107
+ ## 💬 变更记录
108
+
109
+ ### {YYYY-MM-DD HH:MM}
110
+ - {本次更新内容}
111
+ ```
112
+
113
+ ## 核心操作
114
+
115
+ ### 1. 创建任务
116
+
117
+ **触发**:用户说"创建任务跟踪"、"记录这个任务"
118
+
119
+ **步骤**:
120
+ ```bash
121
+ # 1. 确保目录存在
122
+ mkdir -p docs/tasks/active docs/tasks/archive
123
+
124
+ # 2. 生成文件名
125
+ # 格式: task-{YYYYMMdd-HHMMSS}-{任务简称}.md
126
+ TIMESTAMP=$(date +%Y%m%d-%H%M%S)
127
+ SLUG="{任务标题简化版,截断30字符}"
128
+ FILENAME="task-${TIMESTAMP}-${SLUG}.md"
129
+
130
+ # 3. 创建文档
131
+ # 填充上述模板内容到 docs/tasks/active/$FILENAME
132
+
133
+ # 4. 首次使用时创建 README.md(如不存在)
134
+ ```
135
+
136
+ **README.md 内容**:
137
+ ```markdown
138
+ # 任务跟踪中心
139
+
140
+ ## 目录说明
141
+ - `active/` - 进行中的任务
142
+ - `archive/` - 已完成的任务(按月归档)
143
+
144
+ ## 使用方法
145
+ 1. Claude 自动创建任务跟踪文档
146
+ 2. 手动编辑文档更新进度(修改复选框)
147
+ 3. 任务完成后移动到 archive/{年-月}/
148
+
149
+ ## 快速恢复
150
+ ```bash
151
+ # 查看活跃任务
152
+ ls -1 active/
153
+
154
+ # 恢复任务
155
+ cat active/task-20260121-*.md
156
+ ```
157
+
158
+ ### 2. 更新进度
159
+
160
+ **触发**:用户说"更新进度"、"标记步骤X完成"
161
+
162
+ **步骤**:
163
+ ```bash
164
+ # 1. 找到当前任务文档(最新的那个)
165
+ TASK_FILE=$(ls -t docs/tasks/active/*.md | head -1)
166
+
167
+ # 2. 更新复选框: - [ ] → - [x]
168
+ sed -i "s/^- \[ \] ${STEP_NUMBER}\./- [x] ${STEP_NUMBER}./" "$TASK_FILE"
169
+
170
+ # 3. 更新时间戳
171
+ CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
172
+ sed -i "s/^\*\*更新时间\*\*:.*/\*\*更新时间\*\*: $CURRENT_TIME/" "$TASK_FILE"
173
+
174
+ # 4. 添加变更记录
175
+ echo -e "### $CURRENT_TIME\n- 完成步骤 $STEP_NUMBER: $DESCRIPTION" >> "$TASK_FILE"
176
+
177
+ # 5. 重新计算进度百分比
178
+ TOTAL=$(grep -c "^- \[.\]" "$TASK_FILE")
179
+ DONE=$(grep -c "^- \[x\]" "$TASK_FILE")
180
+ PERCENT=$((DONE * 100 / TOTAL))
181
+ ```
182
+
183
+ ### 3. 列出活跃任务
184
+
185
+ **触发**:用户说"有哪些任务"、"列出任务"
186
+
187
+ **步骤**:
188
+ ```bash
189
+ for file in docs/tasks/active/*.md; do
190
+ TITLE=$(grep "^# 任务:" "$file" | sed 's/^# 任务://')
191
+ STATUS=$(grep "^\*\*状态\*\*:" "$file" | sed 's/.*: //')
192
+ PROGRESS=$(grep "^\*\*已完成\*\*:" "$file" | sed 's/.*: //')
193
+
194
+ echo "📄 $TITLE"
195
+ echo " 状态: $STATUS | 进度: $PROGRESS"
196
+ echo " 文件: $file"
197
+ echo ""
198
+ done
199
+ ```
200
+
201
+ ### 4. 恢复任务
202
+
203
+ **触发**:用户说"继续上次的任务"、"恢复任务"
204
+
205
+ **步骤**:
206
+ ```bash
207
+ # 1. 确定要恢复的任务
208
+ if [ 用户指定了任务名 ]; then
209
+ TASK_FILE=$(find docs/tasks/active -name "*{用户指定的关键词}*.md" | head -1)
210
+ else
211
+ TASK_FILE=$(ls -t docs/tasks/active/*.md | head -1) # 最新的
212
+ fi
213
+
214
+ # 2. 读取文档内容
215
+ cat "$TASK_FILE"
216
+
217
+ # 3. 提取关键信息并向用户确认
218
+ TITLE=$(grep "^# 任务:" "$TASK_FILE" | sed 's/^# 任务://')
219
+ NEXT_STEPS=$(提取 "下一步操作" 部分)
220
+
221
+ # 4. 输出恢复信息
222
+ echo "正在恢复任务:$TITLE"
223
+ echo "下一步操作:"
224
+ echo "$NEXT_STEPS"
225
+ ```
226
+
227
+ ### 5. 归档任务
228
+
229
+ **触发**:用户说"任务完成"、"归档任务"
230
+
231
+ **步骤**:
232
+ ```bash
233
+ # 1. 更新状态
234
+ sed -i "s/^\*\*状态\*\*:.*/\*\*状态\*\*: 🔵 已完成/" "$TASK_FILE"
235
+
236
+ # 2. 移动到归档目录
237
+ YEAR_MONTH=$(date +%Y-%m)
238
+ mkdir -p "docs/tasks/archive/$YEAR_MONTH"
239
+ mv "$TASK_FILE" "docs/tasks/archive/$YEAR_MONTH/"
240
+
241
+ echo "✅ 已归档到: docs/tasks/archive/$YEAR_MONTH/"
242
+ ```
243
+
244
+ ## 使用示例
245
+
246
+ **场景1:创建任务**
247
+ ```
248
+ 用户: "创建一个用户反馈功能的任务跟踪"
249
+
250
+ Claude:
251
+ ✅ 创建文档: docs/tasks/active/task-20260121-153045-用户反馈.md
252
+ 📋 已记录需求描述
253
+ 🎯 列出5个实现步骤
254
+ 💡 开始第一步:设计数据库表结构
255
+ ```
256
+
257
+ **场景2:更新进度**
258
+ ```
259
+ 用户: "标记步骤1和2完成"
260
+
261
+ Claude:
262
+ ✅ 已更新进度: 2/5 (40%)
263
+ ⏰ 更新时间: 2026-01-21 16:45:30
264
+ 📌 下一步: 实现 Service 层
265
+ ```
266
+
267
+ **场景3:恢复任务**
268
+ ```
269
+ [用户重新打开窗口]
270
+ 用户: "继续上次的用户反馈功能"
271
+
272
+ Claude:
273
+ 📄 正在恢复任务:用户反馈管理功能
274
+ ✅ 已完成: 数据库设计、实体类创建 (2/5)
275
+ 📌 下一步: 实现 Service 层
276
+ 🔗 文件: docs/tasks/active/task-20260121-153045-用户反馈.md
277
+ ```
278
+
279
+ ## 最佳实践
280
+
281
+ **应该做**:
282
+ - ✅ 一个任务 = 一个完整功能开发
283
+ - ✅ 及时更新进度(完成一步更新一次)
284
+ - ✅ 详细记录关键决策
285
+ - ✅ 保留原始需求描述
286
+
287
+ **不应该做**:
288
+ - ❌ 为每个小改动创建任务
289
+ - ❌ 删除旧任务(归档即可)
290
+ - ❌ 自动归档(由用户决定)
291
+
292
+ ## 错误处理
293
+
294
+ **目录不存在** → 自动创建 `docs/tasks/active` 和 `archive`
295
+
296
+ **没有活跃任务** → 提示用户:创建新任务 | 恢复归档任务 | 查看历史
297
+
298
+ **文档格式错误** → 尽量解析,提示用户保持格式:
299
+ - 保持 `##` 标题层级
300
+ - 复选框格式:`- [ ]` 或 `- [x]`
301
+ - 不删除 `**字段**` 标记
302
+
303
+ ## 功能边界
304
+
305
+ **适用于**:单人开发、本地存储、快速恢复上下文
306
+
307
+ **不适用于**:多人协作、实时同步、复杂依赖管理(请使用专业项目管理工具)