@openhands/extensions 0.1.0 → 0.2.0

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 (347) hide show
  1. package/.agents/skills/custom-codereview-guide.md +25 -0
  2. package/.github/pull_request_template.md +38 -0
  3. package/.github/release.yml +14 -0
  4. package/.github/workflows/check-extensions.yml +72 -0
  5. package/.github/workflows/npm-publish.yml +89 -0
  6. package/.github/workflows/pr.yml +30 -0
  7. package/.github/workflows/release.yml +24 -0
  8. package/.github/workflows/tests.yml +25 -0
  9. package/.github/workflows/vulnerability-scan.yml +87 -0
  10. package/.release-please-manifest.json +3 -0
  11. package/AGENTS.md +132 -0
  12. package/README.md +10 -0
  13. package/analysis_results.md +162 -0
  14. package/marketplaces/large-codebase.json +66 -0
  15. package/marketplaces/openhands-extensions.json +682 -0
  16. package/package.json +4 -10
  17. package/plugins/README.md +30 -0
  18. package/plugins/city-weather/.plugin/plugin.json +13 -0
  19. package/plugins/city-weather/README.md +145 -0
  20. package/plugins/city-weather/commands/now.md +56 -0
  21. package/plugins/cobol-modernization/.plugin/plugin.json +19 -0
  22. package/plugins/cobol-modernization/README.md +201 -0
  23. package/plugins/cobol-modernization/references/troubleshooting.md +18 -0
  24. package/plugins/cobol-modernization/skills/build-setup/SKILL.md +78 -0
  25. package/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +32 -0
  26. package/plugins/cobol-modernization/skills/cobol-modernization-overview/SKILL.md +113 -0
  27. package/plugins/cobol-modernization/skills/mainfraime-removal/SKILL.md +62 -0
  28. package/plugins/cobol-modernization/skills/mainfraime-removal/references/cics-transformation-examples.md +45 -0
  29. package/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +78 -0
  30. package/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +59 -0
  31. package/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +58 -0
  32. package/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +19 -0
  33. package/plugins/issue-duplicate-checker/.plugin/plugin.json +13 -0
  34. package/plugins/issue-duplicate-checker/README.md +51 -0
  35. package/plugins/issue-duplicate-checker/action.yml +349 -0
  36. package/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +569 -0
  37. package/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +681 -0
  38. package/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.js +220 -0
  39. package/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.js +27 -0
  40. package/plugins/magic-test/.plugin/plugin.json +13 -0
  41. package/plugins/magic-test/skills/magic-word/SKILL.md +33 -0
  42. package/plugins/migration-scoring/.plugin/plugin.json +19 -0
  43. package/plugins/migration-scoring/README.md +244 -0
  44. package/plugins/migration-scoring/skills/migration-mapping/SKILL.md +72 -0
  45. package/plugins/migration-scoring/skills/migration-report/SKILL.md +118 -0
  46. package/plugins/migration-scoring/skills/migration-scoring-overview/SKILL.md +126 -0
  47. package/plugins/migration-scoring/skills/score-quality/SKILL.md +54 -0
  48. package/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +30 -0
  49. package/plugins/migration-scoring/skills/score-style/SKILL.md +106 -0
  50. package/plugins/onboarding/.plugin/plugin.json +20 -0
  51. package/plugins/onboarding/README.md +30 -0
  52. package/plugins/onboarding/references/criteria.md +144 -0
  53. package/plugins/onboarding/skills/agent-readiness-report/README.md +23 -0
  54. package/plugins/onboarding/skills/agent-readiness-report/SKILL.md +122 -0
  55. package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +88 -0
  56. package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +114 -0
  57. package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +133 -0
  58. package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +113 -0
  59. package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +127 -0
  60. package/plugins/onboarding/skills/improve-agent-readiness/README.md +19 -0
  61. package/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +167 -0
  62. package/plugins/onboarding/skills/setup-agents-md/README.md +15 -0
  63. package/plugins/onboarding/skills/setup-agents-md/SKILL.md +150 -0
  64. package/plugins/onboarding/skills/setup-openhands/README.md +20 -0
  65. package/plugins/onboarding/skills/setup-openhands/SKILL.md +56 -0
  66. package/plugins/onboarding/skills/setup-pr-review/README.md +23 -0
  67. package/plugins/onboarding/skills/setup-pr-review/SKILL.md +72 -0
  68. package/plugins/openhands/.plugin/plugin.json +13 -0
  69. package/plugins/openhands/README.md +52 -0
  70. package/plugins/openhands/SKILL.md +61 -0
  71. package/plugins/openhands/commands/create.md +55 -0
  72. package/plugins/openhands/commands/openhands-cloud.md +8 -0
  73. package/plugins/openhands/scripts/run.sh +69 -0
  74. package/plugins/pr-review/.plugin/plugin.json +13 -0
  75. package/plugins/pr-review/README.md +393 -0
  76. package/plugins/pr-review/action.yml +298 -0
  77. package/plugins/pr-review/scripts/agent_script.py +1282 -0
  78. package/plugins/pr-review/scripts/evaluate_review.py +655 -0
  79. package/plugins/pr-review/scripts/prompt.py +260 -0
  80. package/plugins/pr-review/workflows/pr-review-by-openhands.yml +51 -0
  81. package/plugins/pr-review/workflows/pr-review-evaluation.yml +85 -0
  82. package/plugins/qa-changes/.plugin/plugin.json +11 -0
  83. package/plugins/qa-changes/README.md +185 -0
  84. package/plugins/qa-changes/action.yml +181 -0
  85. package/plugins/qa-changes/scripts/agent_script.py +406 -0
  86. package/plugins/qa-changes/scripts/evaluate_qa_changes.py +385 -0
  87. package/plugins/qa-changes/scripts/prompt.py +174 -0
  88. package/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +50 -0
  89. package/plugins/qa-changes/workflows/qa-changes-evaluation.yml +85 -0
  90. package/plugins/release-notes/.plugin/plugin.json +19 -0
  91. package/plugins/release-notes/README.md +283 -0
  92. package/plugins/release-notes/SKILL.md +83 -0
  93. package/plugins/release-notes/action.yml +117 -0
  94. package/plugins/release-notes/commands/release-notes.md +8 -0
  95. package/plugins/release-notes/scripts/agent_script.py +292 -0
  96. package/plugins/release-notes/scripts/generate_release_notes.py +733 -0
  97. package/plugins/release-notes/scripts/prompt.py +90 -0
  98. package/plugins/release-notes/scripts/validate_release_notes.py +328 -0
  99. package/plugins/release-notes/workflows/release-notes.yml +76 -0
  100. package/plugins/vulnerability-remediation/.plugin/plugin.json +19 -0
  101. package/plugins/vulnerability-remediation/README.md +217 -0
  102. package/plugins/vulnerability-remediation/action.yml +187 -0
  103. package/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +561 -0
  104. package/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +87 -0
  105. package/pyproject.toml +12 -0
  106. package/release-please-config.json +16 -0
  107. package/scripts/sync_extensions.py +494 -0
  108. package/scripts/sync_openhands_sdk_skill.py +264 -0
  109. package/skills/README.md +159 -0
  110. package/skills/add-javadoc/.plugin/plugin.json +18 -0
  111. package/skills/add-javadoc/README.md +40 -0
  112. package/skills/add-javadoc/SKILL.md +35 -0
  113. package/skills/add-javadoc/references/example.md +32 -0
  114. package/skills/add-skill/.plugin/plugin.json +18 -0
  115. package/skills/add-skill/README.md +67 -0
  116. package/skills/add-skill/SKILL.md +47 -0
  117. package/skills/add-skill/scripts/fetch_skill.py +259 -0
  118. package/skills/agent-creator/.plugin/plugin.json +20 -0
  119. package/skills/agent-creator/README.md +104 -0
  120. package/skills/agent-creator/SKILL.md +190 -0
  121. package/skills/agent-creator/commands/agent-creator.md +8 -0
  122. package/skills/agent-creator/references/fallback.md +117 -0
  123. package/skills/agent-memory/.plugin/plugin.json +18 -0
  124. package/skills/agent-memory/README.md +35 -0
  125. package/skills/agent-memory/SKILL.md +30 -0
  126. package/skills/agent-memory/commands/remember.md +8 -0
  127. package/skills/agent-sdk-builder/.plugin/plugin.json +18 -0
  128. package/skills/agent-sdk-builder/README.md +40 -0
  129. package/skills/agent-sdk-builder/SKILL.md +37 -0
  130. package/skills/agent-sdk-builder/commands/agent-builder.md +8 -0
  131. package/skills/azure-devops/.plugin/plugin.json +18 -0
  132. package/skills/azure-devops/README.md +55 -0
  133. package/skills/azure-devops/SKILL.md +50 -0
  134. package/skills/bitbucket/.plugin/plugin.json +17 -0
  135. package/skills/bitbucket/README.md +50 -0
  136. package/skills/bitbucket/SKILL.md +45 -0
  137. package/skills/code-review/.plugin/plugin.json +19 -0
  138. package/skills/code-review/README.md +18 -0
  139. package/skills/code-review/SKILL.md +208 -0
  140. package/skills/code-review/commands/codereview-roasted.md +8 -0
  141. package/skills/code-review/commands/codereview.md +8 -0
  142. package/skills/code-review/references/risk-evaluation.md +41 -0
  143. package/skills/code-review/references/supply-chain-security.md +31 -0
  144. package/skills/code-simplifier/.plugin/plugin.json +21 -0
  145. package/skills/code-simplifier/README.md +30 -0
  146. package/skills/code-simplifier/SKILL.md +91 -0
  147. package/skills/code-simplifier/commands/simplify.md +8 -0
  148. package/skills/code-simplifier/references/code-quality-review.md +86 -0
  149. package/skills/code-simplifier/references/code-reuse-review.md +63 -0
  150. package/skills/code-simplifier/references/efficiency-review.md +81 -0
  151. package/skills/datadog/.plugin/plugin.json +19 -0
  152. package/skills/datadog/README.md +100 -0
  153. package/skills/datadog/SKILL.md +95 -0
  154. package/skills/deno/.plugin/plugin.json +18 -0
  155. package/skills/deno/README.md +5 -0
  156. package/skills/deno/SKILL.md +99 -0
  157. package/skills/deno/references/README.md +6 -0
  158. package/skills/discord/.plugin/plugin.json +18 -0
  159. package/skills/discord/README.md +31 -0
  160. package/skills/discord/SKILL.md +109 -0
  161. package/skills/discord/__init__.py +0 -0
  162. package/skills/discord/references/REFERENCE.md +78 -0
  163. package/skills/discord/scripts/__init__.py +0 -0
  164. package/skills/discord/scripts/_http.py +127 -0
  165. package/skills/discord/scripts/post_webhook.py +106 -0
  166. package/skills/discord/scripts/send_message.py +102 -0
  167. package/skills/docker/.plugin/plugin.json +17 -0
  168. package/skills/docker/README.md +34 -0
  169. package/skills/docker/SKILL.md +29 -0
  170. package/skills/evidence-based-citations/.plugin/plugin.json +20 -0
  171. package/skills/evidence-based-citations/README.md +31 -0
  172. package/skills/evidence-based-citations/SKILL.md +59 -0
  173. package/skills/flarglebargle/.plugin/plugin.json +16 -0
  174. package/skills/flarglebargle/README.md +14 -0
  175. package/skills/flarglebargle/SKILL.md +9 -0
  176. package/skills/frontend-design/.plugin/plugin.json +21 -0
  177. package/skills/frontend-design/LICENSE.txt +177 -0
  178. package/skills/frontend-design/README.md +42 -0
  179. package/skills/frontend-design/SKILL.md +42 -0
  180. package/skills/github/.plugin/plugin.json +19 -0
  181. package/skills/github/README.md +42 -0
  182. package/skills/github/SKILL.md +106 -0
  183. package/skills/github-pr-review/.plugin/plugin.json +18 -0
  184. package/skills/github-pr-review/README.md +145 -0
  185. package/skills/github-pr-review/SKILL.md +148 -0
  186. package/skills/github-pr-review/commands/github-pr-review.md +8 -0
  187. package/skills/github-pr-reviewer/.plugin/plugin.json +20 -0
  188. package/skills/github-pr-reviewer/README.md +34 -0
  189. package/skills/github-pr-reviewer/SKILL.md +89 -0
  190. package/skills/github-pr-reviewer/commands/pr-reviewer:setup.md +8 -0
  191. package/skills/github-repo-monitor/.plugin/plugin.json +22 -0
  192. package/skills/github-repo-monitor/README.md +70 -0
  193. package/skills/github-repo-monitor/SKILL.md +316 -0
  194. package/skills/github-repo-monitor/commands/github-monitor:poll.md +8 -0
  195. package/skills/github-repo-monitor/references/github-api.md +241 -0
  196. package/skills/github-repo-monitor/references/state-schema.md +160 -0
  197. package/skills/github-repo-monitor/scripts/main.py +915 -0
  198. package/skills/github-repo-monitor/tests/test_main.py +400 -0
  199. package/skills/gitlab/.plugin/plugin.json +17 -0
  200. package/skills/gitlab/README.md +37 -0
  201. package/skills/gitlab/SKILL.md +32 -0
  202. package/skills/incident-retrospective/.plugin/plugin.json +21 -0
  203. package/skills/incident-retrospective/README.md +34 -0
  204. package/skills/incident-retrospective/SKILL.md +98 -0
  205. package/skills/incident-retrospective/commands/incident-retro:setup.md +8 -0
  206. package/skills/iterate/.plugin/plugin.json +13 -0
  207. package/skills/iterate/README.md +25 -0
  208. package/skills/iterate/SKILL.md +399 -0
  209. package/skills/iterate/commands/babysit.md +8 -0
  210. package/skills/iterate/commands/iterate.md +8 -0
  211. package/skills/iterate/commands/verify.md +8 -0
  212. package/skills/iterate/references/heuristics.md +58 -0
  213. package/skills/iterate/references/verification.md +96 -0
  214. package/skills/jupyter/.plugin/plugin.json +18 -0
  215. package/skills/jupyter/README.md +55 -0
  216. package/skills/jupyter/SKILL.md +50 -0
  217. package/skills/kubernetes/.plugin/plugin.json +18 -0
  218. package/skills/kubernetes/README.md +53 -0
  219. package/skills/kubernetes/SKILL.md +48 -0
  220. package/skills/learn-from-code-review/.plugin/plugin.json +19 -0
  221. package/skills/learn-from-code-review/README.md +64 -0
  222. package/skills/learn-from-code-review/SKILL.md +186 -0
  223. package/skills/learn-from-code-review/commands/learn-from-reviews.md +8 -0
  224. package/skills/linear/.plugin/plugin.json +19 -0
  225. package/skills/linear/README.md +58 -0
  226. package/skills/linear/SKILL.md +213 -0
  227. package/skills/linear-triage/.plugin/plugin.json +21 -0
  228. package/skills/linear-triage/README.md +34 -0
  229. package/skills/linear-triage/SKILL.md +91 -0
  230. package/skills/linear-triage/commands/linear-triage:setup.md +8 -0
  231. package/skills/notion/.plugin/plugin.json +17 -0
  232. package/skills/notion/README.md +114 -0
  233. package/skills/notion/SKILL.md +109 -0
  234. package/skills/npm/.plugin/plugin.json +17 -0
  235. package/skills/npm/README.md +14 -0
  236. package/skills/npm/SKILL.md +9 -0
  237. package/skills/openhands-api/.plugin/plugin.json +22 -0
  238. package/skills/openhands-api/README.md +48 -0
  239. package/skills/openhands-api/SKILL.md +399 -0
  240. package/skills/openhands-api/references/README.md +33 -0
  241. package/skills/openhands-api/references/TROUBLESHOOTING.md +81 -0
  242. package/skills/openhands-api/references/example_prompt.md +12 -0
  243. package/skills/openhands-api/scripts/openhands_api.py +606 -0
  244. package/skills/openhands-api/scripts/openhands_api.ts +252 -0
  245. package/skills/openhands-automation/.plugin/plugin.json +19 -0
  246. package/skills/openhands-automation/README.md +89 -0
  247. package/skills/openhands-automation/SKILL.md +875 -0
  248. package/skills/openhands-automation/commands/automation:create.md +8 -0
  249. package/skills/openhands-automation/references/ab-testing.md +185 -0
  250. package/skills/openhands-automation/references/custom-automation.md +644 -0
  251. package/skills/openhands-sdk/.plugin/plugin.json +20 -0
  252. package/skills/openhands-sdk/README.md +22 -0
  253. package/skills/openhands-sdk/SKILL.md +229 -0
  254. package/skills/openhands-sdk/commands/sdk.md +8 -0
  255. package/skills/pdflatex/.plugin/plugin.json +18 -0
  256. package/skills/pdflatex/README.md +39 -0
  257. package/skills/pdflatex/SKILL.md +34 -0
  258. package/skills/prd/.plugin/plugin.json +19 -0
  259. package/skills/prd/README.md +28 -0
  260. package/skills/prd/SKILL.md +237 -0
  261. package/skills/prd/commands/prd.md +8 -0
  262. package/skills/qa-changes/README.md +18 -0
  263. package/skills/qa-changes/SKILL.md +229 -0
  264. package/skills/qa-changes/commands/qa-changes.md +8 -0
  265. package/skills/release-notes/README.md +24 -0
  266. package/skills/release-notes/SKILL.md +19 -0
  267. package/skills/release-notes/commands/release-notes.md +8 -0
  268. package/skills/research-brief/.plugin/plugin.json +20 -0
  269. package/skills/research-brief/README.md +34 -0
  270. package/skills/research-brief/SKILL.md +99 -0
  271. package/skills/research-brief/commands/research-brief:setup.md +8 -0
  272. package/skills/security/.plugin/plugin.json +18 -0
  273. package/skills/security/README.md +38 -0
  274. package/skills/security/SKILL.md +33 -0
  275. package/skills/skill-creator/.plugin/plugin.json +17 -0
  276. package/skills/skill-creator/LICENSE.txt +202 -0
  277. package/skills/skill-creator/README.md +182 -0
  278. package/skills/skill-creator/SKILL.md +545 -0
  279. package/skills/skill-creator/references/output-patterns.md +82 -0
  280. package/skills/skill-creator/references/workflows.md +28 -0
  281. package/skills/skill-creator/scripts/init_skill.py +303 -0
  282. package/skills/skill-creator/scripts/quick_validate.py +95 -0
  283. package/skills/slack-channel-monitor/.plugin/plugin.json +21 -0
  284. package/skills/slack-channel-monitor/README.md +91 -0
  285. package/skills/slack-channel-monitor/SKILL.md +276 -0
  286. package/skills/slack-channel-monitor/commands/slack-monitor:poll.md +8 -0
  287. package/skills/slack-channel-monitor/references/slack-api.md +207 -0
  288. package/skills/slack-channel-monitor/references/state-schema.md +180 -0
  289. package/skills/slack-channel-monitor/scripts/main.py +962 -0
  290. package/skills/slack-standup-digest/.plugin/plugin.json +21 -0
  291. package/skills/slack-standup-digest/README.md +34 -0
  292. package/skills/slack-standup-digest/SKILL.md +92 -0
  293. package/skills/slack-standup-digest/commands/standup-digest:setup.md +8 -0
  294. package/skills/spark-version-upgrade/.plugin/plugin.json +20 -0
  295. package/skills/spark-version-upgrade/README.md +54 -0
  296. package/skills/spark-version-upgrade/SKILL.md +233 -0
  297. package/skills/ssh/.plugin/plugin.json +18 -0
  298. package/skills/ssh/README.md +140 -0
  299. package/skills/ssh/SKILL.md +135 -0
  300. package/skills/swift-linux/.plugin/plugin.json +17 -0
  301. package/skills/swift-linux/README.md +86 -0
  302. package/skills/swift-linux/SKILL.md +81 -0
  303. package/skills/theme-factory/.plugin/plugin.json +19 -0
  304. package/skills/theme-factory/LICENSE.txt +202 -0
  305. package/skills/theme-factory/README.md +58 -0
  306. package/skills/theme-factory/SKILL.md +59 -0
  307. package/skills/theme-factory/theme-showcase.pdf +0 -0
  308. package/skills/theme-factory/themes/arctic-frost.md +19 -0
  309. package/skills/theme-factory/themes/botanical-garden.md +19 -0
  310. package/skills/theme-factory/themes/desert-rose.md +19 -0
  311. package/skills/theme-factory/themes/forest-canopy.md +19 -0
  312. package/skills/theme-factory/themes/golden-hour.md +19 -0
  313. package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
  314. package/skills/theme-factory/themes/modern-minimalist.md +19 -0
  315. package/skills/theme-factory/themes/ocean-depths.md +19 -0
  316. package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
  317. package/skills/theme-factory/themes/tech-innovation.md +19 -0
  318. package/skills/uv/.plugin/plugin.json +18 -0
  319. package/skills/uv/README.md +5 -0
  320. package/skills/uv/SKILL.md +95 -0
  321. package/skills/uv/references/README.md +5 -0
  322. package/skills/vercel/.plugin/plugin.json +18 -0
  323. package/skills/vercel/README.md +108 -0
  324. package/skills/vercel/SKILL.md +103 -0
  325. package/tests/test_add_skill_installs_to_agents_dir.py +42 -0
  326. package/tests/test_catalogs.py +109 -0
  327. package/tests/test_code_review_risk_evaluation.py +94 -0
  328. package/tests/test_issue_duplicate_checker.py +240 -0
  329. package/tests/test_openhands_api_python.py +152 -0
  330. package/tests/test_plugin_manifest.py +83 -0
  331. package/tests/test_pr_review_diff_payload.py +202 -0
  332. package/tests/test_pr_review_feedback.py +263 -0
  333. package/tests/test_pr_review_prompt.py +152 -0
  334. package/tests/test_pr_review_review_context.py +253 -0
  335. package/tests/test_qa_changes.py +232 -0
  336. package/tests/test_qa_changes_evaluation.py +259 -0
  337. package/tests/test_release_notes_generator.py +990 -0
  338. package/tests/test_sdk_loading.py +150 -0
  339. package/tests/test_skill_plugin_loading.py +149 -0
  340. package/tests/test_skills_have_readme.py +66 -0
  341. package/tests/test_sync_extensions.py +292 -0
  342. package/tests/test_workflow_sync.py +46 -0
  343. package/utils/analysis/README.md +7 -0
  344. package/utils/analysis/laminar_signals/README.md +211 -0
  345. package/utils/analysis/laminar_signals/analyze.py +780 -0
  346. package/utils/analysis/laminar_signals/templates/default.j2 +49 -0
  347. package/utils/analysis/laminar_signals/templates/pr_review.j2 +61 -0
@@ -0,0 +1,19 @@
1
+ # Botanical Garden
2
+
3
+ A fresh and organic theme featuring vibrant garden-inspired colors for lively presentations.
4
+
5
+ ## Color Palette
6
+
7
+ - **Fern Green**: `#4a7c59` - Rich natural green
8
+ - **Marigold**: `#f9a620` - Bright floral accent
9
+ - **Terracotta**: `#b7472a` - Earthy warm tone
10
+ - **Cream**: `#f5f3ed` - Soft neutral backgrounds
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: DejaVu Serif Bold
15
+ - **Body Text**: DejaVu Sans
16
+
17
+ ## Best Used For
18
+
19
+ Garden centers, food presentations, farm-to-table content, botanical brands, natural products.
@@ -0,0 +1,19 @@
1
+ # Desert Rose
2
+
3
+ A soft and sophisticated theme with dusty, muted tones perfect for elegant presentations.
4
+
5
+ ## Color Palette
6
+
7
+ - **Dusty Rose**: `#d4a5a5` - Soft primary color
8
+ - **Clay**: `#b87d6d` - Earthy accent
9
+ - **Sand**: `#e8d5c4` - Warm neutral backgrounds
10
+ - **Deep Burgundy**: `#5d2e46` - Rich dark contrast
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: FreeSans Bold
15
+ - **Body Text**: FreeSans
16
+
17
+ ## Best Used For
18
+
19
+ Fashion presentations, beauty brands, wedding planning, interior design, boutique businesses.
@@ -0,0 +1,19 @@
1
+ # Forest Canopy
2
+
3
+ A natural and grounded theme featuring earth tones inspired by dense forest environments.
4
+
5
+ ## Color Palette
6
+
7
+ - **Forest Green**: `#2d4a2b` - Primary dark green
8
+ - **Sage**: `#7d8471` - Muted green accent
9
+ - **Olive**: `#a4ac86` - Light accent color
10
+ - **Ivory**: `#faf9f6` - Backgrounds and text
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: FreeSerif Bold
15
+ - **Body Text**: FreeSans
16
+
17
+ ## Best Used For
18
+
19
+ Environmental presentations, sustainability reports, outdoor brands, wellness content, organic products.
@@ -0,0 +1,19 @@
1
+ # Golden Hour
2
+
3
+ A rich and warm autumnal palette that creates an inviting and sophisticated atmosphere.
4
+
5
+ ## Color Palette
6
+
7
+ - **Mustard Yellow**: `#f4a900` - Bold primary accent
8
+ - **Terracotta**: `#c1666b` - Warm secondary color
9
+ - **Warm Beige**: `#d4b896` - Neutral backgrounds
10
+ - **Chocolate Brown**: `#4a403a` - Dark text and anchors
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: FreeSans Bold
15
+ - **Body Text**: FreeSans
16
+
17
+ ## Best Used For
18
+
19
+ Restaurant presentations, hospitality brands, fall campaigns, cozy lifestyle content, artisan products.
@@ -0,0 +1,19 @@
1
+ # Midnight Galaxy
2
+
3
+ A dramatic and cosmic theme with deep purples and mystical tones for impactful presentations.
4
+
5
+ ## Color Palette
6
+
7
+ - **Deep Purple**: `#2b1e3e` - Rich dark base
8
+ - **Cosmic Blue**: `#4a4e8f` - Mystical mid-tone
9
+ - **Lavender**: `#a490c2` - Soft accent color
10
+ - **Silver**: `#e6e6fa` - Light highlights and text
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: FreeSans Bold
15
+ - **Body Text**: FreeSans
16
+
17
+ ## Best Used For
18
+
19
+ Entertainment industry, gaming presentations, nightlife venues, luxury brands, creative agencies.
@@ -0,0 +1,19 @@
1
+ # Modern Minimalist
2
+
3
+ A clean and contemporary theme with a sophisticated grayscale palette for maximum versatility.
4
+
5
+ ## Color Palette
6
+
7
+ - **Charcoal**: `#36454f` - Primary dark color
8
+ - **Slate Gray**: `#708090` - Medium gray for accents
9
+ - **Light Gray**: `#d3d3d3` - Backgrounds and dividers
10
+ - **White**: `#ffffff` - Text and clean backgrounds
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: DejaVu Sans Bold
15
+ - **Body Text**: DejaVu Sans
16
+
17
+ ## Best Used For
18
+
19
+ Tech presentations, architecture portfolios, design showcases, modern business proposals, data visualization.
@@ -0,0 +1,19 @@
1
+ # Ocean Depths
2
+
3
+ A professional and calming maritime theme that evokes the serenity of deep ocean waters.
4
+
5
+ ## Color Palette
6
+
7
+ - **Deep Navy**: `#1a2332` - Primary background color
8
+ - **Teal**: `#2d8b8b` - Accent color for highlights and emphasis
9
+ - **Seafoam**: `#a8dadc` - Secondary accent for lighter elements
10
+ - **Cream**: `#f1faee` - Text and light backgrounds
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: DejaVu Sans Bold
15
+ - **Body Text**: DejaVu Sans
16
+
17
+ ## Best Used For
18
+
19
+ Corporate presentations, financial reports, professional consulting decks, trust-building content.
@@ -0,0 +1,19 @@
1
+ # Sunset Boulevard
2
+
3
+ A warm and vibrant theme inspired by golden hour sunsets, perfect for energetic and creative presentations.
4
+
5
+ ## Color Palette
6
+
7
+ - **Burnt Orange**: `#e76f51` - Primary accent color
8
+ - **Coral**: `#f4a261` - Secondary warm accent
9
+ - **Warm Sand**: `#e9c46a` - Highlighting and backgrounds
10
+ - **Deep Purple**: `#264653` - Dark contrast and text
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: DejaVu Serif Bold
15
+ - **Body Text**: DejaVu Sans
16
+
17
+ ## Best Used For
18
+
19
+ Creative pitches, marketing presentations, lifestyle brands, event promotions, inspirational content.
@@ -0,0 +1,19 @@
1
+ # Tech Innovation
2
+
3
+ A bold and modern theme with high-contrast colors perfect for cutting-edge technology presentations.
4
+
5
+ ## Color Palette
6
+
7
+ - **Electric Blue**: `#0066ff` - Vibrant primary accent
8
+ - **Neon Cyan**: `#00ffff` - Bright highlight color
9
+ - **Dark Gray**: `#1e1e1e` - Deep backgrounds
10
+ - **White**: `#ffffff` - Clean text and contrast
11
+
12
+ ## Typography
13
+
14
+ - **Headers**: DejaVu Sans Bold
15
+ - **Body Text**: DejaVu Sans
16
+
17
+ ## Best Used For
18
+
19
+ Tech startups, software launches, innovation showcases, AI/ML presentations, digital transformation content.
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "uv",
3
+ "version": "1.0.0",
4
+ "description": "Common project, dependency, and environment operations using uv.",
5
+ "author": {
6
+ "name": "OpenHands",
7
+ "email": "contact@all-hands.dev"
8
+ },
9
+ "homepage": "https://github.com/OpenHands/extensions",
10
+ "repository": "https://github.com/OpenHands/extensions",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "uv",
14
+ "python",
15
+ "dependencies",
16
+ "venv"
17
+ ]
18
+ }
@@ -0,0 +1,5 @@
1
+ # uv
2
+
3
+ This skill documents common project, dependency, and environment operations using **uv**.
4
+
5
+ See: [SKILL.md](./SKILL.md)
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: uv
3
+ description: If the project uses uv, use this skill. Use this skill to create/manage Python projects and environments with `uv`, add/remove dependencies, sync a project from `uv.lock`, and run commands in the project environment.
4
+ triggers:
5
+ - uv
6
+ - uv.lock
7
+ ---
8
+
9
+ # uv (Python)
10
+
11
+ Use `uv` as the default tool for Python dependency + environment management when the repo has `uv.lock`, mentions `uv` in its docs/Makefile, or already uses a `.venv` created by `uv`.
12
+
13
+ ## Quick decision rules
14
+
15
+ - If the repo has `uv.lock` and `pyproject.toml`: treat it as a uv-managed project.
16
+ - If the repo has only `requirements.txt`: you can still use `uv pip` for fast installs.
17
+ - Prefer **project commands** (`uv add/remove/sync/run/lock`) over raw `pip` unless the repo explicitly uses `uv pip`.
18
+
19
+ ## Installation (if needed)
20
+
21
+ Prefer a packaged install method when available. If you use the official installer, review it first (avoid blindly piping into a shell) and follow the latest instructions in the official docs.
22
+
23
+ ```bash
24
+ # macOS/Linux (official installer)
25
+ curl -LsSf https://astral.sh/uv/install.sh | sh
26
+
27
+ # Windows (PowerShell, official installer)
28
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
29
+ ```
30
+
31
+ ## Common operations
32
+
33
+ ### Initialize a new project
34
+
35
+ ```bash
36
+ uv init
37
+ # or
38
+ uv init my-project
39
+ ```
40
+
41
+ ### Create / use a virtual environment
42
+
43
+ ```bash
44
+ uv venv # creates .venv
45
+
46
+ # If you need a specific version, match the project's declared requirement
47
+ # (e.g., pyproject.toml / CI config), not an arbitrary latest version.
48
+ uv venv --python 3.x
49
+
50
+ # optional activation (not required for uv commands)
51
+ source .venv/bin/activate # macOS/Linux
52
+ # .venv\\Scripts\\activate # Windows
53
+ ```
54
+
55
+ ### Add / remove dependencies (updates pyproject.toml and uv.lock)
56
+
57
+ ```bash
58
+ uv add requests
59
+ uv add 'requests==2.31.0'
60
+ uv add -r requirements.txt
61
+
62
+ uv remove requests
63
+ ```
64
+
65
+ ### Lock + sync (reproducible installs)
66
+
67
+ ```bash
68
+ uv lock # (re)generate uv.lock
69
+ uv sync # create/update .venv to match uv.lock
70
+ ```
71
+
72
+ If you pulled new changes and `uv.lock` changed, run `uv sync`.
73
+
74
+ ### Run commands inside the project environment
75
+
76
+ ```bash
77
+ uv run python -m pytest -q
78
+ uv run python main.py
79
+ uv run ruff check .
80
+ ```
81
+
82
+ ### Using uv as a fast pip replacement (requirements workflows)
83
+
84
+ ```bash
85
+ uv venv
86
+ uv pip install -r requirements.txt
87
+ uv pip freeze
88
+ uv pip list
89
+ ```
90
+
91
+ ## Notes / pitfalls
92
+
93
+ - `uv` will usually auto-detect and use `.venv` in the project root.
94
+ - In CI/containers you may see `uv pip install --system`, but prefer virtualenvs for local dev.
95
+ - If a command mutates deps, prefer `uv add/remove/lock/sync` so `uv.lock` stays correct.
@@ -0,0 +1,5 @@
1
+ # References (uv)
2
+
3
+ - https://docs.astral.sh/uv/
4
+ - https://docs.astral.sh/uv/guides/projects/
5
+ - https://docs.astral.sh/uv/reference/cli/
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "vercel",
3
+ "version": "1.0.0",
4
+ "description": "Deploy and manage applications on Vercel, including preview deployments and deployment protection.",
5
+ "author": {
6
+ "name": "OpenHands",
7
+ "email": "contact@all-hands.dev"
8
+ },
9
+ "homepage": "https://github.com/OpenHands/extensions",
10
+ "repository": "https://github.com/OpenHands/extensions",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "vercel",
14
+ "deployment",
15
+ "preview",
16
+ "hosting"
17
+ ]
18
+ }
@@ -0,0 +1,108 @@
1
+ # Vercel
2
+
3
+ Deploy and manage applications on Vercel, including preview deployments and deployment protection. Use when working with Vercel-hosted projects or configuring Vercel deployments.
4
+
5
+ ## Triggers
6
+
7
+ This skill is activated by the following keywords:
8
+
9
+ - `vercel`
10
+ - `preview deployment`
11
+
12
+ ## Details
13
+
14
+ # Vercel Deployment Guide
15
+
16
+ ## Deployment Protection and Agent Access
17
+
18
+ Vercel deployments may have **Deployment Protection** enabled, which requires authentication to access preview deployments. This can block automated testing and agent access to preview URLs.
19
+
20
+ ### Identifying Protected Deployments
21
+
22
+ If you encounter a login page or authentication requirement when accessing a Vercel preview URL, the deployment has protection enabled. Signs include:
23
+ - Redirect to `vercel.com/login` or SSO login page
24
+ - 401/403 errors when accessing the deployment
25
+ - Preview URLs that require Vercel team membership
26
+
27
+ ### Enabling Agent Access with Protection Bypass
28
+
29
+ To allow agents and automated systems to access protected deployments, users need to set up **Protection Bypass for Automation**:
30
+
31
+ 1. **Navigate to Project Settings**
32
+ - Go to the Vercel Dashboard
33
+ - Select the project
34
+ - Click on **Settings** → **Deployment Protection**
35
+
36
+ 2. **Generate a Protection Bypass Secret**
37
+ - Under "Protection Bypass for Automation", click **Generate Secret**
38
+ - Copy the generated secret securely
39
+
40
+ 3. **Using the Bypass Secret**
41
+
42
+ The secret can be used in two ways:
43
+
44
+ **As a Header:**
45
+ ```bash
46
+ curl -H "x-vercel-protection-bypass: <secret>" https://your-preview-url.vercel.app
47
+ ```
48
+
49
+ **As a Query Parameter:**
50
+ ```
51
+ https://your-preview-url.vercel.app?x-vercel-protection-bypass=<secret>
52
+ ```
53
+
54
+ 4. **For Browser-Based Testing**
55
+ - Append `?x-vercel-protection-bypass=<secret>` to the preview URL
56
+ - The secret will be stored in a cookie for subsequent requests
57
+
58
+ ### Alternative: Disable Protection for Previews
59
+
60
+ If protection bypass is not suitable, users can disable protection for preview deployments:
61
+
62
+ 1. Go to **Settings** → **Deployment Protection**
63
+ 2. Set "Vercel Authentication" to **Only Production Deployments** or **Disabled**
64
+
65
+ <IMPORTANT>
66
+ If you cannot access a Vercel preview deployment due to authentication requirements, inform the user that they need to either:
67
+ 1. Set up a Protection Bypass secret and provide it to you, OR
68
+ 2. Disable Deployment Protection for preview deployments in their Vercel project settings
69
+
70
+ Do NOT repeatedly attempt to access protected URLs without the bypass secret.
71
+ </IMPORTANT>
72
+
73
+ ## Environment Variables
74
+
75
+ Set environment variables in Vercel Dashboard under **Settings** → **Environment Variables**, or use the Vercel CLI:
76
+
77
+ ```bash
78
+ vercel env add MY_SECRET
79
+ ```
80
+
81
+ Access in your application:
82
+ ```typescript
83
+ const secret = process.env.MY_SECRET;
84
+ ```
85
+
86
+ ## Vercel CLI Commands
87
+
88
+ Common Vercel CLI commands:
89
+
90
+ ```bash
91
+ # Login to Vercel
92
+ vercel login
93
+
94
+ # Deploy to preview
95
+ vercel
96
+
97
+ # Deploy to production
98
+ vercel --prod
99
+
100
+ # List deployments
101
+ vercel ls
102
+
103
+ # View deployment logs
104
+ vercel logs <deployment-url>
105
+
106
+ # Pull environment variables locally
107
+ vercel env pull
108
+ ```
@@ -0,0 +1,103 @@
1
+ ---
2
+ name: vercel
3
+ description: Deploy and manage applications on Vercel, including preview deployments and deployment protection. Use when working with Vercel-hosted projects or configuring Vercel deployments.
4
+ triggers:
5
+ - vercel
6
+ - preview deployment
7
+ ---
8
+
9
+ # Vercel Deployment Guide
10
+
11
+ ## Deployment Protection and Agent Access
12
+
13
+ Vercel deployments may have **Deployment Protection** enabled, which requires authentication to access preview deployments. This can block automated testing and agent access to preview URLs.
14
+
15
+ ### Identifying Protected Deployments
16
+
17
+ If you encounter a login page or authentication requirement when accessing a Vercel preview URL, the deployment has protection enabled. Signs include:
18
+ - Redirect to `vercel.com/login` or SSO login page
19
+ - 401/403 errors when accessing the deployment
20
+ - Preview URLs that require Vercel team membership
21
+
22
+ ### Enabling Agent Access with Protection Bypass
23
+
24
+ To allow agents and automated systems to access protected deployments, users need to set up **Protection Bypass for Automation**:
25
+
26
+ 1. **Navigate to Project Settings**
27
+ - Go to the Vercel Dashboard
28
+ - Select the project
29
+ - Click on **Settings** → **Deployment Protection**
30
+
31
+ 2. **Generate a Protection Bypass Secret**
32
+ - Under "Protection Bypass for Automation", click **Generate Secret**
33
+ - Copy the generated secret securely
34
+
35
+ 3. **Using the Bypass Secret**
36
+
37
+ The secret can be used in two ways:
38
+
39
+ **As a Header:**
40
+ ```bash
41
+ curl -H "x-vercel-protection-bypass: <secret>" https://your-preview-url.vercel.app
42
+ ```
43
+
44
+ **As a Query Parameter:**
45
+ ```
46
+ https://your-preview-url.vercel.app?x-vercel-protection-bypass=<secret>
47
+ ```
48
+
49
+ 4. **For Browser-Based Testing**
50
+ - Append `?x-vercel-protection-bypass=<secret>` to the preview URL
51
+ - The secret will be stored in a cookie for subsequent requests
52
+
53
+ ### Alternative: Disable Protection for Previews
54
+
55
+ If protection bypass is not suitable, users can disable protection for preview deployments:
56
+
57
+ 1. Go to **Settings** → **Deployment Protection**
58
+ 2. Set "Vercel Authentication" to **Only Production Deployments** or **Disabled**
59
+
60
+ <IMPORTANT>
61
+ If you cannot access a Vercel preview deployment due to authentication requirements, inform the user that they need to either:
62
+ 1. Set up a Protection Bypass secret and provide it to you, OR
63
+ 2. Disable Deployment Protection for preview deployments in their Vercel project settings
64
+
65
+ Do NOT repeatedly attempt to access protected URLs without the bypass secret.
66
+ </IMPORTANT>
67
+
68
+ ## Environment Variables
69
+
70
+ Set environment variables in Vercel Dashboard under **Settings** → **Environment Variables**, or use the Vercel CLI:
71
+
72
+ ```bash
73
+ vercel env add MY_SECRET
74
+ ```
75
+
76
+ Access in your application:
77
+ ```typescript
78
+ const secret = process.env.MY_SECRET;
79
+ ```
80
+
81
+ ## Vercel CLI Commands
82
+
83
+ Common Vercel CLI commands:
84
+
85
+ ```bash
86
+ # Login to Vercel
87
+ vercel login
88
+
89
+ # Deploy to preview
90
+ vercel
91
+
92
+ # Deploy to production
93
+ vercel --prod
94
+
95
+ # List deployments
96
+ vercel ls
97
+
98
+ # View deployment logs
99
+ vercel logs <deployment-url>
100
+
101
+ # Pull environment variables locally
102
+ vercel env pull
103
+ ```
@@ -0,0 +1,42 @@
1
+ from __future__ import annotations
2
+
3
+ import importlib.util
4
+ from pathlib import Path
5
+
6
+
7
+ def _load_fetch_skill_module():
8
+ repo_root = Path(__file__).resolve().parents[1]
9
+ module_path = repo_root / 'skills' / 'add-skill' / 'scripts' / 'fetch_skill.py'
10
+ spec = importlib.util.spec_from_file_location('fetch_skill', module_path)
11
+ assert spec and spec.loader
12
+ module = importlib.util.module_from_spec(spec)
13
+ spec.loader.exec_module(module)
14
+ return module
15
+
16
+
17
+ def test_fetch_skill_installs_into_agents_skills_dir(tmp_path: Path, monkeypatch):
18
+ fetch_skill_mod = _load_fetch_skill_module()
19
+ fetch_skill = fetch_skill_mod.fetch_skill
20
+ monkeypatch.setattr('subprocess.run', lambda *args, **kwargs: None)
21
+
22
+ skill_path = 'skills/example-skill'
23
+ src_skill_dir = tmp_path / skill_path
24
+ src_skill_dir.mkdir(parents=True)
25
+ (src_skill_dir / 'SKILL.md').write_text('# Example skill\n')
26
+
27
+ class _FakeTempDir:
28
+ def __enter__(self):
29
+ return str(tmp_path)
30
+
31
+ def __exit__(self, exc_type, exc, tb):
32
+ return False
33
+
34
+ monkeypatch.setattr('tempfile.TemporaryDirectory', lambda: _FakeTempDir())
35
+
36
+ workspace = tmp_path / 'workspace'
37
+ workspace.mkdir()
38
+
39
+ installed_path = Path(fetch_skill('OpenHands/extensions/' + skill_path, str(workspace), force=True))
40
+
41
+ assert installed_path == workspace / '.agents' / 'skills' / 'example-skill'
42
+ assert (installed_path / 'SKILL.md').exists()