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,508 @@
1
+ ---
2
+ name: leniu-report-scenario
3
+ description: |
4
+ leniu-tengyun-core 报表开发场景化技能。统一覆盖报表查询、导出、合计行、金额处理、餐次、汇总表定制等全场景。
5
+ 当用户提到任何与报表、统计汇总、数据导出相关的开发需求时,都应使用此技能——即使用户没有明确说"报表",
6
+ 只要涉及分页查询+导出、金额分转元、合计行、按日期/食堂/餐次维度汇总,就属于本技能的范畴。
7
+
8
+ 触发场景:
9
+ - 开发报表分页查询 + 导出接口
10
+ - 基于 report_order_info / report_account_flow 开发汇总报表
11
+ - 报表 VO 金额字段处理(BigDecimal 分→元、CustomNumberConverter)
12
+ - 报表合计行查询(ReportBaseTotalVO + totalLine)
13
+ - 报表餐次筛选与转换(MealtimeTypeConverter)
14
+ - 定制汇总表(ReportOrderConsumeService + MQ 消费 + fix 重算)
15
+ - 用户说"做个统计页面"、"按食堂汇总消费数据"、"导出 Excel"等
16
+
17
+ 触发词:报表、报表开发、报表查询、报表导出、统计、汇总、合计行、totalLine、汇总报表、定制报表、report_order_info、report_account_flow、金额处理、分转元、餐次、mealtime、ReportBaseTotalVO、CustomNumberConverter、ExcelProperty、ReportOrderConsumeService、ExportApi、PageVO、导出Excel
18
+ ---
19
+
20
+ # leniu 报表开发场景化指南
21
+
22
+ > **本技能合并了 7 个报表碎片技能的核心知识**。按需加载详细参考:
23
+ > - 汇总表定制(MQ/fix/batchConsume)→ 读 `references/customization.md`
24
+ > - report_order_info 完整字段 → 读 `references/report-tables.md`
25
+ > - 数据权限集成 → 读 `references/data-permission.md`
26
+
27
+ ---
28
+
29
+ ## 一、决策树(开发前先过一遍)
30
+
31
+ ### Q1: 数据来源?
32
+
33
+ | 来源 | 说明 | 操作 |
34
+ |------|------|------|
35
+ | **A. 基于 report_order_info** | 订单/退款汇总报表 | 读 `references/report-tables.md` 了解字段 |
36
+ | **B. 基于 report_account_flow** | 账户流水报表 | 读 `references/report-tables.md` |
37
+ | **C. 已有业务表** | 非报表基础表的查询 | 直接用本文模板 |
38
+ | **D. 全新表** | 新建汇总表 | 读 `references/customization.md` |
39
+
40
+ ### Q2: 需要哪些功能?
41
+
42
+ | 功能 | 是否必选 | 说明 |
43
+ |------|---------|------|
44
+ | 分页查询 | **必选** | PageMethod + PageVO |
45
+ | 导出 | **必选** | ExportApi / EasyExcelUtil |
46
+ | 合计行 | 可选 | ReportBaseTotalVO + totalLine |
47
+ | 餐次筛选 | 可选 | mealtimeTypes + MealtimeTypeConverter |
48
+ | 数据权限 | 默认不加 | 用户要求时读 `references/data-permission.md` |
49
+ | MQ 消费/fix | 仅汇总表 | 读 `references/customization.md` |
50
+
51
+ ### Q3: 版本?
52
+
53
+ | 判断方式 | 标准版(core-report) | v5.29 版本(sys-canteen) |
54
+ |---------|---------------------|-------------------------|
55
+ | 退款存储 | 独立 `report_refund` 表(**正数**) | 合并入 `report_order_info`(`consumeType=2`,**负数**) |
56
+ | 第二阶段 | `fix()` 按日重算 | `batchConsume()` 增量累加 |
57
+ | consumeType | **无此字段** | 1=消费,2=退款 |
58
+
59
+ ---
60
+
61
+ ## 二、金额处理规范
62
+
63
+ ### 存储模式
64
+
65
+ | 模块 | Entity 类型 | 值单位 | VO 类型 |
66
+ |------|------------|--------|---------|
67
+ | 订单/报表 | `BigDecimal` | 分 | `BigDecimal` |
68
+ | 钱包/账户 | `Long` | 分 | `BigDecimal`(元,MyBatis 自动转) |
69
+
70
+ ### 为什么这样设计
71
+
72
+ 金额在数据库中以**分**为单位存储(避免浮点精度问题),转换为**元**的职责交给展示层:
73
+ - 页面展示:前端 `money()` 过滤器自动除以 100
74
+ - Excel 导出:`CustomNumberConverter` 自动除以 100
75
+ - SQL 中不做除法:保证聚合计算精度不丢失
76
+
77
+ ```java
78
+ // ❌ SQL 中做 /100.0 会导致聚合精度丢失,且前端会再除一次变成万分之一
79
+ SELECT order_amount / 100.0 AS order_amount
80
+
81
+ // ✅ 直接查原始值,展示层负责转换
82
+ SELECT order_amount AS order_amount
83
+
84
+ // ✅ 导出时 CustomNumberConverter 自动 ÷100
85
+ @ExcelProperty(value = "金额(元)", converter = CustomNumberConverter.class)
86
+ private BigDecimal amount;
87
+
88
+ // ❌ @NumberFormat 只做格式化,不做 ÷100 转换
89
+ @NumberFormat("#,##0.00")
90
+ ```
91
+
92
+ ### 合计行 SQL 只返回数值字段
93
+
94
+ 合计行的目的是在表格底部显示各列的汇总值。非数值列(日期、名称、ID)在合计行中无意义,返回它们会导致前端渲染混乱或 MyBatis 映射错误。
95
+
96
+ ```xml
97
+ <select id="getSummaryTotal" resultType="XxxVO">
98
+ SELECT
99
+ SUM(real_amount) AS realAmount,
100
+ SUM(refund_amount) AS refundAmount,
101
+ SUM(order_count) AS orderCount
102
+ FROM xxx_table
103
+ <where>...</where>
104
+ </select>
105
+ <!-- 注意:不要 SELECT statistic_date、canteen_name 等非数值字段 -->
106
+ ```
107
+
108
+ ---
109
+
110
+ ## 三、Param 模板
111
+
112
+ ```java
113
+ @Data
114
+ @EqualsAndHashCode(callSuper = true)
115
+ @ApiModel(value = "XXX报表查询参数")
116
+ public class XxxParam extends ReportBaseParam {
117
+ // ReportBaseParam 已有: page(PageDTO), startDate, endDate, exportCols, sumType, sumDimension
118
+
119
+ @ApiModelProperty("食堂ID列表")
120
+ private List<Long> canteenIds;
121
+
122
+ @ApiModelProperty("组织ID列表")
123
+ private List<Long> orgIds;
124
+
125
+ @ApiModelProperty("餐次集合") // 可选
126
+ private List<Integer> mealtimeTypes;
127
+
128
+ @ApiModelProperty("关键字")
129
+ private String keyword;
130
+ }
131
+ ```
132
+
133
+ **两层继承**(经营分析类报表):
134
+ ```
135
+ ReportAnalysisParam(含 dateType: 1按月/2按日, canteenStallIds)
136
+ └── ReportAnalysisTurnoverParam(具体 Param)
137
+ ```
138
+
139
+ ---
140
+
141
+ ## 四、VO 模板
142
+
143
+ ```java
144
+ @Data
145
+ @Accessors(chain = true)
146
+ @ApiModel("XXX报表")
147
+ public class XxxVO {
148
+
149
+ @ExcelProperty(value = "日期", order = 1)
150
+ @ApiModelProperty("统计日期")
151
+ private String statisticDate;
152
+
153
+ @ExcelProperty(value = "食堂", order = 2)
154
+ @ApiModelProperty("食堂名称")
155
+ private String canteenName;
156
+
157
+ // 可选:餐次字段
158
+ @ExcelProperty(value = "餐次", order = 3, converter = MealtimeTypeConverter.class)
159
+ @ApiModelProperty("餐次")
160
+ private Integer mealtimeType;
161
+
162
+ // 金额字段:必须用 CustomNumberConverter
163
+ @ExcelProperty(value = "消费金额(元)", order = 4, converter = CustomNumberConverter.class)
164
+ @ApiModelProperty("消费金额(分)")
165
+ private BigDecimal consumeAmount;
166
+
167
+ @ExcelProperty(value = "退款金额(元)", order = 5, converter = CustomNumberConverter.class)
168
+ @ApiModelProperty("退款金额(分)")
169
+ private BigDecimal refundAmount;
170
+
171
+ @ExcelProperty(value = "净金额(元)", order = 6, converter = CustomNumberConverter.class)
172
+ @ApiModelProperty("净金额(分)")
173
+ private BigDecimal netAmount;
174
+
175
+ @ExcelProperty(value = "订单数", order = 7)
176
+ @ApiModelProperty("订单数")
177
+ private Integer orderCount;
178
+ }
179
+ ```
180
+
181
+ **必要 import**:
182
+ ```java
183
+ import com.alibaba.excel.annotation.ExcelProperty;
184
+ import net.xnzn.core.common.export.converter.CustomNumberConverter;
185
+ import net.xnzn.core.common.export.converter.MealtimeTypeConverter; // 可选
186
+ ```
187
+
188
+ ---
189
+
190
+ ## 五、Controller 模板
191
+
192
+ ```java
193
+ @Api(tags = "XXX报表")
194
+ @RestController
195
+ @RequestMapping("/api/v2/web/report/xxx")
196
+ @RequiresAuthentication
197
+ public class XxxReportWebController {
198
+
199
+ @Autowired
200
+ private XxxReportService xxxReportService;
201
+ @Autowired
202
+ private ExportApi exportApi;
203
+
204
+ @PostMapping("/page")
205
+ @ApiOperation("分页查询(带合计)")
206
+ public ReportBaseTotalVO<XxxVO> page(@RequestBody LeRequest<XxxParam> request) {
207
+ return xxxReportService.pageWithTotal(request.getContent());
208
+ }
209
+
210
+ @PostMapping("/export")
211
+ @ApiOperation("导出")
212
+ public void export(@RequestBody LeRequest<XxxParam> request) {
213
+ XxxParam param = request.getContent();
214
+ XxxVO totalLine = xxxReportService.getSummaryTotal(param);
215
+ exportApi.startExcelExportTaskByPage(
216
+ I18n.getMessage("report.xxx.title"),
217
+ I18n.getMessage(ReportConstant.REPORT_TITLE_DETAILS),
218
+ XxxVO.class,
219
+ param.getExportCols(),
220
+ param.getPage(),
221
+ totalLine,
222
+ () -> xxxReportService.pageWithTotal(param).getResultPage()
223
+ );
224
+ }
225
+ }
226
+ ```
227
+
228
+ **同步导出**(数据量小时):
229
+ ```java
230
+ @PostMapping("/export")
231
+ @SneakyThrows
232
+ public void export(@RequestBody LeRequest<XxxParam> request, HttpServletResponse response) {
233
+ XxxParam param = request.getContent();
234
+ ReportBaseTotalVO<XxxVO> result = xxxReportService.pageWithTotal(param);
235
+ List<XxxVO> records = result.getResultPage().getRecords();
236
+ CollUtil.addAll(records, result.getTotalLine());
237
+ EasyExcelUtil.writeExcelByDownLoadIncludeWrite(
238
+ response, I18n.getMessage("report.xxx.title"),
239
+ XxxVO.class, I18n.getMessage(ReportConstant.REPORT_TITLE_DETAILS),
240
+ records, param.getExportCols()
241
+ );
242
+ }
243
+ ```
244
+
245
+ ---
246
+
247
+ ## 六、Service 模板
248
+
249
+ ```java
250
+ @Service
251
+ @Slf4j
252
+ public class XxxReportService {
253
+
254
+ @Autowired
255
+ private XxxReportMapper xxxReportMapper;
256
+
257
+ /**
258
+ * 分页查询(带合计行)
259
+ */
260
+ public ReportBaseTotalVO<XxxVO> pageWithTotal(XxxParam param) {
261
+ ReportBaseTotalVO<XxxVO> result = new ReportBaseTotalVO<>();
262
+
263
+ // 1. 非导出时查合计行
264
+ if (CollUtil.isEmpty(param.getExportCols())) {
265
+ XxxVO totalLine = xxxReportMapper.getSummaryTotal(param);
266
+ result.setTotalLine(totalLine);
267
+ }
268
+
269
+ // 2. 导出时不分页
270
+ if (CollUtil.isEmpty(param.getExportCols())) {
271
+ PageMethod.startPage(param.getPage());
272
+ }
273
+
274
+ // 3. 查询
275
+ List<XxxVO> list = xxxReportMapper.getSummaryList(param);
276
+ result.setResultPage(PageVO.of(list));
277
+ return result;
278
+ }
279
+
280
+ /**
281
+ * 单独合计行(导出用)
282
+ */
283
+ public XxxVO getSummaryTotal(XxxParam param) {
284
+ return xxxReportMapper.getSummaryTotal(param);
285
+ }
286
+ }
287
+ ```
288
+
289
+ **高性能版(三并行 CompletableFuture,参考 ReportSumMealtimeService)**:
290
+ ```java
291
+ @Autowired
292
+ private AsyncTaskExecutor asyncTaskExecutor;
293
+
294
+ public ReportBaseTotalVO<XxxVO> pageWithTotal(XxxParam param) {
295
+ CompletableFuture<Long> countF = CompletableFuture.supplyAsync(
296
+ () -> xxxReportMapper.listSummary_COUNT(param), asyncTaskExecutor);
297
+ CompletableFuture<List<XxxVO>> listF = CompletableFuture.supplyAsync(() -> {
298
+ PageMethod.startPage(param.getPage());
299
+ return xxxReportMapper.getSummaryList(param);
300
+ }, asyncTaskExecutor);
301
+ CompletableFuture<XxxVO> totalF = CompletableFuture.supplyAsync(
302
+ () -> xxxReportMapper.getSummaryTotal(param), asyncTaskExecutor);
303
+ CompletableFuture.allOf(countF, listF, totalF).join();
304
+
305
+ PageVO<XxxVO> pageVO = PageVO.of(listF.join());
306
+ pageVO.setTotal(countF.join());
307
+ return new ReportBaseTotalVO<XxxVO>()
308
+ .setResultPage(pageVO)
309
+ .setTotalLine(totalF.join());
310
+ }
311
+ ```
312
+
313
+ ---
314
+
315
+ ## 七、Mapper XML 模板
316
+
317
+ ```xml
318
+ <?xml version="1.0" encoding="UTF-8"?>
319
+ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
320
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
321
+ <mapper namespace="net.xnzn.core.xxx.mapper.XxxReportMapper">
322
+
323
+ <!-- 公共查询条件片段 -->
324
+ <sql id="queryParam">
325
+ <if test="startDate != null">
326
+ AND a.statistic_date >= #{startDate}
327
+ </if>
328
+ <if test="endDate != null">
329
+ AND a.statistic_date &lt;= #{endDate}
330
+ </if>
331
+ <if test="canteenIds != null and canteenIds.size() > 0">
332
+ AND a.canteen_id IN
333
+ <foreach collection="canteenIds" item="id" open="(" separator="," close=")">
334
+ #{id}
335
+ </foreach>
336
+ </if>
337
+ <if test="mealtimeTypes != null and mealtimeTypes.size() > 0">
338
+ AND a.mealtime_type IN
339
+ <foreach collection="mealtimeTypes" item="type" open="(" separator="," close=")">
340
+ #{type}
341
+ </foreach>
342
+ </if>
343
+ <if test="keyword != null and keyword != ''">
344
+ AND (a.canteen_name LIKE CONCAT('%', #{keyword}, '%')
345
+ OR a.stall_name LIKE CONCAT('%', #{keyword}, '%'))
346
+ </if>
347
+ </sql>
348
+
349
+ <!-- 分页列表 -->
350
+ <select id="getSummaryList" resultType="net.xnzn.core.xxx.vo.XxxVO">
351
+ SELECT
352
+ a.statistic_date AS statisticDate,
353
+ a.canteen_name AS canteenName,
354
+ a.mealtime_type AS mealtimeType,
355
+ a.consume_amount AS consumeAmount,
356
+ a.refund_amount AS refundAmount,
357
+ a.net_amount AS netAmount,
358
+ a.order_count AS orderCount
359
+ FROM report_sum_xxx a
360
+ WHERE a.del_flag = 2
361
+ <include refid="queryParam"/>
362
+ ORDER BY a.statistic_date DESC
363
+ </select>
364
+
365
+ <!-- 合计行:只返回数值字段 -->
366
+ <select id="getSummaryTotal" resultType="net.xnzn.core.xxx.vo.XxxVO">
367
+ SELECT
368
+ SUM(a.consume_amount) AS consumeAmount,
369
+ SUM(a.refund_amount) AS refundAmount,
370
+ SUM(a.net_amount) AS netAmount,
371
+ SUM(a.order_count) AS orderCount
372
+ FROM report_sum_xxx a
373
+ WHERE a.del_flag = 2
374
+ <include refid="queryParam"/>
375
+ </select>
376
+
377
+ </mapper>
378
+ ```
379
+
380
+ ---
381
+
382
+ ## 八、MySQL only_full_group_by 规范
383
+
384
+ ```sql
385
+ -- ❌ GROUP BY 表达式与 SELECT 不一致
386
+ SELECT DATE_FORMAT(pay_time, '%Y-%m-%d') AS statisticDate, SUM(real_amount)
387
+ GROUP BY DATE(pay_time) -- ❌ DATE() ≠ DATE_FORMAT()
388
+
389
+ -- ✅ GROUP BY 与 SELECT 完全一致(复制粘贴,不要重写)
390
+ SELECT DATE_FORMAT(pay_time, '%Y-%m-%d') AS statisticDate, SUM(real_amount)
391
+ GROUP BY DATE_FORMAT(pay_time, '%Y-%m-%d')
392
+
393
+ -- ❌ 非聚合字段未加入 GROUP BY
394
+ SELECT canteen_id, canteen_name, SUM(real_amount)
395
+ GROUP BY canteen_id -- ❌ canteen_name 缺失
396
+
397
+ -- ✅ 所有非聚合字段都在 GROUP BY
398
+ SELECT canteen_id, canteen_name, SUM(real_amount)
399
+ GROUP BY canteen_id, canteen_name
400
+ ```
401
+
402
+ **检查项**:SELECT 非聚合字段 == GROUP BY 字段,表达式逐字一致,ORDER BY 同理。
403
+
404
+ ---
405
+
406
+ ## 九、退款净额速查
407
+
408
+ ### v5.29(consumeType 模式,退款为负数)
409
+
410
+ ```sql
411
+ -- 方式一(推荐):直接 SUM,退款已为负数
412
+ SELECT SUM(real_amount) AS netAmount FROM report_order_info
413
+ -- 方式二:分别统计
414
+ SELECT SUM(CASE WHEN consume_type=1 THEN real_amount ELSE 0 END) AS consume,
415
+ SUM(CASE WHEN consume_type=2 THEN ABS(real_refund_amount) ELSE 0 END) AS refund
416
+ ```
417
+
418
+ ### 标准版(独立 report_refund 表,退款为正数)
419
+
420
+ ```sql
421
+ -- 方式一(推荐):主表 refundAmount 减退
422
+ SELECT SUM(real_amount - IFNULL(refund_amount, 0)) AS netAmount FROM report_order_info
423
+ -- 方式二:关联退款表
424
+ SELECT SUM(o.real_amount) - IFNULL(SUM(r.real_refund_amount), 0) AS netAmount
425
+ FROM report_order_info o LEFT JOIN report_refund r ON o.order_id = r.order_id
426
+ ```
427
+
428
+ ### 菜品级别退款
429
+
430
+ ```sql
431
+ SELECT goods_dishes_name,
432
+ SUM(quantity - IFNULL(goods_refund_num, 0)) AS netQuantity,
433
+ SUM(total_amount - IFNULL(refund_amount, 0)) AS netAmount
434
+ FROM report_order_detail WHERE detail_state IN (1, 3) GROUP BY goods_dishes_name
435
+ ```
436
+
437
+ ---
438
+
439
+ ## 十、定制报表对齐陷阱
440
+
441
+ ### pay_time vs order_date
442
+
443
+ report_order_info 有两个时间维度,选错会导致金额与汇总表不一致:
444
+
445
+ | 字段 | 类型 | 含义 | 退款时的值 |
446
+ |------|------|------|-----------|
447
+ | `order_date` | DATE | 就餐日期 | 原订单就餐日 |
448
+ | `pay_time` | DATETIME | 支付/退款时间 | 退款审核时间(checkTime) |
449
+
450
+ **汇总表(report_sum_canteen 等)按 `pay_time` 聚合**。定制报表如需与汇总表金额对齐,时间条件用 `pay_time`:
451
+
452
+ ```sql
453
+ -- ❌ 用 order_date,会与汇总表不一致(预订餐/隔日退款场景)
454
+ WHERE o.order_date BETWEEN #{param.startDate} AND #{param.endDate}
455
+
456
+ -- ✅ 用 pay_time,与汇总表对齐
457
+ WHERE DATE(o.pay_time) BETWEEN #{param.startDate} AND #{param.endDate}
458
+ ```
459
+
460
+ ### order_type 覆盖范围
461
+
462
+ 汇总表**不过滤 order_type**,包含全部类型(含 type=4 商超)。定制报表如排除了某些 type,金额会比汇总表少。
463
+
464
+ | order_type | 含义 |
465
+ |-----------|------|
466
+ | 1, 2, 3 | 线上点餐 |
467
+ | 4 | 商超自助结算 |
468
+ | 6, 7, 11, 13, 21, 22 | 线下消费机/手持机 |
469
+
470
+ ### 上线前数据验证检查项
471
+
472
+ - [ ] 确认时间字段:与汇总表对齐用 `pay_time`,统计就餐消费用 `order_date`
473
+ - [ ] 确认 `order_type` 覆盖范围(是否包含 type=4 商超)
474
+ - [ ] 选定一个日期,对比定制报表金额与标准报表(`/classify/page`)金额
475
+ - [ ] 验证退款金额方向正确(退款记录的 wallet_amount/subsidy_amount 为负数)
476
+
477
+ ---
478
+
479
+ ## 十一、餐次速查
480
+
481
+ | 枚举值 | key | 名称 | 分类 |
482
+ |--------|-----|------|------|
483
+ | MEALTIME_BREAKFAST | 1 | 早餐 | 正餐 |
484
+ | MEALTIME_LUNCH | 2 | 午餐 | 正餐 |
485
+ | MEALTIME_AFTERNOON_TEA | 3 | 下午茶 | 非正餐 |
486
+ | MEALTIME_DINNER | 4 | 晚餐 | 正餐 |
487
+ | MEALTIME_MIDNIGHT_SNACK | 5 | 夜宵 | 非正餐 |
488
+
489
+ ```java
490
+ AllocMealtimeTypeEnum.allTypeList(); // [1,2,3,4,5]
491
+ AllocMealtimeTypeEnum.normalTypeList(); // [1,2,4] 正餐
492
+ AllocMealtimeTypeEnum.getValueByKey(1); // "早餐"
493
+ ```
494
+
495
+ ---
496
+
497
+ ## 十二、边界与延伸
498
+
499
+ 本技能覆盖报表开发的完整场景。以下情况请使用其他技能:
500
+
501
+ - 非报表的普通 CRUD 开发 → `leniu-crud-development`
502
+ - MyBatis XML 通用编写规范 → `leniu-java-mybatis`
503
+ - CompletableFuture 线程池高级配置 → `leniu-java-concurrent`
504
+
505
+ 本技能的 references 目录按需加载:
506
+ - 新建汇总表(MQ 消费链 + fix 重算)→ 读 `references/customization.md`
507
+ - 需要数据权限过滤 → 读 `references/data-permission.md`
508
+ - 需要 report_order_info 完整字段 → 读 `references/report-tables.md`