leniu-dev 2.0.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 (670) hide show
  1. package/.claude/agents/auto-test-generator.md +315 -0
  2. package/.claude/agents/bug-analyzer.md +103 -0
  3. package/.claude/agents/code-reviewer.md +122 -0
  4. package/.claude/agents/code-scanner.md +145 -0
  5. package/.claude/agents/image-reader.md +154 -0
  6. package/.claude/agents/loki-runner.md +80 -0
  7. package/.claude/agents/mysql-runner.md +81 -0
  8. package/.claude/agents/project-manager.md +159 -0
  9. package/.claude/agents/requirements-analyzer.md +175 -0
  10. package/.claude/agents/task-fetcher.md +75 -0
  11. package/.claude/audio/completed.wav +0 -0
  12. package/.claude/commands/add-todo.md +255 -0
  13. package/.claude/commands/auto-test.md +252 -0
  14. package/.claude/commands/check.md +210 -0
  15. package/.claude/commands/crud.md +454 -0
  16. package/.claude/commands/dev.md +532 -0
  17. package/.claude/commands/init-config.md +154 -0
  18. package/.claude/commands/init-docs.md +681 -0
  19. package/.claude/commands/next.md +281 -0
  20. package/.claude/commands/opsx-apply.md +147 -0
  21. package/.claude/commands/opsx-archive.md +105 -0
  22. package/.claude/commands/opsx-bulk-archive.md +237 -0
  23. package/.claude/commands/opsx-continue.md +109 -0
  24. package/.claude/commands/opsx-explore.md +281 -0
  25. package/.claude/commands/opsx-ff.md +92 -0
  26. package/.claude/commands/opsx-new.md +65 -0
  27. package/.claude/commands/opsx-onboard.md +397 -0
  28. package/.claude/commands/opsx-sync.md +129 -0
  29. package/.claude/commands/opsx-verify.md +159 -0
  30. package/.claude/commands/progress.md +264 -0
  31. package/.claude/commands/release.md +109 -0
  32. package/.claude/commands/start.md +199 -0
  33. package/.claude/commands/sync.md +307 -0
  34. package/.claude/commands/update-status.md +428 -0
  35. package/.claude/docs/Mixin/344/275/277/347/224/250/346/214/207/345/215/227.md +299 -0
  36. package/.claude/docs/README.md +167 -0
  37. package/.claude/docs//345/211/215/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +599 -0
  38. package/.claude/docs//345/220/216/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +726 -0
  39. 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
  40. 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
  41. 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
  42. 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
  43. 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
  44. package/.claude/docs//346/241/206/346/236/266/350/257/264/346/230/216.md +393 -0
  45. package/.claude/docs//350/267/257/347/224/261/351/205/215/347/275/256/346/214/207/345/215/227.md +246 -0
  46. package/.claude/framework-config.json +73 -0
  47. package/.claude/hooks/lib/notify.js +310 -0
  48. package/.claude/hooks/pre-tool-use.js +117 -0
  49. package/.claude/hooks/skill-forced-eval.js +161 -0
  50. package/.claude/hooks/stop.js +55 -0
  51. package/.claude/notify-config.json +9 -0
  52. package/.claude/settings.json +57 -0
  53. package/.claude/skills/add-skill/SKILL.md +488 -0
  54. package/.claude/skills/analyze-requirements/SKILL.md +112 -0
  55. package/.claude/skills/api-development/SKILL.md +315 -0
  56. package/.claude/skills/architecture-design/SKILL.md +152 -0
  57. package/.claude/skills/auto-test/SKILL.md +625 -0
  58. package/.claude/skills/auto-test/references/api-conventions.md +260 -0
  59. package/.claude/skills/backend-annotations/SKILL.md +248 -0
  60. package/.claude/skills/banana-image/CHANGELOG.md +37 -0
  61. package/.claude/skills/banana-image/README.md +146 -0
  62. package/.claude/skills/banana-image/SKILL.md +171 -0
  63. package/.claude/skills/banana-image/assets/logo.png +0 -0
  64. package/.claude/skills/banana-image/references/advanced-usage.md +189 -0
  65. package/.claude/skills/banana-image/scripts/apply_template.py +125 -0
  66. package/.claude/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  67. package/.claude/skills/banana-image/scripts/batch_prep.py +82 -0
  68. package/.claude/skills/banana-image/scripts/package-lock.json +1437 -0
  69. package/.claude/skills/banana-image/scripts/package.json +18 -0
  70. package/.claude/skills/banana-image/scripts/requirements.txt +10 -0
  71. package/.claude/skills/banana-image/templates/poster.json +22 -0
  72. package/.claude/skills/banana-image/templates/product.json +17 -0
  73. package/.claude/skills/banana-image/templates/social.json +22 -0
  74. package/.claude/skills/banana-image/templates/thumbnail.json +17 -0
  75. package/.claude/skills/brainstorm/SKILL.md +216 -0
  76. package/.claude/skills/bug-detective/SKILL.md +295 -0
  77. package/.claude/skills/bug-detective/references/error-patterns.md +242 -0
  78. package/.claude/skills/chrome-cdp/SKILL.md +81 -0
  79. package/.claude/skills/chrome-cdp/scripts/cdp.mjs +838 -0
  80. package/.claude/skills/chrome-cdp/scripts/run-cdp.sh +7 -0
  81. package/.claude/skills/code-patterns/SKILL.md +163 -0
  82. package/.claude/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  83. package/.claude/skills/codex-code-review/SKILL.md +327 -0
  84. package/.claude/skills/collaborating-with-codex/SKILL.md +180 -0
  85. package/.claude/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  86. package/.claude/skills/collaborating-with-gemini/SKILL.md +194 -0
  87. package/.claude/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  88. package/.claude/skills/crud-development/SKILL.md +328 -0
  89. package/.claude/skills/data-permission/SKILL.md +221 -0
  90. package/.claude/skills/data-permission/references/custom-data-scope.md +90 -0
  91. package/.claude/skills/database-ops/SKILL.md +210 -0
  92. package/.claude/skills/error-handler/SKILL.md +310 -0
  93. package/.claude/skills/file-oss-management/SKILL.md +260 -0
  94. package/.claude/skills/file-oss-management/references/entities.md +105 -0
  95. package/.claude/skills/file-oss-management/references/service-impl.md +104 -0
  96. package/.claude/skills/fix-bug/SKILL.md +269 -0
  97. package/.claude/skills/git-workflow/SKILL.md +179 -0
  98. package/.claude/skills/jenkins-deploy/SKILL.md +134 -0
  99. package/.claude/skills/jenkins-deploy/assets/env_param.template.json +51 -0
  100. package/.claude/skills/jenkins-deploy/assets/jk_build.py +400 -0
  101. package/.claude/skills/json-serialization/SKILL.md +341 -0
  102. package/.claude/skills/lanhu-design/SKILL.md +99 -0
  103. package/.claude/skills/leniu-api-development/SKILL.md +319 -0
  104. package/.claude/skills/leniu-api-development/references/real-examples.md +273 -0
  105. package/.claude/skills/leniu-architecture-design/SKILL.md +383 -0
  106. package/.claude/skills/leniu-backend-annotations/SKILL.md +277 -0
  107. package/.claude/skills/leniu-brainstorm/SKILL.md +242 -0
  108. package/.claude/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  109. package/.claude/skills/leniu-code-patterns/SKILL.md +411 -0
  110. package/.claude/skills/leniu-crud-development/SKILL.md +404 -0
  111. package/.claude/skills/leniu-crud-development/references/templates.md +597 -0
  112. package/.claude/skills/leniu-customization-location/SKILL.md +410 -0
  113. package/.claude/skills/leniu-data-permission/SKILL.md +341 -0
  114. package/.claude/skills/leniu-database-ops/SKILL.md +426 -0
  115. package/.claude/skills/leniu-error-handler/SKILL.md +462 -0
  116. package/.claude/skills/leniu-java-concurrent/SKILL.md +400 -0
  117. package/.claude/skills/leniu-java-entity/SKILL.md +237 -0
  118. package/.claude/skills/leniu-java-entity/references/templates.md +237 -0
  119. package/.claude/skills/leniu-java-logging/SKILL.md +229 -0
  120. package/.claude/skills/leniu-java-logging/references/data-mask.md +46 -0
  121. package/.claude/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  122. package/.claude/skills/leniu-java-mq/SKILL.md +338 -0
  123. package/.claude/skills/leniu-java-mybatis/SKILL.md +267 -0
  124. package/.claude/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  125. package/.claude/skills/leniu-java-task/SKILL.md +367 -0
  126. package/.claude/skills/leniu-marketing-scenario/SKILL.md +448 -0
  127. package/.claude/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  128. package/.claude/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  129. package/.claude/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  130. package/.claude/skills/leniu-redis-cache/SKILL.md +331 -0
  131. package/.claude/skills/leniu-report-scenario/SKILL.md +508 -0
  132. package/.claude/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  133. package/.claude/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  134. package/.claude/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  135. package/.claude/skills/leniu-report-scenario/references/customization.md +356 -0
  136. package/.claude/skills/leniu-report-scenario/references/data-permission.md +182 -0
  137. package/.claude/skills/leniu-report-scenario/references/export.md +553 -0
  138. package/.claude/skills/leniu-report-scenario/references/mealtime.md +197 -0
  139. package/.claude/skills/leniu-report-scenario/references/query-param.md +274 -0
  140. package/.claude/skills/leniu-report-scenario/references/report-tables.md +162 -0
  141. package/.claude/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  142. package/.claude/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  143. package/.claude/skills/leniu-report-scenario/references/total-line.md +179 -0
  144. package/.claude/skills/leniu-security-guard/SKILL.md +306 -0
  145. package/.claude/skills/leniu-utils-toolkit/SKILL.md +380 -0
  146. package/.claude/skills/loki-log-query/SKILL.md +430 -0
  147. package/.claude/skills/mysql-debug/SKILL.md +406 -0
  148. package/.claude/skills/performance-doctor/SKILL.md +297 -0
  149. package/.claude/skills/project-navigator/SKILL.md +211 -0
  150. package/.claude/skills/redis-cache/SKILL.md +282 -0
  151. package/.claude/skills/redis-cache/references/listeners.md +23 -0
  152. package/.claude/skills/scheduled-jobs/SKILL.md +277 -0
  153. package/.claude/skills/security-guard/SKILL.md +245 -0
  154. package/.claude/skills/security-guard/references/encrypt-config.md +103 -0
  155. package/.claude/skills/security-guard/references/sensitive-strategies.md +42 -0
  156. package/.claude/skills/sms-mail/SKILL.md +346 -0
  157. package/.claude/skills/sms-mail/references/mail-config.md +88 -0
  158. package/.claude/skills/sms-mail/references/sms-config.md +74 -0
  159. package/.claude/skills/social-login/SKILL.md +328 -0
  160. package/.claude/skills/social-login/references/provider-configs.md +118 -0
  161. package/.claude/skills/store-pc/SKILL.md +366 -0
  162. package/.claude/skills/sync-back-merge/SKILL.md +66 -0
  163. package/.claude/skills/task-tracker/SKILL.md +307 -0
  164. package/.claude/skills/tech-decision/SKILL.md +393 -0
  165. package/.claude/skills/tenant-management/SKILL.md +272 -0
  166. package/.claude/skills/tenant-management/references/tenant-scenarios.md +91 -0
  167. package/.claude/skills/test-development/SKILL.md +301 -0
  168. package/.claude/skills/test-development/references/parameterized-examples.md +119 -0
  169. package/.claude/skills/ui-pc/SKILL.md +438 -0
  170. package/.claude/skills/utils-toolkit/SKILL.md +354 -0
  171. package/.claude/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  172. package/.claude/skills/websocket-sse/SKILL.md +350 -0
  173. package/.claude/skills/workflow-engine/SKILL.md +249 -0
  174. package/.claude/skills/yunxiao-task-management/SKILL.md +401 -0
  175. package/.claude/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  176. package/.claude/templates/env-config.md +27 -0
  177. package/.claude/templates//345/276/205/345/212/236/346/270/205/345/215/225/346/250/241/346/235/277.md +56 -0
  178. package/.claude/templates//351/234/200/346/261/202/346/226/207/346/241/243/346/250/241/346/235/277.md +85 -0
  179. package/.claude/templates//351/241/271/347/233/256/347/212/266/346/200/201/346/250/241/346/235/277.md +43 -0
  180. package/.codex/skills/add-skill/SKILL.md +488 -0
  181. package/.codex/skills/add-todo/SKILL.md +269 -0
  182. package/.codex/skills/analyze-requirements/SKILL.md +112 -0
  183. package/.codex/skills/api-development/SKILL.md +315 -0
  184. package/.codex/skills/architecture-design/SKILL.md +152 -0
  185. package/.codex/skills/auto-test/SKILL.md +453 -0
  186. package/.codex/skills/auto-test/references/api-conventions.md +260 -0
  187. package/.codex/skills/backend-annotations/SKILL.md +248 -0
  188. package/.codex/skills/banana-image/CHANGELOG.md +37 -0
  189. package/.codex/skills/banana-image/README.md +146 -0
  190. package/.codex/skills/banana-image/SKILL.md +171 -0
  191. package/.codex/skills/banana-image/assets/logo.png +0 -0
  192. package/.codex/skills/banana-image/references/advanced-usage.md +189 -0
  193. package/.codex/skills/banana-image/scripts/apply_template.py +125 -0
  194. package/.codex/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  195. package/.codex/skills/banana-image/scripts/batch_prep.py +82 -0
  196. package/.codex/skills/banana-image/scripts/package-lock.json +1437 -0
  197. package/.codex/skills/banana-image/scripts/package.json +18 -0
  198. package/.codex/skills/banana-image/scripts/requirements.txt +10 -0
  199. package/.codex/skills/banana-image/templates/poster.json +22 -0
  200. package/.codex/skills/banana-image/templates/product.json +17 -0
  201. package/.codex/skills/banana-image/templates/social.json +22 -0
  202. package/.codex/skills/banana-image/templates/thumbnail.json +17 -0
  203. package/.codex/skills/brainstorm/SKILL.md +216 -0
  204. package/.codex/skills/bug-detective/SKILL.md +295 -0
  205. package/.codex/skills/bug-detective/references/error-patterns.md +242 -0
  206. package/.codex/skills/check/SKILL.md +367 -0
  207. package/.codex/skills/code-patterns/SKILL.md +163 -0
  208. package/.codex/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  209. package/.codex/skills/collaborating-with-codex/SKILL.md +180 -0
  210. package/.codex/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  211. package/.codex/skills/collaborating-with-gemini/SKILL.md +194 -0
  212. package/.codex/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  213. package/.codex/skills/crud/SKILL.md +265 -0
  214. package/.codex/skills/crud-development/SKILL.md +328 -0
  215. package/.codex/skills/data-permission/SKILL.md +221 -0
  216. package/.codex/skills/data-permission/references/custom-data-scope.md +90 -0
  217. package/.codex/skills/database-ops/SKILL.md +210 -0
  218. package/.codex/skills/dev/SKILL.md +187 -0
  219. package/.codex/skills/error-handler/SKILL.md +310 -0
  220. package/.codex/skills/file-oss-management/SKILL.md +260 -0
  221. package/.codex/skills/file-oss-management/references/entities.md +105 -0
  222. package/.codex/skills/file-oss-management/references/service-impl.md +104 -0
  223. package/.codex/skills/fix-bug/SKILL.md +269 -0
  224. package/.codex/skills/git-workflow/SKILL.md +179 -0
  225. package/.codex/skills/init-docs/SKILL.md +194 -0
  226. package/.codex/skills/jenkins-deploy/SKILL.md +134 -0
  227. package/.codex/skills/json-serialization/SKILL.md +341 -0
  228. package/.codex/skills/lanhu-design/SKILL.md +99 -0
  229. package/.codex/skills/leniu-api-development/SKILL.md +319 -0
  230. package/.codex/skills/leniu-api-development/references/real-examples.md +273 -0
  231. package/.codex/skills/leniu-architecture-design/SKILL.md +383 -0
  232. package/.codex/skills/leniu-backend-annotations/SKILL.md +277 -0
  233. package/.codex/skills/leniu-brainstorm/SKILL.md +242 -0
  234. package/.codex/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  235. package/.codex/skills/leniu-code-patterns/SKILL.md +411 -0
  236. package/.codex/skills/leniu-crud-development/SKILL.md +404 -0
  237. package/.codex/skills/leniu-crud-development/references/templates.md +597 -0
  238. package/.codex/skills/leniu-customization-location/SKILL.md +410 -0
  239. package/.codex/skills/leniu-data-permission/SKILL.md +341 -0
  240. package/.codex/skills/leniu-database-ops/SKILL.md +426 -0
  241. package/.codex/skills/leniu-error-handler/SKILL.md +462 -0
  242. package/.codex/skills/leniu-java-amount-handling/SKILL.md +461 -0
  243. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  244. package/.codex/skills/leniu-java-concurrent/SKILL.md +400 -0
  245. package/.codex/skills/leniu-java-entity/SKILL.md +237 -0
  246. package/.codex/skills/leniu-java-entity/references/templates.md +237 -0
  247. package/.codex/skills/leniu-java-logging/SKILL.md +229 -0
  248. package/.codex/skills/leniu-java-logging/references/data-mask.md +46 -0
  249. package/.codex/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  250. package/.codex/skills/leniu-java-mq/SKILL.md +338 -0
  251. package/.codex/skills/leniu-java-mybatis/SKILL.md +267 -0
  252. package/.codex/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  253. package/.codex/skills/leniu-java-task/SKILL.md +367 -0
  254. package/.codex/skills/leniu-marketing-scenario/SKILL.md +448 -0
  255. package/.codex/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  256. package/.codex/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  257. package/.codex/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  258. package/.codex/skills/leniu-redis-cache/SKILL.md +331 -0
  259. package/.codex/skills/leniu-report-scenario/SKILL.md +508 -0
  260. package/.codex/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  261. package/.codex/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  262. package/.codex/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  263. package/.codex/skills/leniu-report-scenario/references/customization.md +356 -0
  264. package/.codex/skills/leniu-report-scenario/references/data-permission.md +182 -0
  265. package/.codex/skills/leniu-report-scenario/references/export.md +553 -0
  266. package/.codex/skills/leniu-report-scenario/references/mealtime.md +197 -0
  267. package/.codex/skills/leniu-report-scenario/references/query-param.md +274 -0
  268. package/.codex/skills/leniu-report-scenario/references/report-tables.md +162 -0
  269. package/.codex/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  270. package/.codex/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  271. package/.codex/skills/leniu-report-scenario/references/total-line.md +179 -0
  272. package/.codex/skills/leniu-security-guard/SKILL.md +306 -0
  273. package/.codex/skills/leniu-utils-toolkit/SKILL.md +380 -0
  274. package/.codex/skills/loki-log-query/SKILL.md +430 -0
  275. package/.codex/skills/loki-log-query/environments.json +45 -0
  276. package/.codex/skills/mysql-debug/SKILL.md +406 -0
  277. package/.codex/skills/next/SKILL.md +137 -0
  278. package/.codex/skills/openspec-apply-change/SKILL.md +165 -0
  279. package/.codex/skills/openspec-archive-change/SKILL.md +122 -0
  280. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  281. package/.codex/skills/openspec-continue-change/SKILL.md +126 -0
  282. package/.codex/skills/openspec-explore/SKILL.md +299 -0
  283. package/.codex/skills/openspec-ff-change/SKILL.md +109 -0
  284. package/.codex/skills/openspec-new-change/SKILL.md +82 -0
  285. package/.codex/skills/openspec-onboard/SKILL.md +414 -0
  286. package/.codex/skills/openspec-sync-specs/SKILL.md +146 -0
  287. package/.codex/skills/openspec-verify-change/SKILL.md +176 -0
  288. package/.codex/skills/performance-doctor/SKILL.md +297 -0
  289. package/.codex/skills/progress/SKILL.md +193 -0
  290. package/.codex/skills/project-navigator/SKILL.md +211 -0
  291. package/.codex/skills/redis-cache/SKILL.md +282 -0
  292. package/.codex/skills/redis-cache/references/listeners.md +23 -0
  293. package/.codex/skills/scheduled-jobs/SKILL.md +277 -0
  294. package/.codex/skills/security-guard/SKILL.md +245 -0
  295. package/.codex/skills/security-guard/references/encrypt-config.md +103 -0
  296. package/.codex/skills/security-guard/references/sensitive-strategies.md +42 -0
  297. package/.codex/skills/skill-creator/LICENSE.txt +202 -0
  298. package/.codex/skills/skill-creator/SKILL.md +479 -0
  299. package/.codex/skills/skill-creator/agents/analyzer.md +274 -0
  300. package/.codex/skills/skill-creator/agents/comparator.md +202 -0
  301. package/.codex/skills/skill-creator/agents/grader.md +223 -0
  302. package/.codex/skills/skill-creator/assets/eval_review.html +146 -0
  303. package/.codex/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  304. package/.codex/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  305. package/.codex/skills/skill-creator/references/schemas.md +430 -0
  306. package/.codex/skills/skill-creator/scripts/__init__.py +0 -0
  307. package/.codex/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  308. package/.codex/skills/skill-creator/scripts/generate_report.py +326 -0
  309. package/.codex/skills/skill-creator/scripts/improve_description.py +248 -0
  310. package/.codex/skills/skill-creator/scripts/package_skill.py +136 -0
  311. package/.codex/skills/skill-creator/scripts/quick_validate.py +103 -0
  312. package/.codex/skills/skill-creator/scripts/run_eval.py +310 -0
  313. package/.codex/skills/skill-creator/scripts/run_loop.py +332 -0
  314. package/.codex/skills/skill-creator/scripts/utils.py +47 -0
  315. package/.codex/skills/sms-mail/SKILL.md +346 -0
  316. package/.codex/skills/sms-mail/references/mail-config.md +88 -0
  317. package/.codex/skills/sms-mail/references/sms-config.md +74 -0
  318. package/.codex/skills/social-login/SKILL.md +328 -0
  319. package/.codex/skills/social-login/references/provider-configs.md +118 -0
  320. package/.codex/skills/start/SKILL.md +154 -0
  321. package/.codex/skills/store-pc/SKILL.md +366 -0
  322. package/.codex/skills/sync/SKILL.md +149 -0
  323. package/.codex/skills/sync-back-merge/SKILL.md +66 -0
  324. package/.codex/skills/task-tracker/SKILL.md +307 -0
  325. package/.codex/skills/tech-decision/SKILL.md +393 -0
  326. package/.codex/skills/tenant-management/SKILL.md +272 -0
  327. package/.codex/skills/tenant-management/references/tenant-scenarios.md +91 -0
  328. package/.codex/skills/test-development/SKILL.md +301 -0
  329. package/.codex/skills/test-development/references/parameterized-examples.md +119 -0
  330. package/.codex/skills/ui-pc/SKILL.md +438 -0
  331. package/.codex/skills/update-status/SKILL.md +159 -0
  332. package/.codex/skills/utils-toolkit/SKILL.md +354 -0
  333. package/.codex/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  334. package/.codex/skills/websocket-sse/SKILL.md +350 -0
  335. package/.codex/skills/workflow-engine/SKILL.md +249 -0
  336. package/.codex/skills/yunxiao-task-management/SKILL.md +401 -0
  337. package/.codex/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  338. package/.cursor/agents/bug-analyzer.md +102 -0
  339. package/.cursor/agents/code-reviewer.md +122 -0
  340. package/.cursor/agents/code-scanner.md +145 -0
  341. package/.cursor/agents/image-reader.md +154 -0
  342. package/.cursor/agents/loki-runner.md +80 -0
  343. package/.cursor/agents/mysql-runner.md +81 -0
  344. package/.cursor/agents/project-manager.md +159 -0
  345. package/.cursor/agents/requirements-analyzer.md +141 -0
  346. package/.cursor/agents/task-fetcher.md +75 -0
  347. package/.cursor/audio/completed.wav +0 -0
  348. package/.cursor/commands/opsx-apply.md +152 -0
  349. package/.cursor/commands/opsx-archive.md +157 -0
  350. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  351. package/.cursor/commands/opsx-continue.md +114 -0
  352. package/.cursor/commands/opsx-explore.md +174 -0
  353. package/.cursor/commands/opsx-ff.md +94 -0
  354. package/.cursor/commands/opsx-new.md +69 -0
  355. package/.cursor/commands/opsx-onboard.md +525 -0
  356. package/.cursor/commands/opsx-sync.md +134 -0
  357. package/.cursor/commands/opsx-verify.md +164 -0
  358. package/.cursor/hooks/cursor-pre-tool-use.js +122 -0
  359. package/.cursor/hooks/cursor-skill-eval.js +466 -0
  360. package/.cursor/hooks/lib/notify.js +310 -0
  361. package/.cursor/hooks/stop.js +55 -0
  362. package/.cursor/hooks.json +23 -0
  363. package/.cursor/mcp.json +22 -0
  364. package/.cursor/rules/skill-activation.mdc +99 -0
  365. package/.cursor/skills/add-skill/SKILL.md +488 -0
  366. package/.cursor/skills/analyze-requirements/SKILL.md +112 -0
  367. package/.cursor/skills/api-development/SKILL.md +315 -0
  368. package/.cursor/skills/architecture-design/SKILL.md +152 -0
  369. package/.cursor/skills/auto-test/SKILL.md +453 -0
  370. package/.cursor/skills/auto-test/references/api-conventions.md +260 -0
  371. package/.cursor/skills/backend-annotations/SKILL.md +248 -0
  372. package/.cursor/skills/banana-image/CHANGELOG.md +37 -0
  373. package/.cursor/skills/banana-image/README.md +146 -0
  374. package/.cursor/skills/banana-image/SKILL.md +171 -0
  375. package/.cursor/skills/banana-image/assets/logo.png +0 -0
  376. package/.cursor/skills/banana-image/references/advanced-usage.md +189 -0
  377. package/.cursor/skills/banana-image/scripts/apply_template.py +125 -0
  378. package/.cursor/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  379. package/.cursor/skills/banana-image/scripts/batch_prep.py +82 -0
  380. package/.cursor/skills/banana-image/scripts/package-lock.json +1437 -0
  381. package/.cursor/skills/banana-image/scripts/package.json +18 -0
  382. package/.cursor/skills/banana-image/scripts/requirements.txt +10 -0
  383. package/.cursor/skills/banana-image/templates/poster.json +22 -0
  384. package/.cursor/skills/banana-image/templates/product.json +17 -0
  385. package/.cursor/skills/banana-image/templates/social.json +22 -0
  386. package/.cursor/skills/banana-image/templates/thumbnail.json +17 -0
  387. package/.cursor/skills/brainstorm/SKILL.md +216 -0
  388. package/.cursor/skills/bug-detective/SKILL.md +295 -0
  389. package/.cursor/skills/bug-detective/references/error-patterns.md +242 -0
  390. package/.cursor/skills/code-patterns/SKILL.md +163 -0
  391. package/.cursor/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  392. package/.cursor/skills/collaborating-with-codex/SKILL.md +180 -0
  393. package/.cursor/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  394. package/.cursor/skills/collaborating-with-gemini/SKILL.md +194 -0
  395. package/.cursor/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  396. package/.cursor/skills/crud-development/SKILL.md +328 -0
  397. package/.cursor/skills/data-permission/SKILL.md +221 -0
  398. package/.cursor/skills/data-permission/references/custom-data-scope.md +90 -0
  399. package/.cursor/skills/database-ops/SKILL.md +210 -0
  400. package/.cursor/skills/error-handler/SKILL.md +310 -0
  401. package/.cursor/skills/file-oss-management/SKILL.md +260 -0
  402. package/.cursor/skills/file-oss-management/references/entities.md +105 -0
  403. package/.cursor/skills/file-oss-management/references/service-impl.md +104 -0
  404. package/.cursor/skills/fix-bug/SKILL.md +269 -0
  405. package/.cursor/skills/git-workflow/SKILL.md +179 -0
  406. package/.cursor/skills/jenkins-deploy/SKILL.md +134 -0
  407. package/.cursor/skills/json-serialization/SKILL.md +341 -0
  408. package/.cursor/skills/lanhu-design/SKILL.md +99 -0
  409. package/.cursor/skills/leniu-api-development/SKILL.md +319 -0
  410. package/.cursor/skills/leniu-api-development/references/real-examples.md +273 -0
  411. package/.cursor/skills/leniu-architecture-design/SKILL.md +383 -0
  412. package/.cursor/skills/leniu-backend-annotations/SKILL.md +277 -0
  413. package/.cursor/skills/leniu-brainstorm/SKILL.md +242 -0
  414. package/.cursor/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  415. package/.cursor/skills/leniu-code-patterns/SKILL.md +411 -0
  416. package/.cursor/skills/leniu-crud-development/SKILL.md +404 -0
  417. package/.cursor/skills/leniu-crud-development/references/templates.md +597 -0
  418. package/.cursor/skills/leniu-customization-location/SKILL.md +410 -0
  419. package/.cursor/skills/leniu-data-permission/SKILL.md +341 -0
  420. package/.cursor/skills/leniu-database-ops/SKILL.md +426 -0
  421. package/.cursor/skills/leniu-error-handler/SKILL.md +462 -0
  422. package/.cursor/skills/leniu-java-amount-handling/SKILL.md +461 -0
  423. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  424. package/.cursor/skills/leniu-java-concurrent/SKILL.md +400 -0
  425. package/.cursor/skills/leniu-java-entity/SKILL.md +237 -0
  426. package/.cursor/skills/leniu-java-entity/references/templates.md +237 -0
  427. package/.cursor/skills/leniu-java-logging/SKILL.md +229 -0
  428. package/.cursor/skills/leniu-java-logging/references/data-mask.md +46 -0
  429. package/.cursor/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  430. package/.cursor/skills/leniu-java-mq/SKILL.md +338 -0
  431. package/.cursor/skills/leniu-java-mybatis/SKILL.md +267 -0
  432. package/.cursor/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  433. package/.cursor/skills/leniu-java-task/SKILL.md +367 -0
  434. package/.cursor/skills/leniu-marketing-scenario/SKILL.md +448 -0
  435. package/.cursor/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  436. package/.cursor/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  437. package/.cursor/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  438. package/.cursor/skills/leniu-redis-cache/SKILL.md +331 -0
  439. package/.cursor/skills/leniu-report-scenario/SKILL.md +508 -0
  440. package/.cursor/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  441. package/.cursor/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  442. package/.cursor/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  443. package/.cursor/skills/leniu-report-scenario/references/customization.md +356 -0
  444. package/.cursor/skills/leniu-report-scenario/references/data-permission.md +182 -0
  445. package/.cursor/skills/leniu-report-scenario/references/export.md +553 -0
  446. package/.cursor/skills/leniu-report-scenario/references/mealtime.md +197 -0
  447. package/.cursor/skills/leniu-report-scenario/references/query-param.md +274 -0
  448. package/.cursor/skills/leniu-report-scenario/references/report-tables.md +162 -0
  449. package/.cursor/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  450. package/.cursor/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  451. package/.cursor/skills/leniu-report-scenario/references/total-line.md +179 -0
  452. package/.cursor/skills/leniu-security-guard/SKILL.md +306 -0
  453. package/.cursor/skills/leniu-utils-toolkit/SKILL.md +380 -0
  454. package/.cursor/skills/loki-log-query/SKILL.md +430 -0
  455. package/.cursor/skills/loki-log-query/environments.json +45 -0
  456. package/.cursor/skills/mysql-debug/SKILL.md +406 -0
  457. package/.cursor/skills/openspec-apply-change/SKILL.md +165 -0
  458. package/.cursor/skills/openspec-archive-change/SKILL.md +122 -0
  459. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  460. package/.cursor/skills/openspec-continue-change/SKILL.md +126 -0
  461. package/.cursor/skills/openspec-explore/SKILL.md +299 -0
  462. package/.cursor/skills/openspec-ff-change/SKILL.md +109 -0
  463. package/.cursor/skills/openspec-new-change/SKILL.md +82 -0
  464. package/.cursor/skills/openspec-onboard/SKILL.md +414 -0
  465. package/.cursor/skills/openspec-sync-specs/SKILL.md +146 -0
  466. package/.cursor/skills/openspec-verify-change/SKILL.md +176 -0
  467. package/.cursor/skills/performance-doctor/SKILL.md +297 -0
  468. package/.cursor/skills/project-navigator/SKILL.md +211 -0
  469. package/.cursor/skills/redis-cache/SKILL.md +282 -0
  470. package/.cursor/skills/redis-cache/references/listeners.md +23 -0
  471. package/.cursor/skills/scheduled-jobs/SKILL.md +277 -0
  472. package/.cursor/skills/security-guard/SKILL.md +245 -0
  473. package/.cursor/skills/security-guard/references/encrypt-config.md +103 -0
  474. package/.cursor/skills/security-guard/references/sensitive-strategies.md +42 -0
  475. package/.cursor/skills/skill-creator/LICENSE.txt +202 -0
  476. package/.cursor/skills/skill-creator/SKILL.md +479 -0
  477. package/.cursor/skills/skill-creator/agents/analyzer.md +274 -0
  478. package/.cursor/skills/skill-creator/agents/comparator.md +202 -0
  479. package/.cursor/skills/skill-creator/agents/grader.md +223 -0
  480. package/.cursor/skills/skill-creator/assets/eval_review.html +146 -0
  481. package/.cursor/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  482. package/.cursor/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  483. package/.cursor/skills/skill-creator/references/schemas.md +430 -0
  484. package/.cursor/skills/skill-creator/scripts/__init__.py +0 -0
  485. package/.cursor/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  486. package/.cursor/skills/skill-creator/scripts/generate_report.py +326 -0
  487. package/.cursor/skills/skill-creator/scripts/improve_description.py +248 -0
  488. package/.cursor/skills/skill-creator/scripts/package_skill.py +136 -0
  489. package/.cursor/skills/skill-creator/scripts/quick_validate.py +103 -0
  490. package/.cursor/skills/skill-creator/scripts/run_eval.py +310 -0
  491. package/.cursor/skills/skill-creator/scripts/run_loop.py +332 -0
  492. package/.cursor/skills/skill-creator/scripts/utils.py +47 -0
  493. package/.cursor/skills/sms-mail/SKILL.md +346 -0
  494. package/.cursor/skills/sms-mail/references/mail-config.md +88 -0
  495. package/.cursor/skills/sms-mail/references/sms-config.md +74 -0
  496. package/.cursor/skills/social-login/SKILL.md +328 -0
  497. package/.cursor/skills/social-login/references/provider-configs.md +118 -0
  498. package/.cursor/skills/store-pc/SKILL.md +366 -0
  499. package/.cursor/skills/sync-back-merge/SKILL.md +66 -0
  500. package/.cursor/skills/task-tracker/SKILL.md +307 -0
  501. package/.cursor/skills/tech-decision/SKILL.md +393 -0
  502. package/.cursor/skills/tenant-management/SKILL.md +272 -0
  503. package/.cursor/skills/tenant-management/references/tenant-scenarios.md +91 -0
  504. package/.cursor/skills/test-development/SKILL.md +301 -0
  505. package/.cursor/skills/test-development/references/parameterized-examples.md +119 -0
  506. package/.cursor/skills/ui-pc/SKILL.md +438 -0
  507. package/.cursor/skills/utils-toolkit/SKILL.md +354 -0
  508. package/.cursor/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  509. package/.cursor/skills/websocket-sse/SKILL.md +350 -0
  510. package/.cursor/skills/workflow-engine/SKILL.md +249 -0
  511. package/.cursor/skills/yunxiao-task-management/SKILL.md +401 -0
  512. package/.cursor/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  513. package/.cursor/templates/env-config.md +27 -0
  514. package/AGENTS.md +275 -0
  515. package/CLAUDE.md +285 -0
  516. package/README.md +104 -0
  517. package/bin/index.js +3069 -0
  518. package/init.sh +178 -0
  519. package/package.json +40 -0
  520. package/scripts/build-skills.js +180 -0
  521. package/src/platform-map.json +100 -0
  522. package/src/skills/add-skill/SKILL.md +488 -0
  523. package/src/skills/add-todo/SKILL.md +269 -0
  524. package/src/skills/analyze-requirements/SKILL.md +112 -0
  525. package/src/skills/api-development/SKILL.md +315 -0
  526. package/src/skills/architecture-design/SKILL.md +152 -0
  527. package/src/skills/backend-annotations/SKILL.md +248 -0
  528. package/src/skills/banana-image/CHANGELOG.md +37 -0
  529. package/src/skills/banana-image/README.md +146 -0
  530. package/src/skills/banana-image/SKILL.md +171 -0
  531. package/src/skills/banana-image/assets/logo.png +0 -0
  532. package/src/skills/banana-image/references/advanced-usage.md +189 -0
  533. package/src/skills/banana-image/scripts/apply_template.py +125 -0
  534. package/src/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  535. package/src/skills/banana-image/scripts/batch_prep.py +82 -0
  536. package/src/skills/banana-image/scripts/package-lock.json +1437 -0
  537. package/src/skills/banana-image/scripts/package.json +18 -0
  538. package/src/skills/banana-image/scripts/requirements.txt +10 -0
  539. package/src/skills/banana-image/templates/poster.json +22 -0
  540. package/src/skills/banana-image/templates/product.json +17 -0
  541. package/src/skills/banana-image/templates/social.json +22 -0
  542. package/src/skills/banana-image/templates/thumbnail.json +17 -0
  543. package/src/skills/brainstorm/SKILL.md +216 -0
  544. package/src/skills/bug-detective/SKILL.md +295 -0
  545. package/src/skills/bug-detective/references/error-patterns.md +242 -0
  546. package/src/skills/check/SKILL.md +367 -0
  547. package/src/skills/code-patterns/SKILL.md +163 -0
  548. package/src/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  549. package/src/skills/codex-code-review/SKILL.md +327 -0
  550. package/src/skills/collaborating-with-codex/SKILL.md +180 -0
  551. package/src/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  552. package/src/skills/collaborating-with-gemini/SKILL.md +194 -0
  553. package/src/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  554. package/src/skills/crud/SKILL.md +265 -0
  555. package/src/skills/crud-development/SKILL.md +328 -0
  556. package/src/skills/data-permission/SKILL.md +221 -0
  557. package/src/skills/data-permission/references/custom-data-scope.md +90 -0
  558. package/src/skills/database-ops/SKILL.md +210 -0
  559. package/src/skills/dev/SKILL.md +187 -0
  560. package/src/skills/error-handler/SKILL.md +310 -0
  561. package/src/skills/file-oss-management/SKILL.md +260 -0
  562. package/src/skills/file-oss-management/references/entities.md +105 -0
  563. package/src/skills/file-oss-management/references/service-impl.md +104 -0
  564. package/src/skills/fix-bug/SKILL.md +269 -0
  565. package/src/skills/git-workflow/SKILL.md +179 -0
  566. package/src/skills/init-docs/SKILL.md +194 -0
  567. package/src/skills/json-serialization/SKILL.md +341 -0
  568. package/src/skills/leniu-api-development/SKILL.md +319 -0
  569. package/src/skills/leniu-api-development/references/real-examples.md +273 -0
  570. package/src/skills/leniu-architecture-design/SKILL.md +383 -0
  571. package/src/skills/leniu-backend-annotations/SKILL.md +277 -0
  572. package/src/skills/leniu-brainstorm/SKILL.md +242 -0
  573. package/src/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  574. package/src/skills/leniu-code-patterns/SKILL.md +411 -0
  575. package/src/skills/leniu-crud-development/SKILL.md +404 -0
  576. package/src/skills/leniu-crud-development/references/templates.md +597 -0
  577. package/src/skills/leniu-customization-location/SKILL.md +410 -0
  578. package/src/skills/leniu-data-permission/SKILL.md +341 -0
  579. package/src/skills/leniu-database-ops/SKILL.md +426 -0
  580. package/src/skills/leniu-error-handler/SKILL.md +462 -0
  581. package/src/skills/leniu-java-amount-handling/SKILL.md +461 -0
  582. package/src/skills/leniu-java-code-style/SKILL.md +510 -0
  583. package/src/skills/leniu-java-concurrent/SKILL.md +400 -0
  584. package/src/skills/leniu-java-entity/SKILL.md +237 -0
  585. package/src/skills/leniu-java-entity/references/templates.md +237 -0
  586. package/src/skills/leniu-java-export/SKILL.md +570 -0
  587. package/src/skills/leniu-java-logging/SKILL.md +229 -0
  588. package/src/skills/leniu-java-logging/references/data-mask.md +46 -0
  589. package/src/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  590. package/src/skills/leniu-java-mq/SKILL.md +338 -0
  591. package/src/skills/leniu-java-mybatis/SKILL.md +267 -0
  592. package/src/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  593. package/src/skills/leniu-java-report-query-param/SKILL.md +291 -0
  594. package/src/skills/leniu-java-task/SKILL.md +367 -0
  595. package/src/skills/leniu-java-total-line/SKILL.md +196 -0
  596. package/src/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  597. package/src/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  598. package/src/skills/leniu-mealtime/SKILL.md +215 -0
  599. package/src/skills/leniu-redis-cache/SKILL.md +331 -0
  600. package/src/skills/leniu-report-customization/SKILL.md +415 -0
  601. package/src/skills/leniu-report-customization/references/table-fields.md +93 -0
  602. package/src/skills/leniu-report-standard-customization/SKILL.md +391 -0
  603. package/src/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  604. package/src/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  605. package/src/skills/leniu-security-guard/SKILL.md +306 -0
  606. package/src/skills/leniu-utils-toolkit/SKILL.md +380 -0
  607. package/src/skills/loki-log-query/SKILL.md +400 -0
  608. package/src/skills/loki-log-query/environments.json +45 -0
  609. package/src/skills/mysql-debug/SKILL.md +400 -0
  610. package/src/skills/next/SKILL.md +137 -0
  611. package/src/skills/openspec-apply-change/SKILL.md +165 -0
  612. package/src/skills/openspec-archive-change/SKILL.md +122 -0
  613. package/src/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  614. package/src/skills/openspec-continue-change/SKILL.md +126 -0
  615. package/src/skills/openspec-explore/SKILL.md +299 -0
  616. package/src/skills/openspec-ff-change/SKILL.md +109 -0
  617. package/src/skills/openspec-new-change/SKILL.md +82 -0
  618. package/src/skills/openspec-onboard/SKILL.md +414 -0
  619. package/src/skills/openspec-sync-specs/SKILL.md +146 -0
  620. package/src/skills/openspec-verify-change/SKILL.md +176 -0
  621. package/src/skills/performance-doctor/SKILL.md +297 -0
  622. package/src/skills/progress/SKILL.md +193 -0
  623. package/src/skills/project-navigator/SKILL.md +211 -0
  624. package/src/skills/redis-cache/SKILL.md +282 -0
  625. package/src/skills/redis-cache/references/listeners.md +23 -0
  626. package/src/skills/scheduled-jobs/SKILL.md +277 -0
  627. package/src/skills/security-guard/SKILL.md +245 -0
  628. package/src/skills/security-guard/references/encrypt-config.md +103 -0
  629. package/src/skills/security-guard/references/sensitive-strategies.md +42 -0
  630. package/src/skills/skill-creator/LICENSE.txt +202 -0
  631. package/src/skills/skill-creator/SKILL.md +479 -0
  632. package/src/skills/skill-creator/agents/analyzer.md +274 -0
  633. package/src/skills/skill-creator/agents/comparator.md +202 -0
  634. package/src/skills/skill-creator/agents/grader.md +223 -0
  635. package/src/skills/skill-creator/assets/eval_review.html +146 -0
  636. package/src/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  637. package/src/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  638. package/src/skills/skill-creator/references/schemas.md +430 -0
  639. package/src/skills/skill-creator/scripts/__init__.py +0 -0
  640. package/src/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  641. package/src/skills/skill-creator/scripts/generate_report.py +326 -0
  642. package/src/skills/skill-creator/scripts/improve_description.py +248 -0
  643. package/src/skills/skill-creator/scripts/package_skill.py +136 -0
  644. package/src/skills/skill-creator/scripts/quick_validate.py +103 -0
  645. package/src/skills/skill-creator/scripts/run_eval.py +310 -0
  646. package/src/skills/skill-creator/scripts/run_loop.py +332 -0
  647. package/src/skills/skill-creator/scripts/utils.py +47 -0
  648. package/src/skills/sms-mail/SKILL.md +346 -0
  649. package/src/skills/sms-mail/references/mail-config.md +88 -0
  650. package/src/skills/sms-mail/references/sms-config.md +74 -0
  651. package/src/skills/social-login/SKILL.md +328 -0
  652. package/src/skills/social-login/references/provider-configs.md +118 -0
  653. package/src/skills/start/SKILL.md +154 -0
  654. package/src/skills/store-pc/SKILL.md +366 -0
  655. package/src/skills/sync/SKILL.md +149 -0
  656. package/src/skills/sync-back-merge/SKILL.md +66 -0
  657. package/src/skills/task-tracker/SKILL.md +307 -0
  658. package/src/skills/tech-decision/SKILL.md +393 -0
  659. package/src/skills/tenant-management/SKILL.md +272 -0
  660. package/src/skills/tenant-management/references/tenant-scenarios.md +91 -0
  661. package/src/skills/test-development/SKILL.md +301 -0
  662. package/src/skills/test-development/references/parameterized-examples.md +119 -0
  663. package/src/skills/ui-pc/SKILL.md +438 -0
  664. package/src/skills/update-status/SKILL.md +159 -0
  665. package/src/skills/utils-toolkit/SKILL.md +354 -0
  666. package/src/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  667. package/src/skills/websocket-sse/SKILL.md +350 -0
  668. package/src/skills/workflow-engine/SKILL.md +249 -0
  669. package/src/skills/yunxiao-task-management/SKILL.md +401 -0
  670. package/src/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
@@ -0,0 +1,350 @@
1
+ ---
2
+ name: websocket-sse
3
+ description: |
4
+ 通用实时通信开发指南。涵盖 WebSocket 双向通信和 SSE 服务端推送的原生 Spring 实现。
5
+ 触发场景:
6
+ - 实现服务端向客户端推送消息
7
+ - 实现双向实时通信(聊天、协作)
8
+ - 管理用户在线状态
9
+ - 实现系统通知、状态变更实时推送
10
+ - 多实例部署环境下消息同步
11
+ 触发词:WebSocket、SSE、实时推送、消息通知、在线状态、双向通信、Server-Sent Events、SseEmitter、消息推送
12
+ 注意:如果项目有专属技能,优先使用专属版本。
13
+ ---
14
+
15
+ # 实时通信开发指南(WebSocket & SSE)
16
+
17
+ > 通用模板。如果项目有专属技能,优先使用。
18
+
19
+ ## 设计原则
20
+
21
+ 1. **选择合适的协议**:单向推送用 SSE,双向通信用 WebSocket。
22
+ 2. **认证不可少**:连接建立时必须验证身份(Token / Session)。
23
+ 3. **多实例支持**:通过 Redis Pub/Sub 或消息队列同步跨实例消息。
24
+ 4. **优雅降级**:客户端应处理断线重连、消息丢失等异常场景。
25
+
26
+ ---
27
+
28
+ ## 方案对比
29
+
30
+ | 维度 | WebSocket | SSE (Server-Sent Events) |
31
+ |------|-----------|--------------------------|
32
+ | 通信方向 | 双向(全双工) | 单向(服务端 -> 客户端) |
33
+ | 协议 | `ws://` / `wss://` | HTTP(长连接) |
34
+ | 浏览器支持 | 所有现代浏览器 | 所有现代浏览器(IE 除外) |
35
+ | 自动重连 | 需手动实现 | 浏览器原生支持 |
36
+ | 数据格式 | 二进制 / 文本 | 文本(通常 JSON) |
37
+ | 代理兼容 | 可能需特殊配置 | 天然 HTTP 兼容 |
38
+ | 适用场景 | 聊天、协作编辑、游戏 | 通知推送、状态更新、AI 流式响应 |
39
+
40
+ ### 选型决策
41
+
42
+ ```
43
+ 需要客户端向服务端发送数据?
44
+ ├── 是 → WebSocket
45
+ └── 否 → 需要二进制数据传输?
46
+ ├── 是 → WebSocket
47
+ └── 否 → SSE(更简单、更稳定)
48
+ ```
49
+
50
+ ---
51
+
52
+ ## 实现模式
53
+
54
+ ### 一、WebSocket(Spring 原生)
55
+
56
+ #### 1. 配置
57
+
58
+ ```java
59
+ @Configuration
60
+ @EnableWebSocket
61
+ public class WebSocketConfig implements WebSocketConfigurer {
62
+
63
+ @Autowired
64
+ private [你的WebSocket处理器] handler;
65
+
66
+ @Autowired
67
+ private [你的认证拦截器] authInterceptor;
68
+
69
+ @Override
70
+ public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
71
+ registry.addHandler(handler, "/ws")
72
+ .addInterceptors(authInterceptor)
73
+ .setAllowedOrigins("https://your-domain.com"); // 生产不用 *
74
+ }
75
+ }
76
+ ```
77
+
78
+ #### 2. 消息处理器
79
+
80
+ ```java
81
+ @Component
82
+ public class AppWebSocketHandler extends TextWebSocketHandler {
83
+
84
+ // 会话管理:userId -> Session
85
+ private final ConcurrentHashMap<Long, WebSocketSession> sessions = new ConcurrentHashMap<>();
86
+
87
+ @Override
88
+ public void afterConnectionEstablished(WebSocketSession session) {
89
+ Long userId = getUserId(session);
90
+ sessions.put(userId, session);
91
+ log.info("WebSocket 连接建立, userId: {}", userId);
92
+ }
93
+
94
+ @Override
95
+ protected void handleTextMessage(WebSocketSession session, TextMessage message) {
96
+ // 处理客户端发来的消息
97
+ String payload = message.getPayload();
98
+ log.info("收到消息: {}", payload);
99
+ }
100
+
101
+ @Override
102
+ public void afterConnectionClosed(WebSocketSession session, CloseStatus status) {
103
+ Long userId = getUserId(session);
104
+ sessions.remove(userId);
105
+ log.info("WebSocket 连接关闭, userId: {}", userId);
106
+ }
107
+
108
+ // 发送消息给指定用户
109
+ public void sendMessage(Long userId, String message) {
110
+ WebSocketSession session = sessions.get(userId);
111
+ if (session != null && session.isOpen()) {
112
+ try {
113
+ session.sendMessage(new TextMessage(message));
114
+ } catch (IOException e) {
115
+ log.error("发送消息失败, userId: {}", userId, e);
116
+ }
117
+ }
118
+ }
119
+
120
+ // 广播给所有在线用户
121
+ public void broadcast(String message) {
122
+ sessions.values().forEach(session -> {
123
+ try {
124
+ if (session.isOpen()) {
125
+ session.sendMessage(new TextMessage(message));
126
+ }
127
+ } catch (IOException e) {
128
+ log.error("广播消息失败", e);
129
+ }
130
+ });
131
+ }
132
+
133
+ // 检查用户是否在线
134
+ public boolean isOnline(Long userId) {
135
+ WebSocketSession session = sessions.get(userId);
136
+ return session != null && session.isOpen();
137
+ }
138
+ }
139
+ ```
140
+
141
+ #### 3. 前端连接
142
+
143
+ ```javascript
144
+ const token = localStorage.getItem('token');
145
+ const ws = new WebSocket(`wss://your-domain.com/ws?token=${token}`);
146
+
147
+ ws.onopen = () => console.log('连接已建立');
148
+ ws.onmessage = (event) => {
149
+ const data = JSON.parse(event.data);
150
+ // 根据 data.type 路由处理
151
+ };
152
+ ws.onclose = () => {
153
+ // 断线重连
154
+ setTimeout(() => reconnect(), 3000);
155
+ };
156
+ ws.onerror = (error) => console.error('WebSocket 错误', error);
157
+ ```
158
+
159
+ ---
160
+
161
+ ### 二、SSE(Spring 原生)
162
+
163
+ #### 1. Controller
164
+
165
+ ```java
166
+ @RestController
167
+ @RequestMapping("/sse")
168
+ public class SseController {
169
+
170
+ private final ConcurrentHashMap<Long, SseEmitter> emitters = new ConcurrentHashMap<>();
171
+
172
+ // 建立 SSE 连接
173
+ @GetMapping("/connect")
174
+ public SseEmitter connect(@RequestParam Long userId) {
175
+ SseEmitter emitter = new SseEmitter(0L); // 0 = 不超时
176
+
177
+ emitters.put(userId, emitter);
178
+
179
+ emitter.onCompletion(() -> emitters.remove(userId));
180
+ emitter.onTimeout(() -> emitters.remove(userId));
181
+ emitter.onError(e -> emitters.remove(userId));
182
+
183
+ return emitter;
184
+ }
185
+
186
+ // 关闭连接
187
+ @GetMapping("/close")
188
+ public void close(@RequestParam Long userId) {
189
+ SseEmitter emitter = emitters.remove(userId);
190
+ if (emitter != null) {
191
+ emitter.complete();
192
+ }
193
+ }
194
+ }
195
+ ```
196
+
197
+ #### 2. 消息推送服务
198
+
199
+ ```java
200
+ @Service
201
+ public class SseMessageService {
202
+
203
+ @Autowired
204
+ private SseController sseController;
205
+
206
+ // 推送给指定用户
207
+ public void sendMessage(Long userId, String message) {
208
+ SseEmitter emitter = sseController.getEmitter(userId);
209
+ if (emitter != null) {
210
+ try {
211
+ emitter.send(SseEmitter.event()
212
+ .name("message")
213
+ .data(message));
214
+ } catch (IOException e) {
215
+ sseController.removeEmitter(userId);
216
+ log.error("SSE 推送失败, userId: {}", userId, e);
217
+ }
218
+ }
219
+ }
220
+
221
+ // 推送给所有用户
222
+ public void broadcast(String message) {
223
+ sseController.getAllEmitters().forEach((userId, emitter) -> {
224
+ try {
225
+ emitter.send(SseEmitter.event()
226
+ .name("message")
227
+ .data(message));
228
+ } catch (IOException e) {
229
+ sseController.removeEmitter(userId);
230
+ }
231
+ });
232
+ }
233
+ }
234
+ ```
235
+
236
+ #### 3. 前端连接
237
+
238
+ ```javascript
239
+ const token = localStorage.getItem('token');
240
+ const eventSource = new EventSource(`/sse/connect?userId=${userId}&token=${token}`);
241
+
242
+ eventSource.addEventListener('message', (event) => {
243
+ const data = JSON.parse(event.data);
244
+ // 处理消息
245
+ });
246
+
247
+ eventSource.onerror = () => {
248
+ // SSE 原生支持自动重连,通常无需手动处理
249
+ console.warn('SSE 连接异常');
250
+ };
251
+
252
+ // 页面卸载时关闭
253
+ window.addEventListener('beforeunload', () => {
254
+ eventSource.close();
255
+ navigator.sendBeacon('/sse/close?userId=' + userId);
256
+ });
257
+ ```
258
+
259
+ ---
260
+
261
+ ### 三、多实例消息同步
262
+
263
+ 单实例时直接操作内存中的 Session/Emitter 即可。多实例部署时需通过 Redis Pub/Sub 同步:
264
+
265
+ ```java
266
+ @Service
267
+ public class MessageBroadcaster {
268
+
269
+ @Autowired
270
+ private StringRedisTemplate redisTemplate;
271
+
272
+ private static final String CHANNEL = "realtime:messages";
273
+
274
+ // 发布消息到 Redis
275
+ public void publish(MessageDTO dto) {
276
+ redisTemplate.convertAndSend(CHANNEL, JsonUtils.toJson(dto));
277
+ }
278
+
279
+ // 订阅 Redis 消息,投递到本地连接
280
+ @Bean
281
+ public RedisMessageListenerContainer listenerContainer(RedisConnectionFactory factory) {
282
+ var container = new RedisMessageListenerContainer();
283
+ container.setConnectionFactory(factory);
284
+ container.addMessageListener((message, pattern) -> {
285
+ MessageDTO dto = JsonUtils.parse(message.toString(), MessageDTO.class);
286
+ // 匹配本地在线用户并投递
287
+ localDelivery(dto);
288
+ }, new ChannelTopic(CHANNEL));
289
+ return container;
290
+ }
291
+ }
292
+ ```
293
+
294
+ **流程**:业务代码调用 publish -> 发布到 Redis Channel -> 所有实例的 Listener 接收 -> 匹配本地在线用户并投递。
295
+
296
+ ---
297
+
298
+ ## 业务集成示例
299
+
300
+ ```java
301
+ @Service
302
+ public class OrderNotifyService {
303
+
304
+ @Autowired
305
+ private SseMessageService sseService;
306
+
307
+ public void notifyOrderStatusChange(Order order) {
308
+ String message = JsonUtils.toJson(Map.of(
309
+ "type", "ORDER_STATUS_CHANGE",
310
+ "orderId", order.getId(),
311
+ "status", order.getStatus(),
312
+ "updateTime", LocalDateTime.now()
313
+ ));
314
+ sseService.sendMessage(order.getBuyerId(), message);
315
+ }
316
+ }
317
+ ```
318
+
319
+ ---
320
+
321
+ ## 常见错误
322
+
323
+ ```java
324
+ // 1. 多实例环境只发本地(消息丢失)
325
+ handler.sendMessage(userId, message); // 用户可能在其他实例
326
+ // 应使用 Redis Pub/Sub 广播
327
+
328
+ // 2. 发送纯字符串(前端难解析、不可扩展)
329
+ handler.broadcast("订单已更新");
330
+ // 应使用 JSON + type 字段
331
+ handler.broadcast(JsonUtils.toJson(Map.of("type", "ORDER_UPDATE", "data", orderData)));
332
+
333
+ // 3. 循环逐个发送(性能差)
334
+ for (Long uid : userIds) {
335
+ sendMessage(uid, message);
336
+ }
337
+ // 应批量发送或使用广播
338
+
339
+ // 4. SSE 超时设置不当
340
+ new SseEmitter(30000L); // 30秒后断开
341
+ // 长连接应设置 0L(不超时)或较大值
342
+
343
+ // 5. 忘记清理已断开的连接
344
+ // Session/Emitter 断开后仍在 Map 中 -> 内存泄漏
345
+ // 应在 onCompletion/onClose/onError 回调中移除
346
+
347
+ // 6. WebSocket 未配置认证
348
+ // 连接建立时不校验 Token -> 任何人可连接
349
+ // 应在 HandshakeInterceptor 中校验身份
350
+ ```
@@ -0,0 +1,249 @@
1
+ ---
2
+ name: workflow-engine
3
+ description: |
4
+ 通用工作流引擎开发指南。涵盖状态机模式、流程引擎选型(Flowable/Camunda/Activiti 对比)、业务集成模式。
5
+ 触发场景:
6
+ - 设计审批流程(请假、报销、订单审批)
7
+ - 选择工作流引擎
8
+ - 实现任务办理(审批、驳回、转办、委派)
9
+ - 业务模块集成工作流
10
+ - 监听流程状态变更
11
+ 触发词:工作流、流程、审批、驳回、转办、委派、加签、抄送、流程引擎、Flowable、Camunda、Activiti、状态机、BPMN
12
+ 注意:如果项目有专属技能,优先使用专属版本。
13
+ ---
14
+
15
+ # 工作流引擎开发指南
16
+
17
+ > 通用模板。如果项目有专属技能,优先使用。
18
+
19
+ ## 设计原则
20
+
21
+ 1. **流程与业务分离**:流程引擎负责流转控制,业务逻辑通过事件监听器/回调接入。
22
+ 2. **状态可追溯**:每次流转记录操作人、操作时间、操作意见,形成完整审批链。
23
+ 3. **灵活可配**:流程定义应支持可视化设计、动态修改,无需改代码。
24
+ 4. **异常可恢复**:流程实例支持挂起、恢复、终止、撤销等操作。
25
+
26
+ ---
27
+
28
+ ## 流程引擎选型对比
29
+
30
+ | 维度 | Flowable | Camunda | Activiti | 轻量方案(WarmFlow 等) |
31
+ |------|----------|---------|----------|----------------------|
32
+ | 成熟度 | 高 | 高 | 高(社区版停滞) | 中 |
33
+ | 学习曲线 | 中等 | 中等 | 中等 | 低 |
34
+ | BPMN 2.0 | 完整支持 | 完整支持 | 完整支持 | 部分支持 |
35
+ | DMN 决策表 | 支持 | 支持 | 有限 | 不支持 |
36
+ | CMMN 案例 | 支持 | 支持 | 不支持 | 不支持 |
37
+ | 流程设计器 | 内置 Web | 内置 Web + Desktop | 旧版 Eclipse | 简易 Web |
38
+ | 性能 | 优秀 | 优秀 | 良好 | 轻量高效 |
39
+ | Spring Boot | 原生支持 | 原生支持 | 原生支持 | 通常支持 |
40
+ | 商业版 | 有 | 有 | N/A | 通常免费 |
41
+ | 适用场景 | 企业级复杂流程 | 企业级复杂流程 | 已有项目维护 | 简单审批流 |
42
+
43
+ ### 选型决策树
44
+
45
+ ```
46
+ 流程复杂度?
47
+ ├── 简单审批(3-5步线性流程)
48
+ │ └── 状态机模式 或 轻量流程引擎
49
+ ├── 中等(分支、并行、会签)
50
+ │ └── Flowable / Camunda
51
+ └── 复杂(子流程、多实例、DMN、事件)
52
+ └── Flowable / Camunda
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 实现模式
58
+
59
+ ### 模式一:状态机(简单场景)
60
+
61
+ 适用于线性或简单分支的审批流程。
62
+
63
+ ```java
64
+ // 状态枚举
65
+ public enum OrderStatus {
66
+ DRAFT, // 草稿
67
+ PENDING, // 待审批
68
+ APPROVED, // 已通过
69
+ REJECTED, // 已驳回
70
+ CANCELLED; // 已撤销
71
+ }
72
+
73
+ // 状态流转规则
74
+ public class OrderStateMachine {
75
+
76
+ private static final Map<OrderStatus, Set<OrderStatus>> TRANSITIONS = Map.of(
77
+ OrderStatus.DRAFT, Set.of(OrderStatus.PENDING, OrderStatus.CANCELLED),
78
+ OrderStatus.PENDING, Set.of(OrderStatus.APPROVED, OrderStatus.REJECTED),
79
+ OrderStatus.REJECTED, Set.of(OrderStatus.PENDING, OrderStatus.CANCELLED)
80
+ );
81
+
82
+ public void transition(Order order, OrderStatus targetStatus, String operator, String comment) {
83
+ OrderStatus current = order.getStatus();
84
+ if (!TRANSITIONS.getOrDefault(current, Set.of()).contains(targetStatus)) {
85
+ throw new [你的异常类](
86
+ String.format("不允许从 %s 流转到 %s", current, targetStatus));
87
+ }
88
+ order.setStatus(targetStatus);
89
+ // 记录流转日志
90
+ saveFlowLog(order.getId(), current, targetStatus, operator, comment);
91
+ }
92
+ }
93
+ ```
94
+
95
+ ### 模式二:流程引擎集成
96
+
97
+ #### 核心概念
98
+
99
+ | 概念 | 说明 |
100
+ |------|------|
101
+ | 流程定义(Definition) | 流程模板(BPMN XML),可版本化管理 |
102
+ | 流程实例(Instance) | 基于定义创建的运行时实例 |
103
+ | 任务(Task) | 等待人工处理的节点 |
104
+ | 历史(History) | 已完成的流程/任务记录 |
105
+ | 变量(Variable) | 流程运行时数据,用于条件判断 |
106
+
107
+ #### 启动流程
108
+
109
+ ```java
110
+ @Service
111
+ public class WorkflowService {
112
+
113
+ @Autowired
114
+ private [你的流程引擎] engine;
115
+
116
+ // 启动流程
117
+ public String startProcess(String processKey, String businessId, Map<String, Object> variables) {
118
+ variables.put("businessId", businessId);
119
+ variables.put("initiator", [你的安全工具类].getCurrentUserId());
120
+
121
+ // 启动流程实例
122
+ var instance = engine.startProcessByKey(processKey, businessId, variables);
123
+ return instance.getId();
124
+ }
125
+
126
+ // 办理任务(审批通过)
127
+ public void completeTask(String taskId, String comment, Map<String, Object> variables) {
128
+ // 记录审批意见
129
+ engine.addComment(taskId, comment);
130
+ // 完成任务
131
+ engine.completeTask(taskId, variables);
132
+ }
133
+
134
+ // 驳回
135
+ public void rejectTask(String taskId, String targetNodeId, String comment) {
136
+ engine.addComment(taskId, comment);
137
+ engine.rejectToNode(taskId, targetNodeId);
138
+ }
139
+
140
+ // 转办
141
+ public void transferTask(String taskId, String targetUserId, String comment) {
142
+ engine.addComment(taskId, comment);
143
+ engine.setAssignee(taskId, targetUserId);
144
+ }
145
+
146
+ // 撤销
147
+ public void cancelProcess(String instanceId, String comment) {
148
+ engine.deleteProcessInstance(instanceId, comment);
149
+ }
150
+ }
151
+ ```
152
+
153
+ #### 业务集成 - 事件监听
154
+
155
+ ```java
156
+ @Component
157
+ public class OrderWorkflowListener {
158
+
159
+ @Autowired
160
+ private OrderService orderService;
161
+
162
+ // 监听流程状态变更事件
163
+ @EventListener(condition = "#event.processKey == 'order_approve'")
164
+ public void onProcessEvent(ProcessStatusEvent event) {
165
+ String businessId = event.getBusinessId();
166
+ switch (event.getStatus()) {
167
+ case "submitted" -> orderService.updateStatus(businessId, "PENDING");
168
+ case "approved" -> orderService.updateStatus(businessId, "APPROVED");
169
+ case "rejected" -> orderService.updateStatus(businessId, "REJECTED");
170
+ case "cancelled" -> orderService.updateStatus(businessId, "CANCELLED");
171
+ }
172
+ }
173
+
174
+ // 监听任务创建事件(发送通知)
175
+ @EventListener(condition = "#event.processKey == 'order_approve'")
176
+ public void onTaskCreated(TaskCreatedEvent event) {
177
+ notificationService.sendNotice(
178
+ event.getAssignee(),
179
+ "您有新的审批任务:" + event.getTaskName()
180
+ );
181
+ }
182
+ }
183
+ ```
184
+
185
+ #### 办理人类型设计
186
+
187
+ | 类型 | 标识格式 | 示例 |
188
+ |------|---------|------|
189
+ | 指定用户 | 用户ID | `1001` |
190
+ | 角色 | `role:角色编码` | `role:finance_manager` |
191
+ | 部门 | `dept:部门ID` | `dept:100` |
192
+ | 岗位 | `post:岗位编码` | `post:cfo` |
193
+ | 表达式 | SpEL / UEL | `${order.amount > 10000 ? 'role:director' : 'role:manager'}` |
194
+
195
+ ---
196
+
197
+ ## API 接口设计参考
198
+
199
+ ### 任务相关
200
+
201
+ | 接口 | 方法 | 说明 |
202
+ |------|------|------|
203
+ | `/workflow/start` | POST | 启动流程 |
204
+ | `/workflow/task/complete` | POST | 办理任务(审批通过) |
205
+ | `/workflow/task/reject` | POST | 驳回 |
206
+ | `/workflow/task/transfer` | POST | 转办 |
207
+ | `/workflow/task/delegate` | POST | 委派 |
208
+ | `/workflow/task/todo` | GET | 当前用户待办列表 |
209
+ | `/workflow/task/done` | GET | 当前用户已办列表 |
210
+ | `/workflow/task/copy` | GET | 抄送列表 |
211
+
212
+ ### 实例相关
213
+
214
+ | 接口 | 方法 | 说明 |
215
+ |------|------|------|
216
+ | `/workflow/instance/running` | GET | 运行中实例 |
217
+ | `/workflow/instance/finished` | GET | 已完成实例 |
218
+ | `/workflow/instance/cancel` | PUT | 撤销申请 |
219
+ | `/workflow/instance/history/{businessId}` | GET | 审批记录 |
220
+
221
+ ---
222
+
223
+ ## 常见错误
224
+
225
+ ```java
226
+ // 1. 流程与业务强耦合
227
+ // 在流程引擎的 ServiceTask 中直接操作数据库
228
+ // 应通过事件监听/消息解耦
229
+
230
+ // 2. 未处理并发审批
231
+ // 多人同时审批同一任务 -> 数据不一致
232
+ // 应在 completeTask 中加锁或使用乐观锁
233
+
234
+ // 3. 流程变量存放大对象
235
+ variables.put("orderDetail", hugeObject); // 序列化到数据库,性能差
236
+ // 应只存关键ID,通过 businessId 关联查询
237
+
238
+ // 4. 忽略流程版本管理
239
+ // 修改流程定义后,已运行的实例可能出错
240
+ // 应使用版本化部署,运行中实例按启动时版本执行
241
+
242
+ // 5. 审批意见未持久化
243
+ engine.completeTask(taskId, variables); // 忘记 addComment
244
+ // 应在 complete 前记录审批意见
245
+
246
+ // 6. 通知不及时
247
+ // 任务创建后没有通知办理人 -> 任务积压
248
+ // 应通过事件监听器自动发送通知
249
+ ```