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,104 @@
1
+ # SysOssServiceImpl 完整实现
2
+
3
+ > 位置:`ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java`
4
+
5
+ ## 文件上传
6
+
7
+ ```java
8
+ @RequiredArgsConstructor
9
+ @Service
10
+ public class SysOssServiceImpl implements ISysOssService {
11
+
12
+ private final SysOssMapper baseMapper;
13
+
14
+ @Override
15
+ public SysOssVo upload(MultipartFile file) {
16
+ if (ObjectUtil.isNull(file) || file.isEmpty()) {
17
+ throw new ServiceException("上传文件不能为空");
18
+ }
19
+
20
+ String originalfileName = file.getOriginalFilename();
21
+ String suffix = StringUtils.substring(originalfileName,
22
+ originalfileName.lastIndexOf("."),
23
+ originalfileName.length());
24
+
25
+ OssClient storage = OssFactory.instance();
26
+
27
+ UploadResult uploadResult;
28
+ try {
29
+ uploadResult = storage.uploadSuffix(file.getBytes(), suffix, file.getContentType());
30
+ } catch (IOException e) {
31
+ throw new ServiceException(e.getMessage());
32
+ }
33
+
34
+ SysOssExt ext1 = new SysOssExt();
35
+ ext1.setFileSize(file.getSize());
36
+ ext1.setContentType(file.getContentType());
37
+
38
+ return buildResultEntity(originalfileName, suffix,
39
+ storage.getConfigKey(), uploadResult, ext1);
40
+ }
41
+
42
+ private SysOssVo buildResultEntity(String originalfileName, String suffix,
43
+ String configKey, UploadResult uploadResult, SysOssExt ext1) {
44
+
45
+ SysOss oss = new SysOss();
46
+ oss.setUrl(uploadResult.getUrl());
47
+ oss.setFileSuffix(suffix);
48
+ oss.setFileName(uploadResult.getFilename()); // 小写 'n'
49
+ oss.setOriginalName(originalfileName);
50
+ oss.setService(configKey);
51
+ oss.setExt1(JsonUtils.toJsonString(ext1));
52
+
53
+ baseMapper.insert(oss);
54
+ SysOssVo sysOssVo = MapstructUtils.convert(oss, SysOssVo.class);
55
+ return this.matchingUrl(sysOssVo);
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## 文件下载
61
+
62
+ ```java
63
+ @Override
64
+ public void download(Long ossId, HttpServletResponse response) throws IOException {
65
+ SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId);
66
+ if (ObjectUtil.isNull(sysOss)) {
67
+ throw new ServiceException("文件数据不存在!");
68
+ }
69
+
70
+ FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName());
71
+ response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8");
72
+
73
+ OssClient storage = OssFactory.instance(sysOss.getService());
74
+ storage.download(sysOss.getFileName(),
75
+ response.getOutputStream(),
76
+ response::setContentLengthLong);
77
+ }
78
+ ```
79
+
80
+ ## 文件删除
81
+
82
+ ```java
83
+ @Override
84
+ public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
85
+ List<SysOss> list = baseMapper.selectByIds(ids);
86
+ for (SysOss sysOss : list) {
87
+ OssClient storage = OssFactory.instance(sysOss.getService());
88
+ storage.delete(sysOss.getUrl());
89
+ }
90
+ return baseMapper.deleteByIds(ids) > 0;
91
+ }
92
+ ```
93
+
94
+ ## 私有桶预签名URL
95
+
96
+ ```java
97
+ private SysOssVo matchingUrl(SysOssVo oss) {
98
+ OssClient storage = OssFactory.instance(oss.getService());
99
+ if (AccessPolicyType.PRIVATE == storage.getAccessPolicy()) {
100
+ oss.setUrl(storage.createPresignedGetUrl(oss.getFileName(), Duration.ofSeconds(120)));
101
+ }
102
+ return oss;
103
+ }
104
+ ```
@@ -0,0 +1,269 @@
1
+ ---
2
+ name: fix-bug
3
+ description: |
4
+ Bug 修复全流程编排。两阶段 Agent 排查 + 报告确认 + git-workflow 提交。
5
+
6
+ 触发场景:
7
+ - 修复 Bug(含日志/traceId/数据库信息)
8
+ - 线上问题排查与修复
9
+ - 报表数据不正确需排查修复
10
+ - 接口返回异常需定位修复
11
+
12
+ 触发词:修复bug、fix bug、修复、排查修复、线上修复、bug修复
13
+ ---
14
+
15
+ # Bug 修复全流程
16
+
17
+ ## 核心原则
18
+
19
+ **先判断复杂度,简单 Bug 直接修,复杂 Bug 走两阶段 Agent 排查。搞清原因后先出报告,用户确认后再修复代码。**
20
+
21
+ ## 步骤 0:复杂度判断(必须先做)
22
+
23
+ ```
24
+ 用户提供 Bug 线索
25
+
26
+ ├─ 简单 Bug? ──→ 快速路径
27
+ │ - 明显的代码错误(NPE、空判断遗漏、拼写错误)
28
+ │ - 用户已明确指出问题和修改方案
29
+ │ - 单文件改动,逻辑清晰
30
+ │ - 不需要查数据库/日志验证
31
+
32
+ └─ 复杂 Bug? ──→ Agent 路径(两阶段排查)
33
+ - 需要查日志确认线上行为(提供了 traceId)
34
+ - 需要查数据库验证数据正确性(提供了 DB 信息)
35
+ - 问题根因不明确,需要多维度分析
36
+ - 涉及多模块/多表关联的数据问题
37
+ ```
38
+
39
+ ## 快速路径(简单 Bug)
40
+
41
+ ```
42
+ 读代码 → 定位问题 → 输出排查报告 → 用户确认 → 修复 → git-workflow 提交
43
+ ```
44
+
45
+ 不启动 Agent,直接在主对话中完成。即使是简单 Bug,也先说明问题原因和修复方案,等用户确认再动手。
46
+
47
+ ## Agent 路径(复杂 Bug)
48
+
49
+ ```
50
+ 步骤 1:收集信息(从用户消息中提取)
51
+ - traceId / 错误日志
52
+ - 数据库环境(host/port/库名)
53
+ - Loki 日志环境
54
+ - Bug 描述 / 期望行为
55
+
56
+ 步骤 2(阶段一):并行启动 Agent
57
+ ├── bug-analyzer: 读代码分析根因
58
+ ├── loki-runner: 查 Loki 日志(有 traceId 时)
59
+ └── mysql-runner: 查数据库验证数据(有 DB 信息时)
60
+
61
+ 步骤 3(阶段二):日志驱动二次查询
62
+ 从 loki-runner 结果中提取:
63
+ ├── 表名(INSERT/UPDATE/DELETE/FROM/JOIN 后面的表名)
64
+ ├── 数据 ID(id=xxx、orderId=xxx 等)
65
+ ├── 租户 ID(tenantId、MERCHANT-ID 请求头)
66
+ └── SQL 语句片段
67
+ 如果提取到有效的表名+ID → 自动启动 mysql-runner 二次查询
68
+
69
+ 步骤 4:汇总所有结果 → 输出排查报告(见下方模板)
70
+
71
+ 步骤 5:⏸️ 等待用户确认修复方案
72
+
73
+ 步骤 6:用户确认后 → 修复代码
74
+
75
+ 步骤 7:走 git-workflow 提交
76
+ ```
77
+
78
+ ## 排查报告模板(必须输出)
79
+
80
+ 无论简单还是复杂 Bug,修复代码前**必须先输出报告**:
81
+
82
+ ```markdown
83
+ ## 🔍 Bug 排查报告
84
+
85
+ ### 问题描述
86
+ {用户报告的现象}
87
+
88
+ ### 根因分析
89
+ {代码层面的根本原因,指出具体文件和行号}
90
+
91
+ ### 数据验证(如有)
92
+ {从日志/数据库中发现的关键数据,证实根因}
93
+
94
+ ### 修复方案
95
+ - 修改文件:`xxx.java` 第 N 行
96
+ - 修改内容:{具体改动描述}
97
+ - 影响范围:{改动是否影响其他功能}
98
+
99
+ ### 风险评估
100
+ - 低/中/高
101
+ - {风险说明}
102
+
103
+ ---
104
+ 确认修复请回复"修",需要调整方案请说明。
105
+ ```
106
+
107
+ **⚠️ 禁止跳过报告直接修改代码。必须等用户明确确认后才能开始修复。**
108
+
109
+ ## 阶段二:日志驱动二次查询
110
+
111
+ 当阶段一的 loki-runner 返回日志后,主会话检查日志内容:
112
+
113
+ ```
114
+ loki-runner 返回日志
115
+
116
+ ├─ 日志中包含 SQL/表名/数据ID?
117
+ │ │
118
+ │ ├─ 阶段一已启动 mysql-runner?
119
+ │ │ → 检查是否需要追加查询(不同的表或ID)
120
+ │ │ → 需要则启动新的 mysql-runner 查询
121
+ │ │
122
+ │ └─ 阶段一未启动 mysql-runner?
123
+ │ → 从日志提取表名+ID+租户ID
124
+ │ → 自动启动 mysql-runner 二次查询
125
+
126
+ └─ 日志中无数据库相关信息?
127
+ → 跳过,直接汇总现有结果
128
+ ```
129
+
130
+ ### 日志中常见的可提取信息
131
+
132
+ | 日志模式 | 提取内容 | 查询方式 |
133
+ |---------|---------|---------|
134
+ | `INSERT INTO order_info` | 表名 order_info | `SELECT * FROM order_info WHERE id = ?` |
135
+ | `UPDATE account SET balance=` | 表名 account | `SELECT * FROM account WHERE id = ?` |
136
+ | `orderId=123456` | 数据 ID | 按 ID 查对应表 |
137
+ | `MERCHANT-ID: 100` | 租户 ID | 切换到对应租户库查询 |
138
+ | `Duplicate entry 'xxx'` | 唯一键冲突 | 查重复数据 |
139
+ | `Data truncation` | 字段溢出 | 查表结构 `DESC table_name` |
140
+
141
+ ## Agent 启动规则
142
+
143
+ ### 阶段一:必须并行(单条消息多个 Agent tool call)
144
+
145
+ ```
146
+ # 正确:一条消息同时启动
147
+ Agent(bug-analyzer, "分析 xxx 代码的 bug...")
148
+ Agent(loki-runner, "查询 traceId xxx 的日志...")
149
+ Agent(mysql-runner, "查询 xxx 数据库验证...")
150
+
151
+ # 错误:串行启动(等一个完再启动下一个)
152
+ ```
153
+
154
+ ### 阶段二:按需启动(阶段一结果返回后)
155
+
156
+ ```
157
+ # 从 loki-runner 结果中发现了表名和数据ID
158
+ Agent(mysql-runner, "根据日志发现涉及 order_info 表,查询 id=xxx 的数据...")
159
+ ```
160
+
161
+ ### 各 Agent 职责
162
+
163
+ | Agent | subagent_type | 职责 | 输入 |
164
+ |-------|---------------|------|------|
165
+ | 代码分析 | `bug-analyzer` | 读代码、分析根因、给修复方案 | Bug 描述 + 相关文件路径 |
166
+ | 数据库验证 | `mysql-runner` | 查数据验证业务逻辑 | DB 连接信息 + 验证 SQL |
167
+ | 日志查询 | `loki-runner` | 查 Loki 日志看线上行为 | Loki 环境 + traceId |
168
+
169
+ ### Agent 信息来源
170
+
171
+ **配置文件优先**,不存在时自动创建模板并提示用户填写:
172
+
173
+ | 配置 | 文件路径 |
174
+ |------|---------|
175
+ | MySQL | `.claude/mysql-config.json` |
176
+ | Loki | `.claude/skills/loki-log-query/environments.json` |
177
+
178
+ **配置获取流程**:
179
+ ```
180
+ 需要连 MySQL/Loki?
181
+
182
+ ├─ 配置文件存在且有有效凭证? → 直接使用
183
+
184
+ ├─ 配置文件存在但是占位符? → 提示用户填写敏感信息,等用户确认后继续
185
+
186
+ └─ 配置文件不存在? → 创建模板文件(占位符) → 提示用户填写 → 等确认后继续
187
+ ```
188
+
189
+ **敏感信息由用户手动填写,禁止 AI 将对话中的密码/token 写入配置文件。**
190
+
191
+ ### 按信息量决定启动哪些 Agent
192
+
193
+ | 用户提供的信息 | 阶段一启动 | 阶段二(日志驱动) |
194
+ |---------------|-----------|-----------------|
195
+ | 只有 Bug 描述 | bug-analyzer | — |
196
+ | Bug 描述 + traceId | bug-analyzer + loki-runner | 日志中有表名/ID → mysql-runner |
197
+ | Bug 描述 + DB 信息 | bug-analyzer + mysql-runner | — |
198
+ | Bug 描述 + traceId + DB 信息 | 全部 | 日志中有新表/ID → mysql-runner 追加查询 |
199
+
200
+ ## SQL 报表 Bug 专项流程
201
+
202
+ 当 Bug 涉及 **SQL 查询逻辑错误**(SUM/GROUP BY/CASE WHEN/金额计算等),启用以下验证流程:
203
+
204
+ ### 修复前:建立基线
205
+
206
+ ```
207
+ 1. 读取当前 Mapper XML,理解现有 SQL 逻辑
208
+ 2. 如果有已修复的参考查询(如同模块的明细查询),先读取其 SQL 逻辑作为正确参考
209
+ 3. 查库获取当前错误结果作为"修复前基线"(可选,用户提供 DB 时执行)
210
+ ```
211
+
212
+ ### 修复后:交叉验证(必须执行)
213
+
214
+ **两步验证法**(以本项目销售汇总修复为典型案例):
215
+
216
+ ```
217
+ 步骤 1:直接执行修改后的 SQL,验证基本逻辑
218
+ - 检查各记录类型是否正确处理(称重/按份、正向/逆向、入库/出库)
219
+ - 检查特殊值:NULL 处理、除零保护、边界条件
220
+
221
+ 步骤 2:交叉对比验证
222
+ - 方法 A:用已修复的明细查询做 SUM 汇总
223
+ - 方法 B:执行修改后的汇总查询
224
+ - 对比 A vs B:总计必须完全一致
225
+ - 按维度对比(按商品/按门店等):逐行 MATCH/DIFF
226
+ ```
227
+
228
+ ### 验证 SQL 模板
229
+
230
+ ```sql
231
+ -- 交叉验证:明细汇总 vs 汇总查询
232
+ SELECT '明细汇总' as source, SUM(saleNum), SUM(cost), ...
233
+ FROM (/* 明细查询逐行 */) detail
234
+ UNION ALL
235
+ SELECT '汇总查询' as source, ...
236
+ FROM /* 汇总查询 */;
237
+
238
+ -- 按维度逐行对比
239
+ SELECT COALESCE(d.name, s.name) as name,
240
+ d.detail_value, s.summary_value,
241
+ CASE WHEN d.detail_value = s.summary_value THEN 'MATCH' ELSE 'DIFF' END as result
242
+ FROM (/* 明细按维度 GROUP BY */) d
243
+ LEFT JOIN (/* 汇总按维度 GROUP BY */) s ON d.id = s.id;
244
+ ```
245
+
246
+ ### SQL 修改注意事项
247
+
248
+ | 规则 | 说明 |
249
+ |------|------|
250
+ | **保留 WHERE 条件** | 新增/修改查询必须包含与现有查询相同的过滤条件 |
251
+ | **GROUP BY 优先** | 优先添加字段到 GROUP BY,不用 ANY_VALUE() |
252
+ | **JOIN 一致性** | 主查询和合计查询的 JOIN 必须一致(如 drp_unit) |
253
+ | **IFNULL 保护** | 除法运算中的分母必须用 IFNULL 防止除零 |
254
+ | **业务类型分支** | CASE WHEN 必须覆盖所有业务类型(称重/按份、入库/出库等) |
255
+
256
+ ## 提交规则
257
+
258
+ 修复完成后,**必须调用 `Skill(git-workflow)` 再执行 git 操作**。
259
+
260
+ 禁止:
261
+ - 直接 `git commit && git push` 跳过技能
262
+ - 在 Agent 内部执行 git 操作
263
+
264
+ ## 注意
265
+
266
+ - 简单 Bug 不要过度编排,直接修就行(但仍需先报告再修复)
267
+ - 如果用户没提供 DB/Loki 信息但 Bug 涉及数据问题,主动询问
268
+ - 与 `bug-detective` 技能的区别:`bug-detective` 是排查指南,`fix-bug` 是全流程编排(包含排查+修复+提交)
269
+ - SQL 报表 Bug 修复后**必须执行交叉验证**,不能只看"能跑"就提交
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: git-workflow
3
+ description: |
4
+ 通用 Git 工作流指南。涵盖分支策略、提交规范、PR 流程、冲突解决等。
5
+ 触发场景:Git 操作、分支管理、提交规范、代码合并。
6
+ 触发词:Git、分支、提交、合并、rebase、PR。
7
+ 注意:如果项目有专属技能(如 `leniu-git-workflow`),优先使用专属版本。
8
+ ---
9
+
10
+ # Git 工作流指南
11
+
12
+ > 通用模板。如果项目有专属技能(如 `leniu-git-workflow`),优先使用。
13
+
14
+ ## 核心规范
15
+
16
+ ### 分支策略(Git Flow)
17
+
18
+ ```
19
+ main (production)
20
+
21
+ ├── hotfix/fix-payment-bug ← 紧急修复,从 main 拉出
22
+
23
+ develop (integration)
24
+
25
+ ├── feature/order-export ← 功能开发,从 develop 拉出
26
+ ├── feature/user-profile ← 并行开发
27
+
28
+ └── release/v1.2.0 ← 发布准备,从 develop 拉出
29
+ ```
30
+
31
+ | 分支类型 | 来源 | 合并目标 | 命名 |
32
+ |---------|------|---------|------|
33
+ | `main` | - | - | `main` |
34
+ | `develop` | `main` | `main` | `develop` |
35
+ | `feature/*` | `develop` | `develop` | `feature/功能描述` |
36
+ | `release/*` | `develop` | `main` + `develop` | `release/v1.x.x` |
37
+ | `hotfix/*` | `main` | `main` + `develop` | `hotfix/问题描述` |
38
+
39
+ ### 简化策略(GitHub Flow,适合小团队)
40
+
41
+ ```
42
+ main
43
+ ├── feature/order-export
44
+ ├── fix/login-error
45
+ └── chore/upgrade-deps
46
+ ```
47
+
48
+ - 只有 `main` 一个长期分支
49
+ - 所有开发从 `main` 拉分支,完成后通过 PR 合并回 `main`
50
+
51
+ ### 提交规范(Conventional Commits)
52
+
53
+ ```
54
+ <type>(<scope>): <subject>
55
+ ```
56
+
57
+ | type | 说明 | 示例 |
58
+ |------|------|------|
59
+ | `feat` | 新功能 | `feat(order): 新增订单导出` |
60
+ | `fix` | 修复 Bug | `fix(auth): 修复 token 过期未刷新` |
61
+ | `docs` | 文档 | `docs: 更新 API 文档` |
62
+ | `style` | 格式 | `style: 统一缩进为 4 空格` |
63
+ | `refactor` | 重构 | `refactor(user): 拆分用户服务` |
64
+ | `perf` | 性能 | `perf(query): 优化列表查询 N+1` |
65
+ | `test` | 测试 | `test(order): 补充订单创建单测` |
66
+ | `chore` | 构建/工具 | `chore: 升级 Spring Boot 3.2` |
67
+ | `ci` | CI/CD | `ci: 添加 GitHub Actions 流水线` |
68
+
69
+ **规则**:
70
+ - subject 使用中文或英文,但全项目统一
71
+ - 不超过 72 字符
72
+ - 不以句号结尾
73
+ - 使用祈使语气("添加"而非"添加了")
74
+
75
+ ### 提交行为规范
76
+
77
+ 1. **只提交当前会话的改动**:精确 `git add` 修改的文件,不要 `git add .`
78
+ 2. **不提交配置文件**:排除 `.env*`、`application-*.yml` 等环境配置
79
+ 3. **默认只提交到本地**:执行 `git add` + `git commit`,不自动 push
80
+ 4. **明确指定才推送**:只有用户明确说"推送"、"push"时才执行 `git push`
81
+
82
+ ## 代码示例
83
+
84
+ ### 常用 Git 操作
85
+
86
+ ```bash
87
+ # 创建功能分支
88
+ git checkout develop
89
+ git pull origin develop
90
+ git checkout -b feature/order-export
91
+
92
+ # 开发完成,合并前更新
93
+ git fetch origin
94
+ git rebase origin/develop
95
+
96
+ # 解决冲突后继续
97
+ git add .
98
+ git rebase --continue
99
+
100
+ # 推送并创建 PR
101
+ git push -u origin feature/order-export
102
+ gh pr create --base develop --title "feat(order): 新增订单导出功能"
103
+ ```
104
+
105
+ ### 常用 Git 修复操作
106
+
107
+ ```bash
108
+ # 修改最后一次提交信息
109
+ git commit --amend -m "fix(order): 修复订单金额计算"
110
+
111
+ # 撤销最后一次提交(保留修改)
112
+ git reset --soft HEAD~1
113
+
114
+ # 暂存当前修改
115
+ git stash
116
+ git stash pop
117
+
118
+ # 挑选某个提交到当前分支
119
+ git cherry-pick <commit-hash>
120
+
121
+ # 查看某个文件的修改历史
122
+ git log --oneline -20 -- path/to/file
123
+ ```
124
+
125
+ ### PR / Code Review 规范
126
+
127
+ 1. **PR 大小**:单个 PR 不超过 400 行变更(不含自动生成代码)
128
+ 2. **PR 描述**:说明改了什么、为什么改、如何测试
129
+ 3. **自查清单**:
130
+ - [ ] 代码能编译通过
131
+ - [ ] 新功能有对应测试
132
+ - [ ] 没有遗留 TODO / 调试代码
133
+ - [ ] 数据库变更有迁移脚本
134
+ 4. **Review 要点**:
135
+ - 逻辑正确性 > 代码风格
136
+ - 关注边界条件和异常处理
137
+ - 检查安全隐患(SQL 注入、XSS 等)
138
+
139
+ ### .gitignore 推荐配置
140
+
141
+ ```gitignore
142
+ # IDE
143
+ .idea/
144
+ *.iml
145
+ .vscode/
146
+ *.swp
147
+
148
+ # Build
149
+ target/
150
+ build/
151
+ dist/
152
+ node_modules/
153
+
154
+ # Environment
155
+ .env
156
+ .env.local
157
+ *.local
158
+
159
+ # OS
160
+ .DS_Store
161
+ Thumbs.db
162
+
163
+ # Logs
164
+ *.log
165
+ logs/
166
+ ```
167
+
168
+ ## 常见错误
169
+
170
+ | 错误 | 正确做法 |
171
+ |------|---------|
172
+ | 直接在 main 上开发 | 创建功能分支 |
173
+ | 提交信息写"update"、"fix bug" | 按 Conventional Commits 规范 |
174
+ | 一个 PR 包含多个不相关改动 | 拆分为多个 PR |
175
+ | `git push --force` 到公共分支 | 只对个人分支 force push |
176
+ | 提交 .env、密钥文件 | 加入 .gitignore |
177
+ | merge 前不更新目标分支 | 先 rebase/merge 最新代码 |
178
+ | 忽略 CI 失败直接合并 | 修复 CI 后再合并 |
179
+ | `git add .` 一把梭 | 精确添加修改的业务文件 |
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: jenkins-deploy
3
+ description: |
4
+ Jenkins + Portainer 自动打包部署技能。通过 Python 脚本调用 Jenkins API 构建项目,并触发 Portainer Webhook/Update 完成容器更新。
5
+
6
+ 触发场景:
7
+ - 需要将代码打包部署到 dev/test 环境
8
+ - 需要触发 Jenkins 构建 core 或 api 项目
9
+ - 需要更新 Portainer 容器服务
10
+ - 需要查看或修改构建配置(分支、环境、模式)
11
+ - 定制项目的打包部署
12
+
13
+ 触发词:打包、部署、Jenkins、构建、Portainer、发布到dev、发布到test、更新环境、自动部署
14
+ ---
15
+
16
+ # Jenkins + Portainer 自动打包部署
17
+
18
+ ## 架构
19
+
20
+ ```
21
+ 技能目录(随框架更新,不复制到项目):
22
+ ~/.claude/skills/jenkins-deploy/assets/jk_build.py ← 构建脚本
23
+
24
+ 全局配置(一次性配置,所有项目共享):
25
+ ~/.claude/jenkins-config.json ← 凭证(Jenkins/Portainer)
26
+
27
+ 项目本地(自动生成):
28
+ jenkins/last_cd_env.json ← 构建状态(环境、分支、模式)
29
+ ```
30
+
31
+ 脚本按 **本地 `.claude/` > 全局 `~/.claude/`** 优先级查找 `jenkins-config.json`。
32
+
33
+ ## 构建模式
34
+
35
+ | 模式 | 说明 | 执行步骤 |
36
+ |------|------|---------|
37
+ | `0` | 只构建 | 构建 core + api,不更新 Portainer |
38
+ | `1` | 全构建+更新 | 构建 core + api → 触发 Portainer 更新 |
39
+ | `2` | 构建 api+更新 | 跳过 core,构建 api → 触发 Portainer 更新 |
40
+ | `3` | 只更新 | 不构建,直接触发 Portainer 更新 |
41
+
42
+ ## 环境支持
43
+
44
+ | 环境 | 前缀 | Portainer 更新方式 |
45
+ |------|------|-------------------|
46
+ | dev1~15 | `dev` | Webhook 触发 |
47
+ | dev16~43 | `dev` | Force Update(xnzn-dev.xnzn.net) |
48
+ | dev44+ | `dev` | 只支持模式 0(手动更新) |
49
+ | test | `test` | Webhook 触发 |
50
+
51
+ ## 使用方式
52
+
53
+ ### 运行构建脚本
54
+
55
+ ```bash
56
+ python ~/.claude/skills/jenkins-deploy/assets/jk_build.py
57
+ ```
58
+
59
+ 脚本交互式询问:模式 → 环境 → core 分支 → api 分支 → 定制工程文件夹
60
+
61
+ ### 通过 AI 辅助部署
62
+
63
+ 当用户说"打包到 devX"时:
64
+
65
+ 1. 读取 `jenkins/last_cd_env.json` 获取上次参数
66
+ 2. 确认参数:环境、分支、模式
67
+ 3. 修改 `jenkins/last_cd_env.json` 写入新参数
68
+ 4. 执行 `python ~/.claude/skills/jenkins-deploy/assets/jk_build.py`
69
+
70
+ ## 配置文件
71
+
72
+ ### jenkins-config.json(凭证,全局)
73
+
74
+ 位置:`~/.claude/jenkins-config.json`(或本地 `.claude/jenkins-config.json`)
75
+
76
+ 模板:`.claude/skills/jenkins-deploy/assets/env_param.template.json`
77
+
78
+ > **注意**:此文件包含敏感凭证,不要将内容输出到对话中。
79
+
80
+ ### last_cd_env.json(构建状态,项目本地)
81
+
82
+ 位置:`jenkins/last_cd_env.json`(脚本自动创建,无需手动初始化)
83
+
84
+ ```json
85
+ {
86
+ "build_mode": "1",
87
+ "cd_env": "dev1",
88
+ "core_param_branch": "master",
89
+ "api_param_branch": "master",
90
+ "api_param_folder": null
91
+ }
92
+ ```
93
+
94
+ ## 定制项目
95
+
96
+ 指定 `api_param_folder` 后,Jenkins Job 路径变为:
97
+
98
+ ```
99
+ {folder_name}/dev-后端-core
100
+ {folder_name}/dev-后端-api
101
+ ```
102
+
103
+ ## 首次初始化(团队成员)
104
+
105
+ 只需一步:配置全局凭证文件。
106
+
107
+ ```bash
108
+ # 方式 1:从团队成员拷贝
109
+ cp /path/to/teammate/jenkins-config.json ~/.claude/jenkins-config.json
110
+
111
+ # 方式 2:从模板创建,手动填写凭证
112
+ cp ~/.claude/skills/jenkins-deploy/assets/env_param.template.json ~/.claude/jenkins-config.json
113
+ # 然后替换 __JENKINS_*__ 和 __PORTAINER_*__ 占位符
114
+ ```
115
+
116
+ ### AI 初始化行为
117
+
118
+ 当技能被触发但 `jenkins-config.json` 不存在时:
119
+ 1. 提示"检测到尚未配置 Jenkins 凭证"
120
+ 2. 询问是否从模板创建
121
+ 3. 复制模板到 `~/.claude/jenkins-config.json`
122
+ 4. 提示用户填写凭证(或拷贝已有配置)
123
+
124
+ ## 依赖
125
+
126
+ ```bash
127
+ pip install python-jenkins requests
128
+ ```
129
+
130
+ ## 注意
131
+
132
+ - 本技能用于 dev/test 环境部署,**不涉及生产环境**
133
+ - 如果是 Git 提交/分支管理,请使用 `git-workflow` 技能
134
+ - 如果是代码构建错误排查,请使用 `bug-detective` 技能