opencode-skills-collection 4.0.53 → 4.0.55

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 (1230) 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 +16 -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/backend-security-coder/resources/implementation-playbook.md +23 -0
  136. package/bundled-skills/basecamp-automation/SKILL.md +6 -0
  137. package/bundled-skills/baseline-ui/SKILL.md +6 -0
  138. package/bundled-skills/bash-pro/SKILL.md +6 -0
  139. package/bundled-skills/bdi-mental-states/SKILL.md +1 -0
  140. package/bundled-skills/beautiful-prose/SKILL.md +1 -0
  141. package/bundled-skills/bill-gates/SKILL.md +2 -778
  142. package/bundled-skills/bill-gates/references/detailed-guide.md +784 -0
  143. package/bundled-skills/biopython/SKILL.md +1 -0
  144. package/bundled-skills/bitbucket-automation/SKILL.md +6 -0
  145. package/bundled-skills/blog-writing-guide/SKILL.md +6 -0
  146. package/bundled-skills/box-automation/SKILL.md +6 -0
  147. package/bundled-skills/brain-to-docs/SKILL.md +6 -0
  148. package/bundled-skills/brainstorming/SKILL.md +6 -0
  149. package/bundled-skills/brand-guidelines/SKILL.md +1 -0
  150. package/bundled-skills/brand-guidelines-anthropic/SKILL.md +23 -8
  151. package/bundled-skills/brand-guidelines-community/SKILL.md +23 -8
  152. package/bundled-skills/brand-perception-psychologist/SKILL.md +6 -0
  153. package/bundled-skills/brooks-audit/SKILL.md +1 -1
  154. package/bundled-skills/brooks-debt/SKILL.md +1 -1
  155. package/bundled-skills/brooks-harness/SKILL.md +1 -1
  156. package/bundled-skills/brooks-review/SKILL.md +7 -1
  157. package/bundled-skills/brooks-sweep/SKILL.md +1 -1
  158. package/bundled-skills/brooks-test/SKILL.md +1 -1
  159. package/bundled-skills/browser-automation/SKILL.md +18 -1044
  160. package/bundled-skills/browser-automation/references/detailed-guide.md +852 -0
  161. package/bundled-skills/bug-hunt-swarm/SKILL.md +7 -1
  162. package/bundled-skills/build/SKILL.md +5 -627
  163. package/bundled-skills/build/references/detailed-guide.md +637 -0
  164. package/bundled-skills/bun-development/SKILL.md +4 -678
  165. package/bundled-skills/bun-development/references/detailed-guide.md +691 -0
  166. package/bundled-skills/burpsuite-project-parser/SKILL.md +1 -0
  167. package/bundled-skills/business-analyst/resources/implementation-playbook.md +23 -0
  168. package/bundled-skills/c-pro/SKILL.md +6 -0
  169. package/bundled-skills/calendly-automation/SKILL.md +6 -0
  170. package/bundled-skills/cc-skill-backend-patterns/SKILL.md +2 -572
  171. package/bundled-skills/cc-skill-backend-patterns/references/detailed-guide.md +584 -0
  172. package/bundled-skills/cc-skill-coding-standards/SKILL.md +2 -510
  173. package/bundled-skills/cc-skill-coding-standards/references/detailed-guide.md +523 -0
  174. package/bundled-skills/cc-skill-continuous-learning/SKILL.md +49 -7
  175. package/bundled-skills/cc-skill-continuous-learning/config.json +1 -16
  176. package/bundled-skills/cc-skill-continuous-learning/evaluate-session.sh +56 -59
  177. package/bundled-skills/cc-skill-frontend-patterns/SKILL.md +2 -621
  178. package/bundled-skills/cc-skill-frontend-patterns/references/detailed-guide.md +633 -0
  179. package/bundled-skills/cc-skill-security-review/SKILL.md +4 -36
  180. package/bundled-skills/cc-skill-security-review/references/detailed-guide.md +40 -0
  181. package/bundled-skills/cc-skill-strategic-compact/SKILL.md +53 -7
  182. package/bundled-skills/cc-skill-strategic-compact/suggest-compact.sh +20 -51
  183. package/bundled-skills/changelog-updates/SKILL.md +6 -528
  184. package/bundled-skills/changelog-updates/references/detailed-guide.md +540 -0
  185. package/bundled-skills/chat-widget/SKILL.md +5 -879
  186. package/bundled-skills/chat-widget/references/detailed-guide.md +890 -0
  187. package/bundled-skills/cirq/SKILL.md +1 -0
  188. package/bundled-skills/citation-management/SKILL.md +3 -960
  189. package/bundled-skills/citation-management/references/detailed-guide.md +975 -0
  190. package/bundled-skills/ckw-design/SKILL.md +6 -0
  191. package/bundled-skills/claimable-postgres/SKILL.md +1 -1
  192. package/bundled-skills/clarity-gate/SKILL.md +3 -635
  193. package/bundled-skills/clarity-gate/references/detailed-guide.md +653 -0
  194. package/bundled-skills/claude-ally-health/SKILL.md +6 -0
  195. package/bundled-skills/claude-code-expert/SKILL.md +2 -527
  196. package/bundled-skills/claude-code-expert/references/detailed-guide.md +548 -0
  197. package/bundled-skills/claude-d3js-skill/SKILL.md +2 -798
  198. package/bundled-skills/claude-d3js-skill/references/detailed-guide.md +811 -0
  199. package/bundled-skills/claude-in-chrome-troubleshooting/SKILL.md +1 -0
  200. package/bundled-skills/claude-scientific-skills/SKILL.md +6 -0
  201. package/bundled-skills/claude-settings-audit/SKILL.md +1 -0
  202. package/bundled-skills/claude-speed-reader/SKILL.md +6 -0
  203. package/bundled-skills/claude-win11-speckit-update-skill/SKILL.md +6 -0
  204. package/bundled-skills/clean-code/SKILL.md +6 -0
  205. package/bundled-skills/clerk-auth/SKILL.md +2 -812
  206. package/bundled-skills/clerk-auth/references/detailed-guide.md +820 -0
  207. package/bundled-skills/clickup-automation/SKILL.md +6 -0
  208. package/bundled-skills/closed-loop-delivery/SKILL.md +6 -0
  209. package/bundled-skills/co-marketing/SKILL.md +1 -1
  210. package/bundled-skills/code-documentation-doc-generate/SKILL.md +16 -1
  211. package/bundled-skills/code-documentation-doc-generate/resources/implementation-playbook.md +33 -55
  212. package/bundled-skills/code-refactoring-context-restore/SKILL.md +40 -177
  213. package/bundled-skills/code-refactoring-tech-debt/SKILL.md +20 -9
  214. package/bundled-skills/code-simplifier/SKILL.md +1 -0
  215. package/bundled-skills/codebase-cleanup-tech-debt/SKILL.md +20 -9
  216. package/bundled-skills/cold-email/SKILL.md +6 -0
  217. package/bundled-skills/commit/SKILL.md +1 -0
  218. package/bundled-skills/community-building/SKILL.md +1 -1
  219. package/bundled-skills/competitor-alternatives/SKILL.md +2 -740
  220. package/bundled-skills/competitor-alternatives/references/detailed-guide.md +756 -0
  221. package/bundled-skills/competitor-profiling/SKILL.md +1 -1
  222. package/bundled-skills/competitor-tracking/SKILL.md +1 -1
  223. package/bundled-skills/comprehensive-review-full-review/SKILL.md +6 -0
  224. package/bundled-skills/comprehensive-review-pr-enhance/SKILL.md +1 -0
  225. package/bundled-skills/computer-use-agents/SKILL.md +2 -2131
  226. package/bundled-skills/computer-use-agents/references/detailed-guide.md +2158 -0
  227. package/bundled-skills/computer-vision-expert/SKILL.md +6 -0
  228. package/bundled-skills/conductor-setup/SKILL.md +1 -0
  229. package/bundled-skills/confluence-automation/SKILL.md +6 -0
  230. package/bundled-skills/constant-time-analysis/SKILL.md +1 -0
  231. package/bundled-skills/container-security-hardening/SKILL.md +4 -915
  232. package/bundled-skills/container-security-hardening/references/detailed-guide.md +927 -0
  233. package/bundled-skills/content-creator/SKILL.md +53 -23
  234. package/bundled-skills/content-creator/assets/content_calendar_template.md +5 -2
  235. package/bundled-skills/content-creator/references/brand_guidelines.md +7 -3
  236. package/bundled-skills/content-creator/references/content_frameworks.md +12 -7
  237. package/bundled-skills/content-creator/references/social_media_optimization.md +61 -317
  238. package/bundled-skills/content-creator/scripts/brand_voice_analyzer.py +14 -9
  239. package/bundled-skills/content-creator/scripts/seo_optimizer.py +31 -94
  240. package/bundled-skills/context-compression/SKILL.md +1 -0
  241. package/bundled-skills/context-degradation/SKILL.md +1 -0
  242. package/bundled-skills/context-fundamentals/SKILL.md +1 -0
  243. package/bundled-skills/context-management-context-restore/SKILL.md +40 -177
  244. package/bundled-skills/context-optimization/SKILL.md +1 -0
  245. package/bundled-skills/convex/SKILL.md +4 -766
  246. package/bundled-skills/convex/references/detailed-guide.md +772 -0
  247. package/bundled-skills/copilot-sdk/SKILL.md +4 -496
  248. package/bundled-skills/copilot-sdk/references/detailed-guide.md +516 -0
  249. package/bundled-skills/copy-editing/SKILL.md +6 -0
  250. package/bundled-skills/copywriting/SKILL.md +6 -0
  251. package/bundled-skills/copywriting-psychologist/SKILL.md +6 -0
  252. package/bundled-skills/create-branch/SKILL.md +1 -0
  253. package/bundled-skills/create-pr/SKILL.md +7 -0
  254. package/bundled-skills/cred-omega/SKILL.md +2 -847
  255. package/bundled-skills/cred-omega/references/detailed-guide.md +872 -0
  256. package/bundled-skills/cro/SKILL.md +1 -1
  257. package/bundled-skills/csharp-pro/SKILL.md +6 -0
  258. package/bundled-skills/cucumber-skill/SKILL.md +1 -1
  259. package/bundled-skills/customer-psychographic-profiler/SKILL.md +6 -0
  260. package/bundled-skills/customer-research/SKILL.md +1 -1
  261. package/bundled-skills/cv-generator/SKILL.md +4 -828
  262. package/bundled-skills/cv-generator/references/detailed-guide.md +845 -0
  263. package/bundled-skills/cypress-skill/SKILL.md +1 -1
  264. package/bundled-skills/daily-gift/SKILL.md +6 -0
  265. package/bundled-skills/debug-buttercup/SKILL.md +1 -0
  266. package/bundled-skills/debugger/SKILL.md +6 -0
  267. package/bundled-skills/debugging-code/SKILL.md +1 -1
  268. package/bundled-skills/deepapi/SKILL.md +4 -619
  269. package/bundled-skills/deepapi/references/detailed-guide.md +627 -0
  270. package/bundled-skills/delegating-to-agents/SKILL.md +6 -0
  271. package/bundled-skills/deployment-validation-config-validate/SKILL.md +4 -478
  272. package/bundled-skills/deployment-validation-config-validate/references/detailed-guide.md +484 -0
  273. package/bundled-skills/design-it/SKILL.md +6 -0
  274. package/bundled-skills/design-orchestration/SKILL.md +6 -0
  275. package/bundled-skills/design-spells/SKILL.md +6 -0
  276. package/bundled-skills/design-system/SKILL.md +7 -1
  277. package/bundled-skills/design-taste-frontend/SKILL.md +6 -0
  278. package/bundled-skills/design-thinking/SKILL.md +6 -0
  279. package/bundled-skills/design-ux/SKILL.md +7 -1
  280. package/bundled-skills/deterministic-design/SKILL.md +6 -0
  281. package/bundled-skills/developer-advocacy/SKILL.md +1 -1
  282. package/bundled-skills/developer-audience-context/SKILL.md +1 -1
  283. package/bundled-skills/developer-churn/SKILL.md +5 -625
  284. package/bundled-skills/developer-churn/references/detailed-guide.md +639 -0
  285. package/bundled-skills/developer-listening/SKILL.md +7 -1
  286. package/bundled-skills/developer-onboarding/SKILL.md +6 -474
  287. package/bundled-skills/developer-onboarding/references/detailed-guide.md +486 -0
  288. package/bundled-skills/developer-sandbox/SKILL.md +6 -414
  289. package/bundled-skills/developer-sandbox/references/detailed-guide.md +425 -0
  290. package/bundled-skills/developer-seo/SKILL.md +1 -1
  291. package/bundled-skills/developer-signup-flow/SKILL.md +1 -1
  292. package/bundled-skills/devops-troubleshooter/resources/implementation-playbook.md +23 -0
  293. package/bundled-skills/devrel-content/SKILL.md +1 -1
  294. package/bundled-skills/diagnosing-bugs/SKILL.md +5 -0
  295. package/bundled-skills/diary/SKILL.md +1 -0
  296. package/bundled-skills/differential-review/SKILL.md +1 -0
  297. package/bundled-skills/discord-automation/SKILL.md +6 -0
  298. package/bundled-skills/discord-bot-architect/SKILL.md +2 -1434
  299. package/bundled-skills/discord-bot-architect/references/detailed-guide.md +1465 -0
  300. package/bundled-skills/distributed-tracing/SKILL.md +22 -435
  301. package/bundled-skills/distributed-tracing/references/instrumentation.md +13 -0
  302. package/bundled-skills/distributed-tracing/references/jaeger-setup.md +13 -0
  303. package/bundled-skills/distributed-tracing/resources/implementation-playbook.md +23 -0
  304. package/bundled-skills/django-access-review/SKILL.md +1 -0
  305. package/bundled-skills/django-perf-review/SKILL.md +1 -0
  306. package/bundled-skills/django-pro/resources/implementation-playbook.md +23 -0
  307. package/bundled-skills/doc-coauthoring/SKILL.md +6 -0
  308. package/bundled-skills/docs-architect/SKILL.md +6 -0
  309. package/bundled-skills/docs-as-marketing/SKILL.md +1 -1
  310. package/bundled-skills/documentation-generation-doc-generate/SKILL.md +16 -1
  311. package/bundled-skills/documentation-generation-doc-generate/resources/implementation-playbook.md +33 -55
  312. package/bundled-skills/doubt-driven-development/SKILL.md +1 -1
  313. package/bundled-skills/dropbox-automation/SKILL.md +6 -0
  314. package/bundled-skills/dwarf-expert/SKILL.md +1 -0
  315. package/bundled-skills/dx-optimizer/SKILL.md +6 -0
  316. package/bundled-skills/e2e-testing-patterns/SKILL.md +14 -4
  317. package/bundled-skills/e2e-testing-patterns/resources/implementation-playbook.md +22 -41
  318. package/bundled-skills/eas-update-insights/SKILL.md +1 -1
  319. package/bundled-skills/ecl-harness-engineer/SKILL.md +4 -681
  320. package/bundled-skills/ecl-harness-engineer/references/detailed-guide.md +691 -0
  321. package/bundled-skills/efficient-web-research/SKILL.md +1 -0
  322. package/bundled-skills/electron-development/SKILL.md +4 -820
  323. package/bundled-skills/electron-development/references/detailed-guide.md +828 -0
  324. package/bundled-skills/elixir-pro/SKILL.md +6 -0
  325. package/bundled-skills/elon-musk/SKILL.md +5 -1278
  326. package/bundled-skills/elon-musk/references/detailed-guide.md +1293 -0
  327. package/bundled-skills/email-sequence/SKILL.md +2 -915
  328. package/bundled-skills/email-sequence/references/detailed-guide.md +932 -0
  329. package/bundled-skills/email-systems/SKILL.md +2 -654
  330. package/bundled-skills/email-systems/references/detailed-guide.md +669 -0
  331. package/bundled-skills/embedding-strategies/SKILL.md +40 -64
  332. package/bundled-skills/embedding-strategies/resources/implementation-playbook.md +23 -0
  333. package/bundled-skills/emergency-card/SKILL.md +1 -0
  334. package/bundled-skills/emil-design-eng/SKILL.md +4 -673
  335. package/bundled-skills/emil-design-eng/references/detailed-guide.md +690 -0
  336. package/bundled-skills/emotional-arc-designer/SKILL.md +6 -0
  337. package/bundled-skills/enhance-prompt/SKILL.md +1 -0
  338. package/bundled-skills/error-debugging-error-analysis/SKILL.md +15 -0
  339. package/bundled-skills/error-debugging-error-analysis/resources/implementation-playbook.md +122 -1125
  340. package/bundled-skills/error-debugging-multi-agent-review/SKILL.md +42 -214
  341. package/bundled-skills/error-detective/SKILL.md +6 -0
  342. package/bundled-skills/error-diagnostics-error-analysis/SKILL.md +15 -0
  343. package/bundled-skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +122 -1125
  344. package/bundled-skills/event-sourcing-architect/SKILL.md +6 -0
  345. package/bundled-skills/event-staffing-compliance/SKILL.md +6 -0
  346. package/bundled-skills/event-staffing-ordering/SKILL.md +6 -0
  347. package/bundled-skills/evolution/SKILL.md +1 -0
  348. package/bundled-skills/executing-plans/SKILL.md +6 -0
  349. package/bundled-skills/explain-like-socrates/SKILL.md +6 -0
  350. package/bundled-skills/expo-deployment/SKILL.md +1 -1
  351. package/bundled-skills/expo-examples/SKILL.md +1 -1
  352. package/bundled-skills/expo-module/SKILL.md +1 -1
  353. package/bundled-skills/expo-observe/SKILL.md +1 -1
  354. package/bundled-skills/expo-ui/SKILL.md +1 -1
  355. package/bundled-skills/expo-ui-jetpack-compose/SKILL.md +1 -0
  356. package/bundled-skills/expo-ui-swift-ui/SKILL.md +1 -0
  357. package/bundled-skills/fable-safe-prompt/SKILL.md +6 -0
  358. package/bundled-skills/fal-audio/SKILL.md +6 -0
  359. package/bundled-skills/fal-generate/SKILL.md +6 -0
  360. package/bundled-skills/fal-image-edit/SKILL.md +6 -0
  361. package/bundled-skills/fal-platform/SKILL.md +6 -0
  362. package/bundled-skills/fal-upscale/SKILL.md +6 -0
  363. package/bundled-skills/fal-workflow/SKILL.md +6 -0
  364. package/bundled-skills/family-health-analyzer/SKILL.md +1 -0
  365. package/bundled-skills/fastapi-pro/resources/implementation-playbook.md +23 -0
  366. package/bundled-skills/favicon/SKILL.md +1 -0
  367. package/bundled-skills/fda-food-safety-auditor/SKILL.md +1 -0
  368. package/bundled-skills/fda-medtech-compliance-auditor/SKILL.md +1 -0
  369. package/bundled-skills/ffuf-claude-skill/SKILL.md +6 -0
  370. package/bundled-skills/ffuf-web-fuzzing/SKILL.md +5 -492
  371. package/bundled-skills/ffuf-web-fuzzing/references/detailed-guide.md +510 -0
  372. package/bundled-skills/file-organizer/SKILL.md +6 -0
  373. package/bundled-skills/file-uploads/SKILL.md +6 -0
  374. package/bundled-skills/filesystem-context/SKILL.md +1 -0
  375. package/bundled-skills/find-bugs/SKILL.md +7 -0
  376. package/bundled-skills/find-complementary-founders/scripts/assess_profile.py +7 -1
  377. package/bundled-skills/firebase/SKILL.md +8 -651
  378. package/bundled-skills/firebase/references/detailed-guide.md +662 -0
  379. package/bundled-skills/fitness-analyzer/SKILL.md +1 -0
  380. package/bundled-skills/fix-review/SKILL.md +6 -0
  381. package/bundled-skills/fixing-metadata/SKILL.md +7 -1
  382. package/bundled-skills/food-database-query/SKILL.md +5 -772
  383. package/bundled-skills/food-database-query/references/detailed-guide.md +785 -0
  384. package/bundled-skills/form-cro/SKILL.md +6 -0
  385. package/bundled-skills/fp-async/SKILL.md +5 -716
  386. package/bundled-skills/fp-async/references/detailed-guide.md +726 -0
  387. package/bundled-skills/fp-backend/SKILL.md +5 -1313
  388. package/bundled-skills/fp-backend/references/detailed-guide.md +1323 -0
  389. package/bundled-skills/fp-data-transforms/SKILL.md +5 -1181
  390. package/bundled-skills/fp-data-transforms/references/detailed-guide.md +1190 -0
  391. package/bundled-skills/fp-either-ref/SKILL.md +1 -0
  392. package/bundled-skills/fp-errors/SKILL.md +5 -835
  393. package/bundled-skills/fp-errors/references/detailed-guide.md +846 -0
  394. package/bundled-skills/fp-option-ref/SKILL.md +1 -0
  395. package/bundled-skills/fp-pipe-ref/SKILL.md +1 -0
  396. package/bundled-skills/fp-pragmatic/SKILL.md +5 -500
  397. package/bundled-skills/fp-pragmatic/references/detailed-guide.md +510 -0
  398. package/bundled-skills/fp-react/SKILL.md +3 -761
  399. package/bundled-skills/fp-react/references/detailed-guide.md +775 -0
  400. package/bundled-skills/fp-refactor/SKILL.md +5 -1761
  401. package/bundled-skills/fp-refactor/references/detailed-guide.md +1775 -0
  402. package/bundled-skills/fp-taskeither-ref/SKILL.md +1 -0
  403. package/bundled-skills/fp-ts-errors/SKILL.md +4 -835
  404. package/bundled-skills/fp-ts-errors/references/detailed-guide.md +846 -0
  405. package/bundled-skills/fp-ts-pragmatic/SKILL.md +4 -500
  406. package/bundled-skills/fp-ts-pragmatic/references/detailed-guide.md +510 -0
  407. package/bundled-skills/fp-ts-react/SKILL.md +4 -763
  408. package/bundled-skills/fp-ts-react/references/detailed-guide.md +775 -0
  409. package/bundled-skills/fp-types-ref/SKILL.md +1 -0
  410. package/bundled-skills/framework-migration-legacy-modernize/SKILL.md +6 -0
  411. package/bundled-skills/free-tool-strategy/SKILL.md +2 -532
  412. package/bundled-skills/free-tool-strategy/references/detailed-guide.md +550 -0
  413. package/bundled-skills/freshdesk-automation/SKILL.md +6 -0
  414. package/bundled-skills/frontend-architecture/SKILL.md +1 -1
  415. package/bundled-skills/frontend-data-contracts/SKILL.md +1 -1
  416. package/bundled-skills/frontend-design/SKILL.md +33 -34
  417. package/bundled-skills/frontend-observability/SKILL.md +1 -1
  418. package/bundled-skills/frontend-optimistic-mutations/SKILL.md +1 -1
  419. package/bundled-skills/frontend-security-coder/SKILL.md +5 -5
  420. package/bundled-skills/frontend-security-coder/resources/implementation-playbook.md +23 -0
  421. package/bundled-skills/frontend-seo/SKILL.md +6 -675
  422. package/bundled-skills/frontend-seo/references/detailed-guide.md +688 -0
  423. package/bundled-skills/frontend-slides-frontend-slides/SKILL.md +7 -1
  424. package/bundled-skills/frontend-ui-dark-ts/SKILL.md +2 -561
  425. package/bundled-skills/frontend-ui-dark-ts/references/detailed-guide.md +573 -0
  426. package/bundled-skills/full-stack-orchestration-full-stack-feature/SKILL.md +6 -0
  427. package/bundled-skills/game-development/2d-games/SKILL.md +6 -0
  428. package/bundled-skills/game-development/mobile-games/SKILL.md +6 -0
  429. package/bundled-skills/game-development/vr-ar/SKILL.md +6 -0
  430. package/bundled-skills/gcp-cloud-run/SKILL.md +2 -1303
  431. package/bundled-skills/gcp-cloud-run/references/detailed-guide.md +1350 -0
  432. package/bundled-skills/gemini-api-dev/SKILL.md +1 -1
  433. package/bundled-skills/gemini-live-api-dev/SKILL.md +1 -1
  434. package/bundled-skills/gemini-omni-flash-api/SKILL.md +1 -1
  435. package/bundled-skills/geo-fundamentals/SKILL.md +6 -0
  436. package/bundled-skills/geoffrey-hinton/SKILL.md +5 -1235
  437. package/bundled-skills/geoffrey-hinton/references/detailed-guide.md +1324 -0
  438. package/bundled-skills/gh-review-requests/SKILL.md +1 -0
  439. package/bundled-skills/github-actions-advanced/SKILL.md +4 -971
  440. package/bundled-skills/github-actions-advanced/references/detailed-guide.md +991 -0
  441. package/bundled-skills/github-actions-templates/SKILL.md +34 -314
  442. package/bundled-skills/github-actions-templates/references/common-workflows.md +13 -0
  443. package/bundled-skills/github-actions-templates/resources/implementation-playbook.md +23 -0
  444. package/bundled-skills/github-automation/SKILL.md +6 -0
  445. package/bundled-skills/github-workflow-automation/SKILL.md +4 -826
  446. package/bundled-skills/github-workflow-automation/references/detailed-guide.md +832 -0
  447. package/bundled-skills/gitlab-automation/SKILL.md +6 -0
  448. package/bundled-skills/gmail-automation/SKILL.md +1 -0
  449. package/bundled-skills/go-rod-master/SKILL.md +2 -496
  450. package/bundled-skills/go-rod-master/references/detailed-guide.md +508 -0
  451. package/bundled-skills/goal-analyzer/SKILL.md +5 -596
  452. package/bundled-skills/goal-analyzer/references/detailed-guide.md +602 -0
  453. package/bundled-skills/google-calendar-automation/SKILL.md +1 -0
  454. package/bundled-skills/google-docs-automation/SKILL.md +20 -69
  455. package/bundled-skills/google-drive-automation/SKILL.md +1 -0
  456. package/bundled-skills/google-sheets-automation/SKILL.md +21 -128
  457. package/bundled-skills/google-slides-automation/SKILL.md +20 -128
  458. package/bundled-skills/googlesheets-automation/SKILL.md +6 -0
  459. package/bundled-skills/gpt-taste/SKILL.md +6 -0
  460. package/bundled-skills/grafana-dashboards/SKILL.md +6 -6
  461. package/bundled-skills/grafana-dashboards/references/dashboard-design.md +13 -0
  462. package/bundled-skills/grafana-dashboards/resources/implementation-playbook.md +23 -0
  463. package/bundled-skills/graphql/SKILL.md +8 -1031
  464. package/bundled-skills/graphql/references/detailed-guide.md +1044 -0
  465. package/bundled-skills/grill-me/SKILL.md +5 -0
  466. package/bundled-skills/grill-with-docs/SKILL.md +5 -0
  467. package/bundled-skills/grilling/SKILL.md +5 -0
  468. package/bundled-skills/growth-engine/SKILL.md +6 -0
  469. package/bundled-skills/handoff/SKILL.md +5 -0
  470. package/bundled-skills/haskell-pro/SKILL.md +6 -0
  471. package/bundled-skills/headline-psychologist/SKILL.md +6 -0
  472. package/bundled-skills/health-trend-analyzer/SKILL.md +1 -0
  473. package/bundled-skills/hig-components-content/SKILL.md +6 -0
  474. package/bundled-skills/hig-components-controls/SKILL.md +6 -0
  475. package/bundled-skills/hig-components-dialogs/SKILL.md +6 -0
  476. package/bundled-skills/hig-components-layout/SKILL.md +6 -0
  477. package/bundled-skills/hig-components-menus/SKILL.md +6 -0
  478. package/bundled-skills/hig-components-search/SKILL.md +6 -0
  479. package/bundled-skills/hig-components-status/SKILL.md +6 -0
  480. package/bundled-skills/hig-components-system/SKILL.md +6 -0
  481. package/bundled-skills/hig-foundations/SKILL.md +6 -0
  482. package/bundled-skills/hig-inputs/SKILL.md +6 -0
  483. package/bundled-skills/hig-patterns/SKILL.md +6 -0
  484. package/bundled-skills/hig-platforms/SKILL.md +6 -0
  485. package/bundled-skills/hig-technologies/SKILL.md +6 -0
  486. package/bundled-skills/high-end-visual-design/SKILL.md +6 -0
  487. package/bundled-skills/hosted-agents/SKILL.md +7 -0
  488. package/bundled-skills/hosted-agents-v2-py/SKILL.md +23 -5
  489. package/bundled-skills/html-injection-testing/SKILL.md +2 -453
  490. package/bundled-skills/html-injection-testing/references/detailed-guide.md +462 -0
  491. package/bundled-skills/hubspot-automation/SKILL.md +6 -0
  492. package/bundled-skills/hubspot-integration/SKILL.md +8 -807
  493. package/bundled-skills/hubspot-integration/references/detailed-guide.md +815 -0
  494. package/bundled-skills/hugging-face-cli/SKILL.md +7 -1
  495. package/bundled-skills/hugging-face-community-evals/SKILL.md +1 -1
  496. package/bundled-skills/hugging-face-datasets/SKILL.md +5 -430
  497. package/bundled-skills/hugging-face-datasets/references/detailed-guide.md +442 -0
  498. package/bundled-skills/hugging-face-evaluation/SKILL.md +5 -640
  499. package/bundled-skills/hugging-face-evaluation/references/detailed-guide.md +652 -0
  500. package/bundled-skills/hugging-face-jobs/SKILL.md +3 -801
  501. package/bundled-skills/hugging-face-jobs/references/detailed-guide.md +821 -0
  502. package/bundled-skills/hugging-face-model-trainer/SKILL.md +3 -681
  503. package/bundled-skills/hugging-face-model-trainer/references/detailed-guide.md +702 -0
  504. package/bundled-skills/hugging-face-paper-publisher/SKILL.md +5 -617
  505. package/bundled-skills/hugging-face-paper-publisher/references/detailed-guide.md +624 -0
  506. package/bundled-skills/hugging-face-papers/SKILL.md +1 -1
  507. package/bundled-skills/hugging-face-tool-builder/SKILL.md +1 -0
  508. package/bundled-skills/hugging-face-trackio/SKILL.md +1 -1
  509. package/bundled-skills/hugging-face-vision-trainer/SKILL.md +5 -534
  510. package/bundled-skills/hugging-face-vision-trainer/references/detailed-guide.md +549 -0
  511. package/bundled-skills/huggingface-best/SKILL.md +1 -1
  512. package/bundled-skills/huggingface-lora-space-builder/SKILL.md +1 -1
  513. package/bundled-skills/huggingface-spaces/SKILL.md +1 -1
  514. package/bundled-skills/huggingface-tool-builder/SKILL.md +1 -1
  515. package/bundled-skills/huggingface-zerogpu/SKILL.md +1 -1
  516. package/bundled-skills/hugo-to-markdown/SKILL.md +1 -1
  517. package/bundled-skills/hyperexecute-skill/SKILL.md +7 -1
  518. package/bundled-skills/iconsax-library/SKILL.md +6 -0
  519. package/bundled-skills/idea-refine/SKILL.md +1 -1
  520. package/bundled-skills/identity-mirror/SKILL.md +6 -0
  521. package/bundled-skills/ilya-sutskever/SKILL.md +2 -1126
  522. package/bundled-skills/ilya-sutskever/references/detailed-guide.md +1167 -0
  523. package/bundled-skills/image-generator/SKILL.md +4 -320
  524. package/bundled-skills/image-generator/references/detailed-guide.md +332 -0
  525. package/bundled-skills/implement/SKILL.md +6 -0
  526. package/bundled-skills/incident-responder/SKILL.md +6 -0
  527. package/bundled-skills/incident-responder/resources/implementation-playbook.md +23 -0
  528. package/bundled-skills/incident-response-incident-response/SKILL.md +6 -0
  529. package/bundled-skills/industrial-brutalist-ui/SKILL.md +6 -0
  530. package/bundled-skills/instagram/scripts/config.py +33 -8
  531. package/bundled-skills/interactive-portfolio/SKILL.md +2 -482
  532. package/bundled-skills/interactive-portfolio/references/detailed-guide.md +500 -0
  533. package/bundled-skills/internal-comms/SKILL.md +20 -1
  534. package/bundled-skills/internal-comms/examples/3p-updates.md +5 -4
  535. package/bundled-skills/internal-comms/examples/company-newsletter.md +3 -2
  536. package/bundled-skills/internal-comms/examples/faq-answers.md +1 -0
  537. package/bundled-skills/internal-comms/examples/general-comms.md +1 -0
  538. package/bundled-skills/internal-comms-anthropic/SKILL.md +21 -2
  539. package/bundled-skills/internal-comms-anthropic/examples/3p-updates.md +5 -4
  540. package/bundled-skills/internal-comms-anthropic/examples/company-newsletter.md +3 -2
  541. package/bundled-skills/internal-comms-anthropic/examples/faq-answers.md +1 -0
  542. package/bundled-skills/internal-comms-anthropic/examples/general-comms.md +1 -0
  543. package/bundled-skills/internal-comms-community/SKILL.md +21 -2
  544. package/bundled-skills/internal-comms-community/examples/3p-updates.md +48 -0
  545. package/bundled-skills/internal-comms-community/examples/company-newsletter.md +66 -0
  546. package/bundled-skills/internal-comms-community/examples/faq-answers.md +31 -0
  547. package/bundled-skills/internal-comms-community/examples/general-comms.md +17 -0
  548. package/bundled-skills/ios-debugger-agent/SKILL.md +6 -0
  549. package/bundled-skills/ios-developer/resources/implementation-playbook.md +23 -0
  550. package/bundled-skills/issues/SKILL.md +1 -0
  551. package/bundled-skills/iterate-pr/SKILL.md +1 -0
  552. package/bundled-skills/javascript-mastery/SKILL.md +4 -625
  553. package/bundled-skills/javascript-mastery/references/detailed-guide.md +636 -0
  554. package/bundled-skills/javascript-pro/SKILL.md +6 -0
  555. package/bundled-skills/jest-skill/SKILL.md +1 -1
  556. package/bundled-skills/jira-automation/SKILL.md +6 -0
  557. package/bundled-skills/jobs-to-be-done-analyst/SKILL.md +6 -0
  558. package/bundled-skills/junit-5-skill/SKILL.md +1 -1
  559. package/bundled-skills/junta-leiloeiros/scripts/.snyk +5 -0
  560. package/bundled-skills/junta-leiloeiros/scripts/requirements.txt +2 -0
  561. package/bundled-skills/k6-load-testing/SKILL.md +2 -544
  562. package/bundled-skills/k6-load-testing/references/detailed-guide.md +563 -0
  563. package/bundled-skills/kaizen/SKILL.md +2 -711
  564. package/bundled-skills/kaizen/references/detailed-guide.md +720 -0
  565. package/bundled-skills/kpi-dashboard-design/SKILL.md +7 -67
  566. package/bundled-skills/kpi-dashboard-design/resources/implementation-playbook.md +23 -0
  567. package/bundled-skills/kpi-dashboard-design/resources/metric-queries.sql +30 -0
  568. package/bundled-skills/langfuse/SKILL.md +41 -468
  569. package/bundled-skills/langgraph/SKILL.md +2 -445
  570. package/bundled-skills/langgraph/references/detailed-guide.md +455 -0
  571. package/bundled-skills/laravel-expert/SKILL.md +6 -0
  572. package/bundled-skills/launch-strategy/SKILL.md +6 -0
  573. package/bundled-skills/lead-magnets/SKILL.md +6 -0
  574. package/bundled-skills/learn/SKILL.md +5 -0
  575. package/bundled-skills/legacy-modernizer/SKILL.md +6 -0
  576. package/bundled-skills/legal-advisor/SKILL.md +6 -0
  577. package/bundled-skills/leiloeiro-avaliacao/SKILL.md +2 -469
  578. package/bundled-skills/leiloeiro-avaliacao/references/detailed-guide.md +503 -0
  579. package/bundled-skills/leiloeiro-edital/SKILL.md +2 -468
  580. package/bundled-skills/leiloeiro-edital/references/detailed-guide.md +491 -0
  581. package/bundled-skills/leiloeiro-mercado/SKILL.md +2 -458
  582. package/bundled-skills/leiloeiro-mercado/references/detailed-guide.md +488 -0
  583. package/bundled-skills/leiloeiro-risco/SKILL.md +2 -457
  584. package/bundled-skills/leiloeiro-risco/references/detailed-guide.md +482 -0
  585. package/bundled-skills/lesson-generator/SKILL.md +5 -0
  586. package/bundled-skills/lightning-architecture-review/SKILL.md +6 -0
  587. package/bundled-skills/lightning-channel-factories/SKILL.md +6 -0
  588. package/bundled-skills/lightning-factory-explainer/SKILL.md +6 -0
  589. package/bundled-skills/linear-claude-skill/SKILL.md +4 -502
  590. package/bundled-skills/linear-claude-skill/references/detailed-guide.md +517 -0
  591. package/bundled-skills/linkedin-cli/SKILL.md +4 -513
  592. package/bundled-skills/linkedin-cli/references/detailed-guide.md +520 -0
  593. package/bundled-skills/lint-and-validate/SKILL.md +17 -39
  594. package/bundled-skills/lint-and-validate/scripts/lint_runner.py +17 -8
  595. package/bundled-skills/lint-and-validate/scripts/type_coverage.py +77 -167
  596. package/bundled-skills/linux-privilege-escalation/SKILL.md +2 -426
  597. package/bundled-skills/linux-privilege-escalation/references/detailed-guide.md +436 -0
  598. package/bundled-skills/linux-shell-scripting/SKILL.md +2 -473
  599. package/bundled-skills/linux-shell-scripting/references/detailed-guide.md +481 -0
  600. package/bundled-skills/llm-app-patterns/SKILL.md +16 -741
  601. package/bundled-skills/llm-app-patterns/references/detailed-guide.md +760 -0
  602. package/bundled-skills/llm-council/SKILL.md +4 -550
  603. package/bundled-skills/llm-council/references/detailed-guide.md +556 -0
  604. package/bundled-skills/llm-ops/SKILL.md +6 -0
  605. package/bundled-skills/local-legal-seo-audit/SKILL.md +6 -0
  606. package/bundled-skills/logic-diff/SKILL.md +1 -1
  607. package/bundled-skills/logic-explain/SKILL.md +7 -1
  608. package/bundled-skills/logic-fix-all/SKILL.md +1 -1
  609. package/bundled-skills/logic-locate/SKILL.md +1 -1
  610. package/bundled-skills/logic-review/SKILL.md +1 -1
  611. package/bundled-skills/loki-mode/SKILL.md +4 -696
  612. package/bundled-skills/loki-mode/references/detailed-guide.md +717 -0
  613. package/bundled-skills/longbridge-content/SKILL.md +1 -1
  614. package/bundled-skills/longbridge-fundamentals/SKILL.md +1 -1
  615. package/bundled-skills/longbridge-market-data/SKILL.md +1 -1
  616. package/bundled-skills/lookdev-auto/SKILL.md +6 -0
  617. package/bundled-skills/loopy/SKILL.md +1 -1
  618. package/bundled-skills/loss-aversion-designer/SKILL.md +6 -0
  619. package/bundled-skills/machine-learning-ops-ml-pipeline/SKILL.md +6 -0
  620. package/bundled-skills/magic-animator/SKILL.md +6 -0
  621. package/bundled-skills/magic-ui-generator/SKILL.md +6 -0
  622. package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +6 -0
  623. package/bundled-skills/makepad-animation/SKILL.md +1 -0
  624. package/bundled-skills/makepad-basics/SKILL.md +1 -0
  625. package/bundled-skills/makepad-deployment/SKILL.md +1 -0
  626. package/bundled-skills/makepad-dsl/SKILL.md +1 -0
  627. package/bundled-skills/makepad-event-action/SKILL.md +1 -0
  628. package/bundled-skills/makepad-font/SKILL.md +1 -0
  629. package/bundled-skills/makepad-layout/SKILL.md +1 -0
  630. package/bundled-skills/makepad-platform/SKILL.md +1 -0
  631. package/bundled-skills/makepad-reference/SKILL.md +1 -0
  632. package/bundled-skills/makepad-shaders/SKILL.md +1 -0
  633. package/bundled-skills/makepad-skills/SKILL.md +6 -0
  634. package/bundled-skills/makepad-splash/SKILL.md +1 -0
  635. package/bundled-skills/makepad-widgets/SKILL.md +1 -0
  636. package/bundled-skills/manage-skills/SKILL.md +1 -0
  637. package/bundled-skills/marketing-plan/SKILL.md +1 -1
  638. package/bundled-skills/matematico-tao/SKILL.md +2 -632
  639. package/bundled-skills/matematico-tao/references/detailed-guide.md +651 -0
  640. package/bundled-skills/matplotlib/SKILL.md +1 -0
  641. package/bundled-skills/maxia/SKILL.md +1 -0
  642. package/bundled-skills/mcp-builder/SKILL.md +46 -14
  643. package/bundled-skills/mcp-builder/reference/evaluation.md +69 -226
  644. package/bundled-skills/mcp-builder/reference/mcp_best_practices.md +8 -5
  645. package/bundled-skills/mcp-builder/reference/node_mcp_server.md +46 -144
  646. package/bundled-skills/mcp-builder/reference/python_mcp_server.md +42 -80
  647. package/bundled-skills/mcp-builder/scripts/connections.py +18 -11
  648. package/bundled-skills/mcp-builder/scripts/evaluation.py +88 -95
  649. package/bundled-skills/mcp-builder/scripts/example_evaluation.xml +1 -1
  650. package/bundled-skills/mcp-builder/scripts/requirements.txt +4 -2
  651. package/bundled-skills/mental-health-analyzer/SKILL.md +5 -974
  652. package/bundled-skills/mental-health-analyzer/references/detailed-guide.md +1014 -0
  653. package/bundled-skills/micro-saas-launcher/SKILL.md +2 -473
  654. package/bundled-skills/micro-saas-launcher/references/detailed-guide.md +491 -0
  655. package/bundled-skills/minecraft-bukkit-pro/SKILL.md +6 -0
  656. package/bundled-skills/minimalist-ui/SKILL.md +6 -0
  657. package/bundled-skills/moatmri/SKILL.md +6 -0
  658. package/bundled-skills/mobile-developer/resources/implementation-playbook.md +23 -0
  659. package/bundled-skills/molykit/SKILL.md +1 -0
  660. package/bundled-skills/monday-automation/SKILL.md +6 -0
  661. package/bundled-skills/monopoly/SKILL.md +1 -0
  662. package/bundled-skills/monopoly/patterns/SKILL.md +1 -0
  663. package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +1 -0
  664. package/bundled-skills/monopoly/security-checklist/SKILL.md +6 -0
  665. package/bundled-skills/monopoly/tech-matrix/SKILL.md +1 -0
  666. package/bundled-skills/monorepo-architect/SKILL.md +6 -0
  667. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +1 -1
  668. package/bundled-skills/monte-carlo-performance-diagnosis/SKILL.md +7 -1
  669. package/bundled-skills/monte-carlo-validation-notebook/SKILL.md +4 -601
  670. package/bundled-skills/monte-carlo-validation-notebook/references/detailed-guide.md +613 -0
  671. package/bundled-skills/moodle-external-api-development/SKILL.md +4 -517
  672. package/bundled-skills/moodle-external-api-development/references/detailed-guide.md +529 -0
  673. package/bundled-skills/multi-agent-architect/SKILL.md +1 -0
  674. package/bundled-skills/multi-agent-brainstorming/SKILL.md +6 -0
  675. package/bundled-skills/multi-agent-patterns/SKILL.md +1 -0
  676. package/bundled-skills/multi-platform-apps-multi-platform/SKILL.md +6 -0
  677. package/bundled-skills/multi-platform-apps-multi-platform/resources/implementation-playbook.md +23 -0
  678. package/bundled-skills/n8n-code-javascript/SKILL.md +3 -667
  679. package/bundled-skills/n8n-code-javascript/references/detailed-guide.md +683 -0
  680. package/bundled-skills/n8n-code-python/SKILL.md +3 -664
  681. package/bundled-skills/n8n-code-python/references/detailed-guide.md +682 -0
  682. package/bundled-skills/n8n-expression-syntax/SKILL.md +5 -401
  683. package/bundled-skills/n8n-expression-syntax/references/detailed-guide.md +416 -0
  684. package/bundled-skills/n8n-mcp-tools-expert/SKILL.md +5 -485
  685. package/bundled-skills/n8n-mcp-tools-expert/references/detailed-guide.md +499 -0
  686. package/bundled-skills/n8n-node-configuration/SKILL.md +5 -775
  687. package/bundled-skills/n8n-node-configuration/references/detailed-guide.md +789 -0
  688. package/bundled-skills/n8n-validation-expert/SKILL.md +5 -679
  689. package/bundled-skills/n8n-validation-expert/references/detailed-guide.md +694 -0
  690. package/bundled-skills/n8n-workflow-patterns/SKILL.md +1 -0
  691. package/bundled-skills/nanobanana-ppt-skills/SKILL.md +6 -0
  692. package/bundled-skills/native-data-fetching/SKILL.md +2 -456
  693. package/bundled-skills/native-data-fetching/references/detailed-guide.md +465 -0
  694. package/bundled-skills/neon-ai-gateway/SKILL.md +1 -1
  695. package/bundled-skills/neon-functions/SKILL.md +1 -1
  696. package/bundled-skills/neon-object-storage/SKILL.md +1 -1
  697. package/bundled-skills/neon-postgres/SKILL.md +1 -1
  698. package/bundled-skills/neon-postgres-branches/SKILL.md +1 -1
  699. package/bundled-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  700. package/bundled-skills/nerdzao-elite/SKILL.md +6 -0
  701. package/bundled-skills/nerdzao-elite-gemini-high/SKILL.md +6 -0
  702. package/bundled-skills/nestjs-expert/SKILL.md +2 -524
  703. package/bundled-skills/nestjs-expert/references/detailed-guide.md +539 -0
  704. package/bundled-skills/networkx/SKILL.md +1 -0
  705. package/bundled-skills/new-rails-project/SKILL.md +7 -0
  706. package/bundled-skills/newman-cicd-integration/SKILL.md +1 -1
  707. package/bundled-skills/nika/SKILL.md +1 -0
  708. package/bundled-skills/nosql-expert/SKILL.md +6 -0
  709. package/bundled-skills/not-a-vibe-coder/SKILL.md +7 -0
  710. package/bundled-skills/notebooklm/scripts/config.py +33 -11
  711. package/bundled-skills/notion-template-business/SKILL.md +2 -505
  712. package/bundled-skills/notion-template-business/references/detailed-guide.md +523 -0
  713. package/bundled-skills/nutrition-analyzer/SKILL.md +5 -766
  714. package/bundled-skills/nutrition-analyzer/references/detailed-guide.md +775 -0
  715. package/bundled-skills/objection-preemptor/SKILL.md +6 -0
  716. package/bundled-skills/observability-and-instrumentation/SKILL.md +5 -2
  717. package/bundled-skills/observability-and-instrumentation/references/observability-checklist.md +13 -0
  718. package/bundled-skills/observability-engineer/SKILL.md +16 -8
  719. package/bundled-skills/obsidian-bases/SKILL.md +4 -366
  720. package/bundled-skills/obsidian-bases/references/detailed-guide.md +380 -0
  721. package/bundled-skills/occupational-health-analyzer/SKILL.md +1 -0
  722. package/bundled-skills/odoo-accounting-setup/SKILL.md +1 -0
  723. package/bundled-skills/odoo-automated-tests/SKILL.md +1 -0
  724. package/bundled-skills/odoo-backup-strategy/SKILL.md +1 -0
  725. package/bundled-skills/odoo-docker-deployment/SKILL.md +1 -0
  726. package/bundled-skills/odoo-ecommerce-configurator/SKILL.md +1 -0
  727. package/bundled-skills/odoo-edi-connector/SKILL.md +1 -0
  728. package/bundled-skills/odoo-hr-payroll-setup/SKILL.md +1 -0
  729. package/bundled-skills/odoo-inventory-optimizer/SKILL.md +1 -0
  730. package/bundled-skills/odoo-l10n-compliance/SKILL.md +1 -0
  731. package/bundled-skills/odoo-manufacturing-advisor/SKILL.md +1 -0
  732. package/bundled-skills/odoo-migration-helper/SKILL.md +1 -0
  733. package/bundled-skills/odoo-module-developer/SKILL.md +1 -0
  734. package/bundled-skills/odoo-orm-expert/SKILL.md +1 -0
  735. package/bundled-skills/odoo-performance-tuner/SKILL.md +1 -0
  736. package/bundled-skills/odoo-project-timesheet/SKILL.md +1 -0
  737. package/bundled-skills/odoo-purchase-workflow/SKILL.md +1 -0
  738. package/bundled-skills/odoo-qweb-templates/SKILL.md +1 -0
  739. package/bundled-skills/odoo-rpc-api/SKILL.md +1 -0
  740. package/bundled-skills/odoo-sales-crm-expert/SKILL.md +1 -0
  741. package/bundled-skills/odoo-security-rules/SKILL.md +1 -0
  742. package/bundled-skills/odoo-shopify-integration/SKILL.md +1 -0
  743. package/bundled-skills/odoo-upgrade-advisor/SKILL.md +1 -0
  744. package/bundled-skills/odoo-woocommerce-bridge/SKILL.md +1 -0
  745. package/bundled-skills/odoo-xml-views-builder/SKILL.md +1 -0
  746. package/bundled-skills/odw/SKILL.md +6 -0
  747. package/bundled-skills/offers/SKILL.md +1 -1
  748. package/bundled-skills/onboarding/SKILL.md +1 -1
  749. package/bundled-skills/onboarding-psychologist/SKILL.md +6 -0
  750. package/bundled-skills/one-drive-automation/SKILL.md +6 -0
  751. package/bundled-skills/openapi-spec-generator/SKILL.md +1 -1
  752. package/bundled-skills/oral-health-analyzer/SKILL.md +8 -515
  753. package/bundled-skills/oral-health-analyzer/references/detailed-guide.md +529 -0
  754. package/bundled-skills/outlook-automation/SKILL.md +6 -0
  755. package/bundled-skills/pagespeed-enhancer/SKILL.md +4 -520
  756. package/bundled-skills/pagespeed-enhancer/references/detailed-guide.md +533 -0
  757. package/bundled-skills/paid-ads/SKILL.md +2 -541
  758. package/bundled-skills/paid-ads/references/detailed-guide.md +558 -0
  759. package/bundled-skills/parallel-search-mcp/SKILL.md +134 -0
  760. package/bundled-skills/payment-integration/SKILL.md +6 -0
  761. package/bundled-skills/paywall-upgrade-cro/SKILL.md +2 -560
  762. package/bundled-skills/paywall-upgrade-cro/references/detailed-guide.md +579 -0
  763. package/bundled-skills/pci-compliance/SKILL.md +23 -469
  764. package/bundled-skills/pci-compliance/resources/implementation-playbook.md +23 -0
  765. package/bundled-skills/performance-testing-review-multi-agent-review/SKILL.md +42 -214
  766. package/bundled-skills/personal-tool-builder/SKILL.md +2 -688
  767. package/bundled-skills/personal-tool-builder/references/detailed-guide.md +705 -0
  768. package/bundled-skills/phase-gated-debugging/SKILL.md +6 -0
  769. package/bundled-skills/photopea-embedded-editor/SKILL.md +3 -1218
  770. package/bundled-skills/photopea-embedded-editor/references/detailed-guide.md +1252 -0
  771. package/bundled-skills/php-pro/SKILL.md +6 -0
  772. package/bundled-skills/pi-custom-model/SKILL.md +6 -0
  773. package/bundled-skills/pipedrive-automation/SKILL.md +6 -0
  774. package/bundled-skills/pitch-psychologist/SKILL.md +6 -0
  775. package/bundled-skills/plaid-fintech/SKILL.md +8 -829
  776. package/bundled-skills/plaid-fintech/references/detailed-guide.md +837 -0
  777. package/bundled-skills/plotly/SKILL.md +1 -0
  778. package/bundled-skills/polars/SKILL.md +1 -0
  779. package/bundled-skills/popup-cro/SKILL.md +6 -0
  780. package/bundled-skills/posix-shell-pro/SKILL.md +6 -0
  781. package/bundled-skills/postgresql-cli/SKILL.md +1 -1
  782. package/bundled-skills/postman-collection-generator/SKILL.md +1 -1
  783. package/bundled-skills/postman-newman-automation/SKILL.md +1 -1
  784. package/bundled-skills/postman-openapi-converter/SKILL.md +1 -1
  785. package/bundled-skills/postmortem-writing/SKILL.md +1 -1
  786. package/bundled-skills/postmortem-writing/resources/implementation-playbook.md +23 -0
  787. package/bundled-skills/power-user-cultivation/SKILL.md +6 -572
  788. package/bundled-skills/power-user-cultivation/references/detailed-guide.md +585 -0
  789. package/bundled-skills/pr-writer/SKILL.md +1 -0
  790. package/bundled-skills/price-psychology-strategist/SKILL.md +6 -0
  791. package/bundled-skills/pricing/SKILL.md +1 -1
  792. package/bundled-skills/privacy-mask/SKILL.md +1 -1
  793. package/bundled-skills/product-decision-agent/SKILL.md +6 -0
  794. package/bundled-skills/product-inventor/SKILL.md +2 -627
  795. package/bundled-skills/product-inventor/references/detailed-guide.md +646 -0
  796. package/bundled-skills/product-manager/SKILL.md +6 -0
  797. package/bundled-skills/product-marketing/SKILL.md +1 -1
  798. package/bundled-skills/production-code-audit/SKILL.md +2 -264
  799. package/bundled-skills/production-code-audit/references/detailed-guide.md +277 -0
  800. package/bundled-skills/professional-proofreader/SKILL.md +6 -0
  801. package/bundled-skills/programmatic-seo/SKILL.md +6 -0
  802. package/bundled-skills/project-development/SKILL.md +1 -0
  803. package/bundled-skills/project-skill-audit/SKILL.md +6 -0
  804. package/bundled-skills/public-relations/SKILL.md +1 -1
  805. package/bundled-skills/pubmed-database/SKILL.md +1 -0
  806. package/bundled-skills/push-skill-to-github/SKILL.md +6 -0
  807. package/bundled-skills/pydantic-models-py/SKILL.md +1 -3
  808. package/bundled-skills/pypict-skill/SKILL.md +6 -0
  809. package/bundled-skills/pytest-skill/SKILL.md +1 -1
  810. package/bundled-skills/qiskit/SKILL.md +1 -0
  811. package/bundled-skills/quant-analyst/SKILL.md +6 -0
  812. package/bundled-skills/radix-ui-design-system/SKILL.md +2 -693
  813. package/bundled-skills/radix-ui-design-system/references/detailed-guide.md +711 -0
  814. package/bundled-skills/rag-engineer/SKILL.md +6 -0
  815. package/bundled-skills/rclone-cli/SKILL.md +1 -1
  816. package/bundled-skills/react-flow-architect/SKILL.md +2 -507
  817. package/bundled-skills/react-flow-architect/references/detailed-guide.md +517 -0
  818. package/bundled-skills/react-patterns/SKILL.md +6 -0
  819. package/bundled-skills/read-all-adrs/SKILL.md +6 -0
  820. package/bundled-skills/readme/SKILL.md +4 -822
  821. package/bundled-skills/readme/references/detailed-guide.md +829 -0
  822. package/bundled-skills/redesign-existing-projects/SKILL.md +6 -0
  823. package/bundled-skills/redis-cli/SKILL.md +1 -1
  824. package/bundled-skills/referral-program/SKILL.md +2 -508
  825. package/bundled-skills/referral-program/references/detailed-guide.md +524 -0
  826. package/bundled-skills/rehabilitation-analyzer/SKILL.md +5 -629
  827. package/bundled-skills/rehabilitation-analyzer/references/detailed-guide.md +641 -0
  828. package/bundled-skills/remotion/SKILL.md +1 -0
  829. package/bundled-skills/research-prompt/SKILL.md +6 -0
  830. package/bundled-skills/resolving-merge-conflicts/SKILL.md +6 -0
  831. package/bundled-skills/review-and-simplify-changes/SKILL.md +7 -1
  832. package/bundled-skills/review-swarm/SKILL.md +7 -1
  833. package/bundled-skills/risk-manager/SKILL.md +6 -0
  834. package/bundled-skills/robius-app-architecture/SKILL.md +1 -0
  835. package/bundled-skills/robius-event-action/SKILL.md +1 -0
  836. package/bundled-skills/robius-matrix-integration/SKILL.md +1 -0
  837. package/bundled-skills/robius-state-management/SKILL.md +1 -0
  838. package/bundled-skills/robius-widget-patterns/SKILL.md +1 -0
  839. package/bundled-skills/robot-framework-skill/SKILL.md +1 -1
  840. package/bundled-skills/ruby-pro/SKILL.md +6 -0
  841. package/bundled-skills/saga-orchestration/SKILL.md +4 -482
  842. package/bundled-skills/saga-orchestration/references/detailed-guide.md +491 -0
  843. package/bundled-skills/sales-automator/SKILL.md +6 -0
  844. package/bundled-skills/salesforce-development/SKILL.md +2 -985
  845. package/bundled-skills/salesforce-development/references/detailed-guide.md +994 -0
  846. package/bundled-skills/sam-altman/SKILL.md +5 -1040
  847. package/bundled-skills/sam-altman/references/detailed-guide.md +1102 -0
  848. package/bundled-skills/scala-pro/SKILL.md +6 -0
  849. package/bundled-skills/scanning-tools/SKILL.md +2 -546
  850. package/bundled-skills/scanning-tools/references/detailed-guide.md +555 -0
  851. package/bundled-skills/scanpy/SKILL.md +1 -0
  852. package/bundled-skills/scarcity-urgency-psychologist/SKILL.md +6 -0
  853. package/bundled-skills/scientific-writing/SKILL.md +3 -691
  854. package/bundled-skills/scientific-writing/references/detailed-guide.md +702 -0
  855. package/bundled-skills/scikit-learn/SKILL.md +3 -462
  856. package/bundled-skills/scikit-learn/references/detailed-guide.md +475 -0
  857. package/bundled-skills/scroll-experience/SKILL.md +2 -560
  858. package/bundled-skills/scroll-experience/references/detailed-guide.md +578 -0
  859. package/bundled-skills/sdk-dx/SKILL.md +6 -517
  860. package/bundled-skills/sdk-dx/references/detailed-guide.md +530 -0
  861. package/bundled-skills/seaborn/SKILL.md +5 -661
  862. package/bundled-skills/seaborn/references/detailed-guide.md +677 -0
  863. package/bundled-skills/search-specialist/SKILL.md +6 -0
  864. package/bundled-skills/secrets-management/SKILL.md +24 -349
  865. package/bundled-skills/secrets-management/references/github-secrets.md +13 -0
  866. package/bundled-skills/secrets-management/references/vault-setup.md +13 -0
  867. package/bundled-skills/security/aws-compliance-checker/SKILL.md +4 -492
  868. package/bundled-skills/security/aws-compliance-checker/references/detailed-guide.md +502 -0
  869. package/bundled-skills/security-and-hardening/SKILL.md +8 -6
  870. package/bundled-skills/security-and-hardening/references/security-checklist.md +13 -0
  871. package/bundled-skills/security-bluebook-builder/SKILL.md +7 -0
  872. package/bundled-skills/security-scanning-security-hardening/SKILL.md +6 -0
  873. package/bundled-skills/security-scanning-security-sast/SKILL.md +2 -463
  874. package/bundled-skills/security-scanning-security-sast/references/detailed-guide.md +476 -0
  875. package/bundled-skills/segment-cdp/SKILL.md +8 -822
  876. package/bundled-skills/segment-cdp/references/detailed-guide.md +830 -0
  877. package/bundled-skills/selenium-skill/SKILL.md +1 -1
  878. package/bundled-skills/semgrep-rule-creator/SKILL.md +1 -0
  879. package/bundled-skills/semgrep-rule-variant-creator/SKILL.md +1 -0
  880. package/bundled-skills/sendgrid-automation/SKILL.md +6 -0
  881. package/bundled-skills/seo-audit/SKILL.md +33 -44
  882. package/bundled-skills/seo-content/SKILL.md +6 -0
  883. package/bundled-skills/seo-content-auditor/SKILL.md +6 -0
  884. package/bundled-skills/seo-content-planner/resources/implementation-playbook.md +23 -0
  885. package/bundled-skills/seo-content-writer/SKILL.md +8 -2
  886. package/bundled-skills/seo-content-writer/resources/implementation-playbook.md +23 -0
  887. package/bundled-skills/seo-forensic-incident-response/SKILL.md +6 -0
  888. package/bundled-skills/seo-fundamentals/SKILL.md +6 -0
  889. package/bundled-skills/seo-programmatic/SKILL.md +6 -0
  890. package/bundled-skills/sequence-psychologist/SKILL.md +6 -0
  891. package/bundled-skills/server-management/SKILL.md +6 -0
  892. package/bundled-skills/service-mesh-expert/SKILL.md +6 -0
  893. package/bundled-skills/setup-help/SKILL.md +6 -0
  894. package/bundled-skills/sexual-health-analyzer/SKILL.md +8 -1109
  895. package/bundled-skills/sexual-health-analyzer/references/detailed-guide.md +1123 -0
  896. package/bundled-skills/sharp-coder/SKILL.md +1 -0
  897. package/bundled-skills/sharp-edges/SKILL.md +1 -0
  898. package/bundled-skills/shodan-reconnaissance/SKILL.md +2 -356
  899. package/bundled-skills/shodan-reconnaissance/references/detailed-guide.md +366 -0
  900. package/bundled-skills/shopify-apps/SKILL.md +2 -1477
  901. package/bundled-skills/shopify-apps/references/detailed-guide.md +1512 -0
  902. package/bundled-skills/shopify-development/scripts/.snyk +3 -0
  903. package/bundled-skills/short/SKILL.md +6 -0
  904. package/bundled-skills/signup-flow-cro/SKILL.md +6 -0
  905. package/bundled-skills/simplify-code/SKILL.md +6 -0
  906. package/bundled-skills/skill-creator/SKILL.md +2 -568
  907. package/bundled-skills/skill-creator/references/detailed-guide.md +581 -0
  908. package/bundled-skills/skill-creator-ms/SKILL.md +2 -601
  909. package/bundled-skills/skill-creator-ms/references/detailed-guide.md +614 -0
  910. package/bundled-skills/skill-improver/SKILL.md +1 -0
  911. package/bundled-skills/skill-router/SKILL.md +1 -0
  912. package/bundled-skills/skill-scanner/SKILL.md +1 -0
  913. package/bundled-skills/skill-security-audit/SKILL.md +87 -0
  914. package/bundled-skills/skill-seekers/SKILL.md +6 -0
  915. package/bundled-skills/skill-writer/SKILL.md +1 -0
  916. package/bundled-skills/skin-health-analyzer/SKILL.md +8 -696
  917. package/bundled-skills/skin-health-analyzer/references/detailed-guide.md +710 -0
  918. package/bundled-skills/slack-automation/SKILL.md +6 -0
  919. package/bundled-skills/slack-bot-builder/SKILL.md +2 -1372
  920. package/bundled-skills/slack-bot-builder/references/detailed-guide.md +1395 -0
  921. package/bundled-skills/slack-gif-creator/.snyk +5 -0
  922. package/bundled-skills/slack-gif-creator/requirements.txt +2 -2
  923. package/bundled-skills/sleep-analyzer/SKILL.md +5 -764
  924. package/bundled-skills/sleep-analyzer/references/detailed-guide.md +773 -0
  925. package/bundled-skills/slo-implementation/SKILL.md +24 -9
  926. package/bundled-skills/slo-implementation/references/error-budget.md +13 -0
  927. package/bundled-skills/slo-implementation/references/slo-definitions.md +13 -0
  928. package/bundled-skills/slo-implementation/resources/implementation-playbook.md +23 -0
  929. package/bundled-skills/smartui-skill/SKILL.md +1 -1
  930. package/bundled-skills/smtp-penetration-testing/SKILL.md +2 -346
  931. package/bundled-skills/smtp-penetration-testing/references/detailed-guide.md +355 -0
  932. package/bundled-skills/social-content/SKILL.md +2 -797
  933. package/bundled-skills/social-content/references/detailed-guide.md +816 -0
  934. package/bundled-skills/social-proof-architect/SKILL.md +6 -0
  935. package/bundled-skills/software-architecture/SKILL.md +6 -0
  936. package/bundled-skills/spec-to-code-compliance/SKILL.md +7 -0
  937. package/bundled-skills/speckit-updater/SKILL.md +1 -0
  938. package/bundled-skills/speed/SKILL.md +7 -0
  939. package/bundled-skills/sql-optimization-patterns/SKILL.md +10 -6
  940. package/bundled-skills/sql-optimization-patterns/resources/implementation-playbook.md +52 -56
  941. package/bundled-skills/sred-project-organizer/SKILL.md +1 -0
  942. package/bundled-skills/sred-work-summary/SKILL.md +1 -0
  943. package/bundled-skills/statsmodels/SKILL.md +3 -586
  944. package/bundled-skills/statsmodels/references/detailed-guide.md +600 -0
  945. package/bundled-skills/steve-jobs/SKILL.md +2 -564
  946. package/bundled-skills/steve-jobs/references/detailed-guide.md +574 -0
  947. package/bundled-skills/stitch-loop/SKILL.md +1 -0
  948. package/bundled-skills/stripe-automation/SKILL.md +6 -0
  949. package/bundled-skills/stripe-integration/SKILL.md +60 -79
  950. package/bundled-skills/styleseed-design-review/SKILL.md +1 -1
  951. package/bundled-skills/subagent-orchestrator/SKILL.md +1 -0
  952. package/bundled-skills/subject-line-psychologist/SKILL.md +6 -0
  953. package/bundled-skills/supabase/SKILL.md +1 -1
  954. package/bundled-skills/supabase-automation/SKILL.md +6 -0
  955. package/bundled-skills/superpowers-lab/SKILL.md +6 -0
  956. package/bundled-skills/supply-chain-risk-auditor/SKILL.md +7 -0
  957. package/bundled-skills/swiftui-expert-skill/SKILL.md +1 -1
  958. package/bundled-skills/sympy/SKILL.md +3 -426
  959. package/bundled-skills/sympy/references/detailed-guide.md +439 -0
  960. package/bundled-skills/systematic-debugging/CREATION-LOG.md +3 -0
  961. package/bundled-skills/systematic-debugging/SKILL.md +30 -34
  962. package/bundled-skills/systematic-debugging/condition-based-waiting.md +9 -6
  963. package/bundled-skills/systematic-debugging/defense-in-depth.md +13 -7
  964. package/bundled-skills/systematic-debugging/find-polluter.sh +77 -57
  965. package/bundled-skills/systematic-debugging/root-cause-tracing.md +7 -5
  966. package/bundled-skills/systematic-debugging/test-academic.md +3 -0
  967. package/bundled-skills/systematic-debugging/test-pressure-1.md +3 -0
  968. package/bundled-skills/systematic-debugging/test-pressure-2.md +3 -0
  969. package/bundled-skills/systematic-debugging/test-pressure-3.md +3 -0
  970. package/bundled-skills/tcm-constitution-analyzer/SKILL.md +5 -655
  971. package/bundled-skills/tcm-constitution-analyzer/references/detailed-guide.md +660 -0
  972. package/bundled-skills/tdd-workflows-tdd-cycle/SKILL.md +6 -0
  973. package/bundled-skills/technical-tutorials/SKILL.md +5 -483
  974. package/bundled-skills/technical-tutorials/references/detailed-guide.md +496 -0
  975. package/bundled-skills/telegram/SKILL.md +2 -541
  976. package/bundled-skills/telegram/assets/boilerplate/nodejs/package-lock.json +1888 -0
  977. package/bundled-skills/telegram/assets/boilerplate/nodejs/package.json +3 -0
  978. package/bundled-skills/telegram/references/detailed-guide.md +569 -0
  979. package/bundled-skills/telegram-mini-app/SKILL.md +2 -643
  980. package/bundled-skills/telegram-mini-app/references/detailed-guide.md +661 -0
  981. package/bundled-skills/temporal-python-pro/SKILL.md +6 -0
  982. package/bundled-skills/terraform-skill/SKILL.md +4 -417
  983. package/bundled-skills/terraform-skill/references/detailed-guide.md +430 -0
  984. package/bundled-skills/test-driven-development/SKILL.md +21 -124
  985. package/bundled-skills/test-driven-development/testing-anti-patterns.md +6 -6
  986. package/bundled-skills/test-framework-migration-skill/SKILL.md +7 -1
  987. package/bundled-skills/threat-modeling-expert/SKILL.md +6 -0
  988. package/bundled-skills/threejs-animation/SKILL.md +5 -551
  989. package/bundled-skills/threejs-animation/references/detailed-guide.md +566 -0
  990. package/bundled-skills/threejs-fundamentals/SKILL.md +5 -525
  991. package/bundled-skills/threejs-fundamentals/references/detailed-guide.md +535 -0
  992. package/bundled-skills/threejs-geometry/SKILL.md +5 -572
  993. package/bundled-skills/threejs-geometry/references/detailed-guide.md +587 -0
  994. package/bundled-skills/threejs-interaction/SKILL.md +5 -666
  995. package/bundled-skills/threejs-interaction/references/detailed-guide.md +679 -0
  996. package/bundled-skills/threejs-lighting/SKILL.md +1 -0
  997. package/bundled-skills/threejs-loaders/SKILL.md +5 -637
  998. package/bundled-skills/threejs-loaders/references/detailed-guide.md +651 -0
  999. package/bundled-skills/threejs-materials/SKILL.md +3 -535
  1000. package/bundled-skills/threejs-materials/references/detailed-guide.md +560 -0
  1001. package/bundled-skills/threejs-postprocessing/SKILL.md +5 -617
  1002. package/bundled-skills/threejs-postprocessing/references/detailed-guide.md +630 -0
  1003. package/bundled-skills/threejs-shaders/SKILL.md +5 -679
  1004. package/bundled-skills/threejs-shaders/references/detailed-guide.md +695 -0
  1005. package/bundled-skills/threejs-skills/SKILL.md +4 -683
  1006. package/bundled-skills/threejs-skills/references/detailed-guide.md +693 -0
  1007. package/bundled-skills/threejs-textures/SKILL.md +5 -630
  1008. package/bundled-skills/threejs-textures/references/detailed-guide.md +649 -0
  1009. package/bundled-skills/to-issues/SKILL.md +5 -0
  1010. package/bundled-skills/to-prd/SKILL.md +5 -0
  1011. package/bundled-skills/todoist-automation/SKILL.md +6 -0
  1012. package/bundled-skills/tools-page-seo-optimizer/SKILL.md +2 -580
  1013. package/bundled-skills/tools-page-seo-optimizer/references/detailed-guide.md +602 -0
  1014. package/bundled-skills/top-web-vulnerabilities/SKILL.md +2 -513
  1015. package/bundled-skills/top-web-vulnerabilities/references/detailed-guide.md +523 -0
  1016. package/bundled-skills/train-sentence-transformers/SKILL.md +1 -1
  1017. package/bundled-skills/transformers-js/SKILL.md +5 -669
  1018. package/bundled-skills/transformers-js/references/detailed-guide.md +683 -0
  1019. package/bundled-skills/travel-health-analyzer/SKILL.md +1 -0
  1020. package/bundled-skills/trello-automation/SKILL.md +6 -0
  1021. package/bundled-skills/trigger-dev/SKILL.md +2 -937
  1022. package/bundled-skills/trigger-dev/references/detailed-guide.md +950 -0
  1023. package/bundled-skills/trust-calibrator/SKILL.md +6 -0
  1024. package/bundled-skills/tutorial-engineer/SKILL.md +6 -0
  1025. package/bundled-skills/twilio-communications/SKILL.md +2 -1549
  1026. package/bundled-skills/twilio-communications/references/detailed-guide.md +1574 -0
  1027. package/bundled-skills/typescript-pro/SKILL.md +6 -0
  1028. package/bundled-skills/ui-a11y/SKILL.md +6 -0
  1029. package/bundled-skills/ui-component/SKILL.md +6 -0
  1030. package/bundled-skills/ui-motion/SKILL.md +7 -1
  1031. package/bundled-skills/ui-pattern/SKILL.md +6 -0
  1032. package/bundled-skills/ui-review/SKILL.md +6 -0
  1033. package/bundled-skills/ui-skills/SKILL.md +6 -0
  1034. package/bundled-skills/ui-tokens/SKILL.md +6 -0
  1035. package/bundled-skills/uniprot-database/SKILL.md +1 -0
  1036. package/bundled-skills/unslop-commit/SKILL.md +1 -1
  1037. package/bundled-skills/unslop-file/SKILL.md +1 -1
  1038. package/bundled-skills/unslop-review/SKILL.md +1 -1
  1039. package/bundled-skills/unsplash-integration/SKILL.md +6 -0
  1040. package/bundled-skills/update-swiftui-apis/SKILL.md +1 -1
  1041. package/bundled-skills/upstash-qstash/SKILL.md +2 -919
  1042. package/bundled-skills/upstash-qstash/references/detailed-guide.md +932 -0
  1043. package/bundled-skills/usage-based-pricing/SKILL.md +5 -395
  1044. package/bundled-skills/usage-based-pricing/references/detailed-guide.md +407 -0
  1045. package/bundled-skills/ux-audit/SKILL.md +6 -0
  1046. package/bundled-skills/ux-flow/SKILL.md +6 -0
  1047. package/bundled-skills/ux-persuasion-engineer/SKILL.md +6 -0
  1048. package/bundled-skills/variant-analysis/SKILL.md +1 -0
  1049. package/bundled-skills/varlock/SKILL.md +1 -0
  1050. package/bundled-skills/varlock-claude-skill/SKILL.md +6 -0
  1051. package/bundled-skills/vector-database-engineer/SKILL.md +6 -0
  1052. package/bundled-skills/vector-database-engineer/resources/implementation-playbook.md +23 -0
  1053. package/bundled-skills/vercel-deployment/SKILL.md +2 -650
  1054. package/bundled-skills/vercel-deployment/references/detailed-guide.md +660 -0
  1055. package/bundled-skills/vexor/SKILL.md +6 -0
  1056. package/bundled-skills/vexor-cli/SKILL.md +1 -0
  1057. package/bundled-skills/videodb/scripts/ws_listener.py +8 -1
  1058. package/bundled-skills/visual-emotion-engineer/SKILL.md +6 -0
  1059. package/bundled-skills/vizcom/SKILL.md +6 -0
  1060. package/bundled-skills/voice-agents/SKILL.md +2 -867
  1061. package/bundled-skills/voice-agents/references/detailed-guide.md +890 -0
  1062. package/bundled-skills/voice-ai-development/SKILL.md +2 -583
  1063. package/bundled-skills/voice-ai-development/references/detailed-guide.md +594 -0
  1064. package/bundled-skills/voice-ai-engine-development/SKILL.md +2 -702
  1065. package/bundled-skills/voice-ai-engine-development/references/detailed-guide.md +720 -0
  1066. package/bundled-skills/warren-buffett/SKILL.md +2 -577
  1067. package/bundled-skills/warren-buffett/references/detailed-guide.md +583 -0
  1068. package/bundled-skills/web-performance-optimization/SKILL.md +2 -214
  1069. package/bundled-skills/web-performance-optimization/references/detailed-guide.md +226 -0
  1070. package/bundled-skills/web-scraper/SKILL.md +2 -728
  1071. package/bundled-skills/web-scraper/references/detailed-guide.md +792 -0
  1072. package/bundled-skills/webflow-automation/SKILL.md +6 -0
  1073. package/bundled-skills/weightloss-analyzer/SKILL.md +1 -0
  1074. package/bundled-skills/wellally-tech/SKILL.md +5 -367
  1075. package/bundled-skills/wellally-tech/references/detailed-guide.md +379 -0
  1076. package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package-lock.json +1881 -0
  1077. package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/nodejs/package.json +3 -0
  1078. package/bundled-skills/whatsapp-cloud-api/assets/boilerplate/python/.snyk +3 -0
  1079. package/bundled-skills/wiki-architect/SKILL.md +6 -0
  1080. package/bundled-skills/wiki-changelog/SKILL.md +6 -0
  1081. package/bundled-skills/wiki-onboarding/SKILL.md +6 -0
  1082. package/bundled-skills/wiki-qa/SKILL.md +6 -0
  1083. package/bundled-skills/wiki-researcher/SKILL.md +6 -0
  1084. package/bundled-skills/windows-privilege-escalation/SKILL.md +131 -0
  1085. package/bundled-skills/windows-privilege-escalation/references/detailed-guide.md +397 -0
  1086. package/bundled-skills/wireshark-analysis/SKILL.md +2 -419
  1087. package/bundled-skills/wireshark-analysis/references/detailed-guide.md +429 -0
  1088. package/bundled-skills/wjttc-builder/SKILL.md +1 -1
  1089. package/bundled-skills/wjttc-tester/SKILL.md +1 -1
  1090. package/bundled-skills/wordpress/SKILL.md +2 -572
  1091. package/bundled-skills/wordpress/references/detailed-guide.md +582 -0
  1092. package/bundled-skills/wordpress-penetration-testing/SKILL.md +68 -0
  1093. package/bundled-skills/wordpress-penetration-testing/references/detailed-guide.md +555 -0
  1094. package/bundled-skills/wordpress-plugin-development/SKILL.md +2 -474
  1095. package/bundled-skills/wordpress-plugin-development/references/detailed-guide.md +485 -0
  1096. package/bundled-skills/wordpress-theme-development/SKILL.md +2 -479
  1097. package/bundled-skills/wordpress-theme-development/references/detailed-guide.md +490 -0
  1098. package/bundled-skills/wordpress-woocommerce-development/SKILL.md +2 -605
  1099. package/bundled-skills/wordpress-woocommerce-development/references/detailed-guide.md +615 -0
  1100. package/bundled-skills/workflow-automation/SKILL.md +2 -875
  1101. package/bundled-skills/workflow-automation/references/detailed-guide.md +902 -0
  1102. package/bundled-skills/writing-great-skills/SKILL.md +5 -0
  1103. package/bundled-skills/x-article-publisher-skill/SKILL.md +6 -0
  1104. package/bundled-skills/x402-express-wrapper/SKILL.md +1 -0
  1105. package/bundled-skills/xss-html-injection/SKILL.md +2 -389
  1106. package/bundled-skills/xss-html-injection/references/detailed-guide.md +399 -0
  1107. package/bundled-skills/yann-lecun/SKILL.md +2 -1431
  1108. package/bundled-skills/yann-lecun/references/detailed-guide.md +1484 -0
  1109. package/bundled-skills/yann-lecun-filosofia/SKILL.md +6 -0
  1110. package/bundled-skills/yann-lecun-tecnico/SKILL.md +2 -485
  1111. package/bundled-skills/yann-lecun-tecnico/references/detailed-guide.md +502 -0
  1112. package/bundled-skills/youtube-seo-optimizer/SKILL.md +4 -884
  1113. package/bundled-skills/youtube-seo-optimizer/references/detailed-guide.md +907 -0
  1114. package/bundled-skills/zapier-make-patterns/SKILL.md +2 -728
  1115. package/bundled-skills/zapier-make-patterns/references/detailed-guide.md +752 -0
  1116. package/bundled-skills/zipai-optimizer/SKILL.md +7 -0
  1117. package/bundled-skills/zoom-automation/SKILL.md +6 -0
  1118. package/package.json +1 -1
  1119. package/skills_index.json +541 -383
  1120. package/bundled-skills/docs/AUDIT.md +0 -3
  1121. package/bundled-skills/docs/BUNDLES.md +0 -3
  1122. package/bundled-skills/docs/CATEGORIZATION_IMPLEMENTATION.md +0 -3
  1123. package/bundled-skills/docs/CI_DRIFT_FIX.md +0 -3
  1124. package/bundled-skills/docs/COMMUNITY_GUIDELINES.md +0 -3
  1125. package/bundled-skills/docs/DATE_TRACKING_IMPLEMENTATION.md +0 -3
  1126. package/bundled-skills/docs/EXAMPLES.md +0 -3
  1127. package/bundled-skills/docs/FAQ.md +0 -3
  1128. package/bundled-skills/docs/GETTING_STARTED.md +0 -3
  1129. package/bundled-skills/docs/KIRO_INTEGRATION.md +0 -3
  1130. package/bundled-skills/docs/QUALITY_BAR.md +0 -3
  1131. package/bundled-skills/docs/README.md +0 -51
  1132. package/bundled-skills/docs/SECURITY_GUARDRAILS.md +0 -3
  1133. package/bundled-skills/docs/SEC_SKILLS.md +0 -3
  1134. package/bundled-skills/docs/SKILLS_DATE_TRACKING.md +0 -3
  1135. package/bundled-skills/docs/SKILL_ANATOMY.md +0 -3
  1136. package/bundled-skills/docs/SKILL_TEMPLATE.md +0 -3
  1137. package/bundled-skills/docs/SMART_AUTO_CATEGORIZATION.md +0 -3
  1138. package/bundled-skills/docs/SOURCES.md +0 -3
  1139. package/bundled-skills/docs/USAGE.md +0 -3
  1140. package/bundled-skills/docs/VISUAL_GUIDE.md +0 -3
  1141. package/bundled-skills/docs/WORKFLOWS.md +0 -3
  1142. package/bundled-skills/docs/contributors/community-guidelines.md +0 -4
  1143. package/bundled-skills/docs/contributors/examples.md +0 -760
  1144. package/bundled-skills/docs/contributors/quality-bar.md +0 -104
  1145. package/bundled-skills/docs/contributors/security-guardrails.md +0 -70
  1146. package/bundled-skills/docs/contributors/skill-anatomy.md +0 -637
  1147. package/bundled-skills/docs/contributors/skill-template.md +0 -93
  1148. package/bundled-skills/docs/integrations/jetski-cortex.md +0 -282
  1149. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +0 -103
  1150. package/bundled-skills/docs/integrations/jetski-gemini-loader/loader.mjs +0 -154
  1151. package/bundled-skills/docs/integrations/jetski-gemini-loader/package.json +0 -1
  1152. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-preview-profile.md +0 -63
  1153. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-design.md +0 -304
  1154. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-goal.md +0 -171
  1155. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-worklog.md +0 -104
  1156. package/bundled-skills/docs/maintainers/audit.md +0 -89
  1157. package/bundled-skills/docs/maintainers/backups/README-2026-06-02.md +0 -687
  1158. package/bundled-skills/docs/maintainers/categorization-implementation.md +0 -160
  1159. package/bundled-skills/docs/maintainers/ci-drift-fix.md +0 -64
  1160. package/bundled-skills/docs/maintainers/date-tracking-implementation.md +0 -66
  1161. package/bundled-skills/docs/maintainers/full-repo-audit-2026-05-23.md +0 -289
  1162. package/bundled-skills/docs/maintainers/legacy-redirect-bridge.md +0 -46
  1163. package/bundled-skills/docs/maintainers/merge-batch.md +0 -81
  1164. package/bundled-skills/docs/maintainers/merging-prs.md +0 -79
  1165. package/bundled-skills/docs/maintainers/pr-autonomy.md +0 -102
  1166. package/bundled-skills/docs/maintainers/provenance-identity-exceptions.json +0 -14
  1167. package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +0 -32
  1168. package/bundled-skills/docs/maintainers/release-process.md +0 -124
  1169. package/bundled-skills/docs/maintainers/repo-growth-seo.md +0 -133
  1170. package/bundled-skills/docs/maintainers/rollback-procedure.md +0 -43
  1171. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.csv +0 -34
  1172. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.md +0 -60
  1173. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-18-addendum.md +0 -22
  1174. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-addendum.md +0 -48
  1175. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.csv +0 -34
  1176. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.md +0 -86
  1177. package/bundled-skills/docs/maintainers/skills-date-tracking.md +0 -228
  1178. package/bundled-skills/docs/maintainers/skills-import-2026-03-21.md +0 -81
  1179. package/bundled-skills/docs/maintainers/skills-update-guide.md +0 -92
  1180. package/bundled-skills/docs/maintainers/smart-auto-categorization.md +0 -218
  1181. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/README.md +0 -19
  1182. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-cases.json +0 -74
  1183. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-results.json +0 -86
  1184. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/submission.json +0 -41
  1185. package/bundled-skills/docs/sources/LICENSE-MICROSOFT +0 -21
  1186. package/bundled-skills/docs/sources/microsoft-skills-attribution.json +0 -709
  1187. package/bundled-skills/docs/sources/sources.md +0 -179
  1188. package/bundled-skills/docs/users/aas-core.md +0 -225
  1189. package/bundled-skills/docs/users/agent-overload-recovery.md +0 -54
  1190. package/bundled-skills/docs/users/agentic-awesome-skills-vs-awesome-claude-skills.md +0 -44
  1191. package/bundled-skills/docs/users/ai-agent-skills.md +0 -48
  1192. package/bundled-skills/docs/users/best-claude-code-skills-github.md +0 -62
  1193. package/bundled-skills/docs/users/best-cursor-skills-github.md +0 -62
  1194. package/bundled-skills/docs/users/bundles.md +0 -1067
  1195. package/bundled-skills/docs/users/claude-code-skills.md +0 -89
  1196. package/bundled-skills/docs/users/codex-cli-skills.md +0 -88
  1197. package/bundled-skills/docs/users/cursor-skills.md +0 -56
  1198. package/bundled-skills/docs/users/discovery-manifest.md +0 -65
  1199. package/bundled-skills/docs/users/faq.md +0 -521
  1200. package/bundled-skills/docs/users/gemini-cli-skills.md +0 -56
  1201. package/bundled-skills/docs/users/getting-started.md +0 -233
  1202. package/bundled-skills/docs/users/kiro-integration.md +0 -304
  1203. package/bundled-skills/docs/users/local-config.md +0 -152
  1204. package/bundled-skills/docs/users/plugins.md +0 -201
  1205. package/bundled-skills/docs/users/security-and-antivirus.md +0 -63
  1206. package/bundled-skills/docs/users/security-skills.md +0 -1722
  1207. package/bundled-skills/docs/users/skills-library-overview.md +0 -87
  1208. package/bundled-skills/docs/users/skills-vs-mcp-tools.md +0 -108
  1209. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +0 -101
  1210. package/bundled-skills/docs/users/usage.md +0 -465
  1211. package/bundled-skills/docs/users/visual-guide.md +0 -515
  1212. package/bundled-skills/docs/users/walkthrough.md +0 -46
  1213. package/bundled-skills/docs/users/windows-truncation-recovery.md +0 -135
  1214. package/bundled-skills/docs/users/workflows.md +0 -215
  1215. package/bundled-skills/docs/vietnamese/AAS_CORE.vi.md +0 -28
  1216. package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +0 -124
  1217. package/bundled-skills/docs/vietnamese/CONTRIBUTING.vi.md +0 -242
  1218. package/bundled-skills/docs/vietnamese/EXAMPLES.vi.md +0 -56
  1219. package/bundled-skills/docs/vietnamese/FAQ.vi.md +0 -195
  1220. package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +0 -123
  1221. package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +0 -69
  1222. package/bundled-skills/docs/vietnamese/README.vi.md +0 -191
  1223. package/bundled-skills/docs/vietnamese/SECURITY.vi.md +0 -19
  1224. package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +0 -51
  1225. package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +0 -106
  1226. package/bundled-skills/docs/vietnamese/SKILL_ANATOMY.vi.md +0 -633
  1227. package/bundled-skills/docs/vietnamese/SOURCES.vi.md +0 -21
  1228. package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +0 -65
  1229. package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +0 -511
  1230. package/bundled-skills/docs/walkthrough.md +0 -3
@@ -0,0 +1,2158 @@
1
+ # Computer Use Agents - Detailed Guide
2
+
3
+ > This file contains the detailed procedure and reference material extracted from `SKILL.md` for focused loading. The root skill defines activation, examples, safety constraints, and limitations.
4
+
5
+ ## Patterns
6
+
7
+ ### Perception-Reasoning-Action Loop
8
+
9
+ The fundamental architecture of computer use agents: observe screen,
10
+ reason about next action, execute action, repeat. This loop integrates
11
+ vision models with action execution through an iterative pipeline.
12
+
13
+ Key components:
14
+ 1. PERCEPTION: Screenshot captures current screen state
15
+ 2. REASONING: Vision-language model analyzes and plans
16
+ 3. ACTION: Execute mouse/keyboard operations
17
+ 4. FEEDBACK: Observe result, continue or correct
18
+
19
+ Critical insight: Vision agents are completely still during "thinking"
20
+ phase (1-5 seconds), creating a detectable pause pattern.
21
+
22
+ **When to use**: Building any computer use agent from scratch,Integrating vision models with desktop control,Understanding agent behavior patterns
23
+
24
+ from anthropic import Anthropic
25
+ from PIL import Image
26
+ import base64
27
+ import pyautogui
28
+ import time
29
+
30
+ class ComputerUseAgent:
31
+ """
32
+ Perception-Reasoning-Action loop implementation.
33
+ Based on Anthropic Computer Use patterns.
34
+ """
35
+
36
+ def __init__(self, client: Anthropic, model: str = "claude-sonnet-4-20250514"):
37
+ self.client = client
38
+ self.model = model
39
+ self.max_steps = 50 # Prevent runaway loops
40
+ self.action_delay = 0.5 # Seconds between actions
41
+
42
+ def capture_screenshot(self) -> str:
43
+ """Capture screen and return base64 encoded image."""
44
+ screenshot = pyautogui.screenshot()
45
+ # Resize for token efficiency (1280x800 is good balance)
46
+ screenshot = screenshot.resize((1280, 800), Image.LANCZOS)
47
+
48
+ import io
49
+ buffer = io.BytesIO()
50
+ screenshot.save(buffer, format="PNG")
51
+ return base64.b64encode(buffer.getvalue()).decode()
52
+
53
+ def execute_action(self, action: dict) -> dict:
54
+ """Execute mouse/keyboard action on the computer."""
55
+ action_type = action.get("type")
56
+
57
+ if action_type == "click":
58
+ x, y = action["x"], action["y"]
59
+ button = action.get("button", "left")
60
+ pyautogui.click(x, y, button=button)
61
+ return {"success": True, "action": f"clicked at ({x}, {y})"}
62
+
63
+ elif action_type == "type":
64
+ text = action["text"]
65
+ pyautogui.typewrite(text, interval=0.02)
66
+ return {"success": True, "action": f"typed {len(text)} chars"}
67
+
68
+ elif action_type == "key":
69
+ key = action["key"]
70
+ pyautogui.press(key)
71
+ return {"success": True, "action": f"pressed {key}"}
72
+
73
+ elif action_type == "scroll":
74
+ direction = action.get("direction", "down")
75
+ amount = action.get("amount", 3)
76
+ scroll = -amount if direction == "down" else amount
77
+ pyautogui.scroll(scroll)
78
+ return {"success": True, "action": f"scrolled {direction}"}
79
+
80
+ elif action_type == "move":
81
+ x, y = action["x"], action["y"]
82
+ pyautogui.moveTo(x, y)
83
+ return {"success": True, "action": f"moved to ({x}, {y})"}
84
+
85
+ else:
86
+ return {"success": False, "error": f"Unknown action: {action_type}"}
87
+
88
+ def run(self, task: str) -> dict:
89
+ """
90
+ Run perception-reasoning-action loop until task complete.
91
+
92
+ The loop:
93
+ 1. Screenshot current state
94
+ 2. Send to vision model with task context
95
+ 3. Parse action from response
96
+ 4. Execute action
97
+ 5. Repeat until done or max steps
98
+ """
99
+ messages = []
100
+ step_count = 0
101
+
102
+ system_prompt = """You are a computer use agent. You can see the screen
103
+ and control mouse/keyboard.
104
+
105
+ Available actions (respond with JSON):
106
+ - {"type": "click", "x": 100, "y": 200, "button": "left"}
107
+ - {"type": "type", "text": "hello world"}
108
+ - {"type": "key", "key": "enter"}
109
+ - {"type": "scroll", "direction": "down", "amount": 3}
110
+ - {"type": "done", "result": "task completed successfully"}
111
+
112
+ Always respond with ONLY a JSON action object.
113
+ Be precise with coordinates - click exactly where needed.
114
+ If you see an error, try to recover.
115
+ """
116
+
117
+ while step_count < self.max_steps:
118
+ step_count += 1
119
+
120
+ # 1. PERCEPTION: Capture current screen
121
+ screenshot_b64 = self.capture_screenshot()
122
+
123
+ # 2. REASONING: Send to vision model
124
+ user_content = [
125
+ {"type": "text", "text": f"Task: {task}\n\nStep {step_count}. What action should I take?"},
126
+ {"type": "image", "source": {
127
+ "type": "base64",
128
+ "media_type": "image/png",
129
+ "data": screenshot_b64
130
+ }}
131
+ ]
132
+
133
+ messages.append({"role": "user", "content": user_content})
134
+
135
+ response = self.client.messages.create(
136
+ model=self.model,
137
+ max_tokens=1024,
138
+ system=system_prompt,
139
+ messages=messages
140
+ )
141
+
142
+ assistant_message = response.content[0].text
143
+ messages.append({"role": "assistant", "content": assistant_message})
144
+
145
+ # 3. Parse action from response
146
+ import json
147
+ try:
148
+ action = json.loads(assistant_message)
149
+ except json.JSONDecodeError:
150
+ # Try to extract JSON from response
151
+ import re
152
+ match = re.search(r'\{[^}]+\}', assistant_message)
153
+ if match:
154
+ action = json.loads(match.group())
155
+ else:
156
+ continue
157
+
158
+ # Check if done
159
+ if action.get("type") == "done":
160
+ return {
161
+ "success": True,
162
+ "result": action.get("result"),
163
+ "steps": step_count
164
+ }
165
+
166
+ # 4. ACTION: Execute
167
+ result = self.execute_action(action)
168
+
169
+ # Small delay for UI to update
170
+ time.sleep(self.action_delay)
171
+
172
+ return {
173
+ "success": False,
174
+ "error": "Max steps reached",
175
+ "steps": step_count
176
+ }
177
+
178
+ # Usage
179
+ agent = ComputerUseAgent(Anthropic())
180
+ result = agent.run("Open Chrome and search for 'weather today'")
181
+
182
+ ### Anti_patterns
183
+
184
+ - Running without step limits (infinite loops)
185
+ - No delay between actions (UI can't keep up)
186
+ - Screenshots at full resolution (token explosion)
187
+ - Ignoring action failures (no recovery)
188
+
189
+ ### Sandboxed Environment Pattern
190
+
191
+ Computer use agents MUST run in isolated, sandboxed environments.
192
+ Never give agents direct access to your main system - the security
193
+ risks are too high. Use Docker containers with virtual desktops.
194
+
195
+ Key isolation requirements:
196
+ 1. NETWORK: Restrict to necessary endpoints only
197
+ 2. FILESYSTEM: Read-only or scoped to temp directories
198
+ 3. CREDENTIALS: No access to host credentials
199
+ 4. SYSCALLS: Filter dangerous system calls
200
+ 5. RESOURCES: Limit CPU, memory, time
201
+
202
+ The goal is "blast radius minimization" - if the agent goes wrong,
203
+ damage is contained to the sandbox.
204
+
205
+ **When to use**: Deploying any computer use agent,Testing agent behavior safely,Running untrusted automation tasks
206
+
207
+ # Dockerfile for sandboxed computer use environment
208
+ # Based on Anthropic's reference implementation pattern
209
+
210
+ FROM ubuntu:22.04
211
+
212
+ # Install desktop environment
213
+ RUN apt-get update && apt-get install -y \
214
+ xvfb \
215
+ x11vnc \
216
+ fluxbox \
217
+ xterm \
218
+ firefox \
219
+ python3 \
220
+ python3-pip \
221
+ supervisor
222
+
223
+ # Security: Create non-root user
224
+ RUN useradd -m -s /bin/bash agent && \
225
+ mkdir -p /home/agent/.vnc
226
+
227
+ # Install Python dependencies
228
+ COPY requirements.txt /tmp/
229
+ RUN pip3 install -r /tmp/requirements.txt
230
+
231
+ # Security: Drop capabilities
232
+ RUN apt-get install -y --no-install-recommends libcap2-bin && \
233
+ setcap -r /usr/bin/python3 || true
234
+
235
+ # Copy agent code
236
+ COPY --chown=agent:agent . /app
237
+ WORKDIR /app
238
+
239
+ # Supervisor config for virtual display + VNC
240
+ COPY supervisord.conf /etc/supervisor/conf.d/
241
+
242
+ # Expose VNC port only (not desktop directly)
243
+ EXPOSE 5900
244
+
245
+ # Run as non-root
246
+ USER agent
247
+
248
+ CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
249
+
250
+ ---
251
+
252
+ # docker-compose.yml with security constraints
253
+ version: '3.8'
254
+
255
+ services:
256
+ computer-use-agent:
257
+ build: .
258
+ ports:
259
+ - "5900:5900" # VNC for observation
260
+ - "8080:8080" # API for control
261
+
262
+ # Security constraints
263
+ security_opt:
264
+ - no-new-privileges:true
265
+ - seccomp:seccomp-profile.json
266
+
267
+ # Resource limits
268
+ deploy:
269
+ resources:
270
+ limits:
271
+ cpus: '2'
272
+ memory: 4G
273
+ reservations:
274
+ cpus: '0.5'
275
+ memory: 1G
276
+
277
+ # Network isolation
278
+ networks:
279
+ - agent-network
280
+
281
+ # No access to host filesystem
282
+ volumes:
283
+ - agent-tmp:/tmp
284
+
285
+ # Read-only root filesystem
286
+ read_only: true
287
+ tmpfs:
288
+ - /run
289
+ - /var/run
290
+
291
+ # Environment
292
+ environment:
293
+ - DISPLAY=:99
294
+ - NO_PROXY=localhost
295
+
296
+ networks:
297
+ agent-network:
298
+ driver: bridge
299
+ internal: true # No internet by default
300
+
301
+ volumes:
302
+ agent-tmp:
303
+
304
+ ---
305
+
306
+ # Python wrapper with additional runtime sandboxing
307
+ import subprocess
308
+ import os
309
+ from dataclasses import dataclass
310
+ from typing import Optional
311
+
312
+ @dataclass
313
+ class SandboxConfig:
314
+ """Configuration for agent sandbox."""
315
+ network_allowed: list[str] = None # Allowed domains
316
+ max_runtime_seconds: int = 300
317
+ max_memory_mb: int = 2048
318
+ allow_downloads: bool = False
319
+ allow_clipboard: bool = False
320
+
321
+ class SandboxedAgent:
322
+ """
323
+ Run computer use agent in Docker sandbox.
324
+ """
325
+
326
+ def __init__(self, config: SandboxConfig):
327
+ self.config = config
328
+ self.container_id: Optional[str] = None
329
+
330
+ def start(self):
331
+ """Start sandboxed environment."""
332
+ # Build network rules
333
+ network_rules = ""
334
+ if self.config.network_allowed:
335
+ for domain in self.config.network_allowed:
336
+ network_rules += f"--add-host={domain}:$(dig +short {domain}) "
337
+ else:
338
+ network_rules = "--network=none"
339
+
340
+ cmd = f"""
341
+ docker run -d \
342
+ --name computer-use-sandbox-$$ \
343
+ --security-opt no-new-privileges \
344
+ --cap-drop ALL \
345
+ --memory {self.config.max_memory_mb}m \
346
+ --cpus 2 \
347
+ --read-only \
348
+ --tmpfs /tmp \
349
+ {network_rules} \
350
+ computer-use-agent:latest
351
+ """
352
+
353
+ result = subprocess.run(cmd, shell=True, capture_output=True)
354
+ self.container_id = result.stdout.decode().strip()
355
+
356
+ # Set up kill timer
357
+ subprocess.Popen([
358
+ "sh", "-c",
359
+ f"sleep {self.config.max_runtime_seconds} && docker kill {self.container_id}"
360
+ ])
361
+
362
+ return self.container_id
363
+
364
+ def execute_task(self, task: str) -> dict:
365
+ """Execute task in sandbox."""
366
+ if not self.container_id:
367
+ self.start()
368
+
369
+ # Send task to agent via API
370
+ import requests
371
+ response = requests.post(
372
+ f"http://localhost:8080/task",
373
+ json={"task": task},
374
+ timeout=self.config.max_runtime_seconds
375
+ )
376
+
377
+ return response.json()
378
+
379
+ def stop(self):
380
+ """Stop and remove sandbox."""
381
+ if self.container_id:
382
+ subprocess.run(f"docker rm -f {self.container_id}", shell=True)
383
+ self.container_id = None
384
+
385
+ ### Anti_patterns
386
+
387
+ - Running agents on host system directly
388
+ - Giving sandbox full network access
389
+ - Running as root in container
390
+ - No resource limits (denial of service)
391
+ - Persistent storage (data can leak between runs)
392
+
393
+ ### Anthropic Computer Use Implementation
394
+
395
+ Official implementation pattern using Claude's computer use capability.
396
+ Claude 3.5 Sonnet was the first frontier model to offer computer use.
397
+ Claude Opus 4.5 is now the "best model in the world for computer use."
398
+
399
+ Key capabilities:
400
+ - screenshot: Capture current screen state
401
+ - mouse: Click, move, drag operations
402
+ - keyboard: Type text, press keys
403
+ - bash: Run shell commands
404
+ - text_editor: View and edit files
405
+
406
+ Tool versions:
407
+ - computer_20251124 (Opus 4.5): Adds zoom action for detailed inspection
408
+ - computer_20250124 (All other models): Standard capabilities
409
+
410
+ Critical limitation: "Some UI elements (like dropdowns and scrollbars)
411
+ might be tricky for Claude to manipulate" - Anthropic docs
412
+
413
+ **When to use**: Building production computer use agents,Need highest quality vision understanding,Full desktop control (not just browser)
414
+
415
+ from anthropic import Anthropic
416
+ from anthropic.types.beta import (
417
+ BetaToolComputerUse20241022,
418
+ BetaToolBash20241022,
419
+ BetaToolTextEditor20241022,
420
+ )
421
+ import subprocess
422
+ import base64
423
+ from PIL import Image
424
+ import io
425
+
426
+ class AnthropicComputerUse:
427
+ """
428
+ Official Anthropic Computer Use implementation.
429
+
430
+ Requires:
431
+ - Docker container with virtual display
432
+ - VNC for viewing agent actions
433
+ - Proper tool implementations
434
+ """
435
+
436
+ def __init__(self):
437
+ self.client = Anthropic()
438
+ self.model = "claude-sonnet-4-20250514" # Best for computer use
439
+ self.screen_size = (1280, 800)
440
+
441
+ def get_tools(self) -> list:
442
+ """Define computer use tools."""
443
+ return [
444
+ BetaToolComputerUse20241022(
445
+ type="computer_20241022",
446
+ name="computer",
447
+ display_width_px=self.screen_size[0],
448
+ display_height_px=self.screen_size[1],
449
+ ),
450
+ BetaToolBash20241022(
451
+ type="bash_20241022",
452
+ name="bash",
453
+ ),
454
+ BetaToolTextEditor20241022(
455
+ type="text_editor_20241022",
456
+ name="str_replace_editor",
457
+ ),
458
+ ]
459
+
460
+ def execute_tool(self, name: str, input: dict) -> dict:
461
+ """Execute a tool and return result."""
462
+
463
+ if name == "computer":
464
+ return self._handle_computer_action(input)
465
+ elif name == "bash":
466
+ return self._handle_bash(input)
467
+ elif name == "str_replace_editor":
468
+ return self._handle_editor(input)
469
+ else:
470
+ return {"error": f"Unknown tool: {name}"}
471
+
472
+ def _handle_computer_action(self, input: dict) -> dict:
473
+ """Handle computer control actions."""
474
+ action = input.get("action")
475
+
476
+ if action == "screenshot":
477
+ # Capture via xdotool/scrot
478
+ subprocess.run(["scrot", "/tmp/screenshot.png"])
479
+
480
+ with open("/tmp/screenshot.png", "rb") as f:
481
+ img_data = f.read()
482
+
483
+ # Resize for efficiency
484
+ img = Image.open(io.BytesIO(img_data))
485
+ img = img.resize(self.screen_size, Image.LANCZOS)
486
+
487
+ buffer = io.BytesIO()
488
+ img.save(buffer, format="PNG")
489
+
490
+ return {
491
+ "type": "image",
492
+ "source": {
493
+ "type": "base64",
494
+ "media_type": "image/png",
495
+ "data": base64.b64encode(buffer.getvalue()).decode()
496
+ }
497
+ }
498
+
499
+ elif action == "mouse_move":
500
+ x, y = input.get("coordinate", [0, 0])
501
+ subprocess.run(["xdotool", "mousemove", str(x), str(y)])
502
+ return {"success": True}
503
+
504
+ elif action == "left_click":
505
+ subprocess.run(["xdotool", "click", "1"])
506
+ return {"success": True}
507
+
508
+ elif action == "right_click":
509
+ subprocess.run(["xdotool", "click", "3"])
510
+ return {"success": True}
511
+
512
+ elif action == "double_click":
513
+ subprocess.run(["xdotool", "click", "--repeat", "2", "1"])
514
+ return {"success": True}
515
+
516
+ elif action == "type":
517
+ text = input.get("text", "")
518
+ # Use xdotool type with delay for reliability
519
+ subprocess.run(["xdotool", "type", "--delay", "50", text])
520
+ return {"success": True}
521
+
522
+ elif action == "key":
523
+ key = input.get("key", "")
524
+ # Map common key names
525
+ key_map = {
526
+ "return": "Return",
527
+ "enter": "Return",
528
+ "tab": "Tab",
529
+ "escape": "Escape",
530
+ "backspace": "BackSpace",
531
+ }
532
+ xdotool_key = key_map.get(key.lower(), key)
533
+ subprocess.run(["xdotool", "key", xdotool_key])
534
+ return {"success": True}
535
+
536
+ elif action == "scroll":
537
+ direction = input.get("direction", "down")
538
+ amount = input.get("amount", 3)
539
+ button = "5" if direction == "down" else "4"
540
+ for _ in range(amount):
541
+ subprocess.run(["xdotool", "click", button])
542
+ return {"success": True}
543
+
544
+ return {"error": f"Unknown action: {action}"}
545
+
546
+ def _handle_bash(self, input: dict) -> dict:
547
+ """Execute bash command."""
548
+ command = input.get("command", "")
549
+
550
+ # Security: Sanitize and limit commands
551
+ dangerous_patterns = ["rm -rf", "mkfs", "dd if=", "> /dev/"]
552
+ for pattern in dangerous_patterns:
553
+ if pattern in command:
554
+ return {"error": "Dangerous command blocked"}
555
+
556
+ try:
557
+ result = subprocess.run(
558
+ command,
559
+ shell=True,
560
+ capture_output=True,
561
+ text=True,
562
+ timeout=30
563
+ )
564
+ return {
565
+ "stdout": result.stdout[:10000], # Limit output
566
+ "stderr": result.stderr[:1000],
567
+ "returncode": result.returncode
568
+ }
569
+ except subprocess.TimeoutExpired:
570
+ return {"error": "Command timed out"}
571
+
572
+ def _handle_editor(self, input: dict) -> dict:
573
+ """Handle text editor operations."""
574
+ command = input.get("command")
575
+ path = input.get("path")
576
+
577
+ if command == "view":
578
+ try:
579
+ with open(path, "r") as f:
580
+ content = f.read()
581
+ return {"content": content[:50000]} # Limit size
582
+ except Exception as e:
583
+ return {"error": str(e)}
584
+
585
+ elif command == "str_replace":
586
+ old_str = input.get("old_str")
587
+ new_str = input.get("new_str")
588
+ try:
589
+ with open(path, "r") as f:
590
+ content = f.read()
591
+ if old_str not in content:
592
+ return {"error": "old_str not found in file"}
593
+ content = content.replace(old_str, new_str, 1)
594
+ with open(path, "w") as f:
595
+ f.write(content)
596
+ return {"success": True}
597
+ except Exception as e:
598
+ return {"error": str(e)}
599
+
600
+ return {"error": f"Unknown editor command: {command}"}
601
+
602
+ def run_task(self, task: str, max_steps: int = 50) -> dict:
603
+ """Run computer use task with agentic loop."""
604
+ messages = [{"role": "user", "content": task}]
605
+ tools = self.get_tools()
606
+
607
+ for step in range(max_steps):
608
+ response = self.client.beta.messages.create(
609
+ model=self.model,
610
+ max_tokens=4096,
611
+ tools=tools,
612
+ messages=messages,
613
+ betas=["computer-use-2024-10-22"]
614
+ )
615
+
616
+ # Check for completion
617
+ if response.stop_reason == "end_turn":
618
+ return {
619
+ "success": True,
620
+ "result": response.content[0].text if response.content else "",
621
+ "steps": step + 1
622
+ }
623
+
624
+ # Handle tool use
625
+ if response.stop_reason == "tool_use":
626
+ messages.append({"role": "assistant", "content": response.content})
627
+
628
+ tool_results = []
629
+ for block in response.content:
630
+ if block.type == "tool_use":
631
+ result = self.execute_tool(block.name, block.input)
632
+ tool_results.append({
633
+ "type": "tool_result",
634
+ "tool_use_id": block.id,
635
+ "content": result
636
+ })
637
+
638
+ messages.append({"role": "user", "content": tool_results})
639
+
640
+ return {"success": False, "error": "Max steps reached"}
641
+
642
+ ### Anti_patterns
643
+
644
+ - Not using betas=['computer-use-2024-10-22'] flag
645
+ - Full resolution screenshots (wasteful)
646
+ - No command sanitization for bash tool
647
+ - Unbounded execution time
648
+
649
+ ### Browser-Use Pattern (Playwright-based)
650
+
651
+ For browser-only automation, using structured DOM access is more efficient
652
+ than pixel-based computer use. Playwright MCP allows LLMs to control
653
+ browsers using accessibility snapshots rather than screenshots.
654
+
655
+ Advantages over vision-based:
656
+ - Faster: No image processing required
657
+ - Cheaper: Text tokens vs image tokens
658
+ - More precise: Direct element targeting
659
+ - More reliable: No coordinate drift
660
+
661
+ When to use vision vs structured:
662
+ - Vision: Desktop apps, complex UIs, visual verification
663
+ - Structured: Web automation, form filling, data extraction
664
+
665
+ **When to use**: Browser-only automation tasks,Form filling and web interactions,When speed and cost matter more than visual understanding
666
+
667
+ from playwright.async_api import async_playwright
668
+ from dataclasses import dataclass
669
+ from typing import Optional
670
+ import asyncio
671
+
672
+ @dataclass
673
+ class BrowserAction:
674
+ """Structured browser action."""
675
+ action: str # click, type, navigate, scroll, extract
676
+ selector: Optional[str] = None
677
+ text: Optional[str] = None
678
+ url: Optional[str] = None
679
+
680
+ class BrowserUseAgent:
681
+ """
682
+ Browser automation using Playwright with structured commands.
683
+ More efficient than pixel-based for web tasks.
684
+ """
685
+
686
+ def __init__(self):
687
+ self.browser = None
688
+ self.page = None
689
+
690
+ async def start(self, headless: bool = True):
691
+ """Start browser session."""
692
+ self.playwright = await async_playwright().start()
693
+ self.browser = await self.playwright.chromium.launch(headless=headless)
694
+ self.page = await self.browser.new_page()
695
+
696
+ async def get_page_snapshot(self) -> dict:
697
+ """
698
+ Get structured snapshot of page for LLM.
699
+ Uses accessibility tree for efficiency.
700
+ """
701
+ # Get accessibility tree
702
+ snapshot = await self.page.accessibility.snapshot()
703
+
704
+ # Get simplified DOM info
705
+ elements = await self.page.evaluate('''() => {
706
+ const interactable = [];
707
+ const selector = 'a, button, input, select, textarea, [role="button"]';
708
+ document.querySelectorAll(selector).forEach((el, i) => {
709
+ const rect = el.getBoundingClientRect();
710
+ if (rect.width > 0 && rect.height > 0) {
711
+ interactable.push({
712
+ index: i,
713
+ tag: el.tagName.toLowerCase(),
714
+ text: el.textContent?.trim().slice(0, 100),
715
+ type: el.type,
716
+ placeholder: el.placeholder,
717
+ name: el.name,
718
+ id: el.id,
719
+ class: el.className
720
+ });
721
+ }
722
+ });
723
+ return interactable;
724
+ }''')
725
+
726
+ return {
727
+ "url": self.page.url,
728
+ "title": await self.page.title(),
729
+ "accessibility_tree": snapshot,
730
+ "interactable_elements": elements[:50] # Limit for token efficiency
731
+ }
732
+
733
+ async def execute_action(self, action: BrowserAction) -> dict:
734
+ """Execute structured browser action."""
735
+
736
+ try:
737
+ if action.action == "navigate":
738
+ await self.page.goto(action.url, wait_until="domcontentloaded")
739
+ return {"success": True, "url": self.page.url}
740
+
741
+ elif action.action == "click":
742
+ await self.page.click(action.selector, timeout=5000)
743
+ await self.page.wait_for_load_state("networkidle", timeout=5000)
744
+ return {"success": True}
745
+
746
+ elif action.action == "type":
747
+ await self.page.fill(action.selector, action.text)
748
+ return {"success": True}
749
+
750
+ elif action.action == "scroll":
751
+ direction = action.text or "down"
752
+ distance = 500 if direction == "down" else -500
753
+ await self.page.evaluate(f"window.scrollBy(0, {distance})")
754
+ return {"success": True}
755
+
756
+ elif action.action == "extract":
757
+ # Extract text content
758
+ if action.selector:
759
+ text = await self.page.text_content(action.selector)
760
+ else:
761
+ text = await self.page.text_content("body")
762
+ return {"success": True, "text": text[:5000]}
763
+
764
+ elif action.action == "screenshot":
765
+ # Fall back to vision when needed
766
+ screenshot = await self.page.screenshot(type="png")
767
+ import base64
768
+ return {
769
+ "success": True,
770
+ "image": base64.b64encode(screenshot).decode()
771
+ }
772
+
773
+ except Exception as e:
774
+ return {"success": False, "error": str(e)}
775
+
776
+ return {"success": False, "error": f"Unknown action: {action.action}"}
777
+
778
+ async def run_with_llm(self, task: str, llm_client, max_steps: int = 20):
779
+ """
780
+ Run browser task with LLM decision making.
781
+ Uses structured DOM instead of screenshots.
782
+ """
783
+
784
+ system_prompt = """You are a browser automation agent. You receive
785
+ page snapshots with interactable elements and decide actions.
786
+
787
+ Respond with JSON action:
788
+ - {"action": "navigate", "url": "https://..."}
789
+ - {"action": "click", "selector": "button.submit"}
790
+ - {"action": "type", "selector": "input[name='email']", "text": "..."}
791
+ - {"action": "scroll", "text": "down"}
792
+ - {"action": "extract", "selector": ".results"}
793
+ - {"action": "done", "result": "task completed"}
794
+
795
+ Use CSS selectors based on the element info provided.
796
+ Prefer id > name > class > text content for selectors.
797
+ """
798
+
799
+ messages = []
800
+
801
+ for step in range(max_steps):
802
+ # Get current page state
803
+ snapshot = await self.get_page_snapshot()
804
+
805
+ user_message = f"""Task: {task}
806
+
807
+ Current page:
808
+ URL: {snapshot['url']}
809
+ Title: {snapshot['title']}
810
+
811
+ Interactable elements:
812
+ {snapshot['interactable_elements']}
813
+
814
+ What action should I take?"""
815
+
816
+ messages.append({"role": "user", "content": user_message})
817
+
818
+ # Get LLM decision
819
+ response = llm_client.messages.create(
820
+ model="claude-sonnet-4-20250514",
821
+ max_tokens=1024,
822
+ system=system_prompt,
823
+ messages=messages
824
+ )
825
+
826
+ assistant_text = response.content[0].text
827
+ messages.append({"role": "assistant", "content": assistant_text})
828
+
829
+ # Parse and execute
830
+ import json
831
+ action_dict = json.loads(assistant_text)
832
+
833
+ if action_dict.get("action") == "done":
834
+ return {"success": True, "result": action_dict.get("result")}
835
+
836
+ action = BrowserAction(**action_dict)
837
+ result = await self.execute_action(action)
838
+
839
+ if not result.get("success"):
840
+ messages.append({
841
+ "role": "user",
842
+ "content": f"Action failed: {result.get('error')}"
843
+ })
844
+
845
+ await asyncio.sleep(0.5) # Rate limit
846
+
847
+ return {"success": False, "error": "Max steps reached"}
848
+
849
+ async def close(self):
850
+ """Clean up browser."""
851
+ if self.browser:
852
+ await self.browser.close()
853
+ if hasattr(self, 'playwright'):
854
+ await self.playwright.stop()
855
+
856
+ # Usage
857
+ async def main():
858
+ agent = BrowserUseAgent()
859
+ await agent.start(headless=False)
860
+
861
+ from anthropic import Anthropic
862
+ result = await agent.run_with_llm(
863
+ "Go to weather.com and find the weather for New York",
864
+ Anthropic()
865
+ )
866
+
867
+ print(result)
868
+ await agent.close()
869
+
870
+ asyncio.run(main())
871
+
872
+ ### Anti_patterns
873
+
874
+ - Using screenshots when DOM access works
875
+ - Not waiting for page loads
876
+ - Hardcoded selectors that break
877
+ - No error recovery for stale elements
878
+
879
+ ### User Confirmation Pattern
880
+
881
+ For sensitive actions, agents should pause and ask for human confirmation.
882
+ "ChatGPT agent also pauses and asks for confirmation prior to taking
883
+ sensitive steps such as completing a purchase."
884
+
885
+ Sensitivity levels:
886
+ 1. LOW: Navigation, reading (auto-approve)
887
+ 2. MEDIUM: Form filling, clicking (log, maybe confirm)
888
+ 3. HIGH: Purchases, authentication, file operations (always confirm)
889
+ 4. CRITICAL: Credential entry, financial transactions (confirm + review)
890
+
891
+ **When to use**: Actions with real-world consequences,Financial transactions,Authentication flows,File modifications
892
+
893
+ from enum import Enum
894
+ from dataclasses import dataclass
895
+ from typing import Callable, Optional
896
+ import asyncio
897
+
898
+ class ActionSeverity(Enum):
899
+ LOW = "low" # Auto-approve
900
+ MEDIUM = "medium" # Log, optional confirm
901
+ HIGH = "high" # Always confirm
902
+ CRITICAL = "critical" # Confirm + review details
903
+
904
+ @dataclass
905
+ class SensitiveAction:
906
+ """Action that may need user confirmation."""
907
+ action_type: str
908
+ description: str
909
+ severity: ActionSeverity
910
+ details: dict
911
+
912
+ class ConfirmationGate:
913
+ """
914
+ Gate sensitive actions through user confirmation.
915
+ """
916
+
917
+ # Action type -> severity mapping
918
+ ACTION_SEVERITY = {
919
+ # LOW - auto-approve
920
+ "navigate": ActionSeverity.LOW,
921
+ "scroll": ActionSeverity.LOW,
922
+ "read": ActionSeverity.LOW,
923
+ "screenshot": ActionSeverity.LOW,
924
+
925
+ # MEDIUM - log and maybe confirm
926
+ "click": ActionSeverity.MEDIUM,
927
+ "type": ActionSeverity.MEDIUM,
928
+ "search": ActionSeverity.MEDIUM,
929
+
930
+ # HIGH - always confirm
931
+ "download": ActionSeverity.HIGH,
932
+ "submit_form": ActionSeverity.HIGH,
933
+ "login": ActionSeverity.HIGH,
934
+ "file_write": ActionSeverity.HIGH,
935
+
936
+ # CRITICAL - confirm with full review
937
+ "purchase": ActionSeverity.CRITICAL,
938
+ "enter_password": ActionSeverity.CRITICAL,
939
+ "enter_credit_card": ActionSeverity.CRITICAL,
940
+ "send_money": ActionSeverity.CRITICAL,
941
+ "delete": ActionSeverity.CRITICAL,
942
+ }
943
+
944
+ def __init__(
945
+ self,
946
+ confirm_callback: Callable[[SensitiveAction], bool] = None,
947
+ auto_confirm_low: bool = True,
948
+ auto_confirm_medium: bool = False
949
+ ):
950
+ self.confirm_callback = confirm_callback or self._default_confirm
951
+ self.auto_confirm_low = auto_confirm_low
952
+ self.auto_confirm_medium = auto_confirm_medium
953
+ self.action_log = []
954
+
955
+ def _default_confirm(self, action: SensitiveAction) -> bool:
956
+ """Default confirmation via CLI prompt."""
957
+ print(f"\n{'='*60}")
958
+ print(f"ACTION CONFIRMATION REQUIRED")
959
+ print(f"{'='*60}")
960
+ print(f"Type: {action.action_type}")
961
+ print(f"Severity: {action.severity.value.upper()}")
962
+ print(f"Description: {action.description}")
963
+ print(f"Details: {action.details}")
964
+ print(f"{'='*60}")
965
+
966
+ while True:
967
+ response = input("Allow this action? [y/n]: ").lower().strip()
968
+ if response in ['y', 'yes']:
969
+ return True
970
+ elif response in ['n', 'no']:
971
+ return False
972
+
973
+ def classify_action(self, action_type: str, context: dict) -> ActionSeverity:
974
+ """Classify action severity, considering context."""
975
+ base_severity = self.ACTION_SEVERITY.get(action_type, ActionSeverity.MEDIUM)
976
+
977
+ # Escalate based on context
978
+ if context.get("involves_credentials"):
979
+ return ActionSeverity.CRITICAL
980
+ if context.get("involves_money"):
981
+ return ActionSeverity.CRITICAL
982
+ if context.get("irreversible"):
983
+ return max(base_severity, ActionSeverity.HIGH, key=lambda x: x.value)
984
+
985
+ return base_severity
986
+
987
+ def check_action(
988
+ self,
989
+ action_type: str,
990
+ description: str,
991
+ details: dict = None
992
+ ) -> tuple[bool, str]:
993
+ """
994
+ Check if action should proceed.
995
+ Returns (approved, reason).
996
+ """
997
+ details = details or {}
998
+ severity = self.classify_action(action_type, details)
999
+
1000
+ action = SensitiveAction(
1001
+ action_type=action_type,
1002
+ description=description,
1003
+ severity=severity,
1004
+ details=details
1005
+ )
1006
+
1007
+ # Log all actions
1008
+ self.action_log.append({
1009
+ "action": action,
1010
+ "timestamp": __import__('datetime').datetime.now().isoformat()
1011
+ })
1012
+
1013
+ # Auto-approve low severity
1014
+ if severity == ActionSeverity.LOW and self.auto_confirm_low:
1015
+ return True, "auto-approved (low severity)"
1016
+
1017
+ # Maybe auto-approve medium
1018
+ if severity == ActionSeverity.MEDIUM and self.auto_confirm_medium:
1019
+ return True, "auto-approved (medium severity)"
1020
+
1021
+ # Request confirmation
1022
+ approved = self.confirm_callback(action)
1023
+
1024
+ if approved:
1025
+ return True, "user approved"
1026
+ else:
1027
+ return False, "user rejected"
1028
+
1029
+ class ConfirmedComputerUseAgent:
1030
+ """
1031
+ Computer use agent with confirmation gates.
1032
+ """
1033
+
1034
+ def __init__(self, base_agent, confirmation_gate: ConfirmationGate):
1035
+ self.agent = base_agent
1036
+ self.gate = confirmation_gate
1037
+
1038
+ def execute_action(self, action: dict) -> dict:
1039
+ """Execute action with confirmation check."""
1040
+ action_type = action.get("type", "unknown")
1041
+
1042
+ # Build description
1043
+ if action_type == "click":
1044
+ desc = f"Click at ({action.get('x')}, {action.get('y')})"
1045
+ elif action_type == "type":
1046
+ text = action.get('text', '')
1047
+ # Mask if looks like password
1048
+ if self._looks_sensitive(text):
1049
+ desc = f"Type sensitive text ({len(text)} chars)"
1050
+ else:
1051
+ desc = f"Type: {text[:50]}..."
1052
+ else:
1053
+ desc = f"Execute: {action_type}"
1054
+
1055
+ # Context for severity classification
1056
+ context = {
1057
+ "involves_credentials": self._looks_sensitive(action.get("text", "")),
1058
+ "involves_money": self._mentions_money(action),
1059
+ }
1060
+
1061
+ # Check with gate
1062
+ approved, reason = self.gate.check_action(
1063
+ action_type, desc, context
1064
+ )
1065
+
1066
+ if not approved:
1067
+ return {
1068
+ "success": False,
1069
+ "error": f"Action blocked: {reason}",
1070
+ "action": action_type
1071
+ }
1072
+
1073
+ # Execute if approved
1074
+ return self.agent.execute_action(action)
1075
+
1076
+ def _looks_sensitive(self, text: str) -> bool:
1077
+ """Check if text looks like sensitive data."""
1078
+ if not text:
1079
+ return False
1080
+ # Common patterns
1081
+ patterns = [
1082
+ r'\b\d{16}\b', # Credit card
1083
+ r'\b\d{3,4}\b.*\b\d{3,4}\b', # CVV-like
1084
+ r'password',
1085
+ r'secret',
1086
+ r'api.?key',
1087
+ r'token'
1088
+ ]
1089
+ import re
1090
+ return any(re.search(p, text.lower()) for p in patterns)
1091
+
1092
+ def _mentions_money(self, action: dict) -> bool:
1093
+ """Check if action involves money."""
1094
+ text = str(action)
1095
+ money_patterns = [
1096
+ r'\$\d+', r'pay', r'purchase', r'buy', r'checkout',
1097
+ r'credit', r'debit', r'invoice', r'payment'
1098
+ ]
1099
+ import re
1100
+ return any(re.search(p, text.lower()) for p in money_patterns)
1101
+
1102
+ # Usage
1103
+ gate = ConfirmationGate(
1104
+ auto_confirm_low=True,
1105
+ auto_confirm_medium=False # Confirm clicks, typing
1106
+ )
1107
+
1108
+ agent = ConfirmedComputerUseAgent(base_agent, gate)
1109
+ result = agent.execute_action({"type": "click", "x": 500, "y": 300})
1110
+
1111
+ ### Anti_patterns
1112
+
1113
+ - Auto-approving all actions
1114
+ - Not logging rejected actions
1115
+ - Showing full passwords in confirmation
1116
+ - No timeout on confirmation (hangs forever)
1117
+
1118
+ ### Action Logging Pattern
1119
+
1120
+ All computer use agent actions should be logged for:
1121
+ 1. Debugging failed automations
1122
+ 2. Security auditing
1123
+ 3. Reproducibility
1124
+ 4. Compliance requirements
1125
+
1126
+ Log format should capture:
1127
+ - Timestamp
1128
+ - Action type and parameters
1129
+ - Screenshot before/after
1130
+ - Success/failure status
1131
+ - Model reasoning (if available)
1132
+
1133
+ **When to use**: Production computer use deployments,Debugging automation failures,Security-sensitive environments
1134
+
1135
+ from dataclasses import dataclass, field
1136
+ from datetime import datetime
1137
+ from typing import Optional, Any
1138
+ import json
1139
+ import os
1140
+
1141
+ @dataclass
1142
+ class ActionLogEntry:
1143
+ """Single action log entry."""
1144
+ timestamp: datetime
1145
+ action_type: str
1146
+ parameters: dict
1147
+ success: bool
1148
+ error: Optional[str] = None
1149
+ screenshot_before: Optional[str] = None # Path to screenshot
1150
+ screenshot_after: Optional[str] = None
1151
+ model_reasoning: Optional[str] = None
1152
+ duration_ms: Optional[int] = None
1153
+
1154
+ def to_dict(self) -> dict:
1155
+ return {
1156
+ "timestamp": self.timestamp.isoformat(),
1157
+ "action_type": self.action_type,
1158
+ "parameters": self._sanitize_params(self.parameters),
1159
+ "success": self.success,
1160
+ "error": self.error,
1161
+ "screenshot_before": self.screenshot_before,
1162
+ "screenshot_after": self.screenshot_after,
1163
+ "model_reasoning": self.model_reasoning,
1164
+ "duration_ms": self.duration_ms
1165
+ }
1166
+
1167
+ def _sanitize_params(self, params: dict) -> dict:
1168
+ """Remove sensitive data from params."""
1169
+ sanitized = {}
1170
+ sensitive_keys = ['password', 'secret', 'token', 'key', 'credit_card']
1171
+
1172
+ for k, v in params.items():
1173
+ if any(s in k.lower() for s in sensitive_keys):
1174
+ sanitized[k] = "[REDACTED]"
1175
+ elif isinstance(v, str) and len(v) > 100:
1176
+ sanitized[k] = v[:100] + "...[truncated]"
1177
+ else:
1178
+ sanitized[k] = v
1179
+
1180
+ return sanitized
1181
+
1182
+ @dataclass
1183
+ class TaskSession:
1184
+ """A complete task execution session."""
1185
+ session_id: str
1186
+ task: str
1187
+ start_time: datetime
1188
+ end_time: Optional[datetime] = None
1189
+ actions: list[ActionLogEntry] = field(default_factory=list)
1190
+ success: bool = False
1191
+ final_result: Optional[str] = None
1192
+
1193
+ class ActionLogger:
1194
+ """
1195
+ Comprehensive action logging for computer use agents.
1196
+ """
1197
+
1198
+ def __init__(self, log_dir: str = "./agent_logs"):
1199
+ self.log_dir = log_dir
1200
+ self.screenshot_dir = os.path.join(log_dir, "screenshots")
1201
+ os.makedirs(self.screenshot_dir, exist_ok=True)
1202
+
1203
+ self.current_session: Optional[TaskSession] = None
1204
+
1205
+ def start_session(self, task: str) -> str:
1206
+ """Start a new task session."""
1207
+ import uuid
1208
+ session_id = str(uuid.uuid4())[:8]
1209
+
1210
+ self.current_session = TaskSession(
1211
+ session_id=session_id,
1212
+ task=task,
1213
+ start_time=datetime.now()
1214
+ )
1215
+
1216
+ return session_id
1217
+
1218
+ def log_action(
1219
+ self,
1220
+ action_type: str,
1221
+ parameters: dict,
1222
+ success: bool,
1223
+ error: Optional[str] = None,
1224
+ screenshot_before: bytes = None,
1225
+ screenshot_after: bytes = None,
1226
+ model_reasoning: str = None,
1227
+ duration_ms: int = None
1228
+ ):
1229
+ """Log a single action."""
1230
+ if not self.current_session:
1231
+ raise RuntimeError("No active session")
1232
+
1233
+ # Save screenshots if provided
1234
+ screenshot_paths = {}
1235
+ timestamp_str = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
1236
+
1237
+ if screenshot_before:
1238
+ path = os.path.join(
1239
+ self.screenshot_dir,
1240
+ f"{self.current_session.session_id}_{timestamp_str}_before.png"
1241
+ )
1242
+ with open(path, "wb") as f:
1243
+ f.write(screenshot_before)
1244
+ screenshot_paths["before"] = path
1245
+
1246
+ if screenshot_after:
1247
+ path = os.path.join(
1248
+ self.screenshot_dir,
1249
+ f"{self.current_session.session_id}_{timestamp_str}_after.png"
1250
+ )
1251
+ with open(path, "wb") as f:
1252
+ f.write(screenshot_after)
1253
+ screenshot_paths["after"] = path
1254
+
1255
+ # Create log entry
1256
+ entry = ActionLogEntry(
1257
+ timestamp=datetime.now(),
1258
+ action_type=action_type,
1259
+ parameters=parameters,
1260
+ success=success,
1261
+ error=error,
1262
+ screenshot_before=screenshot_paths.get("before"),
1263
+ screenshot_after=screenshot_paths.get("after"),
1264
+ model_reasoning=model_reasoning,
1265
+ duration_ms=duration_ms
1266
+ )
1267
+
1268
+ self.current_session.actions.append(entry)
1269
+
1270
+ # Also append to running log file
1271
+ self._append_to_log(entry)
1272
+
1273
+ def _append_to_log(self, entry: ActionLogEntry):
1274
+ """Append entry to JSONL log file."""
1275
+ log_file = os.path.join(
1276
+ self.log_dir,
1277
+ f"session_{self.current_session.session_id}.jsonl"
1278
+ )
1279
+
1280
+ with open(log_file, "a") as f:
1281
+ f.write(json.dumps(entry.to_dict()) + "\n")
1282
+
1283
+ def end_session(self, success: bool, result: str = None):
1284
+ """End current session."""
1285
+ if not self.current_session:
1286
+ return
1287
+
1288
+ self.current_session.end_time = datetime.now()
1289
+ self.current_session.success = success
1290
+ self.current_session.final_result = result
1291
+
1292
+ # Write session summary
1293
+ summary_file = os.path.join(
1294
+ self.log_dir,
1295
+ f"session_{self.current_session.session_id}_summary.json"
1296
+ )
1297
+
1298
+ summary = {
1299
+ "session_id": self.current_session.session_id,
1300
+ "task": self.current_session.task,
1301
+ "start_time": self.current_session.start_time.isoformat(),
1302
+ "end_time": self.current_session.end_time.isoformat(),
1303
+ "duration_seconds": (
1304
+ self.current_session.end_time -
1305
+ self.current_session.start_time
1306
+ ).total_seconds(),
1307
+ "total_actions": len(self.current_session.actions),
1308
+ "successful_actions": sum(
1309
+ 1 for a in self.current_session.actions if a.success
1310
+ ),
1311
+ "failed_actions": sum(
1312
+ 1 for a in self.current_session.actions if not a.success
1313
+ ),
1314
+ "success": success,
1315
+ "final_result": result
1316
+ }
1317
+
1318
+ with open(summary_file, "w") as f:
1319
+ json.dump(summary, f, indent=2)
1320
+
1321
+ self.current_session = None
1322
+
1323
+ def get_session_replay(self, session_id: str) -> list[dict]:
1324
+ """Get all actions from a session for replay/debugging."""
1325
+ log_file = os.path.join(self.log_dir, f"session_{session_id}.jsonl")
1326
+
1327
+ actions = []
1328
+ with open(log_file, "r") as f:
1329
+ for line in f:
1330
+ actions.append(json.loads(line))
1331
+
1332
+ return actions
1333
+
1334
+ # Integration with agent
1335
+ class LoggedComputerUseAgent:
1336
+ """Computer use agent with comprehensive logging."""
1337
+
1338
+ def __init__(self, base_agent, logger: ActionLogger):
1339
+ self.agent = base_agent
1340
+ self.logger = logger
1341
+
1342
+ def run_task(self, task: str) -> dict:
1343
+ """Run task with full logging."""
1344
+ session_id = self.logger.start_session(task)
1345
+
1346
+ try:
1347
+ result = self._run_with_logging(task)
1348
+ self.logger.end_session(
1349
+ success=result.get("success", False),
1350
+ result=result.get("result")
1351
+ )
1352
+ return result
1353
+ except Exception as e:
1354
+ self.logger.end_session(success=False, result=str(e))
1355
+ raise
1356
+
1357
+ def _run_with_logging(self, task: str) -> dict:
1358
+ """Internal run with action logging."""
1359
+ # This would wrap the base agent's run method
1360
+ # and log each action
1361
+ pass
1362
+
1363
+ ### Anti_patterns
1364
+
1365
+ - Not sanitizing sensitive data in logs
1366
+ - Storing screenshots indefinitely (storage costs)
1367
+ - Not rotating log files
1368
+ - Logging synchronously (blocks agent)
1369
+
1370
+
1371
+ ## Sharp Edges
1372
+
1373
+ ### Web Content Can Hijack Your Agent
1374
+
1375
+ Severity: CRITICAL
1376
+
1377
+ Situation: Computer use agent browsing the web
1378
+
1379
+ Symptoms:
1380
+ Agent suddenly performs unexpected actions. Clicks malicious links.
1381
+ Enters credentials on phishing sites. Downloads files it shouldn't.
1382
+ Ignores your instructions and follows embedded commands instead.
1383
+
1384
+ Why this breaks:
1385
+ "While all agents that process untrusted content are subject to prompt
1386
+ injection risks, browser use amplifies this risk in two ways. First,
1387
+ the attack surface is vast: every webpage, embedded document, advertisement,
1388
+ and dynamically loaded script represents a potential vector for malicious
1389
+ instructions. Second, browser agents can take many different actions—
1390
+ navigating to URLs, filling forms, clicking buttons, downloading files—
1391
+ that attackers can exploit."
1392
+
1393
+ Real attacks have already happened:
1394
+ - "Microsoft Copilot agents were hijacked with emails containing malicious
1395
+ instructions, which allowed attackers to extract entire CRM databases."
1396
+ - "Google's Workspace services were manipulated—hidden prompts inside
1397
+ calendar invites and emails tricked Gemini agents into deleting events
1398
+ and exposing sensitive messages."
1399
+
1400
+ Even a 1% attack success rate represents meaningful risk at scale.
1401
+
1402
+ Recommended fix:
1403
+
1404
+
1405
+ ## Defense in depth - no single solution works
1406
+
1407
+ 1. Sandboxing (most effective):
1408
+ ```python
1409
+ # Docker with strict isolation
1410
+ docker run \
1411
+ --security-opt no-new-privileges \
1412
+ --cap-drop ALL \
1413
+ --network none \ # No internet!
1414
+ --read-only \
1415
+ computer-use-agent
1416
+ ```
1417
+
1418
+ 2. Classifier-based detection:
1419
+ ```python
1420
+ def scan_for_injection(content: str) -> bool:
1421
+ """Detect prompt injection attempts."""
1422
+ patterns = [
1423
+ r"ignore.*instructions",
1424
+ r"disregard.*previous",
1425
+ r"new.*instructions",
1426
+ r"you are now",
1427
+ r"act as if",
1428
+ r"pretend to be",
1429
+ ]
1430
+ return any(re.search(p, content.lower()) for p in patterns)
1431
+
1432
+ # Check page content before processing
1433
+ page_text = await page.text_content("body")
1434
+ if scan_for_injection(page_text):
1435
+ return {"error": "Potential injection detected"}
1436
+ ```
1437
+
1438
+ 3. User confirmation for sensitive actions:
1439
+ ```python
1440
+ SENSITIVE_ACTIONS = {"download", "submit", "login", "purchase"}
1441
+
1442
+ if action_type in SENSITIVE_ACTIONS:
1443
+ if not await get_user_confirmation(action):
1444
+ return {"error": "User rejected action"}
1445
+ ```
1446
+
1447
+ 4. Scoped credentials:
1448
+ - Never give agent access to all credentials
1449
+ - Use temporary, limited tokens
1450
+ - Revoke after task completion
1451
+
1452
+ ### Vision Agents Click Exact Centers
1453
+
1454
+ Severity: MEDIUM
1455
+
1456
+ Situation: Agent clicking on UI elements
1457
+
1458
+ Symptoms:
1459
+ Agent's clicks are detectable as non-human. Websites may block or
1460
+ CAPTCHA the agent. Anti-bot systems flag the interaction.
1461
+
1462
+ Why this breaks:
1463
+ "When a vision model identifies a button, it calculates the center.
1464
+ Click coordinates land at mathematically precise positions—often exact
1465
+ element centers or grid-aligned pixel values. Humans don't click centers;
1466
+ their click distributions follow a Gaussian pattern around targets."
1467
+
1468
+ The screenshot loop also creates detectable patterns:
1469
+ "Predictable pauses. Vision agents are completely still during their
1470
+ 'thinking' phase. The pattern looks like: Action → Complete stillness
1471
+ (1-5 seconds) → Action → Complete stillness → Action."
1472
+
1473
+ Sophisticated anti-bot systems detect:
1474
+ - Perfect center clicks
1475
+ - No mouse movement during "thinking"
1476
+ - Consistent timing between actions
1477
+ - Lack of micro-movements and hesitation
1478
+
1479
+ Recommended fix:
1480
+
1481
+
1482
+ ## Add human-like variance to actions
1483
+
1484
+ ```python
1485
+ import random
1486
+ import time
1487
+
1488
+ def humanized_click(x: int, y: int) -> tuple[int, int]:
1489
+ """Add human-like variance to click coordinates."""
1490
+ # Gaussian distribution around target
1491
+ # Humans typically land within ~10px of target
1492
+ x_offset = int(random.gauss(0, 5))
1493
+ y_offset = int(random.gauss(0, 5))
1494
+
1495
+ return (x + x_offset, y + y_offset)
1496
+
1497
+ def humanized_delay():
1498
+ """Add human-like delay between actions."""
1499
+ # Humans have variable reaction times
1500
+ base_delay = random.uniform(0.3, 0.8)
1501
+ # Occasionally longer pauses (reading, thinking)
1502
+ if random.random() < 0.2:
1503
+ base_delay += random.uniform(0.5, 2.0)
1504
+ time.sleep(base_delay)
1505
+
1506
+ def humanized_movement(from_pos: tuple, to_pos: tuple):
1507
+ """Move mouse in curved path like human."""
1508
+ # Bezier curve or similar
1509
+ # Humans don't move in straight lines
1510
+ steps = random.randint(10, 20)
1511
+ for i in range(steps):
1512
+ t = i / steps
1513
+ # Simple curve approximation
1514
+ x = from_pos[0] + (to_pos[0] - from_pos[0]) * t
1515
+ y = from_pos[1] + (to_pos[1] - from_pos[1]) * t
1516
+ # Add wobble
1517
+ x += random.gauss(0, 2)
1518
+ y += random.gauss(0, 2)
1519
+ pyautogui.moveTo(int(x), int(y))
1520
+ time.sleep(0.01)
1521
+ ```
1522
+
1523
+
1524
+ ## Rotate user agents and fingerprints
1525
+
1526
+ ```python
1527
+ USER_AGENTS = [
1528
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120...",
1529
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Safari/...",
1530
+ # ... more realistic agents
1531
+ ]
1532
+
1533
+ await page.set_extra_http_headers({
1534
+ "User-Agent": random.choice(USER_AGENTS)
1535
+ })
1536
+ ```
1537
+
1538
+ ### Dropdowns, Scrollbars, and Drags Are Unreliable
1539
+
1540
+ Severity: HIGH
1541
+
1542
+ Situation: Agent interacting with complex UI elements
1543
+
1544
+ Symptoms:
1545
+ Agent fails to select dropdown options. Scroll doesn't work as expected.
1546
+ Drag and drop completely fails. Hover menus disappear before clicking.
1547
+
1548
+ Why this breaks:
1549
+ "Computer Use currently struggles with certain interface interactions,
1550
+ particularly scrolling, dragging, and zooming operations. Some UI elements
1551
+ (like dropdowns and scrollbars) might be tricky for Claude to manipulate."
1552
+ - Anthropic documentation
1553
+
1554
+ Why these are hard:
1555
+ 1. Dropdowns: Options appear after click, need second click to select
1556
+ 2. Scrollbars: Small targets, need precise positioning
1557
+ 3. Drag: Requires coordinated mouse down, move, mouse up
1558
+ 4. Hover menus: Disappear when mouse moves away
1559
+ 5. Canvas elements: No semantic information visible
1560
+
1561
+ Vision models see pixels, not DOM structure. They don't "know" that
1562
+ a dropdown is a dropdown - they have to infer from visual cues.
1563
+
1564
+ Recommended fix:
1565
+
1566
+
1567
+ ## Use keyboard alternatives when possible
1568
+
1569
+ ```python
1570
+ # Instead of clicking dropdown, use keyboard
1571
+ async def select_dropdown_option(page, dropdown_selector, option_text):
1572
+ # Focus the dropdown
1573
+ await page.click(dropdown_selector)
1574
+ await asyncio.sleep(0.3)
1575
+
1576
+ # Use keyboard to find option
1577
+ await page.keyboard.type(option_text[:3]) # Type first letters
1578
+ await asyncio.sleep(0.2)
1579
+ await page.keyboard.press("Enter")
1580
+ ```
1581
+
1582
+
1583
+ ## Break complex actions into steps
1584
+
1585
+ ```python
1586
+ # Instead of drag-and-drop
1587
+ async def reliable_drag(page, source, target):
1588
+ # Step 1: Click and hold
1589
+ await page.mouse.move(source["x"], source["y"])
1590
+ await page.mouse.down()
1591
+ await asyncio.sleep(0.2)
1592
+
1593
+ # Step 2: Move in steps
1594
+ steps = 10
1595
+ for i in range(steps):
1596
+ x = source["x"] + (target["x"] - source["x"]) * i / steps
1597
+ y = source["y"] + (target["y"] - source["y"]) * i / steps
1598
+ await page.mouse.move(x, y)
1599
+ await asyncio.sleep(0.05)
1600
+
1601
+ # Step 3: Release
1602
+ await page.mouse.move(target["x"], target["y"])
1603
+ await asyncio.sleep(0.1)
1604
+ await page.mouse.up()
1605
+ ```
1606
+
1607
+
1608
+ ## Fall back to DOM access for web
1609
+
1610
+ ```python
1611
+ # If vision fails, try direct DOM manipulation
1612
+ async def robust_select(page, select_selector, value):
1613
+ try:
1614
+ # Try vision approach first
1615
+ await vision_agent.select(select_selector, value)
1616
+ except Exception:
1617
+ # Fall back to direct DOM
1618
+ await page.select_option(select_selector, value=value)
1619
+ ```
1620
+
1621
+
1622
+ ## Add verification after action
1623
+
1624
+ ```python
1625
+ async def verified_scroll(page, direction):
1626
+ # Get current scroll position
1627
+ before = await page.evaluate("window.scrollY")
1628
+
1629
+ # Attempt scroll
1630
+ await page.mouse.wheel(0, 500 if direction == "down" else -500)
1631
+ await asyncio.sleep(0.3)
1632
+
1633
+ # Verify it worked
1634
+ after = await page.evaluate("window.scrollY")
1635
+ if before == after:
1636
+ # Try alternative method
1637
+ await page.keyboard.press("PageDown" if direction == "down" else "PageUp")
1638
+ ```
1639
+
1640
+ ### Agents Are 2-5x Slower Than Humans
1641
+
1642
+ Severity: MEDIUM
1643
+
1644
+ Situation: Automating any computer task
1645
+
1646
+ Symptoms:
1647
+ Task that takes human 1 minute takes agent 3-5 minutes.
1648
+ Users complain about speed. Timeouts occur.
1649
+
1650
+ Why this breaks:
1651
+ "The technology can be slow compared to human operators, often requiring
1652
+ multiple screenshots and analysis cycles."
1653
+
1654
+ Why so slow:
1655
+ 1. Screenshot capture: 100-500ms
1656
+ 2. Vision model inference: 1-5 seconds per screenshot
1657
+ 3. Action execution: 200-500ms
1658
+ 4. Wait for UI update: 500-1000ms
1659
+ 5. Total per action: 2-7 seconds
1660
+
1661
+ A task requiring 20 actions takes 40-140 seconds minimum.
1662
+ Humans do the same actions in 20-30 seconds.
1663
+
1664
+ Recommended fix:
1665
+
1666
+
1667
+ ## Accept the tradeoff
1668
+
1669
+ Computer use is for:
1670
+ - Tasks humans don't want to do (repetitive)
1671
+ - Tasks that can run in background
1672
+ - Tasks where accuracy > speed
1673
+
1674
+
1675
+ ## Optimize where possible
1676
+
1677
+ ```python
1678
+ # 1. Reduce screenshot resolution
1679
+ SCREEN_SIZE = (1280, 800) # Not 4K
1680
+
1681
+ # 2. Batch similar actions
1682
+ # Instead of: type "hello", wait, type " world"
1683
+ await page.type("hello world")
1684
+
1685
+ # 3. Parallelize independent tasks
1686
+ # Run multiple sandboxed agents concurrently
1687
+
1688
+ # 4. Cache repeated computations
1689
+ # If same screenshot, reuse analysis
1690
+
1691
+ # 5. Use smaller models for simple decisions
1692
+ simple_model = "claude-haiku-..." # For "is task done?"
1693
+ complex_model = "claude-sonnet-..." # For complex reasoning
1694
+ ```
1695
+
1696
+
1697
+ ## Set realistic expectations
1698
+
1699
+ ```python
1700
+ # Estimate task duration
1701
+ def estimate_duration(task_complexity: str) -> int:
1702
+ """Estimate task duration in seconds."""
1703
+ estimates = {
1704
+ "simple": 30, # Single page, few actions
1705
+ "medium": 120, # Multi-page, moderate actions
1706
+ "complex": 300, # Many pages, complex interactions
1707
+ }
1708
+ return estimates.get(task_complexity, 120)
1709
+
1710
+ # Inform users
1711
+ estimated = estimate_duration("medium")
1712
+ print(f"Estimated completion: {estimated // 60}m {estimated % 60}s")
1713
+ ```
1714
+
1715
+ ### Screenshots Fill Up Context Window Fast
1716
+
1717
+ Severity: HIGH
1718
+
1719
+ Situation: Long-running computer use tasks
1720
+
1721
+ Symptoms:
1722
+ Agent forgets earlier steps. Starts repeating actions.
1723
+ Errors increase as task progresses. Costs explode.
1724
+
1725
+ Why this breaks:
1726
+ Each screenshot is ~1500-3000 tokens. A task with 30 screenshots
1727
+ uses 45,000-90,000 tokens just for images - before any text.
1728
+
1729
+ Claude's context window is finite. When full:
1730
+ - Older context gets dropped
1731
+ - Agent loses memory of earlier steps
1732
+ - Task coherence decreases
1733
+
1734
+ "Getting agents to make consistent progress across multiple context
1735
+ windows remains an open problem. The core challenge is that they must
1736
+ work in discrete sessions, and each new session begins with no memory
1737
+ of what came before." - Anthropic engineering blog
1738
+
1739
+ Recommended fix:
1740
+
1741
+
1742
+ ## Implement context management
1743
+
1744
+ ```python
1745
+ class ContextManager:
1746
+ """Manage context window usage for computer use."""
1747
+
1748
+ MAX_SCREENSHOTS = 10 # Keep only recent screenshots
1749
+ MAX_TOKENS = 100000
1750
+
1751
+ def __init__(self):
1752
+ self.messages = []
1753
+ self.screenshot_count = 0
1754
+
1755
+ def add_screenshot(self, screenshot_b64: str, description: str):
1756
+ """Add screenshot with automatic pruning."""
1757
+ self.screenshot_count += 1
1758
+
1759
+ # Keep only recent screenshots
1760
+ if self.screenshot_count > self.MAX_SCREENSHOTS:
1761
+ self._prune_old_screenshots()
1762
+
1763
+ # Store with description for context
1764
+ self.messages.append({
1765
+ "role": "user",
1766
+ "content": [
1767
+ {"type": "text", "text": description},
1768
+ {"type": "image", "source": {...}}
1769
+ ]
1770
+ })
1771
+
1772
+ def _prune_old_screenshots(self):
1773
+ """Remove old screenshots, keep text summaries."""
1774
+ new_messages = []
1775
+ screenshots_kept = 0
1776
+
1777
+ for msg in reversed(self.messages):
1778
+ if self._has_image(msg):
1779
+ if screenshots_kept < self.MAX_SCREENSHOTS:
1780
+ new_messages.insert(0, msg)
1781
+ screenshots_kept += 1
1782
+ else:
1783
+ # Convert to text summary
1784
+ summary = self._summarize_screenshot(msg)
1785
+ new_messages.insert(0, {
1786
+ "role": msg["role"],
1787
+ "content": summary
1788
+ })
1789
+ else:
1790
+ new_messages.insert(0, msg)
1791
+
1792
+ self.messages = new_messages
1793
+
1794
+ def _summarize_screenshot(self, msg) -> str:
1795
+ """Summarize screenshot to text."""
1796
+ # Extract any text description
1797
+ for content in msg.get("content", []):
1798
+ if content.get("type") == "text":
1799
+ return f"[Previous screenshot: {content['text']}]"
1800
+ return "[Previous screenshot - details pruned]"
1801
+
1802
+ def add_checkpoint(self):
1803
+ """Create a checkpoint summary."""
1804
+ summary = self._create_progress_summary()
1805
+ self.messages.append({
1806
+ "role": "user",
1807
+ "content": f"CHECKPOINT: {summary}"
1808
+ })
1809
+ ```
1810
+
1811
+
1812
+ ## Use checkpointing for long tasks
1813
+
1814
+ ```python
1815
+ async def run_with_checkpoints(task: str, checkpoint_every: int = 10):
1816
+ """Run task with periodic checkpoints."""
1817
+ context = ContextManager()
1818
+ step = 0
1819
+
1820
+ while not task_complete:
1821
+ step += 1
1822
+
1823
+ # Take action...
1824
+
1825
+ if step % checkpoint_every == 0:
1826
+ # Create checkpoint
1827
+ context.add_checkpoint()
1828
+
1829
+ # Optional: persist to disk
1830
+ save_checkpoint(context, step)
1831
+ ```
1832
+
1833
+
1834
+ ## Break into subtasks
1835
+
1836
+ ```python
1837
+ # Instead of one 50-step task:
1838
+ subtasks = [
1839
+ "Navigate to the website and login",
1840
+ "Find the settings page",
1841
+ "Update the email address to ...",
1842
+ "Save and verify the change"
1843
+ ]
1844
+
1845
+ for subtask in subtasks:
1846
+ result = await agent.run(subtask)
1847
+ if not result["success"]:
1848
+ handle_error(subtask, result)
1849
+ break
1850
+ ```
1851
+
1852
+ ### Costs Can Explode Quickly
1853
+
1854
+ Severity: HIGH
1855
+
1856
+ Situation: Running computer use at scale
1857
+
1858
+ Symptoms:
1859
+ API bill is 10x higher than expected. Single task costs $5+ instead of $0.50.
1860
+ Monthly costs reach thousands of dollars quickly.
1861
+
1862
+ Why this breaks:
1863
+ Vision tokens are expensive. Each screenshot:
1864
+ - ~2000-3000 tokens per image
1865
+ - At $10/million tokens, that's $0.02-0.03 per screenshot
1866
+ - Task with 30 screenshots = $0.60-0.90 just for images
1867
+
1868
+ But it compounds:
1869
+ - Screenshots accumulate in context
1870
+ - Model sees ALL previous screenshots each turn
1871
+ - Turn 10 processes 10 screenshots = $0.20-0.30
1872
+ - Turn 20 processes 20 screenshots = $0.40-0.60
1873
+ - Quadratic growth!
1874
+
1875
+ Complex task: 50 turns × average 25 images in context = 1250 image tokens
1876
+ Plus text = could easily hit $5-10 per task.
1877
+
1878
+ Recommended fix:
1879
+
1880
+
1881
+ ## Monitor and limit costs
1882
+
1883
+ ```python
1884
+ class CostTracker:
1885
+ """Track and limit computer use costs."""
1886
+
1887
+ # Anthropic pricing (approximate)
1888
+ INPUT_COST_PER_1K = 0.003 # Text
1889
+ OUTPUT_COST_PER_1K = 0.015
1890
+ IMAGE_COST_PER_1K = 0.01 # Roughly
1891
+
1892
+ def __init__(self, max_cost_per_task: float = 1.0):
1893
+ self.max_cost = max_cost_per_task
1894
+ self.current_cost = 0.0
1895
+ self.total_tokens = 0
1896
+
1897
+ def add_turn(
1898
+ self,
1899
+ input_tokens: int,
1900
+ output_tokens: int,
1901
+ image_tokens: int
1902
+ ):
1903
+ """Track cost of a single turn."""
1904
+ cost = (
1905
+ input_tokens / 1000 * self.INPUT_COST_PER_1K +
1906
+ output_tokens / 1000 * self.OUTPUT_COST_PER_1K +
1907
+ image_tokens / 1000 * self.IMAGE_COST_PER_1K
1908
+ )
1909
+ self.current_cost += cost
1910
+ self.total_tokens += input_tokens + output_tokens + image_tokens
1911
+
1912
+ if self.current_cost > self.max_cost:
1913
+ raise CostLimitExceeded(
1914
+ f"Cost limit exceeded: ${self.current_cost:.2f} > ${self.max_cost:.2f}"
1915
+ )
1916
+
1917
+ return cost
1918
+
1919
+ class CostLimitExceeded(Exception):
1920
+ pass
1921
+
1922
+ # Usage
1923
+ tracker = CostTracker(max_cost_per_task=2.0)
1924
+
1925
+ try:
1926
+ for turn in turns:
1927
+ tracker.add_turn(turn.input, turn.output, turn.images)
1928
+ except CostLimitExceeded:
1929
+ print("Task aborted due to cost limit")
1930
+ ```
1931
+
1932
+
1933
+ ## Reduce image costs
1934
+
1935
+ ```python
1936
+ # 1. Lower resolution
1937
+ SCREEN_SIZE = (1024, 768) # Smaller = fewer tokens
1938
+
1939
+ # 2. JPEG instead of PNG (when quality ok)
1940
+ screenshot.save(buffer, format="JPEG", quality=70)
1941
+
1942
+ # 3. Crop to relevant region
1943
+ def crop_relevant(screenshot: Image, focus_area: tuple):
1944
+ """Crop to area of interest."""
1945
+ return screenshot.crop(focus_area)
1946
+
1947
+ # 4. Don't include screenshot every turn
1948
+ if not needs_visual_update:
1949
+ # Text-only turn
1950
+ messages.append({"role": "user", "content": "Continue..."})
1951
+ ```
1952
+
1953
+
1954
+ ## Use cheaper models strategically
1955
+
1956
+ ```python
1957
+ async def tiered_model_selection(task_complexity: str):
1958
+ """Use appropriate model for task."""
1959
+ if task_complexity == "simple":
1960
+ return "claude-haiku-..." # Cheapest
1961
+ elif task_complexity == "medium":
1962
+ return "claude-sonnet-4-20250514" # Balanced
1963
+ else:
1964
+ return "claude-opus-4-5-..." # Best but expensive
1965
+ ```
1966
+
1967
+ ### Running Agent on Your Actual Computer
1968
+
1969
+ Severity: CRITICAL
1970
+
1971
+ Situation: Testing or deploying computer use
1972
+
1973
+ Symptoms:
1974
+ Agent deletes important files. Sends emails from your account.
1975
+ Posts on social media. Accesses sensitive documents.
1976
+
1977
+ Why this breaks:
1978
+ Computer use agents make mistakes. They can:
1979
+ - Misinterpret instructions
1980
+ - Click wrong buttons
1981
+ - Type in wrong fields
1982
+ - Follow prompt injection attacks
1983
+
1984
+ Without sandboxing, these mistakes happen on your real system.
1985
+ There's no undo for "agent sent email to all contacts" or
1986
+ "agent deleted project folder."
1987
+
1988
+ "Autonomous agents that can access external systems and APIs
1989
+ introduce new security risks. They may be vulnerable to prompt
1990
+ injection attacks, unauthorized access to sensitive data, or
1991
+ manipulation by malicious actors."
1992
+
1993
+ Recommended fix:
1994
+
1995
+
1996
+ ## ALWAYS use sandboxing
1997
+
1998
+ ```python
1999
+ # Minimum viable sandbox: Docker with restrictions
2000
+
2001
+ docker run -it --rm \
2002
+ --security-opt no-new-privileges \
2003
+ --cap-drop ALL \
2004
+ --network none \
2005
+ --read-only \
2006
+ --tmpfs /tmp \
2007
+ --memory 2g \
2008
+ --cpus 1 \
2009
+ computer-use-sandbox
2010
+ ```
2011
+
2012
+
2013
+ ## Layer your defenses
2014
+
2015
+ ```python
2016
+ # Defense 1: Docker isolation
2017
+ # Defense 2: Non-root user
2018
+ # Defense 3: Network restrictions
2019
+ # Defense 4: Filesystem restrictions
2020
+ # Defense 5: Resource limits
2021
+ # Defense 6: Action confirmation
2022
+ # Defense 7: Action logging
2023
+
2024
+ @dataclass
2025
+ class SandboxConfig:
2026
+ docker_image: str = "computer-use-sandbox:latest"
2027
+ network: str = "none" # or specific allowlist
2028
+ readonly_root: bool = True
2029
+ max_memory_mb: int = 2048
2030
+ max_cpu: float = 1.0
2031
+ max_runtime_seconds: int = 300
2032
+ require_confirmation: list = field(default_factory=lambda: [
2033
+ "download", "submit", "login", "delete"
2034
+ ])
2035
+ log_all_actions: bool = True
2036
+ ```
2037
+
2038
+
2039
+ ## Test in isolated environment first
2040
+
2041
+ ```python
2042
+ class SandboxedTestRunner:
2043
+ """Run tests in throwaway containers."""
2044
+
2045
+ async def run_test(self, test_task: str) -> dict:
2046
+ # Spin up fresh container
2047
+ container_id = await self.create_container()
2048
+
2049
+ try:
2050
+ # Run task
2051
+ result = await self.execute_in_container(container_id, test_task)
2052
+
2053
+ # Capture state for verification
2054
+ state = await self.capture_container_state(container_id)
2055
+
2056
+ return {
2057
+ "result": result,
2058
+ "final_state": state,
2059
+ "logs": await self.get_logs(container_id)
2060
+ }
2061
+ finally:
2062
+ # Always destroy container
2063
+ await self.destroy_container(container_id)
2064
+ ```
2065
+
2066
+
2067
+ ## Validation Checks
2068
+
2069
+ ### Computer Use Without Sandbox
2070
+
2071
+ Severity: ERROR
2072
+
2073
+ Computer use agents MUST run in sandboxed environments
2074
+
2075
+ Message: Computer use without sandboxing detected. Use Docker containers with restrictions.
2076
+
2077
+ ### Sandbox With Full Network Access
2078
+
2079
+ Severity: ERROR
2080
+
2081
+ Sandboxed agents should have restricted network access
2082
+
2083
+ Message: Sandbox has full network access. Use --network=none or specific allowlist.
2084
+
2085
+ ### Running as Root in Container
2086
+
2087
+ Severity: ERROR
2088
+
2089
+ Container agents should run as non-root user
2090
+
2091
+ Message: Container running as root. Add --user flag or USER directive in Dockerfile.
2092
+
2093
+ ### Container Without Capability Drops
2094
+
2095
+ Severity: WARNING
2096
+
2097
+ Containers should drop unnecessary capabilities
2098
+
2099
+ Message: Container has full capabilities. Add --cap-drop ALL.
2100
+
2101
+ ### Container Without Seccomp Profile
2102
+
2103
+ Severity: WARNING
2104
+
2105
+ Containers should use seccomp profiles for syscall filtering
2106
+
2107
+ Message: No security options set. Consider --security-opt seccomp:profile.json
2108
+
2109
+ ### No Maximum Step Limit
2110
+
2111
+ Severity: WARNING
2112
+
2113
+ Computer use loops should have maximum step limits
2114
+
2115
+ Message: Infinite loop risk. Add max_steps limit (recommended: 50).
2116
+
2117
+ ### No Execution Timeout
2118
+
2119
+ Severity: WARNING
2120
+
2121
+ Computer use should have timeout limits
2122
+
2123
+ Message: No timeout on execution. Add timeout (recommended: 5-10 minutes).
2124
+
2125
+ ### Container Without Memory Limit
2126
+
2127
+ Severity: WARNING
2128
+
2129
+ Containers should have memory limits to prevent DoS
2130
+
2131
+ Message: No memory limit on container. Add --memory 2g or similar.
2132
+
2133
+ ### No Cost Tracking
2134
+
2135
+ Severity: WARNING
2136
+
2137
+ Computer use should track API costs
2138
+
2139
+ Message: No cost tracking. Monitor token usage to prevent bill surprises.
2140
+
2141
+ ### No Maximum Cost Limit
2142
+
2143
+ Severity: INFO
2144
+
2145
+ Consider adding cost limits per task
2146
+
2147
+ Message: Consider adding max_cost_per_task to prevent expensive runaway tasks.
2148
+
2149
+
2150
+ ## Collaboration
2151
+
2152
+ ### Delegation Triggers
2153
+
2154
+ - user needs web-only automation -> browser-automation (Playwright/Selenium more efficient for web)
2155
+ - user needs security review -> security-specialist (Review sandboxing, prompt injection defenses)
2156
+ - user needs container orchestration -> devops (Kubernetes, Docker Swarm for scaling)
2157
+ - user needs vision model optimization -> llm-architect (Model selection, prompt engineering)
2158
+ - user needs multi-agent coordination -> multi-agent-orchestration (Multiple computer use agents working together)