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,310 @@
1
+ /**
2
+ * 智能完成通知模块
3
+ * 支持音效、系统通知弹窗、TTS 语音播报三种方式的任意组合
4
+ * 跨平台兼容:macOS / Windows / Linux
5
+ */
6
+ 'use strict';
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+ const os = require('os');
11
+ const { spawn } = require('child_process');
12
+
13
+ // ── 默认配置 ─────────────────────────────────────────────────────────────
14
+ const DEFAULT_CONFIG = {
15
+ notify: {
16
+ methods: ['sound'],
17
+ sound: { enabled: true, file: 'completed.wav' },
18
+ notification: { enabled: false, title: 'AI 任务完成' },
19
+ tts: { enabled: false, prefix: '任务完成', maxLength: 80 },
20
+ summary: { maxLength: 100, strategy: 'first-sentence', stripMarkdown: true },
21
+ },
22
+ };
23
+
24
+ // ── 工具函数 ─────────────────────────────────────────────────────────────
25
+
26
+ /** 深度合并对象(src 补充到 dest,dest 已有的键保留) */
27
+ function deepMerge(dest, src) {
28
+ const result = { ...dest };
29
+ for (const [key, value] of Object.entries(src)) {
30
+ if (key in result && typeof result[key] === 'object' && result[key] !== null
31
+ && !Array.isArray(result[key]) && typeof value === 'object' && value !== null && !Array.isArray(value)) {
32
+ result[key] = deepMerge(result[key], value);
33
+ } else if (!(key in result)) {
34
+ result[key] = value;
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+
40
+ /** 带超时的 spawn,返回 Promise */
41
+ function spawnWithTimeout(cmd, args, opts, timeoutMs) {
42
+ return new Promise((resolve) => {
43
+ try {
44
+ const child = spawn(cmd, args, { stdio: ['pipe', 'pipe', 'pipe'], ...opts });
45
+ const timer = setTimeout(() => {
46
+ try { child.kill('SIGTERM'); } catch { /* ignore */ }
47
+ resolve(false);
48
+ }, timeoutMs);
49
+ child.on('close', () => { clearTimeout(timer); resolve(true); });
50
+ child.on('error', () => { clearTimeout(timer); resolve(false); });
51
+ } catch {
52
+ resolve(false);
53
+ }
54
+ });
55
+ }
56
+
57
+ // ── 1. readStdin ─────────────────────────────────────────────────────────
58
+
59
+ /** 读取 hook stdin JSON(2s 超时,失败返回 null) */
60
+ function readStdin() {
61
+ return new Promise((resolve) => {
62
+ // 非 TTY 且有 pipe 数据时才读取
63
+ if (process.stdin.isTTY) {
64
+ resolve(null);
65
+ return;
66
+ }
67
+
68
+ let data = '';
69
+ const timer = setTimeout(() => {
70
+ process.stdin.removeAllListeners();
71
+ process.stdin.destroy();
72
+ resolve(null);
73
+ }, 2000);
74
+
75
+ process.stdin.setEncoding('utf8');
76
+ process.stdin.on('data', (chunk) => { data += chunk; });
77
+ process.stdin.on('end', () => {
78
+ clearTimeout(timer);
79
+ try {
80
+ resolve(JSON.parse(data));
81
+ } catch {
82
+ resolve(null);
83
+ }
84
+ });
85
+ process.stdin.on('error', () => {
86
+ clearTimeout(timer);
87
+ resolve(null);
88
+ });
89
+ process.stdin.resume();
90
+ });
91
+ }
92
+
93
+ // ── 2. loadConfig ────────────────────────────────────────────────────────
94
+
95
+ /** 加载配置文件,按查找顺序:工作区 → 全局 → 内置默认值 */
96
+ function loadConfig(cwd) {
97
+ const homeDir = os.homedir();
98
+ const candidates = [
99
+ path.join(cwd, '.claude', 'notify-config.json'),
100
+ path.join(cwd, '.cursor', 'notify-config.json'),
101
+ path.join(homeDir, '.claude', 'notify-config.json'),
102
+ path.join(homeDir, '.cursor', 'notify-config.json'),
103
+ ];
104
+
105
+ for (const configPath of candidates) {
106
+ try {
107
+ if (fs.existsSync(configPath)) {
108
+ const userConfig = JSON.parse(fs.readFileSync(configPath, 'utf8'));
109
+ // 用户配置优先,缺失字段用默认值补充
110
+ return deepMerge(userConfig, DEFAULT_CONFIG);
111
+ }
112
+ } catch {
113
+ // 配置文件解析失败,继续尝试下一个
114
+ }
115
+ }
116
+
117
+ return JSON.parse(JSON.stringify(DEFAULT_CONFIG));
118
+ }
119
+
120
+ // ── 3. extractSummary ────────────────────────────────────────────────────
121
+
122
+ /** 从 last_assistant_message 提取摘要 */
123
+ function extractSummary(message, config) {
124
+ if (!message || typeof message !== 'string') return '';
125
+
126
+ const summaryConfig = config.notify.summary;
127
+ let text = message;
128
+
129
+ // 去除 markdown 标记
130
+ if (summaryConfig.stripMarkdown) {
131
+ text = text
132
+ .replace(/```[\s\S]*?```/g, '') // 代码块
133
+ .replace(/`[^`]+`/g, '') // 行内代码
134
+ .replace(/\[([^\]]*)\]\([^)]*\)/g, '$1') // 链接 → 文字
135
+ .replace(/^#{1,6}\s+.*$/gm, '') // 整行标题(含文字)
136
+ .replace(/\*\*([^*]+)\*\*/g, '$1') // 粗体
137
+ .replace(/\*([^*]+)\*/g, '$1') // 斜体
138
+ .replace(/~~([^~]+)~~/g, '$1') // 删除线
139
+ .replace(/^[-*+]\s+/gm, '') // 无序列表标记
140
+ .replace(/^\d+\.\s+/gm, '') // 有序列表标记
141
+ .replace(/^>\s+/gm, '') // 引用
142
+ .replace(/\n{2,}/g, '\n') // 多余空行
143
+ .trim();
144
+ }
145
+
146
+ if (!text) return '';
147
+
148
+ const maxLen = summaryConfig.maxLength || 100;
149
+ const strategy = summaryConfig.strategy || 'first-sentence';
150
+
151
+ let result = '';
152
+
153
+ switch (strategy) {
154
+ case 'first-sentence': {
155
+ // 匹配第一个句末标点(中文标点后无需空格,英文句号需后跟空格或结尾)
156
+ const match = text.match(/^(.+?(?:[。!?!?]|\.(?:\s|$)))/);
157
+ result = match ? match[1] : text.split('\n')[0];
158
+ break;
159
+ }
160
+ case 'first-line': {
161
+ result = text.split('\n')[0];
162
+ break;
163
+ }
164
+ case 'truncate':
165
+ default: {
166
+ result = text;
167
+ break;
168
+ }
169
+ }
170
+
171
+ // 截断到 maxLength
172
+ if (result.length > maxLen) {
173
+ result = result.substring(0, maxLen - 3) + '...';
174
+ }
175
+
176
+ return result.trim();
177
+ }
178
+
179
+ // ── 4. playSound ─────────────────────────────────────────────────────────
180
+
181
+ /** 跨平台播放音效(5s 超时) */
182
+ function playSound(cwd, fileName) {
183
+ const homeDir = os.homedir();
184
+ const candidates = [
185
+ path.join(cwd, '.claude', 'audio', fileName),
186
+ path.join(cwd, '.cursor', 'audio', fileName),
187
+ path.join(homeDir, '.claude', 'audio', fileName),
188
+ path.join(homeDir, '.cursor', 'audio', fileName),
189
+ ];
190
+
191
+ const audioFile = candidates.find(f => {
192
+ try { return fs.existsSync(f); } catch { return false; }
193
+ });
194
+
195
+ if (!audioFile) return Promise.resolve(false);
196
+
197
+ const platform = process.platform;
198
+
199
+ if (platform === 'darwin') {
200
+ return spawnWithTimeout('afplay', [audioFile], {}, 5000);
201
+ } else if (platform === 'win32') {
202
+ return spawnWithTimeout('powershell', [
203
+ '-c', `(New-Object Media.SoundPlayer '${audioFile.replace(/'/g, "''")}').PlaySync()`,
204
+ ], {}, 5000);
205
+ } else {
206
+ // Linux: 尝试 aplay → paplay
207
+ return spawnWithTimeout('aplay', [audioFile], {}, 5000).then(ok => {
208
+ if (!ok) return spawnWithTimeout('paplay', [audioFile], {}, 5000);
209
+ return true;
210
+ });
211
+ }
212
+ }
213
+
214
+ // ── 5. sendNotification ──────────────────────────────────────────────────
215
+
216
+ /** 跨平台系统通知弹窗(2s 超时) */
217
+ function sendNotification(title, body) {
218
+ const safeTitle = (title || '').replace(/"/g, '\\"');
219
+ const safeBody = (body || '').replace(/"/g, '\\"');
220
+ const platform = process.platform;
221
+
222
+ if (platform === 'darwin') {
223
+ return spawnWithTimeout('osascript', [
224
+ '-e', `display notification "${safeBody}" with title "${safeTitle}"`,
225
+ ], {}, 2000);
226
+ } else if (platform === 'win32') {
227
+ const ps = `
228
+ [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null;
229
+ $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02);
230
+ $textNodes = $template.GetElementsByTagName('text');
231
+ $textNodes.Item(0).AppendChild($template.CreateTextNode('${safeTitle}')) | Out-Null;
232
+ $textNodes.Item(1).AppendChild($template.CreateTextNode('${safeBody}')) | Out-Null;
233
+ $toast = [Windows.UI.Notifications.ToastNotification]::new($template);
234
+ [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('AI Assistant').Show($toast);
235
+ `.replace(/\n\s*/g, ' ');
236
+ return spawnWithTimeout('powershell', ['-c', ps], {}, 2000);
237
+ } else {
238
+ // Linux: notify-send
239
+ return spawnWithTimeout('notify-send', [safeTitle, safeBody], {}, 2000);
240
+ }
241
+ }
242
+
243
+ // ── 6. speakTTS ──────────────────────────────────────────────────────────
244
+
245
+ /** 跨平台语音播报(7s 超时) */
246
+ function speakTTS(text, config) {
247
+ if (!text) return Promise.resolve(false);
248
+
249
+ const prefix = config.notify.tts.prefix || '';
250
+ const fullText = prefix ? `${prefix},${text}` : text;
251
+ const maxLen = config.notify.tts.maxLength || 80;
252
+ const spoken = fullText.length > maxLen ? fullText.substring(0, maxLen) : fullText;
253
+
254
+ const platform = process.platform;
255
+
256
+ if (platform === 'darwin') {
257
+ return spawnWithTimeout('say', [spoken], {}, 7000);
258
+ } else if (platform === 'win32') {
259
+ const safeTxt = spoken.replace(/'/g, "''");
260
+ return spawnWithTimeout('powershell', [
261
+ '-c', `Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('${safeTxt}')`,
262
+ ], {}, 7000);
263
+ } else {
264
+ // Linux: spd-say → espeak
265
+ return spawnWithTimeout('spd-say', [spoken], {}, 7000).then(ok => {
266
+ if (!ok) return spawnWithTimeout('espeak', [spoken], {}, 7000);
267
+ return true;
268
+ });
269
+ }
270
+ }
271
+
272
+ // ── 7. run(主入口)──────────────────────────────────────────────────────
273
+
274
+ /** 主入口:读配置 → 读 stdin → 提取摘要 → 并行执行通知 */
275
+ async function run(cwd) {
276
+ const config = loadConfig(cwd);
277
+ const methods = config.notify.methods || ['sound'];
278
+
279
+ // 读取 stdin(Claude/Cursor hook 通过 stdin 传入 JSON)
280
+ const stdinData = await readStdin();
281
+ const lastMessage = stdinData && stdinData.last_assistant_message
282
+ ? stdinData.last_assistant_message
283
+ : null;
284
+
285
+ // 提取摘要
286
+ const summary = lastMessage ? extractSummary(lastMessage, config) : '';
287
+
288
+ // 并行执行各通知方式
289
+ const tasks = [];
290
+
291
+ if (methods.includes('sound') && config.notify.sound.enabled !== false) {
292
+ tasks.push(playSound(cwd, config.notify.sound.file || 'completed.wav'));
293
+ }
294
+
295
+ if (methods.includes('notification') && config.notify.notification.enabled !== false) {
296
+ const title = config.notify.notification.title || 'AI 任务完成';
297
+ const body = summary || '回答已完成';
298
+ tasks.push(sendNotification(title, body));
299
+ }
300
+
301
+ if (methods.includes('tts') && config.notify.tts.enabled !== false) {
302
+ const ttsText = summary || '回答已完成';
303
+ tasks.push(speakTTS(ttsText, config));
304
+ }
305
+
306
+ // 等待所有通知完成(任何失败都静默忽略)
307
+ await Promise.allSettled(tasks);
308
+ }
309
+
310
+ module.exports = { run, readStdin, loadConfig, extractSummary, playSound, sendNotification, speakTTS };
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Stop Hook - Cursor 回答结束时触发
4
+ * 功能: nul 文件清理 + 代码审查提示 + 智能完成通知(音效/系统通知/TTS)
5
+ */
6
+
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+ const { execSync } = require('child_process');
10
+
11
+ // 清理可能误创建的 nul 文件(Windows 下 > nul 可能创建该文件)
12
+ const findAndDeleteNul = (dir, depth = 0) => {
13
+ if (depth > 5) return;
14
+ try {
15
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
16
+ for (const entry of entries) {
17
+ const fullPath = path.join(dir, entry.name);
18
+ if (entry.isFile() && entry.name === 'nul') {
19
+ fs.unlinkSync(fullPath);
20
+ console.error(`🧹 已清理: ${fullPath}`);
21
+ } else if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
22
+ findAndDeleteNul(fullPath, depth + 1);
23
+ }
24
+ }
25
+ } catch {
26
+ // 访问失败时静默忽略
27
+ }
28
+ };
29
+ findAndDeleteNul(process.cwd());
30
+
31
+ // 代码审查提示:检测是否有未提交的代码变更
32
+ try {
33
+ const cwd = process.cwd();
34
+ const diff = execSync('git diff --name-only HEAD 2>/dev/null || true', { cwd, encoding: 'utf8' }).trim();
35
+ const staged = execSync('git diff --cached --name-only 2>/dev/null || true', { cwd, encoding: 'utf8' }).trim();
36
+ const allChanged = [diff, staged].filter(Boolean).join('\n');
37
+
38
+ if (allChanged) {
39
+ // 检查是否有业务代码变更(Java/XML/SQL/Vue/JS 等)
40
+ const codeExtensions = /\.(java|xml|sql|vue|js|ts|jsx|tsx|py|go|rs|kt)$/i;
41
+ const changedFiles = allChanged.split('\n').filter(f => codeExtensions.test(f));
42
+
43
+ if (changedFiles.length > 0) {
44
+ console.error(`\n💡 检测到 ${changedFiles.length} 个代码文件变更,建议执行代码审查:`);
45
+ console.error(` → 输入 "review" 或 "审查代码" 进行代码规范检查\n`);
46
+ }
47
+ }
48
+ } catch {
49
+ // git 不可用或非 git 仓库,静默跳过
50
+ }
51
+
52
+ // 执行智能通知
53
+ require('./lib/notify.js').run(process.cwd())
54
+ .then(() => process.exit(0))
55
+ .catch(() => process.exit(0));
@@ -0,0 +1,23 @@
1
+ {
2
+ "version": 1,
3
+ "hooks": {
4
+ "beforeSubmitPrompt": [
5
+ {
6
+ "matcher": "",
7
+ "command": "node -e \"const p=require('path'),fs=require('fs');let d=process.cwd();while(!fs.existsSync(p.join(d,'.cursor/hooks/cursor-skill-eval.js'))&&d!==p.dirname(d))d=p.dirname(d);const f=p.join(d,'.cursor/hooks/cursor-skill-eval.js');if(fs.existsSync(f))require(f);\""
8
+ }
9
+ ],
10
+ "preToolUse": [
11
+ {
12
+ "matcher": "Shell|Write|CreateFile|EditFile",
13
+ "command": "node -e \"const p=require('path'),fs=require('fs');let d=process.cwd();while(!fs.existsSync(p.join(d,'.cursor/hooks/cursor-pre-tool-use.js'))&&d!==p.dirname(d))d=p.dirname(d);const f=p.join(d,'.cursor/hooks/cursor-pre-tool-use.js');if(fs.existsSync(f))require(f);\""
14
+ }
15
+ ],
16
+ "stop": [
17
+ {
18
+ "matcher": "",
19
+ "command": "node -e \"const p=require('path'),fs=require('fs');let d=process.cwd();while(!fs.existsSync(p.join(d,'.cursor/hooks/stop.js'))&&d!==p.dirname(d))d=p.dirname(d);const f=p.join(d,'.cursor/hooks/stop.js');if(fs.existsSync(f))require(f);\""
20
+ }
21
+ ]
22
+ }
23
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "mcpServers": {
3
+ "sequential-thinking": {
4
+ "command": "npx",
5
+ "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"],
6
+ "description": "链式推理 - 深度分析、仔细思考、全面评估时使用"
7
+ },
8
+ "context7": {
9
+ "command": "npx",
10
+ "args": ["-y", "@upstash/context7-mcp"],
11
+ "description": "官方文档查询 - 最佳实践、官方文档、标准写法时使用"
12
+ },
13
+ "github": {
14
+ "command": "npx",
15
+ "args": ["-y", "@modelcontextprotocol/server-github"],
16
+ "env": {
17
+ "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
18
+ },
19
+ "description": "GitHub 集成 - 查询 Issues、PR、仓库信息"
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,99 @@
1
+ ---
2
+ description: 技能激活规则 - 根据用户问题自动读取对应 SKILL.md 文件
3
+ alwaysApply: true
4
+ ---
5
+
6
+ ## 技能激活规则(必须遵守)
7
+
8
+ 当用户问题涉及以下主题时,**必须先读取对应 SKILL.md 文件**,再回答:
9
+
10
+ ### leniu 专项技能
11
+
12
+ | 触发词 | SKILL.md 路径 |
13
+ |--------|--------------|
14
+ | CRUD/增删改查/新建模块/LeRequest/PageDTO/leniu-CRUD | `.cursor/skills/leniu-crud-development/SKILL.md` |
15
+ | leniu-API/LeResult/LeResponse/云食堂接口 | `.cursor/skills/leniu-api-development/SKILL.md` |
16
+ | leniu-数据库/leniu-建表/双库/商户库/系统库/leniu-SQL | `.cursor/skills/leniu-database-ops/SKILL.md` |
17
+ | leniu-Entity/leniu-VO/leniu-DTO/@TableName/@TableField | `.cursor/skills/leniu-java-entity/SKILL.md` |
18
+ | leniu-MyBatis/leniu-Mapper/LambdaQueryWrapper/leniu-XML | `.cursor/skills/leniu-java-mybatis/SKILL.md` |
19
+ | leniu-并发/CompletableFuture/leniu-线程池 | `.cursor/skills/leniu-java-concurrent/SKILL.md` |
20
+ | leniu-日志/@Slf4j/leniu-log.info | `.cursor/skills/leniu-java-logging/SKILL.md` |
21
+ | leniu-消息队列/leniu-MQ/MqUtil/@MqConsumer | `.cursor/skills/leniu-java-mq/SKILL.md` |
22
+ | leniu-定时任务/leniu-XXL-Job/@XxlJob | `.cursor/skills/leniu-java-task/SKILL.md` |
23
+ | 报表/报表开发/报表查询/报表导出/合计行/totalLine/金额处理/分转元/餐次/mealtime/ReportBaseTotalVO/CustomNumberConverter | `.cursor/skills/leniu-report-scenario/SKILL.md` |
24
+ | leniu-异常/LeException/leniu-全局异常/leniu-I18n | `.cursor/skills/leniu-error-handler/SKILL.md` |
25
+ | leniu-注解/@RequiresAuthentication/@Validated | `.cursor/skills/leniu-backend-annotations/SKILL.md` |
26
+ | leniu-工具类/leniu-BeanUtil/leniu-StrUtil/LeBeanUtil | `.cursor/skills/leniu-utils-toolkit/SKILL.md` |
27
+ | leniu-架构/云食堂架构/双库架构/pigx框架 | `.cursor/skills/leniu-architecture-design/SKILL.md` |
28
+ | leniu-安全/leniu-认证/leniu-权限/leniu-加密 | `.cursor/skills/leniu-security-guard/SKILL.md` |
29
+ | leniu-缓存/leniu-Redis/leniu-RedisUtil/leniu-分布式锁 | `.cursor/skills/leniu-redis-cache/SKILL.md` |
30
+ | leniu-数据权限/DataScope/leniu-行级权限 | `.cursor/skills/leniu-data-permission/SKILL.md` |
31
+ | leniu-规范/leniu-禁止/leniu-命名/leniu-代码风格 | `.cursor/skills/leniu-code-patterns/SKILL.md` |
32
+ | 营销/营销规则/消费规则/计价规则/充值规则/扣款规则/就餐规则/折扣/满减/限额/限次/补贴/赠送/满赠/MarketApi/RulePriceHandler/RuleRechargeHandler | `.cursor/skills/leniu-marketing-scenario/SKILL.md` |
33
+
34
+ ### OpenSpec 工作流技能
35
+
36
+ | 触发词 | SKILL.md 路径 |
37
+ |--------|--------------|
38
+ | 新建变更/opsx:new/openspec new | `.cursor/skills/openspec-new-change/SKILL.md` |
39
+ | 快速推进/opsx:ff/openspec ff | `.cursor/skills/openspec-ff-change/SKILL.md` |
40
+ | 实现任务/opsx:apply/openspec apply | `.cursor/skills/openspec-apply-change/SKILL.md` |
41
+ | 继续变更/opsx:continue/openspec continue | `.cursor/skills/openspec-continue-change/SKILL.md` |
42
+ | 归档变更/opsx:archive/openspec archive | `.cursor/skills/openspec-archive-change/SKILL.md` |
43
+ | 批量归档/opsx:bulk-archive | `.cursor/skills/openspec-bulk-archive-change/SKILL.md` |
44
+ | 探索模式/opsx:explore/openspec explore | `.cursor/skills/openspec-explore/SKILL.md` |
45
+ | 同步规格/opsx:sync/openspec sync | `.cursor/skills/openspec-sync-specs/SKILL.md` |
46
+ | 验证变更/opsx:verify/openspec verify | `.cursor/skills/openspec-verify-change/SKILL.md` |
47
+
48
+ ### 流程编排技能
49
+
50
+ | 触发词 | SKILL.md 路径 |
51
+ |--------|--------------|
52
+ | 分析需求/需求分析/原型分析/需求拆解/分析原型图 | `.cursor/skills/analyze-requirements/SKILL.md` |
53
+ | 修复bug/fix bug/排查修复/线上修复/bug修复 | `.cursor/skills/fix-bug/SKILL.md` |
54
+
55
+ ### 通用技能
56
+
57
+ | 触发词 | SKILL.md 路径 |
58
+ |--------|--------------|
59
+ | CRUD/增删改查/Entity/Service/Controller/业务模块 | `.cursor/skills/crud-development/SKILL.md` |
60
+ | API设计/RESTful/接口规范/Swagger | `.cursor/skills/api-development/SKILL.md` |
61
+ | 数据库/SQL/建表/字典/菜单配置 | `.cursor/skills/database-ops/SKILL.md` |
62
+ | @RateLimiter/@DataScope/@RepeatSubmit | `.cursor/skills/backend-annotations/SKILL.md` |
63
+ | MapstructUtils/StreamUtils/TreeBuildUtils | `.cursor/skills/utils-toolkit/SKILL.md` |
64
+ | 文件上传/OSS/云存储/MinIO/预签名URL | `.cursor/skills/file-oss-management/SKILL.md` |
65
+ | Bug/报错/异常/不工作/NullPointerException | `.cursor/skills/bug-detective/SKILL.md` |
66
+ | 异常处理/ServiceException/全局异常 | `.cursor/skills/error-handler/SKILL.md` |
67
+ | 性能/慢查询/接口慢/N+1问题 | `.cursor/skills/performance-doctor/SKILL.md` |
68
+ | 数据权限/@DataPermission/DataScope/行级权限 | `.cursor/skills/data-permission/SKILL.md` |
69
+ | Sa-Token/认证授权/XSS/SQL注入/数据脱敏 | `.cursor/skills/security-guard/SKILL.md` |
70
+ | 架构设计/模块划分/重构/技术栈 | `.cursor/skills/architecture-design/SKILL.md` |
71
+ | 规范/禁止/命名规范/代码风格 | `.cursor/skills/code-patterns/SKILL.md` |
72
+ | 项目结构/文件在哪/定位代码/模块职责 | `.cursor/skills/project-navigator/SKILL.md` |
73
+ | git/commit/提交/分支/合并/push/pull/冲突 | `.cursor/skills/git-workflow/SKILL.md` |
74
+ | 任务跟踪/记录进度/继续任务/跨会话 | `.cursor/skills/task-tracker/SKILL.md` |
75
+ | 技术选型/方案对比/哪个好/优缺点 | `.cursor/skills/tech-decision/SKILL.md` |
76
+ | 头脑风暴/方案设计/怎么设计/有什么办法 | `.cursor/skills/brainstorm/SKILL.md` |
77
+ | 工作流/审批流/Flowable/WarmFlow | `.cursor/skills/workflow-engine/SKILL.md` |
78
+ | 单元测试/@Test/JUnit5/Mockito | `.cursor/skills/test-development/SKILL.md` |
79
+ | 自动测试/auto-test/接口测试/API测试/Hurl/测试报告/回归测试 | `.cursor/skills/auto-test/SKILL.md` |
80
+ | JSON/序列化/反序列化/JsonUtils/BigDecimal精度 | `.cursor/skills/json-serialization/SKILL.md` |
81
+ | Redis/缓存/@Cacheable/@CacheEvict/分布式锁/RLock | `.cursor/skills/redis-cache/SKILL.md` |
82
+ | 定时任务/SnailJob/@Scheduled/@JobExecutor | `.cursor/skills/scheduled-jobs/SKILL.md` |
83
+ | WebSocket/SSE/实时推送/消息通知/双向通信 | `.cursor/skills/websocket-sse/SKILL.md` |
84
+ | 短信/邮件/SMS/验证码/MailUtils | `.cursor/skills/sms-mail/SKILL.md` |
85
+ | 第三方登录/微信登录/OAuth/JustAuth/扫码登录 | `.cursor/skills/social-login/SKILL.md` |
86
+ | 蓝湖/lanhu/设计稿/蓝湖链接/设计图/切图 | `.cursor/skills/lanhu-design/SKILL.md` |
87
+ | 多租户/租户隔离/TenantEntity/tenantId/SaaS | `.cursor/skills/tenant-management/SKILL.md` |
88
+ | Element UI/前端组件/el-table/el-form/管理页面 | `.cursor/skills/ui-pc/SKILL.md` |
89
+ | Vuex/store/mapState/mapActions/状态管理 | `.cursor/skills/store-pc/SKILL.md` |
90
+ | 打包/部署/Jenkins/构建/Portainer/发布到dev/发布到test/自动部署 | `.cursor/skills/jenkins-deploy/SKILL.md` |
91
+
92
+ ### 执行规则
93
+
94
+ 1. **识别触发词** → 找到匹配的技能
95
+ 2. **读取 SKILL.md** → 使用 Read 工具读取对应文件
96
+ 3. **严格遵循规范** → 按照文档中的规范实现,不得违反禁令
97
+ 4. **多技能时逐个读取** → 有多个匹配技能时,依次读取所有 SKILL.md
98
+
99
+ > SKILL.md 文档包含本项目特定的实现规范,必须优先参考,禁止使用通用写法替代。