opencode-skills-collection 4.0.53 → 4.0.54

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 (1168) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +3 -2
  2. package/bundled-skills/00-andruia-consultant/SKILL.md +6 -0
  3. package/bundled-skills/007/SKILL.md +2 -610
  4. package/bundled-skills/007/references/detailed-guide.md +647 -0
  5. package/bundled-skills/10-andruia-skill-smith/SKILL.md +6 -0
  6. package/bundled-skills/20-andruia-niche-intelligence/SKILL.md +6 -0
  7. package/bundled-skills/2slides-ppt-generator/SKILL.md +2 -741
  8. package/bundled-skills/2slides-ppt-generator/references/detailed-guide.md +761 -0
  9. package/bundled-skills/ab-test-setup/SKILL.md +59 -27
  10. package/bundled-skills/ab-testing/SKILL.md +1 -1
  11. package/bundled-skills/acceptance-orchestrator/SKILL.md +6 -0
  12. package/bundled-skills/accint-commitments/SKILL.md +6 -0
  13. package/bundled-skills/accint-frames/SKILL.md +6 -0
  14. package/bundled-skills/accint-solve/SKILL.md +6 -0
  15. package/bundled-skills/advogado-criminal/SKILL.md +2 -912
  16. package/bundled-skills/advogado-criminal/references/detailed-guide.md +946 -0
  17. package/bundled-skills/advogado-especialista/SKILL.md +2 -1071
  18. package/bundled-skills/advogado-especialista/references/detailed-guide.md +1114 -0
  19. package/bundled-skills/agent-evaluation/SKILL.md +53 -1102
  20. package/bundled-skills/agent-evaluation/references/architecture-sketches.md +1112 -0
  21. package/bundled-skills/agent-memory/SKILL.md +6 -0
  22. package/bundled-skills/agent-memory-systems/SKILL.md +8 -1042
  23. package/bundled-skills/agent-memory-systems/references/detailed-guide.md +1088 -0
  24. package/bundled-skills/agent-squad/SKILL.md +1 -0
  25. package/bundled-skills/agent-tool-builder/SKILL.md +2 -624
  26. package/bundled-skills/agent-tool-builder/references/detailed-guide.md +650 -0
  27. package/bundled-skills/agentic-actions-auditor/SKILL.md +6 -0
  28. package/bundled-skills/agentmail/SKILL.md +1 -0
  29. package/bundled-skills/agentphone/SKILL.md +5 -1323
  30. package/bundled-skills/agentphone/references/detailed-guide.md +1333 -0
  31. package/bundled-skills/agents-v2-py/SKILL.md +23 -5
  32. package/bundled-skills/ai-agents-architect/SKILL.md +25 -25
  33. package/bundled-skills/ai-analyzer/SKILL.md +1 -0
  34. package/bundled-skills/ai-md/SKILL.md +25 -0
  35. package/bundled-skills/ai-md/references/detailed-guide.md +512 -0
  36. package/bundled-skills/ai-product/SKILL.md +2 -726
  37. package/bundled-skills/ai-product/references/detailed-guide.md +746 -0
  38. package/bundled-skills/ai-wrapper-product/SKILL.md +2 -641
  39. package/bundled-skills/ai-wrapper-product/references/detailed-guide.md +659 -0
  40. package/bundled-skills/airtable-automation/SKILL.md +6 -0
  41. package/bundled-skills/algolia-search/SKILL.md +2 -893
  42. package/bundled-skills/algolia-search/references/detailed-guide.md +901 -0
  43. package/bundled-skills/alpha-vantage/SKILL.md +1 -0
  44. package/bundled-skills/alternatives-pages/SKILL.md +7 -1
  45. package/bundled-skills/amazon-alexa/SKILL.md +2 -627
  46. package/bundled-skills/amazon-alexa/references/detailed-guide.md +644 -0
  47. package/bundled-skills/analytics/SKILL.md +1 -1
  48. package/bundled-skills/analytics-product/SKILL.md +57 -44
  49. package/bundled-skills/analytics-tracking/SKILL.md +21 -12
  50. package/bundled-skills/analyze-project/SKILL.md +1 -0
  51. package/bundled-skills/android-dev/SKILL.md +2 -490
  52. package/bundled-skills/android-dev/references/detailed-guide.md +506 -0
  53. package/bundled-skills/angular/SKILL.md +4 -783
  54. package/bundled-skills/angular/references/detailed-guide.md +801 -0
  55. package/bundled-skills/angular-best-practices/SKILL.md +4 -535
  56. package/bundled-skills/angular-best-practices/references/detailed-guide.md +549 -0
  57. package/bundled-skills/angular-state-management/SKILL.md +4 -608
  58. package/bundled-skills/angular-state-management/references/detailed-guide.md +618 -0
  59. package/bundled-skills/angular-ui-patterns/SKILL.md +2 -498
  60. package/bundled-skills/angular-ui-patterns/references/detailed-guide.md +513 -0
  61. package/bundled-skills/animejs-animation/SKILL.md +6 -0
  62. package/bundled-skills/anti-deception/SKILL.md +7 -1
  63. package/bundled-skills/antigravity-design-expert/SKILL.md +6 -0
  64. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +7 -0
  65. package/bundled-skills/antigravity-workflows/SKILL.md +20 -3
  66. package/bundled-skills/antigravity-workflows/references/workflow-cards.md +78 -0
  67. package/bundled-skills/api-analyzer/SKILL.md +1 -1
  68. package/bundled-skills/api-designer/SKILL.md +1 -1
  69. package/bundled-skills/api-integration/SKILL.md +1 -1
  70. package/bundled-skills/api-onboarding/SKILL.md +1 -1
  71. package/bundled-skills/api-patterns/SKILL.md +19 -8
  72. package/bundled-skills/api-patterns/api-style.md +2 -2
  73. package/bundled-skills/api-patterns/auth.md +3 -2
  74. package/bundled-skills/api-patterns/graphql.md +1 -1
  75. package/bundled-skills/api-patterns/scripts/api_validator.py +9 -7
  76. package/bundled-skills/api-patterns/trpc.md +2 -2
  77. package/bundled-skills/api-patterns/versioning.md +1 -1
  78. package/bundled-skills/api-sdk-generator/SKILL.md +1 -1
  79. package/bundled-skills/api-security-best-practices/SKILL.md +179 -879
  80. package/bundled-skills/apify-actor-development/SKILL.md +1 -0
  81. package/bundled-skills/apify-actorization/SKILL.md +1 -0
  82. package/bundled-skills/apify-audience-analysis/SKILL.md +1 -0
  83. package/bundled-skills/apify-brand-reputation-monitoring/SKILL.md +1 -0
  84. package/bundled-skills/apify-competitor-intelligence/SKILL.md +1 -0
  85. package/bundled-skills/apify-content-analytics/SKILL.md +1 -0
  86. package/bundled-skills/apify-ecommerce/SKILL.md +1 -0
  87. package/bundled-skills/apify-influencer-discovery/SKILL.md +1 -0
  88. package/bundled-skills/apify-lead-generation/SKILL.md +1 -0
  89. package/bundled-skills/apify-market-research/SKILL.md +1 -0
  90. package/bundled-skills/apify-trend-analysis/SKILL.md +1 -0
  91. package/bundled-skills/apify-ultimate-scraper/SKILL.md +1 -0
  92. package/bundled-skills/appium-skill/SKILL.md +1 -1
  93. package/bundled-skills/apple-notes-search/SKILL.md +6 -0
  94. package/bundled-skills/application-performance-performance-optimization/SKILL.md +6 -0
  95. package/bundled-skills/applicationinsights-web-ts/SKILL.md +1 -1
  96. package/bundled-skills/ask-matt/SKILL.md +5 -0
  97. package/bundled-skills/ask-questions-if-underspecified/SKILL.md +1 -0
  98. package/bundled-skills/astropy/SKILL.md +1 -0
  99. package/bundled-skills/atlas-contract/SKILL.md +117 -0
  100. package/bundled-skills/atlas-contract/references/detailed-guide.md +572 -0
  101. package/bundled-skills/audio-transcriber/SKILL.md +2 -425
  102. package/bundled-skills/audio-transcriber/references/detailed-guide.md +430 -0
  103. package/bundled-skills/audit-context-building/SKILL.md +1 -0
  104. package/bundled-skills/auri-core/SKILL.md +5 -562
  105. package/bundled-skills/auri-core/references/detailed-guide.md +623 -0
  106. package/bundled-skills/auth-implementation-patterns/SKILL.md +14 -4
  107. package/bundled-skills/auth-implementation-patterns/resources/implementation-playbook.md +72 -180
  108. package/bundled-skills/automated-triage/SKILL.md +6 -0
  109. package/bundled-skills/autonomous-agent-patterns/SKILL.md +4 -741
  110. package/bundled-skills/autonomous-agent-patterns/references/detailed-guide.md +751 -0
  111. package/bundled-skills/autonomous-agents/SKILL.md +8 -1010
  112. package/bundled-skills/autonomous-agents/references/detailed-guide.md +1065 -0
  113. package/bundled-skills/awareness-stage-mapper/SKILL.md +6 -0
  114. package/bundled-skills/aws-agentic-ai/SKILL.md +7 -1
  115. package/bundled-skills/aws-cdk-development/SKILL.md +1 -1
  116. package/bundled-skills/aws-cost-operations/SKILL.md +1 -1
  117. package/bundled-skills/aws-mcp-setup/SKILL.md +1 -1
  118. package/bundled-skills/aws-serverless/SKILL.md +2 -1305
  119. package/bundled-skills/aws-serverless/references/detailed-guide.md +1340 -0
  120. package/bundled-skills/aws-serverless-eda/SKILL.md +1 -1
  121. package/bundled-skills/aws-skills/SKILL.md +6 -0
  122. package/bundled-skills/aws-sst-development/SKILL.md +7 -1
  123. package/bundled-skills/awt-e2e-testing/SKILL.md +7 -0
  124. package/bundled-skills/azure-functions/SKILL.md +2 -1321
  125. package/bundled-skills/azure-functions/references/detailed-guide.md +1356 -0
  126. package/bundled-skills/azure-maps-search-dotnet/SKILL.md +2 -482
  127. package/bundled-skills/azure-maps-search-dotnet/references/detailed-guide.md +496 -0
  128. package/bundled-skills/azure-search-documents-py/SKILL.md +2 -515
  129. package/bundled-skills/azure-search-documents-py/references/detailed-guide.md +548 -0
  130. package/bundled-skills/azure-storage-file-share-ts/SKILL.md +2 -481
  131. package/bundled-skills/azure-storage-file-share-ts/references/detailed-guide.md +500 -0
  132. package/bundled-skills/azure-storage-queue-ts/SKILL.md +2 -512
  133. package/bundled-skills/azure-storage-queue-ts/references/detailed-guide.md +530 -0
  134. package/bundled-skills/backend-development-feature-development/SKILL.md +6 -0
  135. package/bundled-skills/basecamp-automation/SKILL.md +6 -0
  136. package/bundled-skills/baseline-ui/SKILL.md +6 -0
  137. package/bundled-skills/bash-pro/SKILL.md +6 -0
  138. package/bundled-skills/bdi-mental-states/SKILL.md +1 -0
  139. package/bundled-skills/beautiful-prose/SKILL.md +1 -0
  140. package/bundled-skills/bill-gates/SKILL.md +2 -778
  141. package/bundled-skills/bill-gates/references/detailed-guide.md +784 -0
  142. package/bundled-skills/biopython/SKILL.md +1 -0
  143. package/bundled-skills/bitbucket-automation/SKILL.md +6 -0
  144. package/bundled-skills/blog-writing-guide/SKILL.md +6 -0
  145. package/bundled-skills/box-automation/SKILL.md +6 -0
  146. package/bundled-skills/brain-to-docs/SKILL.md +6 -0
  147. package/bundled-skills/brainstorming/SKILL.md +6 -0
  148. package/bundled-skills/brand-guidelines/SKILL.md +1 -0
  149. package/bundled-skills/brand-guidelines-anthropic/SKILL.md +23 -8
  150. package/bundled-skills/brand-guidelines-community/SKILL.md +23 -8
  151. package/bundled-skills/brand-perception-psychologist/SKILL.md +6 -0
  152. package/bundled-skills/brooks-audit/SKILL.md +1 -1
  153. package/bundled-skills/brooks-debt/SKILL.md +1 -1
  154. package/bundled-skills/brooks-harness/SKILL.md +1 -1
  155. package/bundled-skills/brooks-review/SKILL.md +7 -1
  156. package/bundled-skills/brooks-sweep/SKILL.md +1 -1
  157. package/bundled-skills/brooks-test/SKILL.md +1 -1
  158. package/bundled-skills/browser-automation/SKILL.md +18 -1044
  159. package/bundled-skills/browser-automation/references/detailed-guide.md +852 -0
  160. package/bundled-skills/bug-hunt-swarm/SKILL.md +7 -1
  161. package/bundled-skills/build/SKILL.md +5 -627
  162. package/bundled-skills/build/references/detailed-guide.md +637 -0
  163. package/bundled-skills/bun-development/SKILL.md +4 -678
  164. package/bundled-skills/bun-development/references/detailed-guide.md +691 -0
  165. package/bundled-skills/burpsuite-project-parser/SKILL.md +1 -0
  166. package/bundled-skills/c-pro/SKILL.md +6 -0
  167. package/bundled-skills/calendly-automation/SKILL.md +6 -0
  168. package/bundled-skills/cc-skill-backend-patterns/SKILL.md +2 -572
  169. package/bundled-skills/cc-skill-backend-patterns/references/detailed-guide.md +584 -0
  170. package/bundled-skills/cc-skill-coding-standards/SKILL.md +2 -510
  171. package/bundled-skills/cc-skill-coding-standards/references/detailed-guide.md +523 -0
  172. package/bundled-skills/cc-skill-continuous-learning/SKILL.md +49 -7
  173. package/bundled-skills/cc-skill-continuous-learning/config.json +1 -16
  174. package/bundled-skills/cc-skill-continuous-learning/evaluate-session.sh +56 -59
  175. package/bundled-skills/cc-skill-frontend-patterns/SKILL.md +2 -621
  176. package/bundled-skills/cc-skill-frontend-patterns/references/detailed-guide.md +633 -0
  177. package/bundled-skills/cc-skill-security-review/SKILL.md +4 -36
  178. package/bundled-skills/cc-skill-security-review/references/detailed-guide.md +40 -0
  179. package/bundled-skills/cc-skill-strategic-compact/SKILL.md +53 -7
  180. package/bundled-skills/cc-skill-strategic-compact/suggest-compact.sh +20 -51
  181. package/bundled-skills/changelog-updates/SKILL.md +6 -528
  182. package/bundled-skills/changelog-updates/references/detailed-guide.md +540 -0
  183. package/bundled-skills/chat-widget/SKILL.md +5 -879
  184. package/bundled-skills/chat-widget/references/detailed-guide.md +890 -0
  185. package/bundled-skills/cirq/SKILL.md +1 -0
  186. package/bundled-skills/citation-management/SKILL.md +3 -960
  187. package/bundled-skills/citation-management/references/detailed-guide.md +975 -0
  188. package/bundled-skills/ckw-design/SKILL.md +6 -0
  189. package/bundled-skills/claimable-postgres/SKILL.md +1 -1
  190. package/bundled-skills/clarity-gate/SKILL.md +3 -635
  191. package/bundled-skills/clarity-gate/references/detailed-guide.md +653 -0
  192. package/bundled-skills/claude-ally-health/SKILL.md +6 -0
  193. package/bundled-skills/claude-code-expert/SKILL.md +2 -527
  194. package/bundled-skills/claude-code-expert/references/detailed-guide.md +548 -0
  195. package/bundled-skills/claude-d3js-skill/SKILL.md +2 -798
  196. package/bundled-skills/claude-d3js-skill/references/detailed-guide.md +811 -0
  197. package/bundled-skills/claude-in-chrome-troubleshooting/SKILL.md +1 -0
  198. package/bundled-skills/claude-scientific-skills/SKILL.md +6 -0
  199. package/bundled-skills/claude-settings-audit/SKILL.md +1 -0
  200. package/bundled-skills/claude-speed-reader/SKILL.md +6 -0
  201. package/bundled-skills/claude-win11-speckit-update-skill/SKILL.md +6 -0
  202. package/bundled-skills/clean-code/SKILL.md +6 -0
  203. package/bundled-skills/clerk-auth/SKILL.md +2 -812
  204. package/bundled-skills/clerk-auth/references/detailed-guide.md +820 -0
  205. package/bundled-skills/clickup-automation/SKILL.md +6 -0
  206. package/bundled-skills/closed-loop-delivery/SKILL.md +6 -0
  207. package/bundled-skills/co-marketing/SKILL.md +1 -1
  208. package/bundled-skills/code-documentation-doc-generate/SKILL.md +16 -1
  209. package/bundled-skills/code-documentation-doc-generate/resources/implementation-playbook.md +33 -55
  210. package/bundled-skills/code-refactoring-context-restore/SKILL.md +40 -177
  211. package/bundled-skills/code-refactoring-tech-debt/SKILL.md +20 -9
  212. package/bundled-skills/code-simplifier/SKILL.md +1 -0
  213. package/bundled-skills/codebase-cleanup-tech-debt/SKILL.md +20 -9
  214. package/bundled-skills/cold-email/SKILL.md +6 -0
  215. package/bundled-skills/commit/SKILL.md +1 -0
  216. package/bundled-skills/community-building/SKILL.md +1 -1
  217. package/bundled-skills/competitor-alternatives/SKILL.md +2 -740
  218. package/bundled-skills/competitor-alternatives/references/detailed-guide.md +756 -0
  219. package/bundled-skills/competitor-profiling/SKILL.md +1 -1
  220. package/bundled-skills/competitor-tracking/SKILL.md +1 -1
  221. package/bundled-skills/comprehensive-review-full-review/SKILL.md +6 -0
  222. package/bundled-skills/comprehensive-review-pr-enhance/SKILL.md +1 -0
  223. package/bundled-skills/computer-use-agents/SKILL.md +2 -2131
  224. package/bundled-skills/computer-use-agents/references/detailed-guide.md +2158 -0
  225. package/bundled-skills/computer-vision-expert/SKILL.md +6 -0
  226. package/bundled-skills/conductor-setup/SKILL.md +1 -0
  227. package/bundled-skills/confluence-automation/SKILL.md +6 -0
  228. package/bundled-skills/constant-time-analysis/SKILL.md +1 -0
  229. package/bundled-skills/container-security-hardening/SKILL.md +4 -915
  230. package/bundled-skills/container-security-hardening/references/detailed-guide.md +927 -0
  231. package/bundled-skills/content-creator/SKILL.md +53 -23
  232. package/bundled-skills/content-creator/assets/content_calendar_template.md +5 -2
  233. package/bundled-skills/content-creator/references/brand_guidelines.md +7 -3
  234. package/bundled-skills/content-creator/references/content_frameworks.md +12 -7
  235. package/bundled-skills/content-creator/references/social_media_optimization.md +61 -317
  236. package/bundled-skills/content-creator/scripts/brand_voice_analyzer.py +14 -9
  237. package/bundled-skills/content-creator/scripts/seo_optimizer.py +31 -94
  238. package/bundled-skills/context-compression/SKILL.md +1 -0
  239. package/bundled-skills/context-degradation/SKILL.md +1 -0
  240. package/bundled-skills/context-fundamentals/SKILL.md +1 -0
  241. package/bundled-skills/context-management-context-restore/SKILL.md +40 -177
  242. package/bundled-skills/context-optimization/SKILL.md +1 -0
  243. package/bundled-skills/convex/SKILL.md +4 -766
  244. package/bundled-skills/convex/references/detailed-guide.md +772 -0
  245. package/bundled-skills/copilot-sdk/SKILL.md +4 -496
  246. package/bundled-skills/copilot-sdk/references/detailed-guide.md +516 -0
  247. package/bundled-skills/copy-editing/SKILL.md +6 -0
  248. package/bundled-skills/copywriting/SKILL.md +6 -0
  249. package/bundled-skills/copywriting-psychologist/SKILL.md +6 -0
  250. package/bundled-skills/create-branch/SKILL.md +1 -0
  251. package/bundled-skills/create-pr/SKILL.md +7 -0
  252. package/bundled-skills/cred-omega/SKILL.md +2 -847
  253. package/bundled-skills/cred-omega/references/detailed-guide.md +872 -0
  254. package/bundled-skills/cro/SKILL.md +1 -1
  255. package/bundled-skills/csharp-pro/SKILL.md +6 -0
  256. package/bundled-skills/cucumber-skill/SKILL.md +1 -1
  257. package/bundled-skills/customer-psychographic-profiler/SKILL.md +6 -0
  258. package/bundled-skills/customer-research/SKILL.md +1 -1
  259. package/bundled-skills/cv-generator/SKILL.md +4 -828
  260. package/bundled-skills/cv-generator/references/detailed-guide.md +845 -0
  261. package/bundled-skills/cypress-skill/SKILL.md +1 -1
  262. package/bundled-skills/daily-gift/SKILL.md +6 -0
  263. package/bundled-skills/debug-buttercup/SKILL.md +1 -0
  264. package/bundled-skills/debugger/SKILL.md +6 -0
  265. package/bundled-skills/debugging-code/SKILL.md +1 -1
  266. package/bundled-skills/deepapi/SKILL.md +4 -619
  267. package/bundled-skills/deepapi/references/detailed-guide.md +627 -0
  268. package/bundled-skills/delegating-to-agents/SKILL.md +6 -0
  269. package/bundled-skills/deployment-validation-config-validate/SKILL.md +4 -478
  270. package/bundled-skills/deployment-validation-config-validate/references/detailed-guide.md +484 -0
  271. package/bundled-skills/design-it/SKILL.md +6 -0
  272. package/bundled-skills/design-orchestration/SKILL.md +6 -0
  273. package/bundled-skills/design-spells/SKILL.md +6 -0
  274. package/bundled-skills/design-system/SKILL.md +7 -1
  275. package/bundled-skills/design-taste-frontend/SKILL.md +6 -0
  276. package/bundled-skills/design-thinking/SKILL.md +6 -0
  277. package/bundled-skills/design-ux/SKILL.md +7 -1
  278. package/bundled-skills/deterministic-design/SKILL.md +6 -0
  279. package/bundled-skills/developer-advocacy/SKILL.md +1 -1
  280. package/bundled-skills/developer-audience-context/SKILL.md +1 -1
  281. package/bundled-skills/developer-churn/SKILL.md +5 -625
  282. package/bundled-skills/developer-churn/references/detailed-guide.md +639 -0
  283. package/bundled-skills/developer-listening/SKILL.md +7 -1
  284. package/bundled-skills/developer-onboarding/SKILL.md +6 -474
  285. package/bundled-skills/developer-onboarding/references/detailed-guide.md +486 -0
  286. package/bundled-skills/developer-sandbox/SKILL.md +6 -414
  287. package/bundled-skills/developer-sandbox/references/detailed-guide.md +425 -0
  288. package/bundled-skills/developer-seo/SKILL.md +1 -1
  289. package/bundled-skills/developer-signup-flow/SKILL.md +1 -1
  290. package/bundled-skills/devrel-content/SKILL.md +1 -1
  291. package/bundled-skills/diagnosing-bugs/SKILL.md +5 -0
  292. package/bundled-skills/diary/SKILL.md +1 -0
  293. package/bundled-skills/differential-review/SKILL.md +1 -0
  294. package/bundled-skills/discord-automation/SKILL.md +6 -0
  295. package/bundled-skills/discord-bot-architect/SKILL.md +2 -1434
  296. package/bundled-skills/discord-bot-architect/references/detailed-guide.md +1465 -0
  297. package/bundled-skills/django-access-review/SKILL.md +1 -0
  298. package/bundled-skills/django-perf-review/SKILL.md +1 -0
  299. package/bundled-skills/doc-coauthoring/SKILL.md +6 -0
  300. package/bundled-skills/docs-architect/SKILL.md +6 -0
  301. package/bundled-skills/docs-as-marketing/SKILL.md +1 -1
  302. package/bundled-skills/documentation-generation-doc-generate/SKILL.md +16 -1
  303. package/bundled-skills/documentation-generation-doc-generate/resources/implementation-playbook.md +33 -55
  304. package/bundled-skills/doubt-driven-development/SKILL.md +1 -1
  305. package/bundled-skills/dropbox-automation/SKILL.md +6 -0
  306. package/bundled-skills/dwarf-expert/SKILL.md +1 -0
  307. package/bundled-skills/dx-optimizer/SKILL.md +6 -0
  308. package/bundled-skills/e2e-testing-patterns/SKILL.md +14 -4
  309. package/bundled-skills/e2e-testing-patterns/resources/implementation-playbook.md +22 -41
  310. package/bundled-skills/eas-update-insights/SKILL.md +1 -1
  311. package/bundled-skills/ecl-harness-engineer/SKILL.md +4 -681
  312. package/bundled-skills/ecl-harness-engineer/references/detailed-guide.md +691 -0
  313. package/bundled-skills/efficient-web-research/SKILL.md +1 -0
  314. package/bundled-skills/electron-development/SKILL.md +4 -820
  315. package/bundled-skills/electron-development/references/detailed-guide.md +828 -0
  316. package/bundled-skills/elixir-pro/SKILL.md +6 -0
  317. package/bundled-skills/elon-musk/SKILL.md +5 -1278
  318. package/bundled-skills/elon-musk/references/detailed-guide.md +1293 -0
  319. package/bundled-skills/email-sequence/SKILL.md +2 -915
  320. package/bundled-skills/email-sequence/references/detailed-guide.md +932 -0
  321. package/bundled-skills/email-systems/SKILL.md +2 -654
  322. package/bundled-skills/email-systems/references/detailed-guide.md +669 -0
  323. package/bundled-skills/emergency-card/SKILL.md +1 -0
  324. package/bundled-skills/emil-design-eng/SKILL.md +4 -673
  325. package/bundled-skills/emil-design-eng/references/detailed-guide.md +690 -0
  326. package/bundled-skills/emotional-arc-designer/SKILL.md +6 -0
  327. package/bundled-skills/enhance-prompt/SKILL.md +1 -0
  328. package/bundled-skills/error-debugging-error-analysis/SKILL.md +15 -0
  329. package/bundled-skills/error-debugging-error-analysis/resources/implementation-playbook.md +122 -1125
  330. package/bundled-skills/error-debugging-multi-agent-review/SKILL.md +42 -214
  331. package/bundled-skills/error-detective/SKILL.md +6 -0
  332. package/bundled-skills/error-diagnostics-error-analysis/SKILL.md +15 -0
  333. package/bundled-skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +122 -1125
  334. package/bundled-skills/event-sourcing-architect/SKILL.md +6 -0
  335. package/bundled-skills/event-staffing-compliance/SKILL.md +6 -0
  336. package/bundled-skills/event-staffing-ordering/SKILL.md +6 -0
  337. package/bundled-skills/evolution/SKILL.md +1 -0
  338. package/bundled-skills/executing-plans/SKILL.md +6 -0
  339. package/bundled-skills/explain-like-socrates/SKILL.md +6 -0
  340. package/bundled-skills/expo-deployment/SKILL.md +1 -1
  341. package/bundled-skills/expo-examples/SKILL.md +1 -1
  342. package/bundled-skills/expo-module/SKILL.md +1 -1
  343. package/bundled-skills/expo-observe/SKILL.md +1 -1
  344. package/bundled-skills/expo-ui/SKILL.md +1 -1
  345. package/bundled-skills/expo-ui-jetpack-compose/SKILL.md +1 -0
  346. package/bundled-skills/expo-ui-swift-ui/SKILL.md +1 -0
  347. package/bundled-skills/fable-safe-prompt/SKILL.md +6 -0
  348. package/bundled-skills/fal-audio/SKILL.md +6 -0
  349. package/bundled-skills/fal-generate/SKILL.md +6 -0
  350. package/bundled-skills/fal-image-edit/SKILL.md +6 -0
  351. package/bundled-skills/fal-platform/SKILL.md +6 -0
  352. package/bundled-skills/fal-upscale/SKILL.md +6 -0
  353. package/bundled-skills/fal-workflow/SKILL.md +6 -0
  354. package/bundled-skills/family-health-analyzer/SKILL.md +1 -0
  355. package/bundled-skills/favicon/SKILL.md +1 -0
  356. package/bundled-skills/fda-food-safety-auditor/SKILL.md +1 -0
  357. package/bundled-skills/fda-medtech-compliance-auditor/SKILL.md +1 -0
  358. package/bundled-skills/ffuf-claude-skill/SKILL.md +6 -0
  359. package/bundled-skills/ffuf-web-fuzzing/SKILL.md +5 -492
  360. package/bundled-skills/ffuf-web-fuzzing/references/detailed-guide.md +510 -0
  361. package/bundled-skills/file-organizer/SKILL.md +6 -0
  362. package/bundled-skills/file-uploads/SKILL.md +6 -0
  363. package/bundled-skills/filesystem-context/SKILL.md +1 -0
  364. package/bundled-skills/find-bugs/SKILL.md +7 -0
  365. package/bundled-skills/firebase/SKILL.md +8 -651
  366. package/bundled-skills/firebase/references/detailed-guide.md +662 -0
  367. package/bundled-skills/fitness-analyzer/SKILL.md +1 -0
  368. package/bundled-skills/fix-review/SKILL.md +6 -0
  369. package/bundled-skills/fixing-metadata/SKILL.md +7 -1
  370. package/bundled-skills/food-database-query/SKILL.md +5 -772
  371. package/bundled-skills/food-database-query/references/detailed-guide.md +785 -0
  372. package/bundled-skills/form-cro/SKILL.md +6 -0
  373. package/bundled-skills/fp-async/SKILL.md +5 -716
  374. package/bundled-skills/fp-async/references/detailed-guide.md +726 -0
  375. package/bundled-skills/fp-backend/SKILL.md +5 -1313
  376. package/bundled-skills/fp-backend/references/detailed-guide.md +1323 -0
  377. package/bundled-skills/fp-data-transforms/SKILL.md +5 -1181
  378. package/bundled-skills/fp-data-transforms/references/detailed-guide.md +1190 -0
  379. package/bundled-skills/fp-either-ref/SKILL.md +1 -0
  380. package/bundled-skills/fp-errors/SKILL.md +5 -835
  381. package/bundled-skills/fp-errors/references/detailed-guide.md +846 -0
  382. package/bundled-skills/fp-option-ref/SKILL.md +1 -0
  383. package/bundled-skills/fp-pipe-ref/SKILL.md +1 -0
  384. package/bundled-skills/fp-pragmatic/SKILL.md +5 -500
  385. package/bundled-skills/fp-pragmatic/references/detailed-guide.md +510 -0
  386. package/bundled-skills/fp-react/SKILL.md +3 -761
  387. package/bundled-skills/fp-react/references/detailed-guide.md +775 -0
  388. package/bundled-skills/fp-refactor/SKILL.md +5 -1761
  389. package/bundled-skills/fp-refactor/references/detailed-guide.md +1775 -0
  390. package/bundled-skills/fp-taskeither-ref/SKILL.md +1 -0
  391. package/bundled-skills/fp-ts-errors/SKILL.md +4 -835
  392. package/bundled-skills/fp-ts-errors/references/detailed-guide.md +846 -0
  393. package/bundled-skills/fp-ts-pragmatic/SKILL.md +4 -500
  394. package/bundled-skills/fp-ts-pragmatic/references/detailed-guide.md +510 -0
  395. package/bundled-skills/fp-ts-react/SKILL.md +4 -763
  396. package/bundled-skills/fp-ts-react/references/detailed-guide.md +775 -0
  397. package/bundled-skills/fp-types-ref/SKILL.md +1 -0
  398. package/bundled-skills/framework-migration-legacy-modernize/SKILL.md +6 -0
  399. package/bundled-skills/free-tool-strategy/SKILL.md +2 -532
  400. package/bundled-skills/free-tool-strategy/references/detailed-guide.md +550 -0
  401. package/bundled-skills/freshdesk-automation/SKILL.md +6 -0
  402. package/bundled-skills/frontend-architecture/SKILL.md +1 -1
  403. package/bundled-skills/frontend-data-contracts/SKILL.md +1 -1
  404. package/bundled-skills/frontend-design/SKILL.md +33 -34
  405. package/bundled-skills/frontend-observability/SKILL.md +1 -1
  406. package/bundled-skills/frontend-optimistic-mutations/SKILL.md +1 -1
  407. package/bundled-skills/frontend-seo/SKILL.md +6 -675
  408. package/bundled-skills/frontend-seo/references/detailed-guide.md +688 -0
  409. package/bundled-skills/frontend-slides-frontend-slides/SKILL.md +7 -1
  410. package/bundled-skills/frontend-ui-dark-ts/SKILL.md +2 -561
  411. package/bundled-skills/frontend-ui-dark-ts/references/detailed-guide.md +573 -0
  412. package/bundled-skills/full-stack-orchestration-full-stack-feature/SKILL.md +6 -0
  413. package/bundled-skills/game-development/2d-games/SKILL.md +6 -0
  414. package/bundled-skills/game-development/mobile-games/SKILL.md +6 -0
  415. package/bundled-skills/game-development/vr-ar/SKILL.md +6 -0
  416. package/bundled-skills/gcp-cloud-run/SKILL.md +2 -1303
  417. package/bundled-skills/gcp-cloud-run/references/detailed-guide.md +1350 -0
  418. package/bundled-skills/gemini-api-dev/SKILL.md +1 -1
  419. package/bundled-skills/gemini-live-api-dev/SKILL.md +1 -1
  420. package/bundled-skills/gemini-omni-flash-api/SKILL.md +1 -1
  421. package/bundled-skills/geo-fundamentals/SKILL.md +6 -0
  422. package/bundled-skills/geoffrey-hinton/SKILL.md +5 -1235
  423. package/bundled-skills/geoffrey-hinton/references/detailed-guide.md +1324 -0
  424. package/bundled-skills/gh-review-requests/SKILL.md +1 -0
  425. package/bundled-skills/github-actions-advanced/SKILL.md +4 -971
  426. package/bundled-skills/github-actions-advanced/references/detailed-guide.md +991 -0
  427. package/bundled-skills/github-automation/SKILL.md +6 -0
  428. package/bundled-skills/github-workflow-automation/SKILL.md +4 -826
  429. package/bundled-skills/github-workflow-automation/references/detailed-guide.md +832 -0
  430. package/bundled-skills/gitlab-automation/SKILL.md +6 -0
  431. package/bundled-skills/gmail-automation/SKILL.md +1 -0
  432. package/bundled-skills/go-rod-master/SKILL.md +2 -496
  433. package/bundled-skills/go-rod-master/references/detailed-guide.md +508 -0
  434. package/bundled-skills/goal-analyzer/SKILL.md +5 -596
  435. package/bundled-skills/goal-analyzer/references/detailed-guide.md +602 -0
  436. package/bundled-skills/google-calendar-automation/SKILL.md +1 -0
  437. package/bundled-skills/google-docs-automation/SKILL.md +1 -0
  438. package/bundled-skills/google-drive-automation/SKILL.md +1 -0
  439. package/bundled-skills/google-sheets-automation/SKILL.md +1 -0
  440. package/bundled-skills/google-slides-automation/SKILL.md +1 -0
  441. package/bundled-skills/googlesheets-automation/SKILL.md +6 -0
  442. package/bundled-skills/gpt-taste/SKILL.md +6 -0
  443. package/bundled-skills/graphql/SKILL.md +8 -1031
  444. package/bundled-skills/graphql/references/detailed-guide.md +1044 -0
  445. package/bundled-skills/grill-me/SKILL.md +5 -0
  446. package/bundled-skills/grill-with-docs/SKILL.md +5 -0
  447. package/bundled-skills/grilling/SKILL.md +5 -0
  448. package/bundled-skills/growth-engine/SKILL.md +6 -0
  449. package/bundled-skills/handoff/SKILL.md +5 -0
  450. package/bundled-skills/haskell-pro/SKILL.md +6 -0
  451. package/bundled-skills/headline-psychologist/SKILL.md +6 -0
  452. package/bundled-skills/health-trend-analyzer/SKILL.md +1 -0
  453. package/bundled-skills/hig-components-content/SKILL.md +6 -0
  454. package/bundled-skills/hig-components-controls/SKILL.md +6 -0
  455. package/bundled-skills/hig-components-dialogs/SKILL.md +6 -0
  456. package/bundled-skills/hig-components-layout/SKILL.md +6 -0
  457. package/bundled-skills/hig-components-menus/SKILL.md +6 -0
  458. package/bundled-skills/hig-components-search/SKILL.md +6 -0
  459. package/bundled-skills/hig-components-status/SKILL.md +6 -0
  460. package/bundled-skills/hig-components-system/SKILL.md +6 -0
  461. package/bundled-skills/hig-foundations/SKILL.md +6 -0
  462. package/bundled-skills/hig-inputs/SKILL.md +6 -0
  463. package/bundled-skills/hig-patterns/SKILL.md +6 -0
  464. package/bundled-skills/hig-platforms/SKILL.md +6 -0
  465. package/bundled-skills/hig-technologies/SKILL.md +6 -0
  466. package/bundled-skills/high-end-visual-design/SKILL.md +6 -0
  467. package/bundled-skills/hosted-agents/SKILL.md +7 -0
  468. package/bundled-skills/hosted-agents-v2-py/SKILL.md +23 -5
  469. package/bundled-skills/html-injection-testing/SKILL.md +2 -453
  470. package/bundled-skills/html-injection-testing/references/detailed-guide.md +462 -0
  471. package/bundled-skills/hubspot-automation/SKILL.md +6 -0
  472. package/bundled-skills/hubspot-integration/SKILL.md +8 -807
  473. package/bundled-skills/hubspot-integration/references/detailed-guide.md +815 -0
  474. package/bundled-skills/hugging-face-cli/SKILL.md +7 -1
  475. package/bundled-skills/hugging-face-community-evals/SKILL.md +1 -1
  476. package/bundled-skills/hugging-face-datasets/SKILL.md +5 -430
  477. package/bundled-skills/hugging-face-datasets/references/detailed-guide.md +442 -0
  478. package/bundled-skills/hugging-face-evaluation/SKILL.md +5 -640
  479. package/bundled-skills/hugging-face-evaluation/references/detailed-guide.md +652 -0
  480. package/bundled-skills/hugging-face-jobs/SKILL.md +3 -801
  481. package/bundled-skills/hugging-face-jobs/references/detailed-guide.md +821 -0
  482. package/bundled-skills/hugging-face-model-trainer/SKILL.md +3 -681
  483. package/bundled-skills/hugging-face-model-trainer/references/detailed-guide.md +702 -0
  484. package/bundled-skills/hugging-face-paper-publisher/SKILL.md +5 -617
  485. package/bundled-skills/hugging-face-paper-publisher/references/detailed-guide.md +624 -0
  486. package/bundled-skills/hugging-face-papers/SKILL.md +1 -1
  487. package/bundled-skills/hugging-face-tool-builder/SKILL.md +1 -0
  488. package/bundled-skills/hugging-face-trackio/SKILL.md +1 -1
  489. package/bundled-skills/hugging-face-vision-trainer/SKILL.md +5 -534
  490. package/bundled-skills/hugging-face-vision-trainer/references/detailed-guide.md +549 -0
  491. package/bundled-skills/huggingface-best/SKILL.md +1 -1
  492. package/bundled-skills/huggingface-lora-space-builder/SKILL.md +1 -1
  493. package/bundled-skills/huggingface-spaces/SKILL.md +1 -1
  494. package/bundled-skills/huggingface-tool-builder/SKILL.md +1 -1
  495. package/bundled-skills/huggingface-zerogpu/SKILL.md +1 -1
  496. package/bundled-skills/hugo-to-markdown/SKILL.md +1 -1
  497. package/bundled-skills/hyperexecute-skill/SKILL.md +7 -1
  498. package/bundled-skills/iconsax-library/SKILL.md +6 -0
  499. package/bundled-skills/idea-refine/SKILL.md +1 -1
  500. package/bundled-skills/identity-mirror/SKILL.md +6 -0
  501. package/bundled-skills/ilya-sutskever/SKILL.md +2 -1126
  502. package/bundled-skills/ilya-sutskever/references/detailed-guide.md +1167 -0
  503. package/bundled-skills/image-generator/SKILL.md +4 -320
  504. package/bundled-skills/image-generator/references/detailed-guide.md +332 -0
  505. package/bundled-skills/implement/SKILL.md +6 -0
  506. package/bundled-skills/incident-responder/SKILL.md +6 -0
  507. package/bundled-skills/incident-response-incident-response/SKILL.md +6 -0
  508. package/bundled-skills/industrial-brutalist-ui/SKILL.md +6 -0
  509. package/bundled-skills/interactive-portfolio/SKILL.md +2 -482
  510. package/bundled-skills/interactive-portfolio/references/detailed-guide.md +500 -0
  511. package/bundled-skills/internal-comms/SKILL.md +20 -1
  512. package/bundled-skills/internal-comms/examples/3p-updates.md +5 -4
  513. package/bundled-skills/internal-comms/examples/company-newsletter.md +3 -2
  514. package/bundled-skills/internal-comms/examples/faq-answers.md +1 -0
  515. package/bundled-skills/internal-comms/examples/general-comms.md +1 -0
  516. package/bundled-skills/internal-comms-anthropic/SKILL.md +21 -2
  517. package/bundled-skills/internal-comms-anthropic/examples/3p-updates.md +5 -4
  518. package/bundled-skills/internal-comms-anthropic/examples/company-newsletter.md +3 -2
  519. package/bundled-skills/internal-comms-anthropic/examples/faq-answers.md +1 -0
  520. package/bundled-skills/internal-comms-anthropic/examples/general-comms.md +1 -0
  521. package/bundled-skills/internal-comms-community/SKILL.md +21 -2
  522. package/bundled-skills/internal-comms-community/examples/3p-updates.md +48 -0
  523. package/bundled-skills/internal-comms-community/examples/company-newsletter.md +66 -0
  524. package/bundled-skills/internal-comms-community/examples/faq-answers.md +31 -0
  525. package/bundled-skills/internal-comms-community/examples/general-comms.md +17 -0
  526. package/bundled-skills/ios-debugger-agent/SKILL.md +6 -0
  527. package/bundled-skills/issues/SKILL.md +1 -0
  528. package/bundled-skills/iterate-pr/SKILL.md +1 -0
  529. package/bundled-skills/javascript-mastery/SKILL.md +4 -625
  530. package/bundled-skills/javascript-mastery/references/detailed-guide.md +636 -0
  531. package/bundled-skills/javascript-pro/SKILL.md +6 -0
  532. package/bundled-skills/jest-skill/SKILL.md +1 -1
  533. package/bundled-skills/jira-automation/SKILL.md +6 -0
  534. package/bundled-skills/jobs-to-be-done-analyst/SKILL.md +6 -0
  535. package/bundled-skills/junit-5-skill/SKILL.md +1 -1
  536. package/bundled-skills/k6-load-testing/SKILL.md +2 -544
  537. package/bundled-skills/k6-load-testing/references/detailed-guide.md +563 -0
  538. package/bundled-skills/kaizen/SKILL.md +2 -711
  539. package/bundled-skills/kaizen/references/detailed-guide.md +720 -0
  540. package/bundled-skills/langfuse/SKILL.md +41 -468
  541. package/bundled-skills/langgraph/SKILL.md +2 -445
  542. package/bundled-skills/langgraph/references/detailed-guide.md +455 -0
  543. package/bundled-skills/laravel-expert/SKILL.md +6 -0
  544. package/bundled-skills/launch-strategy/SKILL.md +6 -0
  545. package/bundled-skills/lead-magnets/SKILL.md +6 -0
  546. package/bundled-skills/learn/SKILL.md +5 -0
  547. package/bundled-skills/legacy-modernizer/SKILL.md +6 -0
  548. package/bundled-skills/legal-advisor/SKILL.md +6 -0
  549. package/bundled-skills/leiloeiro-avaliacao/SKILL.md +2 -469
  550. package/bundled-skills/leiloeiro-avaliacao/references/detailed-guide.md +503 -0
  551. package/bundled-skills/leiloeiro-edital/SKILL.md +2 -468
  552. package/bundled-skills/leiloeiro-edital/references/detailed-guide.md +491 -0
  553. package/bundled-skills/leiloeiro-mercado/SKILL.md +2 -458
  554. package/bundled-skills/leiloeiro-mercado/references/detailed-guide.md +488 -0
  555. package/bundled-skills/leiloeiro-risco/SKILL.md +2 -457
  556. package/bundled-skills/leiloeiro-risco/references/detailed-guide.md +482 -0
  557. package/bundled-skills/lesson-generator/SKILL.md +5 -0
  558. package/bundled-skills/lightning-architecture-review/SKILL.md +6 -0
  559. package/bundled-skills/lightning-channel-factories/SKILL.md +6 -0
  560. package/bundled-skills/lightning-factory-explainer/SKILL.md +6 -0
  561. package/bundled-skills/linear-claude-skill/SKILL.md +4 -502
  562. package/bundled-skills/linear-claude-skill/references/detailed-guide.md +517 -0
  563. package/bundled-skills/linkedin-cli/SKILL.md +4 -513
  564. package/bundled-skills/linkedin-cli/references/detailed-guide.md +520 -0
  565. package/bundled-skills/lint-and-validate/SKILL.md +6 -0
  566. package/bundled-skills/linux-privilege-escalation/SKILL.md +2 -426
  567. package/bundled-skills/linux-privilege-escalation/references/detailed-guide.md +436 -0
  568. package/bundled-skills/linux-shell-scripting/SKILL.md +2 -473
  569. package/bundled-skills/linux-shell-scripting/references/detailed-guide.md +481 -0
  570. package/bundled-skills/llm-app-patterns/SKILL.md +16 -741
  571. package/bundled-skills/llm-app-patterns/references/detailed-guide.md +760 -0
  572. package/bundled-skills/llm-council/SKILL.md +4 -550
  573. package/bundled-skills/llm-council/references/detailed-guide.md +556 -0
  574. package/bundled-skills/llm-ops/SKILL.md +6 -0
  575. package/bundled-skills/local-legal-seo-audit/SKILL.md +6 -0
  576. package/bundled-skills/logic-diff/SKILL.md +1 -1
  577. package/bundled-skills/logic-explain/SKILL.md +7 -1
  578. package/bundled-skills/logic-fix-all/SKILL.md +1 -1
  579. package/bundled-skills/logic-locate/SKILL.md +1 -1
  580. package/bundled-skills/logic-review/SKILL.md +1 -1
  581. package/bundled-skills/loki-mode/SKILL.md +4 -696
  582. package/bundled-skills/loki-mode/references/detailed-guide.md +717 -0
  583. package/bundled-skills/longbridge-content/SKILL.md +1 -1
  584. package/bundled-skills/longbridge-fundamentals/SKILL.md +1 -1
  585. package/bundled-skills/longbridge-market-data/SKILL.md +1 -1
  586. package/bundled-skills/lookdev-auto/SKILL.md +6 -0
  587. package/bundled-skills/loopy/SKILL.md +1 -1
  588. package/bundled-skills/loss-aversion-designer/SKILL.md +6 -0
  589. package/bundled-skills/machine-learning-ops-ml-pipeline/SKILL.md +6 -0
  590. package/bundled-skills/magic-animator/SKILL.md +6 -0
  591. package/bundled-skills/magic-ui-generator/SKILL.md +6 -0
  592. package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +6 -0
  593. package/bundled-skills/makepad-animation/SKILL.md +1 -0
  594. package/bundled-skills/makepad-basics/SKILL.md +1 -0
  595. package/bundled-skills/makepad-deployment/SKILL.md +1 -0
  596. package/bundled-skills/makepad-dsl/SKILL.md +1 -0
  597. package/bundled-skills/makepad-event-action/SKILL.md +1 -0
  598. package/bundled-skills/makepad-font/SKILL.md +1 -0
  599. package/bundled-skills/makepad-layout/SKILL.md +1 -0
  600. package/bundled-skills/makepad-platform/SKILL.md +1 -0
  601. package/bundled-skills/makepad-reference/SKILL.md +1 -0
  602. package/bundled-skills/makepad-shaders/SKILL.md +1 -0
  603. package/bundled-skills/makepad-skills/SKILL.md +6 -0
  604. package/bundled-skills/makepad-splash/SKILL.md +1 -0
  605. package/bundled-skills/makepad-widgets/SKILL.md +1 -0
  606. package/bundled-skills/manage-skills/SKILL.md +1 -0
  607. package/bundled-skills/marketing-plan/SKILL.md +1 -1
  608. package/bundled-skills/matematico-tao/SKILL.md +2 -632
  609. package/bundled-skills/matematico-tao/references/detailed-guide.md +651 -0
  610. package/bundled-skills/matplotlib/SKILL.md +1 -0
  611. package/bundled-skills/maxia/SKILL.md +1 -0
  612. package/bundled-skills/mcp-builder/SKILL.md +46 -14
  613. package/bundled-skills/mcp-builder/reference/evaluation.md +69 -226
  614. package/bundled-skills/mcp-builder/reference/mcp_best_practices.md +8 -5
  615. package/bundled-skills/mcp-builder/reference/node_mcp_server.md +46 -144
  616. package/bundled-skills/mcp-builder/reference/python_mcp_server.md +42 -80
  617. package/bundled-skills/mcp-builder/scripts/connections.py +18 -11
  618. package/bundled-skills/mcp-builder/scripts/evaluation.py +88 -95
  619. package/bundled-skills/mcp-builder/scripts/example_evaluation.xml +1 -1
  620. package/bundled-skills/mcp-builder/scripts/requirements.txt +4 -2
  621. package/bundled-skills/mental-health-analyzer/SKILL.md +5 -974
  622. package/bundled-skills/mental-health-analyzer/references/detailed-guide.md +1014 -0
  623. package/bundled-skills/micro-saas-launcher/SKILL.md +2 -473
  624. package/bundled-skills/micro-saas-launcher/references/detailed-guide.md +491 -0
  625. package/bundled-skills/minecraft-bukkit-pro/SKILL.md +6 -0
  626. package/bundled-skills/minimalist-ui/SKILL.md +6 -0
  627. package/bundled-skills/moatmri/SKILL.md +6 -0
  628. package/bundled-skills/molykit/SKILL.md +1 -0
  629. package/bundled-skills/monday-automation/SKILL.md +6 -0
  630. package/bundled-skills/monopoly/SKILL.md +1 -0
  631. package/bundled-skills/monopoly/patterns/SKILL.md +1 -0
  632. package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +1 -0
  633. package/bundled-skills/monopoly/security-checklist/SKILL.md +6 -0
  634. package/bundled-skills/monopoly/tech-matrix/SKILL.md +1 -0
  635. package/bundled-skills/monorepo-architect/SKILL.md +6 -0
  636. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +1 -1
  637. package/bundled-skills/monte-carlo-performance-diagnosis/SKILL.md +7 -1
  638. package/bundled-skills/monte-carlo-validation-notebook/SKILL.md +4 -601
  639. package/bundled-skills/monte-carlo-validation-notebook/references/detailed-guide.md +613 -0
  640. package/bundled-skills/moodle-external-api-development/SKILL.md +4 -517
  641. package/bundled-skills/moodle-external-api-development/references/detailed-guide.md +529 -0
  642. package/bundled-skills/multi-agent-architect/SKILL.md +1 -0
  643. package/bundled-skills/multi-agent-brainstorming/SKILL.md +6 -0
  644. package/bundled-skills/multi-agent-patterns/SKILL.md +1 -0
  645. package/bundled-skills/multi-platform-apps-multi-platform/SKILL.md +6 -0
  646. package/bundled-skills/n8n-code-javascript/SKILL.md +3 -667
  647. package/bundled-skills/n8n-code-javascript/references/detailed-guide.md +683 -0
  648. package/bundled-skills/n8n-code-python/SKILL.md +3 -664
  649. package/bundled-skills/n8n-code-python/references/detailed-guide.md +682 -0
  650. package/bundled-skills/n8n-expression-syntax/SKILL.md +5 -401
  651. package/bundled-skills/n8n-expression-syntax/references/detailed-guide.md +416 -0
  652. package/bundled-skills/n8n-mcp-tools-expert/SKILL.md +5 -485
  653. package/bundled-skills/n8n-mcp-tools-expert/references/detailed-guide.md +499 -0
  654. package/bundled-skills/n8n-node-configuration/SKILL.md +5 -775
  655. package/bundled-skills/n8n-node-configuration/references/detailed-guide.md +789 -0
  656. package/bundled-skills/n8n-validation-expert/SKILL.md +5 -679
  657. package/bundled-skills/n8n-validation-expert/references/detailed-guide.md +694 -0
  658. package/bundled-skills/n8n-workflow-patterns/SKILL.md +1 -0
  659. package/bundled-skills/nanobanana-ppt-skills/SKILL.md +6 -0
  660. package/bundled-skills/native-data-fetching/SKILL.md +2 -456
  661. package/bundled-skills/native-data-fetching/references/detailed-guide.md +465 -0
  662. package/bundled-skills/neon-ai-gateway/SKILL.md +1 -1
  663. package/bundled-skills/neon-functions/SKILL.md +1 -1
  664. package/bundled-skills/neon-object-storage/SKILL.md +1 -1
  665. package/bundled-skills/neon-postgres/SKILL.md +1 -1
  666. package/bundled-skills/neon-postgres-branches/SKILL.md +1 -1
  667. package/bundled-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  668. package/bundled-skills/nerdzao-elite/SKILL.md +6 -0
  669. package/bundled-skills/nerdzao-elite-gemini-high/SKILL.md +6 -0
  670. package/bundled-skills/nestjs-expert/SKILL.md +2 -524
  671. package/bundled-skills/nestjs-expert/references/detailed-guide.md +539 -0
  672. package/bundled-skills/networkx/SKILL.md +1 -0
  673. package/bundled-skills/new-rails-project/SKILL.md +7 -0
  674. package/bundled-skills/newman-cicd-integration/SKILL.md +1 -1
  675. package/bundled-skills/nika/SKILL.md +1 -0
  676. package/bundled-skills/nosql-expert/SKILL.md +6 -0
  677. package/bundled-skills/not-a-vibe-coder/SKILL.md +7 -0
  678. package/bundled-skills/notion-template-business/SKILL.md +2 -505
  679. package/bundled-skills/notion-template-business/references/detailed-guide.md +523 -0
  680. package/bundled-skills/nutrition-analyzer/SKILL.md +5 -766
  681. package/bundled-skills/nutrition-analyzer/references/detailed-guide.md +775 -0
  682. package/bundled-skills/objection-preemptor/SKILL.md +6 -0
  683. package/bundled-skills/observability-and-instrumentation/SKILL.md +1 -1
  684. package/bundled-skills/observability-engineer/SKILL.md +16 -8
  685. package/bundled-skills/obsidian-bases/SKILL.md +4 -366
  686. package/bundled-skills/obsidian-bases/references/detailed-guide.md +380 -0
  687. package/bundled-skills/occupational-health-analyzer/SKILL.md +1 -0
  688. package/bundled-skills/odoo-accounting-setup/SKILL.md +1 -0
  689. package/bundled-skills/odoo-automated-tests/SKILL.md +1 -0
  690. package/bundled-skills/odoo-backup-strategy/SKILL.md +1 -0
  691. package/bundled-skills/odoo-docker-deployment/SKILL.md +1 -0
  692. package/bundled-skills/odoo-ecommerce-configurator/SKILL.md +1 -0
  693. package/bundled-skills/odoo-edi-connector/SKILL.md +1 -0
  694. package/bundled-skills/odoo-hr-payroll-setup/SKILL.md +1 -0
  695. package/bundled-skills/odoo-inventory-optimizer/SKILL.md +1 -0
  696. package/bundled-skills/odoo-l10n-compliance/SKILL.md +1 -0
  697. package/bundled-skills/odoo-manufacturing-advisor/SKILL.md +1 -0
  698. package/bundled-skills/odoo-migration-helper/SKILL.md +1 -0
  699. package/bundled-skills/odoo-module-developer/SKILL.md +1 -0
  700. package/bundled-skills/odoo-orm-expert/SKILL.md +1 -0
  701. package/bundled-skills/odoo-performance-tuner/SKILL.md +1 -0
  702. package/bundled-skills/odoo-project-timesheet/SKILL.md +1 -0
  703. package/bundled-skills/odoo-purchase-workflow/SKILL.md +1 -0
  704. package/bundled-skills/odoo-qweb-templates/SKILL.md +1 -0
  705. package/bundled-skills/odoo-rpc-api/SKILL.md +1 -0
  706. package/bundled-skills/odoo-sales-crm-expert/SKILL.md +1 -0
  707. package/bundled-skills/odoo-security-rules/SKILL.md +1 -0
  708. package/bundled-skills/odoo-shopify-integration/SKILL.md +1 -0
  709. package/bundled-skills/odoo-upgrade-advisor/SKILL.md +1 -0
  710. package/bundled-skills/odoo-woocommerce-bridge/SKILL.md +1 -0
  711. package/bundled-skills/odoo-xml-views-builder/SKILL.md +1 -0
  712. package/bundled-skills/odw/SKILL.md +6 -0
  713. package/bundled-skills/offers/SKILL.md +1 -1
  714. package/bundled-skills/onboarding/SKILL.md +1 -1
  715. package/bundled-skills/onboarding-psychologist/SKILL.md +6 -0
  716. package/bundled-skills/one-drive-automation/SKILL.md +6 -0
  717. package/bundled-skills/openapi-spec-generator/SKILL.md +1 -1
  718. package/bundled-skills/oral-health-analyzer/SKILL.md +8 -515
  719. package/bundled-skills/oral-health-analyzer/references/detailed-guide.md +529 -0
  720. package/bundled-skills/outlook-automation/SKILL.md +6 -0
  721. package/bundled-skills/pagespeed-enhancer/SKILL.md +4 -520
  722. package/bundled-skills/pagespeed-enhancer/references/detailed-guide.md +533 -0
  723. package/bundled-skills/paid-ads/SKILL.md +2 -541
  724. package/bundled-skills/paid-ads/references/detailed-guide.md +558 -0
  725. package/bundled-skills/parallel-search-mcp/SKILL.md +134 -0
  726. package/bundled-skills/payment-integration/SKILL.md +6 -0
  727. package/bundled-skills/paywall-upgrade-cro/SKILL.md +2 -560
  728. package/bundled-skills/paywall-upgrade-cro/references/detailed-guide.md +579 -0
  729. package/bundled-skills/performance-testing-review-multi-agent-review/SKILL.md +42 -214
  730. package/bundled-skills/personal-tool-builder/SKILL.md +2 -688
  731. package/bundled-skills/personal-tool-builder/references/detailed-guide.md +705 -0
  732. package/bundled-skills/phase-gated-debugging/SKILL.md +6 -0
  733. package/bundled-skills/photopea-embedded-editor/SKILL.md +3 -1218
  734. package/bundled-skills/photopea-embedded-editor/references/detailed-guide.md +1252 -0
  735. package/bundled-skills/php-pro/SKILL.md +6 -0
  736. package/bundled-skills/pi-custom-model/SKILL.md +6 -0
  737. package/bundled-skills/pipedrive-automation/SKILL.md +6 -0
  738. package/bundled-skills/pitch-psychologist/SKILL.md +6 -0
  739. package/bundled-skills/plaid-fintech/SKILL.md +8 -829
  740. package/bundled-skills/plaid-fintech/references/detailed-guide.md +837 -0
  741. package/bundled-skills/plotly/SKILL.md +1 -0
  742. package/bundled-skills/polars/SKILL.md +1 -0
  743. package/bundled-skills/popup-cro/SKILL.md +6 -0
  744. package/bundled-skills/posix-shell-pro/SKILL.md +6 -0
  745. package/bundled-skills/postgresql-cli/SKILL.md +1 -1
  746. package/bundled-skills/postman-collection-generator/SKILL.md +1 -1
  747. package/bundled-skills/postman-newman-automation/SKILL.md +1 -1
  748. package/bundled-skills/postman-openapi-converter/SKILL.md +1 -1
  749. package/bundled-skills/power-user-cultivation/SKILL.md +6 -572
  750. package/bundled-skills/power-user-cultivation/references/detailed-guide.md +585 -0
  751. package/bundled-skills/pr-writer/SKILL.md +1 -0
  752. package/bundled-skills/price-psychology-strategist/SKILL.md +6 -0
  753. package/bundled-skills/pricing/SKILL.md +1 -1
  754. package/bundled-skills/privacy-mask/SKILL.md +1 -1
  755. package/bundled-skills/product-decision-agent/SKILL.md +6 -0
  756. package/bundled-skills/product-inventor/SKILL.md +2 -627
  757. package/bundled-skills/product-inventor/references/detailed-guide.md +646 -0
  758. package/bundled-skills/product-manager/SKILL.md +6 -0
  759. package/bundled-skills/product-marketing/SKILL.md +1 -1
  760. package/bundled-skills/production-code-audit/SKILL.md +2 -264
  761. package/bundled-skills/production-code-audit/references/detailed-guide.md +277 -0
  762. package/bundled-skills/professional-proofreader/SKILL.md +6 -0
  763. package/bundled-skills/programmatic-seo/SKILL.md +6 -0
  764. package/bundled-skills/project-development/SKILL.md +1 -0
  765. package/bundled-skills/project-skill-audit/SKILL.md +6 -0
  766. package/bundled-skills/public-relations/SKILL.md +1 -1
  767. package/bundled-skills/pubmed-database/SKILL.md +1 -0
  768. package/bundled-skills/push-skill-to-github/SKILL.md +6 -0
  769. package/bundled-skills/pypict-skill/SKILL.md +6 -0
  770. package/bundled-skills/pytest-skill/SKILL.md +1 -1
  771. package/bundled-skills/qiskit/SKILL.md +1 -0
  772. package/bundled-skills/quant-analyst/SKILL.md +6 -0
  773. package/bundled-skills/radix-ui-design-system/SKILL.md +2 -693
  774. package/bundled-skills/radix-ui-design-system/references/detailed-guide.md +711 -0
  775. package/bundled-skills/rag-engineer/SKILL.md +6 -0
  776. package/bundled-skills/rclone-cli/SKILL.md +1 -1
  777. package/bundled-skills/react-flow-architect/SKILL.md +2 -507
  778. package/bundled-skills/react-flow-architect/references/detailed-guide.md +517 -0
  779. package/bundled-skills/react-patterns/SKILL.md +6 -0
  780. package/bundled-skills/read-all-adrs/SKILL.md +6 -0
  781. package/bundled-skills/readme/SKILL.md +4 -822
  782. package/bundled-skills/readme/references/detailed-guide.md +829 -0
  783. package/bundled-skills/redesign-existing-projects/SKILL.md +6 -0
  784. package/bundled-skills/redis-cli/SKILL.md +1 -1
  785. package/bundled-skills/referral-program/SKILL.md +2 -508
  786. package/bundled-skills/referral-program/references/detailed-guide.md +524 -0
  787. package/bundled-skills/rehabilitation-analyzer/SKILL.md +5 -629
  788. package/bundled-skills/rehabilitation-analyzer/references/detailed-guide.md +641 -0
  789. package/bundled-skills/remotion/SKILL.md +1 -0
  790. package/bundled-skills/research-prompt/SKILL.md +6 -0
  791. package/bundled-skills/resolving-merge-conflicts/SKILL.md +6 -0
  792. package/bundled-skills/review-and-simplify-changes/SKILL.md +7 -1
  793. package/bundled-skills/review-swarm/SKILL.md +7 -1
  794. package/bundled-skills/risk-manager/SKILL.md +6 -0
  795. package/bundled-skills/robius-app-architecture/SKILL.md +1 -0
  796. package/bundled-skills/robius-event-action/SKILL.md +1 -0
  797. package/bundled-skills/robius-matrix-integration/SKILL.md +1 -0
  798. package/bundled-skills/robius-state-management/SKILL.md +1 -0
  799. package/bundled-skills/robius-widget-patterns/SKILL.md +1 -0
  800. package/bundled-skills/robot-framework-skill/SKILL.md +1 -1
  801. package/bundled-skills/ruby-pro/SKILL.md +6 -0
  802. package/bundled-skills/saga-orchestration/SKILL.md +4 -482
  803. package/bundled-skills/saga-orchestration/references/detailed-guide.md +491 -0
  804. package/bundled-skills/sales-automator/SKILL.md +6 -0
  805. package/bundled-skills/salesforce-development/SKILL.md +2 -985
  806. package/bundled-skills/salesforce-development/references/detailed-guide.md +994 -0
  807. package/bundled-skills/sam-altman/SKILL.md +5 -1040
  808. package/bundled-skills/sam-altman/references/detailed-guide.md +1102 -0
  809. package/bundled-skills/scala-pro/SKILL.md +6 -0
  810. package/bundled-skills/scanning-tools/SKILL.md +2 -546
  811. package/bundled-skills/scanning-tools/references/detailed-guide.md +555 -0
  812. package/bundled-skills/scanpy/SKILL.md +1 -0
  813. package/bundled-skills/scarcity-urgency-psychologist/SKILL.md +6 -0
  814. package/bundled-skills/scientific-writing/SKILL.md +3 -691
  815. package/bundled-skills/scientific-writing/references/detailed-guide.md +702 -0
  816. package/bundled-skills/scikit-learn/SKILL.md +3 -462
  817. package/bundled-skills/scikit-learn/references/detailed-guide.md +475 -0
  818. package/bundled-skills/scroll-experience/SKILL.md +2 -560
  819. package/bundled-skills/scroll-experience/references/detailed-guide.md +578 -0
  820. package/bundled-skills/sdk-dx/SKILL.md +6 -517
  821. package/bundled-skills/sdk-dx/references/detailed-guide.md +530 -0
  822. package/bundled-skills/seaborn/SKILL.md +5 -661
  823. package/bundled-skills/seaborn/references/detailed-guide.md +677 -0
  824. package/bundled-skills/search-specialist/SKILL.md +6 -0
  825. package/bundled-skills/security/aws-compliance-checker/SKILL.md +4 -492
  826. package/bundled-skills/security/aws-compliance-checker/references/detailed-guide.md +502 -0
  827. package/bundled-skills/security-bluebook-builder/SKILL.md +7 -0
  828. package/bundled-skills/security-scanning-security-hardening/SKILL.md +6 -0
  829. package/bundled-skills/security-scanning-security-sast/SKILL.md +2 -463
  830. package/bundled-skills/security-scanning-security-sast/references/detailed-guide.md +476 -0
  831. package/bundled-skills/segment-cdp/SKILL.md +8 -822
  832. package/bundled-skills/segment-cdp/references/detailed-guide.md +830 -0
  833. package/bundled-skills/selenium-skill/SKILL.md +1 -1
  834. package/bundled-skills/semgrep-rule-creator/SKILL.md +1 -0
  835. package/bundled-skills/semgrep-rule-variant-creator/SKILL.md +1 -0
  836. package/bundled-skills/sendgrid-automation/SKILL.md +6 -0
  837. package/bundled-skills/seo-audit/SKILL.md +33 -44
  838. package/bundled-skills/seo-content/SKILL.md +6 -0
  839. package/bundled-skills/seo-content-auditor/SKILL.md +6 -0
  840. package/bundled-skills/seo-content-writer/SKILL.md +6 -0
  841. package/bundled-skills/seo-forensic-incident-response/SKILL.md +6 -0
  842. package/bundled-skills/seo-fundamentals/SKILL.md +6 -0
  843. package/bundled-skills/seo-programmatic/SKILL.md +6 -0
  844. package/bundled-skills/sequence-psychologist/SKILL.md +6 -0
  845. package/bundled-skills/server-management/SKILL.md +6 -0
  846. package/bundled-skills/service-mesh-expert/SKILL.md +6 -0
  847. package/bundled-skills/setup-help/SKILL.md +6 -0
  848. package/bundled-skills/sexual-health-analyzer/SKILL.md +8 -1109
  849. package/bundled-skills/sexual-health-analyzer/references/detailed-guide.md +1123 -0
  850. package/bundled-skills/sharp-coder/SKILL.md +1 -0
  851. package/bundled-skills/sharp-edges/SKILL.md +1 -0
  852. package/bundled-skills/shodan-reconnaissance/SKILL.md +2 -356
  853. package/bundled-skills/shodan-reconnaissance/references/detailed-guide.md +366 -0
  854. package/bundled-skills/shopify-apps/SKILL.md +2 -1477
  855. package/bundled-skills/shopify-apps/references/detailed-guide.md +1512 -0
  856. package/bundled-skills/short/SKILL.md +6 -0
  857. package/bundled-skills/signup-flow-cro/SKILL.md +6 -0
  858. package/bundled-skills/simplify-code/SKILL.md +6 -0
  859. package/bundled-skills/skill-creator/SKILL.md +2 -568
  860. package/bundled-skills/skill-creator/references/detailed-guide.md +581 -0
  861. package/bundled-skills/skill-creator-ms/SKILL.md +2 -601
  862. package/bundled-skills/skill-creator-ms/references/detailed-guide.md +614 -0
  863. package/bundled-skills/skill-improver/SKILL.md +1 -0
  864. package/bundled-skills/skill-router/SKILL.md +1 -0
  865. package/bundled-skills/skill-scanner/SKILL.md +1 -0
  866. package/bundled-skills/skill-security-audit/SKILL.md +87 -0
  867. package/bundled-skills/skill-seekers/SKILL.md +6 -0
  868. package/bundled-skills/skill-writer/SKILL.md +1 -0
  869. package/bundled-skills/skin-health-analyzer/SKILL.md +8 -696
  870. package/bundled-skills/skin-health-analyzer/references/detailed-guide.md +710 -0
  871. package/bundled-skills/slack-automation/SKILL.md +6 -0
  872. package/bundled-skills/slack-bot-builder/SKILL.md +2 -1372
  873. package/bundled-skills/slack-bot-builder/references/detailed-guide.md +1395 -0
  874. package/bundled-skills/sleep-analyzer/SKILL.md +5 -764
  875. package/bundled-skills/sleep-analyzer/references/detailed-guide.md +773 -0
  876. package/bundled-skills/smartui-skill/SKILL.md +1 -1
  877. package/bundled-skills/smtp-penetration-testing/SKILL.md +2 -346
  878. package/bundled-skills/smtp-penetration-testing/references/detailed-guide.md +355 -0
  879. package/bundled-skills/social-content/SKILL.md +2 -797
  880. package/bundled-skills/social-content/references/detailed-guide.md +816 -0
  881. package/bundled-skills/social-proof-architect/SKILL.md +6 -0
  882. package/bundled-skills/software-architecture/SKILL.md +6 -0
  883. package/bundled-skills/spec-to-code-compliance/SKILL.md +7 -0
  884. package/bundled-skills/speckit-updater/SKILL.md +1 -0
  885. package/bundled-skills/speed/SKILL.md +7 -0
  886. package/bundled-skills/sred-project-organizer/SKILL.md +1 -0
  887. package/bundled-skills/sred-work-summary/SKILL.md +1 -0
  888. package/bundled-skills/statsmodels/SKILL.md +3 -586
  889. package/bundled-skills/statsmodels/references/detailed-guide.md +600 -0
  890. package/bundled-skills/steve-jobs/SKILL.md +2 -564
  891. package/bundled-skills/steve-jobs/references/detailed-guide.md +574 -0
  892. package/bundled-skills/stitch-loop/SKILL.md +1 -0
  893. package/bundled-skills/stripe-automation/SKILL.md +6 -0
  894. package/bundled-skills/stripe-integration/SKILL.md +60 -79
  895. package/bundled-skills/styleseed-design-review/SKILL.md +1 -1
  896. package/bundled-skills/subagent-orchestrator/SKILL.md +1 -0
  897. package/bundled-skills/subject-line-psychologist/SKILL.md +6 -0
  898. package/bundled-skills/supabase/SKILL.md +1 -1
  899. package/bundled-skills/supabase-automation/SKILL.md +6 -0
  900. package/bundled-skills/superpowers-lab/SKILL.md +6 -0
  901. package/bundled-skills/supply-chain-risk-auditor/SKILL.md +7 -0
  902. package/bundled-skills/swiftui-expert-skill/SKILL.md +1 -1
  903. package/bundled-skills/sympy/SKILL.md +3 -426
  904. package/bundled-skills/sympy/references/detailed-guide.md +439 -0
  905. package/bundled-skills/systematic-debugging/CREATION-LOG.md +3 -0
  906. package/bundled-skills/systematic-debugging/SKILL.md +30 -34
  907. package/bundled-skills/systematic-debugging/condition-based-waiting.md +9 -6
  908. package/bundled-skills/systematic-debugging/defense-in-depth.md +13 -7
  909. package/bundled-skills/systematic-debugging/find-polluter.sh +77 -57
  910. package/bundled-skills/systematic-debugging/root-cause-tracing.md +7 -5
  911. package/bundled-skills/systematic-debugging/test-academic.md +3 -0
  912. package/bundled-skills/systematic-debugging/test-pressure-1.md +3 -0
  913. package/bundled-skills/systematic-debugging/test-pressure-2.md +3 -0
  914. package/bundled-skills/systematic-debugging/test-pressure-3.md +3 -0
  915. package/bundled-skills/tcm-constitution-analyzer/SKILL.md +5 -655
  916. package/bundled-skills/tcm-constitution-analyzer/references/detailed-guide.md +660 -0
  917. package/bundled-skills/tdd-workflows-tdd-cycle/SKILL.md +6 -0
  918. package/bundled-skills/technical-tutorials/SKILL.md +5 -483
  919. package/bundled-skills/technical-tutorials/references/detailed-guide.md +496 -0
  920. package/bundled-skills/telegram/SKILL.md +2 -541
  921. package/bundled-skills/telegram/references/detailed-guide.md +569 -0
  922. package/bundled-skills/telegram-mini-app/SKILL.md +2 -643
  923. package/bundled-skills/telegram-mini-app/references/detailed-guide.md +661 -0
  924. package/bundled-skills/temporal-python-pro/SKILL.md +6 -0
  925. package/bundled-skills/terraform-skill/SKILL.md +4 -417
  926. package/bundled-skills/terraform-skill/references/detailed-guide.md +430 -0
  927. package/bundled-skills/test-driven-development/SKILL.md +21 -124
  928. package/bundled-skills/test-driven-development/testing-anti-patterns.md +6 -6
  929. package/bundled-skills/test-framework-migration-skill/SKILL.md +7 -1
  930. package/bundled-skills/threat-modeling-expert/SKILL.md +6 -0
  931. package/bundled-skills/threejs-animation/SKILL.md +5 -551
  932. package/bundled-skills/threejs-animation/references/detailed-guide.md +566 -0
  933. package/bundled-skills/threejs-fundamentals/SKILL.md +5 -525
  934. package/bundled-skills/threejs-fundamentals/references/detailed-guide.md +535 -0
  935. package/bundled-skills/threejs-geometry/SKILL.md +5 -572
  936. package/bundled-skills/threejs-geometry/references/detailed-guide.md +587 -0
  937. package/bundled-skills/threejs-interaction/SKILL.md +5 -666
  938. package/bundled-skills/threejs-interaction/references/detailed-guide.md +679 -0
  939. package/bundled-skills/threejs-lighting/SKILL.md +1 -0
  940. package/bundled-skills/threejs-loaders/SKILL.md +5 -637
  941. package/bundled-skills/threejs-loaders/references/detailed-guide.md +651 -0
  942. package/bundled-skills/threejs-materials/SKILL.md +3 -535
  943. package/bundled-skills/threejs-materials/references/detailed-guide.md +560 -0
  944. package/bundled-skills/threejs-postprocessing/SKILL.md +5 -617
  945. package/bundled-skills/threejs-postprocessing/references/detailed-guide.md +630 -0
  946. package/bundled-skills/threejs-shaders/SKILL.md +5 -679
  947. package/bundled-skills/threejs-shaders/references/detailed-guide.md +695 -0
  948. package/bundled-skills/threejs-skills/SKILL.md +4 -683
  949. package/bundled-skills/threejs-skills/references/detailed-guide.md +693 -0
  950. package/bundled-skills/threejs-textures/SKILL.md +5 -630
  951. package/bundled-skills/threejs-textures/references/detailed-guide.md +649 -0
  952. package/bundled-skills/to-issues/SKILL.md +5 -0
  953. package/bundled-skills/to-prd/SKILL.md +5 -0
  954. package/bundled-skills/todoist-automation/SKILL.md +6 -0
  955. package/bundled-skills/tools-page-seo-optimizer/SKILL.md +2 -580
  956. package/bundled-skills/tools-page-seo-optimizer/references/detailed-guide.md +602 -0
  957. package/bundled-skills/top-web-vulnerabilities/SKILL.md +2 -513
  958. package/bundled-skills/top-web-vulnerabilities/references/detailed-guide.md +523 -0
  959. package/bundled-skills/train-sentence-transformers/SKILL.md +1 -1
  960. package/bundled-skills/transformers-js/SKILL.md +5 -669
  961. package/bundled-skills/transformers-js/references/detailed-guide.md +683 -0
  962. package/bundled-skills/travel-health-analyzer/SKILL.md +1 -0
  963. package/bundled-skills/trello-automation/SKILL.md +6 -0
  964. package/bundled-skills/trigger-dev/SKILL.md +2 -937
  965. package/bundled-skills/trigger-dev/references/detailed-guide.md +950 -0
  966. package/bundled-skills/trust-calibrator/SKILL.md +6 -0
  967. package/bundled-skills/tutorial-engineer/SKILL.md +6 -0
  968. package/bundled-skills/twilio-communications/SKILL.md +2 -1549
  969. package/bundled-skills/twilio-communications/references/detailed-guide.md +1574 -0
  970. package/bundled-skills/typescript-pro/SKILL.md +6 -0
  971. package/bundled-skills/ui-a11y/SKILL.md +6 -0
  972. package/bundled-skills/ui-component/SKILL.md +6 -0
  973. package/bundled-skills/ui-motion/SKILL.md +7 -1
  974. package/bundled-skills/ui-pattern/SKILL.md +6 -0
  975. package/bundled-skills/ui-review/SKILL.md +6 -0
  976. package/bundled-skills/ui-skills/SKILL.md +6 -0
  977. package/bundled-skills/ui-tokens/SKILL.md +6 -0
  978. package/bundled-skills/uniprot-database/SKILL.md +1 -0
  979. package/bundled-skills/unslop-commit/SKILL.md +1 -1
  980. package/bundled-skills/unslop-file/SKILL.md +1 -1
  981. package/bundled-skills/unslop-review/SKILL.md +1 -1
  982. package/bundled-skills/unsplash-integration/SKILL.md +6 -0
  983. package/bundled-skills/update-swiftui-apis/SKILL.md +1 -1
  984. package/bundled-skills/upstash-qstash/SKILL.md +2 -919
  985. package/bundled-skills/upstash-qstash/references/detailed-guide.md +932 -0
  986. package/bundled-skills/usage-based-pricing/SKILL.md +5 -395
  987. package/bundled-skills/usage-based-pricing/references/detailed-guide.md +407 -0
  988. package/bundled-skills/ux-audit/SKILL.md +6 -0
  989. package/bundled-skills/ux-flow/SKILL.md +6 -0
  990. package/bundled-skills/ux-persuasion-engineer/SKILL.md +6 -0
  991. package/bundled-skills/variant-analysis/SKILL.md +1 -0
  992. package/bundled-skills/varlock/SKILL.md +1 -0
  993. package/bundled-skills/varlock-claude-skill/SKILL.md +6 -0
  994. package/bundled-skills/vector-database-engineer/SKILL.md +6 -0
  995. package/bundled-skills/vercel-deployment/SKILL.md +2 -650
  996. package/bundled-skills/vercel-deployment/references/detailed-guide.md +660 -0
  997. package/bundled-skills/vexor/SKILL.md +6 -0
  998. package/bundled-skills/vexor-cli/SKILL.md +1 -0
  999. package/bundled-skills/visual-emotion-engineer/SKILL.md +6 -0
  1000. package/bundled-skills/vizcom/SKILL.md +6 -0
  1001. package/bundled-skills/voice-agents/SKILL.md +2 -867
  1002. package/bundled-skills/voice-agents/references/detailed-guide.md +890 -0
  1003. package/bundled-skills/voice-ai-development/SKILL.md +2 -583
  1004. package/bundled-skills/voice-ai-development/references/detailed-guide.md +594 -0
  1005. package/bundled-skills/voice-ai-engine-development/SKILL.md +2 -702
  1006. package/bundled-skills/voice-ai-engine-development/references/detailed-guide.md +720 -0
  1007. package/bundled-skills/warren-buffett/SKILL.md +2 -577
  1008. package/bundled-skills/warren-buffett/references/detailed-guide.md +583 -0
  1009. package/bundled-skills/web-performance-optimization/SKILL.md +2 -214
  1010. package/bundled-skills/web-performance-optimization/references/detailed-guide.md +226 -0
  1011. package/bundled-skills/web-scraper/SKILL.md +2 -728
  1012. package/bundled-skills/web-scraper/references/detailed-guide.md +792 -0
  1013. package/bundled-skills/webflow-automation/SKILL.md +6 -0
  1014. package/bundled-skills/weightloss-analyzer/SKILL.md +1 -0
  1015. package/bundled-skills/wellally-tech/SKILL.md +5 -367
  1016. package/bundled-skills/wellally-tech/references/detailed-guide.md +379 -0
  1017. package/bundled-skills/wiki-architect/SKILL.md +6 -0
  1018. package/bundled-skills/wiki-changelog/SKILL.md +6 -0
  1019. package/bundled-skills/wiki-onboarding/SKILL.md +6 -0
  1020. package/bundled-skills/wiki-qa/SKILL.md +6 -0
  1021. package/bundled-skills/wiki-researcher/SKILL.md +6 -0
  1022. package/bundled-skills/windows-privilege-escalation/SKILL.md +131 -0
  1023. package/bundled-skills/windows-privilege-escalation/references/detailed-guide.md +397 -0
  1024. package/bundled-skills/wireshark-analysis/SKILL.md +2 -419
  1025. package/bundled-skills/wireshark-analysis/references/detailed-guide.md +429 -0
  1026. package/bundled-skills/wjttc-builder/SKILL.md +1 -1
  1027. package/bundled-skills/wjttc-tester/SKILL.md +1 -1
  1028. package/bundled-skills/wordpress/SKILL.md +2 -572
  1029. package/bundled-skills/wordpress/references/detailed-guide.md +582 -0
  1030. package/bundled-skills/wordpress-penetration-testing/SKILL.md +68 -0
  1031. package/bundled-skills/wordpress-penetration-testing/references/detailed-guide.md +555 -0
  1032. package/bundled-skills/wordpress-plugin-development/SKILL.md +2 -474
  1033. package/bundled-skills/wordpress-plugin-development/references/detailed-guide.md +485 -0
  1034. package/bundled-skills/wordpress-theme-development/SKILL.md +2 -479
  1035. package/bundled-skills/wordpress-theme-development/references/detailed-guide.md +490 -0
  1036. package/bundled-skills/wordpress-woocommerce-development/SKILL.md +2 -605
  1037. package/bundled-skills/wordpress-woocommerce-development/references/detailed-guide.md +615 -0
  1038. package/bundled-skills/workflow-automation/SKILL.md +2 -875
  1039. package/bundled-skills/workflow-automation/references/detailed-guide.md +902 -0
  1040. package/bundled-skills/writing-great-skills/SKILL.md +5 -0
  1041. package/bundled-skills/x-article-publisher-skill/SKILL.md +6 -0
  1042. package/bundled-skills/x402-express-wrapper/SKILL.md +1 -0
  1043. package/bundled-skills/xss-html-injection/SKILL.md +2 -389
  1044. package/bundled-skills/xss-html-injection/references/detailed-guide.md +399 -0
  1045. package/bundled-skills/yann-lecun/SKILL.md +2 -1431
  1046. package/bundled-skills/yann-lecun/references/detailed-guide.md +1484 -0
  1047. package/bundled-skills/yann-lecun-filosofia/SKILL.md +6 -0
  1048. package/bundled-skills/yann-lecun-tecnico/SKILL.md +2 -485
  1049. package/bundled-skills/yann-lecun-tecnico/references/detailed-guide.md +502 -0
  1050. package/bundled-skills/youtube-seo-optimizer/SKILL.md +4 -884
  1051. package/bundled-skills/youtube-seo-optimizer/references/detailed-guide.md +907 -0
  1052. package/bundled-skills/zapier-make-patterns/SKILL.md +2 -728
  1053. package/bundled-skills/zapier-make-patterns/references/detailed-guide.md +752 -0
  1054. package/bundled-skills/zipai-optimizer/SKILL.md +7 -0
  1055. package/bundled-skills/zoom-automation/SKILL.md +6 -0
  1056. package/package.json +1 -1
  1057. package/skills_index.json +541 -383
  1058. package/bundled-skills/docs/AUDIT.md +0 -3
  1059. package/bundled-skills/docs/BUNDLES.md +0 -3
  1060. package/bundled-skills/docs/CATEGORIZATION_IMPLEMENTATION.md +0 -3
  1061. package/bundled-skills/docs/CI_DRIFT_FIX.md +0 -3
  1062. package/bundled-skills/docs/COMMUNITY_GUIDELINES.md +0 -3
  1063. package/bundled-skills/docs/DATE_TRACKING_IMPLEMENTATION.md +0 -3
  1064. package/bundled-skills/docs/EXAMPLES.md +0 -3
  1065. package/bundled-skills/docs/FAQ.md +0 -3
  1066. package/bundled-skills/docs/GETTING_STARTED.md +0 -3
  1067. package/bundled-skills/docs/KIRO_INTEGRATION.md +0 -3
  1068. package/bundled-skills/docs/QUALITY_BAR.md +0 -3
  1069. package/bundled-skills/docs/README.md +0 -51
  1070. package/bundled-skills/docs/SECURITY_GUARDRAILS.md +0 -3
  1071. package/bundled-skills/docs/SEC_SKILLS.md +0 -3
  1072. package/bundled-skills/docs/SKILLS_DATE_TRACKING.md +0 -3
  1073. package/bundled-skills/docs/SKILL_ANATOMY.md +0 -3
  1074. package/bundled-skills/docs/SKILL_TEMPLATE.md +0 -3
  1075. package/bundled-skills/docs/SMART_AUTO_CATEGORIZATION.md +0 -3
  1076. package/bundled-skills/docs/SOURCES.md +0 -3
  1077. package/bundled-skills/docs/USAGE.md +0 -3
  1078. package/bundled-skills/docs/VISUAL_GUIDE.md +0 -3
  1079. package/bundled-skills/docs/WORKFLOWS.md +0 -3
  1080. package/bundled-skills/docs/contributors/community-guidelines.md +0 -4
  1081. package/bundled-skills/docs/contributors/examples.md +0 -760
  1082. package/bundled-skills/docs/contributors/quality-bar.md +0 -104
  1083. package/bundled-skills/docs/contributors/security-guardrails.md +0 -70
  1084. package/bundled-skills/docs/contributors/skill-anatomy.md +0 -637
  1085. package/bundled-skills/docs/contributors/skill-template.md +0 -93
  1086. package/bundled-skills/docs/integrations/jetski-cortex.md +0 -282
  1087. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +0 -103
  1088. package/bundled-skills/docs/integrations/jetski-gemini-loader/loader.mjs +0 -154
  1089. package/bundled-skills/docs/integrations/jetski-gemini-loader/package.json +0 -1
  1090. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-preview-profile.md +0 -63
  1091. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-design.md +0 -304
  1092. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-goal.md +0 -171
  1093. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-worklog.md +0 -104
  1094. package/bundled-skills/docs/maintainers/audit.md +0 -89
  1095. package/bundled-skills/docs/maintainers/backups/README-2026-06-02.md +0 -687
  1096. package/bundled-skills/docs/maintainers/categorization-implementation.md +0 -160
  1097. package/bundled-skills/docs/maintainers/ci-drift-fix.md +0 -64
  1098. package/bundled-skills/docs/maintainers/date-tracking-implementation.md +0 -66
  1099. package/bundled-skills/docs/maintainers/full-repo-audit-2026-05-23.md +0 -289
  1100. package/bundled-skills/docs/maintainers/legacy-redirect-bridge.md +0 -46
  1101. package/bundled-skills/docs/maintainers/merge-batch.md +0 -81
  1102. package/bundled-skills/docs/maintainers/merging-prs.md +0 -79
  1103. package/bundled-skills/docs/maintainers/pr-autonomy.md +0 -102
  1104. package/bundled-skills/docs/maintainers/provenance-identity-exceptions.json +0 -14
  1105. package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +0 -32
  1106. package/bundled-skills/docs/maintainers/release-process.md +0 -124
  1107. package/bundled-skills/docs/maintainers/repo-growth-seo.md +0 -133
  1108. package/bundled-skills/docs/maintainers/rollback-procedure.md +0 -43
  1109. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.csv +0 -34
  1110. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.md +0 -60
  1111. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-18-addendum.md +0 -22
  1112. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-addendum.md +0 -48
  1113. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.csv +0 -34
  1114. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.md +0 -86
  1115. package/bundled-skills/docs/maintainers/skills-date-tracking.md +0 -228
  1116. package/bundled-skills/docs/maintainers/skills-import-2026-03-21.md +0 -81
  1117. package/bundled-skills/docs/maintainers/skills-update-guide.md +0 -92
  1118. package/bundled-skills/docs/maintainers/smart-auto-categorization.md +0 -218
  1119. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/README.md +0 -19
  1120. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-cases.json +0 -74
  1121. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-results.json +0 -86
  1122. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/submission.json +0 -41
  1123. package/bundled-skills/docs/sources/LICENSE-MICROSOFT +0 -21
  1124. package/bundled-skills/docs/sources/microsoft-skills-attribution.json +0 -709
  1125. package/bundled-skills/docs/sources/sources.md +0 -179
  1126. package/bundled-skills/docs/users/aas-core.md +0 -225
  1127. package/bundled-skills/docs/users/agent-overload-recovery.md +0 -54
  1128. package/bundled-skills/docs/users/agentic-awesome-skills-vs-awesome-claude-skills.md +0 -44
  1129. package/bundled-skills/docs/users/ai-agent-skills.md +0 -48
  1130. package/bundled-skills/docs/users/best-claude-code-skills-github.md +0 -62
  1131. package/bundled-skills/docs/users/best-cursor-skills-github.md +0 -62
  1132. package/bundled-skills/docs/users/bundles.md +0 -1067
  1133. package/bundled-skills/docs/users/claude-code-skills.md +0 -89
  1134. package/bundled-skills/docs/users/codex-cli-skills.md +0 -88
  1135. package/bundled-skills/docs/users/cursor-skills.md +0 -56
  1136. package/bundled-skills/docs/users/discovery-manifest.md +0 -65
  1137. package/bundled-skills/docs/users/faq.md +0 -521
  1138. package/bundled-skills/docs/users/gemini-cli-skills.md +0 -56
  1139. package/bundled-skills/docs/users/getting-started.md +0 -233
  1140. package/bundled-skills/docs/users/kiro-integration.md +0 -304
  1141. package/bundled-skills/docs/users/local-config.md +0 -152
  1142. package/bundled-skills/docs/users/plugins.md +0 -201
  1143. package/bundled-skills/docs/users/security-and-antivirus.md +0 -63
  1144. package/bundled-skills/docs/users/security-skills.md +0 -1722
  1145. package/bundled-skills/docs/users/skills-library-overview.md +0 -87
  1146. package/bundled-skills/docs/users/skills-vs-mcp-tools.md +0 -108
  1147. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +0 -101
  1148. package/bundled-skills/docs/users/usage.md +0 -465
  1149. package/bundled-skills/docs/users/visual-guide.md +0 -515
  1150. package/bundled-skills/docs/users/walkthrough.md +0 -46
  1151. package/bundled-skills/docs/users/windows-truncation-recovery.md +0 -135
  1152. package/bundled-skills/docs/users/workflows.md +0 -215
  1153. package/bundled-skills/docs/vietnamese/AAS_CORE.vi.md +0 -28
  1154. package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +0 -124
  1155. package/bundled-skills/docs/vietnamese/CONTRIBUTING.vi.md +0 -242
  1156. package/bundled-skills/docs/vietnamese/EXAMPLES.vi.md +0 -56
  1157. package/bundled-skills/docs/vietnamese/FAQ.vi.md +0 -195
  1158. package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +0 -123
  1159. package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +0 -69
  1160. package/bundled-skills/docs/vietnamese/README.vi.md +0 -191
  1161. package/bundled-skills/docs/vietnamese/SECURITY.vi.md +0 -19
  1162. package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +0 -51
  1163. package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +0 -106
  1164. package/bundled-skills/docs/vietnamese/SKILL_ANATOMY.vi.md +0 -633
  1165. package/bundled-skills/docs/vietnamese/SOURCES.vi.md +0 -21
  1166. package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +0 -65
  1167. package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +0 -511
  1168. package/bundled-skills/docs/walkthrough.md +0 -3
@@ -16,1556 +16,9 @@ WhatsApp Business API, and user verification (2FA). Covers the full
16
16
  spectrum from simple notifications to complex IVR systems and multi-channel
17
17
  authentication. Critical focus on compliance, rate limits, and error handling.
18
18
 
19
- ## Patterns
19
+ ## Detailed Guide
20
20
 
21
- ### SMS Sending Pattern
22
-
23
- Basic pattern for sending SMS messages with Twilio.
24
- Handles the fundamentals: phone number formatting, message delivery,
25
- and delivery status callbacks.
26
-
27
- Key considerations:
28
- - Phone numbers must be in E.164 format (+1234567890)
29
- - Default rate limit: 80 messages per second (MPS)
30
- - Messages over 160 characters are split (and cost more)
31
- - Carrier filtering can block messages (especially to US numbers)
32
-
33
- **When to use**: Sending notifications to users,Transactional messages (order confirmations, shipping),Alerts and reminders
34
-
35
- from twilio.rest import Client
36
- from twilio.base.exceptions import TwilioRestException
37
- import os
38
- import re
39
-
40
- class TwilioSMS:
41
- """
42
- SMS sending with proper error handling and validation.
43
- """
44
-
45
- def __init__(self):
46
- self.client = Client(
47
- os.environ["TWILIO_ACCOUNT_SID"],
48
- os.environ["TWILIO_AUTH_TOKEN"]
49
- )
50
- self.from_number = os.environ["TWILIO_PHONE_NUMBER"]
51
-
52
- def validate_e164(self, phone: str) -> bool:
53
- """Validate phone number is in E.164 format."""
54
- pattern = r'^\+[1-9]\d{1,14}$'
55
- return bool(re.match(pattern, phone))
56
-
57
- def send_sms(
58
- self,
59
- to: str,
60
- body: str,
61
- status_callback: str = None
62
- ) -> dict:
63
- """
64
- Send an SMS message.
65
-
66
- Args:
67
- to: Recipient phone number in E.164 format
68
- body: Message text (160 chars = 1 segment)
69
- status_callback: URL for delivery status webhooks
70
-
71
- Returns:
72
- Message SID and status
73
- """
74
- # Validate phone number format
75
- if not self.validate_e164(to):
76
- return {
77
- "success": False,
78
- "error": "Phone number must be in E.164 format (+1234567890)"
79
- }
80
-
81
- # Check message length (warn about segmentation)
82
- segment_count = (len(body) + 159) // 160
83
- if segment_count > 1:
84
- print(f"Warning: Message will be sent as {segment_count} segments")
85
-
86
- try:
87
- message = self.client.messages.create(
88
- to=to,
89
- from_=self.from_number,
90
- body=body,
91
- status_callback=status_callback
92
- )
93
-
94
- return {
95
- "success": True,
96
- "message_sid": message.sid,
97
- "status": message.status,
98
- "segments": segment_count
99
- }
100
-
101
- except TwilioRestException as e:
102
- return self._handle_error(e)
103
-
104
- def _handle_error(self, error: TwilioRestException) -> dict:
105
- """Handle Twilio-specific errors."""
106
- error_handlers = {
107
- 21610: "Recipient has opted out. They must reply START.",
108
- 21614: "Invalid 'To' phone number format.",
109
- 21211: "'From' phone number is not valid.",
110
- 30003: "Phone is unreachable (off, airplane mode, no signal).",
111
- 30005: "Unknown destination (invalid number or landline).",
112
- 30006: "Landline or unreachable carrier.",
113
- 30429: "Rate limit exceeded. Implement exponential backoff.",
114
- }
115
-
116
- return {
117
- "success": False,
118
- "error_code": error.code,
119
- "error": error_handlers.get(error.code, error.msg),
120
- "details": str(error)
121
- }
122
-
123
- # Usage
124
- sms = TwilioSMS()
125
- result = sms.send_sms(
126
- to="+14155551234",
127
- body="Your order #1234 has shipped!",
128
- status_callback="https://your-app.com/webhooks/twilio/status"
129
- )
130
-
131
- ### Anti_patterns
132
-
133
- - Not validating E.164 format before sending
134
- - Hardcoding Twilio credentials in code
135
- - Ignoring delivery status callbacks
136
- - Not handling the opted-out (21610) error
137
-
138
- ### Twilio Verify Pattern (2FA/OTP)
139
-
140
- Use Twilio Verify for phone number verification and 2FA.
141
- Handles code generation, delivery, rate limiting, and fraud prevention.
142
-
143
- Key benefits over DIY OTP:
144
- - Twilio manages code generation and expiration
145
- - Built-in fraud prevention (saved customers $82M+ blocking 747M attempts)
146
- - Handles rate limiting automatically
147
- - Multi-channel: SMS, Voice, Email, Push, WhatsApp
148
-
149
- Google found SMS 2FA blocks "100% of automated bots, 96% of bulk
150
- phishing attacks, and 76% of targeted attacks."
151
-
152
- **When to use**: User phone number verification at signup,Two-factor authentication (2FA),Password reset verification,High-value transaction confirmation
153
-
154
- from twilio.rest import Client
155
- from twilio.base.exceptions import TwilioRestException
156
- import os
157
- from enum import Enum
158
- from typing import Optional
159
-
160
- class VerifyChannel(Enum):
161
- SMS = "sms"
162
- CALL = "call"
163
- EMAIL = "email"
164
- WHATSAPP = "whatsapp"
165
-
166
- class TwilioVerify:
167
- """
168
- Phone verification with Twilio Verify.
169
- Never store OTP codes - Twilio handles it.
170
- """
171
-
172
- def __init__(self, verify_service_sid: str = None):
173
- self.client = Client(
174
- os.environ["TWILIO_ACCOUNT_SID"],
175
- os.environ["TWILIO_AUTH_TOKEN"]
176
- )
177
- # Create a Verify Service in Twilio Console first
178
- self.service_sid = verify_service_sid or os.environ["TWILIO_VERIFY_SID"]
179
-
180
- def send_verification(
181
- self,
182
- to: str,
183
- channel: VerifyChannel = VerifyChannel.SMS,
184
- locale: str = "en"
185
- ) -> dict:
186
- """
187
- Send verification code to phone/email.
188
-
189
- Args:
190
- to: Phone number (E.164) or email
191
- channel: SMS, call, email, or whatsapp
192
- locale: Language code for message
193
-
194
- Returns:
195
- Verification status
196
- """
197
- try:
198
- verification = self.client.verify \
199
- .v2 \
200
- .services(self.service_sid) \
201
- .verifications \
202
- .create(
203
- to=to,
204
- channel=channel.value,
205
- locale=locale
206
- )
207
-
208
- return {
209
- "success": True,
210
- "status": verification.status, # "pending"
211
- "channel": channel.value,
212
- "valid": verification.valid
213
- }
214
-
215
- except TwilioRestException as e:
216
- return self._handle_verify_error(e)
217
-
218
- def check_verification(self, to: str, code: str) -> dict:
219
- """
220
- Check if verification code is correct.
221
-
222
- Args:
223
- to: Phone number or email that received code
224
- code: The code entered by user
225
-
226
- Returns:
227
- Verification result
228
- """
229
- try:
230
- check = self.client.verify \
231
- .v2 \
232
- .services(self.service_sid) \
233
- .verification_checks \
234
- .create(
235
- to=to,
236
- code=code
237
- )
238
-
239
- return {
240
- "success": True,
241
- "valid": check.status == "approved",
242
- "status": check.status # "approved" or "pending"
243
- }
244
-
245
- except TwilioRestException as e:
246
- # Code was wrong or expired
247
- return {
248
- "success": False,
249
- "valid": False,
250
- "error": str(e)
251
- }
252
-
253
- def _handle_verify_error(self, error: TwilioRestException) -> dict:
254
- """Handle Verify-specific errors."""
255
- error_handlers = {
256
- 60200: "Invalid phone number format",
257
- 60203: "Max send attempts reached for this number",
258
- 60205: "Service not found - check VERIFY_SID",
259
- 60223: "Failed to create verification - carrier rejected",
260
- }
261
-
262
- return {
263
- "success": False,
264
- "error_code": error.code,
265
- "error": error_handlers.get(error.code, error.msg)
266
- }
267
-
268
- # Usage Example - Signup Flow
269
- verify = TwilioVerify()
270
-
271
- # Step 1: User enters phone number
272
- result = verify.send_verification("+14155551234", VerifyChannel.SMS)
273
- if result["success"]:
274
- print("Code sent! Check your phone.")
275
-
276
- # Step 2: User enters the code they received
277
- code = "123456" # From user input
278
- check = verify.check_verification("+14155551234", code)
279
-
280
- if check["valid"]:
281
- print("Phone verified! Create account.")
282
- else:
283
- print("Invalid code. Try again.")
284
-
285
- # Best Practice: Offer voice fallback
286
- async def verify_with_fallback(phone: str, max_attempts: int = 3):
287
- """Verify with voice fallback if SMS fails."""
288
- for attempt in range(max_attempts):
289
- channel = VerifyChannel.SMS if attempt == 0 else VerifyChannel.CALL
290
- result = verify.send_verification(phone, channel)
291
-
292
- if result["success"]:
293
- return result
294
-
295
- # If SMS failed, wait and try voice
296
- if channel == VerifyChannel.SMS:
297
- await asyncio.sleep(30)
298
- continue
299
-
300
- return {"success": False, "error": "All verification attempts failed"}
301
-
302
- ### Anti_patterns
303
-
304
- - Storing OTP codes in your database (Twilio handles this)
305
- - Not implementing rate limiting on your verify endpoint
306
- - Using same-code retries (let Verify generate new codes)
307
- - No fallback channel when SMS fails
308
-
309
- ### TwiML IVR Pattern
310
-
311
- Build Interactive Voice Response (IVR) systems using TwiML.
312
- TwiML (Twilio Markup Language) is XML that tells Twilio what to do
313
- when receiving calls.
314
-
315
- Core TwiML verbs:
316
- - <Say>: Text-to-speech
317
- - <Play>: Play audio file
318
- - <Gather>: Collect keypad/speech input
319
- - <Dial>: Connect to another number
320
- - <Record>: Record caller's voice
321
- - <Redirect>: Move to another TwiML endpoint
322
-
323
- Key insight: Twilio makes HTTP request to your webhook, you return
324
- TwiML, Twilio executes it. Stateless, so use URL params or sessions.
325
-
326
- **When to use**: Phone menu systems (press 1 for sales...),Automated customer support,Appointment reminders with confirmation,Voicemail systems
327
-
328
- from flask import Flask, request, Response
329
- from twilio.twiml.voice_response import VoiceResponse, Gather
330
- from twilio.request_validator import RequestValidator
331
- import os
332
-
333
- app = Flask(__name__)
334
-
335
- def validate_twilio_request(f):
336
- """Decorator to validate requests are from Twilio."""
337
- def wrapper(*args, **kwargs):
338
- validator = RequestValidator(os.environ["TWILIO_AUTH_TOKEN"])
339
-
340
- # Get request details
341
- url = request.url
342
- params = request.form.to_dict()
343
- signature = request.headers.get("X-Twilio-Signature", "")
344
-
345
- if not validator.validate(url, params, signature):
346
- return "Invalid request", 403
347
-
348
- return f(*args, **kwargs)
349
- wrapper.__name__ = f.__name__
350
- return wrapper
351
-
352
- @app.route("/voice/incoming", methods=["POST"])
353
- @validate_twilio_request
354
- def incoming_call():
355
- """Handle incoming call with IVR menu."""
356
- response = VoiceResponse()
357
-
358
- # Gather digits with timeout
359
- gather = Gather(
360
- num_digits=1,
361
- action="/voice/menu-selection",
362
- method="POST",
363
- timeout=5
364
- )
365
- gather.say(
366
- "Welcome to Acme Corp. "
367
- "Press 1 for sales. "
368
- "Press 2 for support. "
369
- "Press 3 to leave a message."
370
- )
371
- response.append(gather)
372
-
373
- # If no input, repeat
374
- response.redirect("/voice/incoming")
375
-
376
- return Response(str(response), mimetype="text/xml")
377
-
378
- @app.route("/voice/menu-selection", methods=["POST"])
379
- @validate_twilio_request
380
- def menu_selection():
381
- """Route based on menu selection."""
382
- response = VoiceResponse()
383
- digit = request.form.get("Digits", "")
384
-
385
- if digit == "1":
386
- # Transfer to sales
387
- response.say("Connecting you to sales.")
388
- response.dial(os.environ["SALES_PHONE"])
389
-
390
- elif digit == "2":
391
- # Transfer to support
392
- response.say("Connecting you to support.")
393
- response.dial(os.environ["SUPPORT_PHONE"])
394
-
395
- elif digit == "3":
396
- # Voicemail
397
- response.say("Please leave a message after the beep.")
398
- response.record(
399
- action="/voice/voicemail-saved",
400
- max_length=120,
401
- transcribe=True,
402
- transcribe_callback="/voice/transcription"
403
- )
404
-
405
- else:
406
- response.say("Invalid selection.")
407
- response.redirect("/voice/incoming")
408
-
409
- return Response(str(response), mimetype="text/xml")
410
-
411
- @app.route("/voice/voicemail-saved", methods=["POST"])
412
- @validate_twilio_request
413
- def voicemail_saved():
414
- """Handle saved voicemail."""
415
- response = VoiceResponse()
416
-
417
- recording_url = request.form.get("RecordingUrl")
418
- recording_sid = request.form.get("RecordingSid")
419
-
420
- # Save to database, notify team, etc.
421
- print(f"Voicemail saved: {recording_url}")
422
-
423
- response.say("Thank you. Goodbye.")
424
- response.hangup()
425
-
426
- return Response(str(response), mimetype="text/xml")
427
-
428
- @app.route("/voice/transcription", methods=["POST"])
429
- @validate_twilio_request
430
- def transcription_callback():
431
- """Handle voicemail transcription."""
432
- transcription = request.form.get("TranscriptionText")
433
- recording_sid = request.form.get("RecordingSid")
434
-
435
- # Save transcription, send to Slack, etc.
436
- print(f"Transcription: {transcription}")
437
-
438
- return "", 200
439
-
440
- # Outbound call example
441
- from twilio.rest import Client
442
-
443
- def make_outbound_call(to: str, message: str):
444
- """Make outbound call with custom TwiML."""
445
- client = Client(
446
- os.environ["TWILIO_ACCOUNT_SID"],
447
- os.environ["TWILIO_AUTH_TOKEN"]
448
- )
449
-
450
- # TwiML Bin URL or your endpoint
451
- call = client.calls.create(
452
- to=to,
453
- from_=os.environ["TWILIO_PHONE_NUMBER"],
454
- url="https://your-app.com/voice/outbound-message",
455
- status_callback="https://your-app.com/voice/status"
456
- )
457
-
458
- return call.sid
459
-
460
- if __name__ == "__main__":
461
- app.run(debug=True)
462
-
463
- ### Anti_patterns
464
-
465
- - Not validating X-Twilio-Signature (security risk)
466
- - Returning non-XML responses to Twilio
467
- - Not handling timeout/no-input cases
468
- - Hardcoding phone numbers in TwiML
469
-
470
- ### WhatsApp Business API Pattern
471
-
472
- Send and receive WhatsApp messages via Twilio API.
473
- Uses the same Twilio Messages API as SMS with minor changes.
474
-
475
- Key WhatsApp rules:
476
- - 24-hour session window: Can only reply within 24 hours of user message
477
- - Template messages: Pre-approved templates for outside session window
478
- - Opt-in required: Users must explicitly consent to receive messages
479
- - Rate limit: 80 MPS default (up to 400 with approval)
480
- - Character limits: Non-template 1024 chars, templates ~550 chars
481
-
482
- **When to use**: Customer support with rich media,Order notifications with buttons,Marketing messages (with templates),Interactive flows (booking, surveys)
483
-
484
- from twilio.rest import Client
485
- from twilio.base.exceptions import TwilioRestException
486
- import os
487
- from datetime import datetime, timedelta
488
- from typing import Optional
489
-
490
- class TwilioWhatsApp:
491
- """
492
- WhatsApp Business API via Twilio.
493
- Handles session windows and template messages.
494
- """
495
-
496
- def __init__(self):
497
- self.client = Client(
498
- os.environ["TWILIO_ACCOUNT_SID"],
499
- os.environ["TWILIO_AUTH_TOKEN"]
500
- )
501
- # WhatsApp number format: whatsapp:+14155551234
502
- self.from_number = os.environ["TWILIO_WHATSAPP_NUMBER"]
503
-
504
- def send_message(
505
- self,
506
- to: str,
507
- body: str,
508
- media_url: Optional[str] = None
509
- ) -> dict:
510
- """
511
- Send WhatsApp message within 24-hour session.
512
-
513
- Args:
514
- to: Recipient number (E.164, without whatsapp: prefix)
515
- body: Message text (max 1024 chars for non-template)
516
- media_url: Optional image/document URL
517
-
518
- Returns:
519
- Message result
520
- """
521
- # Format for WhatsApp
522
- to_whatsapp = f"whatsapp:{to}"
523
- from_whatsapp = f"whatsapp:{self.from_number}"
524
-
525
- try:
526
- message_params = {
527
- "to": to_whatsapp,
528
- "from_": from_whatsapp,
529
- "body": body
530
- }
531
-
532
- if media_url:
533
- message_params["media_url"] = [media_url]
534
-
535
- message = self.client.messages.create(**message_params)
536
-
537
- return {
538
- "success": True,
539
- "message_sid": message.sid,
540
- "status": message.status
541
- }
542
-
543
- except TwilioRestException as e:
544
- return self._handle_whatsapp_error(e)
545
-
546
- def send_template_message(
547
- self,
548
- to: str,
549
- content_sid: str,
550
- content_variables: dict
551
- ) -> dict:
552
- """
553
- Send pre-approved template message.
554
- Use this for messages outside 24-hour window.
555
-
556
- Content templates must be approved by WhatsApp first.
557
- Create them in Twilio Console > Content Template Builder.
558
- """
559
- to_whatsapp = f"whatsapp:{to}"
560
- from_whatsapp = f"whatsapp:{self.from_number}"
561
-
562
- try:
563
- message = self.client.messages.create(
564
- to=to_whatsapp,
565
- from_=from_whatsapp,
566
- content_sid=content_sid,
567
- content_variables=content_variables
568
- )
569
-
570
- return {
571
- "success": True,
572
- "message_sid": message.sid,
573
- "template": True
574
- }
575
-
576
- except TwilioRestException as e:
577
- return self._handle_whatsapp_error(e)
578
-
579
- def _handle_whatsapp_error(self, error: TwilioRestException) -> dict:
580
- """Handle WhatsApp-specific errors."""
581
- error_handlers = {
582
- 63016: "Outside 24-hour window. Use template message.",
583
- 63018: "Template not approved or doesn't exist.",
584
- 63025: "Too many template messages sent to this user.",
585
- 63038: "Rate limit exceeded for WhatsApp.",
586
- }
587
-
588
- return {
589
- "success": False,
590
- "error_code": error.code,
591
- "error": error_handlers.get(error.code, error.msg)
592
- }
593
-
594
- # Flask webhook for incoming WhatsApp messages
595
- from flask import Flask, request
596
-
597
- app = Flask(__name__)
598
-
599
- @app.route("/webhooks/whatsapp", methods=["POST"])
600
- def whatsapp_webhook():
601
- """Handle incoming WhatsApp messages."""
602
- from_number = request.form.get("From", "").replace("whatsapp:", "")
603
- body = request.form.get("Body", "")
604
- media_url = request.form.get("MediaUrl0") # First attachment
605
-
606
- # Track session start (24-hour window begins now)
607
- session_start = datetime.now()
608
- session_expires = session_start + timedelta(hours=24)
609
-
610
- # Store in database for session tracking
611
- # user_sessions[from_number] = session_expires
612
-
613
- # Process message and respond
614
- response = process_whatsapp_message(from_number, body, media_url)
615
-
616
- # Reply within session
617
- whatsapp = TwilioWhatsApp()
618
- whatsapp.send_message(from_number, response)
619
-
620
- return "", 200
621
-
622
- def process_whatsapp_message(phone: str, text: str, media: str) -> str:
623
- """Process incoming message and generate response."""
624
- text_lower = text.lower()
625
-
626
- if "order status" in text_lower:
627
- return "Your order #1234 is out for delivery!"
628
- elif "support" in text_lower:
629
- return "A support agent will contact you shortly."
630
- else:
631
- return "Thanks for your message! Reply with 'order status' or 'support'."
632
-
633
- # Send typing indicator (2025 feature)
634
- def send_typing_indicator(to: str):
635
- """Let user know you're typing."""
636
- # Requires Senders API setup
637
- pass
638
-
639
- ### Anti_patterns
640
-
641
- - Sending non-template messages outside 24-hour window
642
- - Not tracking session windows per user
643
- - Exceeding 1024 char limit for session messages
644
- - Not handling template rejection errors
645
-
646
- ### Webhook Handler Pattern
647
-
648
- Handle Twilio webhooks for delivery status, incoming messages,
649
- and call events. Critical: always validate X-Twilio-Signature.
650
-
651
- Twilio sends webhooks for:
652
- - Message status updates (queued → sent → delivered/failed)
653
- - Incoming SMS/WhatsApp messages
654
- - Call events (initiated, ringing, answered, completed)
655
- - Recording/transcription ready
656
-
657
- **When to use**: Tracking message delivery status,Receiving incoming messages,Call analytics and logging,Voicemail transcription processing
658
-
659
- from flask import Flask, request, abort
660
- from twilio.request_validator import RequestValidator
661
- from functools import wraps
662
- import os
663
- import logging
664
-
665
- app = Flask(__name__)
666
- logger = logging.getLogger(__name__)
667
-
668
- def validate_twilio_signature(f):
669
- """
670
- Validate that request came from Twilio.
671
- CRITICAL: Always use this for webhook endpoints.
672
- """
673
- @wraps(f)
674
- def wrapper(*args, **kwargs):
675
- validator = RequestValidator(os.environ["TWILIO_AUTH_TOKEN"])
676
-
677
- # Build full URL (including query params)
678
- url = request.url
679
-
680
- # Get POST body as dict
681
- params = request.form.to_dict()
682
-
683
- # Get signature from header
684
- signature = request.headers.get("X-Twilio-Signature", "")
685
-
686
- if not validator.validate(url, params, signature):
687
- logger.warning(f"Invalid Twilio signature from {request.remote_addr}")
688
- abort(403)
689
-
690
- return f(*args, **kwargs)
691
- return wrapper
692
-
693
- @app.route("/webhooks/twilio/sms/status", methods=["POST"])
694
- @validate_twilio_signature
695
- def sms_status_callback():
696
- """
697
- Handle SMS delivery status updates.
698
-
699
- Status progression: queued → sending → sent → delivered
700
- Or: queued → sending → undelivered/failed
701
- """
702
- message_sid = request.form.get("MessageSid")
703
- status = request.form.get("MessageStatus")
704
- error_code = request.form.get("ErrorCode")
705
- error_message = request.form.get("ErrorMessage")
706
-
707
- logger.info(f"SMS {message_sid}: {status}")
708
-
709
- if status == "delivered":
710
- # Message successfully delivered
711
- update_message_status(message_sid, "delivered")
712
-
713
- elif status == "undelivered":
714
- # Carrier rejected or other failure
715
- logger.error(f"SMS failed: {error_code} - {error_message}")
716
- handle_failed_message(message_sid, error_code, error_message)
717
-
718
- elif status == "failed":
719
- # Twilio couldn't send
720
- logger.error(f"SMS send failed: {error_code}")
721
- handle_failed_message(message_sid, error_code, error_message)
722
-
723
- return "", 200
724
-
725
- @app.route("/webhooks/twilio/sms/incoming", methods=["POST"])
726
- @validate_twilio_signature
727
- def incoming_sms():
728
- """
729
- Handle incoming SMS messages.
730
- """
731
- from_number = request.form.get("From")
732
- to_number = request.form.get("To")
733
- body = request.form.get("Body")
734
- num_media = int(request.form.get("NumMedia", 0))
735
-
736
- # Handle media attachments
737
- media_urls = []
738
- for i in range(num_media):
739
- media_urls.append(request.form.get(f"MediaUrl{i}"))
740
-
741
- # Check for opt-out keywords
742
- if body.strip().upper() in ["STOP", "UNSUBSCRIBE", "CANCEL"]:
743
- handle_opt_out(from_number)
744
- return "", 200
745
-
746
- # Check for opt-in keywords
747
- if body.strip().upper() in ["START", "SUBSCRIBE"]:
748
- handle_opt_in(from_number)
749
- return "", 200
750
-
751
- # Process message
752
- process_incoming_sms(from_number, body, media_urls)
753
-
754
- return "", 200
755
-
756
- @app.route("/webhooks/twilio/voice/status", methods=["POST"])
757
- @validate_twilio_signature
758
- def voice_status_callback():
759
- """Handle call status updates."""
760
- call_sid = request.form.get("CallSid")
761
- status = request.form.get("CallStatus")
762
- duration = request.form.get("CallDuration")
763
- direction = request.form.get("Direction")
764
-
765
- # Call statuses: initiated, ringing, in-progress, completed, busy, no-answer, canceled, failed
766
-
767
- logger.info(f"Call {call_sid}: {status} ({duration}s)")
768
-
769
- if status == "completed":
770
- # Call ended normally
771
- log_call_completion(call_sid, duration)
772
-
773
- elif status in ["busy", "no-answer", "canceled", "failed"]:
774
- # Call didn't connect
775
- handle_failed_call(call_sid, status)
776
-
777
- return "", 200
778
-
779
- # Helper functions
780
- def update_message_status(message_sid: str, status: str):
781
- """Update message status in database."""
782
- pass
783
-
784
- def handle_failed_message(message_sid: str, error_code: str, error_msg: str):
785
- """Handle failed message delivery."""
786
- # Notify team, retry logic, etc.
787
- pass
788
-
789
- def handle_opt_out(phone: str):
790
- """Handle user opting out of messages."""
791
- # Mark user as opted out in database
792
- # IMPORTANT: Must respect this!
793
- pass
794
-
795
- def handle_opt_in(phone: str):
796
- """Handle user opting back in."""
797
- pass
798
-
799
- def process_incoming_sms(from_phone: str, body: str, media: list):
800
- """Process incoming SMS message."""
801
- pass
802
-
803
- def log_call_completion(call_sid: str, duration: str):
804
- """Log completed call."""
805
- pass
806
-
807
- def handle_failed_call(call_sid: str, status: str):
808
- """Handle call that didn't connect."""
809
- pass
810
-
811
- ### Anti_patterns
812
-
813
- - Not validating X-Twilio-Signature
814
- - Exposing webhook URLs without authentication
815
- - Not handling opt-out keywords (STOP)
816
- - Blocking webhook response (should be fast)
817
-
818
- ### Rate Limit and Retry Pattern
819
-
820
- Handle Twilio rate limits and implement proper retry logic.
821
-
822
- Default limits:
823
- - SMS: 80 messages per second (MPS)
824
- - Voice: Varies by number type and region
825
- - API calls: 100 requests per second
826
-
827
- Error codes:
828
- - 20429: Voice API rate limit
829
- - 30429: Messaging API rate limit
830
-
831
- **When to use**: High-volume messaging applications,Bulk SMS campaigns,Automated calling systems
832
-
833
- import time
834
- import random
835
- from functools import wraps
836
- from twilio.base.exceptions import TwilioRestException
837
- import logging
838
-
839
- logger = logging.getLogger(__name__)
840
-
841
- def exponential_backoff_retry(
842
- max_retries: int = 5,
843
- base_delay: float = 1.0,
844
- max_delay: float = 60.0,
845
- rate_limit_codes: list = [20429, 30429]
846
- ):
847
- """
848
- Decorator for exponential backoff retry on rate limits.
849
-
850
- Uses jitter to prevent thundering herd.
851
- """
852
- def decorator(func):
853
- @wraps(func)
854
- def wrapper(*args, **kwargs):
855
- last_exception = None
856
-
857
- for attempt in range(max_retries + 1):
858
- try:
859
- return func(*args, **kwargs)
860
-
861
- except TwilioRestException as e:
862
- last_exception = e
863
-
864
- # Only retry on rate limit errors
865
- if e.code not in rate_limit_codes:
866
- raise
867
-
868
- if attempt == max_retries:
869
- logger.error(f"Max retries exceeded: {e}")
870
- raise
871
-
872
- # Calculate delay with jitter
873
- delay = min(
874
- base_delay * (2 ** attempt) + random.uniform(0, 1),
875
- max_delay
876
- )
877
-
878
- logger.warning(
879
- f"Rate limited (attempt {attempt + 1}/{max_retries}). "
880
- f"Retrying in {delay:.1f}s"
881
- )
882
- time.sleep(delay)
883
-
884
- raise last_exception
885
-
886
- return wrapper
887
- return decorator
888
-
889
- # Usage
890
- from twilio.rest import Client
891
-
892
- client = Client(account_sid, auth_token)
893
-
894
- @exponential_backoff_retry(max_retries=5)
895
- def send_sms(to: str, body: str):
896
- return client.messages.create(
897
- to=to,
898
- from_=from_number,
899
- body=body
900
- )
901
-
902
- # Bulk sending with rate limiting
903
- import asyncio
904
- from asyncio import Semaphore
905
-
906
- class RateLimitedSender:
907
- """
908
- Send messages with built-in rate limiting.
909
- Stays under Twilio's 80 MPS limit.
910
- """
911
-
912
- def __init__(self, client, from_number: str, mps: int = 50):
913
- self.client = client
914
- self.from_number = from_number
915
- self.mps = mps
916
- self.semaphore = Semaphore(mps)
917
-
918
- async def send_bulk(self, messages: list[dict]) -> list[dict]:
919
- """
920
- Send messages with rate limiting.
921
-
922
- Args:
923
- messages: List of {"to": "+1...", "body": "..."}
924
-
925
- Returns:
926
- Results for each message
927
- """
928
- tasks = [
929
- self._send_with_limit(msg["to"], msg["body"])
930
- for msg in messages
931
- ]
932
-
933
- return await asyncio.gather(*tasks, return_exceptions=True)
934
-
935
- async def _send_with_limit(self, to: str, body: str):
936
- """Send single message with semaphore-based rate limit."""
937
- async with self.semaphore:
938
- try:
939
- # Use sync client in thread pool
940
- loop = asyncio.get_event_loop()
941
- result = await loop.run_in_executor(
942
- None,
943
- lambda: self.client.messages.create(
944
- to=to,
945
- from_=self.from_number,
946
- body=body
947
- )
948
- )
949
- return {"success": True, "sid": result.sid, "to": to}
950
-
951
- except TwilioRestException as e:
952
- return {"success": False, "error": str(e), "to": to}
953
-
954
- finally:
955
- # Delay to maintain rate limit
956
- await asyncio.sleep(1 / self.mps)
957
-
958
- # Usage
959
- async def send_campaign():
960
- sender = RateLimitedSender(client, from_number, mps=50)
961
-
962
- messages = [
963
- {"to": "+14155551234", "body": "Hello!"},
964
- {"to": "+14155555678", "body": "Hello!"},
965
- # ... thousands of messages
966
- ]
967
-
968
- results = await sender.send_bulk(messages)
969
-
970
- successful = sum(1 for r in results if r.get("success"))
971
- print(f"Sent {successful}/{len(messages)} messages")
972
-
973
- ### Anti_patterns
974
-
975
- - Retrying immediately without backoff
976
- - No jitter causing thundering herd
977
- - Retrying non-rate-limit errors
978
- - Exceeding Twilio's MPS limit
979
-
980
- ## Sharp Edges
981
-
982
- ### Sending to Users Who Opted Out (Error 21610)
983
-
984
- Severity: HIGH
985
-
986
- Situation: Sending SMS to a phone number
987
-
988
- Symptoms:
989
- Message fails with error code 21610. Twilio rejects the message.
990
- User never receives the SMS. Same number worked before.
991
-
992
- Why this breaks:
993
- The recipient replied "STOP" (or UNSUBSCRIBE, CANCEL, etc.) to a previous
994
- message from your number. Twilio automatically honors opt-outs and blocks
995
- further messages to that number from your account.
996
-
997
- This is legally required for US messaging (TCPA, CTIA guidelines).
998
- You cannot override this - the user must reply "START" to opt back in.
999
-
1000
- Recommended fix:
1001
-
1002
- ## Track opt-out status in your database
1003
-
1004
- ```python
1005
- # In your webhook handler
1006
- @app.route("/webhooks/sms/incoming", methods=["POST"])
1007
- def incoming_sms():
1008
- from_number = request.form.get("From")
1009
- body = request.form.get("Body", "").strip().upper()
1010
-
1011
- # Standard opt-out keywords
1012
- if body in ["STOP", "UNSUBSCRIBE", "CANCEL", "END", "QUIT"]:
1013
- mark_user_opted_out(from_number)
1014
- return "", 200
1015
-
1016
- # Standard opt-in keywords
1017
- if body in ["START", "SUBSCRIBE", "YES", "UNSTOP"]:
1018
- mark_user_opted_in(from_number)
1019
- return "", 200
1020
-
1021
- # Process other messages...
1022
-
1023
- # Before sending
1024
- def send_sms_safe(to: str, body: str):
1025
- if is_user_opted_out(to):
1026
- return {"success": False, "error": "User has opted out"}
1027
-
1028
- try:
1029
- return send_sms(to, body)
1030
- except TwilioRestException as e:
1031
- if e.code == 21610:
1032
- # Update database - they opted out via carrier
1033
- mark_user_opted_out(to)
1034
- raise
1035
- ```
1036
-
1037
- ## Include opt-out instructions
1038
- Add "Reply STOP to unsubscribe" to marketing messages.
1039
-
1040
- ### Phone Unreachable But Valid (Error 30003)
1041
-
1042
- Severity: MEDIUM
1043
-
1044
- Situation: Sending SMS to a mobile number
1045
-
1046
- Symptoms:
1047
- Message fails with error 30003. Number was valid and worked before.
1048
- Intermittent - sometimes works, sometimes fails.
1049
-
1050
- Why this breaks:
1051
- Error 30003 means "Unreachable destination handset." The phone exists but
1052
- can't receive messages right now. Common causes:
1053
- - Phone powered off
1054
- - Airplane mode
1055
- - Out of signal range
1056
- - Carrier network issues
1057
- - Phone storage full
1058
-
1059
- Unlike 30006 (permanent unreachable), 30003 is usually temporary.
1060
-
1061
- Recommended fix:
1062
-
1063
- ## Implement retry logic for transient failures
1064
-
1065
- ```python
1066
- TRANSIENT_ERRORS = [30003, 30008, 30009] # Retriable errors
1067
-
1068
- async def send_with_retry(to: str, body: str, max_retries: int = 3):
1069
- for attempt in range(max_retries):
1070
- result = send_sms(to, body)
1071
-
1072
- if result["success"]:
1073
- return result
1074
-
1075
- if result.get("error_code") not in TRANSIENT_ERRORS:
1076
- # Don't retry permanent failures
1077
- return result
1078
-
1079
- # Exponential backoff: 5min, 15min, 45min
1080
- delay = 300 * (3 ** attempt)
1081
- await asyncio.sleep(delay)
1082
-
1083
- return {"success": False, "error": "Max retries exceeded"}
1084
- ```
1085
-
1086
- ## Provide fallback channel
1087
-
1088
- ```python
1089
- async def notify_user(user, message):
1090
- # Try SMS first
1091
- result = await send_sms(user.phone, message)
1092
-
1093
- if result.get("error_code") == 30003:
1094
- # Phone unreachable - try email
1095
- await send_email(user.email, message)
1096
- return {"channel": "email", "status": "sent"}
1097
-
1098
- return {"channel": "sms", "status": result["status"]}
1099
- ```
1100
-
1101
- ### Messages Blocked by Carrier Filtering
1102
-
1103
- Severity: HIGH
1104
-
1105
- Situation: Sending SMS to US phone numbers
1106
-
1107
- Symptoms:
1108
- Messages show as "sent" but never "delivered." No error from Twilio.
1109
- Users say they never received the message. Pattern in specific carriers
1110
- or message content.
1111
-
1112
- Why this breaks:
1113
- US carriers (Verizon, AT&T, T-Mobile) aggressively filter SMS for spam.
1114
- Your message might be blocked if:
1115
- - Contains URLs (especially short URLs or unknown domains)
1116
- - Looks like phishing (urgent, account, verify, click now)
1117
- - High volume from same number
1118
- - Not using registered A2P 10DLC
1119
- - Low sender reputation
1120
-
1121
- Carriers don't tell Twilio why messages are filtered - they just
1122
- silently drop them.
1123
-
1124
- Recommended fix:
1125
-
1126
- ## Register for A2P 10DLC (US requirement)
1127
-
1128
- ```
1129
- 1. Go to Twilio Console > Messaging > Trust Hub
1130
- 2. Register your business brand
1131
- 3. Create a messaging campaign (describes use case)
1132
- 4. Wait for approval (can take days)
1133
- 5. Associate phone numbers with campaign
1134
- ```
1135
-
1136
- ## Message content best practices
1137
-
1138
- ```python
1139
- def sanitize_message(text: str) -> str:
1140
- """Make message less likely to be filtered."""
1141
- # Avoid URL shorteners - use full domain
1142
- # Avoid spam trigger words
1143
- # Keep it conversational, not promotional
1144
-
1145
- # Example: Instead of this
1146
- bad = "URGENT: Verify your account now! Click: bit.ly/abc"
1147
-
1148
- # Do this
1149
- good = "Hi! Your order #1234 is ready. Questions? Reply here."
1150
-
1151
- return text
1152
-
1153
- # Use toll-free or short code for high volume
1154
- # 10DLC is for <10K msg/day
1155
- # Toll-free: up to 10K msg/day
1156
- # Short code: 100K+ msg/day
1157
- ```
1158
-
1159
- ## Monitor delivery rates
1160
-
1161
- ```python
1162
- def track_delivery_rate():
1163
- sent = get_messages_with_status("sent")
1164
- delivered = get_messages_with_status("delivered")
1165
-
1166
- rate = len(delivered) / len(sent) * 100
1167
-
1168
- if rate < 95:
1169
- alert_team(f"Delivery rate dropped to {rate}%")
1170
- ```
1171
-
1172
- ### Not Validating Webhook Signatures
1173
-
1174
- Severity: CRITICAL
1175
-
1176
- Situation: Receiving Twilio webhook callbacks
1177
-
1178
- Symptoms:
1179
- Attackers send fake webhooks to your endpoint. Fraudulent transactions
1180
- processed. Spoofed incoming messages trigger actions.
1181
-
1182
- Why this breaks:
1183
- Twilio signs all webhook requests with X-Twilio-Signature header.
1184
- If you don't validate this, anyone who knows your webhook URL can
1185
- send fake requests pretending to be Twilio.
1186
-
1187
- This can lead to:
1188
- - Fake message delivery confirmations
1189
- - Spoofed incoming messages
1190
- - Fraudulent verification approvals
1191
-
1192
- Recommended fix:
1193
-
1194
- ## ALWAYS validate the signature
1195
-
1196
- ```python
1197
- from twilio.request_validator import RequestValidator
1198
- from flask import Flask, request, abort
1199
- from functools import wraps
1200
- import os
1201
-
1202
- def require_twilio_signature(f):
1203
- """Decorator to validate Twilio webhook requests."""
1204
- @wraps(f)
1205
- def wrapper(*args, **kwargs):
1206
- validator = RequestValidator(os.environ["TWILIO_AUTH_TOKEN"])
1207
-
1208
- # Full URL including query string
1209
- url = request.url
1210
-
1211
- # POST body as dict
1212
- params = request.form.to_dict()
1213
-
1214
- # Signature header
1215
- signature = request.headers.get("X-Twilio-Signature", "")
1216
-
1217
- if not validator.validate(url, params, signature):
1218
- abort(403)
1219
-
1220
- return f(*args, **kwargs)
1221
- return wrapper
1222
-
1223
- @app.route("/webhooks/twilio", methods=["POST"])
1224
- @require_twilio_signature # ALWAYS use this
1225
- def twilio_webhook():
1226
- # Safe to process
1227
- pass
1228
- ```
1229
-
1230
- ## Common validation gotchas
1231
-
1232
- ```python
1233
- # URL must match EXACTLY what Twilio called
1234
- # If behind proxy, you might need:
1235
- url = request.headers.get("X-Forwarded-Proto", "http") + "://" + \
1236
- request.headers.get("X-Forwarded-Host", request.host) + \
1237
- request.path
1238
-
1239
- # If using ngrok, URL changes each restart
1240
- # Use consistent URL in production
1241
- ```
1242
-
1243
- ### WhatsApp Message Outside 24-Hour Window (Error 63016)
1244
-
1245
- Severity: HIGH
1246
-
1247
- Situation: Sending WhatsApp message to a user
1248
-
1249
- Symptoms:
1250
- Message fails with error 63016. "Message is outside the allowed window."
1251
- Template messages work, but regular messages fail.
1252
-
1253
- Why this breaks:
1254
- WhatsApp has strict rules about unsolicited messages:
1255
- - Users must message you first
1256
- - You can only reply within 24 hours of their last message
1257
- - After 24 hours, you must use pre-approved template messages
1258
-
1259
- This prevents spam and maintains WhatsApp's trust as a platform.
1260
-
1261
- Recommended fix:
1262
-
1263
- ## Track session windows per user
1264
-
1265
- ```python
1266
- from datetime import datetime, timedelta
1267
-
1268
- class WhatsAppSession:
1269
- def __init__(self, redis_client):
1270
- self.redis = redis_client
1271
- self.window_hours = 24
1272
-
1273
- def start_session(self, phone: str):
1274
- """Start/refresh 24-hour session on incoming message."""
1275
- key = f"wa_session:{phone}"
1276
- expires = datetime.now() + timedelta(hours=self.window_hours)
1277
- self.redis.set(key, expires.isoformat(), ex=self.window_hours * 3600)
1278
-
1279
- def can_send_freeform(self, phone: str) -> bool:
1280
- """Check if we can send non-template message."""
1281
- key = f"wa_session:{phone}"
1282
- expires_str = self.redis.get(key)
1283
-
1284
- if not expires_str:
1285
- return False
1286
-
1287
- expires = datetime.fromisoformat(expires_str)
1288
- return datetime.now() < expires
1289
-
1290
- def send_message(self, phone: str, body: str, template_sid: str = None):
1291
- """Send message, using template if outside window."""
1292
- if self.can_send_freeform(phone):
1293
- return send_whatsapp_message(phone, body)
1294
- elif template_sid:
1295
- return send_whatsapp_template(phone, template_sid)
1296
- else:
1297
- return {
1298
- "success": False,
1299
- "error": "Outside session window, template required"
1300
- }
1301
- ```
1302
-
1303
- ## Incoming message webhook
1304
-
1305
- ```python
1306
- @app.route("/webhooks/whatsapp", methods=["POST"])
1307
- def whatsapp_incoming():
1308
- from_phone = request.form.get("From").replace("whatsapp:", "")
1309
-
1310
- # Start/refresh session
1311
- session.start_session(from_phone)
1312
-
1313
- # Process message...
1314
- ```
1315
-
1316
- ## Create approved templates for common messages
1317
-
1318
- ```
1319
- 1. Twilio Console > Content Template Builder
1320
- 2. Create template with {{1}} placeholders
1321
- 3. Submit for WhatsApp approval (takes 24-48 hours)
1322
- 4. Use content_sid to send
1323
- ```
1324
-
1325
- ### Exposed Account SID or Auth Token
1326
-
1327
- Severity: CRITICAL
1328
-
1329
- Situation: Deploying Twilio integration
1330
-
1331
- Symptoms:
1332
- Unauthorized charges on Twilio account. Messages sent you didn't send.
1333
- Phone numbers purchased without authorization.
1334
-
1335
- Why this breaks:
1336
- If attackers get your Account SID + Auth Token, they have FULL access
1337
- to your Twilio account. They can:
1338
- - Send messages (charging your account)
1339
- - Buy phone numbers
1340
- - Access call recordings
1341
- - Modify your configuration
1342
-
1343
- Common exposure points:
1344
- - Hardcoded in source code (pushed to GitHub)
1345
- - In client-side JavaScript
1346
- - In Docker images
1347
- - In logs
1348
-
1349
- Recommended fix:
1350
-
1351
- ## Never hardcode credentials
1352
-
1353
- ```python
1354
- # BAD - never do this
1355
- client = Client("AC1234...", "abc123...")
1356
-
1357
- # GOOD - environment variables
1358
- client = Client(
1359
- os.environ["TWILIO_ACCOUNT_SID"],
1360
- os.environ["TWILIO_AUTH_TOKEN"]
1361
- )
1362
-
1363
- # GOOD - secrets manager
1364
- from aws_secretsmanager import get_secret
1365
- creds = get_secret("twilio-credentials")
1366
- client = Client(creds["sid"], creds["token"])
1367
- ```
1368
-
1369
- ## Use API Key instead of Auth Token
1370
-
1371
- ```python
1372
- # Auth Token has full account access
1373
- # API Keys can be scoped and revoked
1374
-
1375
- # Create API Key in Twilio Console
1376
- client = Client(
1377
- os.environ["TWILIO_API_KEY_SID"],
1378
- os.environ["TWILIO_API_KEY_SECRET"],
1379
- os.environ["TWILIO_ACCOUNT_SID"]
1380
- )
1381
-
1382
- # If compromised, revoke just that key
1383
- ```
1384
-
1385
- ## Rotate tokens immediately if exposed
1386
-
1387
- ```
1388
- 1. Twilio Console > Account > API credentials
1389
- 2. Rotate Auth Token
1390
- 3. Update all deployments with new token
1391
- 4. Review account activity for unauthorized use
1392
- ```
1393
-
1394
- ### Verify Rate Limit Exceeded (Error 60203)
1395
-
1396
- Severity: MEDIUM
1397
-
1398
- Situation: Sending verification codes
1399
-
1400
- Symptoms:
1401
- Verification request fails with error 60203.
1402
- "Max send attempts reached for this phone number."
1403
-
1404
- Why this breaks:
1405
- Twilio Verify has built-in rate limits to prevent abuse:
1406
- - 5 verification attempts per phone number per service per 10 minutes
1407
- - Helps prevent SMS pumping fraud
1408
- - Protects against brute-force attacks
1409
-
1410
- If users legitimately need more attempts, you may have UX issues.
1411
-
1412
- Recommended fix:
1413
-
1414
- ## Implement application-level rate limiting too
1415
-
1416
- ```python
1417
- from datetime import datetime, timedelta
1418
- import redis
1419
-
1420
- class VerifyRateLimiter:
1421
- def __init__(self, redis_client):
1422
- self.redis = redis_client
1423
- # Stricter than Twilio's limit
1424
- self.max_attempts = 3
1425
- self.window_minutes = 10
1426
-
1427
- def can_request(self, phone: str) -> bool:
1428
- key = f"verify_rate:{phone}"
1429
- attempts = self.redis.get(key)
1430
-
1431
- if attempts and int(attempts) >= self.max_attempts:
1432
- return False
1433
-
1434
- return True
1435
-
1436
- def record_attempt(self, phone: str):
1437
- key = f"verify_rate:{phone}"
1438
- pipe = self.redis.pipeline()
1439
- pipe.incr(key)
1440
- pipe.expire(key, self.window_minutes * 60)
1441
- pipe.execute()
1442
-
1443
- def get_wait_time(self, phone: str) -> int:
1444
- """Return seconds until user can request again."""
1445
- key = f"verify_rate:{phone}"
1446
- ttl = self.redis.ttl(key)
1447
- return max(0, ttl)
1448
-
1449
- # Usage
1450
- limiter = VerifyRateLimiter(redis_client)
1451
-
1452
- @app.route("/verify/send", methods=["POST"])
1453
- def send_verification():
1454
- phone = request.json["phone"]
1455
-
1456
- if not limiter.can_request(phone):
1457
- wait = limiter.get_wait_time(phone)
1458
- return {
1459
- "error": f"Too many attempts. Try again in {wait} seconds."
1460
- }, 429
1461
-
1462
- result = twilio_verify.send_verification(phone)
1463
-
1464
- if result["success"]:
1465
- limiter.record_attempt(phone)
1466
-
1467
- return result
1468
- ```
1469
-
1470
- ## Provide clear user feedback
1471
-
1472
- ```python
1473
- # Show remaining attempts
1474
- # Show countdown timer
1475
- # Offer alternative (voice call, email)
1476
- ```
1477
-
1478
- ## Validation Checks
1479
-
1480
- ### Hardcoded Twilio Credentials
1481
-
1482
- Severity: ERROR
1483
-
1484
- Twilio credentials must never be hardcoded
1485
-
1486
- Message: Hardcoded Twilio SID detected. Use environment variables.
1487
-
1488
- ### Auth Token in Source Code
1489
-
1490
- Severity: ERROR
1491
-
1492
- Auth tokens should be in environment variables
1493
-
1494
- Message: Hardcoded auth token. Use os.environ['TWILIO_AUTH_TOKEN'].
1495
-
1496
- ### Webhook Without Signature Validation
1497
-
1498
- Severity: ERROR
1499
-
1500
- Twilio webhooks must validate X-Twilio-Signature
1501
-
1502
- Message: Webhook without signature validation. Add RequestValidator check.
1503
-
1504
- ### Twilio Credentials in Client-Side Code
1505
-
1506
- Severity: ERROR
1507
-
1508
- Never expose Twilio credentials to browsers
1509
-
1510
- Message: Twilio credentials exposed client-side. Only use server-side.
1511
-
1512
- ### No E.164 Phone Number Validation
1513
-
1514
- Severity: WARNING
1515
-
1516
- Phone numbers should be validated before sending
1517
-
1518
- Message: Sending to phone without E.164 validation.
1519
-
1520
- ### Hardcoded Phone Numbers
1521
-
1522
- Severity: WARNING
1523
-
1524
- Phone numbers should come from config or database
1525
-
1526
- Message: Hardcoded phone number. Use config or environment variable.
1527
-
1528
- ### No Twilio Exception Handling
1529
-
1530
- Severity: WARNING
1531
-
1532
- Twilio calls should handle TwilioRestException
1533
-
1534
- Message: Twilio API call without error handling. Catch TwilioRestException.
1535
-
1536
- ### Not Handling Specific Error Codes
1537
-
1538
- Severity: INFO
1539
-
1540
- Handle common Twilio error codes specifically
1541
-
1542
- Message: Consider handling specific error codes (21610, 30003, etc.).
1543
-
1544
- ### No Opt-Out Keyword Handling
1545
-
1546
- Severity: WARNING
1547
-
1548
- SMS systems must handle STOP/UNSUBSCRIBE keywords
1549
-
1550
- Message: No opt-out handling. Check for STOP/UNSUBSCRIBE keywords.
1551
-
1552
- ### Not Checking Opt-Out Before Sending
1553
-
1554
- Severity: WARNING
1555
-
1556
- Check if user has opted out before sending SMS
1557
-
1558
- Message: Consider checking opt-out status before sending.
1559
-
1560
- ## Collaboration
1561
-
1562
- ### Delegation Triggers
1563
-
1564
- - user needs AI voice assistant -> voice-agents (Twilio provides telephony, voice-agents skill for AI conversation)
1565
- - user needs Slack notifications -> slack-bot-builder (Integrate SMS alerts with Slack notifications)
1566
- - user needs full auth system -> auth-specialist (Twilio Verify is one component of broader auth)
1567
- - user needs workflow automation -> workflow-automation (Trigger SMS/calls from automated workflows)
1568
- - user needs high-volume messaging -> devops (Scale webhooks, monitor delivery rates)
21
+ Read [the detailed guide](references/detailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.
1569
22
 
1570
23
  ## When to Use
1571
24
  - User mentions or implies: twilio