@alanwang-merit/meritdata-platform-skill-package 1.0.8 → 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 (660) 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/scripts/postinstall.js +4 -1
  16. package/skills/api-design/SKILL.md +523 -0
  17. package/skills/architecture-readiness-check/SKILL.md +80 -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/212/245/345/221/212/346/250/241/346/235/277.md +129 -0
  19. 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
  20. package/skills/ask-matt/SKILL.md +78 -0
  21. package/skills/ask-matt/agents/openai.yaml +5 -0
  22. package/skills/backend-code-review/SKILL.md +168 -0
  23. package/skills/backend-code-review/references/architecture-rule.md +91 -0
  24. package/skills/backend-code-review/references/db-schema-rule.md +157 -0
  25. package/skills/backend-code-review/references/repositories-rule.md +61 -0
  26. package/skills/backend-code-review/references/sqlalchemy-rule.md +139 -0
  27. package/skills/backend-patterns/SKILL.md +597 -0
  28. package/skills/backend-patterns/agents/openai.yaml +7 -0
  29. package/skills/brainstorming/SKILL.md +151 -0
  30. package/skills/brainstorming/scripts/frame-template.html +213 -0
  31. package/skills/brainstorming/scripts/helper.js +167 -0
  32. package/skills/brainstorming/scripts/server.cjs +723 -0
  33. package/skills/brainstorming/scripts/server.js +338 -0
  34. package/skills/brainstorming/scripts/start-server.sh +209 -0
  35. package/skills/brainstorming/scripts/stop-server.sh +120 -0
  36. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  37. package/skills/brainstorming/visual-companion.md +298 -0
  38. package/skills/code-design-consistency-check/SKILL.md +142 -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/212/245/345/221/212/346/250/241/346/235/277.md +242 -0
  40. 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
  41. package/skills/code-low-level-check/SKILL.md +159 -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/212/245/345/221/212/346/250/241/346/235/277.md +242 -0
  43. 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
  44. 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
  45. package/skills/code-review/SKILL.md +89 -0
  46. package/skills/code-review/agents/openai.yaml +3 -0
  47. package/skills/codebase-design/DEEPENING.md +37 -0
  48. package/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  49. package/skills/codebase-design/SKILL.md +114 -0
  50. package/skills/codebase-design/agents/openai.yaml +3 -0
  51. package/skills/design-architect-review/SKILL.md +81 -0
  52. 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
  53. package/skills/design-low-level-check/SKILL.md +95 -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/212/245/345/221/212/346/250/241/346/235/277.md +125 -0
  55. 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
  56. package/skills/design-review/SKILL.md +225 -0
  57. 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
  58. package/skills/design-review-report/SKILL.md +150 -0
  59. 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
  60. package/skills/design-taste-frontend/SKILL.md +226 -0
  61. package/skills/developer-testcase-review/SKILL.md +191 -0
  62. 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
  63. package/skills/development-code-review/SKILL.md +138 -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/212/245/345/221/212/346/250/241/346/235/277.md +260 -0
  65. 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
  66. package/skills/development-expert-review/SKILL.md +150 -0
  67. 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
  68. package/skills/diagnosing-bugs/SKILL.md +134 -0
  69. package/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  70. package/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  71. package/skills/dispatching-parallel-agents/SKILL.md +167 -0
  72. package/skills/domain-modeling/ADR-FORMAT.md +47 -0
  73. package/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  74. package/skills/domain-modeling/SKILL.md +74 -0
  75. package/skills/domain-modeling/agents/openai.yaml +3 -0
  76. package/skills/executing-plans/SKILL.md +64 -0
  77. package/skills/finishing-a-development-branch/SKILL.md +201 -0
  78. package/skills/frontend-patterns/SKILL.md +642 -0
  79. package/skills/generate-developer-testcase/SKILL.md +70 -0
  80. 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
  81. package/skills/git-guardrails-claude-code/SKILL.md +95 -0
  82. package/skills/git-guardrails-claude-code/agents/openai.yaml +3 -0
  83. package/skills/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
  84. package/skills/grill-me/SKILL.md +7 -0
  85. package/skills/grill-me/agents/openai.yaml +5 -0
  86. package/skills/grill-with-docs/SKILL.md +7 -0
  87. package/skills/grill-with-docs/agents/openai.yaml +5 -0
  88. package/skills/grilling/SKILL.md +12 -0
  89. package/skills/grilling/agents/openai.yaml +3 -0
  90. package/skills/handoff/SKILL.md +16 -0
  91. package/skills/handoff/agents/openai.yaml +5 -0
  92. package/skills/implement/SKILL.md +15 -0
  93. package/skills/implement/agents/openai.yaml +5 -0
  94. package/skills/improve-codebase-architecture/HTML-REPORT.md +123 -0
  95. package/skills/improve-codebase-architecture/SKILL.md +71 -0
  96. package/skills/improve-codebase-architecture/agents/openai.yaml +5 -0
  97. package/skills/init-deep-claude/SKILL.md +270 -0
  98. package/skills/init-deep-claude/_meta.json +14 -0
  99. package/skills/init-deep-claude/evals/evals.json +60 -0
  100. package/skills/init-deep-claude/references/code-project-template.md +57 -0
  101. package/skills/init-deep-claude/references/error-handling.md +118 -0
  102. package/skills/init-deep-claude/references/monorepo-strategy.md +100 -0
  103. package/skills/init-deep-claude/references/plain-directory-template.md +62 -0
  104. package/skills/java-architect/SKILL.md +132 -0
  105. package/skills/java-architect/references/jpa-optimization.md +393 -0
  106. package/skills/java-architect/references/reactive-webflux.md +356 -0
  107. package/skills/java-architect/references/spring-boot-setup.md +269 -0
  108. package/skills/java-architect/references/spring-security.md +445 -0
  109. package/skills/java-architect/references/testing-patterns.md +500 -0
  110. package/skills/java-coding-standards/SKILL.md +147 -0
  111. package/skills/java-testing/SKILL.md +34 -0
  112. package/skills/java-testing/evals/evals.json +46 -0
  113. package/skills/java-testing/references/junit-template.md +58 -0
  114. package/skills/meritdata-platform-2nd-dev-check/README.md +196 -0
  115. package/skills/meritdata-platform-2nd-dev-check/SKILL.md +209 -23
  116. package/skills/meritdata-platform-2nd-dev-check/agents/openai.yaml +33 -0
  117. package/skills/meritdata-platform-2nd-dev-check/checklists/checks.schema.json +22 -0
  118. package/skills/meritdata-platform-2nd-dev-check/checklists/dependency.chk.json +96 -0
  119. package/skills/meritdata-platform-2nd-dev-check/checklists/frontend.chk.json +69 -0
  120. package/skills/meritdata-platform-2nd-dev-check/checklists/integration.chk.json +78 -0
  121. package/skills/meritdata-platform-2nd-dev-check/checklists/naming.chk.json +78 -0
  122. package/skills/meritdata-platform-2nd-dev-check/checklists/package-structure.chk.json +87 -0
  123. package/skills/meritdata-platform-2nd-dev-check/checklists/security.chk.json +87 -0
  124. package/skills/meritdata-platform-2nd-dev-check/references/checklist.md +322 -0
  125. package/skills/meritdata-platform-2nd-dev-check/references/env-vars.md +232 -0
  126. package/skills/meritdata-platform-2nd-dev-check/references/fix-guide.md +433 -0
  127. package/skills/meritdata-platform-2nd-dev-check/scripts/apply-to-files.sh +238 -0
  128. package/skills/meritdata-platform-2nd-dev-check/scripts/check-backend.sh +171 -0
  129. package/skills/meritdata-platform-2nd-dev-check/scripts/check-conventions.sh +188 -0
  130. package/skills/meritdata-platform-2nd-dev-check/scripts/check-database.sh +128 -0
  131. package/skills/meritdata-platform-2nd-dev-check/scripts/check-frontend.sh +225 -0
  132. package/skills/meritdata-platform-2nd-dev-check/scripts/check-lib-version.sh +289 -0
  133. package/skills/meritdata-platform-2nd-dev-check/scripts/check-platform.sh +212 -0
  134. package/skills/meritdata-platform-2nd-dev-check/scripts/load-config.sh +189 -0
  135. package/skills/meritdata-platform-2nd-dev-check/scripts/run-all.sh +168 -0
  136. package/skills/meritdata-platform-2nd-dev-check/scripts/write-env.sh +147 -0
  137. package/skills/meritdata-platform-bootstrap-2nd-dev/SKILL.md +77 -0
  138. package/skills/meritdata-platform-bootstrap-2nd-dev/agents/openai.yaml +23 -0
  139. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/application.java.vm +32 -0
  140. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/banner.txt.vm +9 -0
  141. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/bootstrap.properties.vm +20 -0
  142. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end/pom.xml.vm +202 -0
  143. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/entity/ProcTrackDTOApproval.java +36 -0
  144. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/Checker.java +39 -0
  145. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/LengthChecker.java +51 -0
  146. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/NumberChecker.java +49 -0
  147. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/RequiredChecker.java +39 -0
  148. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/SortNoChecker.java +31 -0
  149. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/SpecialCharChecker.java +47 -0
  150. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/checker/impl/UniqueChecker.java +30 -0
  151. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/Column.java +81 -0
  152. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/ImpConfig.java +126 -0
  153. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/config/RowData.java +68 -0
  154. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/Converter.java +28 -0
  155. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/DateConverter.java +31 -0
  156. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/LookUpConverter.java +53 -0
  157. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/converter/converter/SexConverter.java +45 -0
  158. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/RowDataLoader.java +158 -0
  159. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/impl/BeanRowDataLoader.java +18 -0
  160. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/dataloader/impl/MapRowDataLoader.java +41 -0
  161. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/feign/MangeFeignClient.java +21 -0
  162. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/IImportHandler.java +24 -0
  163. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/AbstractImportHandler.java +172 -0
  164. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/BaseImportHandler.java +50 -0
  165. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/handler/impl/ImpCallable.java +53 -0
  166. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/importcommon/config/ConfigLoader.java +97 -0
  167. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/back-end-common/common/imp/importcommon/util/ImportUtils.java +46 -0
  168. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/App.vue +12 -0
  169. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/Index.vue +18 -0
  170. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/i18n.js +13 -0
  171. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/langs/en_US.js +36 -0
  172. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/i18n/langs/zh_CN.js +36 -0
  173. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/index.js +14 -0
  174. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/main.js +21 -0
  175. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/router.js +16 -0
  176. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/store.js +20 -0
  177. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Add.vue +43 -0
  178. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Detail.vue +31 -0
  179. package/skills/meritdata-platform-bootstrap-2nd-dev/bundled/front-end/yourapp/view/Grid.vue +44 -0
  180. package/skills/meritdata-platform-bootstrap-2nd-dev/references/README.md +9 -0
  181. package/skills/meritdata-platform-bootstrap-2nd-dev/scripts/bootstrap.ps1 +353 -0
  182. package/skills/meritdata-platform-bootstrap-2nd-dev/scripts/bootstrap.sh +350 -0
  183. package/skills/meritdata-platform-bpm/SKILL.md +94 -30
  184. package/skills/meritdata-platform-bpm/agents/openai.yaml +36 -0
  185. package/skills/meritdata-platform-bpm/examples/leave-flow/README.md +151 -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/20201_/345/211/215/347/275/256/346/235/241/344/273/266.md +11 -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/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
  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/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
  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/20204_/350/277/220/350/241/214/350/247/204/345/210/231/345/274/225/346/223/216.md +449 -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/20205_/345/256/214/346/210/220/344/273/273/345/212/241/346/216/245/345/217/243.md +232 -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/20206_/345/241/253/345/206/231/346/204/217/350/247/201/346/216/245/345/217/243.md +192 -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/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
  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/20208_/346/237/245/347/234/213/350/277/275/350/270/252/346/216/245/345/217/243.md +492 -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/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
  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/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
  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/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
  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/20212_/344/270/252/344/272/272/345/276/205/345/212/236.md +261 -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/20213_/351/230/205/347/237/245.md +306 -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/20214_/346/265/201/347/250/213/346/234/200/346/226/260/345/256/232/344/271/211ID.md +100 -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/20215_/344/270/232/345/212/241/347/233/270/345/205/263/346/216/245/345/217/243.md +637 -0
  201. 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
  202. package/skills/meritdata-platform-bpm/references/api-reference.md +2779 -0
  203. package/skills/meritdata-platform-bpm/references/bpm-engine-complete-methods.md +150 -0
  204. 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
  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-00_/346/200/273/350/247/210.md +66 -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/20201_/346/246/202/350/277/260.md +165 -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/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
  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/20203_BpmFormTools_-_BPM/350/241/250/345/215/225/345/267/245/345/205/267/347/273/204/344/273/266.md +145 -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/20204_BpmGridButtonsNew_-_BPM/350/241/250/346/240/274/346/214/211/351/222/256/347/273/204/344/273/266.md +239 -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/20205_/345/220/216/347/253/257BpmEngine/346/240/270/345/277/203/346/216/245/345/217/243.md +135 -0
  211. 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
  212. package/skills/meritdata-platform-bpm/references/components.md +618 -0
  213. package/skills/meritdata-platform-bpm/references/custom-assignee.md +28 -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-00_/346/200/273/350/247/210.md +51 -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/20201_/345/256/236/347/216/260/347/255/226/347/225/245.md +30 -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/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
  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/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
  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/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
  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/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
  220. 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
  221. package/skills/meritdata-platform-bpm/references/listener-expression.md +304 -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-00_/346/200/273/350/247/210.md +25 -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/20201_/350/203/214/346/231/257.md +12 -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/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
  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/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
  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/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
  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/20205_/346/265/201/347/250/213/345/220/216/347/253/257/350/256/276/350/256/241.md +226 -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/20206_/346/265/201/347/250/213/345/211/215/347/253/257/350/256/276/350/256/241.md +80 -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/20207_/344/272/214/346/254/241/345/274/200/345/217/221.md +38 -0
  230. 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
  231. package/skills/meritdata-platform-bpm/references/module-design.md +342 -0
  232. package/skills/meritdata-platform-bpm/references/process-track.md +172 -0
  233. package/skills/meritdata-platform-bpm/references/todo-portal.md +239 -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-00_/346/200/273/350/247/210.md +84 -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/20201_/346/240/267/344/276/213/350/257/264/346/230/216.md +37 -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/20202_/345/220/216/347/253/257/345/267/245/347/250/213/345/210/233/345/273/272.md +39 -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/20203_/345/220/216/347/253/257/345/267/245/347/250/213/351/205/215/347/275/256.md +234 -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/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
  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/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
  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/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
  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/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
  242. 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
  243. package/skills/meritdata-platform-bpm/references/workflow-dev.md +2037 -0
  244. package/skills/meritdata-platform-cache/SKILL.md +47 -36
  245. package/skills/meritdata-platform-cache/agents/openai.yaml +21 -0
  246. package/skills/meritdata-platform-cache/references/api-quick-ref.md +69 -0
  247. package/skills/meritdata-platform-cache/references/cache.md +226 -0
  248. package/skills/meritdata-platform-cloud-dev/SKILL.md +192 -74
  249. package/skills/meritdata-platform-cloud-dev/agents/openai.yaml +40 -0
  250. package/skills/meritdata-platform-cloud-dev/references/modules/bpm.md +39 -0
  251. package/skills/meritdata-platform-cloud-dev/references/modules/cache.md +28 -0
  252. package/skills/meritdata-platform-cloud-dev/references/modules/config.md +31 -0
  253. package/skills/meritdata-platform-cloud-dev/references/modules/data-boundary.md +44 -0
  254. package/skills/meritdata-platform-cloud-dev/references/modules/datasource.md +30 -0
  255. package/skills/meritdata-platform-cloud-dev/references/modules/domain-model.md +40 -0
  256. package/skills/meritdata-platform-cloud-dev/references/modules/feign-api.md +41 -0
  257. package/skills/meritdata-platform-cloud-dev/references/modules/file.md +30 -0
  258. package/skills/meritdata-platform-cloud-dev/references/modules/gen.md +215 -0
  259. package/skills/meritdata-platform-cloud-dev/references/modules/governance.md +51 -0
  260. package/skills/meritdata-platform-cloud-dev/references/modules/http-client.md +40 -0
  261. package/skills/meritdata-platform-cloud-dev/references/modules/impexp.md +26 -0
  262. package/skills/meritdata-platform-cloud-dev/references/modules/logging.md +29 -0
  263. package/skills/meritdata-platform-cloud-dev/references/modules/masterdata-sync.md +36 -0
  264. package/skills/meritdata-platform-cloud-dev/references/modules/msg-job.md +27 -0
  265. package/skills/meritdata-platform-cloud-dev/references/modules/platform-entities.md +40 -0
  266. package/skills/meritdata-platform-cloud-dev/references/modules/platform.md +62 -0
  267. package/skills/meritdata-platform-cloud-dev/references/modules/services.md +37 -0
  268. package/skills/meritdata-platform-cloud-dev/references/modules/spec.md +47 -0
  269. package/skills/meritdata-platform-cloud-dev/references/modules/ui.md +51 -0
  270. package/skills/meritdata-platform-cloud-dev/references/modules/utils.md +31 -0
  271. package/skills/meritdata-platform-cloud-dev/references/modules/webapi.md +35 -0
  272. package/skills/meritdata-platform-code-review-by-rules/SKILL.md +174 -0
  273. package/skills/meritdata-platform-code-review-by-rules/agents/openai.yaml +13 -0
  274. package/skills/meritdata-platform-config-item/SKILL.md +55 -0
  275. package/skills/meritdata-platform-config-item/agents/openai.yaml +14 -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-00_/346/200/273/350/247/210.md +49 -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/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
  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/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
  279. 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
  280. package/skills/meritdata-platform-config-item/references/nacos-utils-api.md +76 -0
  281. package/skills/meritdata-platform-config-item/references/nacos.md +140 -0
  282. package/skills/meritdata-platform-core/SKILL.md +77 -0
  283. package/skills/meritdata-platform-core/agents/openai.yaml +37 -0
  284. 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
  285. 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
  286. 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
  287. 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
  288. package/skills/meritdata-platform-core/references/cache.md +237 -0
  289. package/skills/meritdata-platform-core/references/crypto.md +82 -0
  290. package/skills/meritdata-platform-core/references/data-secret.md +49 -0
  291. package/skills/meritdata-platform-core/references/logging.md +256 -0
  292. package/skills/meritdata-platform-core/references/nacos.md +140 -0
  293. package/skills/meritdata-platform-core/references/session.md +125 -0
  294. package/skills/meritdata-platform-crypto-gm/SKILL.md +62 -0
  295. package/skills/meritdata-platform-crypto-gm/agents/openai.yaml +15 -0
  296. package/skills/meritdata-platform-crypto-gm/references/api-quick-ref.md +39 -0
  297. 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
  298. package/skills/meritdata-platform-crypto-gm/references/contract-signing.md +60 -0
  299. package/skills/meritdata-platform-crypto-gm/references/crypto.md +144 -0
  300. package/skills/meritdata-platform-crypto-gm/references/key-management.md +48 -0
  301. package/skills/meritdata-platform-data-secret/SKILL.md +49 -0
  302. package/skills/meritdata-platform-data-secret/agents/openai.yaml +13 -0
  303. 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
  304. package/skills/meritdata-platform-data-secret/references/data-secret.md +89 -0
  305. package/skills/meritdata-platform-data-secret/references/secret-api.md +35 -0
  306. package/skills/meritdata-platform-data-secret/references/secret-level-spec.md +231 -0
  307. package/skills/meritdata-platform-deploy/SKILL.md +73 -0
  308. package/skills/meritdata-platform-deploy/agents/openai.yaml +27 -0
  309. package/skills/meritdata-platform-entities/SKILL.md +81 -0
  310. package/skills/meritdata-platform-entities/agents/openai.yaml +34 -0
  311. package/skills/meritdata-platform-entities/references/entity-catalog.md +194 -0
  312. package/skills/meritdata-platform-frontend/SKILL.md +73 -38
  313. package/skills/meritdata-platform-frontend/agents/openai.yaml +31 -0
  314. package/skills/meritdata-platform-frontend/examples/user-list-page/README.md +331 -0
  315. package/skills/meritdata-platform-frontend/references/components.md +424 -283
  316. package/skills/meritdata-platform-frontend/references/utils.md +176 -0
  317. package/skills/meritdata-platform-impexp/SKILL.md +65 -30
  318. package/skills/meritdata-platform-impexp/agents/openai.yaml +33 -0
  319. package/skills/meritdata-platform-impexp/examples/excel-export/README.md +146 -0
  320. package/skills/meritdata-platform-impexp/examples/excel-import/README.md +246 -0
  321. package/skills/meritdata-platform-integration/SKILL.md +102 -0
  322. package/skills/meritdata-platform-integration/agents/openai.yaml +33 -0
  323. 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
  324. 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
  325. 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
  326. 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
  327. 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
  328. 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
  329. 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
  330. 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
  331. 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
  332. 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
  333. 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
  334. 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
  335. 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
  336. 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
  337. 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
  338. 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
  339. 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
  340. 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
  341. 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
  342. 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
  343. 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
  344. 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
  345. 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
  346. 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
  347. 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
  348. 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
  349. 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
  350. 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
  351. 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
  352. 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
  353. 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
  354. package/skills/meritdata-platform-integration/references/external-api.md +260 -0
  355. 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
  356. package/skills/meritdata-platform-integration/references/org-user-sync.md +121 -0
  357. package/skills/meritdata-platform-integration/references/service-notification.md +168 -0
  358. package/skills/meritdata-platform-job/SKILL.md +76 -30
  359. package/skills/meritdata-platform-job/agents/openai.yaml +30 -0
  360. 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
  361. 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
  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-00_/346/200/273/350/247/210.md +49 -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/20201_/344/275/277/347/224/250/350/203/214/346/231/257.md +12 -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/20202_/346/233/264/346/226/260/350/256/260/345/275/225.md +14 -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/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
  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/20204_/351/205/215/347/275/256/351/241/271/347/233/270/345/205/263.md +23 -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/20205_/350/260/203/345/272/246/345/212/237/350/203/275/344/275/277/347/224/250.md +132 -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/20206_/350/260/203/345/272/246/344/273/273/345/212/241_API_/346/216/245/345/217/243.md +14 -0
  369. 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
  370. package/skills/meritdata-platform-job/references/scheduler.md +13 -0
  371. package/skills/meritdata-platform-job/references/xxl-job.md +30 -0
  372. package/skills/meritdata-platform-logging/SKILL.md +54 -0
  373. package/skills/meritdata-platform-logging/agents/openai.yaml +16 -0
  374. package/skills/meritdata-platform-logging/references/api-quick-ref.md +90 -0
  375. 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
  376. 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
  377. package/skills/meritdata-platform-logging/references/logging.md +256 -0
  378. package/skills/meritdata-platform-menu-config/SKILL.md +218 -39
  379. package/skills/meritdata-platform-menu-config/agents/openai.yaml +22 -0
  380. package/skills/meritdata-platform-menu-config/references/README.md +10 -0
  381. package/skills/meritdata-platform-menu-config/references/environment.md +32 -0
  382. package/skills/meritdata-platform-menu-config/references/field-mapping.md +64 -0
  383. package/skills/meritdata-platform-menu-config/references/insert-menu-template.sql +89 -0
  384. package/skills/meritdata-platform-menu-config/references/troubleshooting.md +177 -0
  385. package/skills/meritdata-platform-messaging/SKILL.md +56 -0
  386. package/skills/meritdata-platform-messaging/agents/openai.yaml +15 -0
  387. package/skills/meritdata-platform-messaging/references/announcement-api.md +258 -0
  388. package/skills/meritdata-platform-messaging/references/feign-client.md +83 -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-00_/346/200/273/350/247/210.md +56 -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/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
  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/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
  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/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
  393. 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
  394. package/skills/meritdata-platform-nacos-importer/SKILL.md +120 -0
  395. package/skills/meritdata-platform-nacos-importer/agents/openai.yaml +22 -0
  396. package/skills/meritdata-platform-nacos-importer/references/README.md +9 -0
  397. package/skills/meritdata-platform-nacos-importer/scripts/import-nacos.ps1 +95 -0
  398. package/skills/meritdata-platform-nacos-importer/scripts/import-nacos.sh +100 -0
  399. package/skills/meritdata-platform-org-sync/SKILL.md +72 -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-00_/346/200/273/350/247/210.md +99 -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/20201_/346/246/202/350/277/260.md +16 -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/20202_/347/273/204/347/273/207/345/220/214/346/255/245.md +318 -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/20203_/344/272/272/345/221/230/345/220/214/346/255/245.md +187 -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/20204_/350/265/204/346/272/220/350/217/234/345/215/225/345/220/214/346/255/245.md +124 -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/20205_/350/247/222/350/211/262/345/220/214/346/255/245.md +79 -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/20206_/350/265/204/346/272/220/346/235/203/351/231/220/345/220/214/346/255/245.md +116 -0
  407. 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
  408. package/skills/meritdata-platform-playbook/SKILL.md +172 -30
  409. package/skills/meritdata-platform-playbook/agents/openai.yaml +29 -0
  410. package/skills/meritdata-platform-playbook/examples/existing-increment/README.md +83 -0
  411. package/skills/meritdata-platform-playbook/examples/new-project/README.md +73 -0
  412. package/skills/meritdata-platform-playbook/references/code-spec.md +67 -0
  413. package/skills/meritdata-platform-playbook/references/full-workflow.md +299 -0
  414. package/skills/meritdata-platform-playbook/references/git-integration.md +111 -0
  415. package/skills/meritdata-platform-playbook/references/governance.md +97 -0
  416. package/skills/meritdata-platform-playbook/references/legacy-detect.md +154 -0
  417. package/skills/meritdata-platform-playbook/references/public-entry-map.json +135 -0
  418. package/skills/meritdata-platform-playbook/references/skill-decision-tree.md +125 -0
  419. package/skills/meritdata-platform-playbook/references/svn-integration.md +117 -0
  420. package/skills/meritdata-platform-portal-customization/SKILL.md +78 -0
  421. package/skills/meritdata-platform-portal-customization/references/cloud-utils-theme-generator.md +97 -0
  422. package/skills/meritdata-platform-portal-customization/references/home-frame-config-api.md +145 -0
  423. package/skills/meritdata-platform-portal-customization/references/portal-frontend-layouts.md +160 -0
  424. package/skills/meritdata-platform-portal-customization/references/portal-product-config.md +78 -0
  425. package/skills/meritdata-platform-portal-customization/references/theme-management.md +144 -0
  426. package/skills/meritdata-platform-portal-customization/references/workbench-entities.md +134 -0
  427. package/skills/meritdata-platform-resource-auth/SKILL.md +49 -0
  428. package/skills/meritdata-platform-resource-auth/agents/openai.yaml +14 -0
  429. package/skills/meritdata-platform-resource-auth/references/endpoints.md +171 -0
  430. package/skills/meritdata-platform-session/SKILL.md +41 -36
  431. package/skills/meritdata-platform-session/agents/openai.yaml +9 -0
  432. package/skills/meritdata-platform-session/references/api-quick-ref.md +52 -0
  433. 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
  434. 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
  435. package/skills/meritdata-platform-session/references/session.md +125 -0
  436. package/skills/meritdata-platform-sso/SKILL.md +49 -31
  437. package/skills/meritdata-platform-sso/agents/openai.yaml +19 -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-00_/346/200/273/350/247/210.md +47 -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/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
  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/20202_token_/350/256/244/350/257/201/351/233/206/346/210/220.md +568 -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/20203_cas_/347/273/237/344/270/200/350/256/244/350/257/201/344/270/255/345/277/203.md +128 -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/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
  443. 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
  444. package/skills/meritdata-platform-sso/references/cas-token-flow.md +52 -0
  445. package/skills/meritdata-platform-sso/references/iportal-sso-api.md +66 -0
  446. package/skills/meritdata-platform-sso/references/spring-session-pitfalls.md +71 -0
  447. package/skills/meritdata-platform-ui-components/SKILL.md +64 -36
  448. package/skills/meritdata-platform-ui-components/agents/openai.yaml +33 -0
  449. 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
  450. 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
  451. package/skills/meritdata-platform-ui-components/references/components-api.md +166 -0
  452. package/skills/meritdata-platform-ui-components/references/utils-and-meritbpm.md +98 -0
  453. package/skills/prototype/LOGIC.md +79 -0
  454. package/skills/prototype/SKILL.md +26 -0
  455. package/skills/prototype/UI.md +112 -0
  456. package/skills/prototype/agents/openai.yaml +3 -0
  457. package/skills/receiving-code-review/SKILL.md +205 -0
  458. package/skills/requesting-code-review/SKILL.md +95 -0
  459. package/skills/requesting-code-review/code-reviewer.md +172 -0
  460. package/skills/requirement-low-level-check/SKILL.md +84 -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/212/245/345/221/212/346/250/241/346/235/277.md +139 -0
  462. 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
  463. package/skills/requirement-pm-review/SKILL.md +181 -0
  464. 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
  465. package/skills/requirement-review/SKILL.md +212 -0
  466. 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
  467. package/skills/requirement-review-report/SKILL.md +152 -0
  468. 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
  469. package/skills/research/SKILL.md +12 -0
  470. package/skills/research/agents/openai.yaml +3 -0
  471. package/skills/resolving-merge-conflicts/SKILL.md +14 -0
  472. package/skills/resolving-merge-conflicts/agents/openai.yaml +3 -0
  473. package/skills/rest-api-design/SKILL.md +90 -0
  474. package/skills/rest-api-design/references/complete-example-expressjs.md +114 -0
  475. package/skills/rest-api-design/references/http-status-codes.md +65 -0
  476. package/skills/rest-api-design/references/openapi-documentation.md +92 -0
  477. package/skills/rest-api-design/references/query-parameters.md +23 -0
  478. package/skills/rest-api-design/references/request-examples.md +50 -0
  479. package/skills/rest-api-design/references/resource-naming.md +35 -0
  480. package/skills/rest-api-design/references/response-formats.md +70 -0
  481. package/skills/rest-api-design/scripts/validate-api.sh +18 -0
  482. package/skills/rest-api-design/templates/api-scaffold.yaml +22 -0
  483. package/skills/security-review/SKILL.md +527 -0
  484. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  485. package/skills/setup-matt-pocock-skills/SKILL.md +116 -0
  486. package/skills/setup-matt-pocock-skills/agents/openai.yaml +5 -0
  487. package/skills/setup-matt-pocock-skills/domain.md +51 -0
  488. package/skills/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
  489. package/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
  490. package/skills/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
  491. package/skills/setup-matt-pocock-skills/triage-labels.md +15 -0
  492. package/skills/setup-pre-commit/SKILL.md +91 -0
  493. package/skills/setup-pre-commit/agents/openai.yaml +3 -0
  494. package/skills/speckit-analyze/SKILL.md +260 -0
  495. package/skills/speckit-checklist/SKILL.md +372 -0
  496. package/skills/speckit-clarify/SKILL.md +254 -0
  497. package/skills/speckit-constitution/SKILL.md +157 -0
  498. package/skills/speckit-git-commit/SKILL.md +53 -0
  499. package/skills/speckit-git-feature/SKILL.md +72 -0
  500. package/skills/speckit-git-initialize/SKILL.md +54 -0
  501. package/skills/speckit-git-remote/SKILL.md +50 -0
  502. package/skills/speckit-git-validate/SKILL.md +54 -0
  503. package/skills/speckit-implement/SKILL.md +209 -0
  504. package/skills/speckit-plan/SKILL.md +152 -0
  505. package/skills/speckit-specify/SKILL.md +330 -0
  506. package/skills/speckit-tasks/SKILL.md +202 -0
  507. package/skills/speckit-taskstoissues/SKILL.md +106 -0
  508. package/skills/springboot-patterns/SKILL.md +313 -0
  509. package/skills/springboot-security/SKILL.md +272 -0
  510. package/skills/springboot-tdd/SKILL.md +158 -0
  511. package/skills/subagent-driven-development/SKILL.md +503 -0
  512. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  513. package/skills/subagent-driven-development/implementer-prompt.md +142 -0
  514. package/skills/subagent-driven-development/re-review-prompt.md +106 -0
  515. package/skills/subagent-driven-development/scripts/review-package +46 -0
  516. package/skills/subagent-driven-development/scripts/sdd-workspace +40 -0
  517. package/skills/subagent-driven-development/scripts/task-brief +41 -0
  518. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  519. package/skills/subagent-driven-development/task-reviewer-prompt.md +185 -0
  520. package/skills/system-design/SKILL.md +42 -0
  521. package/skills/systematic-debugging/CREATION-LOG.md +119 -0
  522. package/skills/systematic-debugging/SKILL.md +283 -0
  523. package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  524. package/skills/systematic-debugging/condition-based-waiting.md +115 -0
  525. package/skills/systematic-debugging/defense-in-depth.md +122 -0
  526. package/skills/systematic-debugging/find-polluter.sh +72 -0
  527. package/skills/systematic-debugging/root-cause-tracing.md +169 -0
  528. package/skills/systematic-debugging/test-academic.md +14 -0
  529. package/skills/systematic-debugging/test-pressure-1.md +58 -0
  530. package/skills/systematic-debugging/test-pressure-2.md +68 -0
  531. package/skills/systematic-debugging/test-pressure-3.md +69 -0
  532. package/skills/tdd/SKILL.md +36 -0
  533. package/skills/tdd/agents/openai.yaml +3 -0
  534. package/skills/tdd/mocking.md +59 -0
  535. package/skills/tdd/tests.md +77 -0
  536. package/skills/teach/GLOSSARY-FORMAT.md +35 -0
  537. package/skills/teach/LEARNING-RECORD-FORMAT.md +46 -0
  538. package/skills/teach/MISSION-FORMAT.md +31 -0
  539. package/skills/teach/RESOURCES-FORMAT.md +32 -0
  540. package/skills/teach/SKILL.md +140 -0
  541. package/skills/teach/agents/openai.yaml +5 -0
  542. package/skills/tech-design-doc/SKILL.md +160 -0
  543. package/skills/tech-design-doc/description_ar.txt +1 -0
  544. package/skills/tech-design-doc/description_cn.txt +1 -0
  545. package/skills/tech-design-doc/description_de.txt +1 -0
  546. package/skills/tech-design-doc/description_en.txt +1 -0
  547. package/skills/tech-design-doc/description_es.txt +1 -0
  548. package/skills/tech-design-doc/description_fr.txt +1 -0
  549. package/skills/tech-design-doc/description_it.txt +1 -0
  550. package/skills/tech-design-doc/description_ja.txt +1 -0
  551. package/skills/tech-design-doc/description_ko.txt +1 -0
  552. package/skills/tech-design-doc/description_ru.txt +1 -0
  553. package/skills/tech-design-doc/description_tw.txt +1 -0
  554. package/skills/tech-design-doc/stats.json +4 -0
  555. package/skills/test-driven-development/SKILL.md +320 -0
  556. package/skills/test-driven-development/testing-anti-patterns.md +299 -0
  557. package/skills/test-driven-development/writing-good-tests.md +198 -0
  558. package/skills/test-fixing/SKILL.md +121 -0
  559. package/skills/test-master/SKILL.md +94 -0
  560. package/skills/test-master/references/automation-frameworks.md +294 -0
  561. package/skills/test-master/references/e2e-testing.md +128 -0
  562. package/skills/test-master/references/integration-testing.md +120 -0
  563. package/skills/test-master/references/performance-testing.md +118 -0
  564. package/skills/test-master/references/qa-methodology.md +247 -0
  565. package/skills/test-master/references/security-testing.md +127 -0
  566. package/skills/test-master/references/tdd-iron-laws.md +174 -0
  567. package/skills/test-master/references/test-reports.md +104 -0
  568. package/skills/test-master/references/testing-anti-patterns.md +231 -0
  569. package/skills/test-master/references/unit-testing.md +113 -0
  570. package/skills/to-spec/SKILL.md +75 -0
  571. package/skills/to-spec/agents/openai.yaml +5 -0
  572. package/skills/to-tickets/SKILL.md +105 -0
  573. package/skills/to-tickets/agents/openai.yaml +5 -0
  574. package/skills/triage/AGENT-BRIEF.md +207 -0
  575. package/skills/triage/OUT-OF-SCOPE.md +105 -0
  576. package/skills/triage/SKILL.md +112 -0
  577. package/skills/triage/agents/openai.yaml +5 -0
  578. package/skills/ui-ux-pro-max/SKILL.md +43 -0
  579. package/skills/ui-ux-pro-max/_meta.json +6 -0
  580. package/skills/ui-ux-pro-max/assets/data/charts.csv +26 -0
  581. package/skills/ui-ux-pro-max/assets/data/colors.csv +97 -0
  582. package/skills/ui-ux-pro-max/assets/data/icons.csv +101 -0
  583. package/skills/ui-ux-pro-max/assets/data/landing.csv +31 -0
  584. package/skills/ui-ux-pro-max/assets/data/products.csv +97 -0
  585. package/skills/ui-ux-pro-max/assets/data/react-performance.csv +45 -0
  586. package/skills/ui-ux-pro-max/assets/data/stacks/astro.csv +54 -0
  587. package/skills/ui-ux-pro-max/assets/data/stacks/flutter.csv +53 -0
  588. package/skills/ui-ux-pro-max/assets/data/stacks/html-tailwind.csv +56 -0
  589. package/skills/ui-ux-pro-max/assets/data/stacks/jetpack-compose.csv +53 -0
  590. package/skills/ui-ux-pro-max/assets/data/stacks/nextjs.csv +53 -0
  591. package/skills/ui-ux-pro-max/assets/data/stacks/nuxt-ui.csv +51 -0
  592. package/skills/ui-ux-pro-max/assets/data/stacks/nuxtjs.csv +59 -0
  593. package/skills/ui-ux-pro-max/assets/data/stacks/react-native.csv +52 -0
  594. package/skills/ui-ux-pro-max/assets/data/stacks/react.csv +54 -0
  595. package/skills/ui-ux-pro-max/assets/data/stacks/shadcn.csv +61 -0
  596. package/skills/ui-ux-pro-max/assets/data/stacks/svelte.csv +54 -0
  597. package/skills/ui-ux-pro-max/assets/data/stacks/swiftui.csv +51 -0
  598. package/skills/ui-ux-pro-max/assets/data/stacks/vue.csv +50 -0
  599. package/skills/ui-ux-pro-max/assets/data/styles.csv +68 -0
  600. package/skills/ui-ux-pro-max/assets/data/typography.csv +58 -0
  601. package/skills/ui-ux-pro-max/assets/data/ui-reasoning.csv +101 -0
  602. package/skills/ui-ux-pro-max/assets/data/ux-guidelines.csv +100 -0
  603. package/skills/ui-ux-pro-max/assets/data/web-interface.csv +31 -0
  604. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  605. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  606. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  607. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  608. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  609. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  610. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  611. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  612. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  613. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  614. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  615. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  616. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  617. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  618. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  619. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  620. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  621. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  622. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  623. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  624. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  625. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  626. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  627. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  628. package/skills/ui-ux-pro-max/references/upstream-README.md +488 -0
  629. package/skills/ui-ux-pro-max/references/upstream-skill-content.md +288 -0
  630. package/skills/ui-ux-pro-max/scripts/__init__.py +0 -0
  631. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  632. package/skills/ui-ux-pro-max/scripts/design_system.py +1071 -0
  633. package/skills/ui-ux-pro-max/scripts/search.py +111 -0
  634. package/skills/using-git-worktrees/SKILL.md +167 -0
  635. package/skills/using-superpowers/SKILL.md +62 -0
  636. package/skills/using-superpowers/references/antigravity-tools.md +23 -0
  637. package/skills/using-superpowers/references/codex-tools.md +39 -0
  638. package/skills/using-superpowers/references/gemini-tools.md +63 -0
  639. package/skills/using-superpowers/references/pi-tools.md +16 -0
  640. package/skills/verification-before-completion/SKILL.md +120 -0
  641. package/skills/wait-what/SKILL.md +7 -0
  642. package/skills/wait-what/agents/openai.yaml +5 -0
  643. package/skills/wayfinder/SKILL.md +128 -0
  644. package/skills/wayfinder/agents/openai.yaml +5 -0
  645. package/skills/write-design-document-by-template/SKILL.md +97 -0
  646. 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
  647. package/skills/write-requirement-document-by-template/SKILL.md +98 -0
  648. 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
  649. package/skills/writing-great-skills/GLOSSARY.md +201 -0
  650. package/skills/writing-great-skills/SKILL.md +83 -0
  651. package/skills/writing-great-skills/agents/openai.yaml +5 -0
  652. package/skills/writing-plans/SKILL.md +168 -0
  653. package/skills/writing-plans/plan-document-reviewer-prompt.md +49 -0
  654. package/skills/writing-skills/SKILL.md +679 -0
  655. package/skills/writing-skills/anthropic-best-practices.md +1150 -0
  656. package/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  657. package/skills/writing-skills/graphviz-conventions.dot +172 -0
  658. package/skills/writing-skills/persuasion-principles.md +187 -0
  659. package/skills/writing-skills/render-graphs.js +168 -0
  660. package/skills/writing-skills/testing-skills-with-subagents.md +384 -0
@@ -0,0 +1,91 @@
1
+ # Rule Catalog — Architecture
2
+
3
+ ## Scope
4
+ - Covers: controller/service/core-domain/libs/model layering, dependency direction, responsibility placement, observability-friendly flow.
5
+
6
+ ## Rules
7
+
8
+ ### Keep business logic out of controllers
9
+ - Category: maintainability
10
+ - Severity: critical
11
+ - Description: Controllers should parse input, call services, and return serialized responses. Business decisions inside controllers make behavior hard to reuse and test.
12
+ - Suggested fix: Move domain/business logic into the service or core/domain layer. Keep controller handlers thin and orchestration-focused.
13
+ - Example:
14
+ - Bad:
15
+ ```python
16
+ @bp.post("/apps/<app_id>/publish")
17
+ def publish_app(app_id: str):
18
+ payload = request.get_json() or {}
19
+ if payload.get("force") and current_user.role != "admin":
20
+ raise ValueError("only admin can force publish")
21
+ app = App.query.get(app_id)
22
+ app.status = "published"
23
+ db.session.commit()
24
+ return {"result": "ok"}
25
+ ```
26
+ - Good:
27
+ ```python
28
+ @bp.post("/apps/<app_id>/publish")
29
+ def publish_app(app_id: str):
30
+ payload = PublishRequest.model_validate(request.get_json() or {})
31
+ app_service.publish_app(app_id=app_id, force=payload.force, actor_id=current_user.id)
32
+ return {"result": "ok"}
33
+ ```
34
+
35
+ ### Preserve layer dependency direction
36
+ - Category: best practices
37
+ - Severity: critical
38
+ - Description: Controllers may depend on services, and services may depend on core/domain abstractions. Reversing this direction (for example, core importing controller/web modules) creates cycles and leaks transport concerns into domain code.
39
+ - Suggested fix: Extract shared contracts into core/domain or service-level modules and make upper layers depend on lower, not the reverse.
40
+ - Example:
41
+ - Bad:
42
+ ```python
43
+ # core/policy/publish_policy.py
44
+ from controllers.console.app import request_context
45
+
46
+ def can_publish() -> bool:
47
+ return request_context.current_user.is_admin
48
+ ```
49
+ - Good:
50
+ ```python
51
+ # core/policy/publish_policy.py
52
+ def can_publish(role: str) -> bool:
53
+ return role == "admin"
54
+
55
+ # service layer adapts web/user context to domain input
56
+ allowed = can_publish(role=current_user.role)
57
+ ```
58
+
59
+ ### Keep libs business-agnostic
60
+ - Category: maintainability
61
+ - Severity: critical
62
+ - Description: Modules under `api/libs/` should remain reusable, business-agnostic building blocks. They must not encode product/domain-specific rules, workflow orchestration, or business decisions.
63
+ - Suggested fix:
64
+ - If business logic appears in `api/libs/`, extract it into the appropriate `services/` or `core/` module and keep `libs` focused on generic, cross-cutting helpers.
65
+ - Keep `libs` dependencies clean: avoid importing service/controller/domain-specific modules into `api/libs/`.
66
+ - Example:
67
+ - Bad:
68
+ ```python
69
+ # api/libs/conversation_filter.py
70
+ from services.conversation_service import ConversationService
71
+
72
+ def should_archive_conversation(conversation, tenant_id: str) -> bool:
73
+ # Domain policy and service dependency are leaking into libs.
74
+ service = ConversationService()
75
+ if service.has_paid_plan(tenant_id):
76
+ return conversation.idle_days > 90
77
+ return conversation.idle_days > 30
78
+ ```
79
+ - Good:
80
+ ```python
81
+ # api/libs/datetime_utils.py (business-agnostic helper)
82
+ def older_than_days(idle_days: int, threshold_days: int) -> bool:
83
+ return idle_days > threshold_days
84
+
85
+ # services/conversation_service.py (business logic stays in service/core)
86
+ from libs.datetime_utils import older_than_days
87
+
88
+ def should_archive_conversation(conversation, tenant_id: str) -> bool:
89
+ threshold_days = 90 if has_paid_plan(tenant_id) else 30
90
+ return older_than_days(conversation.idle_days, threshold_days)
91
+ ```
@@ -0,0 +1,157 @@
1
+ # Rule Catalog — DB Schema Design
2
+
3
+ ## Scope
4
+ - Covers: model/base inheritance, schema boundaries in model properties, tenant-aware schema design, index redundancy checks, dialect portability in models, and cross-database compatibility in migrations.
5
+ - Does NOT cover: session lifecycle, transaction boundaries, and query execution patterns (handled by `sqlalchemy-rule.md`).
6
+
7
+ ## Rules
8
+
9
+ ### Do not query other tables inside `@property`
10
+ - Category: [maintainability, performance]
11
+ - Severity: critical
12
+ - Description: A model `@property` must not open sessions or query other tables. This hides dependencies across models, tightly couples schema objects to data access, and can cause N+1 query explosions when iterating collections.
13
+ - Suggested fix:
14
+ - Keep model properties pure and local to already-loaded fields.
15
+ - Move cross-table data fetching to service/repository methods.
16
+ - For list/batch reads, fetch required related data explicitly (join/preload/bulk query) before rendering derived values.
17
+ - Example:
18
+ - Bad:
19
+ ```python
20
+ class Conversation(TypeBase):
21
+ __tablename__ = "conversations"
22
+
23
+ @property
24
+ def app_name(self) -> str:
25
+ with Session(db.engine, expire_on_commit=False) as session:
26
+ app = session.execute(select(App).where(App.id == self.app_id)).scalar_one()
27
+ return app.name
28
+ ```
29
+ - Good:
30
+ ```python
31
+ class Conversation(TypeBase):
32
+ __tablename__ = "conversations"
33
+
34
+ @property
35
+ def display_title(self) -> str:
36
+ return self.name or "Untitled"
37
+
38
+
39
+ # Service/repository layer performs explicit batch fetch for related App rows.
40
+ ```
41
+
42
+ ### Prefer including `tenant_id` in model definitions
43
+ - Category: maintainability
44
+ - Severity: suggestion
45
+ - Description: In multi-tenant domains, include `tenant_id` in schema definitions whenever the entity belongs to tenant-owned data. This improves data isolation safety and keeps future partitioning/sharding strategies practical as data volume grows.
46
+ - Suggested fix:
47
+ - Add a `tenant_id` column and ensure related unique/index constraints include tenant dimension when applicable.
48
+ - Propagate `tenant_id` through service/repository contracts to keep access paths tenant-aware.
49
+ - Exception: if a table is explicitly designed as non-tenant-scoped global metadata, document that design decision clearly.
50
+ - Example:
51
+ - Bad:
52
+ ```python
53
+ from sqlalchemy.orm import Mapped
54
+
55
+ class Dataset(TypeBase):
56
+ __tablename__ = "datasets"
57
+ id: Mapped[str] = mapped_column(StringUUID, primary_key=True)
58
+ name: Mapped[str] = mapped_column(sa.String(255), nullable=False)
59
+ ```
60
+ - Good:
61
+ ```python
62
+ from sqlalchemy.orm import Mapped
63
+
64
+ class Dataset(TypeBase):
65
+ __tablename__ = "datasets"
66
+ id: Mapped[str] = mapped_column(StringUUID, primary_key=True)
67
+ tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False, index=True)
68
+ name: Mapped[str] = mapped_column(sa.String(255), nullable=False)
69
+ ```
70
+
71
+ ### Detect and avoid duplicate/redundant indexes
72
+ - Category: performance
73
+ - Severity: suggestion
74
+ - Description: Review index definitions for leftmost-prefix redundancy. For example, index `(a, b, c)` can safely cover most lookups for `(a, b)`. Keeping both may increase write overhead and can mislead the optimizer into suboptimal execution plans.
75
+ - Suggested fix:
76
+ - Before adding an index, compare against existing composite indexes by leftmost-prefix rules.
77
+ - Drop or avoid creating redundant prefixes unless there is a proven query-pattern need.
78
+ - Apply the same review standard in both model `__table_args__` and migration index DDL.
79
+ - Example:
80
+ - Bad:
81
+ ```python
82
+ __table_args__ = (
83
+ sa.Index("idx_msg_tenant_app", "tenant_id", "app_id"),
84
+ sa.Index("idx_msg_tenant_app_created", "tenant_id", "app_id", "created_at"),
85
+ )
86
+ ```
87
+ - Good:
88
+ ```python
89
+ __table_args__ = (
90
+ # Keep the wider index unless profiling proves a dedicated short index is needed.
91
+ sa.Index("idx_msg_tenant_app_created", "tenant_id", "app_id", "created_at"),
92
+ )
93
+ ```
94
+
95
+ ### Avoid PostgreSQL-only dialect usage in models; wrap in `models.types`
96
+ - Category: maintainability
97
+ - Severity: critical
98
+ - Description: Model/schema definitions should avoid PostgreSQL-only constructs directly in business models. When database-specific behavior is required, encapsulate it in `api/models/types.py` using both PostgreSQL and MySQL dialect implementations, then consume that abstraction from model code.
99
+ - Suggested fix:
100
+ - Do not directly place dialect-only types/operators in model columns when a portable wrapper can be used.
101
+ - Add or extend wrappers in `models.types` (for example, `AdjustedJSON`, `LongText`, `BinaryData`) to normalize behavior across PostgreSQL and MySQL.
102
+ - Example:
103
+ - Bad:
104
+ ```python
105
+ from sqlalchemy.dialects.postgresql import JSONB
106
+ from sqlalchemy.orm import Mapped
107
+
108
+ class ToolConfig(TypeBase):
109
+ __tablename__ = "tool_configs"
110
+ config: Mapped[dict] = mapped_column(JSONB, nullable=False)
111
+ ```
112
+ - Good:
113
+ ```python
114
+ from sqlalchemy.orm import Mapped
115
+
116
+ from models.types import AdjustedJSON
117
+
118
+ class ToolConfig(TypeBase):
119
+ __tablename__ = "tool_configs"
120
+ config: Mapped[dict] = mapped_column(AdjustedJSON(), nullable=False)
121
+ ```
122
+
123
+ ### Guard migration incompatibilities with dialect checks and shared types
124
+ - Category: maintainability
125
+ - Severity: critical
126
+ - Description: Migration scripts under `api/migrations/versions/` must account for PostgreSQL/MySQL incompatibilities explicitly. For dialect-sensitive DDL or defaults, branch on the active dialect (for example, `conn.dialect.name == "postgresql"`), and prefer reusable compatibility abstractions from `models.types` where applicable.
127
+ - Suggested fix:
128
+ - In migration upgrades/downgrades, bind connection and branch by dialect for incompatible SQL fragments.
129
+ - Reuse `models.types` wrappers in column definitions when that keeps behavior aligned with runtime models.
130
+ - Avoid one-dialect-only migration logic unless there is a documented, deliberate compatibility exception.
131
+ - Example:
132
+ - Bad:
133
+ ```python
134
+ with op.batch_alter_table("dataset_keyword_tables") as batch_op:
135
+ batch_op.add_column(
136
+ sa.Column(
137
+ "data_source_type",
138
+ sa.String(255),
139
+ server_default=sa.text("'database'::character varying"),
140
+ nullable=False,
141
+ )
142
+ )
143
+ ```
144
+ - Good:
145
+ ```python
146
+ def _is_pg(conn) -> bool:
147
+ return conn.dialect.name == "postgresql"
148
+
149
+
150
+ conn = op.get_bind()
151
+ default_expr = sa.text("'database'::character varying") if _is_pg(conn) else sa.text("'database'")
152
+
153
+ with op.batch_alter_table("dataset_keyword_tables") as batch_op:
154
+ batch_op.add_column(
155
+ sa.Column("data_source_type", sa.String(255), server_default=default_expr, nullable=False)
156
+ )
157
+ ```
@@ -0,0 +1,61 @@
1
+ # Rule Catalog - Repositories Abstraction
2
+
3
+ ## Scope
4
+ - Covers: when to reuse existing repository abstractions, when to introduce new repositories, and how to preserve dependency direction between service/core and infrastructure implementations.
5
+ - Does NOT cover: SQLAlchemy session lifecycle and query-shape specifics (handled by `sqlalchemy-rule.md`), and table schema/migration design (handled by `db-schema-rule.md`).
6
+
7
+ ## Rules
8
+
9
+ ### Introduce repositories abstraction
10
+ - Category: maintainability
11
+ - Severity: suggestion
12
+ - Description: If a table/model already has a repository abstraction, all reads/writes/queries for that table should use the existing repository. If no repository exists, introduce one only when complexity justifies it, such as large/high-volume tables, repeated complex query logic, or likely storage-strategy variation.
13
+ - Suggested fix:
14
+ - First check `api/repositories`, `api/core/repositories`, and `api/extensions/*/repositories/` to verify whether the table/model already has a repository abstraction. If it exists, route all operations through it and add missing repository methods instead of bypassing it with ad-hoc SQLAlchemy access.
15
+ - If no repository exists, add one only when complexity warrants it (for example, repeated complex queries, large data domains, or multiple storage strategies), while preserving dependency direction (service/core depends on abstraction; infra provides implementation).
16
+ - Example:
17
+ - Bad:
18
+ ```python
19
+ # Existing repository is ignored and service uses ad-hoc table queries.
20
+ class AppService:
21
+ def archive_app(self, app_id: str, tenant_id: str) -> None:
22
+ app = self.session.execute(
23
+ select(App).where(App.id == app_id, App.tenant_id == tenant_id)
24
+ ).scalar_one()
25
+ app.archived = True
26
+ self.session.commit()
27
+ ```
28
+ - Good:
29
+ ```python
30
+ # Case A: Existing repository must be reused for all table operations.
31
+ class AppService:
32
+ def archive_app(self, app_id: str, tenant_id: str) -> None:
33
+ app = self.app_repo.get_by_id(app_id=app_id, tenant_id=tenant_id)
34
+ app.archived = True
35
+ self.app_repo.save(app)
36
+
37
+ # If the query is missing, extend the existing abstraction.
38
+ active_apps = self.app_repo.list_active_for_tenant(tenant_id=tenant_id)
39
+ ```
40
+ - Bad:
41
+ ```python
42
+ # No repository exists, but large-domain query logic is scattered in service code.
43
+ class ConversationService:
44
+ def list_recent_for_app(self, app_id: str, tenant_id: str, limit: int) -> list[Conversation]:
45
+ ...
46
+ # many filters/joins/pagination variants duplicated across services
47
+ ```
48
+ - Good:
49
+ ```python
50
+ # Case B: Introduce repository for large/complex domains or storage variation.
51
+ class ConversationRepository(Protocol):
52
+ def list_recent_for_app(self, app_id: str, tenant_id: str, limit: int) -> list[Conversation]: ...
53
+
54
+ class SqlAlchemyConversationRepository:
55
+ def list_recent_for_app(self, app_id: str, tenant_id: str, limit: int) -> list[Conversation]:
56
+ ...
57
+
58
+ class ConversationService:
59
+ def __init__(self, conversation_repo: ConversationRepository):
60
+ self.conversation_repo = conversation_repo
61
+ ```
@@ -0,0 +1,139 @@
1
+ # Rule Catalog — SQLAlchemy Patterns
2
+
3
+ ## Scope
4
+ - Covers: SQLAlchemy session and transaction lifecycle, query construction, tenant scoping, raw SQL boundaries, and write-path concurrency safeguards.
5
+ - Does NOT cover: table/model schema and migration design details (handled by `db-schema-rule.md`).
6
+
7
+ ## Rules
8
+
9
+ ### Use Session context manager with explicit transaction control behavior
10
+ - Category: best practices
11
+ - Severity: critical
12
+ - Description: Session and transaction lifecycle must be explicit and bounded on write paths. Missing commits can silently drop intended updates, while ad-hoc or long-lived transactions increase contention, lock duration, and deadlock risk.
13
+ - Suggested fix:
14
+ - Use **explicit `session.commit()`** after completing a related write unit.
15
+ - Or use **`session.begin()` context manager** for automatic commit/rollback on a scoped block.
16
+ - Keep transaction windows short: avoid network I/O, heavy computation, or unrelated work inside the transaction.
17
+ - Example:
18
+ - Bad:
19
+ ```python
20
+ # Missing commit: write may never be persisted.
21
+ with Session(db.engine, expire_on_commit=False) as session:
22
+ run = session.get(WorkflowRun, run_id)
23
+ run.status = "cancelled"
24
+
25
+ # Long transaction: external I/O inside a DB transaction.
26
+ with Session(db.engine, expire_on_commit=False) as session, session.begin():
27
+ run = session.get(WorkflowRun, run_id)
28
+ run.status = "cancelled"
29
+ call_external_api()
30
+ ```
31
+ - Good:
32
+ ```python
33
+ # Option 1: explicit commit.
34
+ with Session(db.engine, expire_on_commit=False) as session:
35
+ run = session.get(WorkflowRun, run_id)
36
+ run.status = "cancelled"
37
+ session.commit()
38
+
39
+ # Option 2: scoped transaction with automatic commit/rollback.
40
+ with Session(db.engine, expire_on_commit=False) as session, session.begin():
41
+ run = session.get(WorkflowRun, run_id)
42
+ run.status = "cancelled"
43
+
44
+ # Keep non-DB work outside transaction scope.
45
+ call_external_api()
46
+ ```
47
+
48
+ ### Enforce tenant_id scoping on shared-resource queries
49
+ - Category: security
50
+ - Severity: critical
51
+ - Description: Reads and writes against shared tables must be scoped by `tenant_id` to prevent cross-tenant data leakage or corruption.
52
+ - Suggested fix: Add `tenant_id` predicate to all tenant-owned entity queries and propagate tenant context through service/repository interfaces.
53
+ - Example:
54
+ - Bad:
55
+ ```python
56
+ stmt = select(Workflow).where(Workflow.id == workflow_id)
57
+ workflow = session.execute(stmt).scalar_one_or_none()
58
+ ```
59
+ - Good:
60
+ ```python
61
+ stmt = select(Workflow).where(
62
+ Workflow.id == workflow_id,
63
+ Workflow.tenant_id == tenant_id,
64
+ )
65
+ workflow = session.execute(stmt).scalar_one_or_none()
66
+ ```
67
+
68
+ ### Prefer SQLAlchemy expressions over raw SQL by default
69
+ - Category: maintainability
70
+ - Severity: suggestion
71
+ - Description: Raw SQL should be exceptional. ORM/Core expressions are easier to evolve, safer to compose, and more consistent with the codebase.
72
+ - Suggested fix: Rewrite straightforward raw SQL into SQLAlchemy `select/update/delete` expressions; keep raw SQL only when required by clear technical constraints.
73
+ - Example:
74
+ - Bad:
75
+ ```python
76
+ row = session.execute(
77
+ text("SELECT * FROM workflows WHERE id = :id AND tenant_id = :tenant_id"),
78
+ {"id": workflow_id, "tenant_id": tenant_id},
79
+ ).first()
80
+ ```
81
+ - Good:
82
+ ```python
83
+ stmt = select(Workflow).where(
84
+ Workflow.id == workflow_id,
85
+ Workflow.tenant_id == tenant_id,
86
+ )
87
+ row = session.execute(stmt).scalar_one_or_none()
88
+ ```
89
+
90
+ ### Protect write paths with concurrency safeguards
91
+ - Category: quality
92
+ - Severity: critical
93
+ - Description: Multi-writer paths without explicit concurrency control can silently overwrite data. Choose the safeguard based on contention level, lock scope, and throughput cost instead of defaulting to one strategy.
94
+ - Suggested fix:
95
+ - **Optimistic locking**: Use when contention is usually low and retries are acceptable. Add a version (or updated_at) guard in `WHERE` and treat `rowcount == 0` as a conflict.
96
+ - **Redis distributed lock**: Use when the critical section spans multiple steps/processes (or includes non-DB side effects) and you need cross-worker mutual exclusion.
97
+ - **SELECT ... FOR UPDATE**: Use when contention is high on the same rows and strict in-transaction serialization is required. Keep transactions short to reduce lock wait/deadlock risk.
98
+ - In all cases, scope by `tenant_id` and verify affected row counts for conditional writes.
99
+ - Example:
100
+ - Bad:
101
+ ```python
102
+ # No tenant scope, no conflict detection, and no lock on a contested write path.
103
+ session.execute(update(WorkflowRun).where(WorkflowRun.id == run_id).values(status="cancelled"))
104
+ session.commit() # silently overwrites concurrent updates
105
+ ```
106
+ - Good:
107
+ ```python
108
+ # 1) Optimistic lock (low contention, retry on conflict)
109
+ result = session.execute(
110
+ update(WorkflowRun)
111
+ .where(
112
+ WorkflowRun.id == run_id,
113
+ WorkflowRun.tenant_id == tenant_id,
114
+ WorkflowRun.version == expected_version,
115
+ )
116
+ .values(status="cancelled", version=WorkflowRun.version + 1)
117
+ )
118
+ if result.rowcount == 0:
119
+ raise WorkflowStateConflictError("stale version, retry")
120
+
121
+ # 2) Redis distributed lock (cross-worker critical section)
122
+ lock_name = f"workflow_run_lock:{tenant_id}:{run_id}"
123
+ with redis_client.lock(lock_name, timeout=20):
124
+ session.execute(
125
+ update(WorkflowRun)
126
+ .where(WorkflowRun.id == run_id, WorkflowRun.tenant_id == tenant_id)
127
+ .values(status="cancelled")
128
+ )
129
+ session.commit()
130
+
131
+ # 3) Pessimistic lock with SELECT ... FOR UPDATE (high contention)
132
+ run = session.execute(
133
+ select(WorkflowRun)
134
+ .where(WorkflowRun.id == run_id, WorkflowRun.tenant_id == tenant_id)
135
+ .with_for_update()
136
+ ).scalar_one()
137
+ run.status = "cancelled"
138
+ session.commit()
139
+ ```