@alanwang-merit/meritdata-platform-skill-package 1.0.9 → 1.0.10

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 (659) hide show
  1. package/package.json +1 -1
  2. package/rules/api-design-rules.md +0 -7
  3. package/rules/code-dev-rules.md +0 -70
  4. package/rules/coding-standards-rules.md +0 -99
  5. package/rules/data-boundary-rules.md +32 -0
  6. package/rules/frontend-coding-rules.md +0 -6
  7. package/rules/frontend-component-rules.md +0 -6
  8. package/rules/git-workflow-rules.md +0 -6
  9. package/rules/nacos-rules.md +0 -6
  10. package/rules/naming-conventions-rules.md +0 -6
  11. package/rules/performance-rules.md +0 -6
  12. package/rules/security-rules.md +0 -6
  13. package/rules/sql-naming-rules.md +0 -6
  14. package/rules/sql-script-rules.md +0 -6
  15. package/skills/api-design/SKILL.md +523 -0
  16. package/skills/architecture-readiness-check/SKILL.md +80 -0
  17. package/skills/architecture-readiness-check/references//346/236/266/346/236/204/350/256/276/350/256/241/345/207/206/345/244/207/345/272/246/346/243/200/346/237/245/346/212/245/345/221/212/346/250/241/346/235/277.md +129 -0
  18. package/skills/architecture-readiness-check/references//346/236/266/346/236/204/350/256/276/350/256/241/345/207/206/345/244/207/345/272/246/346/243/200/346/237/245/346/270/205/345/215/225.md +251 -0
  19. package/skills/ask-matt/SKILL.md +78 -0
  20. package/skills/ask-matt/agents/openai.yaml +5 -0
  21. package/skills/backend-code-review/SKILL.md +168 -0
  22. package/skills/backend-code-review/references/architecture-rule.md +91 -0
  23. package/skills/backend-code-review/references/db-schema-rule.md +157 -0
  24. package/skills/backend-code-review/references/repositories-rule.md +61 -0
  25. package/skills/backend-code-review/references/sqlalchemy-rule.md +139 -0
  26. package/skills/backend-patterns/SKILL.md +597 -0
  27. package/skills/backend-patterns/agents/openai.yaml +7 -0
  28. package/skills/brainstorming/SKILL.md +151 -0
  29. package/skills/brainstorming/scripts/frame-template.html +213 -0
  30. package/skills/brainstorming/scripts/helper.js +167 -0
  31. package/skills/brainstorming/scripts/server.cjs +723 -0
  32. package/skills/brainstorming/scripts/server.js +338 -0
  33. package/skills/brainstorming/scripts/start-server.sh +209 -0
  34. package/skills/brainstorming/scripts/stop-server.sh +120 -0
  35. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  36. package/skills/brainstorming/visual-companion.md +298 -0
  37. package/skills/code-design-consistency-check/SKILL.md +142 -0
  38. package/skills/code-design-consistency-check/references//344/273/243/347/240/201/344/270/216/350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/346/243/200/346/237/245/346/212/245/345/221/212/346/250/241/346/235/277.md +242 -0
  39. package/skills/code-design-consistency-check/references//344/273/243/347/240/201/344/270/216/350/256/276/350/256/241/344/270/200/350/207/264/346/200/247/346/243/200/346/237/245/346/270/205/345/215/225.md +314 -0
  40. package/skills/code-low-level-check/SKILL.md +159 -0
  41. package/skills/code-low-level-check/references//344/273/243/347/240/201/344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/212/245/345/221/212/346/250/241/346/235/277.md +242 -0
  42. package/skills/code-low-level-check/references//344/273/243/347/240/201/344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/270/205/345/215/225.md +353 -0
  43. package/skills/code-low-level-check/references//345/211/215/347/253/257UI/345/212/237/350/203/275/344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/270/205/345/215/225.md +338 -0
  44. package/skills/code-review/SKILL.md +89 -0
  45. package/skills/code-review/agents/openai.yaml +3 -0
  46. package/skills/codebase-design/DEEPENING.md +37 -0
  47. package/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  48. package/skills/codebase-design/SKILL.md +114 -0
  49. package/skills/codebase-design/agents/openai.yaml +3 -0
  50. package/skills/design-architect-review/SKILL.md +81 -0
  51. package/skills/design-architect-review/references//346/236/266/346/236/204/345/270/210/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +264 -0
  52. package/skills/design-low-level-check/SKILL.md +95 -0
  53. package/skills/design-low-level-check/references//346/212/200/346/234/257/350/256/276/350/256/241/344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/212/245/345/221/212/346/250/241/346/235/277.md +125 -0
  54. package/skills/design-low-level-check/references//346/212/200/346/234/257/350/256/276/350/256/241/344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/270/205/345/215/225.md +342 -0
  55. package/skills/design-review/SKILL.md +225 -0
  56. package/skills/design-review/references//350/256/276/350/256/241/350/257/204/345/256/241/346/243/200/346/237/245/345/215/225.md +64 -0
  57. package/skills/design-review-report/SKILL.md +150 -0
  58. package/skills/design-review-report/references//350/256/276/350/256/241/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +224 -0
  59. package/skills/design-taste-frontend/SKILL.md +226 -0
  60. package/skills/developer-testcase-review/SKILL.md +191 -0
  61. package/skills/developer-testcase-review/references//345/274/200/345/217/221/350/200/205/346/265/213/350/257/225/347/224/250/344/276/213/346/243/200/346/237/245/345/215/225.md +40 -0
  62. package/skills/development-code-review/SKILL.md +138 -0
  63. package/skills/development-code-review/references//345/274/200/345/217/221/344/273/243/347/240/201/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +260 -0
  64. package/skills/development-code-review/references//345/274/200/345/217/221/344/273/243/347/240/201/350/257/204/345/256/241/346/243/200/346/237/245/345/215/225.md +82 -0
  65. package/skills/development-expert-review/SKILL.md +150 -0
  66. package/skills/development-expert-review/references//345/211/215/345/220/216/347/253/257/344/270/223/345/256/266/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +338 -0
  67. package/skills/diagnosing-bugs/SKILL.md +134 -0
  68. package/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  69. package/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  70. package/skills/dispatching-parallel-agents/SKILL.md +167 -0
  71. package/skills/domain-modeling/ADR-FORMAT.md +47 -0
  72. package/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  73. package/skills/domain-modeling/SKILL.md +74 -0
  74. package/skills/domain-modeling/agents/openai.yaml +3 -0
  75. package/skills/executing-plans/SKILL.md +64 -0
  76. package/skills/finishing-a-development-branch/SKILL.md +201 -0
  77. package/skills/frontend-patterns/SKILL.md +642 -0
  78. package/skills/generate-developer-testcase/SKILL.md +70 -0
  79. package/skills/generate-developer-testcase/references//345/274/200/345/217/221/350/200/205/346/265/213/350/257/225/347/224/250/344/276/213/346/250/241/346/235/277.md +157 -0
  80. package/skills/git-guardrails-claude-code/SKILL.md +95 -0
  81. package/skills/git-guardrails-claude-code/agents/openai.yaml +3 -0
  82. package/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
  83. package/skills/grill-me/SKILL.md +7 -0
  84. package/skills/grill-me/agents/openai.yaml +5 -0
  85. package/skills/grill-with-docs/SKILL.md +7 -0
  86. package/skills/grill-with-docs/agents/openai.yaml +5 -0
  87. package/skills/grilling/SKILL.md +12 -0
  88. package/skills/grilling/agents/openai.yaml +3 -0
  89. package/skills/handoff/SKILL.md +16 -0
  90. package/skills/handoff/agents/openai.yaml +5 -0
  91. package/skills/implement/SKILL.md +15 -0
  92. package/skills/implement/agents/openai.yaml +5 -0
  93. package/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  94. package/skills/improve-codebase-architecture/SKILL.md +71 -0
  95. package/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  96. package/skills/init-deep-claude/SKILL.md +270 -0
  97. package/skills/init-deep-claude/_meta.json +14 -0
  98. package/skills/init-deep-claude/evals/evals.json +60 -0
  99. package/skills/init-deep-claude/references/code-project-template.md +57 -0
  100. package/skills/init-deep-claude/references/error-handling.md +118 -0
  101. package/skills/init-deep-claude/references/monorepo-strategy.md +100 -0
  102. package/skills/init-deep-claude/references/plain-directory-template.md +62 -0
  103. package/skills/java-architect/SKILL.md +132 -0
  104. package/skills/java-architect/references/jpa-optimization.md +393 -0
  105. package/skills/java-architect/references/reactive-webflux.md +356 -0
  106. package/skills/java-architect/references/spring-boot-setup.md +269 -0
  107. package/skills/java-architect/references/spring-security.md +445 -0
  108. package/skills/java-architect/references/testing-patterns.md +500 -0
  109. package/skills/java-coding-standards/SKILL.md +147 -0
  110. package/skills/java-testing/SKILL.md +34 -0
  111. package/skills/java-testing/evals/evals.json +46 -0
  112. package/skills/java-testing/references/junit-template.md +58 -0
  113. package/skills/meritdata-platform-2nd-dev-check/README.md +196 -0
  114. package/skills/meritdata-platform-2nd-dev-check/SKILL.md +209 -23
  115. package/skills/meritdata-platform-2nd-dev-check/agents/openai.yaml +33 -0
  116. package/skills/meritdata-platform-2nd-dev-check/checklists/checks.schema.json +22 -0
  117. package/skills/meritdata-platform-2nd-dev-check/checklists/dependency.chk.json +96 -0
  118. package/skills/meritdata-platform-2nd-dev-check/checklists/frontend.chk.json +69 -0
  119. package/skills/meritdata-platform-2nd-dev-check/checklists/integration.chk.json +78 -0
  120. package/skills/meritdata-platform-2nd-dev-check/checklists/naming.chk.json +78 -0
  121. package/skills/meritdata-platform-2nd-dev-check/checklists/package-structure.chk.json +87 -0
  122. package/skills/meritdata-platform-2nd-dev-check/checklists/security.chk.json +87 -0
  123. package/skills/meritdata-platform-2nd-dev-check/references/checklist.md +322 -0
  124. package/skills/meritdata-platform-2nd-dev-check/references/env-vars.md +232 -0
  125. package/skills/meritdata-platform-2nd-dev-check/references/fix-guide.md +433 -0
  126. package/skills/meritdata-platform-2nd-dev-check/scripts/apply-to-files.sh +238 -0
  127. package/skills/meritdata-platform-2nd-dev-check/scripts/check-backend.sh +171 -0
  128. package/skills/meritdata-platform-2nd-dev-check/scripts/check-conventions.sh +188 -0
  129. package/skills/meritdata-platform-2nd-dev-check/scripts/check-database.sh +128 -0
  130. package/skills/meritdata-platform-2nd-dev-check/scripts/check-frontend.sh +225 -0
  131. package/skills/meritdata-platform-2nd-dev-check/scripts/check-lib-version.sh +289 -0
  132. package/skills/meritdata-platform-2nd-dev-check/scripts/check-platform.sh +212 -0
  133. package/skills/meritdata-platform-2nd-dev-check/scripts/load-config.sh +189 -0
  134. package/skills/meritdata-platform-2nd-dev-check/scripts/run-all.sh +168 -0
  135. package/skills/meritdata-platform-2nd-dev-check/scripts/write-env.sh +147 -0
  136. package/skills/meritdata-platform-bootstrap-2nd-dev/SKILL.md +77 -0
  137. package/skills/meritdata-platform-bootstrap-2nd-dev/agents/openai.yaml +23 -0
  138. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/application.java.vm +32 -0
  139. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/banner.txt.vm +9 -0
  140. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/bootstrap.properties.vm +20 -0
  141. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/pom.xml.vm +202 -0
  142. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/entity/ProcTrackDTOApproval.java +36 -0
  143. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/Checker.java +39 -0
  144. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/LengthChecker.java +51 -0
  145. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/NumberChecker.java +49 -0
  146. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/RequiredChecker.java +39 -0
  147. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/SortNoChecker.java +31 -0
  148. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/SpecialCharChecker.java +47 -0
  149. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/UniqueChecker.java +30 -0
  150. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/Column.java +81 -0
  151. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/ImpConfig.java +126 -0
  152. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/RowData.java +68 -0
  153. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/Converter.java +28 -0
  154. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/DateConverter.java +31 -0
  155. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/LookUpConverter.java +53 -0
  156. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/SexConverter.java +45 -0
  157. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/RowDataLoader.java +158 -0
  158. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/impl/BeanRowDataLoader.java +18 -0
  159. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/impl/MapRowDataLoader.java +41 -0
  160. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/feign/MangeFeignClient.java +21 -0
  161. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/IImportHandler.java +24 -0
  162. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/AbstractImportHandler.java +172 -0
  163. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/BaseImportHandler.java +50 -0
  164. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/ImpCallable.java +53 -0
  165. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/importcommon/config/ConfigLoader.java +97 -0
  166. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/importcommon/util/ImportUtils.java +46 -0
  167. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/App.vue +12 -0
  168. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/Index.vue +18 -0
  169. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/i18n.js +13 -0
  170. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/langs/en_US.js +36 -0
  171. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/langs/zh_CN.js +36 -0
  172. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/index.js +14 -0
  173. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/main.js +21 -0
  174. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/router.js +16 -0
  175. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/store.js +20 -0
  176. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Add.vue +43 -0
  177. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Detail.vue +31 -0
  178. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Grid.vue +44 -0
  179. package/skills/meritdata-platform-bootstrap-2nd-dev/references/README.md +9 -0
  180. package/skills/meritdata-platform-bootstrap-2nd-dev/scripts/bootstrap.ps1 +353 -0
  181. package/skills/meritdata-platform-bootstrap-2nd-dev/scripts/bootstrap.sh +350 -0
  182. package/skills/meritdata-platform-bpm/SKILL.md +94 -30
  183. package/skills/meritdata-platform-bpm/agents/openai.yaml +36 -0
  184. package/skills/meritdata-platform-bpm/examples/leave-flow/README.md +151 -0
  185. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20201_/345/211/215/347/275/256/346/235/241/344/273/266.md +11 -0
  186. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20202_/350/247/204/345/210/231/345/274/225/346/223/216/345/210/235/345/247/213/345/214/226/346/216/245/345/217/243.md +263 -0
  187. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20203_/345/220/257/345/212/250/346/265/201/347/250/213/345/256/236/344/276/213/346/216/245/345/217/243.md +187 -0
  188. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20204_/350/277/220/350/241/214/350/247/204/345/210/231/345/274/225/346/223/216.md +449 -0
  189. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20205_/345/256/214/346/210/220/344/273/273/345/212/241/346/216/245/345/217/243.md +232 -0
  190. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20206_/345/241/253/345/206/231/346/204/217/350/247/201/346/216/245/345/217/243.md +192 -0
  191. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20207_/346/240/271/346/215/256/344/273/273/345/212/241/350/212/202/347/202/271/350/216/267/345/217/226/346/204/217/350/247/201/345/206/205/345/256/271.md +212 -0
  192. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20208_/346/237/245/347/234/213/350/277/275/350/270/252/346/216/245/345/217/243.md +492 -0
  193. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20209_/351/200/200/345/233/236/346/213/237/347/250/277/344/272/272/346/216/245/345/217/243.md +187 -0
  194. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20210_/351/200/200/345/233/236/344/270/212/344/270/200/347/216/257/350/212/202/345/244/204/347/220/206/344/272/272/346/216/245/345/217/243.md +183 -0
  195. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20211_/346/265/201/347/250/213/350/256/276/350/256/241/345/231/250/345/210/227/350/241/250/346/237/245/350/257/242.md +314 -0
  196. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20212_/344/270/252/344/272/272/345/276/205/345/212/236.md +261 -0
  197. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20213_/351/230/205/347/237/245.md +306 -0
  198. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20214_/346/265/201/347/250/213/346/234/200/346/226/260/345/256/232/344/271/211ID.md +100 -0
  199. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20215_/344/270/232/345/212/241/347/233/270/345/205/263/346/216/245/345/217/243.md +637 -0
  200. package/skills/meritdata-platform-bpm/references/api//346/224/273/347/225/245-01-/346/265/201/347/250/213API-/347/253/240/350/212/20216_/346/265/201/347/250/213/345/210/206/347/261/273/347/233/270/345/205/263.md +176 -0
  201. package/skills/meritdata-platform-bpm/references/api-reference.md +2779 -0
  202. package/skills/meritdata-platform-bpm/references/bpm-engine-complete-methods.md +150 -0
  203. package/skills/meritdata-platform-bpm/references/bpm-engine-detail/12_/345/233/233/344/270/232/345/212/241/347/273/204/344/273/266-4.1/345/267/245/344/275/234/346/265/201BpmEngine.md +86 -0
  204. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-00_/346/200/273/350/247/210.md +66 -0
  205. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20201_/346/246/202/350/277/260.md +165 -0
  206. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20202_/347/273/204/344/273/266/344/270/216/346/226/271/346/263/225/346/246/202/350/247/210/350/241/250.md +45 -0
  207. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20203_BpmFormTools_-_BPM/350/241/250/345/215/225/345/267/245/345/205/267/347/273/204/344/273/266.md +145 -0
  208. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20204_BpmGridButtonsNew_-_BPM/350/241/250/346/240/274/346/214/211/351/222/256/347/273/204/344/273/266.md +239 -0
  209. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20205_/345/220/216/347/253/257BpmEngine/346/240/270/345/277/203/346/216/245/345/217/243.md +135 -0
  210. package/skills/meritdata-platform-bpm/references/components-ref//346/224/273/347/225/245-08-/346/265/201/347/250/213/345/211/215/347/253/257/347/273/204/344/273/266-/347/253/240/350/212/20206_/351/231/204/345/275/225.md +43 -0
  211. package/skills/meritdata-platform-bpm/references/components.md +618 -0
  212. package/skills/meritdata-platform-bpm/references/custom-assignee.md +28 -0
  213. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-00_/346/200/273/350/247/210.md +51 -0
  214. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20201_/345/256/236/347/216/260/347/255/226/347/225/245.md +30 -0
  215. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20202_/350/207/252/345/256/232/344/271/211_jar_/345/214/205/347/232/204/345/256/236/347/216/260/346/265/201/347/250/213.md +242 -0
  216. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20203_/350/207/252/345/256/232/344/271/211/346/234/215/345/212/241/346/220/255/345/273/272/357/274/210/350/213/245/345/267/262/345/255/230/345/234/250/345/267/245/347/250/213/345/222/214/346/216/245/345/217/243/357/274/214/346/255/244/346/255/245/351/252/244/345/217/257/347/234/201/347/225/245/357/274/211.md +150 -0
  217. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20204_/346/265/201/347/250/213/350/256/276/350/256/241/344/270/255/350/256/276/347/275/256_listener_/345/217/202/346/225/260.md +44 -0
  218. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20205_/346/265/213/350/257/225/350/247/246/345/217/221/346/265/201/347/250/213/347/233/221/345/220/254/344/272/213/344/273/266/346/230/257/345/220/246/347/224/237/346/225/210.md +42 -0
  219. package/skills/meritdata-platform-bpm/references/listener//346/224/273/347/225/245-03-/347/233/221/345/220/254/350/241/250/350/276/276/345/274/217-/347/253/240/350/212/20206_/345/244/207/346/263/250/357/274/232.md +26 -0
  220. package/skills/meritdata-platform-bpm/references/listener-expression.md +304 -0
  221. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-00_/346/200/273/350/247/210.md +25 -0
  222. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20201_/350/203/214/346/231/257.md +12 -0
  223. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20202_/345/267/245/344/275/234/346/265/201/347/233/270/345/205/263/344/273/213/347/273/215.md +28 -0
  224. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20203_/345/272/224/347/224/250/345/274/200/345/217/221/345/271/263/345/217/260/346/265/201/347/250/213/345/214/205/345/220/253/346/250/241/345/235/227.md +18 -0
  225. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20204_/346/265/201/347/250/213/345/212/237/350/203/275/346/250/241/345/235/227/344/273/213/347/273/215.md +284 -0
  226. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20205_/346/265/201/347/250/213/345/220/216/347/253/257/350/256/276/350/256/241.md +226 -0
  227. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20206_/346/265/201/347/250/213/345/211/215/347/253/257/350/256/276/350/256/241.md +80 -0
  228. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20207_/344/272/214/346/254/241/345/274/200/345/217/221.md +38 -0
  229. package/skills/meritdata-platform-bpm/references/module-design-ref//346/224/273/347/225/245-07-/346/265/201/347/250/213/346/250/241/345/235/227/350/256/276/350/256/241-/347/253/240/350/212/20208_/344/270/252/344/272/272/346/240/267/344/276/213/346/265/201/347/250/213/347/232/204/351/205/215/347/275/256.md +92 -0
  230. package/skills/meritdata-platform-bpm/references/module-design.md +342 -0
  231. package/skills/meritdata-platform-bpm/references/process-track.md +172 -0
  232. package/skills/meritdata-platform-bpm/references/todo-portal.md +239 -0
  233. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-00_/346/200/273/350/247/210.md +84 -0
  234. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20201_/346/240/267/344/276/213/350/257/264/346/230/216.md +37 -0
  235. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20202_/345/220/216/347/253/257/345/267/245/347/250/213/345/210/233/345/273/272.md +39 -0
  236. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20203_/345/220/216/347/253/257/345/267/245/347/250/213/351/205/215/347/275/256.md +234 -0
  237. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20204_/345/220/216/347/253/257/345/267/245/347/250/213/344/270/232/345/212/241/347/261/273/345/210/233/345/273/272.md +549 -0
  238. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20205_/345/220/257/345/212/250/345/220/216/347/253/257/345/272/224/347/224/250/345/267/245/347/250/213.md +49 -0
  239. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20206_/346/265/201/347/250/213/345/272/224/347/224/250/345/211/215/347/253/257/345/274/200/345/217/221.md +1443 -0
  240. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20207_/345/220/257/345/212/250/345/211/215/347/253/257/345/272/224/347/224/250/345/267/245/347/250/213.md +78 -0
  241. package/skills/meritdata-platform-bpm/references/workflow//346/224/273/347/225/245-02-/345/267/245/344/275/234/346/265/201/347/250/213-/347/253/240/350/212/20208_/346/265/201/347/250/213/350/256/276/350/256/241.md +98 -0
  242. package/skills/meritdata-platform-bpm/references/workflow-dev.md +2037 -0
  243. package/skills/meritdata-platform-cache/SKILL.md +47 -36
  244. package/skills/meritdata-platform-cache/agents/openai.yaml +21 -0
  245. package/skills/meritdata-platform-cache/references/api-quick-ref.md +69 -0
  246. package/skills/meritdata-platform-cache/references/cache.md +226 -0
  247. package/skills/meritdata-platform-cloud-dev/SKILL.md +192 -74
  248. package/skills/meritdata-platform-cloud-dev/agents/openai.yaml +40 -0
  249. package/skills/meritdata-platform-cloud-dev/references/modules/bpm.md +39 -0
  250. package/skills/meritdata-platform-cloud-dev/references/modules/cache.md +28 -0
  251. package/skills/meritdata-platform-cloud-dev/references/modules/config.md +31 -0
  252. package/skills/meritdata-platform-cloud-dev/references/modules/data-boundary.md +44 -0
  253. package/skills/meritdata-platform-cloud-dev/references/modules/datasource.md +30 -0
  254. package/skills/meritdata-platform-cloud-dev/references/modules/domain-model.md +40 -0
  255. package/skills/meritdata-platform-cloud-dev/references/modules/feign-api.md +41 -0
  256. package/skills/meritdata-platform-cloud-dev/references/modules/file.md +30 -0
  257. package/skills/meritdata-platform-cloud-dev/references/modules/gen.md +215 -0
  258. package/skills/meritdata-platform-cloud-dev/references/modules/governance.md +51 -0
  259. package/skills/meritdata-platform-cloud-dev/references/modules/http-client.md +40 -0
  260. package/skills/meritdata-platform-cloud-dev/references/modules/impexp.md +26 -0
  261. package/skills/meritdata-platform-cloud-dev/references/modules/logging.md +29 -0
  262. package/skills/meritdata-platform-cloud-dev/references/modules/masterdata-sync.md +36 -0
  263. package/skills/meritdata-platform-cloud-dev/references/modules/msg-job.md +27 -0
  264. package/skills/meritdata-platform-cloud-dev/references/modules/platform-entities.md +40 -0
  265. package/skills/meritdata-platform-cloud-dev/references/modules/platform.md +62 -0
  266. package/skills/meritdata-platform-cloud-dev/references/modules/services.md +37 -0
  267. package/skills/meritdata-platform-cloud-dev/references/modules/spec.md +47 -0
  268. package/skills/meritdata-platform-cloud-dev/references/modules/ui.md +51 -0
  269. package/skills/meritdata-platform-cloud-dev/references/modules/utils.md +31 -0
  270. package/skills/meritdata-platform-cloud-dev/references/modules/webapi.md +35 -0
  271. package/skills/meritdata-platform-code-review-by-rules/SKILL.md +174 -0
  272. package/skills/meritdata-platform-code-review-by-rules/agents/openai.yaml +13 -0
  273. package/skills/meritdata-platform-config-item/SKILL.md +55 -0
  274. package/skills/meritdata-platform-config-item/agents/openai.yaml +14 -0
  275. package/skills/meritdata-platform-config-item/references/nacos-config//346/224/273/347/225/245-11-/351/205/215/347/275/256/351/241/271-00_/346/200/273/350/247/210.md +49 -0
  276. package/skills/meritdata-platform-config-item/references/nacos-config//346/224/273/347/225/245-11-/351/205/215/347/275/256/351/241/271-/347/253/240/350/212/20201_/345/272/224/347/224/250/351/205/215/347/275/256/351/241/271/347/233/270/345/205/263.md +28 -0
  277. package/skills/meritdata-platform-config-item/references/nacos-config//346/224/273/347/225/245-11-/351/205/215/347/275/256/351/241/271-/347/253/240/350/212/20202_/351/205/215/347/275/256/344/270/255/345/277/203/351/205/215/347/275/256/351/241/271/350/257/264/346/230/216.md +876 -0
  278. package/skills/meritdata-platform-config-item/references/nacos-config//346/224/273/347/225/245-11-/351/205/215/347/275/256/351/241/271-/347/253/240/350/212/20203_/351/205/215/347/275/256/351/241/271/347/232/204/344/275/277/347/224/250.md +45 -0
  279. package/skills/meritdata-platform-config-item/references/nacos-utils-api.md +76 -0
  280. package/skills/meritdata-platform-config-item/references/nacos.md +140 -0
  281. package/skills/meritdata-platform-core/SKILL.md +77 -0
  282. package/skills/meritdata-platform-core/agents/openai.yaml +37 -0
  283. package/skills/meritdata-platform-core/references/assets/02_/344/270/200/345/237/272/347/241/200/350/256/276/346/226/275-1.1/347/274/223/345/255/230/346/223/215/344/275/234-SysCacheServiceFacade.md +423 -0
  284. package/skills/meritdata-platform-core/references/assets/03_/344/270/200/345/237/272/347/241/200/350/256/276/346/226/275-1.1/347/274/223/345/255/230/346/223/215/344/275/234-StringCacheFacade.md +78 -0
  285. package/skills/meritdata-platform-core/references/assets/04_/344/270/200/345/237/272/347/241/200/350/256/276/346/226/275-1.2/351/205/215/347/275/256/344/270/255/345/277/203-NacosUtils.md +193 -0
  286. package/skills/meritdata-platform-core/references/assets/17_/351/231/204/345/275/225-/347/273/237/350/256/241/346/261/207/346/200/273-Maven/344/276/235/350/265/226-/346/263/250/346/204/217/344/272/213/351/241/271.md +131 -0
  287. package/skills/meritdata-platform-core/references/cache.md +237 -0
  288. package/skills/meritdata-platform-core/references/crypto.md +82 -0
  289. package/skills/meritdata-platform-core/references/data-secret.md +49 -0
  290. package/skills/meritdata-platform-core/references/logging.md +256 -0
  291. package/skills/meritdata-platform-core/references/nacos.md +140 -0
  292. package/skills/meritdata-platform-core/references/session.md +125 -0
  293. package/skills/meritdata-platform-crypto-gm/SKILL.md +62 -0
  294. package/skills/meritdata-platform-crypto-gm/agents/openai.yaml +15 -0
  295. package/skills/meritdata-platform-crypto-gm/references/api-quick-ref.md +39 -0
  296. package/skills/meritdata-platform-crypto-gm/references/assets/05_/344/272/214/351/200/232/347/224/250/345/267/245/345/205/267-2.1/345/212/240/350/247/243/345/257/206-SM2-SM3-SM4.md +176 -0
  297. package/skills/meritdata-platform-crypto-gm/references/contract-signing.md +60 -0
  298. package/skills/meritdata-platform-crypto-gm/references/crypto.md +144 -0
  299. package/skills/meritdata-platform-crypto-gm/references/key-management.md +48 -0
  300. package/skills/meritdata-platform-data-secret/SKILL.md +49 -0
  301. package/skills/meritdata-platform-data-secret/agents/openai.yaml +13 -0
  302. package/skills/meritdata-platform-data-secret/references/assets/10_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.4/345/244/232/347/263/273/347/273/237/351/233/206/346/210/220+3.5/346/225/260/346/215/256/345/257/206/347/272/247.md +91 -0
  303. package/skills/meritdata-platform-data-secret/references/data-secret.md +89 -0
  304. package/skills/meritdata-platform-data-secret/references/secret-api.md +35 -0
  305. package/skills/meritdata-platform-data-secret/references/secret-level-spec.md +231 -0
  306. package/skills/meritdata-platform-deploy/SKILL.md +73 -0
  307. package/skills/meritdata-platform-deploy/agents/openai.yaml +27 -0
  308. package/skills/meritdata-platform-entities/SKILL.md +81 -0
  309. package/skills/meritdata-platform-entities/agents/openai.yaml +34 -0
  310. package/skills/meritdata-platform-entities/references/entity-catalog.md +194 -0
  311. package/skills/meritdata-platform-frontend/SKILL.md +73 -38
  312. package/skills/meritdata-platform-frontend/agents/openai.yaml +31 -0
  313. package/skills/meritdata-platform-frontend/examples/user-list-page/README.md +331 -0
  314. package/skills/meritdata-platform-frontend/references/components.md +424 -283
  315. package/skills/meritdata-platform-frontend/references/utils.md +176 -0
  316. package/skills/meritdata-platform-impexp/SKILL.md +65 -30
  317. package/skills/meritdata-platform-impexp/agents/openai.yaml +33 -0
  318. package/skills/meritdata-platform-impexp/examples/excel-export/README.md +146 -0
  319. package/skills/meritdata-platform-impexp/examples/excel-import/README.md +246 -0
  320. package/skills/meritdata-platform-integration/SKILL.md +102 -0
  321. package/skills/meritdata-platform-integration/agents/openai.yaml +33 -0
  322. package/skills/meritdata-platform-integration/references/external-api/full/19_1.1-1.6/345/237/272/347/241/200/351/205/215/347/275/256-/345/271/263/345/217/260/344/277/241/346/201/257/347/261/273.md +371 -0
  323. package/skills/meritdata-platform-integration/references/external-api/full/20_1.7-1.10/345/237/272/347/241/200/351/205/215/347/275/256-/351/241/265/351/235/242/344/270/216/346/266/210/346/201/257/347/261/273.md +344 -0
  324. package/skills/meritdata-platform-integration/references/external-api/full/21_1.11-1.15/345/237/272/347/241/200/351/205/215/347/275/256-/346/266/210/346/201/257/344/270/216/351/205/215/347/275/256/347/261/273.md +302 -0
  325. package/skills/meritdata-platform-integration/references/external-api/full/22_1.16/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245.md +326 -0
  326. package/skills/meritdata-platform-integration/references/external-api/full/23_1.17/350/265/204/346/272/220/346/225/260/346/215/256/345/257/206/347/272/247-/344/270/212/345/215/212.md +303 -0
  327. package/skills/meritdata-platform-integration/references/external-api/full/24_1.17/350/265/204/346/272/220/346/225/260/346/215/256/345/257/206/347/272/247-/344/270/213/345/215/212.md +355 -0
  328. package/skills/meritdata-platform-integration/references/external-api/full/25_2.1/347/273/204/347/273/207/347/273/264/346/212/244-/344/270/212/345/215/212.md +459 -0
  329. package/skills/meritdata-platform-integration/references/external-api/full/26_2.1/347/273/204/347/273/207/347/273/264/346/212/244-/344/270/213/345/215/212.md +567 -0
  330. package/skills/meritdata-platform-integration/references/external-api/full/27_2.2/344/272/272/345/221/230/347/273/264/346/212/244-/344/270/212/345/215/212.md +838 -0
  331. package/skills/meritdata-platform-integration/references/external-api/full/28_2.2/344/272/272/345/221/230/347/273/264/346/212/244-/344/270/213/345/215/212.md +585 -0
  332. package/skills/meritdata-platform-integration/references/external-api/full/29_2.3/350/247/222/350/211/262/347/273/264/346/212/244-/344/270/212/345/215/212.md +576 -0
  333. package/skills/meritdata-platform-integration/references/external-api/full/30_2.3/350/247/222/350/211/262/347/273/264/346/212/244-/344/270/213/345/215/212.md +597 -0
  334. package/skills/meritdata-platform-integration/references/external-api/full/31_2.4/347/224/250/346/210/267/347/273/264/346/212/244-/344/270/212/345/215/212.md +490 -0
  335. package/skills/meritdata-platform-integration/references/external-api/full/32_2.4/347/224/250/346/210/267/347/273/264/346/212/244-/344/270/213/345/215/212.md +560 -0
  336. package/skills/meritdata-platform-integration/references/external-api/full/33_2.5/345/267/245/344/275/234/347/273/204/347/273/264/346/212/244.md +209 -0
  337. package/skills/meritdata-platform-integration/references/external-api/full/34_2.6/345/205/266/344/273/226/346/216/245/345/217/243-/344/270/212/345/215/212.md +653 -0
  338. package/skills/meritdata-platform-integration/references/external-api/full/35_2.6/345/205/266/344/273/226/346/216/245/345/217/243-/344/270/213/345/215/212.md +591 -0
  339. package/skills/meritdata-platform-integration/references/external-api/full/36_3.1-3.7/350/265/204/346/272/220/346/216/210/346/235/203/345/237/272/347/241/200.md +827 -0
  340. package/skills/meritdata-platform-integration/references/external-api/full/37_3.8-3.10/350/265/204/346/272/220/346/216/210/346/235/203/350/277/233/351/230/266.md +458 -0
  341. package/skills/meritdata-platform-integration/references/external-api/full/38_3.11/345/237/272/347/241/200/346/225/260/346/215/256.md +210 -0
  342. package/skills/meritdata-platform-integration/references/external-api/full/39_3.12/346/225/260/346/215/256/346/272/220/347/273/264/346/212/244.md +281 -0
  343. package/skills/meritdata-platform-integration/references/external-api/full/40_3.13/347/254/254/344/270/211/346/226/271/350/265/204/346/272/220/347/273/264/346/212/244.md +310 -0
  344. package/skills/meritdata-platform-integration/references/external-api/full/41_3.14/346/234/215/345/212/241/347/256/241/347/220/206.md +521 -0
  345. package/skills/meritdata-platform-integration/references/external-api/full/42_3.15/350/265/204/346/272/220/347/273/264/346/212/244-/344/270/212/345/215/212.md +767 -0
  346. package/skills/meritdata-platform-integration/references/external-api/full/43_3.15/350/265/204/346/272/220/347/273/264/346/212/244-/344/270/213/345/215/212.md +378 -0
  347. package/skills/meritdata-platform-integration/references/external-api/full/44_3.16/344/272/272/345/221/230/351/200/211/346/213/251/345/231/250-/344/270/212/345/215/212.md +311 -0
  348. package/skills/meritdata-platform-integration/references/external-api/full/45_3.16/344/272/272/345/221/230/351/200/211/346/213/251/345/231/250-/344/270/213/345/215/212.md +242 -0
  349. package/skills/meritdata-platform-integration/references/external-api/full/46_3.17/345/241/253/346/212/245/346/212/245/350/241/250+3.18/351/252/214/350/257/201/347/240/201.md +178 -0
  350. package/skills/meritdata-platform-integration/references/external-api/full/47_3.19/345/267/245/344/275/234/345/217/260/347/273/264/346/212/244.md +196 -0
  351. package/skills/meritdata-platform-integration/references/external-api/full/48_3.20/350/260/203/345/272/246/347/274/226/346/216/222.md +106 -0
  352. package/skills/meritdata-platform-integration/references/external-api/full/49_/351/231/204/345/275/225-4.1-4.3/350/277/224/345/233/236/347/240/201/344/270/216/347/211/210/346/234/254/346/270/205/345/215/225.md +43 -0
  353. package/skills/meritdata-platform-integration/references/external-api.md +260 -0
  354. package/skills/meritdata-platform-integration/references/notification-detail/11_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.6/346/234/215/345/212/241/351/200/232/347/237/245-CloudFeignMessageClient.md +467 -0
  355. package/skills/meritdata-platform-integration/references/org-user-sync.md +121 -0
  356. package/skills/meritdata-platform-integration/references/service-notification.md +168 -0
  357. package/skills/meritdata-platform-job/SKILL.md +76 -30
  358. package/skills/meritdata-platform-job/agents/openai.yaml +30 -0
  359. package/skills/meritdata-platform-job/references/iclient-detail/13_/345/233/233/344/270/232/345/212/241/347/273/204/344/273/266-4.2/350/260/203/345/272/246/347/273/204/344/273/266ICloudClient.md +92 -0
  360. package/skills/meritdata-platform-job/references/ijobapi-detail/14_/345/233/233/344/270/232/345/212/241/347/273/204/344/273/266-4.3/345/256/232/346/227/266/344/273/273/345/212/241IJobApi.md +59 -0
  361. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-00_/346/200/273/350/247/210.md +49 -0
  362. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20201_/344/275/277/347/224/250/350/203/214/346/231/257.md +12 -0
  363. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20202_/346/233/264/346/226/260/350/256/260/345/275/225.md +14 -0
  364. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20203_/350/260/203/345/272/246/347/233/270/345/205/263/345/272/224/347/224/250/345/214/205.md +15 -0
  365. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20204_/351/205/215/347/275/256/351/241/271/347/233/270/345/205/263.md +23 -0
  366. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20205_/350/260/203/345/272/246/345/212/237/350/203/275/344/275/277/347/224/250.md +132 -0
  367. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20206_/350/260/203/345/272/246/344/273/273/345/212/241_API_/346/216/245/345/217/243.md +14 -0
  368. package/skills/meritdata-platform-job/references/scheduler-ref//346/224/273/347/225/245-10-/345/256/232/346/227/266/350/260/203/345/272/246-/347/253/240/350/212/20207_/345/257/271/345/244/226/350/260/203/345/272/246/344/273/273/345/212/241_API_/346/216/245/345/217/243.md +245 -0
  369. package/skills/meritdata-platform-job/references/scheduler.md +13 -0
  370. package/skills/meritdata-platform-job/references/xxl-job.md +30 -0
  371. package/skills/meritdata-platform-logging/SKILL.md +54 -0
  372. package/skills/meritdata-platform-logging/agents/openai.yaml +16 -0
  373. package/skills/meritdata-platform-logging/references/api-quick-ref.md +90 -0
  374. package/skills/meritdata-platform-logging/references/assets/06_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.1/346/227/245/345/277/227/346/234/215/345/212/241-ILogPostService.md +323 -0
  375. package/skills/meritdata-platform-logging/references/assets/07_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.1/346/227/245/345/277/227/346/263/250/350/247/243-LogDesc-LogOperation.md +210 -0
  376. package/skills/meritdata-platform-logging/references/logging.md +256 -0
  377. package/skills/meritdata-platform-menu-config/SKILL.md +218 -39
  378. package/skills/meritdata-platform-menu-config/agents/openai.yaml +22 -0
  379. package/skills/meritdata-platform-menu-config/references/README.md +10 -0
  380. package/skills/meritdata-platform-menu-config/references/environment.md +32 -0
  381. package/skills/meritdata-platform-menu-config/references/field-mapping.md +64 -0
  382. package/skills/meritdata-platform-menu-config/references/insert-menu-template.sql +89 -0
  383. package/skills/meritdata-platform-menu-config/references/troubleshooting.md +177 -0
  384. package/skills/meritdata-platform-messaging/SKILL.md +56 -0
  385. package/skills/meritdata-platform-messaging/agents/openai.yaml +15 -0
  386. package/skills/meritdata-platform-messaging/references/announcement-api.md +258 -0
  387. package/skills/meritdata-platform-messaging/references/feign-client.md +83 -0
  388. package/skills/meritdata-platform-messaging/references/msg-center//346/224/273/347/225/245-12-/346/266/210/346/201/257/344/270/255/345/277/203-00_/346/200/273/350/247/210.md +56 -0
  389. package/skills/meritdata-platform-messaging/references/msg-center//346/224/273/347/225/245-12-/346/266/210/346/201/257/344/270/255/345/277/203-/347/253/240/350/212/20201_/346/266/210/346/201/257/344/270/255/345/277/203/344/275/277/347/224/250/345/234/272/346/231/257.md +12 -0
  390. package/skills/meritdata-platform-messaging/references/msg-center//346/224/273/347/225/245-12-/346/266/210/346/201/257/344/270/255/345/277/203-/347/253/240/350/212/20202_/346/266/210/346/201/257/344/270/255/345/277/203/351/241/265/351/235/242/345/212/237/350/203/275/344/275/277/347/224/250.md +396 -0
  391. package/skills/meritdata-platform-messaging/references/msg-center//346/224/273/347/225/245-12-/346/266/210/346/201/257/344/270/255/345/277/203-/347/253/240/350/212/20203_/346/266/210/346/201/257/344/270/255/345/277/203/346/216/245/345/217/243/345/212/237/350/203/275/344/275/277/347/224/250.md +578 -0
  392. package/skills/meritdata-platform-messaging/references/msg-center//346/224/273/347/225/245-12-/346/266/210/346/201/257/344/270/255/345/277/203-/347/253/240/350/212/20204_/351/231/204/357/274/232/351/231/204/344/273/266/344/270/212/344/274/240/344/270/213/350/275/275/345/210/240/351/231/244/346/216/245/345/217/243.md +183 -0
  393. package/skills/meritdata-platform-nacos-importer/SKILL.md +120 -0
  394. package/skills/meritdata-platform-nacos-importer/agents/openai.yaml +22 -0
  395. package/skills/meritdata-platform-nacos-importer/references/README.md +9 -0
  396. package/skills/meritdata-platform-nacos-importer/scripts/import-nacos.ps1 +95 -0
  397. package/skills/meritdata-platform-nacos-importer/scripts/import-nacos.sh +100 -0
  398. package/skills/meritdata-platform-org-sync/SKILL.md +72 -0
  399. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-00_/346/200/273/350/247/210.md +99 -0
  400. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20201_/346/246/202/350/277/260.md +16 -0
  401. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20202_/347/273/204/347/273/207/345/220/214/346/255/245.md +318 -0
  402. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20203_/344/272/272/345/221/230/345/220/214/346/255/245.md +187 -0
  403. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20204_/350/265/204/346/272/220/350/217/234/345/215/225/345/220/214/346/255/245.md +124 -0
  404. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20205_/350/247/222/350/211/262/345/220/214/346/255/245.md +79 -0
  405. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20206_/350/265/204/346/272/220/346/235/203/351/231/220/345/220/214/346/255/245.md +116 -0
  406. package/skills/meritdata-platform-org-sync/references//346/224/273/347/225/245-09-/347/273/204/347/273/207/344/272/272/345/221/230/345/220/214/346/255/245-/347/253/240/350/212/20207_/347/273/204/347/273/207/345/220/214/346/255/245/351/205/215/347/275/256.md +173 -0
  407. package/skills/meritdata-platform-playbook/SKILL.md +172 -30
  408. package/skills/meritdata-platform-playbook/agents/openai.yaml +29 -0
  409. package/skills/meritdata-platform-playbook/examples/existing-increment/README.md +83 -0
  410. package/skills/meritdata-platform-playbook/examples/new-project/README.md +73 -0
  411. package/skills/meritdata-platform-playbook/references/code-spec.md +67 -0
  412. package/skills/meritdata-platform-playbook/references/full-workflow.md +299 -0
  413. package/skills/meritdata-platform-playbook/references/git-integration.md +111 -0
  414. package/skills/meritdata-platform-playbook/references/governance.md +97 -0
  415. package/skills/meritdata-platform-playbook/references/legacy-detect.md +154 -0
  416. package/skills/meritdata-platform-playbook/references/public-entry-map.json +135 -0
  417. package/skills/meritdata-platform-playbook/references/skill-decision-tree.md +125 -0
  418. package/skills/meritdata-platform-playbook/references/svn-integration.md +117 -0
  419. package/skills/meritdata-platform-portal-customization/SKILL.md +78 -0
  420. package/skills/meritdata-platform-portal-customization/references/cloud-utils-theme-generator.md +97 -0
  421. package/skills/meritdata-platform-portal-customization/references/home-frame-config-api.md +145 -0
  422. package/skills/meritdata-platform-portal-customization/references/portal-frontend-layouts.md +160 -0
  423. package/skills/meritdata-platform-portal-customization/references/portal-product-config.md +78 -0
  424. package/skills/meritdata-platform-portal-customization/references/theme-management.md +144 -0
  425. package/skills/meritdata-platform-portal-customization/references/workbench-entities.md +134 -0
  426. package/skills/meritdata-platform-resource-auth/SKILL.md +49 -0
  427. package/skills/meritdata-platform-resource-auth/agents/openai.yaml +14 -0
  428. package/skills/meritdata-platform-resource-auth/references/endpoints.md +171 -0
  429. package/skills/meritdata-platform-session/SKILL.md +41 -36
  430. package/skills/meritdata-platform-session/agents/openai.yaml +9 -0
  431. package/skills/meritdata-platform-session/references/api-quick-ref.md +52 -0
  432. package/skills/meritdata-platform-session/references/assets/08_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.3/344/274/232/350/257/235/344/277/241/346/201/257-SessionUtils.md +349 -0
  433. package/skills/meritdata-platform-session/references/assets/09_/344/270/211/345/271/263/345/217/260/346/234/215/345/212/241-3.3/345/234/250/347/272/277/347/224/250/346/210/267-IUserOnlineTime.md +63 -0
  434. package/skills/meritdata-platform-session/references/session.md +125 -0
  435. package/skills/meritdata-platform-sso/SKILL.md +49 -31
  436. package/skills/meritdata-platform-sso/agents/openai.yaml +19 -0
  437. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-00_/346/200/273/350/247/210.md +47 -0
  438. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-/347/253/240/350/212/20201_/347/263/273/347/273/237/350/256/244/350/257/201/351/233/206/346/210/220/344/273/213/347/273/215.md +14 -0
  439. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-/347/253/240/350/212/20202_token_/350/256/244/350/257/201/351/233/206/346/210/220.md +568 -0
  440. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-/347/253/240/350/212/20203_cas_/347/273/237/344/270/200/350/256/244/350/257/201/344/270/255/345/277/203.md +128 -0
  441. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-/347/253/240/350/212/20204_/347/254/254/344/270/211/346/226/271/350/256/244/350/257/201/344/270/255/345/277/203.md +151 -0
  442. package/skills/meritdata-platform-sso/references/auth//346/224/273/347/225/245-06-/347/263/273/347/273/237/350/256/244/350/257/201-/347/253/240/350/212/20205_/351/231/204/345/275/225_1_/350/256/244/350/257/201/344/270/255/345/277/203/347/253/257/351/205/215/347/275/256.md +93 -0
  443. package/skills/meritdata-platform-sso/references/cas-token-flow.md +52 -0
  444. package/skills/meritdata-platform-sso/references/iportal-sso-api.md +66 -0
  445. package/skills/meritdata-platform-sso/references/spring-session-pitfalls.md +71 -0
  446. package/skills/meritdata-platform-ui-components/SKILL.md +64 -36
  447. package/skills/meritdata-platform-ui-components/agents/openai.yaml +33 -0
  448. package/skills/meritdata-platform-ui-components/references/catalog/15_/344/272/224/345/211/215/347/253/257/350/265/204/344/272/247-5.1UI/347/273/204/344/273/266/345/272/223-/344/270/212/345/215/212.md +514 -0
  449. package/skills/meritdata-platform-ui-components/references/catalog/16_/344/272/224/345/211/215/347/253/257/350/265/204/344/272/247-5.1UI/347/273/204/344/273/266/345/272/223-/344/270/213/345/215/212.md +302 -0
  450. package/skills/meritdata-platform-ui-components/references/components-api.md +166 -0
  451. package/skills/meritdata-platform-ui-components/references/utils-and-meritbpm.md +98 -0
  452. package/skills/prototype/LOGIC.md +79 -0
  453. package/skills/prototype/SKILL.md +26 -0
  454. package/skills/prototype/UI.md +112 -0
  455. package/skills/prototype/agents/openai.yaml +3 -0
  456. package/skills/receiving-code-review/SKILL.md +205 -0
  457. package/skills/requesting-code-review/SKILL.md +95 -0
  458. package/skills/requesting-code-review/code-reviewer.md +172 -0
  459. package/skills/requirement-low-level-check/SKILL.md +84 -0
  460. package/skills/requirement-low-level-check/references//344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/212/245/345/221/212/346/250/241/346/235/277.md +139 -0
  461. package/skills/requirement-low-level-check/references//344/275/216/347/272/247/351/227/256/351/242/230/346/243/200/346/237/245/346/270/205/345/215/225.md +210 -0
  462. package/skills/requirement-pm-review/SKILL.md +181 -0
  463. package/skills/requirement-pm-review/references/PM/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +223 -0
  464. package/skills/requirement-review/SKILL.md +212 -0
  465. package/skills/requirement-review/references//351/234/200/346/261/202/350/257/204/345/256/241/346/243/200/346/237/245/345/215/225.md +99 -0
  466. package/skills/requirement-review-report/SKILL.md +152 -0
  467. package/skills/requirement-review-report/references//351/234/200/346/261/202/350/257/204/345/256/241/346/212/245/345/221/212/346/250/241/346/235/277.md +187 -0
  468. package/skills/research/SKILL.md +12 -0
  469. package/skills/research/agents/openai.yaml +3 -0
  470. package/skills/resolving-merge-conflicts/SKILL.md +14 -0
  471. package/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  472. package/skills/rest-api-design/SKILL.md +90 -0
  473. package/skills/rest-api-design/references/complete-example-expressjs.md +114 -0
  474. package/skills/rest-api-design/references/http-status-codes.md +65 -0
  475. package/skills/rest-api-design/references/openapi-documentation.md +92 -0
  476. package/skills/rest-api-design/references/query-parameters.md +23 -0
  477. package/skills/rest-api-design/references/request-examples.md +50 -0
  478. package/skills/rest-api-design/references/resource-naming.md +35 -0
  479. package/skills/rest-api-design/references/response-formats.md +70 -0
  480. package/skills/rest-api-design/scripts/validate-api.sh +18 -0
  481. package/skills/rest-api-design/templates/api-scaffold.yaml +22 -0
  482. package/skills/security-review/SKILL.md +527 -0
  483. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  484. package/skills/setup-matt-pocock-skills/SKILL.md +116 -0
  485. package/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  486. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  487. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
  488. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  489. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  490. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  491. package/skills/setup-pre-commit/SKILL.md +91 -0
  492. package/skills/setup-pre-commit/agents/openai.yaml +3 -0
  493. package/skills/speckit-analyze/SKILL.md +260 -0
  494. package/skills/speckit-checklist/SKILL.md +372 -0
  495. package/skills/speckit-clarify/SKILL.md +254 -0
  496. package/skills/speckit-constitution/SKILL.md +157 -0
  497. package/skills/speckit-git-commit/SKILL.md +53 -0
  498. package/skills/speckit-git-feature/SKILL.md +72 -0
  499. package/skills/speckit-git-initialize/SKILL.md +54 -0
  500. package/skills/speckit-git-remote/SKILL.md +50 -0
  501. package/skills/speckit-git-validate/SKILL.md +54 -0
  502. package/skills/speckit-implement/SKILL.md +209 -0
  503. package/skills/speckit-plan/SKILL.md +152 -0
  504. package/skills/speckit-specify/SKILL.md +330 -0
  505. package/skills/speckit-tasks/SKILL.md +202 -0
  506. package/skills/speckit-taskstoissues/SKILL.md +106 -0
  507. package/skills/springboot-patterns/SKILL.md +313 -0
  508. package/skills/springboot-security/SKILL.md +272 -0
  509. package/skills/springboot-tdd/SKILL.md +158 -0
  510. package/skills/subagent-driven-development/SKILL.md +503 -0
  511. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  512. package/skills/subagent-driven-development/implementer-prompt.md +142 -0
  513. package/skills/subagent-driven-development/re-review-prompt.md +106 -0
  514. package/skills/subagent-driven-development/scripts/review-package +46 -0
  515. package/skills/subagent-driven-development/scripts/sdd-workspace +40 -0
  516. package/skills/subagent-driven-development/scripts/task-brief +41 -0
  517. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  518. package/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
  519. package/skills/system-design/SKILL.md +42 -0
  520. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  521. package/skills/systematic-debugging/SKILL.md +283 -0
  522. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  523. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  524. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  525. package/skills/systematic-debugging/find-polluter.sh +72 -0
  526. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  527. package/skills/systematic-debugging/test-academic.md +14 -0
  528. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  529. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  530. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  531. package/skills/tdd/SKILL.md +36 -0
  532. package/skills/tdd/agents/openai.yaml +3 -0
  533. package/skills/tdd/mocking.md +59 -0
  534. package/skills/tdd/tests.md +77 -0
  535. package/skills/teach/GLOSSARY-FORMAT.md +35 -0
  536. package/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  537. package/skills/teach/MISSION-FORMAT.md +31 -0
  538. package/skills/teach/RESOURCES-FORMAT.md +32 -0
  539. package/skills/teach/SKILL.md +140 -0
  540. package/skills/teach/agents/openai.yaml +5 -0
  541. package/skills/tech-design-doc/SKILL.md +160 -0
  542. package/skills/tech-design-doc/description_ar.txt +1 -0
  543. package/skills/tech-design-doc/description_cn.txt +1 -0
  544. package/skills/tech-design-doc/description_de.txt +1 -0
  545. package/skills/tech-design-doc/description_en.txt +1 -0
  546. package/skills/tech-design-doc/description_es.txt +1 -0
  547. package/skills/tech-design-doc/description_fr.txt +1 -0
  548. package/skills/tech-design-doc/description_it.txt +1 -0
  549. package/skills/tech-design-doc/description_ja.txt +1 -0
  550. package/skills/tech-design-doc/description_ko.txt +1 -0
  551. package/skills/tech-design-doc/description_ru.txt +1 -0
  552. package/skills/tech-design-doc/description_tw.txt +1 -0
  553. package/skills/tech-design-doc/stats.json +4 -0
  554. package/skills/test-driven-development/SKILL.md +320 -0
  555. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  556. package/skills/test-driven-development/writing-good-tests.md +198 -0
  557. package/skills/test-fixing/SKILL.md +121 -0
  558. package/skills/test-master/SKILL.md +94 -0
  559. package/skills/test-master/references/automation-frameworks.md +294 -0
  560. package/skills/test-master/references/e2e-testing.md +128 -0
  561. package/skills/test-master/references/integration-testing.md +120 -0
  562. package/skills/test-master/references/performance-testing.md +118 -0
  563. package/skills/test-master/references/qa-methodology.md +247 -0
  564. package/skills/test-master/references/security-testing.md +127 -0
  565. package/skills/test-master/references/tdd-iron-laws.md +174 -0
  566. package/skills/test-master/references/test-reports.md +104 -0
  567. package/skills/test-master/references/testing-anti-patterns.md +231 -0
  568. package/skills/test-master/references/unit-testing.md +113 -0
  569. package/skills/to-spec/SKILL.md +75 -0
  570. package/skills/to-spec/agents/openai.yaml +5 -0
  571. package/skills/to-tickets/SKILL.md +105 -0
  572. package/skills/to-tickets/agents/openai.yaml +5 -0
  573. package/skills/triage/AGENT-BRIEF.md +207 -0
  574. package/skills/triage/OUT-OF-SCOPE.md +105 -0
  575. package/skills/triage/SKILL.md +112 -0
  576. package/skills/triage/agents/openai.yaml +5 -0
  577. package/skills/ui-ux-pro-max/SKILL.md +43 -0
  578. package/skills/ui-ux-pro-max/_meta.json +6 -0
  579. package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
  580. package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
  581. package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
  582. package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
  583. package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
  584. package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
  585. package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
  586. package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
  587. package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
  588. package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
  589. package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
  590. package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
  591. package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
  592. package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
  593. package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
  594. package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
  595. package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
  596. package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
  597. package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
  598. package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
  599. package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
  600. package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
  601. package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
  602. package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
  603. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  604. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  605. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  606. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  607. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  608. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  609. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  610. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  611. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  612. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  613. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  614. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  615. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  616. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  617. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  618. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  619. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  620. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  621. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  622. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  623. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  624. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  625. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  626. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  627. package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
  628. package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
  629. package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
  630. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  631. package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
  632. package/skills/ui-ux-pro-max/scripts/search.py +111 -0
  633. package/skills/using-git-worktrees/SKILL.md +167 -0
  634. package/skills/using-superpowers/SKILL.md +62 -0
  635. package/skills/using-superpowers/references/antigravity-tools.md +23 -0
  636. package/skills/using-superpowers/references/codex-tools.md +39 -0
  637. package/skills/using-superpowers/references/gemini-tools.md +63 -0
  638. package/skills/using-superpowers/references/pi-tools.md +16 -0
  639. package/skills/verification-before-completion/SKILL.md +120 -0
  640. package/skills/wait-what/SKILL.md +7 -0
  641. package/skills/wait-what/agents/openai.yaml +5 -0
  642. package/skills/wayfinder/SKILL.md +128 -0
  643. package/skills/wayfinder/agents/openai.yaml +5 -0
  644. package/skills/write-design-document-by-template/SKILL.md +97 -0
  645. package/skills/write-design-document-by-template/references//350/256/276/350/256/241/350/257/264/346/230/216/344/271/246/346/250/241/346/235/277.md +235 -0
  646. package/skills/write-requirement-document-by-template/SKILL.md +98 -0
  647. package/skills/write-requirement-document-by-template/references//351/234/200/346/261/202/350/257/264/346/230/216/344/271/246/346/250/241/346/235/277.md +150 -0
  648. package/skills/writing-great-skills/GLOSSARY.md +201 -0
  649. package/skills/writing-great-skills/SKILL.md +83 -0
  650. package/skills/writing-great-skills/agents/openai.yaml +5 -0
  651. package/skills/writing-plans/SKILL.md +168 -0
  652. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  653. package/skills/writing-skills/SKILL.md +679 -0
  654. package/skills/writing-skills/anthropic-best-practices.md +1150 -0
  655. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  656. package/skills/writing-skills/graphviz-conventions.dot +172 -0
  657. package/skills/writing-skills/persuasion-principles.md +187 -0
  658. package/skills/writing-skills/render-graphs.js +168 -0
  659. package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
@@ -0,0 +1,106 @@
1
+ ---
2
+ name: "speckit-taskstoissues"
3
+ description: "Convert existing tasks into actionable, dependency-ordered GitHub issues for the feature based on available design artifacts."
4
+ argument-hint: "Optional filter or label for GitHub issues"
5
+ compatibility: "Requires spec-kit project structure with .specify/ directory"
6
+ metadata:
7
+ author: "github-spec-kit"
8
+ source: "templates/commands/taskstoissues.md"
9
+ user-invocable: true
10
+ disable-model-invocation: false
11
+ ---
12
+
13
+
14
+ ## User Input
15
+
16
+ ```text
17
+ $ARGUMENTS
18
+ ```
19
+
20
+ You **MUST** consider the user input before proceeding (if not empty).
21
+
22
+ ## Pre-Execution Checks
23
+
24
+ **Check for extension hooks (before tasks-to-issues conversion)**:
25
+ - Check if `.specify/extensions.yml` exists in the project root.
26
+ - If it exists, read it and look for entries under the `hooks.before_taskstoissues` key
27
+ - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
28
+ - Filter out hooks where `enabled` is explicitly `false`. Treat hooks without an `enabled` field as enabled by default.
29
+ - For each remaining hook, do **not** attempt to interpret or evaluate hook `condition` expressions:
30
+ - If the hook has no `condition` field, or it is null/empty, treat the hook as executable
31
+ - If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
32
+ - When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit` → `/speckit-git-commit`.
33
+ - For each executable hook, output the following based on its `optional` flag:
34
+ - **Optional hook** (`optional: true`):
35
+ ```
36
+ ## Extension Hooks
37
+
38
+ **Optional Pre-Hook**: {extension}
39
+ Command: `/{command}`
40
+ Description: {description}
41
+
42
+ Prompt: {prompt}
43
+ To execute: `/{command}`
44
+ ```
45
+ - **Mandatory hook** (`optional: false`):
46
+ ```
47
+ ## Extension Hooks
48
+
49
+ **Automatic Pre-Hook**: {extension}
50
+ Executing: `/{command}`
51
+ EXECUTE_COMMAND: {command}
52
+
53
+ Wait for the result of the hook command before proceeding to the Outline.
54
+ ```
55
+ - If no hooks are registered or `.specify/extensions.yml` does not exist, skip silently
56
+
57
+ ## Outline
58
+
59
+ 1. Run `.specify/scripts/powershell/check-prerequisites.ps1 -Json -RequireTasks -IncludeTasks` from repo root and parse FEATURE_DIR and AVAILABLE_DOCS list. All paths must be absolute. For single quotes in args like "I'm Groot", use escape syntax: e.g 'I'\''m Groot' (or double-quote if possible: "I'm Groot").
60
+ 1. From the executed script, extract the path to **tasks**.
61
+ 1. Get the Git remote by running:
62
+
63
+ ```bash
64
+ git config --get remote.origin.url
65
+ ```
66
+
67
+ > [!CAUTION]
68
+ > ONLY PROCEED TO NEXT STEPS IF THE REMOTE IS A GITHUB URL
69
+
70
+ 1. For each task in the list, use the GitHub MCP server to create a new issue in the repository that is representative of the Git remote.
71
+
72
+ > [!CAUTION]
73
+ > UNDER NO CIRCUMSTANCES EVER CREATE ISSUES IN REPOSITORIES THAT DO NOT MATCH THE REMOTE URL
74
+
75
+ ## Post-Execution Checks
76
+
77
+ **Check for extension hooks (after tasks-to-issues conversion)**:
78
+ Check if `.specify/extensions.yml` exists in the project root.
79
+ - If it exists, read it and look for entries under the `hooks.after_taskstoissues` key
80
+ - If the YAML cannot be parsed or is invalid, skip hook checking silently and continue normally
81
+ - Filter out hooks where `enabled` is explicitly `false`. Treat hooks without an `enabled` field as enabled by default.
82
+ - For each remaining hook, do **not** attempt to interpret or evaluate hook `condition` expressions:
83
+ - If the hook has no `condition` field, or it is null/empty, treat the hook as executable
84
+ - If the hook defines a non-empty `condition`, skip the hook and leave condition evaluation to the HookExecutor implementation
85
+ - When constructing slash commands from hook command names, replace dots (`.`) with hyphens (`-`). For example, `speckit.git.commit` → `/speckit-git-commit`.
86
+ - For each executable hook, output the following based on its `optional` flag:
87
+ - **Optional hook** (`optional: true`):
88
+ ```
89
+ ## Extension Hooks
90
+
91
+ **Optional Hook**: {extension}
92
+ Command: `/{command}`
93
+ Description: {description}
94
+
95
+ Prompt: {prompt}
96
+ To execute: `/{command}`
97
+ ```
98
+ - **Mandatory hook** (`optional: false`):
99
+ ```
100
+ ## Extension Hooks
101
+
102
+ **Automatic Hook**: {extension}
103
+ Executing: `/{command}`
104
+ EXECUTE_COMMAND: {command}
105
+ ```
106
+ - If no hooks are registered or `.specify/extensions.yml` does not exist, skip silently
@@ -0,0 +1,313 @@
1
+ ---
2
+ name: springboot-patterns
3
+ description: Spring Boot架构模式、REST API设计、分层服务、数据访问、缓存、异步处理和日志记录。用于Java Spring Boot后端工作。
4
+ origin: ECC
5
+ ---
6
+
7
+ # Spring Boot 开发模式
8
+
9
+ 用于可扩展、生产级服务的 Spring Boot 架构和 API 模式。
10
+
11
+ ## 何时激活
12
+
13
+ * 使用 Spring MVC 或 WebFlux 构建 REST API
14
+ * 构建控制器 → 服务 → 仓库层结构
15
+ * 配置 Spring Data JPA、缓存或异步处理
16
+ * 添加验证、异常处理或分页
17
+ * 为开发/预发布/生产环境设置配置文件
18
+ * 使用 Spring Events 或 Kafka 实现事件驱动模式
19
+
20
+ ## REST API 结构
21
+
22
+ ```java
23
+ @RestController
24
+ @RequestMapping("/api/markets")
25
+ @Validated
26
+ class MarketController {
27
+ private final MarketService marketService;
28
+
29
+ MarketController(MarketService marketService) {
30
+ this.marketService = marketService;
31
+ }
32
+
33
+ @GetMapping
34
+ ResponseEntity<Page<MarketResponse>> list(
35
+ @RequestParam(defaultValue = "0") int page,
36
+ @RequestParam(defaultValue = "20") int size) {
37
+ Page<Market> markets = marketService.list(PageRequest.of(page, size));
38
+ return ResponseEntity.ok(markets.map(MarketResponse::from));
39
+ }
40
+
41
+ @PostMapping
42
+ ResponseEntity<MarketResponse> create(@Valid @RequestBody CreateMarketRequest request) {
43
+ Market market = marketService.create(request);
44
+ return ResponseEntity.status(HttpStatus.CREATED).body(MarketResponse.from(market));
45
+ }
46
+ }
47
+ ```
48
+
49
+ ## 仓库模式 (Spring Data JPA)
50
+
51
+ ```java
52
+ public interface MarketRepository extends JpaRepository<MarketEntity, Long> {
53
+ @Query("select m from MarketEntity m where m.status = :status order by m.volume desc")
54
+ List<MarketEntity> findActive(@Param("status") MarketStatus status, Pageable pageable);
55
+ }
56
+ ```
57
+
58
+ ## 带事务的服务层
59
+
60
+ ```java
61
+ @Service
62
+ public class MarketService {
63
+ private final MarketRepository repo;
64
+
65
+ public MarketService(MarketRepository repo) {
66
+ this.repo = repo;
67
+ }
68
+
69
+ @Transactional
70
+ public Market create(CreateMarketRequest request) {
71
+ MarketEntity entity = MarketEntity.from(request);
72
+ MarketEntity saved = repo.save(entity);
73
+ return Market.from(saved);
74
+ }
75
+ }
76
+ ```
77
+
78
+ ## DTO 和验证
79
+
80
+ ```java
81
+ public record CreateMarketRequest(
82
+ @NotBlank @Size(max = 200) String name,
83
+ @NotBlank @Size(max = 2000) String description,
84
+ @NotNull @FutureOrPresent Instant endDate,
85
+ @NotEmpty List<@NotBlank String> categories) {}
86
+
87
+ public record MarketResponse(Long id, String name, MarketStatus status) {
88
+ static MarketResponse from(Market market) {
89
+ return new MarketResponse(market.id(), market.name(), market.status());
90
+ }
91
+ }
92
+ ```
93
+
94
+ ## 异常处理
95
+
96
+ ```java
97
+ @ControllerAdvice
98
+ class GlobalExceptionHandler {
99
+ @ExceptionHandler(MethodArgumentNotValidException.class)
100
+ ResponseEntity<ApiError> handleValidation(MethodArgumentNotValidException ex) {
101
+ String message = ex.getBindingResult().getFieldErrors().stream()
102
+ .map(e -> e.getField() + ": " + e.getDefaultMessage())
103
+ .collect(Collectors.joining(", "));
104
+ return ResponseEntity.badRequest().body(ApiError.validation(message));
105
+ }
106
+
107
+ @ExceptionHandler(AccessDeniedException.class)
108
+ ResponseEntity<ApiError> handleAccessDenied() {
109
+ return ResponseEntity.status(HttpStatus.FORBIDDEN).body(ApiError.of("Forbidden"));
110
+ }
111
+
112
+ @ExceptionHandler(Exception.class)
113
+ ResponseEntity<ApiError> handleGeneric(Exception ex) {
114
+ // Log unexpected errors with stack traces
115
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
116
+ .body(ApiError.of("Internal server error"));
117
+ }
118
+ }
119
+ ```
120
+
121
+ ## 缓存
122
+
123
+ 需要在配置类上使用 `@EnableCaching`。
124
+
125
+ ```java
126
+ @Service
127
+ public class MarketCacheService {
128
+ private final MarketRepository repo;
129
+
130
+ public MarketCacheService(MarketRepository repo) {
131
+ this.repo = repo;
132
+ }
133
+
134
+ @Cacheable(value = "market", key = "#id")
135
+ public Market getById(Long id) {
136
+ return repo.findById(id)
137
+ .map(Market::from)
138
+ .orElseThrow(() -> new EntityNotFoundException("Market not found"));
139
+ }
140
+
141
+ @CacheEvict(value = "market", key = "#id")
142
+ public void evict(Long id) {}
143
+ }
144
+ ```
145
+
146
+ ## 异步处理
147
+
148
+ 需要在配置类上使用 `@EnableAsync`。
149
+
150
+ ```java
151
+ @Service
152
+ public class NotificationService {
153
+ @Async
154
+ public CompletableFuture<Void> sendAsync(Notification notification) {
155
+ // send email/SMS
156
+ return CompletableFuture.completedFuture(null);
157
+ }
158
+ }
159
+ ```
160
+
161
+ ## 日志记录 (SLF4J)
162
+
163
+ ```java
164
+ @Service
165
+ public class ReportService {
166
+ private static final Logger log = LoggerFactory.getLogger(ReportService.class);
167
+
168
+ public Report generate(Long marketId) {
169
+ log.info("generate_report marketId={}", marketId);
170
+ try {
171
+ // logic
172
+ } catch (Exception ex) {
173
+ log.error("generate_report_failed marketId={}", marketId, ex);
174
+ throw ex;
175
+ }
176
+ return new Report();
177
+ }
178
+ }
179
+ ```
180
+
181
+ ## 中间件 / 过滤器
182
+
183
+ ```java
184
+ @Component
185
+ public class RequestLoggingFilter extends OncePerRequestFilter {
186
+ private static final Logger log = LoggerFactory.getLogger(RequestLoggingFilter.class);
187
+
188
+ @Override
189
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
190
+ FilterChain filterChain) throws ServletException, IOException {
191
+ long start = System.currentTimeMillis();
192
+ try {
193
+ filterChain.doFilter(request, response);
194
+ } finally {
195
+ long duration = System.currentTimeMillis() - start;
196
+ log.info("req method={} uri={} status={} durationMs={}",
197
+ request.getMethod(), request.getRequestURI(), response.getStatus(), duration);
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ## 分页和排序
204
+
205
+ ```java
206
+ PageRequest page = PageRequest.of(pageNumber, pageSize, Sort.by("createdAt").descending());
207
+ Page<Market> results = marketService.list(page);
208
+ ```
209
+
210
+ ## 容错的外部调用
211
+
212
+ ```java
213
+ public <T> T withRetry(Supplier<T> supplier, int maxRetries) {
214
+ int attempts = 0;
215
+ while (true) {
216
+ try {
217
+ return supplier.get();
218
+ } catch (Exception ex) {
219
+ attempts++;
220
+ if (attempts >= maxRetries) {
221
+ throw ex;
222
+ }
223
+ try {
224
+ Thread.sleep((long) Math.pow(2, attempts) * 100L);
225
+ } catch (InterruptedException ie) {
226
+ Thread.currentThread().interrupt();
227
+ throw ex;
228
+ }
229
+ }
230
+ }
231
+ }
232
+ ```
233
+
234
+ ## 速率限制 (过滤器 + Bucket4j)
235
+
236
+ **安全须知**:默认情况下 `X-Forwarded-For` 头是不可信的,因为客户端可以伪造它。
237
+ 仅在以下情况下使用转发头:
238
+
239
+ 1. 您的应用程序位于可信的反向代理(nginx、AWS ALB 等)之后
240
+ 2. 您已将 `ForwardedHeaderFilter` 注册为 bean
241
+ 3. 您已在应用属性中配置了 `server.forward-headers-strategy=NATIVE` 或 `FRAMEWORK`
242
+ 4. 您的代理配置为覆盖(而非追加)`X-Forwarded-For` 头
243
+
244
+ 当 `ForwardedHeaderFilter` 被正确配置时,`request.getRemoteAddr()` 将自动从转发的头中返回正确的客户端 IP。
245
+ 没有此配置时,请直接使用 `request.getRemoteAddr()`——它返回的是直接连接的 IP,这是唯一可信的值。
246
+
247
+ ```java
248
+ @Component
249
+ public class RateLimitFilter extends OncePerRequestFilter {
250
+ private final Map<String, Bucket> buckets = new ConcurrentHashMap<>();
251
+
252
+ /*
253
+ * SECURITY: This filter uses request.getRemoteAddr() to identify clients for rate limiting.
254
+ *
255
+ * If your application is behind a reverse proxy (nginx, AWS ALB, etc.), you MUST configure
256
+ * Spring to handle forwarded headers properly for accurate client IP detection:
257
+ *
258
+ * 1. Set server.forward-headers-strategy=NATIVE (for cloud platforms) or FRAMEWORK in
259
+ * application.properties/yaml
260
+ * 2. If using FRAMEWORK strategy, register ForwardedHeaderFilter:
261
+ *
262
+ * @Bean
263
+ * ForwardedHeaderFilter forwardedHeaderFilter() {
264
+ * return new ForwardedHeaderFilter();
265
+ * }
266
+ *
267
+ * 3. Ensure your proxy overwrites (not appends) the X-Forwarded-For header to prevent spoofing
268
+ * 4. Configure server.tomcat.remoteip.trusted-proxies or equivalent for your container
269
+ *
270
+ * Without this configuration, request.getRemoteAddr() returns the proxy IP, not the client IP.
271
+ * Do NOT read X-Forwarded-For directly—it is trivially spoofable without trusted proxy handling.
272
+ */
273
+ @Override
274
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
275
+ FilterChain filterChain) throws ServletException, IOException {
276
+ // Use getRemoteAddr() which returns the correct client IP when ForwardedHeaderFilter
277
+ // is configured, or the direct connection IP otherwise. Never trust X-Forwarded-For
278
+ // headers directly without proper proxy configuration.
279
+ String clientIp = request.getRemoteAddr();
280
+
281
+ Bucket bucket = buckets.computeIfAbsent(clientIp,
282
+ k -> Bucket.builder()
283
+ .addLimit(Bandwidth.classic(100, Refill.greedy(100, Duration.ofMinutes(1))))
284
+ .build());
285
+
286
+ if (bucket.tryConsume(1)) {
287
+ filterChain.doFilter(request, response);
288
+ } else {
289
+ response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value());
290
+ }
291
+ }
292
+ }
293
+ ```
294
+
295
+ ## 后台作业
296
+
297
+ 使用 Spring 的 `@Scheduled` 或与队列(如 Kafka、SQS、RabbitMQ)集成。保持处理程序是幂等的和可观察的。
298
+
299
+ ## 可观测性
300
+
301
+ * 通过 Logback 编码器进行结构化日志记录 (JSON)
302
+ * 指标:Micrometer + Prometheus/OTel
303
+ * 追踪:带有 OpenTelemetry 或 Brave 后端的 Micrometer Tracing
304
+
305
+ ## 生产环境默认设置
306
+
307
+ * 优先使用构造函数注入,避免字段注入
308
+ * 启用 `spring.mvc.problemdetails.enabled=true` 以获得 RFC 7807 错误 (Spring Boot 3+)
309
+ * 根据工作负载配置 HikariCP 连接池大小,设置超时
310
+ * 对查询使用 `@Transactional(readOnly = true)`
311
+ * 在适当的地方通过 `@NonNull` 和 `Optional` 强制执行空值安全
312
+
313
+ **记住**:保持控制器精简、服务专注、仓库简单,并集中处理错误。为可维护性和可测试性进行优化。
@@ -0,0 +1,272 @@
1
+ ---
2
+ name: springboot-security
3
+ description: Java Spring Boot 服务中认证/授权、验证、CSRF、密钥、标头、速率限制和依赖安全性的 Spring Security 最佳实践。
4
+ origin: ECC
5
+ ---
6
+
7
+ # Spring Boot 安全审查
8
+
9
+ 在添加身份验证、处理输入、创建端点或处理密钥时使用。
10
+
11
+ ## 何时激活
12
+
13
+ * 添加身份验证(JWT、OAuth2、基于会话)
14
+ * 实现授权(@PreAuthorize、基于角色的访问控制)
15
+ * 验证用户输入(Bean Validation、自定义验证器)
16
+ * 配置 CORS、CSRF 或安全标头
17
+ * 管理密钥(Vault、环境变量)
18
+ * 添加速率限制或暴力破解防护
19
+ * 扫描依赖项以查找 CVE
20
+
21
+ ## 身份验证
22
+
23
+ * 优先使用无状态 JWT 或带有撤销列表的不透明令牌
24
+ * 对于会话,使用 `httpOnly`、`Secure`、`SameSite=Strict` cookie
25
+ * 使用 `OncePerRequestFilter` 或资源服务器验证令牌
26
+
27
+ ```java
28
+ @Component
29
+ public class JwtAuthFilter extends OncePerRequestFilter {
30
+ private final JwtService jwtService;
31
+
32
+ public JwtAuthFilter(JwtService jwtService) {
33
+ this.jwtService = jwtService;
34
+ }
35
+
36
+ @Override
37
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
38
+ FilterChain chain) throws ServletException, IOException {
39
+ String header = request.getHeader(HttpHeaders.AUTHORIZATION);
40
+ if (header != null && header.startsWith("Bearer ")) {
41
+ String token = header.substring(7);
42
+ Authentication auth = jwtService.authenticate(token);
43
+ SecurityContextHolder.getContext().setAuthentication(auth);
44
+ }
45
+ chain.doFilter(request, response);
46
+ }
47
+ }
48
+ ```
49
+
50
+ ## 授权
51
+
52
+ * 启用方法安全:`@EnableMethodSecurity`
53
+ * 使用 `@PreAuthorize("hasRole('ADMIN')")` 或 `@PreAuthorize("@authz.canEdit(#id)")`
54
+ * 默认拒绝;仅公开必需的 scope
55
+
56
+ ```java
57
+ @RestController
58
+ @RequestMapping("/api/admin")
59
+ public class AdminController {
60
+
61
+ @PreAuthorize("hasRole('ADMIN')")
62
+ @GetMapping("/users")
63
+ public List<UserDto> listUsers() {
64
+ return userService.findAll();
65
+ }
66
+
67
+ @PreAuthorize("@authz.isOwner(#id, authentication)")
68
+ @DeleteMapping("/users/{id}")
69
+ public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
70
+ userService.delete(id);
71
+ return ResponseEntity.noContent().build();
72
+ }
73
+ }
74
+ ```
75
+
76
+ ## 输入验证
77
+
78
+ * 在控制器上使用带有 `@Valid` 的 Bean 验证
79
+ * 在 DTO 上应用约束:`@NotBlank`、`@Email`、`@Size`、自定义验证器
80
+ * 在渲染之前使用白名单清理任何 HTML
81
+
82
+ ```java
83
+ // BAD: No validation
84
+ @PostMapping("/users")
85
+ public User createUser(@RequestBody UserDto dto) {
86
+ return userService.create(dto);
87
+ }
88
+
89
+ // GOOD: Validated DTO
90
+ public record CreateUserDto(
91
+ @NotBlank @Size(max = 100) String name,
92
+ @NotBlank @Email String email,
93
+ @NotNull @Min(0) @Max(150) Integer age
94
+ ) {}
95
+
96
+ @PostMapping("/users")
97
+ public ResponseEntity<UserDto> createUser(@Valid @RequestBody CreateUserDto dto) {
98
+ return ResponseEntity.status(HttpStatus.CREATED)
99
+ .body(userService.create(dto));
100
+ }
101
+ ```
102
+
103
+ ## SQL 注入预防
104
+
105
+ * 使用 Spring Data 存储库或参数化查询
106
+ * 对于原生查询,使用 `:param` 绑定;切勿拼接字符串
107
+
108
+ ```java
109
+ // BAD: String concatenation in native query
110
+ @Query(value = "SELECT * FROM users WHERE name = '" + name + "'", nativeQuery = true)
111
+
112
+ // GOOD: Parameterized native query
113
+ @Query(value = "SELECT * FROM users WHERE name = :name", nativeQuery = true)
114
+ List<User> findByName(@Param("name") String name);
115
+
116
+ // GOOD: Spring Data derived query (auto-parameterized)
117
+ List<User> findByEmailAndActiveTrue(String email);
118
+ ```
119
+
120
+ ## 密码编码
121
+
122
+ * 始终使用 BCrypt 或 Argon2 哈希密码——切勿存储明文
123
+ * 使用 `PasswordEncoder` Bean,而非手动哈希
124
+
125
+ ```java
126
+ @Bean
127
+ public PasswordEncoder passwordEncoder() {
128
+ return new BCryptPasswordEncoder(12); // cost factor 12
129
+ }
130
+
131
+ // In service
132
+ public User register(CreateUserDto dto) {
133
+ String hashedPassword = passwordEncoder.encode(dto.password());
134
+ return userRepository.save(new User(dto.email(), hashedPassword));
135
+ }
136
+ ```
137
+
138
+ ## CSRF 保护
139
+
140
+ * 对于浏览器会话应用程序,保持 CSRF 启用;在表单/头中包含令牌
141
+ * 对于使用 Bearer 令牌的纯 API,禁用 CSRF 并依赖无状态身份验证
142
+
143
+ ```java
144
+ http
145
+ .csrf(csrf -> csrf.disable())
146
+ .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
147
+ ```
148
+
149
+ ## 密钥管理
150
+
151
+ * 源代码中不包含密钥;从环境变量或 vault 加载
152
+ * 保持 `application.yml` 不包含凭据;使用占位符
153
+ * 定期轮换令牌和数据库凭据
154
+
155
+ ```yaml
156
+ # BAD: Hardcoded in application.yml
157
+ spring:
158
+ datasource:
159
+ password: mySecretPassword123
160
+
161
+ # GOOD: Environment variable placeholder
162
+ spring:
163
+ datasource:
164
+ password: ${DB_PASSWORD}
165
+
166
+ # GOOD: Spring Cloud Vault integration
167
+ spring:
168
+ cloud:
169
+ vault:
170
+ uri: https://vault.example.com
171
+ token: ${VAULT_TOKEN}
172
+ ```
173
+
174
+ ## 安全头
175
+
176
+ ```java
177
+ http
178
+ .headers(headers -> headers
179
+ .contentSecurityPolicy(csp -> csp
180
+ .policyDirectives("default-src 'self'"))
181
+ .frameOptions(HeadersConfigurer.FrameOptionsConfig::sameOrigin)
182
+ .xssProtection(Customizer.withDefaults())
183
+ .referrerPolicy(rp -> rp.policy(ReferrerPolicyHeaderWriter.ReferrerPolicy.NO_REFERRER)));
184
+ ```
185
+
186
+ ## CORS 配置
187
+
188
+ * 在安全过滤器级别配置 CORS,而非按控制器配置
189
+ * 限制允许的来源——在生产环境中切勿使用 `*`
190
+
191
+ ```java
192
+ @Bean
193
+ public CorsConfigurationSource corsConfigurationSource() {
194
+ CorsConfiguration config = new CorsConfiguration();
195
+ config.setAllowedOrigins(List.of("https://app.example.com"));
196
+ config.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE"));
197
+ config.setAllowedHeaders(List.of("Authorization", "Content-Type"));
198
+ config.setAllowCredentials(true);
199
+ config.setMaxAge(3600L);
200
+
201
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
202
+ source.registerCorsConfiguration("/api/**", config);
203
+ return source;
204
+ }
205
+
206
+ // In SecurityFilterChain:
207
+ http.cors(cors -> cors.configurationSource(corsConfigurationSource()));
208
+ ```
209
+
210
+ ## 速率限制
211
+
212
+ * 在昂贵的端点上应用 Bucket4j 或网关级限制
213
+ * 记录突发流量并告警;返回 429 并提供重试提示
214
+
215
+ ```java
216
+ // Using Bucket4j for per-endpoint rate limiting
217
+ @Component
218
+ public class RateLimitFilter extends OncePerRequestFilter {
219
+ private final Map<String, Bucket> buckets = new ConcurrentHashMap<>();
220
+
221
+ private Bucket createBucket() {
222
+ return Bucket.builder()
223
+ .addLimit(Bandwidth.classic(100, Refill.intervally(100, Duration.ofMinutes(1))))
224
+ .build();
225
+ }
226
+
227
+ @Override
228
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,
229
+ FilterChain chain) throws ServletException, IOException {
230
+ String clientIp = request.getRemoteAddr();
231
+ Bucket bucket = buckets.computeIfAbsent(clientIp, k -> createBucket());
232
+
233
+ if (bucket.tryConsume(1)) {
234
+ chain.doFilter(request, response);
235
+ } else {
236
+ response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value());
237
+ response.getWriter().write("{\"error\": \"Rate limit exceeded\"}");
238
+ }
239
+ }
240
+ }
241
+ ```
242
+
243
+ ## 依赖项安全
244
+
245
+ * 在 CI 中运行 OWASP Dependency Check / Snyk
246
+ * 保持 Spring Boot 和 Spring Security 在受支持的版本
247
+ * 对已知 CVE 使构建失败
248
+
249
+ ## 日志记录和 PII
250
+
251
+ * 切勿记录密钥、令牌、密码或完整的 PAN 数据
252
+ * 擦除敏感字段;使用结构化 JSON 日志记录
253
+
254
+ ## 文件上传
255
+
256
+ * 验证大小、内容类型和扩展名
257
+ * 存储在 Web 根目录之外;如果需要则进行扫描
258
+
259
+ ## 发布前检查清单
260
+
261
+ * \[ ] 身份验证令牌已验证并正确过期
262
+ * \[ ] 每个敏感路径都有授权守卫
263
+ * \[ ] 所有输入都已验证和清理
264
+ * \[ ] 没有字符串拼接的 SQL
265
+ * \[ ] CSRF 策略适用于应用程序类型
266
+ * \[ ] 密钥已外部化;未提交任何密钥
267
+ * \[ ] 安全头已配置
268
+ * \[ ] API 有速率限制
269
+ * \[ ] 依赖项已扫描并保持最新
270
+ * \[ ] 日志不包含敏感数据
271
+
272
+ **记住**:默认拒绝、验证输入、最小权限、优先采用安全配置。