leniu-dev 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/.claude/agents/auto-test-generator.md +315 -0
  2. package/.claude/agents/bug-analyzer.md +103 -0
  3. package/.claude/agents/code-reviewer.md +122 -0
  4. package/.claude/agents/code-scanner.md +145 -0
  5. package/.claude/agents/image-reader.md +154 -0
  6. package/.claude/agents/loki-runner.md +80 -0
  7. package/.claude/agents/mysql-runner.md +81 -0
  8. package/.claude/agents/project-manager.md +159 -0
  9. package/.claude/agents/requirements-analyzer.md +175 -0
  10. package/.claude/agents/task-fetcher.md +75 -0
  11. package/.claude/audio/completed.wav +0 -0
  12. package/.claude/commands/add-todo.md +255 -0
  13. package/.claude/commands/auto-test.md +252 -0
  14. package/.claude/commands/check.md +210 -0
  15. package/.claude/commands/crud.md +454 -0
  16. package/.claude/commands/dev.md +532 -0
  17. package/.claude/commands/init-config.md +154 -0
  18. package/.claude/commands/init-docs.md +681 -0
  19. package/.claude/commands/next.md +281 -0
  20. package/.claude/commands/opsx-apply.md +147 -0
  21. package/.claude/commands/opsx-archive.md +105 -0
  22. package/.claude/commands/opsx-bulk-archive.md +237 -0
  23. package/.claude/commands/opsx-continue.md +109 -0
  24. package/.claude/commands/opsx-explore.md +281 -0
  25. package/.claude/commands/opsx-ff.md +92 -0
  26. package/.claude/commands/opsx-new.md +65 -0
  27. package/.claude/commands/opsx-onboard.md +397 -0
  28. package/.claude/commands/opsx-sync.md +129 -0
  29. package/.claude/commands/opsx-verify.md +159 -0
  30. package/.claude/commands/progress.md +264 -0
  31. package/.claude/commands/release.md +109 -0
  32. package/.claude/commands/start.md +199 -0
  33. package/.claude/commands/sync.md +307 -0
  34. package/.claude/commands/update-status.md +428 -0
  35. package/.claude/docs/Mixin/344/275/277/347/224/250/346/214/207/345/215/227.md +299 -0
  36. package/.claude/docs/README.md +167 -0
  37. package/.claude/docs//345/211/215/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +599 -0
  38. package/.claude/docs//345/220/216/347/253/257/345/274/200/345/217/221/346/214/207/345/215/227.md +726 -0
  39. package/.claude/docs//345/267/245/344/275/234/346/265/201/345/274/200/345/217/221/346/214/207/345/215/227.md +714 -0
  40. package/.claude/docs//345/267/245/345/205/267/347/261/273/344/275/277/347/224/250/346/214/207/345/215/227.md +463 -0
  41. package/.claude/docs//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +390 -0
  42. package/.claude/docs//346/226/260/345/212/237/350/203/275/345/274/200/345/217/221/346/265/201/347/250/213/350/247/204/350/214/203.md +688 -0
  43. package/.claude/docs//346/226/260/351/241/271/347/233/256/345/274/200/345/217/221/346/265/201/347/250/213.md +365 -0
  44. package/.claude/docs//346/241/206/346/236/266/350/257/264/346/230/216.md +393 -0
  45. package/.claude/docs//350/267/257/347/224/261/351/205/215/347/275/256/346/214/207/345/215/227.md +246 -0
  46. package/.claude/framework-config.json +73 -0
  47. package/.claude/hooks/lib/notify.js +310 -0
  48. package/.claude/hooks/pre-tool-use.js +117 -0
  49. package/.claude/hooks/skill-forced-eval.js +161 -0
  50. package/.claude/hooks/stop.js +55 -0
  51. package/.claude/notify-config.json +9 -0
  52. package/.claude/settings.json +57 -0
  53. package/.claude/skills/add-skill/SKILL.md +488 -0
  54. package/.claude/skills/analyze-requirements/SKILL.md +112 -0
  55. package/.claude/skills/api-development/SKILL.md +315 -0
  56. package/.claude/skills/architecture-design/SKILL.md +152 -0
  57. package/.claude/skills/auto-test/SKILL.md +625 -0
  58. package/.claude/skills/auto-test/references/api-conventions.md +260 -0
  59. package/.claude/skills/backend-annotations/SKILL.md +248 -0
  60. package/.claude/skills/banana-image/CHANGELOG.md +37 -0
  61. package/.claude/skills/banana-image/README.md +146 -0
  62. package/.claude/skills/banana-image/SKILL.md +171 -0
  63. package/.claude/skills/banana-image/assets/logo.png +0 -0
  64. package/.claude/skills/banana-image/references/advanced-usage.md +189 -0
  65. package/.claude/skills/banana-image/scripts/apply_template.py +125 -0
  66. package/.claude/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  67. package/.claude/skills/banana-image/scripts/batch_prep.py +82 -0
  68. package/.claude/skills/banana-image/scripts/package-lock.json +1437 -0
  69. package/.claude/skills/banana-image/scripts/package.json +18 -0
  70. package/.claude/skills/banana-image/scripts/requirements.txt +10 -0
  71. package/.claude/skills/banana-image/templates/poster.json +22 -0
  72. package/.claude/skills/banana-image/templates/product.json +17 -0
  73. package/.claude/skills/banana-image/templates/social.json +22 -0
  74. package/.claude/skills/banana-image/templates/thumbnail.json +17 -0
  75. package/.claude/skills/brainstorm/SKILL.md +216 -0
  76. package/.claude/skills/bug-detective/SKILL.md +295 -0
  77. package/.claude/skills/bug-detective/references/error-patterns.md +242 -0
  78. package/.claude/skills/chrome-cdp/SKILL.md +81 -0
  79. package/.claude/skills/chrome-cdp/scripts/cdp.mjs +838 -0
  80. package/.claude/skills/chrome-cdp/scripts/run-cdp.sh +7 -0
  81. package/.claude/skills/code-patterns/SKILL.md +163 -0
  82. package/.claude/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  83. package/.claude/skills/codex-code-review/SKILL.md +327 -0
  84. package/.claude/skills/collaborating-with-codex/SKILL.md +180 -0
  85. package/.claude/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  86. package/.claude/skills/collaborating-with-gemini/SKILL.md +194 -0
  87. package/.claude/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  88. package/.claude/skills/crud-development/SKILL.md +328 -0
  89. package/.claude/skills/data-permission/SKILL.md +221 -0
  90. package/.claude/skills/data-permission/references/custom-data-scope.md +90 -0
  91. package/.claude/skills/database-ops/SKILL.md +210 -0
  92. package/.claude/skills/error-handler/SKILL.md +310 -0
  93. package/.claude/skills/file-oss-management/SKILL.md +260 -0
  94. package/.claude/skills/file-oss-management/references/entities.md +105 -0
  95. package/.claude/skills/file-oss-management/references/service-impl.md +104 -0
  96. package/.claude/skills/fix-bug/SKILL.md +269 -0
  97. package/.claude/skills/git-workflow/SKILL.md +179 -0
  98. package/.claude/skills/jenkins-deploy/SKILL.md +134 -0
  99. package/.claude/skills/jenkins-deploy/assets/env_param.template.json +51 -0
  100. package/.claude/skills/jenkins-deploy/assets/jk_build.py +400 -0
  101. package/.claude/skills/json-serialization/SKILL.md +341 -0
  102. package/.claude/skills/lanhu-design/SKILL.md +99 -0
  103. package/.claude/skills/leniu-api-development/SKILL.md +319 -0
  104. package/.claude/skills/leniu-api-development/references/real-examples.md +273 -0
  105. package/.claude/skills/leniu-architecture-design/SKILL.md +383 -0
  106. package/.claude/skills/leniu-backend-annotations/SKILL.md +277 -0
  107. package/.claude/skills/leniu-brainstorm/SKILL.md +242 -0
  108. package/.claude/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  109. package/.claude/skills/leniu-code-patterns/SKILL.md +411 -0
  110. package/.claude/skills/leniu-crud-development/SKILL.md +404 -0
  111. package/.claude/skills/leniu-crud-development/references/templates.md +597 -0
  112. package/.claude/skills/leniu-customization-location/SKILL.md +410 -0
  113. package/.claude/skills/leniu-data-permission/SKILL.md +341 -0
  114. package/.claude/skills/leniu-database-ops/SKILL.md +426 -0
  115. package/.claude/skills/leniu-error-handler/SKILL.md +462 -0
  116. package/.claude/skills/leniu-java-concurrent/SKILL.md +400 -0
  117. package/.claude/skills/leniu-java-entity/SKILL.md +237 -0
  118. package/.claude/skills/leniu-java-entity/references/templates.md +237 -0
  119. package/.claude/skills/leniu-java-logging/SKILL.md +229 -0
  120. package/.claude/skills/leniu-java-logging/references/data-mask.md +46 -0
  121. package/.claude/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  122. package/.claude/skills/leniu-java-mq/SKILL.md +338 -0
  123. package/.claude/skills/leniu-java-mybatis/SKILL.md +267 -0
  124. package/.claude/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  125. package/.claude/skills/leniu-java-task/SKILL.md +367 -0
  126. package/.claude/skills/leniu-marketing-scenario/SKILL.md +448 -0
  127. package/.claude/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  128. package/.claude/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  129. package/.claude/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  130. package/.claude/skills/leniu-redis-cache/SKILL.md +331 -0
  131. package/.claude/skills/leniu-report-scenario/SKILL.md +508 -0
  132. package/.claude/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  133. package/.claude/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  134. package/.claude/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  135. package/.claude/skills/leniu-report-scenario/references/customization.md +356 -0
  136. package/.claude/skills/leniu-report-scenario/references/data-permission.md +182 -0
  137. package/.claude/skills/leniu-report-scenario/references/export.md +553 -0
  138. package/.claude/skills/leniu-report-scenario/references/mealtime.md +197 -0
  139. package/.claude/skills/leniu-report-scenario/references/query-param.md +274 -0
  140. package/.claude/skills/leniu-report-scenario/references/report-tables.md +162 -0
  141. package/.claude/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  142. package/.claude/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  143. package/.claude/skills/leniu-report-scenario/references/total-line.md +179 -0
  144. package/.claude/skills/leniu-security-guard/SKILL.md +306 -0
  145. package/.claude/skills/leniu-utils-toolkit/SKILL.md +380 -0
  146. package/.claude/skills/loki-log-query/SKILL.md +430 -0
  147. package/.claude/skills/mysql-debug/SKILL.md +406 -0
  148. package/.claude/skills/performance-doctor/SKILL.md +297 -0
  149. package/.claude/skills/project-navigator/SKILL.md +211 -0
  150. package/.claude/skills/redis-cache/SKILL.md +282 -0
  151. package/.claude/skills/redis-cache/references/listeners.md +23 -0
  152. package/.claude/skills/scheduled-jobs/SKILL.md +277 -0
  153. package/.claude/skills/security-guard/SKILL.md +245 -0
  154. package/.claude/skills/security-guard/references/encrypt-config.md +103 -0
  155. package/.claude/skills/security-guard/references/sensitive-strategies.md +42 -0
  156. package/.claude/skills/sms-mail/SKILL.md +346 -0
  157. package/.claude/skills/sms-mail/references/mail-config.md +88 -0
  158. package/.claude/skills/sms-mail/references/sms-config.md +74 -0
  159. package/.claude/skills/social-login/SKILL.md +328 -0
  160. package/.claude/skills/social-login/references/provider-configs.md +118 -0
  161. package/.claude/skills/store-pc/SKILL.md +366 -0
  162. package/.claude/skills/sync-back-merge/SKILL.md +66 -0
  163. package/.claude/skills/task-tracker/SKILL.md +307 -0
  164. package/.claude/skills/tech-decision/SKILL.md +393 -0
  165. package/.claude/skills/tenant-management/SKILL.md +272 -0
  166. package/.claude/skills/tenant-management/references/tenant-scenarios.md +91 -0
  167. package/.claude/skills/test-development/SKILL.md +301 -0
  168. package/.claude/skills/test-development/references/parameterized-examples.md +119 -0
  169. package/.claude/skills/ui-pc/SKILL.md +438 -0
  170. package/.claude/skills/utils-toolkit/SKILL.md +354 -0
  171. package/.claude/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  172. package/.claude/skills/websocket-sse/SKILL.md +350 -0
  173. package/.claude/skills/workflow-engine/SKILL.md +249 -0
  174. package/.claude/skills/yunxiao-task-management/SKILL.md +401 -0
  175. package/.claude/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  176. package/.claude/templates/env-config.md +27 -0
  177. package/.claude/templates//345/276/205/345/212/236/346/270/205/345/215/225/346/250/241/346/235/277.md +56 -0
  178. package/.claude/templates//351/234/200/346/261/202/346/226/207/346/241/243/346/250/241/346/235/277.md +85 -0
  179. package/.claude/templates//351/241/271/347/233/256/347/212/266/346/200/201/346/250/241/346/235/277.md +43 -0
  180. package/.codex/skills/add-skill/SKILL.md +488 -0
  181. package/.codex/skills/add-todo/SKILL.md +269 -0
  182. package/.codex/skills/analyze-requirements/SKILL.md +112 -0
  183. package/.codex/skills/api-development/SKILL.md +315 -0
  184. package/.codex/skills/architecture-design/SKILL.md +152 -0
  185. package/.codex/skills/auto-test/SKILL.md +453 -0
  186. package/.codex/skills/auto-test/references/api-conventions.md +260 -0
  187. package/.codex/skills/backend-annotations/SKILL.md +248 -0
  188. package/.codex/skills/banana-image/CHANGELOG.md +37 -0
  189. package/.codex/skills/banana-image/README.md +146 -0
  190. package/.codex/skills/banana-image/SKILL.md +171 -0
  191. package/.codex/skills/banana-image/assets/logo.png +0 -0
  192. package/.codex/skills/banana-image/references/advanced-usage.md +189 -0
  193. package/.codex/skills/banana-image/scripts/apply_template.py +125 -0
  194. package/.codex/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  195. package/.codex/skills/banana-image/scripts/batch_prep.py +82 -0
  196. package/.codex/skills/banana-image/scripts/package-lock.json +1437 -0
  197. package/.codex/skills/banana-image/scripts/package.json +18 -0
  198. package/.codex/skills/banana-image/scripts/requirements.txt +10 -0
  199. package/.codex/skills/banana-image/templates/poster.json +22 -0
  200. package/.codex/skills/banana-image/templates/product.json +17 -0
  201. package/.codex/skills/banana-image/templates/social.json +22 -0
  202. package/.codex/skills/banana-image/templates/thumbnail.json +17 -0
  203. package/.codex/skills/brainstorm/SKILL.md +216 -0
  204. package/.codex/skills/bug-detective/SKILL.md +295 -0
  205. package/.codex/skills/bug-detective/references/error-patterns.md +242 -0
  206. package/.codex/skills/check/SKILL.md +367 -0
  207. package/.codex/skills/code-patterns/SKILL.md +163 -0
  208. package/.codex/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  209. package/.codex/skills/collaborating-with-codex/SKILL.md +180 -0
  210. package/.codex/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  211. package/.codex/skills/collaborating-with-gemini/SKILL.md +194 -0
  212. package/.codex/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  213. package/.codex/skills/crud/SKILL.md +265 -0
  214. package/.codex/skills/crud-development/SKILL.md +328 -0
  215. package/.codex/skills/data-permission/SKILL.md +221 -0
  216. package/.codex/skills/data-permission/references/custom-data-scope.md +90 -0
  217. package/.codex/skills/database-ops/SKILL.md +210 -0
  218. package/.codex/skills/dev/SKILL.md +187 -0
  219. package/.codex/skills/error-handler/SKILL.md +310 -0
  220. package/.codex/skills/file-oss-management/SKILL.md +260 -0
  221. package/.codex/skills/file-oss-management/references/entities.md +105 -0
  222. package/.codex/skills/file-oss-management/references/service-impl.md +104 -0
  223. package/.codex/skills/fix-bug/SKILL.md +269 -0
  224. package/.codex/skills/git-workflow/SKILL.md +179 -0
  225. package/.codex/skills/init-docs/SKILL.md +194 -0
  226. package/.codex/skills/jenkins-deploy/SKILL.md +134 -0
  227. package/.codex/skills/json-serialization/SKILL.md +341 -0
  228. package/.codex/skills/lanhu-design/SKILL.md +99 -0
  229. package/.codex/skills/leniu-api-development/SKILL.md +319 -0
  230. package/.codex/skills/leniu-api-development/references/real-examples.md +273 -0
  231. package/.codex/skills/leniu-architecture-design/SKILL.md +383 -0
  232. package/.codex/skills/leniu-backend-annotations/SKILL.md +277 -0
  233. package/.codex/skills/leniu-brainstorm/SKILL.md +242 -0
  234. package/.codex/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  235. package/.codex/skills/leniu-code-patterns/SKILL.md +411 -0
  236. package/.codex/skills/leniu-crud-development/SKILL.md +404 -0
  237. package/.codex/skills/leniu-crud-development/references/templates.md +597 -0
  238. package/.codex/skills/leniu-customization-location/SKILL.md +410 -0
  239. package/.codex/skills/leniu-data-permission/SKILL.md +341 -0
  240. package/.codex/skills/leniu-database-ops/SKILL.md +426 -0
  241. package/.codex/skills/leniu-error-handler/SKILL.md +462 -0
  242. package/.codex/skills/leniu-java-amount-handling/SKILL.md +461 -0
  243. package/.codex/skills/leniu-java-code-style/SKILL.md +510 -0
  244. package/.codex/skills/leniu-java-concurrent/SKILL.md +400 -0
  245. package/.codex/skills/leniu-java-entity/SKILL.md +237 -0
  246. package/.codex/skills/leniu-java-entity/references/templates.md +237 -0
  247. package/.codex/skills/leniu-java-logging/SKILL.md +229 -0
  248. package/.codex/skills/leniu-java-logging/references/data-mask.md +46 -0
  249. package/.codex/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  250. package/.codex/skills/leniu-java-mq/SKILL.md +338 -0
  251. package/.codex/skills/leniu-java-mybatis/SKILL.md +267 -0
  252. package/.codex/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  253. package/.codex/skills/leniu-java-task/SKILL.md +367 -0
  254. package/.codex/skills/leniu-marketing-scenario/SKILL.md +448 -0
  255. package/.codex/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  256. package/.codex/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  257. package/.codex/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  258. package/.codex/skills/leniu-redis-cache/SKILL.md +331 -0
  259. package/.codex/skills/leniu-report-scenario/SKILL.md +508 -0
  260. package/.codex/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  261. package/.codex/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  262. package/.codex/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  263. package/.codex/skills/leniu-report-scenario/references/customization.md +356 -0
  264. package/.codex/skills/leniu-report-scenario/references/data-permission.md +182 -0
  265. package/.codex/skills/leniu-report-scenario/references/export.md +553 -0
  266. package/.codex/skills/leniu-report-scenario/references/mealtime.md +197 -0
  267. package/.codex/skills/leniu-report-scenario/references/query-param.md +274 -0
  268. package/.codex/skills/leniu-report-scenario/references/report-tables.md +162 -0
  269. package/.codex/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  270. package/.codex/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  271. package/.codex/skills/leniu-report-scenario/references/total-line.md +179 -0
  272. package/.codex/skills/leniu-security-guard/SKILL.md +306 -0
  273. package/.codex/skills/leniu-utils-toolkit/SKILL.md +380 -0
  274. package/.codex/skills/loki-log-query/SKILL.md +430 -0
  275. package/.codex/skills/loki-log-query/environments.json +45 -0
  276. package/.codex/skills/mysql-debug/SKILL.md +406 -0
  277. package/.codex/skills/next/SKILL.md +137 -0
  278. package/.codex/skills/openspec-apply-change/SKILL.md +165 -0
  279. package/.codex/skills/openspec-archive-change/SKILL.md +122 -0
  280. package/.codex/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  281. package/.codex/skills/openspec-continue-change/SKILL.md +126 -0
  282. package/.codex/skills/openspec-explore/SKILL.md +299 -0
  283. package/.codex/skills/openspec-ff-change/SKILL.md +109 -0
  284. package/.codex/skills/openspec-new-change/SKILL.md +82 -0
  285. package/.codex/skills/openspec-onboard/SKILL.md +414 -0
  286. package/.codex/skills/openspec-sync-specs/SKILL.md +146 -0
  287. package/.codex/skills/openspec-verify-change/SKILL.md +176 -0
  288. package/.codex/skills/performance-doctor/SKILL.md +297 -0
  289. package/.codex/skills/progress/SKILL.md +193 -0
  290. package/.codex/skills/project-navigator/SKILL.md +211 -0
  291. package/.codex/skills/redis-cache/SKILL.md +282 -0
  292. package/.codex/skills/redis-cache/references/listeners.md +23 -0
  293. package/.codex/skills/scheduled-jobs/SKILL.md +277 -0
  294. package/.codex/skills/security-guard/SKILL.md +245 -0
  295. package/.codex/skills/security-guard/references/encrypt-config.md +103 -0
  296. package/.codex/skills/security-guard/references/sensitive-strategies.md +42 -0
  297. package/.codex/skills/skill-creator/LICENSE.txt +202 -0
  298. package/.codex/skills/skill-creator/SKILL.md +479 -0
  299. package/.codex/skills/skill-creator/agents/analyzer.md +274 -0
  300. package/.codex/skills/skill-creator/agents/comparator.md +202 -0
  301. package/.codex/skills/skill-creator/agents/grader.md +223 -0
  302. package/.codex/skills/skill-creator/assets/eval_review.html +146 -0
  303. package/.codex/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  304. package/.codex/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  305. package/.codex/skills/skill-creator/references/schemas.md +430 -0
  306. package/.codex/skills/skill-creator/scripts/__init__.py +0 -0
  307. package/.codex/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  308. package/.codex/skills/skill-creator/scripts/generate_report.py +326 -0
  309. package/.codex/skills/skill-creator/scripts/improve_description.py +248 -0
  310. package/.codex/skills/skill-creator/scripts/package_skill.py +136 -0
  311. package/.codex/skills/skill-creator/scripts/quick_validate.py +103 -0
  312. package/.codex/skills/skill-creator/scripts/run_eval.py +310 -0
  313. package/.codex/skills/skill-creator/scripts/run_loop.py +332 -0
  314. package/.codex/skills/skill-creator/scripts/utils.py +47 -0
  315. package/.codex/skills/sms-mail/SKILL.md +346 -0
  316. package/.codex/skills/sms-mail/references/mail-config.md +88 -0
  317. package/.codex/skills/sms-mail/references/sms-config.md +74 -0
  318. package/.codex/skills/social-login/SKILL.md +328 -0
  319. package/.codex/skills/social-login/references/provider-configs.md +118 -0
  320. package/.codex/skills/start/SKILL.md +154 -0
  321. package/.codex/skills/store-pc/SKILL.md +366 -0
  322. package/.codex/skills/sync/SKILL.md +149 -0
  323. package/.codex/skills/sync-back-merge/SKILL.md +66 -0
  324. package/.codex/skills/task-tracker/SKILL.md +307 -0
  325. package/.codex/skills/tech-decision/SKILL.md +393 -0
  326. package/.codex/skills/tenant-management/SKILL.md +272 -0
  327. package/.codex/skills/tenant-management/references/tenant-scenarios.md +91 -0
  328. package/.codex/skills/test-development/SKILL.md +301 -0
  329. package/.codex/skills/test-development/references/parameterized-examples.md +119 -0
  330. package/.codex/skills/ui-pc/SKILL.md +438 -0
  331. package/.codex/skills/update-status/SKILL.md +159 -0
  332. package/.codex/skills/utils-toolkit/SKILL.md +354 -0
  333. package/.codex/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  334. package/.codex/skills/websocket-sse/SKILL.md +350 -0
  335. package/.codex/skills/workflow-engine/SKILL.md +249 -0
  336. package/.codex/skills/yunxiao-task-management/SKILL.md +401 -0
  337. package/.codex/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  338. package/.cursor/agents/bug-analyzer.md +102 -0
  339. package/.cursor/agents/code-reviewer.md +122 -0
  340. package/.cursor/agents/code-scanner.md +145 -0
  341. package/.cursor/agents/image-reader.md +154 -0
  342. package/.cursor/agents/loki-runner.md +80 -0
  343. package/.cursor/agents/mysql-runner.md +81 -0
  344. package/.cursor/agents/project-manager.md +159 -0
  345. package/.cursor/agents/requirements-analyzer.md +141 -0
  346. package/.cursor/agents/task-fetcher.md +75 -0
  347. package/.cursor/audio/completed.wav +0 -0
  348. package/.cursor/commands/opsx-apply.md +152 -0
  349. package/.cursor/commands/opsx-archive.md +157 -0
  350. package/.cursor/commands/opsx-bulk-archive.md +242 -0
  351. package/.cursor/commands/opsx-continue.md +114 -0
  352. package/.cursor/commands/opsx-explore.md +174 -0
  353. package/.cursor/commands/opsx-ff.md +94 -0
  354. package/.cursor/commands/opsx-new.md +69 -0
  355. package/.cursor/commands/opsx-onboard.md +525 -0
  356. package/.cursor/commands/opsx-sync.md +134 -0
  357. package/.cursor/commands/opsx-verify.md +164 -0
  358. package/.cursor/hooks/cursor-pre-tool-use.js +122 -0
  359. package/.cursor/hooks/cursor-skill-eval.js +466 -0
  360. package/.cursor/hooks/lib/notify.js +310 -0
  361. package/.cursor/hooks/stop.js +55 -0
  362. package/.cursor/hooks.json +23 -0
  363. package/.cursor/mcp.json +22 -0
  364. package/.cursor/rules/skill-activation.mdc +99 -0
  365. package/.cursor/skills/add-skill/SKILL.md +488 -0
  366. package/.cursor/skills/analyze-requirements/SKILL.md +112 -0
  367. package/.cursor/skills/api-development/SKILL.md +315 -0
  368. package/.cursor/skills/architecture-design/SKILL.md +152 -0
  369. package/.cursor/skills/auto-test/SKILL.md +453 -0
  370. package/.cursor/skills/auto-test/references/api-conventions.md +260 -0
  371. package/.cursor/skills/backend-annotations/SKILL.md +248 -0
  372. package/.cursor/skills/banana-image/CHANGELOG.md +37 -0
  373. package/.cursor/skills/banana-image/README.md +146 -0
  374. package/.cursor/skills/banana-image/SKILL.md +171 -0
  375. package/.cursor/skills/banana-image/assets/logo.png +0 -0
  376. package/.cursor/skills/banana-image/references/advanced-usage.md +189 -0
  377. package/.cursor/skills/banana-image/scripts/apply_template.py +125 -0
  378. package/.cursor/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  379. package/.cursor/skills/banana-image/scripts/batch_prep.py +82 -0
  380. package/.cursor/skills/banana-image/scripts/package-lock.json +1437 -0
  381. package/.cursor/skills/banana-image/scripts/package.json +18 -0
  382. package/.cursor/skills/banana-image/scripts/requirements.txt +10 -0
  383. package/.cursor/skills/banana-image/templates/poster.json +22 -0
  384. package/.cursor/skills/banana-image/templates/product.json +17 -0
  385. package/.cursor/skills/banana-image/templates/social.json +22 -0
  386. package/.cursor/skills/banana-image/templates/thumbnail.json +17 -0
  387. package/.cursor/skills/brainstorm/SKILL.md +216 -0
  388. package/.cursor/skills/bug-detective/SKILL.md +295 -0
  389. package/.cursor/skills/bug-detective/references/error-patterns.md +242 -0
  390. package/.cursor/skills/code-patterns/SKILL.md +163 -0
  391. package/.cursor/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  392. package/.cursor/skills/collaborating-with-codex/SKILL.md +180 -0
  393. package/.cursor/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  394. package/.cursor/skills/collaborating-with-gemini/SKILL.md +194 -0
  395. package/.cursor/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  396. package/.cursor/skills/crud-development/SKILL.md +328 -0
  397. package/.cursor/skills/data-permission/SKILL.md +221 -0
  398. package/.cursor/skills/data-permission/references/custom-data-scope.md +90 -0
  399. package/.cursor/skills/database-ops/SKILL.md +210 -0
  400. package/.cursor/skills/error-handler/SKILL.md +310 -0
  401. package/.cursor/skills/file-oss-management/SKILL.md +260 -0
  402. package/.cursor/skills/file-oss-management/references/entities.md +105 -0
  403. package/.cursor/skills/file-oss-management/references/service-impl.md +104 -0
  404. package/.cursor/skills/fix-bug/SKILL.md +269 -0
  405. package/.cursor/skills/git-workflow/SKILL.md +179 -0
  406. package/.cursor/skills/jenkins-deploy/SKILL.md +134 -0
  407. package/.cursor/skills/json-serialization/SKILL.md +341 -0
  408. package/.cursor/skills/lanhu-design/SKILL.md +99 -0
  409. package/.cursor/skills/leniu-api-development/SKILL.md +319 -0
  410. package/.cursor/skills/leniu-api-development/references/real-examples.md +273 -0
  411. package/.cursor/skills/leniu-architecture-design/SKILL.md +383 -0
  412. package/.cursor/skills/leniu-backend-annotations/SKILL.md +277 -0
  413. package/.cursor/skills/leniu-brainstorm/SKILL.md +242 -0
  414. package/.cursor/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  415. package/.cursor/skills/leniu-code-patterns/SKILL.md +411 -0
  416. package/.cursor/skills/leniu-crud-development/SKILL.md +404 -0
  417. package/.cursor/skills/leniu-crud-development/references/templates.md +597 -0
  418. package/.cursor/skills/leniu-customization-location/SKILL.md +410 -0
  419. package/.cursor/skills/leniu-data-permission/SKILL.md +341 -0
  420. package/.cursor/skills/leniu-database-ops/SKILL.md +426 -0
  421. package/.cursor/skills/leniu-error-handler/SKILL.md +462 -0
  422. package/.cursor/skills/leniu-java-amount-handling/SKILL.md +461 -0
  423. package/.cursor/skills/leniu-java-code-style/SKILL.md +510 -0
  424. package/.cursor/skills/leniu-java-concurrent/SKILL.md +400 -0
  425. package/.cursor/skills/leniu-java-entity/SKILL.md +237 -0
  426. package/.cursor/skills/leniu-java-entity/references/templates.md +237 -0
  427. package/.cursor/skills/leniu-java-logging/SKILL.md +229 -0
  428. package/.cursor/skills/leniu-java-logging/references/data-mask.md +46 -0
  429. package/.cursor/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  430. package/.cursor/skills/leniu-java-mq/SKILL.md +338 -0
  431. package/.cursor/skills/leniu-java-mybatis/SKILL.md +267 -0
  432. package/.cursor/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  433. package/.cursor/skills/leniu-java-task/SKILL.md +367 -0
  434. package/.cursor/skills/leniu-marketing-scenario/SKILL.md +448 -0
  435. package/.cursor/skills/leniu-marketing-scenario/references/pay-meal-rules.md +197 -0
  436. package/.cursor/skills/leniu-marketing-scenario/references/price-rules.md +286 -0
  437. package/.cursor/skills/leniu-marketing-scenario/references/recharge-rules.md +188 -0
  438. package/.cursor/skills/leniu-redis-cache/SKILL.md +331 -0
  439. package/.cursor/skills/leniu-report-scenario/SKILL.md +508 -0
  440. package/.cursor/skills/leniu-report-scenario/references/amount-handling.md +448 -0
  441. package/.cursor/skills/leniu-report-scenario/references/analysis-module.md +64 -0
  442. package/.cursor/skills/leniu-report-scenario/references/customization-table-fields.md +93 -0
  443. package/.cursor/skills/leniu-report-scenario/references/customization.md +356 -0
  444. package/.cursor/skills/leniu-report-scenario/references/data-permission.md +182 -0
  445. package/.cursor/skills/leniu-report-scenario/references/export.md +553 -0
  446. package/.cursor/skills/leniu-report-scenario/references/mealtime.md +197 -0
  447. package/.cursor/skills/leniu-report-scenario/references/query-param.md +274 -0
  448. package/.cursor/skills/leniu-report-scenario/references/report-tables.md +162 -0
  449. package/.cursor/skills/leniu-report-scenario/references/standard-customization.md +112 -0
  450. package/.cursor/skills/leniu-report-scenario/references/standard-table-fields.md +113 -0
  451. package/.cursor/skills/leniu-report-scenario/references/total-line.md +179 -0
  452. package/.cursor/skills/leniu-security-guard/SKILL.md +306 -0
  453. package/.cursor/skills/leniu-utils-toolkit/SKILL.md +380 -0
  454. package/.cursor/skills/loki-log-query/SKILL.md +430 -0
  455. package/.cursor/skills/loki-log-query/environments.json +45 -0
  456. package/.cursor/skills/mysql-debug/SKILL.md +406 -0
  457. package/.cursor/skills/openspec-apply-change/SKILL.md +165 -0
  458. package/.cursor/skills/openspec-archive-change/SKILL.md +122 -0
  459. package/.cursor/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  460. package/.cursor/skills/openspec-continue-change/SKILL.md +126 -0
  461. package/.cursor/skills/openspec-explore/SKILL.md +299 -0
  462. package/.cursor/skills/openspec-ff-change/SKILL.md +109 -0
  463. package/.cursor/skills/openspec-new-change/SKILL.md +82 -0
  464. package/.cursor/skills/openspec-onboard/SKILL.md +414 -0
  465. package/.cursor/skills/openspec-sync-specs/SKILL.md +146 -0
  466. package/.cursor/skills/openspec-verify-change/SKILL.md +176 -0
  467. package/.cursor/skills/performance-doctor/SKILL.md +297 -0
  468. package/.cursor/skills/project-navigator/SKILL.md +211 -0
  469. package/.cursor/skills/redis-cache/SKILL.md +282 -0
  470. package/.cursor/skills/redis-cache/references/listeners.md +23 -0
  471. package/.cursor/skills/scheduled-jobs/SKILL.md +277 -0
  472. package/.cursor/skills/security-guard/SKILL.md +245 -0
  473. package/.cursor/skills/security-guard/references/encrypt-config.md +103 -0
  474. package/.cursor/skills/security-guard/references/sensitive-strategies.md +42 -0
  475. package/.cursor/skills/skill-creator/LICENSE.txt +202 -0
  476. package/.cursor/skills/skill-creator/SKILL.md +479 -0
  477. package/.cursor/skills/skill-creator/agents/analyzer.md +274 -0
  478. package/.cursor/skills/skill-creator/agents/comparator.md +202 -0
  479. package/.cursor/skills/skill-creator/agents/grader.md +223 -0
  480. package/.cursor/skills/skill-creator/assets/eval_review.html +146 -0
  481. package/.cursor/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  482. package/.cursor/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  483. package/.cursor/skills/skill-creator/references/schemas.md +430 -0
  484. package/.cursor/skills/skill-creator/scripts/__init__.py +0 -0
  485. package/.cursor/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  486. package/.cursor/skills/skill-creator/scripts/generate_report.py +326 -0
  487. package/.cursor/skills/skill-creator/scripts/improve_description.py +248 -0
  488. package/.cursor/skills/skill-creator/scripts/package_skill.py +136 -0
  489. package/.cursor/skills/skill-creator/scripts/quick_validate.py +103 -0
  490. package/.cursor/skills/skill-creator/scripts/run_eval.py +310 -0
  491. package/.cursor/skills/skill-creator/scripts/run_loop.py +332 -0
  492. package/.cursor/skills/skill-creator/scripts/utils.py +47 -0
  493. package/.cursor/skills/sms-mail/SKILL.md +346 -0
  494. package/.cursor/skills/sms-mail/references/mail-config.md +88 -0
  495. package/.cursor/skills/sms-mail/references/sms-config.md +74 -0
  496. package/.cursor/skills/social-login/SKILL.md +328 -0
  497. package/.cursor/skills/social-login/references/provider-configs.md +118 -0
  498. package/.cursor/skills/store-pc/SKILL.md +366 -0
  499. package/.cursor/skills/sync-back-merge/SKILL.md +66 -0
  500. package/.cursor/skills/task-tracker/SKILL.md +307 -0
  501. package/.cursor/skills/tech-decision/SKILL.md +393 -0
  502. package/.cursor/skills/tenant-management/SKILL.md +272 -0
  503. package/.cursor/skills/tenant-management/references/tenant-scenarios.md +91 -0
  504. package/.cursor/skills/test-development/SKILL.md +301 -0
  505. package/.cursor/skills/test-development/references/parameterized-examples.md +119 -0
  506. package/.cursor/skills/ui-pc/SKILL.md +438 -0
  507. package/.cursor/skills/utils-toolkit/SKILL.md +354 -0
  508. package/.cursor/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  509. package/.cursor/skills/websocket-sse/SKILL.md +350 -0
  510. package/.cursor/skills/workflow-engine/SKILL.md +249 -0
  511. package/.cursor/skills/yunxiao-task-management/SKILL.md +401 -0
  512. package/.cursor/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
  513. package/.cursor/templates/env-config.md +27 -0
  514. package/AGENTS.md +275 -0
  515. package/CLAUDE.md +285 -0
  516. package/README.md +104 -0
  517. package/bin/index.js +3069 -0
  518. package/init.sh +178 -0
  519. package/package.json +40 -0
  520. package/scripts/build-skills.js +180 -0
  521. package/src/platform-map.json +100 -0
  522. package/src/skills/add-skill/SKILL.md +488 -0
  523. package/src/skills/add-todo/SKILL.md +269 -0
  524. package/src/skills/analyze-requirements/SKILL.md +112 -0
  525. package/src/skills/api-development/SKILL.md +315 -0
  526. package/src/skills/architecture-design/SKILL.md +152 -0
  527. package/src/skills/backend-annotations/SKILL.md +248 -0
  528. package/src/skills/banana-image/CHANGELOG.md +37 -0
  529. package/src/skills/banana-image/README.md +146 -0
  530. package/src/skills/banana-image/SKILL.md +171 -0
  531. package/src/skills/banana-image/assets/logo.png +0 -0
  532. package/src/skills/banana-image/references/advanced-usage.md +189 -0
  533. package/src/skills/banana-image/scripts/apply_template.py +125 -0
  534. package/src/skills/banana-image/scripts/banana_image_exec.ts +412 -0
  535. package/src/skills/banana-image/scripts/batch_prep.py +82 -0
  536. package/src/skills/banana-image/scripts/package-lock.json +1437 -0
  537. package/src/skills/banana-image/scripts/package.json +18 -0
  538. package/src/skills/banana-image/scripts/requirements.txt +10 -0
  539. package/src/skills/banana-image/templates/poster.json +22 -0
  540. package/src/skills/banana-image/templates/product.json +17 -0
  541. package/src/skills/banana-image/templates/social.json +22 -0
  542. package/src/skills/banana-image/templates/thumbnail.json +17 -0
  543. package/src/skills/brainstorm/SKILL.md +216 -0
  544. package/src/skills/bug-detective/SKILL.md +295 -0
  545. package/src/skills/bug-detective/references/error-patterns.md +242 -0
  546. package/src/skills/check/SKILL.md +367 -0
  547. package/src/skills/code-patterns/SKILL.md +163 -0
  548. package/src/skills/code-patterns/references/leniu-code-patterns.md +87 -0
  549. package/src/skills/codex-code-review/SKILL.md +327 -0
  550. package/src/skills/collaborating-with-codex/SKILL.md +180 -0
  551. package/src/skills/collaborating-with-codex/scripts/codex_bridge.py +275 -0
  552. package/src/skills/collaborating-with-gemini/SKILL.md +194 -0
  553. package/src/skills/collaborating-with-gemini/scripts/gemini_bridge.py +275 -0
  554. package/src/skills/crud/SKILL.md +265 -0
  555. package/src/skills/crud-development/SKILL.md +328 -0
  556. package/src/skills/data-permission/SKILL.md +221 -0
  557. package/src/skills/data-permission/references/custom-data-scope.md +90 -0
  558. package/src/skills/database-ops/SKILL.md +210 -0
  559. package/src/skills/dev/SKILL.md +187 -0
  560. package/src/skills/error-handler/SKILL.md +310 -0
  561. package/src/skills/file-oss-management/SKILL.md +260 -0
  562. package/src/skills/file-oss-management/references/entities.md +105 -0
  563. package/src/skills/file-oss-management/references/service-impl.md +104 -0
  564. package/src/skills/fix-bug/SKILL.md +269 -0
  565. package/src/skills/git-workflow/SKILL.md +179 -0
  566. package/src/skills/init-docs/SKILL.md +194 -0
  567. package/src/skills/json-serialization/SKILL.md +341 -0
  568. package/src/skills/leniu-api-development/SKILL.md +319 -0
  569. package/src/skills/leniu-api-development/references/real-examples.md +273 -0
  570. package/src/skills/leniu-architecture-design/SKILL.md +383 -0
  571. package/src/skills/leniu-backend-annotations/SKILL.md +277 -0
  572. package/src/skills/leniu-brainstorm/SKILL.md +242 -0
  573. package/src/skills/leniu-brainstorm/references/business-scenarios.md +162 -0
  574. package/src/skills/leniu-code-patterns/SKILL.md +411 -0
  575. package/src/skills/leniu-crud-development/SKILL.md +404 -0
  576. package/src/skills/leniu-crud-development/references/templates.md +597 -0
  577. package/src/skills/leniu-customization-location/SKILL.md +410 -0
  578. package/src/skills/leniu-data-permission/SKILL.md +341 -0
  579. package/src/skills/leniu-database-ops/SKILL.md +426 -0
  580. package/src/skills/leniu-error-handler/SKILL.md +462 -0
  581. package/src/skills/leniu-java-amount-handling/SKILL.md +461 -0
  582. package/src/skills/leniu-java-code-style/SKILL.md +510 -0
  583. package/src/skills/leniu-java-concurrent/SKILL.md +400 -0
  584. package/src/skills/leniu-java-entity/SKILL.md +237 -0
  585. package/src/skills/leniu-java-entity/references/templates.md +237 -0
  586. package/src/skills/leniu-java-export/SKILL.md +570 -0
  587. package/src/skills/leniu-java-logging/SKILL.md +229 -0
  588. package/src/skills/leniu-java-logging/references/data-mask.md +46 -0
  589. package/src/skills/leniu-java-logging/references/logging-scenarios.md +113 -0
  590. package/src/skills/leniu-java-mq/SKILL.md +338 -0
  591. package/src/skills/leniu-java-mybatis/SKILL.md +267 -0
  592. package/src/skills/leniu-java-mybatis/references/report-mapper.md +88 -0
  593. package/src/skills/leniu-java-report-query-param/SKILL.md +291 -0
  594. package/src/skills/leniu-java-task/SKILL.md +367 -0
  595. package/src/skills/leniu-java-total-line/SKILL.md +196 -0
  596. package/src/skills/leniu-marketing-price-rule-customizer/SKILL.md +301 -0
  597. package/src/skills/leniu-marketing-recharge-rule-customizer/SKILL.md +285 -0
  598. package/src/skills/leniu-mealtime/SKILL.md +215 -0
  599. package/src/skills/leniu-redis-cache/SKILL.md +331 -0
  600. package/src/skills/leniu-report-customization/SKILL.md +415 -0
  601. package/src/skills/leniu-report-customization/references/table-fields.md +93 -0
  602. package/src/skills/leniu-report-standard-customization/SKILL.md +391 -0
  603. package/src/skills/leniu-report-standard-customization/references/analysis-module.md +64 -0
  604. package/src/skills/leniu-report-standard-customization/references/table-fields.md +113 -0
  605. package/src/skills/leniu-security-guard/SKILL.md +306 -0
  606. package/src/skills/leniu-utils-toolkit/SKILL.md +380 -0
  607. package/src/skills/loki-log-query/SKILL.md +400 -0
  608. package/src/skills/loki-log-query/environments.json +45 -0
  609. package/src/skills/mysql-debug/SKILL.md +400 -0
  610. package/src/skills/next/SKILL.md +137 -0
  611. package/src/skills/openspec-apply-change/SKILL.md +165 -0
  612. package/src/skills/openspec-archive-change/SKILL.md +122 -0
  613. package/src/skills/openspec-bulk-archive-change/SKILL.md +254 -0
  614. package/src/skills/openspec-continue-change/SKILL.md +126 -0
  615. package/src/skills/openspec-explore/SKILL.md +299 -0
  616. package/src/skills/openspec-ff-change/SKILL.md +109 -0
  617. package/src/skills/openspec-new-change/SKILL.md +82 -0
  618. package/src/skills/openspec-onboard/SKILL.md +414 -0
  619. package/src/skills/openspec-sync-specs/SKILL.md +146 -0
  620. package/src/skills/openspec-verify-change/SKILL.md +176 -0
  621. package/src/skills/performance-doctor/SKILL.md +297 -0
  622. package/src/skills/progress/SKILL.md +193 -0
  623. package/src/skills/project-navigator/SKILL.md +211 -0
  624. package/src/skills/redis-cache/SKILL.md +282 -0
  625. package/src/skills/redis-cache/references/listeners.md +23 -0
  626. package/src/skills/scheduled-jobs/SKILL.md +277 -0
  627. package/src/skills/security-guard/SKILL.md +245 -0
  628. package/src/skills/security-guard/references/encrypt-config.md +103 -0
  629. package/src/skills/security-guard/references/sensitive-strategies.md +42 -0
  630. package/src/skills/skill-creator/LICENSE.txt +202 -0
  631. package/src/skills/skill-creator/SKILL.md +479 -0
  632. package/src/skills/skill-creator/agents/analyzer.md +274 -0
  633. package/src/skills/skill-creator/agents/comparator.md +202 -0
  634. package/src/skills/skill-creator/agents/grader.md +223 -0
  635. package/src/skills/skill-creator/assets/eval_review.html +146 -0
  636. package/src/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  637. package/src/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  638. package/src/skills/skill-creator/references/schemas.md +430 -0
  639. package/src/skills/skill-creator/scripts/__init__.py +0 -0
  640. package/src/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  641. package/src/skills/skill-creator/scripts/generate_report.py +326 -0
  642. package/src/skills/skill-creator/scripts/improve_description.py +248 -0
  643. package/src/skills/skill-creator/scripts/package_skill.py +136 -0
  644. package/src/skills/skill-creator/scripts/quick_validate.py +103 -0
  645. package/src/skills/skill-creator/scripts/run_eval.py +310 -0
  646. package/src/skills/skill-creator/scripts/run_loop.py +332 -0
  647. package/src/skills/skill-creator/scripts/utils.py +47 -0
  648. package/src/skills/sms-mail/SKILL.md +346 -0
  649. package/src/skills/sms-mail/references/mail-config.md +88 -0
  650. package/src/skills/sms-mail/references/sms-config.md +74 -0
  651. package/src/skills/social-login/SKILL.md +328 -0
  652. package/src/skills/social-login/references/provider-configs.md +118 -0
  653. package/src/skills/start/SKILL.md +154 -0
  654. package/src/skills/store-pc/SKILL.md +366 -0
  655. package/src/skills/sync/SKILL.md +149 -0
  656. package/src/skills/sync-back-merge/SKILL.md +66 -0
  657. package/src/skills/task-tracker/SKILL.md +307 -0
  658. package/src/skills/tech-decision/SKILL.md +393 -0
  659. package/src/skills/tenant-management/SKILL.md +272 -0
  660. package/src/skills/tenant-management/references/tenant-scenarios.md +91 -0
  661. package/src/skills/test-development/SKILL.md +301 -0
  662. package/src/skills/test-development/references/parameterized-examples.md +119 -0
  663. package/src/skills/ui-pc/SKILL.md +438 -0
  664. package/src/skills/update-status/SKILL.md +159 -0
  665. package/src/skills/utils-toolkit/SKILL.md +354 -0
  666. package/src/skills/utils-toolkit/references/redis-utils-api.md +56 -0
  667. package/src/skills/websocket-sse/SKILL.md +350 -0
  668. package/src/skills/workflow-engine/SKILL.md +249 -0
  669. package/src/skills/yunxiao-task-management/SKILL.md +401 -0
  670. package/src/skills/yunxiao-task-management/templates//346/217/220/346/265/213/345/215/225/346/250/241/346/235/277.html +17 -0
@@ -0,0 +1,310 @@
1
+ /**
2
+ * 智能完成通知模块
3
+ * 支持音效、系统通知弹窗、TTS 语音播报三种方式的任意组合
4
+ * 跨平台兼容:macOS / Windows / Linux
5
+ */
6
+ 'use strict';
7
+
8
+ const fs = require('fs');
9
+ const path = require('path');
10
+ const os = require('os');
11
+ const { spawn } = require('child_process');
12
+
13
+ // ── 默认配置 ─────────────────────────────────────────────────────────────
14
+ const DEFAULT_CONFIG = {
15
+ notify: {
16
+ methods: ['sound'],
17
+ sound: { enabled: true, file: 'completed.wav' },
18
+ notification: { enabled: false, title: 'AI 任务完成' },
19
+ tts: { enabled: false, prefix: '任务完成', maxLength: 80 },
20
+ summary: { maxLength: 100, strategy: 'first-sentence', stripMarkdown: true },
21
+ },
22
+ };
23
+
24
+ // ── 工具函数 ─────────────────────────────────────────────────────────────
25
+
26
+ /** 深度合并对象(src 补充到 dest,dest 已有的键保留) */
27
+ function deepMerge(dest, src) {
28
+ const result = { ...dest };
29
+ for (const [key, value] of Object.entries(src)) {
30
+ if (key in result && typeof result[key] === 'object' && result[key] !== null
31
+ && !Array.isArray(result[key]) && typeof value === 'object' && value !== null && !Array.isArray(value)) {
32
+ result[key] = deepMerge(result[key], value);
33
+ } else if (!(key in result)) {
34
+ result[key] = value;
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+
40
+ /** 带超时的 spawn,返回 Promise */
41
+ function spawnWithTimeout(cmd, args, opts, timeoutMs) {
42
+ return new Promise((resolve) => {
43
+ try {
44
+ const child = spawn(cmd, args, { stdio: ['pipe', 'pipe', 'pipe'], ...opts });
45
+ const timer = setTimeout(() => {
46
+ try { child.kill('SIGTERM'); } catch { /* ignore */ }
47
+ resolve(false);
48
+ }, timeoutMs);
49
+ child.on('close', () => { clearTimeout(timer); resolve(true); });
50
+ child.on('error', () => { clearTimeout(timer); resolve(false); });
51
+ } catch {
52
+ resolve(false);
53
+ }
54
+ });
55
+ }
56
+
57
+ // ── 1. readStdin ─────────────────────────────────────────────────────────
58
+
59
+ /** 读取 hook stdin JSON(2s 超时,失败返回 null) */
60
+ function readStdin() {
61
+ return new Promise((resolve) => {
62
+ // 非 TTY 且有 pipe 数据时才读取
63
+ if (process.stdin.isTTY) {
64
+ resolve(null);
65
+ return;
66
+ }
67
+
68
+ let data = '';
69
+ const timer = setTimeout(() => {
70
+ process.stdin.removeAllListeners();
71
+ process.stdin.destroy();
72
+ resolve(null);
73
+ }, 2000);
74
+
75
+ process.stdin.setEncoding('utf8');
76
+ process.stdin.on('data', (chunk) => { data += chunk; });
77
+ process.stdin.on('end', () => {
78
+ clearTimeout(timer);
79
+ try {
80
+ resolve(JSON.parse(data));
81
+ } catch {
82
+ resolve(null);
83
+ }
84
+ });
85
+ process.stdin.on('error', () => {
86
+ clearTimeout(timer);
87
+ resolve(null);
88
+ });
89
+ process.stdin.resume();
90
+ });
91
+ }
92
+
93
+ // ── 2. loadConfig ────────────────────────────────────────────────────────
94
+
95
+ /** 加载配置文件,按查找顺序:工作区 → 全局 → 内置默认值 */
96
+ function loadConfig(cwd) {
97
+ const homeDir = os.homedir();
98
+ const candidates = [
99
+ path.join(cwd, '.claude', 'notify-config.json'),
100
+ path.join(cwd, '.cursor', 'notify-config.json'),
101
+ path.join(homeDir, '.claude', 'notify-config.json'),
102
+ path.join(homeDir, '.cursor', 'notify-config.json'),
103
+ ];
104
+
105
+ for (const configPath of candidates) {
106
+ try {
107
+ if (fs.existsSync(configPath)) {
108
+ const userConfig = JSON.parse(fs.readFileSync(configPath, 'utf8'));
109
+ // 用户配置优先,缺失字段用默认值补充
110
+ return deepMerge(userConfig, DEFAULT_CONFIG);
111
+ }
112
+ } catch {
113
+ // 配置文件解析失败,继续尝试下一个
114
+ }
115
+ }
116
+
117
+ return JSON.parse(JSON.stringify(DEFAULT_CONFIG));
118
+ }
119
+
120
+ // ── 3. extractSummary ────────────────────────────────────────────────────
121
+
122
+ /** 从 last_assistant_message 提取摘要 */
123
+ function extractSummary(message, config) {
124
+ if (!message || typeof message !== 'string') return '';
125
+
126
+ const summaryConfig = config.notify.summary;
127
+ let text = message;
128
+
129
+ // 去除 markdown 标记
130
+ if (summaryConfig.stripMarkdown) {
131
+ text = text
132
+ .replace(/```[\s\S]*?```/g, '') // 代码块
133
+ .replace(/`[^`]+`/g, '') // 行内代码
134
+ .replace(/\[([^\]]*)\]\([^)]*\)/g, '$1') // 链接 → 文字
135
+ .replace(/^#{1,6}\s+.*$/gm, '') // 整行标题(含文字)
136
+ .replace(/\*\*([^*]+)\*\*/g, '$1') // 粗体
137
+ .replace(/\*([^*]+)\*/g, '$1') // 斜体
138
+ .replace(/~~([^~]+)~~/g, '$1') // 删除线
139
+ .replace(/^[-*+]\s+/gm, '') // 无序列表标记
140
+ .replace(/^\d+\.\s+/gm, '') // 有序列表标记
141
+ .replace(/^>\s+/gm, '') // 引用
142
+ .replace(/\n{2,}/g, '\n') // 多余空行
143
+ .trim();
144
+ }
145
+
146
+ if (!text) return '';
147
+
148
+ const maxLen = summaryConfig.maxLength || 100;
149
+ const strategy = summaryConfig.strategy || 'first-sentence';
150
+
151
+ let result = '';
152
+
153
+ switch (strategy) {
154
+ case 'first-sentence': {
155
+ // 匹配第一个句末标点(中文标点后无需空格,英文句号需后跟空格或结尾)
156
+ const match = text.match(/^(.+?(?:[。!?!?]|\.(?:\s|$)))/);
157
+ result = match ? match[1] : text.split('\n')[0];
158
+ break;
159
+ }
160
+ case 'first-line': {
161
+ result = text.split('\n')[0];
162
+ break;
163
+ }
164
+ case 'truncate':
165
+ default: {
166
+ result = text;
167
+ break;
168
+ }
169
+ }
170
+
171
+ // 截断到 maxLength
172
+ if (result.length > maxLen) {
173
+ result = result.substring(0, maxLen - 3) + '...';
174
+ }
175
+
176
+ return result.trim();
177
+ }
178
+
179
+ // ── 4. playSound ─────────────────────────────────────────────────────────
180
+
181
+ /** 跨平台播放音效(5s 超时) */
182
+ function playSound(cwd, fileName) {
183
+ const homeDir = os.homedir();
184
+ const candidates = [
185
+ path.join(cwd, '.claude', 'audio', fileName),
186
+ path.join(cwd, '.cursor', 'audio', fileName),
187
+ path.join(homeDir, '.claude', 'audio', fileName),
188
+ path.join(homeDir, '.cursor', 'audio', fileName),
189
+ ];
190
+
191
+ const audioFile = candidates.find(f => {
192
+ try { return fs.existsSync(f); } catch { return false; }
193
+ });
194
+
195
+ if (!audioFile) return Promise.resolve(false);
196
+
197
+ const platform = process.platform;
198
+
199
+ if (platform === 'darwin') {
200
+ return spawnWithTimeout('afplay', [audioFile], {}, 5000);
201
+ } else if (platform === 'win32') {
202
+ return spawnWithTimeout('powershell', [
203
+ '-c', `(New-Object Media.SoundPlayer '${audioFile.replace(/'/g, "''")}').PlaySync()`,
204
+ ], {}, 5000);
205
+ } else {
206
+ // Linux: 尝试 aplay → paplay
207
+ return spawnWithTimeout('aplay', [audioFile], {}, 5000).then(ok => {
208
+ if (!ok) return spawnWithTimeout('paplay', [audioFile], {}, 5000);
209
+ return true;
210
+ });
211
+ }
212
+ }
213
+
214
+ // ── 5. sendNotification ──────────────────────────────────────────────────
215
+
216
+ /** 跨平台系统通知弹窗(2s 超时) */
217
+ function sendNotification(title, body) {
218
+ const safeTitle = (title || '').replace(/"/g, '\\"');
219
+ const safeBody = (body || '').replace(/"/g, '\\"');
220
+ const platform = process.platform;
221
+
222
+ if (platform === 'darwin') {
223
+ return spawnWithTimeout('osascript', [
224
+ '-e', `display notification "${safeBody}" with title "${safeTitle}"`,
225
+ ], {}, 2000);
226
+ } else if (platform === 'win32') {
227
+ const ps = `
228
+ [Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null;
229
+ $template = [Windows.UI.Notifications.ToastNotificationManager]::GetTemplateContent([Windows.UI.Notifications.ToastTemplateType]::ToastText02);
230
+ $textNodes = $template.GetElementsByTagName('text');
231
+ $textNodes.Item(0).AppendChild($template.CreateTextNode('${safeTitle}')) | Out-Null;
232
+ $textNodes.Item(1).AppendChild($template.CreateTextNode('${safeBody}')) | Out-Null;
233
+ $toast = [Windows.UI.Notifications.ToastNotification]::new($template);
234
+ [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('AI Assistant').Show($toast);
235
+ `.replace(/\n\s*/g, ' ');
236
+ return spawnWithTimeout('powershell', ['-c', ps], {}, 2000);
237
+ } else {
238
+ // Linux: notify-send
239
+ return spawnWithTimeout('notify-send', [safeTitle, safeBody], {}, 2000);
240
+ }
241
+ }
242
+
243
+ // ── 6. speakTTS ──────────────────────────────────────────────────────────
244
+
245
+ /** 跨平台语音播报(7s 超时) */
246
+ function speakTTS(text, config) {
247
+ if (!text) return Promise.resolve(false);
248
+
249
+ const prefix = config.notify.tts.prefix || '';
250
+ const fullText = prefix ? `${prefix},${text}` : text;
251
+ const maxLen = config.notify.tts.maxLength || 80;
252
+ const spoken = fullText.length > maxLen ? fullText.substring(0, maxLen) : fullText;
253
+
254
+ const platform = process.platform;
255
+
256
+ if (platform === 'darwin') {
257
+ return spawnWithTimeout('say', [spoken], {}, 7000);
258
+ } else if (platform === 'win32') {
259
+ const safeTxt = spoken.replace(/'/g, "''");
260
+ return spawnWithTimeout('powershell', [
261
+ '-c', `Add-Type -AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('${safeTxt}')`,
262
+ ], {}, 7000);
263
+ } else {
264
+ // Linux: spd-say → espeak
265
+ return spawnWithTimeout('spd-say', [spoken], {}, 7000).then(ok => {
266
+ if (!ok) return spawnWithTimeout('espeak', [spoken], {}, 7000);
267
+ return true;
268
+ });
269
+ }
270
+ }
271
+
272
+ // ── 7. run(主入口)──────────────────────────────────────────────────────
273
+
274
+ /** 主入口:读配置 → 读 stdin → 提取摘要 → 并行执行通知 */
275
+ async function run(cwd) {
276
+ const config = loadConfig(cwd);
277
+ const methods = config.notify.methods || ['sound'];
278
+
279
+ // 读取 stdin(Claude/Cursor hook 通过 stdin 传入 JSON)
280
+ const stdinData = await readStdin();
281
+ const lastMessage = stdinData && stdinData.last_assistant_message
282
+ ? stdinData.last_assistant_message
283
+ : null;
284
+
285
+ // 提取摘要
286
+ const summary = lastMessage ? extractSummary(lastMessage, config) : '';
287
+
288
+ // 并行执行各通知方式
289
+ const tasks = [];
290
+
291
+ if (methods.includes('sound') && config.notify.sound.enabled !== false) {
292
+ tasks.push(playSound(cwd, config.notify.sound.file || 'completed.wav'));
293
+ }
294
+
295
+ if (methods.includes('notification') && config.notify.notification.enabled !== false) {
296
+ const title = config.notify.notification.title || 'AI 任务完成';
297
+ const body = summary || '回答已完成';
298
+ tasks.push(sendNotification(title, body));
299
+ }
300
+
301
+ if (methods.includes('tts') && config.notify.tts.enabled !== false) {
302
+ const ttsText = summary || '回答已完成';
303
+ tasks.push(speakTTS(ttsText, config));
304
+ }
305
+
306
+ // 等待所有通知完成(任何失败都静默忽略)
307
+ await Promise.allSettled(tasks);
308
+ }
309
+
310
+ module.exports = { run, readStdin, loadConfig, extractSummary, playSound, sendNotification, speakTTS };
@@ -0,0 +1,117 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * PreToolUse Hook - 工具使用前触发
4
+ * 功能:
5
+ * 1. 阻止危险命令
6
+ * 2. 提醒敏感操作
7
+ * 3. 自动修正常见错误
8
+ *
9
+ * 适配项目: RuoYi-Vue-Plus (纯后端项目)
10
+ */
11
+
12
+ const fs = require('fs');
13
+
14
+ // 从 stdin 读取输入
15
+ let inputData = '';
16
+ try {
17
+ inputData = fs.readFileSync(0, 'utf8');
18
+ } catch {
19
+ console.log(JSON.stringify({ continue: true }));
20
+ process.exit(0);
21
+ }
22
+
23
+ let input;
24
+ try {
25
+ input = JSON.parse(inputData);
26
+ } catch {
27
+ console.log(JSON.stringify({ continue: true }));
28
+ process.exit(0);
29
+ }
30
+
31
+ const toolName = input.tool_name;
32
+ const toolInput = input.tool_input || {};
33
+
34
+ // Bash 命令检查
35
+ if (toolName === 'Bash') {
36
+ const command = toolInput.command || '';
37
+
38
+ // 检测 > nul 错误用法(Windows 会创建名为 nul 的文件)
39
+ const nulPattern = /[12]?\s*>\s*nul\b/i;
40
+ if (nulPattern.test(command)) {
41
+ const output = {
42
+ decision: 'block',
43
+ reason: `🚫 **命令被阻止**:检测到 \`> nul\`\n\n**问题**:Windows 下某些 Shell 会创建名为 \`nul\` 的文件\n\n**解决方案**:\n- 移除输出重定向,或\n- 使用 \`> /dev/null 2>&1\`(跨平台)\n\n原命令: \`${command}\``
44
+ };
45
+ console.log(JSON.stringify(output));
46
+ process.exit(0);
47
+ }
48
+
49
+ // 危险命令模式
50
+ const dangerousPatterns = [
51
+ { pattern: /rm\s+-rf\s+\/(?!\w)/, reason: '删除根目录' },
52
+ { pattern: /rm\s+-rf\s+\*/, reason: '删除所有文件' },
53
+ { pattern: /drop\s+database/i, reason: '删除数据库' },
54
+ { pattern: /truncate\s+table/i, reason: '清空表数据' },
55
+ { pattern: /git\s+push\s+--force\s+(origin\s+)?(main|master)/i, reason: '强制推送到主分支' },
56
+ { pattern: /git\s+reset\s+--hard\s+HEAD~\d+/, reason: '硬重置多个提交' },
57
+ { pattern: />\s*\/dev\/sd[a-z]/, reason: '直接写入磁盘设备' },
58
+ { pattern: /mkfs\./, reason: '格式化文件系统' },
59
+ { pattern: /:(){ :|:& };:/, reason: 'Fork 炸弹' },
60
+ ];
61
+
62
+ for (const { pattern, reason } of dangerousPatterns) {
63
+ if (pattern.test(command)) {
64
+ const output = {
65
+ decision: 'block',
66
+ reason: `⚠️ **危险操作被阻止**\n\n命令: \`${command}\`\n原因: ${reason}\n\n如确需执行,请手动在终端运行`
67
+ };
68
+ console.log(JSON.stringify(output));
69
+ process.exit(0);
70
+ }
71
+ }
72
+
73
+ // 警告但不阻止的命令
74
+ const warningPatterns = [
75
+ { pattern: /git\s+push\s+--force/, warning: 'Force push 可能覆盖他人代码' },
76
+ { pattern: /npm\s+publish/, warning: '即将发布到 npm' },
77
+ { pattern: /docker\s+system\s+prune/, warning: '将清理所有未使用的 Docker 资源' },
78
+ ];
79
+
80
+ for (const { pattern, warning } of warningPatterns) {
81
+ if (pattern.test(command)) {
82
+ const output = {
83
+ continue: true,
84
+ systemMessage: `⚠️ **注意**: ${warning}`
85
+ };
86
+ console.log(JSON.stringify(output));
87
+ process.exit(0);
88
+ }
89
+ }
90
+ }
91
+
92
+ // Write 工具检查
93
+ if (toolName === 'Write') {
94
+ const filePath = toolInput.file_path || '';
95
+
96
+ // 检查是否写入敏感配置文件
97
+ const sensitiveFiles = [
98
+ '.env.production',
99
+ 'application-prod.yml',
100
+ 'credentials.json',
101
+ 'secrets.json'
102
+ ];
103
+
104
+ for (const sensitive of sensitiveFiles) {
105
+ if (filePath.endsWith(sensitive)) {
106
+ const output = {
107
+ continue: true,
108
+ systemMessage: `⚠️ **敏感文件**: 正在写入 \`${sensitive}\`\n\n请确保不要提交敏感信息到 Git`
109
+ };
110
+ console.log(JSON.stringify(output));
111
+ process.exit(0);
112
+ }
113
+ }
114
+ }
115
+
116
+ // 默认:允许继续
117
+ console.log(JSON.stringify({ continue: true }));
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * UserPromptSubmit Hook - 强制技能评估 (跨平台版本)
4
+ * 功能: 开发场景下,将 Skills 激活率从约 25% 提升到 90% 以上
5
+ *
6
+ * 适配: 通用后端项目
7
+ * 架构: 三层架构 (Controller → Service → Mapper)
8
+ */
9
+
10
+ const fs = require('fs');
11
+
12
+ // 从 stdin 读取用户输入
13
+ let inputData = '';
14
+ try {
15
+ inputData = fs.readFileSync(0, 'utf8');
16
+ } catch {
17
+ process.exit(0);
18
+ }
19
+
20
+ let input;
21
+ try {
22
+ input = JSON.parse(inputData);
23
+ } catch {
24
+ process.exit(0);
25
+ }
26
+
27
+ const prompt = (input.prompt || '').trim();
28
+
29
+ // 检测是否是恢复会话(防止上下文溢出死循环)
30
+ const skipPatterns = [
31
+ 'continued from a previous conversation',
32
+ 'ran out of context',
33
+ 'No code restore',
34
+ 'Conversation compacted',
35
+ 'commands restored',
36
+ 'context window',
37
+ 'session is being continued'
38
+ ];
39
+
40
+ const isRecoverySession = skipPatterns.some(pattern =>
41
+ prompt.toLowerCase().includes(pattern.toLowerCase())
42
+ );
43
+
44
+ if (isRecoverySession) {
45
+ // 恢复会话,跳过技能评估以防止死循环
46
+ process.exit(0);
47
+ }
48
+
49
+ // 检测是否是斜杠命令
50
+ // 规则:以 / 开头,且后面不包含第二个 /(排除 /iot/device 这样的路径)
51
+ const isSlashCommand = /^\/[^\/\s]+$/.test(prompt.split(/\s/)[0]);
52
+
53
+ if (isSlashCommand) {
54
+ // 斜杠命令,跳过技能评估
55
+ process.exit(0);
56
+ }
57
+
58
+ const instructions = `## 强制技能激活流程(必须执行)
59
+
60
+ ### 步骤 1 - 评估(必须在响应中明确展示)
61
+
62
+ 针对用户问题,列出匹配的技能:\`技能名: 理由\`,无匹配则写"无匹配技能"
63
+
64
+ 可用技能(后端项目):
65
+ - crud-development: CRUD/业务模块/Entity/Service/Controller 开发
66
+ - api-development: API设计/RESTful/接口规范
67
+ - database-ops: 数据库/SQL/建表/字典/菜单
68
+ - backend-annotations: 注解/限流/防重复/脱敏/加密
69
+ - utils-toolkit: 工具类/对象转换/字符串/集合/日期
70
+ - file-oss-management: 文件上传/OSS/云存储
71
+ - analyze-requirements: 分析需求/需求分析/原型分析/需求拆解/分析原型图
72
+ - fix-bug: 修复bug/fix bug/排查修复/线上修复/bug修复
73
+ - bug-detective: Bug/报错/异常/不工作
74
+ - error-handler: 异常处理/全局异常/业务异常
75
+ - performance-doctor: 性能/慢查询/优化/缓存
76
+ - data-permission: 数据权限/行级权限/数据隔离
77
+ - security-guard: 安全/认证授权/加密/XSS/SQL注入防护
78
+ - architecture-design: 架构/模块划分/重构
79
+ - code-patterns: 规范/禁止/命名/Git提交
80
+ - project-navigator: 项目结构/文件在哪/定位
81
+ - git-workflow: Git/提交/commit/分支
82
+ - task-tracker: 任务跟踪/记录进度/继续任务
83
+ - tech-decision: 技术选型/方案对比
84
+ - brainstorm: 头脑风暴/创意/方案设计
85
+ - collaborating-with-codex: Codex协作/多模型/算法分析
86
+ - collaborating-with-gemini: Gemini协作/前端原型/UI设计
87
+ - codex-code-review: 代码审查/review/代码检查/code review
88
+ - workflow-engine: 工作流/审批流/流程引擎
89
+ - test-development: 测试/单元测试/@Test/JUnit5/Mockito
90
+ - json-serialization: JSON/序列化/反序列化/日期格式/BigDecimal/精度
91
+ - redis-cache: Redis/缓存/@Cacheable/分布式锁/限流
92
+ - scheduled-jobs: 定时任务/@Scheduled/Quartz/XXL-Job/任务调度
93
+ - auto-test: 自动测试/auto-test/接口测试/API测试/Hurl/测试报告/回归测试
94
+ - add-skill: 添加技能/创建技能/新技能/技能开发
95
+ - banana-image: 生成图片/AI图片/产品图/海报/缩略图
96
+ - lanhu-design: 蓝湖/lanhu/设计稿/原型图/蓝湖链接/设计图/切图
97
+ - websocket-sse: WebSocket/SSE/实时推送/消息通知/双向通信
98
+ - sms-mail: 短信/邮件/SMS/验证码/通知
99
+ - social-login: 第三方登录/OAuth/OAuth2/社交登录/授权登录
100
+ - tenant-management: 多租户/租户隔离/SaaS/数据隔离
101
+ - ui-pc: 前端组件/Element UI/页面开发
102
+ - store-pc: Vuex/状态管理/store模块
103
+ - mysql-debug: MySQL调试/查数据库/执行SQL/数据库排查
104
+ - loki-log-query: Loki日志/日志查询/线上日志排查
105
+ - yunxiao-task-management: 云效任务/任务管理/需求管理
106
+ - crud: 快速CRUD生成/脚手架
107
+ - dev: 开发新功能/功能开发流程
108
+ - check: 代码检查/规范检查
109
+ - start: 项目启动/初始化/开始
110
+ - next: 下一步/继续/接下来做什么
111
+ - progress: 进度查看/当前状态
112
+ - sync: 同步/代码同步
113
+ - sync-back-merge: 回合并/sync back merge/主分支同步
114
+ - init-docs: 初始化文档/项目文档生成
115
+ - add-todo: 添加待办/TODO/任务添加
116
+ - update-status: 更新状态/状态变更
117
+ - skill-creator: 创建技能模板/技能脚手架/skill scaffold
118
+ - leniu-report-scenario: 报表/报表开发/报表查询/报表导出/合计行/totalLine/汇总报表/定制报表/report_order_info/金额处理/分转元/餐次/mealtime/ReportBaseTotalVO/CustomNumberConverter
119
+ - leniu-marketing-scenario: 营销/营销规则/消费规则/计价规则/充值规则/扣款规则/就餐规则/折扣/满减/限额/限次/补贴/赠送/满赠/管理费/MarketApi/RulePriceHandler/RuleRechargeHandler/RulePayHandler/MarketRule/规则定制
120
+ - jenkins-deploy: 打包/部署/Jenkins/构建/Portainer/发布到dev/发布到test/更新环境/自动部署
121
+
122
+ ### 步骤 2 - 激活(逐个调用,等待每个完成)
123
+
124
+ ⚠️ **必须逐个调用 Skill() 工具,每次调用后等待返回再调用下一个**
125
+ - 有 N 个匹配技能 → 逐个发起 N 次 Skill() 调用(不要并行!)
126
+ - 无匹配技能 → 写"无匹配技能"
127
+
128
+ **调用顺序**:按列出顺序,先调用第一个,等返回后再调用第二个...
129
+
130
+ ### 步骤 3 - 实现
131
+
132
+ 只有在步骤 2 的所有 Skill() 调用完成后,才能开始实现。
133
+
134
+ ---
135
+
136
+ **关键规则(违反将导致任务失败)**:
137
+ 1. ⛔ 禁止:评估后跳过 Skill() 直接实现
138
+ 2. ⛔ 禁止:只调用部分技能(必须全部调用)
139
+ 3. ⛔ 禁止:并行调用多个 Skill()(必须串行,一个一个来)
140
+ 4. ✅ 正确:评估 → 逐个调用 Skill() → 全部完成后实现
141
+
142
+ **正确示例**:
143
+ 用户问:"帮我开发一个优惠券管理功能"
144
+
145
+ 匹配技能:
146
+ - crud-development: 涉及业务模块CRUD开发
147
+ - database-ops: 需要建表和字典配置
148
+
149
+ 激活技能:
150
+ > Skill(crud-development)
151
+ > Skill(database-ops)
152
+
153
+ [所有技能激活完成后开始实现...]
154
+
155
+ **错误示例(禁止)**:
156
+ ❌ 只调用部分技能
157
+ ❌ 列出技能但不调用 Skill()
158
+ ❌ 并行调用(会导致只有一个生效)`;
159
+
160
+ console.log(instructions);
161
+ process.exit(0);
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Stop Hook - Claude 回答结束时触发
4
+ * 功能: nul 文件清理 + 代码审查提示 + 智能完成通知(音效/系统通知/TTS)
5
+ */
6
+
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+ const { execSync } = require('child_process');
10
+
11
+ // 清理可能误创建的 nul 文件(Windows 下 > nul 可能创建该文件)
12
+ const findAndDeleteNul = (dir, depth = 0) => {
13
+ if (depth > 5) return;
14
+ try {
15
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
16
+ for (const entry of entries) {
17
+ const fullPath = path.join(dir, entry.name);
18
+ if (entry.isFile() && entry.name === 'nul') {
19
+ fs.unlinkSync(fullPath);
20
+ console.error(`🧹 已清理: ${fullPath}`);
21
+ } else if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
22
+ findAndDeleteNul(fullPath, depth + 1);
23
+ }
24
+ }
25
+ } catch {
26
+ // 访问失败时静默忽略
27
+ }
28
+ };
29
+ findAndDeleteNul(process.cwd());
30
+
31
+ // 代码审查提示:检测是否有未提交的代码变更
32
+ try {
33
+ const cwd = process.cwd();
34
+ const diff = execSync('git diff --name-only HEAD 2>/dev/null || true', { cwd, encoding: 'utf8' }).trim();
35
+ const staged = execSync('git diff --cached --name-only 2>/dev/null || true', { cwd, encoding: 'utf8' }).trim();
36
+ const allChanged = [diff, staged].filter(Boolean).join('\n');
37
+
38
+ if (allChanged) {
39
+ // 检查是否有业务代码变更(Java/XML/SQL/Vue/JS 等)
40
+ const codeExtensions = /\.(java|xml|sql|vue|js|ts|jsx|tsx|py|go|rs|kt)$/i;
41
+ const changedFiles = allChanged.split('\n').filter(f => codeExtensions.test(f));
42
+
43
+ if (changedFiles.length > 0) {
44
+ console.error(`\n💡 检测到 ${changedFiles.length} 个代码文件变更,建议执行代码审查:`);
45
+ console.error(` → 输入 "review" 或 "审查代码" 使用 code-reviewer 进行规范检查\n`);
46
+ }
47
+ }
48
+ } catch {
49
+ // git 不可用或非 git 仓库,静默跳过
50
+ }
51
+
52
+ // 执行智能通知
53
+ require('./lib/notify.js').run(process.cwd())
54
+ .then(() => process.exit(0))
55
+ .catch(() => process.exit(0));
@@ -0,0 +1,9 @@
1
+ {
2
+ "notify": {
3
+ "methods": ["sound"],
4
+ "sound": { "enabled": true, "file": "completed.wav" },
5
+ "notification": { "enabled": false, "title": "AI 任务完成" },
6
+ "tts": { "enabled": false, "prefix": "任务完成", "maxLength": 80 },
7
+ "summary": { "maxLength": 100, "strategy": "first-sentence", "stripMarkdown": true }
8
+ }
9
+ }