opencode-skills-collection 3.1.12 → 3.1.14

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 (770) hide show
  1. package/README.md +4 -6
  2. package/bundled-skills/.antigravity-install-manifest.json +195 -1
  3. package/bundled-skills/ab-testing/SKILL.md +368 -0
  4. package/bundled-skills/ab-testing/evals/evals.json +105 -0
  5. package/bundled-skills/ab-testing/references/sample-size-guide.md +263 -0
  6. package/bundled-skills/ab-testing/references/test-templates.md +277 -0
  7. package/bundled-skills/accint-commitments/SKILL.md +32 -0
  8. package/bundled-skills/accint-frames/SKILL.md +35 -0
  9. package/bundled-skills/accint-solve/SKILL.md +22 -192
  10. package/bundled-skills/add-app-clip/SKILL.md +297 -0
  11. package/bundled-skills/add-app-clip/agents/openai.yaml +4 -0
  12. package/bundled-skills/add-app-clip/references/native-module.md +96 -0
  13. package/bundled-skills/agent-memory/SKILL.md +84 -0
  14. package/bundled-skills/alternatives-pages/README.md +46 -0
  15. package/bundled-skills/alternatives-pages/SKILL.md +376 -0
  16. package/bundled-skills/analytics/SKILL.md +324 -0
  17. package/bundled-skills/analytics/evals/evals.json +90 -0
  18. package/bundled-skills/analytics/references/event-library.md +260 -0
  19. package/bundled-skills/analytics/references/ga4-implementation.md +300 -0
  20. package/bundled-skills/analytics/references/gtm-implementation.md +390 -0
  21. package/bundled-skills/anti-deception/SKILL.md +50 -0
  22. package/bundled-skills/api-analyzer/SKILL.md +101 -0
  23. package/bundled-skills/api-and-interface-design/SKILL.md +307 -0
  24. package/bundled-skills/api-designer/SKILL.md +167 -0
  25. package/bundled-skills/api-integration/SKILL.md +175 -0
  26. package/bundled-skills/api-onboarding/README.md +47 -0
  27. package/bundled-skills/api-onboarding/SKILL.md +473 -0
  28. package/bundled-skills/api-sdk-generator/SKILL.md +223 -0
  29. package/bundled-skills/appium-skill/SKILL.md +317 -0
  30. package/bundled-skills/applicationinsights-web-ts/SKILL.md +477 -0
  31. package/bundled-skills/automated-triage/SKILL.md +189 -0
  32. package/bundled-skills/aws-agentic-ai/SKILL.md +141 -0
  33. package/bundled-skills/aws-cdk-development/SKILL.md +275 -0
  34. package/bundled-skills/aws-cost-operations/SKILL.md +273 -0
  35. package/bundled-skills/aws-mcp-setup/SKILL.md +192 -0
  36. package/bundled-skills/aws-serverless-eda/SKILL.md +394 -0
  37. package/bundled-skills/aws-sst-development/SKILL.md +175 -0
  38. package/bundled-skills/azure-ai-language-conversations-py/SKILL.md +112 -0
  39. package/bundled-skills/azure-servicebus-rust/SKILL.md +182 -0
  40. package/bundled-skills/azure-storage-queue-rust/SKILL.md +178 -0
  41. package/bundled-skills/baseline-ui/SKILL.md +15 -10
  42. package/bundled-skills/before-you-build/SKILL.md +111 -0
  43. package/bundled-skills/brooks-audit/SKILL.md +49 -0
  44. package/bundled-skills/brooks-audit/architecture-guide.md +195 -0
  45. package/bundled-skills/brooks-audit/onboarding-guide.md +89 -0
  46. package/bundled-skills/brooks-debt/SKILL.md +42 -0
  47. package/bundled-skills/brooks-debt/debt-guide.md +125 -0
  48. package/bundled-skills/brooks-harness/SKILL.md +139 -0
  49. package/bundled-skills/brooks-review/SKILL.md +42 -0
  50. package/bundled-skills/brooks-review/pr-review-guide.md +163 -0
  51. package/bundled-skills/brooks-sweep/SKILL.md +44 -0
  52. package/bundled-skills/brooks-sweep/sweep-guide.md +264 -0
  53. package/bundled-skills/brooks-test/SKILL.md +41 -0
  54. package/bundled-skills/brooks-test/test-guide.md +147 -0
  55. package/bundled-skills/bug-hunt-swarm/SKILL.md +189 -0
  56. package/bundled-skills/bug-hunt-swarm/agents/openai.yaml +4 -0
  57. package/bundled-skills/building-native-ui/SKILL.md +77 -18
  58. package/bundled-skills/building-native-ui/agents/openai.yaml +4 -0
  59. package/bundled-skills/building-native-ui/references/animations.md +220 -0
  60. package/bundled-skills/building-native-ui/references/controls.md +270 -0
  61. package/bundled-skills/building-native-ui/references/form-sheet.md +253 -0
  62. package/bundled-skills/building-native-ui/references/gradients.md +106 -0
  63. package/bundled-skills/building-native-ui/references/icons.md +213 -0
  64. package/bundled-skills/building-native-ui/references/media.md +198 -0
  65. package/bundled-skills/building-native-ui/references/route-structure.md +229 -0
  66. package/bundled-skills/building-native-ui/references/search.md +248 -0
  67. package/bundled-skills/building-native-ui/references/storage.md +121 -0
  68. package/bundled-skills/building-native-ui/references/tabs.md +433 -0
  69. package/bundled-skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  70. package/bundled-skills/building-native-ui/references/visual-effects.md +197 -0
  71. package/bundled-skills/building-native-ui/references/webgpu-three.md +605 -0
  72. package/bundled-skills/building-native-ui/references/zoom-transitions.md +158 -0
  73. package/bundled-skills/changelog-updates/README.md +53 -0
  74. package/bundled-skills/changelog-updates/SKILL.md +552 -0
  75. package/bundled-skills/ci-cd-and-automation/SKILL.md +403 -0
  76. package/bundled-skills/claimable-postgres/SKILL.md +91 -59
  77. package/bundled-skills/co-marketing/SKILL.md +301 -0
  78. package/bundled-skills/co-marketing/evals/evals.json +84 -0
  79. package/bundled-skills/code-review-and-quality/SKILL.md +394 -0
  80. package/bundled-skills/code-showcase-core-components/SKILL.md +281 -0
  81. package/bundled-skills/code-showcase-react-ui-patterns/SKILL.md +306 -0
  82. package/bundled-skills/code-showcase-systematic-debugging/SKILL.md +167 -0
  83. package/bundled-skills/code-showcase-testing-patterns/SKILL.md +276 -0
  84. package/bundled-skills/code-simplification/SKILL.md +344 -0
  85. package/bundled-skills/community-building/README.md +102 -0
  86. package/bundled-skills/community-building/SKILL.md +415 -0
  87. package/bundled-skills/competitor-profiling/SKILL.md +427 -0
  88. package/bundled-skills/competitor-profiling/evals/evals.json +85 -0
  89. package/bundled-skills/competitor-profiling/references/templates.md +167 -0
  90. package/bundled-skills/competitor-profiling/references/tool-reference.md +179 -0
  91. package/bundled-skills/competitor-tracking/README.md +40 -0
  92. package/bundled-skills/competitor-tracking/SKILL.md +322 -0
  93. package/bundled-skills/context-engineering/SKILL.md +302 -0
  94. package/bundled-skills/cro/SKILL.md +202 -0
  95. package/bundled-skills/cro/evals/evals.json +111 -0
  96. package/bundled-skills/cro/references/experiments.md +248 -0
  97. package/bundled-skills/cro/references/form.md +422 -0
  98. package/bundled-skills/cron-doctor/scripts/cron-engine.js +10 -7
  99. package/bundled-skills/cucumber-skill/SKILL.md +235 -0
  100. package/bundled-skills/customer-research/SKILL.md +287 -0
  101. package/bundled-skills/customer-research/evals/evals.json +162 -0
  102. package/bundled-skills/customer-research/references/source-guides.md +401 -0
  103. package/bundled-skills/cypress-skill/SKILL.md +235 -0
  104. package/bundled-skills/debugging-and-error-recovery/SKILL.md +313 -0
  105. package/bundled-skills/debugging-code/SKILL.md +284 -0
  106. package/bundled-skills/debugging-code/references/advanced-techniques.md +50 -0
  107. package/bundled-skills/debugging-code/references/installing-debuggers.md +67 -0
  108. package/bundled-skills/debugging-code/scripts/install-dap.sh +87 -0
  109. package/bundled-skills/deprecation-and-migration/SKILL.md +219 -0
  110. package/bundled-skills/design-philosophy/SKILL.md +40 -0
  111. package/bundled-skills/design-philosophy/reference.md +19 -0
  112. package/bundled-skills/design-spatial/SKILL.md +271 -0
  113. package/bundled-skills/design-spatial/scripts/layout-audit.js +138 -0
  114. package/bundled-skills/design-system/SKILL.md +140 -0
  115. package/bundled-skills/design-system/references/motion-choreography.md +111 -0
  116. package/bundled-skills/design-thinking/SKILL.md +109 -0
  117. package/bundled-skills/design-ux/SKILL.md +75 -0
  118. package/bundled-skills/dev-to-hashnode/README.md +62 -0
  119. package/bundled-skills/dev-to-hashnode/SKILL.md +399 -0
  120. package/bundled-skills/developer-advocacy/README.md +102 -0
  121. package/bundled-skills/developer-advocacy/SKILL.md +423 -0
  122. package/bundled-skills/developer-audience-context/README.md +61 -0
  123. package/bundled-skills/developer-audience-context/SKILL.md +271 -0
  124. package/bundled-skills/developer-audience-context/references/example-apitest.md +175 -0
  125. package/bundled-skills/developer-audience-context/references/template.md +152 -0
  126. package/bundled-skills/developer-churn/README.md +80 -0
  127. package/bundled-skills/developer-churn/SKILL.md +652 -0
  128. package/bundled-skills/developer-listening/README.md +30 -0
  129. package/bundled-skills/developer-listening/SKILL.md +232 -0
  130. package/bundled-skills/developer-newsletter/README.md +84 -0
  131. package/bundled-skills/developer-newsletter/SKILL.md +376 -0
  132. package/bundled-skills/developer-onboarding/README.md +35 -0
  133. package/bundled-skills/developer-onboarding/SKILL.md +530 -0
  134. package/bundled-skills/developer-sandbox/README.md +47 -0
  135. package/bundled-skills/developer-sandbox/SKILL.md +504 -0
  136. package/bundled-skills/developer-seo/README.md +36 -0
  137. package/bundled-skills/developer-seo/SKILL.md +296 -0
  138. package/bundled-skills/developer-signup-flow/README.md +36 -0
  139. package/bundled-skills/developer-signup-flow/SKILL.md +397 -0
  140. package/bundled-skills/devrel-content/README.md +81 -0
  141. package/bundled-skills/devrel-content/SKILL.md +428 -0
  142. package/bundled-skills/dispatch/SKILL.md +130 -0
  143. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  144. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  145. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  146. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  147. package/bundled-skills/docs/users/bundles.md +1 -1
  148. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  149. package/bundled-skills/docs/users/faq.md +1 -1
  150. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  151. package/bundled-skills/docs/users/getting-started.md +1 -1
  152. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  153. package/bundled-skills/docs/users/usage.md +8 -8
  154. package/bundled-skills/docs/users/visual-guide.md +8 -8
  155. package/bundled-skills/docs-as-marketing/README.md +37 -0
  156. package/bundled-skills/docs-as-marketing/SKILL.md +398 -0
  157. package/bundled-skills/documentation-and-adrs/SKILL.md +291 -0
  158. package/bundled-skills/doubt-driven-development/SKILL.md +256 -0
  159. package/bundled-skills/eas-update-insights/SKILL.md +232 -0
  160. package/bundled-skills/eas-update-insights/agents/openai.yaml +4 -0
  161. package/bundled-skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  162. package/bundled-skills/eas-update-insights/references/update-insights-schema.md +69 -0
  163. package/bundled-skills/expo-api-routes/SKILL.md +9 -5
  164. package/bundled-skills/expo-api-routes/agents/openai.yaml +4 -0
  165. package/bundled-skills/expo-brownfield/SKILL.md +71 -0
  166. package/bundled-skills/expo-brownfield/agents/openai.yaml +4 -0
  167. package/bundled-skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  168. package/bundled-skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  169. package/bundled-skills/expo-brownfield/references/comparison.md +63 -0
  170. package/bundled-skills/expo-brownfield/references/troubleshooting.md +88 -0
  171. package/bundled-skills/expo-cicd-workflows/SKILL.md +18 -16
  172. package/bundled-skills/expo-cicd-workflows/agents/openai.yaml +4 -0
  173. package/bundled-skills/expo-cicd-workflows/scripts/fetch.js +109 -0
  174. package/bundled-skills/expo-cicd-workflows/scripts/package.json +11 -0
  175. package/bundled-skills/expo-cicd-workflows/scripts/validate.js +84 -0
  176. package/bundled-skills/expo-deployment/SKILL.md +157 -53
  177. package/bundled-skills/expo-deployment/agents/openai.yaml +4 -0
  178. package/bundled-skills/expo-deployment/references/app-store-metadata.md +497 -0
  179. package/bundled-skills/expo-deployment/references/ios-app-store.md +371 -0
  180. package/bundled-skills/expo-deployment/references/play-store.md +246 -0
  181. package/bundled-skills/expo-deployment/references/testflight.md +58 -0
  182. package/bundled-skills/expo-deployment/references/workflows.md +160 -0
  183. package/bundled-skills/expo-dev-client/SKILL.md +25 -14
  184. package/bundled-skills/expo-dev-client/agents/openai.yaml +4 -0
  185. package/bundled-skills/expo-examples/SKILL.md +111 -0
  186. package/bundled-skills/expo-examples/references/catalog.md +105 -0
  187. package/bundled-skills/expo-module/SKILL.md +152 -0
  188. package/bundled-skills/expo-module/agents/openai.yaml +4 -0
  189. package/bundled-skills/expo-module/references/config-plugin.md +90 -0
  190. package/bundled-skills/expo-module/references/create-expo-module.md +206 -0
  191. package/bundled-skills/expo-module/references/lifecycle.md +127 -0
  192. package/bundled-skills/expo-module/references/module-config.md +48 -0
  193. package/bundled-skills/expo-module/references/native-module.md +286 -0
  194. package/bundled-skills/expo-module/references/native-view.md +171 -0
  195. package/bundled-skills/expo-observe/SKILL.md +44 -0
  196. package/bundled-skills/expo-observe/references/metrics.md +47 -0
  197. package/bundled-skills/expo-observe/references/queries.md +342 -0
  198. package/bundled-skills/expo-observe/references/setup.md +255 -0
  199. package/bundled-skills/expo-tailwind-setup/SKILL.md +13 -10
  200. package/bundled-skills/expo-tailwind-setup/agents/openai.yaml +4 -0
  201. package/bundled-skills/expo-ui/SKILL.md +61 -0
  202. package/bundled-skills/expo-ui/agents/openai.yaml +4 -0
  203. package/bundled-skills/expo-ui/references/drop-in-replacements.md +27 -0
  204. package/bundled-skills/expo-ui/references/jetpack-compose.md +73 -0
  205. package/bundled-skills/expo-ui/references/swift-ui.md +73 -0
  206. package/bundled-skills/expo-ui/references/universal.md +73 -0
  207. package/bundled-skills/expo-ui/scripts/list-components.js +193 -0
  208. package/bundled-skills/faf-context/SKILL.md +106 -0
  209. package/bundled-skills/faf-go/SKILL.md +336 -0
  210. package/bundled-skills/fixing-accessibility/SKILL.md +16 -5
  211. package/bundled-skills/fixing-metadata/SKILL.md +18 -8
  212. package/bundled-skills/fixing-motion-performance/SKILL.md +17 -6
  213. package/bundled-skills/formik-patterns/SKILL.md +379 -0
  214. package/bundled-skills/free-tier-strategy/README.md +39 -0
  215. package/bundled-skills/free-tier-strategy/SKILL.md +462 -0
  216. package/bundled-skills/frontend-architecture/SKILL.md +419 -0
  217. package/bundled-skills/frontend-data-contracts/SKILL.md +331 -0
  218. package/bundled-skills/frontend-observability/SKILL.md +434 -0
  219. package/bundled-skills/frontend-optimistic-mutations/SKILL.md +278 -0
  220. package/bundled-skills/frontend-seo/SKILL.md +710 -0
  221. package/bundled-skills/frontend-slides-frontend-slides/SKILL.md +397 -0
  222. package/bundled-skills/frontend-ui-engineering/SKILL.md +341 -0
  223. package/bundled-skills/gemini-api-dev/SKILL.md +96 -53
  224. package/bundled-skills/gemini-live-api-dev/SKILL.md +339 -0
  225. package/bundled-skills/gemini-omni-flash-api/SKILL.md +335 -0
  226. package/bundled-skills/gemini-omni-flash-api/scripts/upload_file.py +218 -0
  227. package/bundled-skills/gemini-omni-flash-api/scripts/video/generate_video.py +439 -0
  228. package/bundled-skills/gemini-omni-flash-api/scripts/video/inspect_video.py +197 -0
  229. package/bundled-skills/gemini-omni-flash-api/scripts/video/prep_video.py +255 -0
  230. package/bundled-skills/gh-image/SKILL.md +10 -2
  231. package/bundled-skills/git-workflow-and-versioning/SKILL.md +313 -0
  232. package/bundled-skills/github-presence/README.md +67 -0
  233. package/bundled-skills/github-presence/SKILL.md +484 -0
  234. package/bundled-skills/graphql-schema/SKILL.md +309 -0
  235. package/bundled-skills/hf-mcp/SKILL.md +195 -0
  236. package/bundled-skills/hf-mem/SKILL.md +92 -0
  237. package/bundled-skills/hugging-face-cli/SKILL.md +155 -115
  238. package/bundled-skills/hugging-face-community-evals/SKILL.md +14 -7
  239. package/bundled-skills/hugging-face-dataset-viewer/SKILL.md +30 -37
  240. package/bundled-skills/hugging-face-gradio/SKILL.md +14 -7
  241. package/bundled-skills/hugging-face-model-trainer/SKILL.md +42 -11
  242. package/bundled-skills/hugging-face-model-trainer/references/gguf_conversion.md +5 -0
  243. package/bundled-skills/hugging-face-model-trainer/scripts/convert_to_gguf.py +57 -51
  244. package/bundled-skills/hugging-face-model-trainer/scripts/hf_benchmarks.py +659 -0
  245. package/bundled-skills/hugging-face-paper-publisher/SKILL.md +13 -6
  246. package/bundled-skills/hugging-face-papers/SKILL.md +12 -5
  247. package/bundled-skills/hugging-face-trackio/SKILL.md +11 -5
  248. package/bundled-skills/hugging-face-vision-trainer/SKILL.md +11 -5
  249. package/bundled-skills/huggingface-best/SKILL.md +143 -0
  250. package/bundled-skills/huggingface-local-models/SKILL.md +130 -0
  251. package/bundled-skills/huggingface-local-models/references/hardware.md +38 -0
  252. package/bundled-skills/huggingface-local-models/references/hub-discovery.md +178 -0
  253. package/bundled-skills/huggingface-local-models/references/quantization.md +256 -0
  254. package/bundled-skills/huggingface-lora-space-builder/SKILL.md +409 -0
  255. package/bundled-skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  256. package/bundled-skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  257. package/bundled-skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  258. package/bundled-skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  259. package/bundled-skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  260. package/bundled-skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  261. package/bundled-skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +194 -0
  262. package/bundled-skills/huggingface-spaces/SKILL.md +247 -0
  263. package/bundled-skills/huggingface-spaces/references/buckets.md +89 -0
  264. package/bundled-skills/huggingface-spaces/references/debugging.md +234 -0
  265. package/bundled-skills/huggingface-spaces/references/gradio.md +171 -0
  266. package/bundled-skills/huggingface-spaces/references/grants.md +56 -0
  267. package/bundled-skills/huggingface-spaces/references/inference-providers.md +85 -0
  268. package/bundled-skills/huggingface-spaces/references/known-errors.md +232 -0
  269. package/bundled-skills/huggingface-spaces/references/requirements.md +153 -0
  270. package/bundled-skills/huggingface-spaces/references/zerogpu.md +276 -0
  271. package/bundled-skills/huggingface-tool-builder/SKILL.md +137 -0
  272. package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  273. package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  274. package/bundled-skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  275. package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  276. package/bundled-skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  277. package/bundled-skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  278. package/bundled-skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  279. package/bundled-skills/huggingface-zerogpu/SKILL.md +306 -0
  280. package/bundled-skills/huggingface-zerogpu/references/concurrency.md +79 -0
  281. package/bundled-skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  282. package/bundled-skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  283. package/bundled-skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  284. package/bundled-skills/hugo-to-markdown/SKILL.md +201 -0
  285. package/bundled-skills/hugo-to-markdown/agents/openai.yaml +4 -0
  286. package/bundled-skills/hugo-to-markdown/references/conversion-workflow.md +143 -0
  287. package/bundled-skills/hugo-to-markdown/references/front-matter-and-content.md +145 -0
  288. package/bundled-skills/hugo-to-markdown/references/links-assets-and-validation.md +106 -0
  289. package/bundled-skills/hugo-to-markdown/references/shortcodes-and-render-hooks.md +281 -0
  290. package/bundled-skills/hugo-to-markdown/scripts/check_standard_markdown.py +70 -0
  291. package/bundled-skills/hugo-to-markdown/scripts/inventory_hugo_rules.py +188 -0
  292. package/bundled-skills/hyperexecute-skill/SKILL.md +65 -0
  293. package/bundled-skills/idea-refine/SKILL.md +195 -0
  294. package/bundled-skills/idea-refine/examples.md +238 -0
  295. package/bundled-skills/idea-refine/frameworks.md +99 -0
  296. package/bundled-skills/idea-refine/refinement-criteria.md +113 -0
  297. package/bundled-skills/idea-refine/scripts/idea-refine.sh +15 -0
  298. package/bundled-skills/implement/SKILL.md +32 -0
  299. package/bundled-skills/incremental-implementation/SKILL.md +262 -0
  300. package/bundled-skills/jest-skill/SKILL.md +182 -0
  301. package/bundled-skills/junit-5-skill/SKILL.md +236 -0
  302. package/bundled-skills/logic-diff/SKILL.md +50 -0
  303. package/bundled-skills/logic-diff/logic-diff-guide.md +75 -0
  304. package/bundled-skills/logic-explain/SKILL.md +50 -0
  305. package/bundled-skills/logic-explain/logic-explain-guide.md +74 -0
  306. package/bundled-skills/logic-fix-all/SKILL.md +87 -0
  307. package/bundled-skills/logic-fix-all/guide-phases-0-2-consent-scope-health.md +113 -0
  308. package/bundled-skills/logic-fix-all/guide-phases-3-5-review-locate-clarify.md +47 -0
  309. package/bundled-skills/logic-fix-all/guide-phases-6-9-fix-iterate-report.md +143 -0
  310. package/bundled-skills/logic-fix-all/logic-fix-all-guide.md +60 -0
  311. package/bundled-skills/logic-locate/SKILL.md +52 -0
  312. package/bundled-skills/logic-locate/logic-locate-guide.md +85 -0
  313. package/bundled-skills/logic-review/SKILL.md +100 -0
  314. package/bundled-skills/logic-review/logic-review-guide.md +296 -0
  315. package/bundled-skills/longbridge-content/SKILL.md +87 -0
  316. package/bundled-skills/longbridge-fundamentals/SKILL.md +134 -0
  317. package/bundled-skills/longbridge-market-data/SKILL.md +129 -0
  318. package/bundled-skills/loopy/SKILL.md +289 -0
  319. package/bundled-skills/loopy/agents/openai.yaml +4 -0
  320. package/bundled-skills/loopy/references/audit.md +61 -0
  321. package/bundled-skills/loopy/references/debrief.md +43 -0
  322. package/bundled-skills/loopy/references/discover.md +72 -0
  323. package/bundled-skills/loopy/references/publish.md +65 -0
  324. package/bundled-skills/loopy/references/run.md +73 -0
  325. package/bundled-skills/marketing-plan/SKILL.md +283 -0
  326. package/bundled-skills/marketing-plan/evals/evals.json +96 -0
  327. package/bundled-skills/marketing-plan/references/aarrr-framework.md +180 -0
  328. package/bundled-skills/marketing-plan/references/budget-planning.md +168 -0
  329. package/bundled-skills/marketing-plan/references/client-types.md +373 -0
  330. package/bundled-skills/marketing-plan/references/current-state-rubric.md +255 -0
  331. package/bundled-skills/marketing-plan/references/example-quietude.md +972 -0
  332. package/bundled-skills/marketing-plan/references/funding-stage-unlocks.md +230 -0
  333. package/bundled-skills/marketing-plan/references/growth-patterns.md +148 -0
  334. package/bundled-skills/marketing-plan/references/idea-cross-reference.md +265 -0
  335. package/bundled-skills/marketing-plan/references/measurement-framework.md +213 -0
  336. package/bundled-skills/marketing-plan/references/methodology.md +363 -0
  337. package/bundled-skills/marketing-plan/references/ops-stack-mapping.md +197 -0
  338. package/bundled-skills/marketing-plan/references/plan-template.md +494 -0
  339. package/bundled-skills/marketing-plan/references/team-and-agency-model.md +278 -0
  340. package/bundled-skills/mdpr-skill/SKILL.md +233 -0
  341. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +229 -0
  342. package/bundled-skills/monte-carlo-asset-health/SKILL.md +200 -0
  343. package/bundled-skills/monte-carlo-monitoring-advisor/SKILL.md +317 -0
  344. package/bundled-skills/monte-carlo-performance-diagnosis/SKILL.md +153 -0
  345. package/bundled-skills/monte-carlo-remediation/SKILL.md +359 -0
  346. package/bundled-skills/monte-carlo-storage-cost-analysis/SKILL.md +162 -0
  347. package/bundled-skills/native-data-fetching/SKILL.md +11 -8
  348. package/bundled-skills/native-data-fetching/agents/openai.yaml +4 -0
  349. package/bundled-skills/native-data-fetching/references/expo-router-loaders.md +341 -0
  350. package/bundled-skills/neon-ai-gateway/SKILL.md +237 -0
  351. package/bundled-skills/neon-functions/SKILL.md +465 -0
  352. package/bundled-skills/neon-functions/references/ai-sdk.md +139 -0
  353. package/bundled-skills/neon-functions/references/hono-websockets.md +145 -0
  354. package/bundled-skills/neon-functions/references/mastra-studio.md +132 -0
  355. package/bundled-skills/neon-functions/references/mcp.md +137 -0
  356. package/bundled-skills/neon-functions/references/sentry.md +131 -0
  357. package/bundled-skills/neon-functions/references/sse.md +143 -0
  358. package/bundled-skills/neon-object-storage/SKILL.md +200 -0
  359. package/bundled-skills/neon-postgres/SKILL.md +234 -469
  360. package/bundled-skills/neon-postgres-branches/SKILL.md +292 -0
  361. package/bundled-skills/neon-postgres-egress-optimizer/SKILL.md +256 -0
  362. package/bundled-skills/newman-cicd-integration/SKILL.md +330 -0
  363. package/bundled-skills/observability-and-instrumentation/SKILL.md +216 -0
  364. package/bundled-skills/odw/SKILL.md +57 -0
  365. package/bundled-skills/offers/SKILL.md +168 -0
  366. package/bundled-skills/offers/references/bonus-stacking.md +150 -0
  367. package/bundled-skills/offers/references/examples.md +215 -0
  368. package/bundled-skills/offers/references/guarantee-design.md +172 -0
  369. package/bundled-skills/offers/references/offer-anatomy.md +203 -0
  370. package/bundled-skills/offers/references/offer-formats.md +240 -0
  371. package/bundled-skills/offers/references/scarcity-urgency.md +175 -0
  372. package/bundled-skills/offers/references/value-equation.md +134 -0
  373. package/bundled-skills/onboarding/SKILL.md +235 -0
  374. package/bundled-skills/onboarding/evals/evals.json +92 -0
  375. package/bundled-skills/onboarding/references/experiments.md +258 -0
  376. package/bundled-skills/open-source-marketing/README.md +100 -0
  377. package/bundled-skills/open-source-marketing/SKILL.md +466 -0
  378. package/bundled-skills/openapi-spec-generator/SKILL.md +335 -0
  379. package/bundled-skills/performance-optimization/SKILL.md +363 -0
  380. package/bundled-skills/planning-and-task-breakdown/SKILL.md +240 -0
  381. package/bundled-skills/polis-protocol-a-self-optimizing-city-of-agents/SKILL.md +170 -0
  382. package/bundled-skills/postgresql-cli/SKILL.md +498 -0
  383. package/bundled-skills/postgresql-cli/references/cli-options-and-variables.md +444 -0
  384. package/bundled-skills/postgresql-cli/references/meta-commands-core.md +466 -0
  385. package/bundled-skills/postgresql-cli/references/meta-commands-formatting.md +154 -0
  386. package/bundled-skills/postgresql-cli/references/meta-commands-inspection.md +134 -0
  387. package/bundled-skills/postgresql-cli/references/tips-advanced.md +289 -0
  388. package/bundled-skills/postgresql-cli/references/tips-workflows.md +407 -0
  389. package/bundled-skills/postman-collection-generator/SKILL.md +184 -0
  390. package/bundled-skills/postman-newman-automation/SKILL.md +311 -0
  391. package/bundled-skills/postman-openapi-converter/SKILL.md +174 -0
  392. package/bundled-skills/power-user-cultivation/README.md +78 -0
  393. package/bundled-skills/power-user-cultivation/SKILL.md +598 -0
  394. package/bundled-skills/pricing/SKILL.md +246 -0
  395. package/bundled-skills/pricing/evals/evals.json +90 -0
  396. package/bundled-skills/pricing/references/research-methods.md +152 -0
  397. package/bundled-skills/pricing/references/tier-structure.md +232 -0
  398. package/bundled-skills/privacy-mask/SKILL.md +96 -0
  399. package/bundled-skills/product-marketing/SKILL.md +256 -0
  400. package/bundled-skills/product-marketing/evals/evals.json +85 -0
  401. package/bundled-skills/public-relations/SKILL.md +146 -0
  402. package/bundled-skills/public-relations/references/journalist-pitching.md +368 -0
  403. package/bundled-skills/public-relations/references/media-outlets.md +207 -0
  404. package/bundled-skills/public-relations/references/newsjacking.md +218 -0
  405. package/bundled-skills/public-relations/references/press-platforms.md +188 -0
  406. package/bundled-skills/puppeteer-skill/SKILL.md +143 -0
  407. package/bundled-skills/pytest-skill/SKILL.md +201 -0
  408. package/bundled-skills/rclone-cli/SKILL.md +351 -0
  409. package/bundled-skills/rclone-cli/references/bisync.md +2003 -0
  410. package/bundled-skills/rclone-cli/references/cache.md +726 -0
  411. package/bundled-skills/rclone-cli/references/chunker.md +484 -0
  412. package/bundled-skills/rclone-cli/references/combine.md +187 -0
  413. package/bundled-skills/rclone-cli/references/commands/rclone.md +1169 -0
  414. package/bundled-skills/rclone-cli/references/commands/rclone_about.md +89 -0
  415. package/bundled-skills/rclone-cli/references/commands/rclone_archive.md +49 -0
  416. package/bundled-skills/rclone-cli/references/commands/rclone_archive_create.md +97 -0
  417. package/bundled-skills/rclone-cli/references/commands/rclone_archive_extract.md +83 -0
  418. package/bundled-skills/rclone-cli/references/commands/rclone_archive_list.md +98 -0
  419. package/bundled-skills/rclone-cli/references/commands/rclone_authorize.md +53 -0
  420. package/bundled-skills/rclone-cli/references/commands/rclone_backend.md +82 -0
  421. package/bundled-skills/rclone-cli/references/commands/rclone_bisync.md +160 -0
  422. package/bundled-skills/rclone-cli/references/commands/rclone_cat.md +122 -0
  423. package/bundled-skills/rclone-cli/references/commands/rclone_check.md +134 -0
  424. package/bundled-skills/rclone-cli/references/commands/rclone_checksum.md +120 -0
  425. package/bundled-skills/rclone-cli/references/commands/rclone_cleanup.md +49 -0
  426. package/bundled-skills/rclone-cli/references/commands/rclone_completion.md +40 -0
  427. package/bundled-skills/rclone-cli/references/commands/rclone_completion_bash.md +70 -0
  428. package/bundled-skills/rclone-cli/references/commands/rclone_completion_fish.md +57 -0
  429. package/bundled-skills/rclone-cli/references/commands/rclone_completion_powershell.md +49 -0
  430. package/bundled-skills/rclone-cli/references/commands/rclone_completion_zsh.md +57 -0
  431. package/bundled-skills/rclone-cli/references/commands/rclone_config.md +56 -0
  432. package/bundled-skills/rclone-cli/references/commands/rclone_config_create.md +150 -0
  433. package/bundled-skills/rclone-cli/references/commands/rclone_config_delete.md +33 -0
  434. package/bundled-skills/rclone-cli/references/commands/rclone_config_disconnect.md +40 -0
  435. package/bundled-skills/rclone-cli/references/commands/rclone_config_dump.md +33 -0
  436. package/bundled-skills/rclone-cli/references/commands/rclone_config_edit.md +39 -0
  437. package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption.md +36 -0
  438. package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_check.md +43 -0
  439. package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_remove.md +44 -0
  440. package/bundled-skills/rclone-cli/references/commands/rclone_config_encryption_set.md +54 -0
  441. package/bundled-skills/rclone-cli/references/commands/rclone_config_file.md +33 -0
  442. package/bundled-skills/rclone-cli/references/commands/rclone_config_password.md +49 -0
  443. package/bundled-skills/rclone-cli/references/commands/rclone_config_paths.md +33 -0
  444. package/bundled-skills/rclone-cli/references/commands/rclone_config_providers.md +33 -0
  445. package/bundled-skills/rclone-cli/references/commands/rclone_config_reconnect.md +40 -0
  446. package/bundled-skills/rclone-cli/references/commands/rclone_config_redacted.md +45 -0
  447. package/bundled-skills/rclone-cli/references/commands/rclone_config_show.md +33 -0
  448. package/bundled-skills/rclone-cli/references/commands/rclone_config_string.md +57 -0
  449. package/bundled-skills/rclone-cli/references/commands/rclone_config_touch.md +33 -0
  450. package/bundled-skills/rclone-cli/references/commands/rclone_config_update.md +150 -0
  451. package/bundled-skills/rclone-cli/references/commands/rclone_config_userinfo.md +38 -0
  452. package/bundled-skills/rclone-cli/references/commands/rclone_convmv.md +440 -0
  453. package/bundled-skills/rclone-cli/references/commands/rclone_copy.md +258 -0
  454. package/bundled-skills/rclone-cli/references/commands/rclone_copyto.md +219 -0
  455. package/bundled-skills/rclone-cli/references/commands/rclone_copyurl.md +91 -0
  456. package/bundled-skills/rclone-cli/references/commands/rclone_cryptcheck.md +141 -0
  457. package/bundled-skills/rclone-cli/references/commands/rclone_cryptdecode.md +51 -0
  458. package/bundled-skills/rclone-cli/references/commands/rclone_dedupe.md +166 -0
  459. package/bundled-skills/rclone-cli/references/commands/rclone_delete.md +117 -0
  460. package/bundled-skills/rclone-cli/references/commands/rclone_deletefile.md +50 -0
  461. package/bundled-skills/rclone-cli/references/commands/rclone_gendocs.md +39 -0
  462. package/bundled-skills/rclone-cli/references/commands/rclone_gitannex.md +113 -0
  463. package/bundled-skills/rclone-cli/references/commands/rclone_hashsum.md +120 -0
  464. package/bundled-skills/rclone-cli/references/commands/rclone_link.md +60 -0
  465. package/bundled-skills/rclone-cli/references/commands/rclone_listremotes.md +55 -0
  466. package/bundled-skills/rclone-cli/references/commands/rclone_ls.md +114 -0
  467. package/bundled-skills/rclone-cli/references/commands/rclone_lsd.md +127 -0
  468. package/bundled-skills/rclone-cli/references/commands/rclone_lsf.md +241 -0
  469. package/bundled-skills/rclone-cli/references/commands/rclone_lsjson.md +195 -0
  470. package/bundled-skills/rclone-cli/references/commands/rclone_lsl.md +115 -0
  471. package/bundled-skills/rclone-cli/references/commands/rclone_md5sum.md +96 -0
  472. package/bundled-skills/rclone-cli/references/commands/rclone_mkdir.md +43 -0
  473. package/bundled-skills/rclone-cli/references/commands/rclone_mount.md +1105 -0
  474. package/bundled-skills/rclone-cli/references/commands/rclone_move.md +223 -0
  475. package/bundled-skills/rclone-cli/references/commands/rclone_moveto.md +218 -0
  476. package/bundled-skills/rclone-cli/references/commands/rclone_ncdu.md +140 -0
  477. package/bundled-skills/rclone-cli/references/commands/rclone_nfsmount.md +1111 -0
  478. package/bundled-skills/rclone-cli/references/commands/rclone_obscure.md +60 -0
  479. package/bundled-skills/rclone-cli/references/commands/rclone_purge.md +58 -0
  480. package/bundled-skills/rclone-cli/references/commands/rclone_rc.md +111 -0
  481. package/bundled-skills/rclone-cli/references/commands/rclone_rcat.md +79 -0
  482. package/bundled-skills/rclone-cli/references/commands/rclone_rcd.md +219 -0
  483. package/bundled-skills/rclone-cli/references/commands/rclone_rmdir.md +52 -0
  484. package/bundled-skills/rclone-cli/references/commands/rclone_rmdirs.md +66 -0
  485. package/bundled-skills/rclone-cli/references/commands/rclone_selfupdate.md +91 -0
  486. package/bundled-skills/rclone-cli/references/commands/rclone_serve.md +61 -0
  487. package/bundled-skills/rclone-cli/references/commands/rclone_serve_dlna.md +619 -0
  488. package/bundled-skills/rclone-cli/references/commands/rclone_serve_docker.md +653 -0
  489. package/bundled-skills/rclone-cli/references/commands/rclone_serve_ftp.md +698 -0
  490. package/bundled-skills/rclone-cli/references/commands/rclone_serve_http.md +837 -0
  491. package/bundled-skills/rclone-cli/references/commands/rclone_serve_nfs.md +670 -0
  492. package/bundled-skills/rclone-cli/references/commands/rclone_serve_restic.md +246 -0
  493. package/bundled-skills/rclone-cli/references/commands/rclone_serve_s3.md +867 -0
  494. package/bundled-skills/rclone-cli/references/commands/rclone_serve_sftp.md +745 -0
  495. package/bundled-skills/rclone-cli/references/commands/rclone_serve_webdav.md +896 -0
  496. package/bundled-skills/rclone-cli/references/commands/rclone_settier.md +63 -0
  497. package/bundled-skills/rclone-cli/references/commands/rclone_sha1sum.md +99 -0
  498. package/bundled-skills/rclone-cli/references/commands/rclone_size.md +94 -0
  499. package/bundled-skills/rclone-cli/references/commands/rclone_sync.md +252 -0
  500. package/bundled-skills/rclone-cli/references/commands/rclone_test.md +51 -0
  501. package/bundled-skills/rclone-cli/references/commands/rclone_test_changenotify.md +34 -0
  502. package/bundled-skills/rclone-cli/references/commands/rclone_test_histogram.md +41 -0
  503. package/bundled-skills/rclone-cli/references/commands/rclone_test_info.md +51 -0
  504. package/bundled-skills/rclone-cli/references/commands/rclone_test_makefile.md +39 -0
  505. package/bundled-skills/rclone-cli/references/commands/rclone_test_makefiles.md +47 -0
  506. package/bundled-skills/rclone-cli/references/commands/rclone_test_memory.md +33 -0
  507. package/bundled-skills/rclone-cli/references/commands/rclone_test_speed.md +66 -0
  508. package/bundled-skills/rclone-cli/references/commands/rclone_touch.md +110 -0
  509. package/bundled-skills/rclone-cli/references/commands/rclone_tree.md +121 -0
  510. package/bundled-skills/rclone-cli/references/commands/rclone_version.md +83 -0
  511. package/bundled-skills/rclone-cli/references/crypt.md +844 -0
  512. package/bundled-skills/rclone-cli/references/docker.md +615 -0
  513. package/bundled-skills/rclone-cli/references/faq.md +364 -0
  514. package/bundled-skills/rclone-cli/references/filtering.md +991 -0
  515. package/bundled-skills/rclone-cli/references/flags.md +1221 -0
  516. package/bundled-skills/rclone-cli/references/hasher.md +383 -0
  517. package/bundled-skills/rclone-cli/references/install.md +686 -0
  518. package/bundled-skills/rclone-cli/references/overview.md +620 -0
  519. package/bundled-skills/rclone-cli/references/providers/alias.md +141 -0
  520. package/bundled-skills/rclone-cli/references/providers/archive.md +287 -0
  521. package/bundled-skills/rclone-cli/references/providers/azureblob.md +1140 -0
  522. package/bundled-skills/rclone-cli/references/providers/azurefiles.md +834 -0
  523. package/bundled-skills/rclone-cli/references/providers/b2.md +879 -0
  524. package/bundled-skills/rclone-cli/references/providers/box.md +573 -0
  525. package/bundled-skills/rclone-cli/references/providers/cloudinary.md +259 -0
  526. package/bundled-skills/rclone-cli/references/providers/compress.md +222 -0
  527. package/bundled-skills/rclone-cli/references/providers/drime.md +319 -0
  528. package/bundled-skills/rclone-cli/references/providers/drive.md +2032 -0
  529. package/bundled-skills/rclone-cli/references/providers/dropbox.md +661 -0
  530. package/bundled-skills/rclone-cli/references/providers/fichier.md +230 -0
  531. package/bundled-skills/rclone-cli/references/providers/filefabric.md +298 -0
  532. package/bundled-skills/rclone-cli/references/providers/filelu.md +256 -0
  533. package/bundled-skills/rclone-cli/references/providers/filen.md +243 -0
  534. package/bundled-skills/rclone-cli/references/providers/filescom.md +209 -0
  535. package/bundled-skills/rclone-cli/references/providers/ftp.md +621 -0
  536. package/bundled-skills/rclone-cli/references/providers/gofile.md +274 -0
  537. package/bundled-skills/rclone-cli/references/providers/googlecloudstorage.md +846 -0
  538. package/bundled-skills/rclone-cli/references/providers/googlephotos.md +676 -0
  539. package/bundled-skills/rclone-cli/references/providers/hdfs.md +263 -0
  540. package/bundled-skills/rclone-cli/references/providers/hidrive.md +487 -0
  541. package/bundled-skills/rclone-cli/references/providers/http.md +323 -0
  542. package/bundled-skills/rclone-cli/references/providers/iclouddrive.md +212 -0
  543. package/bundled-skills/rclone-cli/references/providers/internetarchive.md +355 -0
  544. package/bundled-skills/rclone-cli/references/providers/internxt.md +189 -0
  545. package/bundled-skills/rclone-cli/references/providers/jottacloud.md +604 -0
  546. package/bundled-skills/rclone-cli/references/providers/koofr.md +395 -0
  547. package/bundled-skills/rclone-cli/references/providers/linkbox.md +117 -0
  548. package/bundled-skills/rclone-cli/references/providers/local.md +749 -0
  549. package/bundled-skills/rclone-cli/references/providers/mailru.md +470 -0
  550. package/bundled-skills/rclone-cli/references/providers/mega.md +361 -0
  551. package/bundled-skills/rclone-cli/references/providers/memory.md +109 -0
  552. package/bundled-skills/rclone-cli/references/providers/netstorage.md +371 -0
  553. package/bundled-skills/rclone-cli/references/providers/onedrive.md +1322 -0
  554. package/bundled-skills/rclone-cli/references/providers/opendrive.md +222 -0
  555. package/bundled-skills/rclone-cli/references/providers/oracleobjectstorage/_index.md +932 -0
  556. package/bundled-skills/rclone-cli/references/providers/oracleobjectstorage/tutorial_mount.md +503 -0
  557. package/bundled-skills/rclone-cli/references/providers/pcloud.md +373 -0
  558. package/bundled-skills/rclone-cli/references/providers/pikpak.md +373 -0
  559. package/bundled-skills/rclone-cli/references/providers/pixeldrain.md +182 -0
  560. package/bundled-skills/rclone-cli/references/providers/premiumizeme.md +253 -0
  561. package/bundled-skills/rclone-cli/references/providers/protondrive.md +397 -0
  562. package/bundled-skills/rclone-cli/references/providers/putio.md +246 -0
  563. package/bundled-skills/rclone-cli/references/providers/qingstor.md +346 -0
  564. package/bundled-skills/rclone-cli/references/providers/quatrix.md +295 -0
  565. package/bundled-skills/rclone-cli/references/providers/s3.md +9687 -0
  566. package/bundled-skills/rclone-cli/references/providers/seafile.md +432 -0
  567. package/bundled-skills/rclone-cli/references/providers/sftp.md +1277 -0
  568. package/bundled-skills/rclone-cli/references/providers/shade.md +267 -0
  569. package/bundled-skills/rclone-cli/references/providers/sharefile.md +357 -0
  570. package/bundled-skills/rclone-cli/references/providers/sia.md +223 -0
  571. package/bundled-skills/rclone-cli/references/providers/smb.md +309 -0
  572. package/bundled-skills/rclone-cli/references/providers/storj.md +503 -0
  573. package/bundled-skills/rclone-cli/references/providers/sugarsync.md +305 -0
  574. package/bundled-skills/rclone-cli/references/providers/swift.md +744 -0
  575. package/bundled-skills/rclone-cli/references/providers/ulozto.md +283 -0
  576. package/bundled-skills/rclone-cli/references/providers/webdav.md +565 -0
  577. package/bundled-skills/rclone-cli/references/providers/yandex.md +283 -0
  578. package/bundled-skills/rclone-cli/references/providers/zoho.md +305 -0
  579. package/bundled-skills/rclone-cli/references/rc.md +2725 -0
  580. package/bundled-skills/rclone-cli/references/union.md +336 -0
  581. package/bundled-skills/rclone-cli/references/usage.md +3555 -0
  582. package/bundled-skills/rclone-cli/scripts/install.sh +204 -0
  583. package/bundled-skills/redis-cli/SKILL.md +392 -0
  584. package/bundled-skills/redis-cli/references/advanced-features.md +338 -0
  585. package/bundled-skills/redis-cli/references/connection-and-options.md +258 -0
  586. package/bundled-skills/redis-cli/references/data-query-commands.md +417 -0
  587. package/bundled-skills/redis-cli/references/inspection-and-monitoring.md +309 -0
  588. package/bundled-skills/redis-cli/references/key-management.md +252 -0
  589. package/bundled-skills/redis-cli/references/module-data-types.md +429 -0
  590. package/bundled-skills/redis-cli/references/server-administration.md +366 -0
  591. package/bundled-skills/repo-maintainer/SKILL.md +480 -0
  592. package/bundled-skills/resolving-merge-conflicts/SKILL.md +32 -0
  593. package/bundled-skills/review-and-simplify-changes/SKILL.md +202 -0
  594. package/bundled-skills/review-swarm/SKILL.md +185 -0
  595. package/bundled-skills/review-swarm/agents/openai.yaml +4 -0
  596. package/bundled-skills/riffkit/SKILL.md +122 -0
  597. package/bundled-skills/robot-framework-skill/SKILL.md +153 -0
  598. package/bundled-skills/sdk-dx/README.md +39 -0
  599. package/bundled-skills/sdk-dx/SKILL.md +541 -0
  600. package/bundled-skills/security-and-hardening/SKILL.md +474 -0
  601. package/bundled-skills/selenium-skill/SKILL.md +258 -0
  602. package/bundled-skills/shipping-and-launch/SKILL.md +323 -0
  603. package/bundled-skills/smartui-skill/SKILL.md +149 -0
  604. package/bundled-skills/source-driven-development/SKILL.md +207 -0
  605. package/bundled-skills/spec-driven-development/SKILL.md +217 -0
  606. package/bundled-skills/sql-sentinel/SKILL.md +12 -3
  607. package/bundled-skills/styleseed-design-review/SKILL.md +126 -0
  608. package/bundled-skills/supabase/CHANGELOG.md +35 -0
  609. package/bundled-skills/supabase/SKILL.md +149 -0
  610. package/bundled-skills/supabase/assets/feedback-issue-template.md +17 -0
  611. package/bundled-skills/supabase/references/skill-feedback.md +17 -0
  612. package/bundled-skills/supabase-postgres-best-practices/CHANGELOG.md +29 -0
  613. package/bundled-skills/supabase-postgres-best-practices/SKILL.md +74 -0
  614. package/bundled-skills/supabase-postgres-best-practices/references/_contributing.md +170 -0
  615. package/bundled-skills/supabase-postgres-best-practices/references/_sections.md +39 -0
  616. package/bundled-skills/supabase-postgres-best-practices/references/_template.md +34 -0
  617. package/bundled-skills/supabase-postgres-best-practices/references/advanced-full-text-search.md +55 -0
  618. package/bundled-skills/supabase-postgres-best-practices/references/advanced-jsonb-indexing.md +49 -0
  619. package/bundled-skills/supabase-postgres-best-practices/references/conn-idle-timeout.md +46 -0
  620. package/bundled-skills/supabase-postgres-best-practices/references/conn-limits.md +44 -0
  621. package/bundled-skills/supabase-postgres-best-practices/references/conn-pooling.md +41 -0
  622. package/bundled-skills/supabase-postgres-best-practices/references/conn-prepared-statements.md +46 -0
  623. package/bundled-skills/supabase-postgres-best-practices/references/data-batch-inserts.md +54 -0
  624. package/bundled-skills/supabase-postgres-best-practices/references/data-n-plus-one.md +53 -0
  625. package/bundled-skills/supabase-postgres-best-practices/references/data-pagination.md +50 -0
  626. package/bundled-skills/supabase-postgres-best-practices/references/data-upsert.md +50 -0
  627. package/bundled-skills/supabase-postgres-best-practices/references/lock-advisory.md +56 -0
  628. package/bundled-skills/supabase-postgres-best-practices/references/lock-deadlock-prevention.md +68 -0
  629. package/bundled-skills/supabase-postgres-best-practices/references/lock-short-transactions.md +50 -0
  630. package/bundled-skills/supabase-postgres-best-practices/references/lock-skip-locked.md +54 -0
  631. package/bundled-skills/supabase-postgres-best-practices/references/monitor-explain-analyze.md +45 -0
  632. package/bundled-skills/supabase-postgres-best-practices/references/monitor-pg-stat-statements.md +55 -0
  633. package/bundled-skills/supabase-postgres-best-practices/references/monitor-vacuum-analyze.md +55 -0
  634. package/bundled-skills/supabase-postgres-best-practices/references/query-composite-indexes.md +44 -0
  635. package/bundled-skills/supabase-postgres-best-practices/references/query-covering-indexes.md +40 -0
  636. package/bundled-skills/supabase-postgres-best-practices/references/query-index-types.md +48 -0
  637. package/bundled-skills/supabase-postgres-best-practices/references/query-missing-indexes.md +43 -0
  638. package/bundled-skills/supabase-postgres-best-practices/references/query-partial-indexes.md +45 -0
  639. package/bundled-skills/supabase-postgres-best-practices/references/schema-constraints.md +80 -0
  640. package/bundled-skills/supabase-postgres-best-practices/references/schema-data-types.md +46 -0
  641. package/bundled-skills/supabase-postgres-best-practices/references/schema-foreign-key-indexes.md +59 -0
  642. package/bundled-skills/supabase-postgres-best-practices/references/schema-lowercase-identifiers.md +55 -0
  643. package/bundled-skills/supabase-postgres-best-practices/references/schema-partitioning.md +55 -0
  644. package/bundled-skills/supabase-postgres-best-practices/references/schema-primary-keys.md +61 -0
  645. package/bundled-skills/supabase-postgres-best-practices/references/security-privileges.md +54 -0
  646. package/bundled-skills/supabase-postgres-best-practices/references/security-rls-basics.md +50 -0
  647. package/bundled-skills/supabase-postgres-best-practices/references/security-rls-performance.md +63 -0
  648. package/bundled-skills/swiftui-expert-skill/SKILL.md +175 -242
  649. package/bundled-skills/swiftui-expert-skill/references/accessibility-patterns.md +215 -0
  650. package/bundled-skills/swiftui-expert-skill/references/animation-advanced.md +428 -0
  651. package/bundled-skills/swiftui-expert-skill/references/animation-basics.md +284 -0
  652. package/bundled-skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
  653. package/bundled-skills/swiftui-expert-skill/references/charts-accessibility.md +135 -0
  654. package/bundled-skills/swiftui-expert-skill/references/charts.md +602 -0
  655. package/bundled-skills/swiftui-expert-skill/references/focus-patterns.md +299 -0
  656. package/bundled-skills/swiftui-expert-skill/references/image-optimization.md +203 -0
  657. package/bundled-skills/swiftui-expert-skill/references/latest-apis.md +528 -0
  658. package/bundled-skills/swiftui-expert-skill/references/layout-best-practices.md +266 -0
  659. package/bundled-skills/swiftui-expert-skill/references/liquid-glass.md +423 -0
  660. package/bundled-skills/swiftui-expert-skill/references/list-patterns.md +467 -0
  661. package/bundled-skills/swiftui-expert-skill/references/localization.md +194 -0
  662. package/bundled-skills/swiftui-expert-skill/references/macos-scenes.md +318 -0
  663. package/bundled-skills/swiftui-expert-skill/references/macos-views.md +357 -0
  664. package/bundled-skills/swiftui-expert-skill/references/macos-window-styling.md +303 -0
  665. package/bundled-skills/swiftui-expert-skill/references/performance-patterns.md +417 -0
  666. package/bundled-skills/swiftui-expert-skill/references/previews.md +313 -0
  667. package/bundled-skills/swiftui-expert-skill/references/scroll-patterns.md +293 -0
  668. package/bundled-skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +363 -0
  669. package/bundled-skills/swiftui-expert-skill/references/soft-deprecation.md +39 -0
  670. package/bundled-skills/swiftui-expert-skill/references/state-management.md +492 -0
  671. package/bundled-skills/swiftui-expert-skill/references/text-patterns.md +34 -0
  672. package/bundled-skills/swiftui-expert-skill/references/trace-analysis.md +295 -0
  673. package/bundled-skills/swiftui-expert-skill/references/trace-recording.md +134 -0
  674. package/bundled-skills/swiftui-expert-skill/references/view-structure.md +854 -0
  675. package/bundled-skills/swiftui-expert-skill/scripts/analyze_trace.py +301 -0
  676. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/__init__.py +1 -0
  677. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/causes.py +187 -0
  678. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/correlate.py +179 -0
  679. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/events.py +291 -0
  680. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/hangs.py +108 -0
  681. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/hitches.py +145 -0
  682. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/summary.py +243 -0
  683. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/swiftui.py +195 -0
  684. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/time_profiler.py +135 -0
  685. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/xctrace.py +117 -0
  686. package/bundled-skills/swiftui-expert-skill/scripts/instruments_parser/xml_utils.py +224 -0
  687. package/bundled-skills/swiftui-expert-skill/scripts/record_trace.py +252 -0
  688. package/bundled-skills/technical-tutorials/README.md +90 -0
  689. package/bundled-skills/technical-tutorials/SKILL.md +581 -0
  690. package/bundled-skills/test-framework-migration-skill/SKILL.md +122 -0
  691. package/bundled-skills/testng-skill/SKILL.md +163 -0
  692. package/bundled-skills/train-sentence-transformers/SKILL.md +118 -0
  693. package/bundled-skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  694. package/bundled-skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  695. package/bundled-skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  696. package/bundled-skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  697. package/bundled-skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  698. package/bundled-skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  699. package/bundled-skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  700. package/bundled-skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  701. package/bundled-skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  702. package/bundled-skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  703. package/bundled-skills/train-sentence-transformers/references/model_architectures.md +178 -0
  704. package/bundled-skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  705. package/bundled-skills/train-sentence-transformers/references/training_args.md +269 -0
  706. package/bundled-skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  707. package/bundled-skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  708. package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  709. package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  710. package/bundled-skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  711. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  712. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  713. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  714. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  715. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  716. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  717. package/bundled-skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  718. package/bundled-skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  719. package/bundled-skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  720. package/bundled-skills/transformers-js/SKILL.md +83 -29
  721. package/bundled-skills/transformers-js/references/CONFIGURATION.md +55 -7
  722. package/bundled-skills/transformers-js/references/EXAMPLES.md +98 -83
  723. package/bundled-skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  724. package/bundled-skills/transformers-js/references/PIPELINE_OPTIONS.md +31 -19
  725. package/bundled-skills/transformers-js/references/TEXT_GENERATION.md +18 -18
  726. package/bundled-skills/trl-training/SKILL.md +327 -0
  727. package/bundled-skills/tune-monitor/SKILL.md +268 -0
  728. package/bundled-skills/ui-a11y/SKILL.md +76 -68
  729. package/bundled-skills/ui-component/SKILL.md +54 -82
  730. package/bundled-skills/ui-lint/SKILL.md +111 -0
  731. package/bundled-skills/ui-motion/SKILL.md +181 -0
  732. package/bundled-skills/ui-page/SKILL.md +80 -90
  733. package/bundled-skills/ui-pattern/SKILL.md +50 -68
  734. package/bundled-skills/ui-review/SKILL.md +95 -77
  735. package/bundled-skills/ui-score/SKILL.md +145 -0
  736. package/bundled-skills/ui-setup/SKILL.md +196 -88
  737. package/bundled-skills/ui-skills-root/SKILL.md +72 -0
  738. package/bundled-skills/ui-tokens/SKILL.md +44 -52
  739. package/bundled-skills/ui-update/SKILL.md +167 -0
  740. package/bundled-skills/unslop-commit/SKILL.md +113 -0
  741. package/bundled-skills/unslop-file/SKILL.md +157 -0
  742. package/bundled-skills/unslop-review/SKILL.md +102 -0
  743. package/bundled-skills/update-swiftui-apis/SKILL.md +120 -0
  744. package/bundled-skills/update-swiftui-apis/references/scan-manifest.md +230 -0
  745. package/bundled-skills/upgrading-expo/SKILL.md +107 -82
  746. package/bundled-skills/upgrading-expo/agents/openai.yaml +4 -0
  747. package/bundled-skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  748. package/bundled-skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  749. package/bundled-skills/upgrading-expo/references/native-tabs.md +124 -0
  750. package/bundled-skills/upgrading-expo/references/new-architecture.md +79 -0
  751. package/bundled-skills/upgrading-expo/references/react-19.md +79 -0
  752. package/bundled-skills/upgrading-expo/references/react-compiler.md +59 -0
  753. package/bundled-skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  754. package/bundled-skills/usage-based-pricing/README.md +40 -0
  755. package/bundled-skills/usage-based-pricing/SKILL.md +547 -0
  756. package/bundled-skills/use-dom/SKILL.md +428 -0
  757. package/bundled-skills/use-dom/agents/openai.yaml +4 -0
  758. package/bundled-skills/ux-audit/SKILL.md +112 -44
  759. package/bundled-skills/ux-copy/SKILL.md +105 -73
  760. package/bundled-skills/ux-feedback/SKILL.md +106 -58
  761. package/bundled-skills/ux-flow/SKILL.md +51 -50
  762. package/bundled-skills/vitest-skill/SKILL.md +165 -0
  763. package/bundled-skills/weaviate/references/environment_requirements.md +4 -1
  764. package/bundled-skills/weaviate/scripts/weaviate_conn.py +51 -17
  765. package/bundled-skills/webdriverio-skill/SKILL.md +157 -0
  766. package/bundled-skills/wjttc-builder/SKILL.md +355 -0
  767. package/bundled-skills/wjttc-tester/SKILL.md +190 -0
  768. package/bundled-skills/youtube-notetaker/scripts/serve.py +20 -11
  769. package/package.json +1 -1
  770. package/skills_index.json +4404 -146
@@ -0,0 +1,137 @@
1
+ # Cross-Encoder Losses (reranker)
2
+
3
+ All losses live in `sentence_transformers.cross_encoder.losses`.
4
+
5
+ Cross-encoder losses fall into three families: **pointwise** (score each pair independently), **pairwise** (score pairs of pairs), and **listwise** (score a whole ranked list at once). Plus contrastive/distillation variants for specific setups.
6
+
7
+ ## Top-line decision table
8
+
9
+ | You have | Use | Family |
10
+ |---|---|---|
11
+ | `(query, passage, label)` with `label ∈ {0, 1}` or `[0, 1]` | `BinaryCrossEntropyLoss` | Pointwise |
12
+ | `(query, passage, class_id)` multi-class | `CrossEntropyLoss` | Pointwise |
13
+ | `(query, passage)` with implicit positives, want contrastive | `CachedMultipleNegativesRankingLoss` | Contrastive |
14
+ | `(query, passages, labels)` (one row per query, with parallel lists of candidate passages and their relevance scores) | `LambdaLoss` | Listwise |
15
+ | Same listwise shape, want well-tested simpler loss | `ListNetLoss` or `ListMLELoss` | Listwise |
16
+ | `(query, positive, negative)` pairwise | `RankNetLoss` | Pairwise |
17
+ | `(query, passage, teacher_score)` distillation from stronger reranker | `MSELoss` or `MarginMSELoss` | Distillation |
18
+
19
+ ## Pointwise losses
20
+
21
+ ### `BinaryCrossEntropyLoss`
22
+
23
+ **The default cross-encoder loss.** For `(query, passage, label)` where label is 0/1 or a continuous [0, 1] relevance score.
24
+
25
+ ```python
26
+ loss = BinaryCrossEntropyLoss(model, pos_weight=torch.tensor(5.0))
27
+ ```
28
+
29
+ - `pos_weight`: upweight positives when your dataset is imbalanced (e.g. 1 positive + N hard negatives). A good default is `pos_weight = num_hard_negatives`.
30
+ - Handles both binary labels and continuous relevance scores — if you have graded relevance (0.0, 0.5, 1.0) BCE still works.
31
+
32
+ ### `CrossEntropyLoss`
33
+
34
+ Multi-class classification over passages. Use with `CrossEncoder("...", num_labels=N)` where N is the number of classes (e.g. 3 for NLI: entailment / neutral / contradiction).
35
+
36
+ ## Contrastive losses (for reranker training)
37
+
38
+ ### `MultipleNegativesRankingLoss` (cross-encoder)
39
+
40
+ Contrastive training mirroring bi-encoder MNRL. Applies in-batch negatives: for each `(query, positive)`, every other `positive` in the batch is used as a negative.
41
+
42
+ - **Data**: `(query, positive)` or `(query, positive, negative_0, negative_1, ...)`.
43
+ - For CrossEncoder training, **prefer `BinaryCrossEntropyLoss` with mined hard negatives** as the default; MNRL is the fallback when you only have `(query, positive)` pairs and want to avoid a separate mining pass.
44
+
45
+ ### `CachedMultipleNegativesRankingLoss`
46
+
47
+ Cached variant (GradCache) — decouples per-device batch size from effective in-batch negatives, same as the bi-encoder cached version.
48
+
49
+ ```python
50
+ loss = CachedMultipleNegativesRankingLoss(model, mini_batch_size=16)
51
+ ```
52
+
53
+ - Incompatible with `gradient_checkpointing=True`.
54
+ - Key choice for training rerankers with effective batch 256+ on a single GPU.
55
+
56
+ ## Distillation losses
57
+
58
+ > **`activation_fn=nn.Identity()` is mandatory** for all distillation, listwise, and pairwise losses below — only `BinaryCrossEntropyLoss` and `CrossEntropyLoss` tolerate the default `Sigmoid`. The loss sees raw logits during training, but the model's `activation_fn` is applied at evaluation via `predict()`; the default `Sigmoid` (with `num_labels=1`) saturates raw logits >5 to ~1.0 inside `predict()`, silently collapsing eval ranking (training loss looks healthy while nDCG crashes from ~0.59 to ~0.14). Construct as `CrossEncoder("...", num_labels=1, activation_fn=torch.nn.Identity())`. See `troubleshooting.md` ("CrossEncoder eval nDCG crashes after distillation / listwise / pairwise training") for the failure-mode walkthrough.
59
+
60
+ ### `MSELoss` (cross-encoder)
61
+
62
+ Regress the student's output score to the teacher's score. Construct the model with `activation_fn=nn.Identity()` (see callout above).
63
+
64
+ - **Data**: `(query, passage, teacher_score)`.
65
+ - The teacher is typically a larger/stronger cross-encoder. Precompute its scores once, store as the label.
66
+
67
+ ### `MarginMSELoss` (cross-encoder)
68
+
69
+ Regress the **difference** between positive and negative scores against the teacher's margin. Typically gives better distillation than plain MSE.
70
+
71
+ - **Data**: `(query, positive, negative, score_diff)` where `score_diff = teacher_score(query, positive) - teacher_score(query, negative)`.
72
+ - Popular recipe for MS MARCO-style distillation.
73
+
74
+ ## Listwise losses
75
+
76
+ All listwise losses expect the dataset to have per-query **lists** of candidate passages and their scores — typically via a collator that groups rows by query.
77
+
78
+ > Listwise and pairwise losses below also require `activation_fn=nn.Identity()` (see the Distillation-section callout above).
79
+
80
+ ### `LambdaLoss`
81
+
82
+ The state-of-the-art listwise ranking loss. Optimizes a surrogate of nDCG via weighted pairwise comparisons.
83
+
84
+ **Data shape**: `(query, [doc1...docN], [score1...scoreN])` per row; One query, a list of candidate documents, and a parallel list of relevance scores. Use `mine_hard_negatives(..., output_format="labeled-list", ...)` to build this from `(query, positive)` pairs.
85
+
86
+ ```python
87
+ import torch.nn as nn
88
+ from sentence_transformers.cross_encoder.losses import LambdaLoss, NDCGLoss2PPScheme
89
+
90
+ model = CrossEncoder("...", num_labels=1, activation_fn=nn.Identity())
91
+ loss = LambdaLoss(model, weighting_scheme=NDCGLoss2PPScheme())
92
+ ```
93
+
94
+ - Strong default when you have multiple candidates per query and graded relevance.
95
+ - `weighting_scheme`: `NDCGLoss2PPScheme` (default), `NDCGLoss2Scheme`, `LambdaRankScheme`. The `NDCGLoss2PPScheme` default was shown to reach the strongest performance in the original LambdaLoss paper.
96
+
97
+ #### LambdaLoss-specific operational notes
98
+
99
+ - **OOM recovery order**: drop `mini_batch_size` first (chunking inside the loss preserves the K-list semantic), then `per_device_train_batch_size` paired with `gradient_accumulation_steps`, then reduce K (the per-query candidate-list length) only as a last resort. Lowering K changes the experiment; the others don't.
100
+ - **Tiny loss at large K is expected.** With `NDCGLoss2PPScheme`, the loss normalizes by the discount-weighted pair count — at K=128 the loss can scale to ~`1e-4` numerically. That's not "training broken"; read `eval_NanoBEIR_R100_mean_ndcg@10` (or your equivalent) instead of the training loss to judge progress.
101
+ - For very large K (>=128), the O(K²) weight buffer per query is materialized outside of the forward chunking, so even small `mini_batch_size` may not be enough. Consider scoring strategy: top-K hard negatives often beat random K.
102
+
103
+ ### `ListNetLoss`
104
+
105
+ Treats the ranking as a probability distribution (via softmax) and minimizes cross-entropy against the teacher distribution.
106
+
107
+ ### `ListMLELoss`
108
+
109
+ Maximum-likelihood estimation over permutations. Simpler than LambdaLoss; decent default.
110
+
111
+ ### `PListMLELoss`
112
+
113
+ Position-aware ListMLE — weights higher-ranked items more heavily. Often outperforms plain ListMLE on top-k metrics.
114
+
115
+ ### `RankNetLoss`
116
+
117
+ Pairwise classification: for each pair of candidates, predict which is ranked higher via cross-entropy.
118
+
119
+ - Simpler and faster than LambdaLoss.
120
+ - Scales quadratically with list length; not great for long candidate lists (>20).
121
+
122
+ ### `ADRMSELoss`
123
+
124
+ Alternative listwise formulation (Approx Discounted Rank MSE) from the Rank-DistiLLM paper. Same data shape as `LambdaLoss`. In practice LambdaLoss is the stronger default; `RankNetLoss` was reported as marginally more effective (~0.002 nDCG@10) than ADRMSELoss on the paper's LLM-distillation setup, and LambdaLoss generally beats both.
125
+
126
+ Hard-negative mining is essential for any contrastive reranker (random negatives teach nothing). See `dataset_formats.md` (Hard-negative mining section) and `../scripts/mine_hard_negatives.py`.
127
+
128
+ ## Gotchas
129
+
130
+ - **`BinaryCrossEntropyLoss` without `pos_weight`** when you have 5+ hard negatives per positive: the loss under-weights the positive signal. Set `pos_weight=num_hard_negatives`.
131
+ - **`CachedMultipleNegativesRankingLoss` + `gradient_checkpointing=True`**: crash. Pick one.
132
+ - **Listwise losses with wildly different list lengths per query**: some losses don't handle ragged lists well. Pad or truncate to a fixed length.
133
+ - **`MarginMSELoss` without precomputed teacher score diffs**: this loss needs the `score_diff` label column populated from a teacher pass; it does not compute the teacher internally.
134
+ - **Training a cross-encoder with `num_labels=1` then using `CrossEntropyLoss`**: mismatch — BCE is for num_labels=1, CE is for num_labels>=2.
135
+ - **Default `Sigmoid` activation under any non-BCE loss**: silently destroys eval ranking. Pass `activation_fn=torch.nn.Identity()` to `CrossEncoder(...)` for distillation, listwise, and pairwise losses (everything except BCE/CE). See the callouts in the Distillation and Listwise sections.
136
+ - **Custom CE head writing to the wrong feature key**: a custom scoring head must populate `features["scores"]` (not `features["sentence_embedding"]`). Otherwise `CrossEncoder.predict()` raises `KeyError: 'scores'` at inference time, even though training succeeds.
137
+ - **Loading a CE with a custom-class head fails from a different script**: if you defined a `class ClassifierHead(nn.Module)` inline in `train.py` and saved the model, `modules.json` records `__main__.ClassifierHead`. Loading via `CrossEncoder("path")` from any other entry point raises `ImportError: Module '__main__' does not define a 'ClassifierHead' attribute`. Either move the class into an importable file (`my_pkg/heads.py`), build the same shape from stock ST modules (`Dense + LayerNorm + Dense`), or document that the model is only loadable from the same script.
@@ -0,0 +1,246 @@
1
+ # Bi-Encoder Losses (SentenceTransformer)
2
+
3
+ All losses live in `sentence_transformers.sentence_transformer.losses`.
4
+
5
+ Losses are grouped by data shape. The #1 rule: **pick a loss that matches your data**, not the other way around.
6
+
7
+ ## Top-line decision table
8
+
9
+ | You have | Use |
10
+ |---|---|
11
+ | `(anchor, positive)` pairs | `MultipleNegativesRankingLoss` (or Cached variant for large batches) |
12
+ | `(anchor, positive, negative)` triplets | `MultipleNegativesRankingLoss` — it handles triplets natively |
13
+ | `(text1, text2, score)` with `score ∈ [-1, 1]` or `[0, 1]` | `CoSENTLoss` (strongly recommended) |
14
+ | `(text1, text2, label)` with `label ∈ {0, 1}` | `OnlineContrastiveLoss` |
15
+ | `(text, class_id)` single-column with integer class | `BatchAllTripletLoss` |
16
+ | `(query, positive, negative, score_diff)` | `MarginMSELoss` (distillation) |
17
+ | `(text, teacher_embedding)` | `MSELoss` (embedding distillation) |
18
+ | Want multiple output dims from one training | Wrap any of the above in `MatryoshkaLoss` |
19
+ | No labels at all, just sentences | `DenoisingAutoEncoderLoss` or `ContrastiveTensionLossInBatchNegatives` |
20
+
21
+ ## Contrastive losses (pairs + triplets, no labels)
22
+
23
+ ### `MultipleNegativesRankingLoss` (MNRL)
24
+
25
+ The default bi-encoder loss. Uses **in-batch negatives**: every other `positive` in the batch acts as a negative for the current `anchor`.
26
+
27
+ ```python
28
+ loss = MultipleNegativesRankingLoss(model, scale=20.0) # similarity_fct defaults to cos_sim
29
+ ```
30
+
31
+ - **Data**: `(anchor, positive)` or `(anchor, positive, negative)`. More columns = more explicit hard negatives per row.
32
+ - **Scale**: temperature. Default `scale=20.0` multiplies similarities by 20 (equivalent to softmax temperature 0.05). Tune only if cosine similarities end up saturated.
33
+ - **Critical**: set `batch_sampler=BatchSamplers.NO_DUPLICATES` on training args. Otherwise duplicate anchors create false negatives.
34
+ - **Tip**: batch size matters a lot — more in-batch negatives = better gradients.
35
+
36
+ ### `CachedMultipleNegativesRankingLoss`
37
+
38
+ Same loss, but with gradient caching (GradCache): forwards in mini-batches but computes the contrastive loss over the full batch. Use this when you want effective batch size of 256+ but your GPU can only fit 32 forwards.
39
+
40
+ ```python
41
+ loss = CachedMultipleNegativesRankingLoss(model, mini_batch_size=32)
42
+ ```
43
+
44
+ - **Incompatible with `gradient_checkpointing=True`**.
45
+ - Set `mini_batch_size` to whatever `per_device_train_batch_size` would be if you couldn't use this. Then crank the actual `per_device_train_batch_size` to what you want the effective batch to be (256+, 1024+).
46
+
47
+ ### `MultipleNegativesSymmetricRankingLoss`
48
+
49
+ MNRL computed bidirectionally — scores positives from both (anchor -> positive) and (positive -> anchor) directions. Slightly better on retrieval tasks where the "anchor" and "positive" distinctions are soft (paraphrase, deduplication).
50
+
51
+ ### `CachedMultipleNegativesSymmetricRankingLoss`
52
+
53
+ Cached variant of the above.
54
+
55
+ ### `GISTEmbedLoss`
56
+
57
+ Like MNRL, but uses a **guide model** (a separate pretrained Sentence Transformer) to **filter out false negatives** before computing the contrastive loss. The guide model scores each potential negative; if it looks too similar to the positive, it's excluded.
58
+
59
+ ```python
60
+ guide = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
61
+ loss = GISTEmbedLoss(model, guide=guide)
62
+ ```
63
+
64
+ - Expensive: guide model does a forward pass per batch.
65
+ - Strong when your in-batch negatives are noisy (e.g. small corpus with many near-duplicates).
66
+
67
+ ### `CachedGISTEmbedLoss`
68
+
69
+ Cached + GIST.
70
+
71
+ ### `MegaBatchMarginLoss`
72
+
73
+ In-batch margin-based triplet: for each anchor, find the hardest negative in the batch and apply a margin loss. Older pattern, usually outperformed by MNRL.
74
+
75
+ ### `TripletLoss`
76
+
77
+ Classic triplet margin loss on explicit `(anchor, positive, negative)`. Uses a fixed margin and the hardest in-batch is not considered — only the provided triplet.
78
+
79
+ ```python
80
+ loss = TripletLoss(model, distance_metric=TripletDistanceMetric.EUCLIDEAN, triplet_margin=5)
81
+ ```
82
+
83
+ - Simpler than MNRL; less powerful when the batch has useful negatives.
84
+ - Good for cases where you have *trusted* pre-mined triplets and want to avoid in-batch noise.
85
+
86
+ ## Batch-triplet losses (single column + integer label)
87
+
88
+ These mine triplets *within* the batch from samples sharing a label.
89
+
90
+ ### `BatchAllTripletLoss`
91
+
92
+ For each anchor, form triplets with all positive/negative combinations in the batch. Max signal per batch.
93
+
94
+ ```python
95
+ loss = BatchAllTripletLoss(model, margin=5)
96
+ ```
97
+
98
+ - **Data**: single text column + integer `label`. Needs multiple samples per label in each batch (set `batch_sampler=BatchSamplers.GROUP_BY_LABEL`).
99
+
100
+ ### `BatchHardTripletLoss`
101
+
102
+ Same, but only the single hardest positive + hardest negative per anchor.
103
+
104
+ ### `BatchSemiHardTripletLoss`
105
+
106
+ Semi-hard mining: negatives harder than the positive but easier than the margin. Often more stable than fully-hard.
107
+
108
+ ### `BatchHardSoftMarginTripletLoss`
109
+
110
+ Variant with a soft margin (log-sum-exp) instead of a fixed margin hinge.
111
+
112
+ **When to use batch-triplet losses**: classification-style datasets (labels are class IDs, not pair annotations). E.g. "train an embedder where samples from the same class are close."
113
+
114
+ ## Scored regression losses (labeled pairs, float score)
115
+
116
+ ### `CoSENTLoss`
117
+
118
+ **The recommended regression loss** for `(text1, text2, score)`. Trains on pairwise ranking: for any two pairs `(a, b)` and `(c, d)` with `score(a,b) > score(c,d)`, the model should score `(a, b)` higher. Much better than squared error.
119
+
120
+ ```python
121
+ loss = CoSENTLoss(model, scale=20.0)
122
+ ```
123
+
124
+ - **Data**: `(text1, text2, float_score)`. Labels can be `[0, 1]` or `[-1, 1]`.
125
+ - Works well with small datasets (STS-B, 5k pairs).
126
+
127
+ ### `AnglELoss`
128
+
129
+ Similar to CoSENT but uses angle-based optimization in complex space. Sometimes outperforms CoSENT on tasks with fine-grained similarity gradations. Strong alternative.
130
+
131
+ ### `CosineSimilarityLoss`
132
+
133
+ Squared-error loss on cosine similarity: `mse(cos(text1, text2), label)`. Simpler than CoSENT, usually worse. Keep for legacy / reproducibility.
134
+
135
+ ## Contrastive labeled losses (labeled pairs, binary label)
136
+
137
+ ### `ContrastiveLoss`
138
+
139
+ For `(text1, text2, label)` where `label ∈ {0, 1}`. Minimizes distance for positives; pushes negatives past a margin.
140
+
141
+ ```python
142
+ loss = ContrastiveLoss(model, margin=0.5, distance_metric=SiameseDistanceMetric.COSINE_DISTANCE)
143
+ ```
144
+
145
+ ### `OnlineContrastiveLoss`
146
+
147
+ Same setup but **ignores "easy" pairs** (positives already close, negatives already far) and only optimizes hard ones. Much more robust to label noise.
148
+
149
+ ```python
150
+ loss = OnlineContrastiveLoss(model, margin=0.5)
151
+ ```
152
+
153
+ **Preferred over `ContrastiveLoss`** for most practical labeled pair datasets.
154
+
155
+ ### `SoftmaxLoss`
156
+
157
+ A classifier head on concatenated `(u, v, |u-v|)` embeddings, trained with cross-entropy. Useful when you have NLI-style multi-class labels (entailment / neutral / contradiction) and want a categorical loss. Historically important (it trained the first popular sentence embedding models) but **generally outperformed by MNRL**.
158
+
159
+ ## Distillation losses
160
+
161
+ ### `MSELoss`
162
+
163
+ Regress the student's embedding to match a teacher's embedding.
164
+
165
+ - **Data**: `(text, teacher_embedding)`. The teacher embedding is a fixed vector per row.
166
+ - Use when distilling a smaller bi-encoder from a larger one.
167
+
168
+ ### `MarginMSELoss`
169
+
170
+ For `(query, positive, negative, score_diff)`: minimize `mse(student_score_diff, teacher_score_diff)`. The teacher is typically a cross-encoder that produced the score differences.
171
+
172
+ - **Data**: 3 text columns + 1 float column.
173
+ - Workhorse of dense retriever training from cross-encoder teachers (ms-marco distillation).
174
+
175
+ ### `DistillKLDivLoss`
176
+
177
+ KL-divergence distillation: student's softmax distribution over candidates should match teacher's.
178
+
179
+ - **Data**: `(query, passages[], teacher_scores[])`.
180
+ - Good for list-wise distillation when you have multiple candidates per query.
181
+
182
+ See `../scripts/train_sentence_transformer_distillation_example.py` for the end-to-end pattern (its docstring covers Embedding MSE / Margin MSE / Listwise KL with full recipes).
183
+
184
+ ## Regularizer / wrapper losses
185
+
186
+ These don't have their own data shape — they wrap another loss and add a regularization objective.
187
+
188
+ ### `MatryoshkaLoss`
189
+
190
+ Train **once**, deploy at any of several dimensions. Wraps any loss and computes it at multiple truncated dimensions, adding them weighted.
191
+
192
+ ```python
193
+ base_loss = MultipleNegativesRankingLoss(model)
194
+ loss = MatryoshkaLoss(
195
+ model,
196
+ base_loss,
197
+ matryoshka_dims=[768, 512, 256, 128, 64],
198
+ matryoshka_weights=[1, 1, 1, 1, 1], # relative weighting per dim
199
+ )
200
+ ```
201
+
202
+ - At inference, `SentenceTransformer(..., truncate_dim=128)` gives 128-dim output with ~95% of full quality.
203
+ - Default matryoshka_dims: pick the dims you want to deploy at. Smaller dims improve compression at the cost of slight quality drop.
204
+
205
+ ### `Matryoshka2dLoss`
206
+
207
+ 2D-Matryoshka: reduce dimension **and** number of transformer layers in a single wrapper. Internally composes `MatryoshkaLoss` + `AdaptiveLayerLoss`, so you only need this one (don't wrap it in AdaptiveLayerLoss yourself). Deploy at any (dim, layer) pair at inference.
208
+
209
+ ### `AdaptiveLayerLoss`
210
+
211
+ Wrap any loss; adds a term that trains each of the transformer's layers to be a valid exit point. Deploy with fewer layers at inference for faster encoding.
212
+
213
+ ```python
214
+ loss = AdaptiveLayerLoss(
215
+ model,
216
+ base_loss,
217
+ n_layers_per_step=1,
218
+ last_layer_weight=1.0,
219
+ prior_layers_weight=1.0,
220
+ )
221
+ ```
222
+
223
+ ### `GlobalOrthogonalRegularizationLoss` (GOR)
224
+
225
+ Stand-alone regularizer (not a wrapper, despite living in this section). Penalizes embedding pairs whose dot product deviates from orthogonality, encouraging the model to spread embeddings across the full vector space. Use it alongside a primary contrastive loss by summing the two outputs in your own training step; can help with downstream retrieval diversity.
226
+
227
+ ## Unsupervised losses
228
+
229
+ ### `DenoisingAutoEncoderLoss` (TSDAE)
230
+
231
+ Sentence-level denoising autoencoder: corrupt a sentence (drop tokens), force the model to reconstruct it. Pretraining-style — useful for domain adaptation when you have unlabeled in-domain sentences.
232
+
233
+ ### `ContrastiveTensionLoss`
234
+
235
+ Unsupervised contrastive: two copies of the model encode the same sentence; they should agree. Pure self-supervised.
236
+
237
+ ### `ContrastiveTensionLossInBatchNegatives`
238
+
239
+ CT with in-batch negatives. Stronger than vanilla CT.
240
+
241
+ ## Gotchas
242
+
243
+ - **`MultipleNegativesRankingLoss` without `BatchSamplers.NO_DUPLICATES`** will include duplicate anchors in the same batch, destroying training signal. Always set the sampler.
244
+ - **Any `Cached*` loss + `gradient_checkpointing=True` = crash.** Pick one.
245
+ - **`TripletLoss` with bad negatives** (too easy) = loss hits zero fast and model stops learning. Mine hard negatives first.
246
+ - **Matryoshka wrapping `CachedMultipleNegativesRankingLoss`**: supported, but the cached-loss's mini-batch semantics apply to the base loss only. Think twice before combining.
@@ -0,0 +1,106 @@
1
+ # Sparse-Encoder Losses (SPLADE)
2
+
3
+ All losses live in `sentence_transformers.sparse_encoder.losses`.
4
+
5
+ This reference targets the **SPLADE** architecture (Transformer + SpladePooling). The sparse-encoder package also exports `CSRLoss` and `CSRReconstructionLoss` for the CSR architecture (Transformer + Pooling + SparseAutoEncoder); those are out of scope here — see the sbert.net docs if you're training a CSR model.
6
+
7
+ Choosing a loss means (a) pick a base loss (contrastive, regression, distillation) and (b) wrap it in `SpladeLoss` to add FLOPS regularization.
8
+
9
+ ## Top-line decision table
10
+
11
+ | You have | Use |
12
+ |---|---|
13
+ | `(anchor, positive)` or triplet, SPLADE architecture | `SpladeLoss(loss=SparseMultipleNegativesRankingLoss(model), ...)` |
14
+ | Same, want effective batch size of 256+ | `CachedSpladeLoss(...)` |
15
+ | `(text1, text2, score)` labeled pairs | `SparseCoSENTLoss` or `SparseCosineSimilarityLoss` |
16
+ | Distillation from cross-encoder teacher | `SparseMarginMSELoss` |
17
+ | Listwise distillation | `SparseDistillKLDivLoss` |
18
+ | Explicit triplet | `SparseTripletLoss` |
19
+
20
+ ## The core wrapper: `SpladeLoss`
21
+
22
+ `SpladeLoss` adds **FLOPS regularization** on top of another sparse loss. FLOPS regularization penalizes non-zero activations, keeping embeddings genuinely sparse.
23
+
24
+ ```python
25
+ loss = SpladeLoss(
26
+ model=model,
27
+ loss=SparseMultipleNegativesRankingLoss(model=model),
28
+ query_regularizer_weight=5e-5,
29
+ document_regularizer_weight=3e-5,
30
+ )
31
+ ```
32
+
33
+ - `query_regularizer_weight`: how much to penalize non-zero terms in query embeddings.
34
+ - `document_regularizer_weight`: same for documents.
35
+ - Typical range: 1e-5 to 1e-4. Higher = sparser embeddings, lower recall; lower = denser, possibly better recall.
36
+ - `SparseEncoderTrainer` automatically registers a `SpladeRegularizerWeightSchedulerCallback` whenever the loss is a `SpladeLoss`. The callback ramps the weights from 0 up to the target over the first ~33% of training; the default shape is `SchedulerType.QUADRATIC` (not linear). The ramp length and shape are configured on the callback (`SpladeRegularizerWeightSchedulerCallback(loss=..., warmup_ratio=..., scheduler_type=...)`), not on `SpladeLoss`; to override, instantiate the callback yourself and pass it via `callbacks=[...]`. This ramp is important; starting with full regularization from step 0 kills learning.
37
+
38
+ Use `CachedSpladeLoss` for the GradCache variant.
39
+
40
+ ## Contrastive losses (no labels)
41
+
42
+ ### `SparseMultipleNegativesRankingLoss`
43
+
44
+ Sparse analog of bi-encoder MNRL. In-batch contrastive.
45
+
46
+ ```python
47
+ inner = SparseMultipleNegativesRankingLoss(model=model)
48
+ loss = SpladeLoss(model=model, loss=inner, query_regularizer_weight=5e-5, document_regularizer_weight=3e-5)
49
+ ```
50
+
51
+ - **Always wrap in `SpladeLoss`** for SPLADE architectures.
52
+ - Set `batch_sampler=BatchSamplers.NO_DUPLICATES` on training args.
53
+
54
+ ### `SparseTripletLoss`
55
+
56
+ Classic triplet margin loss on explicit `(anchor, positive, negative)`.
57
+
58
+ ## Labeled regression losses
59
+
60
+ ### `SparseCoSENTLoss`
61
+
62
+ Pairwise ranking loss for `(text1, text2, score)`. Mirrors bi-encoder `CoSENTLoss`.
63
+
64
+ ### `SparseCosineSimilarityLoss`
65
+
66
+ MSE on cosine similarity. Simpler, usually worse than CoSENT.
67
+
68
+ ### `SparseAnglELoss`
69
+
70
+ Angle-based loss in complex space. Alternative to CoSENT.
71
+
72
+ ## Distillation losses
73
+
74
+ ### `SparseMSELoss`
75
+
76
+ Embedding MSE. Student sparse embedding should match teacher embedding.
77
+
78
+ - **Data**: `(text, teacher_embedding)`.
79
+ - Teacher can be a dense bi-encoder or another sparse model.
80
+
81
+ ### `SparseMarginMSELoss`
82
+
83
+ Margin MSE from a cross-encoder teacher.
84
+
85
+ - **Data**: `(query, positive, negative, score_diff)` where `score_diff = teacher_score(query, positive) - teacher_score(query, negative)`.
86
+ - Typical recipe for training SPLADE from cross-encoder labels (ms-marco distillation).
87
+ - Wrap in `SpladeLoss(model, loss=SparseMarginMSELoss(model), ...)` for SPLADE.
88
+
89
+ ### `SparseDistillKLDivLoss`
90
+
91
+ Listwise KL-div distillation — student's softmax distribution over candidates should match teacher's.
92
+
93
+ ## Independent regularizer
94
+
95
+ ### `FlopsLoss`
96
+
97
+ Standalone FLOPS regularizer. Usually you use this via `SpladeLoss`, not directly.
98
+
99
+ For regularizer-weight tuning and dense-output recovery, see `troubleshooting.md` ("SPLADE embeddings are dense"). MLM-head requirement: `base_model_selection.md` (SPARSE section). Active-dim sparsity targets and how to monitor them: `evaluators_sparse_encoder.md` (Sparsity tracking).
100
+
101
+ ## Gotchas
102
+
103
+ - **`SparseMultipleNegativesRankingLoss` without `SpladeLoss` wrapping on a SPLADE model**: no FLOPS regularization -> dense outputs defeating the purpose of SPLADE. Always wrap.
104
+ - **`CachedSpladeLoss` + `gradient_checkpointing=True`**: crash. Pick one.
105
+ - **Starting training with full FLOPS regularization at step 0**: the model outputs zero everywhere and gets stuck. The built-in scheduler avoids this — don't override it unless you know why.
106
+ - **`query_regularizer_weight` == `document_regularizer_weight`**: usually wrong. Queries should be sparser than documents (fewer terms per query). Since higher regularization drives more zeros, give the query weight the larger value. `query_regularizer_weight=5e-5`, `document_regularizer_weight=3e-5` is a good starting ratio.
@@ -0,0 +1,178 @@
1
+ # Model Architectures (SentenceTransformer)
2
+
3
+ The `SentenceTransformer` class is a `torch.nn.Sequential` of modules. The common shape is `Transformer` + `Pooling` (+ optional `Normalize` / `Dense`), but four distinct architecture families are supported and the right choice depends on the task.
4
+
5
+ ## The four architecture families
6
+
7
+ | Family | Backbone | Pooling | Use case |
8
+ |---|---|---|---|
9
+ | **Encoder (bidirectional)** | BERT, RoBERTa, DeBERTa, MPNet, ModernBERT, XLM-R | `mean` (default) or `cls` | Short/medium text, general default |
10
+ | **Decoder (causal LLM)** | Qwen, Llama, Mistral, Gemma | `lasttoken` | Long context, instruction-tunable, larger quality ceiling |
11
+ | **Static embeddings** | `StaticEmbedding` module | N/A | CPU-only, <10MB, extremely fast |
12
+ | **Multimodal / Router** | VLM backbones or composed encoders | depends | Text + image / audio / video |
13
+
14
+ Below, each family with concrete setup.
15
+
16
+ ## Encoder models (the default)
17
+
18
+ The historical default and still usually the right choice for text embeddings.
19
+
20
+ ```python
21
+ from sentence_transformers import SentenceTransformer
22
+
23
+ model = SentenceTransformer("microsoft/mpnet-base")
24
+ # Auto-constructs: Transformer(feature-extraction) -> Pooling(mean).
25
+ ```
26
+
27
+ When `SentenceTransformer("<checkpoint>")` is called with a raw HF encoder, it auto-wraps the transformer and adds `Pooling(..., pooling_mode="mean")`.
28
+
29
+ To customize pooling or add modules:
30
+
31
+ ```python
32
+ from sentence_transformers import SentenceTransformer
33
+ from sentence_transformers.sentence_transformer.modules import Normalize, Pooling, Transformer
34
+
35
+ transformer = Transformer("answerdotai/ModernBERT-base")
36
+ pooling = Pooling(transformer.get_embedding_dimension(), pooling_mode="cls") # or "mean", "lasttoken", ...
37
+ model = SentenceTransformer(modules=[transformer, pooling, Normalize()])
38
+ ```
39
+
40
+ **Pooling modes**:
41
+ - `mean` (default) — average of token embeddings, masked to the attention mask. Strongest default.
42
+ - `cls` — embedding of the `[CLS]` token. Works if the base was CLS-pretrained.
43
+ - `max` — element-wise max across tokens. Rare.
44
+ - `mean_sqrt_len_tokens` — mean scaled by √seq_len. Empirically helps on some tasks.
45
+ - `weightedmean` — token-position-weighted mean. Useful for decoder bases as a non-last-token alternative.
46
+ - `lasttoken` — embedding of the last token. Required for causal-LM bases (see decoder section below).
47
+
48
+ Don't switch pooling mid-training. Pick once.
49
+
50
+ ## Decoder / causal LLM models
51
+
52
+ Strong at long context, instruction following, multilingual. Memory-hungry — typically LoRA-trained rather than full fine-tuned.
53
+
54
+ **Two setup paths depending on whether the model was already adapted for embeddings:**
55
+
56
+ ```python
57
+ # Path A: already-adapted embedding checkpoint (ships with the right modules):
58
+ from sentence_transformers import SentenceTransformer
59
+ model = SentenceTransformer("Qwen/Qwen3-Embedding-0.6B") # just works
60
+
61
+ # Path B: raw decoder LLM, build the pipeline manually:
62
+ from sentence_transformers import SentenceTransformer
63
+ from sentence_transformers.sentence_transformer.modules import Normalize, Pooling, Transformer
64
+
65
+ transformer = Transformer(
66
+ "Qwen/Qwen2.5-0.5B",
67
+ transformer_task="text-generation", # critical: causal attention, no bidirectional
68
+ processor_kwargs={"padding_side": "left"}, # last-token pooling wants left-padding
69
+ )
70
+ pooling = Pooling(transformer.get_embedding_dimension(), pooling_mode="lasttoken")
71
+ model = SentenceTransformer(modules=[transformer, pooling, Normalize()])
72
+ ```
73
+
74
+ Skipping `transformer_task="text-generation"` or `pooling_mode="lasttoken"` on a raw decoder gives embeddings that look plausible until you benchmark.
75
+
76
+ **Why last-token pooling:** causal attention means only the last token has seen the full sequence. Mean-pooling a causal model averages embeddings that only saw prefixes — the result doesn't represent the whole input.
77
+
78
+ For training decoder bases:
79
+ - Learning rate: typically `1e-4` or higher (not `2e-5` like encoders).
80
+ - LoRA is almost always the right choice for >1B-param bases; see `../scripts/train_sentence_transformer_with_lora_example.py` (its docstring covers when to use, hyperparams, QLoRA for 7B+, and adapter sharing).
81
+
82
+ ## Static embeddings
83
+
84
+ `StaticEmbedding` skips the transformer entirely — each token maps to a pre-computed vector via a lookup table. No attention, no contextualization.
85
+
86
+ **When to use:**
87
+ - CPU inference, no GPU, browser / edge / on-device deployment.
88
+ - Need <10MB model size.
89
+ - Latency budget <1ms per embedding.
90
+ - Have >1M training pairs (contextualization is replaced by per-token optimization; this takes data).
91
+
92
+ **When NOT to use:**
93
+ - Task needs contextual understanding (polysemy, syntax, long-range dependencies).
94
+ - You have <100k training pairs — the model won't learn enough.
95
+
96
+ **Setup:**
97
+
98
+ ```python
99
+ from sentence_transformers import SentenceTransformer
100
+ from sentence_transformers.sentence_transformer.modules import StaticEmbedding
101
+ from tokenizers import Tokenizer
102
+
103
+ tokenizer = Tokenizer.from_pretrained("google-bert/bert-base-uncased")
104
+ static_embedding = StaticEmbedding(tokenizer, embedding_dim=512)
105
+ model = SentenceTransformer(modules=[static_embedding])
106
+ ```
107
+
108
+ Train with `MultipleNegativesRankingLoss` on a large contrastive dataset (1M+ pairs).
109
+
110
+ **Warm starts vs. random init** — with **>1M training samples**, random-init beats `StaticEmbedding.from_model2vec(...)` or `.from_distillation(...)` warm starts. With smaller datasets, warm starts help.
111
+
112
+ ```python
113
+ # For smaller datasets (<100k), warm-start:
114
+ static_embedding = StaticEmbedding.from_model2vec("minishlab/potion-base-8M")
115
+ # or:
116
+ static_embedding = StaticEmbedding.from_distillation("sentence-transformers/all-MiniLM-L6-v2", vocabulary=list(tokenizer.get_vocab().keys()))
117
+ ```
118
+
119
+ See `../scripts/train_sentence_transformer_static_embedding_example.py` for a runnable end-to-end recipe (random init + MNRL + Matryoshka + bf16 + lr=2e-1) and the [Static Embeddings blog post](https://huggingface.co/blog/static-embeddings) for benchmarks.
120
+
121
+ ## Multimodal via VLM backbone
122
+
123
+ Modern vision-language models can be loaded directly and produce joint text+image embeddings:
124
+
125
+ ```python
126
+ from sentence_transformers import SentenceTransformer
127
+
128
+ model = SentenceTransformer(
129
+ "Qwen/Qwen3-VL-Embedding-2B",
130
+ model_kwargs={"attn_implementation": "flash_attention_2"}, # do NOT set torch_dtype here; see training_args.md
131
+ processor_kwargs={"min_pixels": 28 * 28, "max_pixels": 600 * 600},
132
+ )
133
+
134
+ # Check which modalities this model supports:
135
+ print(model.modalities)
136
+ # ['text', 'image', 'video', 'message']
137
+ ```
138
+
139
+ Training data can mix text, PIL images, image paths/URLs, audio, and mixed-modality dicts like `{"image": <PIL>, "text": "describe this"}`. The data collator handles preprocessing via the model's `preprocess` method.
140
+
141
+ Install multimodal extras: `pip install "sentence-transformers[image]"` (or `[audio]`, `[video]`).
142
+
143
+ **Precision**: load in fp32 and pass `bf16=True` (or `fp16=True`) to TrainingArguments — autocast handles the inference path. Don't set `torch_dtype="bfloat16"` in `model_kwargs`: it puts Adam state in bf16 and silently degrades quality (see `training_args.md`).
144
+
145
+ ## Multimodal via Router
146
+
147
+ Instead of one VLM backbone, compose separate encoders per modality:
148
+
149
+ ```python
150
+ from sentence_transformers import SentenceTransformer
151
+ from sentence_transformers.sentence_transformer.modules import Dense, Pooling, Router, Transformer
152
+
153
+ # Text encoder
154
+ text_encoder = Transformer("sentence-transformers/all-MiniLM-L6-v2")
155
+ text_pooling = Pooling(text_encoder.get_embedding_dimension(), pooling_mode="mean")
156
+ # Project text to match image encoder's dim
157
+ text_projection = Dense(text_encoder.get_embedding_dimension(), 768)
158
+
159
+ # Image encoder (SigLIP outputs pooled embeddings directly)
160
+ image_encoder = Transformer("google/siglip2-base-patch16-224")
161
+
162
+ router = Router(
163
+ sub_modules={
164
+ "text": [text_encoder, text_pooling, text_projection],
165
+ "image": [image_encoder],
166
+ },
167
+ )
168
+ model = SentenceTransformer(modules=[router])
169
+ ```
170
+
171
+ **Warning**: Router-based models have unaligned embedding spaces at init — you must train to align them. Use a `Dense` projection layer when dimensions differ. Task-based routing (different encoders for queries vs. documents) is also supported via `route_mappings`; see the `Router` docstring.
172
+
173
+ ## Gotchas
174
+
175
+ - **Decoder base with mean pooling**: silently produces garbage embeddings. Always use `lasttoken`.
176
+ - **Router multimodal without training**: the separate encoders' embedding spaces are unaligned at init. Don't expect useful cross-modal similarity until you've trained with a loss that aligns the spaces.
177
+ - **StaticEmbedding with fewer than 100k pairs**: the model won't learn enough. Either warm-start via `from_model2vec` / `from_distillation`, or use a regular encoder.
178
+ - **Large VLM backbones on consumer GPUs**: combine LoRA + `attn_implementation="flash_attention_2"`. With LoRA only, you can additionally pass `torch_dtype="bfloat16"` — the bf16 base weights are frozen, so the Adam-state precision concern from the precision rule above doesn't apply (the LoRA adapter stays fp32, so its optimizer state stays fp32). Without LoRA, follow the precision rule: keep weights fp32 and rely on `bf16=True` autocast.