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,260 @@
1
+ # 系统接口请求响应规范(详细参考)
2
+
3
+ > 本文件定义了 leniu 系统的标准接口契约。生成测试用例时**必须严格匹配**这些模式。
4
+ > 安装框架后可直接使用,无需额外学习。
5
+
6
+ ## 统一请求格式
7
+
8
+ 所有 POST 接口使用 `LeRequest<T>` 封装,业务参数放在 `content` 字段内:
9
+
10
+ ```json
11
+ {
12
+ "content": { /* 业务参数 */ }
13
+ }
14
+ ```
15
+
16
+ ## 统一响应格式
17
+
18
+ ```json
19
+ {
20
+ "code": 10000, // 业务码:10000=成功,其他=失败
21
+ "msg": "操作成功", // 提示信息
22
+ "data": ... // 业务数据(类型取决于接口)
23
+ }
24
+ ```
25
+
26
+ ## 接口类型与响应模式速查
27
+
28
+ 根据 Controller 方法返回值类型,确定 data 的结构和对应断言:
29
+
30
+ | Controller 返回类型 | data 类型 | 示例 | Hurl 断言模板 |
31
+ |---------------------|----------|------|--------------|
32
+ | `Long` | 雪花 ID | `$.data` = 1234567890 | `jsonpath "$.data" isInteger` |
33
+ | `void` | null | `$.data` = null | `jsonpath "$.code" == 10000` |
34
+ | `XxxVO` | 对象 | `$.data.id`, `$.data.name` | `jsonpath "$.data.id" exists` |
35
+ | `PageVO<XxxVO>` | 分页对象 | `$.data.records[0]` | 见「标准分页」 |
36
+ | `ReportBaseTotalVO<XxxVO>` | 分页+合计 | `$.data.resultPage` + `$.data.totalLine` | 见「报表分页」 |
37
+
38
+ ## 标准分页响应(PageVO)
39
+
40
+ **适用于**:设置类 CRUD 分页查询(如凭证类型、凭证字)
41
+
42
+ ```json
43
+ {
44
+ "code": 10000,
45
+ "data": {
46
+ "records": [ { "id": 1, "name": "..." }, ... ],
47
+ "current": 1,
48
+ "size": 10,
49
+ "total": 25
50
+ }
51
+ }
52
+ ```
53
+
54
+ **Hurl 断言模板**:
55
+
56
+ ```hurl
57
+ HTTP 200
58
+ [Asserts]
59
+ jsonpath "$.code" == 10000
60
+ jsonpath "$.data.records" isCollection
61
+ jsonpath "$.data.current" exists
62
+ jsonpath "$.data.size" exists
63
+ jsonpath "$.data.total" exists
64
+ # VO 字段逐一验证
65
+ jsonpath "$.data.records[0].id" exists
66
+ jsonpath "$.data.records[0].typeName" isString
67
+ ```
68
+
69
+ ## 报表分页响应(ReportBaseTotalVO)
70
+
71
+ **适用于**:报表类分页查询(凭证列表、科目明细、科目汇总),响应包含 `resultPage`(分页数据)+ `totalLine`(合计行)
72
+
73
+ ```json
74
+ {
75
+ "code": 10000,
76
+ "data": {
77
+ "resultPage": {
78
+ "records": [ { ... }, ... ],
79
+ "current": 1,
80
+ "size": 10,
81
+ "total": 25
82
+ },
83
+ "totalLine": {
84
+ "debitAmount": 1285100,
85
+ "creditAmount": 1285000
86
+ }
87
+ }
88
+ }
89
+ ```
90
+
91
+ **Hurl 断言模板**:
92
+
93
+ ```hurl
94
+ HTTP 200
95
+ [Asserts]
96
+ jsonpath "$.code" == 10000
97
+ # 分页结构
98
+ jsonpath "$.data.resultPage" exists
99
+ jsonpath "$.data.resultPage.records" isCollection
100
+ jsonpath "$.data.resultPage.current" exists
101
+ jsonpath "$.data.resultPage.size" exists
102
+ jsonpath "$.data.resultPage.total" exists
103
+ # VO 字段逐一验证(首条记录)
104
+ jsonpath "$.data.resultPage.records[0].voucherDate" isString
105
+ jsonpath "$.data.resultPage.records[0].areaName" isString
106
+ jsonpath "$.data.resultPage.records[0].costTypeName" isString # 关联字段不能为 null
107
+ # 合计行(只有数值字段和方向字段,其余为 null 占位)
108
+ jsonpath "$.data.totalLine" exists
109
+ jsonpath "$.data.totalLine.debitAmount" exists
110
+ jsonpath "$.data.totalLine.creditAmount" exists
111
+ ```
112
+
113
+ ## 各操作类型的请求与响应模式
114
+
115
+ ### 1. 新增(save)→ 返回 Long ID
116
+
117
+ ```hurl
118
+ # Controller: Long save(LeRequest<XxxSaveParam>)
119
+ POST {{base_url}}/report/finance/voucher/save
120
+ Content-Type: application/json
121
+ X-Token: {{x_token}}
122
+ merchant-id: {{merchant_id}}
123
+ Merchant-Id: {{merchant_id_auth}}
124
+ {
125
+ "content": {
126
+ "areaId": {{area_id}},
127
+ "name": "auto-test数据,可删除",
128
+ "entries": [ ... ]
129
+ }
130
+ }
131
+
132
+ HTTP 200
133
+ [Asserts]
134
+ jsonpath "$.code" == 10000
135
+ [Captures]
136
+ created_id: jsonpath "$.data" # 捕获返回的 ID 供后续使用
137
+ ```
138
+
139
+ ### 2. 编辑(save 带 id / update)→ 返回 void
140
+
141
+ ```hurl
142
+ # 方式一:save 带 id(delete-insert 模式,常用于主子表)
143
+ POST {{base_url}}/report/finance/voucher/save
144
+ { "content": { "id": {{created_id}}, "name": "修改后", ... } }
145
+
146
+ # 方式二:独立 update 接口
147
+ POST {{base_url}}/report/finance/setting/voucher-type/update
148
+ { "content": { "id": {{type_id}}, "typeName": "修改后" } }
149
+
150
+ HTTP 200
151
+ [Asserts]
152
+ jsonpath "$.code" == 10000
153
+ ```
154
+
155
+ ### 3. 查详情(detail)→ 返回 XxxVO 对象
156
+
157
+ ```hurl
158
+ # Controller: XxxDetailVO detail(LeRequest<Long>)
159
+ # 注意:content 直接传 ID 值(Long),不需要包装对象
160
+ POST {{base_url}}/report/finance/voucher/detail
161
+ { "content": {{created_id}} }
162
+
163
+ HTTP 200
164
+ [Asserts]
165
+ jsonpath "$.code" == 10000
166
+ jsonpath "$.data.id" exists
167
+ jsonpath "$.data.areaName" isString
168
+ jsonpath "$.data.entries" isCollection # 子表数据
169
+ jsonpath "$.data.entries" count == 2
170
+ jsonpath "$.data.entries[0].id" exists
171
+ ```
172
+
173
+ ### 4. 删除(delete)→ 返回 void
174
+
175
+ ```hurl
176
+ # Controller: void delete(LeRequest<Long>)
177
+ # 注意:content 直接传 ID 值(Long)
178
+ POST {{base_url}}/report/finance/voucher/delete
179
+ { "content": {{created_id}} }
180
+
181
+ HTTP 200
182
+ [Asserts]
183
+ jsonpath "$.code" == 10000
184
+ ```
185
+
186
+ ### 5. 提交/审批等状态变更 → 返回 void
187
+
188
+ ```hurl
189
+ # Controller: void submit(LeRequest<Long>)
190
+ POST {{base_url}}/report/finance/voucher/submit
191
+ { "content": {{created_id}} }
192
+
193
+ HTTP 200
194
+ [Asserts]
195
+ jsonpath "$.code" == 10000
196
+ ```
197
+
198
+ ### 6. 分页查询(page)→ 返回 PageVO 或 ReportBaseTotalVO
199
+
200
+ ```hurl
201
+ # 标准分页(设置类)
202
+ POST {{base_url}}/report/finance/setting/voucher-type/page
203
+ {
204
+ "content": {
205
+ "page": { "current": 1, "size": 10 }
206
+ }
207
+ }
208
+
209
+ # 报表分页(含合计行)
210
+ POST {{base_url}}/report/finance/voucher/page
211
+ {
212
+ "content": {
213
+ "page": { "current": 1, "size": 10 },
214
+ "startDate": "2026-03-01",
215
+ "endDate": "2026-03-31"
216
+ }
217
+ }
218
+ ```
219
+
220
+ ### 7. 导出(export)→ 返回 void(异步)
221
+
222
+ ```hurl
223
+ # Controller: void export(LeRequest<XxxPageParam>)
224
+ # 异步导出,仅验证接口不报错
225
+ POST {{base_url}}/report/finance/voucher/export
226
+ {
227
+ "content": {
228
+ "page": { "current": 1, "size": 10 },
229
+ "startDate": "2026-03-01",
230
+ "endDate": "2026-03-31"
231
+ }
232
+ }
233
+
234
+ HTTP 200
235
+ [Asserts]
236
+ jsonpath "$.code" == 10000
237
+ ```
238
+
239
+ ### 8. 未授权测试 → 预期 HTTP 401
240
+
241
+ ```hurl
242
+ # 去掉 X-Token 请求头
243
+ POST {{base_url}}/report/finance/voucher/page
244
+ Content-Type: application/json
245
+ merchant-id: {{merchant_id}}
246
+ Merchant-Id: {{merchant_id_auth}}
247
+ { "content": { "page": { "current": 1, "size": 10 } } }
248
+
249
+ HTTP 401
250
+ ```
251
+
252
+ ## content 传值类型总结
253
+
254
+ | 场景 | content 类型 | 示例 |
255
+ |------|-------------|------|
256
+ | 分页查询 | 对象(含 page + 查询条件) | `{"page":{"current":1,"size":10},"keyword":"xxx"}` |
257
+ | 新增/编辑 | 对象(业务字段) | `{"name":"xxx","entries":[...]}` |
258
+ | 查详情/删除/提交 | **裸 Long** | `{{id}}` (不是 `{"id": {{id}}}`) |
259
+
260
+ > **关键区别**:detail/delete/submit 的 content 是**直接传 ID 值**,不需要包装成对象。这是最常见的错误。
@@ -0,0 +1,248 @@
1
+ ---
2
+ name: backend-annotations
3
+ description: |
4
+ 通用后端高级注解指南。包含限流、防重复提交、数据脱敏、字段加密、接口加密等横切关注点的 AOP 实现模式。
5
+ 触发场景:
6
+ - 配置接口限流
7
+ - 配置防重复提交
8
+ - 配置数据脱敏
9
+ - 配置字段加密 / 接口加密
10
+ 触发词:注解、限流、防重复提交、脱敏、加密、RateLimiter、Idempotent、Sensitive、Encrypt、AOP
11
+ 注意:如果项目有专属技能(如 `leniu-backend-annotations`),优先使用专属版本。
12
+ ---
13
+
14
+ # 后端高级注解开发指南
15
+
16
+ > 通用模板。如果项目有专属技能(如 `leniu-backend-annotations`),优先使用。
17
+
18
+ ## 设计原则
19
+
20
+ 1. **横切关注点用 AOP**:限流、防重复、脱敏、加密属于非功能性需求,应通过注解 + AOP/拦截器实现,不侵入业务代码。
21
+ 2. **分层职责清晰**:限流/防重复作用于 Controller 层;脱敏作用于 VO 序列化层;加密作用于持久化层。
22
+ 3. **声明式优于编程式**:用注解声明意图,框架自动执行,减少样板代码。
23
+ 4. **配置外置**:密钥、阈值等参数放在配置文件或配置中心,不硬编码。
24
+
25
+ ---
26
+
27
+ ## 实现模式
28
+
29
+ ### 1. 接口限流
30
+
31
+ **概念**:通过 AOP 拦截请求,基于 Redis/内存计数器控制单位时间内的请求次数。
32
+
33
+ ```java
34
+ // 自定义注解
35
+ @Target(ElementType.METHOD)
36
+ @Retention(RetentionPolicy.RUNTIME)
37
+ public @interface RateLimiter {
38
+ String key() default ""; // 限流key,支持 SpEL
39
+ int time() default 60; // 时间窗口(秒)
40
+ int count() default 100; // 最大请求次数
41
+ LimitType limitType() default LimitType.DEFAULT; // DEFAULT / IP / CLUSTER
42
+ String message() default "请求过于频繁";
43
+ }
44
+
45
+ // AOP 切面
46
+ @Aspect
47
+ @Component
48
+ public class RateLimiterAspect {
49
+
50
+ @Autowired
51
+ private StringRedisTemplate redisTemplate;
52
+
53
+ @Around("@annotation([你的包名].annotation.RateLimiter)")
54
+ public Object around(ProceedingJoinPoint point) throws Throwable {
55
+ RateLimiter limiter = /* 获取注解 */;
56
+ String key = buildKey(limiter, point);
57
+ // 使用 Redis Lua 脚本做原子计数
58
+ Long count = redisTemplate.execute(rateLimiterScript, List.of(key),
59
+ String.valueOf(limiter.count()), String.valueOf(limiter.time()));
60
+ if (count != null && count > limiter.count()) {
61
+ throw new [你的异常类](limiter.message());
62
+ }
63
+ return point.proceed();
64
+ }
65
+ }
66
+ ```
67
+
68
+ **推荐阈值参考**:
69
+
70
+ | 场景 | 时间窗口 | 次数 | 限流类型 |
71
+ |------|---------|------|---------|
72
+ | 登录接口 | 60s | 5-10 | IP |
73
+ | 验证码 | 60s | 3 | IP |
74
+ | 查询接口 | 60s | 100-1000 | DEFAULT |
75
+ | 写入接口 | 60s | 10-50 | DEFAULT |
76
+ | 敏感操作 | 60s | 1-5 | IP |
77
+
78
+ ---
79
+
80
+ ### 2. 防重复提交
81
+
82
+ **概念**:在指定时间窗口内,相同用户的相同请求(基于 Token + 参数哈希)只允许提交一次。
83
+
84
+ ```java
85
+ @Target(ElementType.METHOD)
86
+ @Retention(RetentionPolicy.RUNTIME)
87
+ public @interface RepeatSubmit {
88
+ int interval() default 5000; // 间隔时间(毫秒)
89
+ TimeUnit timeUnit() default TimeUnit.MILLISECONDS;
90
+ String message() default "请勿重复提交";
91
+ }
92
+
93
+ // AOP 切面核心逻辑
94
+ // 1. 从请求中提取 Token + 请求参数
95
+ // 2. 计算 MD5(token + ":" + serialize(params))
96
+ // 3. Redis SETNX,设置过期时间 = interval
97
+ // 4. 设置成功 -> 允许请求;设置失败 -> 拒绝
98
+ // 5. 请求异常时删除 key,允许重试
99
+ ```
100
+
101
+ | 场景 | 推荐间隔 |
102
+ |------|---------|
103
+ | 普通表单 | 3-5 秒 |
104
+ | 订单创建 | 10 秒 |
105
+ | 支付操作 | 30 秒 |
106
+ | 文件上传 | 10 秒 |
107
+
108
+ ---
109
+
110
+ ### 3. 数据脱敏
111
+
112
+ **概念**:在 JSON 序列化阶段,对 VO 中的敏感字段进行掩码处理。通过自定义 Jackson 序列化器实现。
113
+
114
+ ```java
115
+ @Target(ElementType.FIELD)
116
+ @Retention(RetentionPolicy.RUNTIME)
117
+ @JacksonAnnotationsInside
118
+ @JsonSerialize(using = SensitiveSerializer.class)
119
+ public @interface Sensitive {
120
+ SensitiveStrategy strategy();
121
+ String[] roleKey() default {}; // 拥有这些角色可查看原文
122
+ String[] perms() default {}; // 拥有这些权限可查看原文
123
+ }
124
+
125
+ public enum SensitiveStrategy {
126
+ ID_CARD(s -> s.substring(0, 3) + "***" + s.substring(s.length() - 4)),
127
+ PHONE(s -> s.substring(0, 3) + "****" + s.substring(s.length() - 4)),
128
+ EMAIL(s -> s.charAt(0) + "**@" + s.substring(s.indexOf('@') + 1)),
129
+ CHINESE_NAME(s -> s.charAt(0) + "*".repeat(s.length() - 1)),
130
+ BANK_CARD(s -> s.substring(0, 4) + "****" + s.substring(s.length() - 4)),
131
+ PASSWORD(s -> "******");
132
+
133
+ private final Function<String, String> desensitizer;
134
+ // constructor, getter...
135
+ }
136
+
137
+ // 使用
138
+ public class UserVo {
139
+ @Sensitive(strategy = SensitiveStrategy.PHONE)
140
+ private String phone;
141
+
142
+ @Sensitive(strategy = SensitiveStrategy.ID_CARD, roleKey = {"admin"})
143
+ private String idCard;
144
+ }
145
+ ```
146
+
147
+ **权限逻辑**:roleKey 和 perms 都为空 = 全部脱敏;满足任一条件 = 可查看原文(OR 关系)。
148
+
149
+ ---
150
+
151
+ ### 4. 字段加密(持久层)
152
+
153
+ **概念**:通过 MyBatis 拦截器/TypeHandler,在数据写入数据库时自动加密,读取时自动解密。对业务代码透明。
154
+
155
+ ```java
156
+ @Target(ElementType.FIELD)
157
+ @Retention(RetentionPolicy.RUNTIME)
158
+ public @interface EncryptField {
159
+ AlgorithmType algorithm() default AlgorithmType.DEFAULT; // 使用全局配置
160
+ String password() default ""; // AES/SM4 密钥
161
+ String publicKey() default ""; // RSA/SM2 公钥
162
+ String privateKey() default ""; // RSA/SM2 私钥
163
+ }
164
+
165
+ public enum AlgorithmType {
166
+ DEFAULT, BASE64, AES, RSA, SM2, SM4
167
+ }
168
+ ```
169
+
170
+ **配置示例**:
171
+
172
+ ```yaml
173
+ # [你的加密配置前缀]:
174
+ encrypt:
175
+ enable: true
176
+ algorithm: AES
177
+ password: your-secret-key-16ch # AES/SM4 密钥(16字符)
178
+ public-key: MFkwEw... # RSA/SM2 公钥
179
+ private-key: MIIBVAIBADANBg... # RSA/SM2 私钥
180
+ ```
181
+
182
+ ---
183
+
184
+ ### 5. 接口加密(传输层)
185
+
186
+ **概念**:通过 Filter/Interceptor,对 HTTP 请求体自动解密、响应体自动加密。适用于前后端通信加密。
187
+
188
+ ```java
189
+ @Target(ElementType.METHOD)
190
+ @Retention(RetentionPolicy.RUNTIME)
191
+ public @interface ApiEncrypt {
192
+ boolean response() default false; // 是否加密响应
193
+ }
194
+
195
+ // 在 RequestBodyAdvice / ResponseBodyAdvice 中拦截处理
196
+ // 或通过 Filter + HttpServletRequestWrapper 实现
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 选型建议
202
+
203
+ | 关注点 | 实现方式 | 作用层 | 依赖 |
204
+ |--------|---------|--------|------|
205
+ | 限流 | AOP + Redis Lua 脚本 | Controller | Redis |
206
+ | 防重复 | AOP + Redis SETNX | Controller | Redis + Token |
207
+ | 脱敏 | Jackson 自定义序列化器 | VO 字段 | 无 |
208
+ | 字段加密 | MyBatis 拦截器 / TypeHandler | Entity 字段 | 加密库 |
209
+ | 接口加密 | Filter / RequestBodyAdvice | Controller 方法 | 加密库 |
210
+
211
+ | 加密算法 | 类型 | 密钥要求 | 适用场景 |
212
+ |---------|------|---------|---------|
213
+ | BASE64 | 编码(非加密) | 无 | 简单混淆 |
214
+ | AES | 对称加密 | 16/24/32 字节 | 通用加密(推荐) |
215
+ | RSA | 非对称加密 | 公钥/私钥对 | 高安全场景 |
216
+ | SM4 | 国密对称 | 16 字节 | 国密合规 |
217
+ | SM2 | 国密非对称 | 公钥/私钥对 | 国密合规 |
218
+
219
+ ---
220
+
221
+ ## 常见错误
222
+
223
+ ```java
224
+ // 1. 限流/防重复注解放在 Service 方法上(无效,应在 Controller)
225
+ @Service
226
+ public class XxxService {
227
+ @RateLimiter(...) // 无效!AOP 通常只拦截 Controller
228
+ public void doSomething() { }
229
+ }
230
+
231
+ // 2. @Sensitive 用在 Entity 上(应在 VO 上,序列化时生效)
232
+ // 3. @EncryptField 用在 VO 上(应在 Entity 上,持久化时生效)
233
+
234
+ // 4. 加密密钥硬编码在注解中
235
+ @EncryptField(password = "my-secret-key") // 不安全
236
+ // 应使用全局配置或环境变量
237
+
238
+ // 5. 限流 key 设计不合理
239
+ @RateLimiter(key = "") // 所有用户共享限流
240
+ // 应根据场景选择:用户维度 key="#userId",IP 维度 limitType=IP
241
+
242
+ // 6. 组合注解顺序不当
243
+ // 推荐顺序:限流 -> 防重复 -> 权限 -> 日志
244
+ @RateLimiter(time = 60, count = 10)
245
+ @RepeatSubmit(interval = 5000)
246
+ @PostMapping()
247
+ public Result<?> add(@RequestBody XxxDTO dto) { }
248
+ ```
@@ -0,0 +1,37 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.0] - 2025-12-22
9
+
10
+ ### Added
11
+
12
+ - Initial release of Banana Image skill
13
+ - **Dual model support**: Flash (fast) and Pro (4K high-quality)
14
+ - **Image generation** with customizable parameters:
15
+ - Aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4, 2:3, 3:2, 21:9
16
+ - Resolutions: 1K, 2K, 4K (Pro model only for 4K)
17
+ - Negative prompts for content exclusion
18
+ - Batch generation (1-4 images)
19
+ - **Image editing mode** - modify existing images with text prompts
20
+ - **Proxy support** via undici for corporate network environments
21
+ - **Google Search grounding** for Pro model
22
+ - **Template system** with predefined configurations:
23
+ - Product photography
24
+ - Social media posts
25
+ - Posters
26
+ - Thumbnails
27
+ - CLI interface with comprehensive options
28
+ - JSON output format for easy integration
29
+ - Claude Code skill integration
30
+
31
+ ### Technical Details
32
+
33
+ - Models:
34
+ - Flash: `gemini-2.5-flash-image`
35
+ - Pro: `gemini-3-pro-image-preview`
36
+ - Default output: `./images` directory
37
+ - Supported input formats: PNG, JPG, JPEG, GIF, WebP
@@ -0,0 +1,146 @@
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="Banana Image Logo" width="280">
3
+ </p>
4
+
5
+ <h1 align="center">Banana Image</h1>
6
+
7
+ <p align="center">
8
+ <strong>AI-Powered Image Generation Tool for Claude Code</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="#features">Features</a> •
13
+ <a href="#installation">Installation</a> •
14
+ <a href="#usage">Usage</a> •
15
+ <a href="#models">Models</a> •
16
+ <a href="#examples">Examples</a>
17
+ </p>
18
+
19
+ ---
20
+
21
+ ## Features
22
+
23
+ - **Dual Model Support** - Flash (fast) and Pro (high-quality 4K)
24
+ - **Flexible Aspect Ratios** - 1:1, 16:9, 9:16, 4:3, 2:3, 21:9, and more
25
+ - **Image Editing** - Modify existing images with text prompts
26
+ - **Batch Generation** - Generate up to 4 variants at once
27
+ - **Proxy Support** - Works behind corporate firewalls
28
+ - **Claude Code Integration** - Seamless skill integration
29
+
30
+ ## Installation
31
+
32
+ ### 1. Set API Key
33
+
34
+ ```bash
35
+ export GEMINI_API_KEY="your-api-key"
36
+ ```
37
+
38
+ ### 2. Install Dependencies
39
+
40
+ ```bash
41
+ cd ~/.claude/skills/banana-image/scripts
42
+ npm install
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ ### Quick Start
48
+
49
+ ```bash
50
+ # Fast generation (Flash model)
51
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
52
+ -p "A cute shiba inu in the park" -m flash
53
+
54
+ # 4K high-quality (Pro model)
55
+ npx tsx ~/.claude/skills/banana-image/scripts/banana_image_exec.ts \
56
+ -p "Professional product photo: iPhone case" -m pro -r 4K -a 4:5
57
+ ```
58
+
59
+ ### CLI Options
60
+
61
+ | Option | Description | Default |
62
+ | -------------------- | ------------------------------- | ---------------- |
63
+ | `-p, --prompt` | Image description (required) | - |
64
+ | `-m, --model` | Model: `flash` or `pro` | `pro` |
65
+ | `-a, --aspect-ratio` | Ratio: 1:1, 16:9, 9:16, etc. | `1:1` |
66
+ | `-r, --resolution` | Resolution: 1K, 2K, 4K | Pro=4K, Flash=1K |
67
+ | `-o, --output` | Output directory | `./images` |
68
+ | `-n, --negative` | Negative prompt | - |
69
+ | `-i, --input` | Input image (edit mode) | - |
70
+ | `-c, --count` | Number of images (1-4) | `1` |
71
+ | `-g, --grounding` | Enable Google Search (Pro only) | `false` |
72
+
73
+ ## Models
74
+
75
+ | Model | Speed | Max Resolution | Best For |
76
+ | --------- | ------ | -------------- | --------------------------------------- |
77
+ | **Flash** | 2-5s | 1024px | Drafts, iterations, prototypes |
78
+ | **Pro** | 10-40s | 4K | Final delivery, marketing, professional |
79
+
80
+ ## Examples
81
+
82
+ ### Image Generation
83
+
84
+ ```bash
85
+ # 16:9 landscape poster
86
+ npx tsx banana_image_exec.ts -p "Sunset over mountains" -m pro -r 4K -a 16:9
87
+
88
+ # Portrait for social media
89
+ npx tsx banana_image_exec.ts -p "Product showcase" -m pro -a 9:16
90
+ ```
91
+
92
+ ### Image Editing
93
+
94
+ ```bash
95
+ # Edit existing image
96
+ npx tsx banana_image_exec.ts -p "Change background to beach sunset" -i ./photo.png
97
+ ```
98
+
99
+ ### Batch Generation
100
+
101
+ ```bash
102
+ # Generate 4 variants
103
+ npx tsx banana_image_exec.ts -p "Logo design concept" -m pro -c 4
104
+ ```
105
+
106
+ ## Output
107
+
108
+ ```json
109
+ {
110
+ "success": true,
111
+ "images": [
112
+ {
113
+ "path": "./images/banana_pro_2025-01-01T12-00-00_abc123.png",
114
+ "model": "gemini-3-pro-image-preview",
115
+ "prompt": "Your prompt"
116
+ }
117
+ ],
118
+ "metadata": {
119
+ "model": "gemini-3-pro-image-preview",
120
+ "aspectRatio": "16:9",
121
+ "resolution": "4K",
122
+ "duration": 15234
123
+ }
124
+ }
125
+ ```
126
+
127
+ ## Aspect Ratio Guide
128
+
129
+ | Use Case | Ratio | Keywords |
130
+ | ------------------- | ----- | -------------------------- |
131
+ | Social media square | 1:1 | Instagram, profile |
132
+ | Landscape banner | 16:9 | YouTube, desktop wallpaper |
133
+ | Portrait story | 9:16 | Stories, mobile wallpaper |
134
+ | Product photo | 4:5 | E-commerce, catalog |
135
+ | Movie poster | 2:3 | Poster, print |
136
+ | Ultra-wide | 21:9 | Banner, header |
137
+
138
+ ## Requirements
139
+
140
+ - Node.js 18+
141
+ - Gemini API Key
142
+ - Network access (proxy supported)
143
+
144
+ ## License
145
+
146
+ MIT