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,430 @@
1
+ ---
2
+ name: loki-log-query
3
+ description: |
4
+ 通过 Grafana Loki 查询线上日志,支持多环境切换、traceId 链路追踪、接口路径查询、关键词搜索。
5
+
6
+ 触发场景:
7
+ - 需要查看线上日志排查问题
8
+ - 通过 traceId 查询完整请求链路
9
+ - 通过接口路径查询该接口的所有日志
10
+ - 搜索特定错误日志或异常堆栈
11
+ - 切换不同日志服务环境
12
+
13
+ 触发词:查日志、traceId、链路追踪、Loki、日志查询、线上日志、生产日志、错误日志、异常堆栈、日志排查、切换环境、monitor
14
+ ---
15
+
16
+ # Loki 日志查询技能
17
+
18
+ ## 概述
19
+
20
+ 通过 Grafana Loki API 查询线上日志。支持:
21
+ 1. **多环境管理**:5 个 Grafana 日志服务,按需切换
22
+ 2. **traceId 查询**:通过日志ID获取完整请求链路
23
+ 3. **接口路径查询**:通过 API 接口路径查询相关日志
24
+ 4. **关键词搜索**:错误信息、类名、自定义关键词
25
+
26
+ ## 多环境配置
27
+
28
+ ### 配置文件查找顺序
29
+
30
+ ```
31
+ 1. 本地项目:.claude/loki-config.json(新格式)
32
+ 2. 本地项目:.claude/skills/loki-log-query/environments.json(旧格式,兼容)
33
+ 3. 全局配置:~/.claude/loki-config.json(或 ~/.cursor/loki-config.json)
34
+ ```
35
+
36
+ 本地优先。全局配置用 `npx ai-engineering-init config --type loki --scope global` 创建。
37
+
38
+ ### 配置结构(支持 range 范围匹配)
39
+
40
+ ```json
41
+ {
42
+ "active": "monitor-dev",
43
+ "environments": {
44
+ "monitor-dev": {
45
+ "name": "Monitor 开发环境",
46
+ "url": "https://monitor-dev.xnzn.net/grafana",
47
+ "token": "glsa_xxx",
48
+ "aliases": ["mdev", "dev"],
49
+ "range": "dev1~15",
50
+ "projects": ["dev01","dev02","...","dev15"]
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ ### 环境列表(默认)
57
+
58
+ | 环境别名 | 名称 | URL | 快捷词 |
59
+ |----------|------|-----|--------|
60
+ | `test13` | 测试13(主测试环境) | `https://test13.xnzn.net/grafana` | test13, 13 |
61
+ | `monitor-test` | Monitor 测试环境 | `https://monitor-test.xnzn.net/grafana` | mtest |
62
+ | `monitor-dev` | Monitor 开发环境 | `https://monitor-dev.xnzn.net/grafana` | mdev, dev |
63
+ | `monitor02-dev` | Monitor02 开发环境 | `https://monitor02-dev.xnzn.net/grafana` | m02, monitor02 |
64
+ | `monitor-tyy-dev` | Monitor 体验园开发环境 | `https://monitor-tyy-dev.xnzn.net/grafana` | tyy, 体验园 |
65
+
66
+ ### 环境匹配规则(含 range)
67
+
68
+ | 用户说法 | 匹配方式 | 结果 |
69
+ |---------|---------|------|
70
+ | "查 test13 的日志" | 精确匹配 key/aliases | `test13` 环境 |
71
+ | "去 dev10 查" | **range 匹配**:dev10 在 monitor-dev 的 projects 中 | `monitor-dev`,`project="dev10"` |
72
+ | "去 monitor-dev 查" | 精确匹配 key | `monitor-dev` 环境 |
73
+ | "切到体验园" | aliases 匹配 | `monitor-tyy-dev` 环境 |
74
+ | 未指定环境 | 使用 `active` 字段 | 默认活跃环境 |
75
+
76
+ ### 读取配置(含全局降级 + range 匹配)
77
+
78
+ ```bash
79
+ # 按优先级查找配置文件
80
+ find_config() {
81
+ local PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
82
+ for f in \
83
+ "${PROJECT_DIR}/.claude/loki-config.json" \
84
+ "${PROJECT_DIR}/.claude/skills/loki-log-query/environments.json" \
85
+ "${HOME}/.claude/loki-config.json" \
86
+ "${HOME}/.cursor/loki-config.json"; do
87
+ [ -f "$f" ] && echo "$f" && return
88
+ done
89
+ }
90
+
91
+ ENV_FILE=$(find_config)
92
+
93
+ # 通过别名或 range 查找环境 key + project
94
+ find_env() {
95
+ python3 -c "
96
+ import json
97
+ data = json.load(open('${ENV_FILE}'))
98
+ alias = '${1}'.lower()
99
+ for key, env in data['environments'].items():
100
+ if alias == key or alias in env.get('aliases', []):
101
+ print(f'{key}|'); exit()
102
+ for key, env in data['environments'].items():
103
+ if alias in env.get('projects', []):
104
+ print(f'{key}|{alias}'); exit()
105
+ print(f'{data[\"active\"]}|')
106
+ "
107
+ }
108
+ ```
109
+
110
+ ### 切换活跃环境
111
+
112
+ ```bash
113
+ # 切换默认环境为 monitor-dev
114
+ python3 -c "
115
+ import json
116
+ data = json.load(open('${ENV_FILE}'))
117
+ data['active'] = 'monitor-dev'
118
+ json.dump(data, open('${ENV_FILE}', 'w'), indent=2, ensure_ascii=False)
119
+ print('Switched to:', data['active'])
120
+ "
121
+ ```
122
+
123
+ ### 更新 Token
124
+
125
+ ```bash
126
+ # 为某个环境设置 Token
127
+ python3 -c "
128
+ import json
129
+ data = json.load(open('${ENV_FILE}'))
130
+ data['environments']['monitor-dev']['token'] = 'glsa_新的token值'
131
+ json.dump(data, open('${ENV_FILE}', 'w'), indent=2, ensure_ascii=False)
132
+ print('Token updated for monitor-dev')
133
+ "
134
+ ```
135
+
136
+ ## API 基础
137
+
138
+ | 项目 | 值 |
139
+ |------|-----|
140
+ | 数据源 | Loki(uid: `loki`) |
141
+ | **API 路径** | `{GRAFANA_URL}/api/datasources/proxy/uid/loki/loki/api/v1/query_range` |
142
+ | 认证 | `Authorization: Bearer {TOKEN}` |
143
+ | 默认标签 | `app="yunshitang"` |
144
+
145
+ > **重要**:Loki API 必须通过 Grafana datasource proxy 访问,直接 `/loki/api/v1/` 会返回 404。
146
+ > 查询时不限 project 标签(`{app="yunshitang"}`),可覆盖该 Grafana 下所有环境。
147
+
148
+ ## 日志格式
149
+
150
+ ```
151
+ 2026-03-07 09:16:53.039,bcf6d955-fa26-45a5-9628-748f7ac4eed2,,, INFO 1 --- [线程名] 类名 : 行号 : 消息内容
152
+ ```
153
+
154
+ | 位置 | 字段 | 示例 |
155
+ |------|------|------|
156
+ | 第1段 | 时间戳 | `2026-03-07 09:16:53.039` |
157
+ | 第2段 | traceId | `bcf6d955-fa26-45a5-9628-748f7ac4eed2` 或 `a53dd0b0cc62bf4a79a63e77444f6f3f` |
158
+ | 第3段 | 商户ID | `553722740746489856` |
159
+ | 第4段 | 用户ID | `553723188689768448` |
160
+ | 第5段 | 日志内容 | `INFO 1 --- [thread] Class : 123 : msg` |
161
+
162
+ > traceId 可能是 UUID 格式(带横线)或 32位hex(不带横线),都支持。
163
+
164
+ ## 查询场景
165
+
166
+ ### 场景 1:按 traceId 查完整链路(最常用)
167
+
168
+ 用户说:"用 `a53dd0b0cc62bf4a79a63e77444f6f3f` 查日志"
169
+
170
+ ```bash
171
+ TRACE_ID="a53dd0b0cc62bf4a79a63e77444f6f3f"
172
+ END=$(date +%s)000000000
173
+ START=$(( $(date +%s) - 21600 ))000000000 # 最近6小时
174
+
175
+ curl -s "${API}/query_range" \
176
+ -H "Authorization: Bearer ${TOKEN}" \
177
+ --data-urlencode "query={app=\"yunshitang\"} |= \"${TRACE_ID}\"" \
178
+ --data-urlencode "start=${START}" \
179
+ --data-urlencode "end=${END}" \
180
+ --data-urlencode "limit=500" \
181
+ --data-urlencode "direction=forward" \
182
+ | python3 -c "
183
+ import sys, json
184
+ data = json.load(sys.stdin)
185
+ if data.get('status') == 'success':
186
+ for stream in data['data']['result']:
187
+ labels = stream.get('stream', {})
188
+ print(f'--- {labels.get(\"app\",\"?\")}/{labels.get(\"project\",\"?\")} ---')
189
+ for ts, line in stream['values']:
190
+ print(line)
191
+ else:
192
+ print('Error:', data)
193
+ "
194
+ ```
195
+
196
+ ### 场景 2:按接口路径查日志
197
+
198
+ 用户说:"查 `/security/summary/order/mealtime/classify/page` 这个接口的日志"
199
+
200
+ 接口路径出现在请求日志的 `RequestLoggingFilter` 中(`>>> POST /xxx` 或 `>>> GET /xxx`)。
201
+
202
+ ```bash
203
+ API_PATH="/security/summary/order/mealtime/classify/page"
204
+ END=$(date +%s)000000000
205
+ START=$(( $(date +%s) - 21600 ))000000000 # 最近6小时
206
+
207
+ curl -s "${API}/query_range" \
208
+ -H "Authorization: Bearer ${TOKEN}" \
209
+ --data-urlencode "query={app=\"yunshitang\"} |= \"${API_PATH}\"" \
210
+ --data-urlencode "start=${START}" \
211
+ --data-urlencode "end=${END}" \
212
+ --data-urlencode "limit=200" \
213
+ --data-urlencode "direction=forward" \
214
+ | python3 -c "
215
+ import sys, json, re
216
+ data = json.load(sys.stdin)
217
+ if data.get('status') != 'success':
218
+ print('Error:', data); sys.exit()
219
+
220
+ # 从匹配的请求日志中提取 traceId
221
+ trace_ids = set()
222
+ all_lines = []
223
+ for stream in data['data']['result']:
224
+ for ts, line in stream['values']:
225
+ all_lines.append(line)
226
+ # 提取 traceId(第2个逗号分隔字段)
227
+ parts = line.split(',')
228
+ if len(parts) >= 2:
229
+ tid = parts[1].strip()
230
+ if len(tid) >= 32:
231
+ trace_ids.add(tid)
232
+
233
+ print(f'Found {len(all_lines)} lines, {len(trace_ids)} unique traceIds')
234
+ print()
235
+ for tid in list(trace_ids)[:10]:
236
+ print(f' traceId: {tid}')
237
+ print()
238
+ for line in all_lines[:30]:
239
+ print(line)
240
+ if len(all_lines) > 30:
241
+ print(f'... and {len(all_lines)-30} more lines')
242
+ "
243
+ ```
244
+
245
+ **进阶**:找到 traceId 后,再用场景 1 查该 traceId 的完整链路。
246
+
247
+ ### 场景 3:关键词搜索
248
+
249
+ 用户说:"搜一下 LeException" 或 "查 ERROR 日志"
250
+
251
+ ```bash
252
+ KEYWORD="LeException"
253
+ END=$(date +%s)000000000
254
+ START=$(( $(date +%s) - 21600 ))000000000 # 最近6小时
255
+
256
+ curl -s "${API}/query_range" \
257
+ -H "Authorization: Bearer ${TOKEN}" \
258
+ --data-urlencode "query={app=\"yunshitang\"} |= \"${KEYWORD}\"" \
259
+ --data-urlencode "start=${START}" \
260
+ --data-urlencode "end=${END}" \
261
+ --data-urlencode "limit=100" \
262
+ --data-urlencode "direction=backward"
263
+ ```
264
+
265
+ **常用关键词组合**:
266
+
267
+ ```logql
268
+ # 所有 ERROR 日志
269
+ {app="yunshitang"} |= "ERROR"
270
+
271
+ # 业务异常
272
+ {app="yunshitang"} |= "LeException"
273
+
274
+ # SQL 错误
275
+ {app="yunshitang"} |~ "SQLSyntaxError|DataAccessException|BadSqlGrammar"
276
+
277
+ # 空指针
278
+ {app="yunshitang"} |= "NullPointerException"
279
+
280
+ # 按类名搜索
281
+ {app="yunshitang"} |= "OrderInfoService"
282
+
283
+ # 组合:ERROR + 特定类
284
+ {app="yunshitang"} |= "ERROR" |= "OrderInfoService"
285
+
286
+ # 排除健康检查噪音
287
+ {app="yunshitang"} |= "ERROR" != "health" != "actuator"
288
+ ```
289
+
290
+ ### 场景 4:按接口查完整链路(组合查询)
291
+
292
+ 用户说:"查 `/api/v2/web/order/list` 接口的全链路日志"
293
+
294
+ **两步走**:
295
+ 1. 先按接口路径搜索,拿到 traceId
296
+ 2. 再按 traceId 查完整链路
297
+
298
+ ```bash
299
+ # Step 1: 找 traceId
300
+ API_PATH="/api/v2/web/order/list"
301
+ END=$(date +%s)000000000
302
+ START=$(( $(date +%s) - 21600 ))000000000 # 最近6小时
303
+
304
+ TRACE_IDS=$(curl -s "${API}/query_range" \
305
+ -H "Authorization: Bearer ${TOKEN}" \
306
+ --data-urlencode "query={app=\"yunshitang\"} |= \"${API_PATH}\" |= \">>>\"" \
307
+ --data-urlencode "start=${START}" \
308
+ --data-urlencode "end=${END}" \
309
+ --data-urlencode "limit=10" \
310
+ --data-urlencode "direction=backward" \
311
+ | python3 -c "
312
+ import sys, json
313
+ data = json.load(sys.stdin)
314
+ for stream in data.get('data',{}).get('result',[]):
315
+ for ts, line in stream['values']:
316
+ parts = line.split(',')
317
+ if len(parts) >= 2 and len(parts[1].strip()) >= 32:
318
+ print(parts[1].strip())
319
+ ")
320
+
321
+ echo "Found traceIds:"
322
+ echo "${TRACE_IDS}" | head -5
323
+
324
+ # Step 2: 用第一个 traceId 查完整链路
325
+ FIRST_TID=$(echo "${TRACE_IDS}" | head -1)
326
+ if [ -n "${FIRST_TID}" ]; then
327
+ curl -s "${API}/query_range" \
328
+ -H "Authorization: Bearer ${TOKEN}" \
329
+ --data-urlencode "query={app=\"yunshitang\"} |= \"${FIRST_TID}\"" \
330
+ --data-urlencode "start=${START}" \
331
+ --data-urlencode "end=${END}" \
332
+ --data-urlencode "limit=500" \
333
+ --data-urlencode "direction=forward" \
334
+ | python3 -c "
335
+ import sys, json
336
+ data = json.load(sys.stdin)
337
+ for stream in data.get('data',{}).get('result',[]):
338
+ for ts, line in stream['values']:
339
+ print(line)
340
+ "
341
+ fi
342
+ ```
343
+
344
+ ### 场景 5:指定 project 环境查询
345
+
346
+ 如果用户指定了具体的 project(如 test20):
347
+
348
+ ```logql
349
+ {app="yunshitang",project="test20"} |= "traceId值"
350
+ ```
351
+
352
+ ## LogQL 语法速查
353
+
354
+ ### 流选择器
355
+
356
+ | 操作 | 语法 | 示例 |
357
+ |------|------|------|
358
+ | 精确匹配 | `=` | `{app="yunshitang"}` |
359
+ | 不等于 | `!=` | `{app!="test"}` |
360
+ | 正则匹配 | `=~` | `{project=~"test2.*"}` |
361
+
362
+ ### 行过滤
363
+
364
+ | 操作 | 语法 | 示例 |
365
+ |------|------|------|
366
+ | 包含 | `\|=` | `\|= "ERROR"` |
367
+ | 不包含 | `!=` | `!= "DEBUG"` |
368
+ | 正则匹配 | `\|~` | `\|~ "Exception\|Error"` |
369
+ | 正则排除 | `!~` | `!~ "health\|ping"` |
370
+
371
+ ### 查看可用标签值
372
+
373
+ ```bash
374
+ # 列出所有 project
375
+ curl -s "${API}/label/project/values" -H "Authorization: Bearer ${TOKEN}"
376
+
377
+ # 列出所有 app
378
+ curl -s "${API}/label/app/values" -H "Authorization: Bearer ${TOKEN}"
379
+ ```
380
+
381
+ ## Bug 修复工作流
382
+
383
+ ```
384
+ 1. 获取线索(traceId / 接口路径 / 错误关键词)
385
+
386
+ 2. 确定环境(哪个 Grafana?读取 environments.json)
387
+
388
+ 3. 查询日志(场景 1-4 选择合适的查询方式)
389
+
390
+ 4. 分析日志(ERROR/异常堆栈/SQL 错误/耗时)
391
+
392
+ 5. 定位代码(类名:行号 → 项目搜索)
393
+
394
+ 6. 修复 + 更新云效任务状态
395
+ ```
396
+
397
+ ### 日志分析重点
398
+
399
+ 1. **ERROR 级别日志** — 异常根因
400
+ 2. **异常堆栈** — `at net.xnzn.core.xxx` 开头的行
401
+ 3. **SQL 错误** — `SQLSyntaxErrorException`、`DataAccessException`
402
+ 4. **业务异常** — `LeException` 抛出的位置
403
+ 5. **耗时** — `Completed xxx in Nms`,识别慢请求
404
+ 6. **请求/响应** — `RequestLoggingFilter` 的 `>>>` 和 `<<<` 日志
405
+
406
+ ### 联动技能
407
+
408
+ | 场景 | 联动技能 |
409
+ |------|---------|
410
+ | 排查 Bug | `bug-detective` |
411
+ | 查询云效任务 | `yunxiao-task-management` |
412
+ | 查数据库 | `mysql-debug` |
413
+ | 性能问题 | `performance-doctor` |
414
+
415
+ ## Grafana Service Account Token 创建
416
+
417
+ 每个 Grafana 环境需要独立创建 Token:
418
+
419
+ 1. 登录对应 Grafana URL
420
+ 2. 左侧菜单 → Administration → Service accounts
421
+ 3. Add service account(名称:`claude-loki-reader`),角色:`Viewer`
422
+ 4. Add service account token → 复制
423
+ 5. 更新 `environments.json` 中对应环境的 `token` 字段
424
+
425
+ ## 注意
426
+
427
+ - 如果 Token 为空会报 `invalid API key`,需要先为该环境创建 Token
428
+ - 查询默认不限 project,可覆盖该 Grafana 下所有项目环境
429
+ - `direction=forward` 按时间正序,`direction=backward` 按时间倒序(最新优先)
430
+ - 如果是 Bug 排查完整流程,同时使用 `bug-detective`
@@ -0,0 +1,45 @@
1
+ {
2
+ "_comment": "Loki 多环境配置。每个环境需要独立的 Grafana Service Account Token。",
3
+ "_usage": "用户说'查 test13 的日志'或'去 monitor-dev 查'时,匹配对应环境。",
4
+ "_setup": "Token 创建:Grafana → Administration → Service accounts → Add(Viewer 角色)→ Add token → 复制到对应环境的 token 字段。",
5
+
6
+ "active": "test13",
7
+
8
+ "environments": {
9
+ "test13": {
10
+ "name": "测试13(主测试环境)",
11
+ "url": "https://test13.xnzn.net/grafana",
12
+ "token": "",
13
+ "aliases": ["test13", "13"],
14
+ "projects": ["test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test27", "test28", "test31", "ywcs"]
15
+ },
16
+ "monitor-test": {
17
+ "name": "Monitor 测试环境",
18
+ "url": "https://monitor-test.xnzn.net/grafana",
19
+ "token": "",
20
+ "aliases": ["monitor-test", "mtest"],
21
+ "projects": ["test01", "test02", "test03", "test04", "test05", "test06", "test07", "test08", "test09", "test10", "test11", "test12"]
22
+ },
23
+ "monitor-dev": {
24
+ "name": "Monitor 开发环境",
25
+ "url": "https://monitor-dev.xnzn.net/grafana",
26
+ "token": "",
27
+ "aliases": ["monitor-dev", "mdev", "dev"],
28
+ "projects": ["dev01", "dev02", "dev03", "dev04", "dev05", "dev06", "dev07", "dev08", "dev09", "dev10", "dev11", "dev12", "dev13", "dev14", "dev15"]
29
+ },
30
+ "monitor02-dev": {
31
+ "name": "Monitor02 开发环境",
32
+ "url": "https://monitor02-dev.xnzn.net/grafana",
33
+ "token": "",
34
+ "aliases": ["monitor02-dev", "m02", "monitor02"],
35
+ "projects": ["dev16", "dev17", "dev19", "dev21", "dev22", "dev23", "dev24", "dev25", "dev26", "dev28", "dev29", "dev30", "dev31", "dev32", "dev33", "dev34", "dev35", "dev36", "dev37", "dev38", "dev39", "dev40", "dev41", "dev42"]
36
+ },
37
+ "monitor-tyy-dev": {
38
+ "name": "Monitor 体验园开发环境",
39
+ "url": "https://monitor-tyy-dev.xnzn.net/grafana",
40
+ "token": "",
41
+ "aliases": ["monitor-tyy", "tyy", "体验园"],
42
+ "projects": ["dev44", "dev45", "dev46", "dev47", "dev48", "dev49", "dev50", "dev51", "dev52", "dev53", "dev54", "dev55", "dev56", "dev57", "dev58", "dev60", "dev61", "dev63", "dev64", "grafana"]
43
+ }
44
+ }
45
+ }