@openhands/extensions 0.0.1-alpha → 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,127 @@
1
+ #!/usr/bin/env bash
2
+ # Scan for Workflows & Automation signals (Pillar 3)
3
+ # Helps the agent find relevant files — not a substitute for judgment.
4
+
5
+ REPO="${1:-.}"
6
+ cd "$REPO" 2>/dev/null || { echo "Cannot access $REPO"; exit 1; }
7
+
8
+ echo "=== Pillar 3: Workflows & Automation ==="
9
+ echo ""
10
+
11
+ echo "-- Issue templates --"
12
+ if [ -d .github/ISSUE_TEMPLATE ]; then
13
+ echo ".github/ISSUE_TEMPLATE/:"
14
+ ls -1 .github/ISSUE_TEMPLATE/ 2>/dev/null | while read f; do echo " $f"; done
15
+ else
16
+ echo " (not found)"
17
+ fi
18
+
19
+ echo ""
20
+ echo "-- PR template --"
21
+ find . -maxdepth 3 -iname 'pull_request_template*' 2>/dev/null | sort
22
+ [ -f .github/pull_request_template.md ] || echo " (not found)"
23
+
24
+ echo ""
25
+ echo "-- Dependency update automation --"
26
+ for f in .github/dependabot.yml .github/dependabot.yaml renovate.json .renovaterc \
27
+ .renovaterc.json renovate.json5; do
28
+ [ -f "$f" ] && echo "./$f"
29
+ done
30
+
31
+ echo ""
32
+ echo "-- Release automation --"
33
+ if [ -d .github/workflows ]; then
34
+ grep -ril 'release\|publish\|deploy' .github/workflows/ 2>/dev/null | while read f; do
35
+ echo " $(basename "$f")"
36
+ done
37
+ fi
38
+ for f in .releaserc .releaserc.json .releaserc.yml release-please-config.json \
39
+ .goreleaser.yml .goreleaser.yaml; do
40
+ [ -f "$f" ] && echo "./$f"
41
+ done
42
+
43
+ echo ""
44
+ echo "-- Branch protection signals --"
45
+ # Can't check GitHub settings from filesystem, but look for merge queue triggers
46
+ if [ -d .github/workflows ]; then
47
+ grep -rl 'merge_group' .github/workflows/ 2>/dev/null | while read f; do
48
+ echo " merge_group trigger in $(basename "$f")"
49
+ done
50
+ fi
51
+
52
+ echo ""
53
+ echo "-- Merge automation --"
54
+ find . -maxdepth 2 -name '.mergify.yml' -o -name 'mergify.yml' 2>/dev/null | sort
55
+ if [ -d .github/workflows ]; then
56
+ grep -rl 'auto-merge\|automerge\|gh pr merge' .github/workflows/ 2>/dev/null | head -3
57
+ fi
58
+
59
+ echo ""
60
+ echo "-- Task runner --"
61
+ for f in Makefile GNUmakefile makefile Justfile justfile Taskfile.yml taskfile.yml \
62
+ Rakefile Earthfile; do
63
+ [ -f "$f" ] && echo "./$f"
64
+ done
65
+ if [ -f package.json ]; then
66
+ script_count=$(python3 -c "import json; d=json.load(open('package.json')); print(len(d.get('scripts',{})))" 2>/dev/null)
67
+ [ -n "$script_count" ] && echo " package.json: $script_count scripts"
68
+ fi
69
+
70
+ echo ""
71
+ echo "-- Structured change tracking --"
72
+ [ -d .changeset ] && echo ".changeset/ ($(ls .changeset/*.md 2>/dev/null | wc -l | tr -d ' ') pending changesets)"
73
+ find . -maxdepth 2 -name 'commitlint.config.*' -o -name '.commitlintrc*' 2>/dev/null | sort
74
+ if [ -d .github/workflows ]; then
75
+ grep -rl 'conventional-commits\|commitlint\|semantic-pull-request' .github/workflows/ 2>/dev/null | head -3
76
+ fi
77
+
78
+ echo ""
79
+ echo "-- CI concurrency control --"
80
+ if [ -d .github/workflows ]; then
81
+ concurrency_count=$(grep -rl 'concurrency:' .github/workflows/ 2>/dev/null | wc -l | tr -d ' ')
82
+ cancel_count=$(grep -rl 'cancel-in-progress' .github/workflows/ 2>/dev/null | wc -l | tr -d ' ')
83
+ echo " $concurrency_count workflows with concurrency groups, $cancel_count with cancel-in-progress"
84
+ fi
85
+
86
+ echo ""
87
+ echo "-- Automated release notes --"
88
+ for f in release-please-config.json .github/release.yml cliff.toml .cliff.toml; do
89
+ [ -f "$f" ] && echo "./$f"
90
+ done
91
+ if [ -d .github/workflows ]; then
92
+ grep -rl 'auto-changelog\|conventional-changelog\|git-cliff\|release-please' .github/workflows/ 2>/dev/null | head -3
93
+ fi
94
+
95
+ echo ""
96
+ echo "-- Stale issue management --"
97
+ if [ -d .github/workflows ]; then
98
+ grep -rl 'stale' .github/workflows/ 2>/dev/null | while read f; do
99
+ echo " $(basename "$f")"
100
+ done
101
+ fi
102
+ [ -f .github/stale.yml ] && echo ".github/stale.yml"
103
+
104
+ echo ""
105
+ echo "-- Label automation --"
106
+ find . -maxdepth 3 -name 'labeler.yml' -o -name '.github/labeler.yml' -o -name 'label-sync*' 2>/dev/null | sort
107
+
108
+ echo ""
109
+ echo "-- Multi-platform CI --"
110
+ if [ -d .github/workflows ]; then
111
+ grep -rl 'matrix:' .github/workflows/ 2>/dev/null | while read f; do
112
+ os_line=$(grep -A5 'matrix:' "$f" | grep -i 'os:' | head -1)
113
+ [ -n "$os_line" ] && echo " $(basename "$f"): $os_line"
114
+ done
115
+ fi
116
+
117
+ echo ""
118
+ echo "-- Deployment automation --"
119
+ if [ -d .github/workflows ]; then
120
+ grep -ril 'deploy' .github/workflows/ 2>/dev/null | while read f; do
121
+ echo " $(basename "$f")"
122
+ done
123
+ fi
124
+ [ -f vercel.json ] && echo "./vercel.json"
125
+ [ -f netlify.toml ] && echo "./netlify.toml"
126
+ [ -f fly.toml ] && echo "./fly.toml"
127
+ [ -f render.yaml ] && echo "./render.yaml"
@@ -0,0 +1,19 @@
1
+ # Improve Agent Readiness
2
+
3
+ Take an agent readiness report and turn its gaps into concrete, repo-appropriate fixes.
4
+
5
+ ## Triggers
6
+
7
+ This skill is activated by the following keywords:
8
+
9
+ - `improve-agent-readiness`
10
+
11
+ ## Prerequisites
12
+
13
+ An agent readiness report must already exist — either from running `agent-readiness-report` on the target repo or provided directly by the user. If no report exists, run the readiness report skill first.
14
+
15
+ ## What This Does
16
+
17
+ 1. **Reads the report** — identifies every missing feature across all five pillars
18
+ 2. **Proposes 5–10 high-impact fixes** — ranked by how directly each change helps an agent complete coding tasks, not by checklist coverage
19
+ 3. **Implements on request** — applies approved fixes with atomic commits, then updates the readiness report to reflect the new state
@@ -0,0 +1,167 @@
1
+ ---
2
+ name: improve-agent-readiness
3
+ description: Use an agent readiness report to identify and implement improvements that make a repository more agent-friendly. Proposes repo-appropriate fixes for each pillar, then implements them on request. Use after running a readiness report or when a user wants to improve their repo's AI-readiness.
4
+ triggers:
5
+ - improve-agent-readiness
6
+ - agent onboarding
7
+ ---
8
+
9
+ # Agent Onboarding
10
+
11
+ Take a readiness report and turn its gaps into concrete, repo-appropriate fixes.
12
+
13
+ ## Prerequisites
14
+
15
+ This skill expects an agent readiness report to already exist — either from
16
+ running `agent-readiness-report` on this repo or provided by the user. If no report
17
+ exists, run the readiness report skill first.
18
+
19
+ ## How to run
20
+
21
+ ### Step 1: Read the report
22
+
23
+ Identify every **✗** (missing) feature across all five pillars.
24
+
25
+ ### Step 2: Propose high-impact fixes
26
+
27
+ Don't try to fix everything. Pick the **5–10 changes that would help agents the
28
+ most** across all pillars, ranked by impact. Not every pillar needs to be
29
+ represented — focus on what matters most for this repo. The goal is to
30
+ meaningfully improve the score, not to hit 74/74.
31
+
32
+ **Ranking heuristic** — rank by how directly the change helps an agent complete a
33
+ coding task in this repo:
34
+
35
+ 1. Things that unblock agents from working at all (AGENTS.md, build commands,
36
+ bootstrap scripts, dev environment setup)
37
+ 2. Things that give agents faster feedback on their work (pre-commit hooks, test
38
+ documentation, PR templates with checklists)
39
+ 3. Things that improve quality or process (CI caching, label automation, spell
40
+ checking, merge queues)
41
+ 4. Things that improve governance or compliance (SECURITY.md, CODEOWNERS,
42
+ actionlint, CodeQL)
43
+
44
+ A single change that lets an agent build and test the project outranks a 2-for-1
45
+ that addresses minor gaps.
46
+
47
+ Proposals should fit **this specific repo**:
48
+
49
+ - Look at the languages, frameworks, and tools already in use
50
+ - Look at the project structure (monorepo vs single package, etc.)
51
+ - Look at what's already partially in place (don't reinvent what exists)
52
+ - Propose additions that match the repo's existing conventions and style
53
+
54
+ For each proposal, include:
55
+ - What to add or change
56
+ - Where it goes (file path)
57
+ - Which pillar(s) it improves
58
+ - **Why it's high impact** — use the feature descriptions in
59
+ `references/criteria.md` to explain what goes wrong for agents without this
60
+ feature. Don't just say "improves Agent Instructions" — say what the agent
61
+ can't do today and what it'll be able to do after the fix.
62
+
63
+ ### Step 3: Implement on request
64
+
65
+ When the user approves fixes (all or a subset), implement them, then **update the
66
+ readiness report** to reflect the new state. Flip each addressed feature from ✗
67
+ to ✓ and update the pillar counts and summary. This ensures the next run of this
68
+ skill won't re-propose fixes that have already been applied.
69
+
70
+ Follow these rules:
71
+
72
+ - **Don't generate boilerplate** — content should be specific to this repo
73
+ - **Match existing style** — if the repo uses tabs, use tabs; if docs are in
74
+ RDoc, don't write Markdown
75
+ - **Don't over-generate** — a concise, accurate AGENTS.md beats a long generic
76
+ one
77
+ - **Commit atomically** — one commit per logical fix, not one giant commit
78
+
79
+ ## Pillar-specific guidance
80
+
81
+ ### Agent Instructions fixes
82
+
83
+ The highest-impact fix is almost always an **agent instruction file** at the
84
+ root. A good one includes:
85
+
86
+ - Build / test / lint commands (copy from CI config or Makefile, not invented)
87
+ - Project structure overview (what's in each top-level directory)
88
+ - Key conventions (naming, architecture patterns, things to avoid)
89
+ - Where to find more documentation
90
+
91
+ If the repo is a monorepo, also consider per-component instruction files that
92
+ cover component-specific conventions.
93
+
94
+ Other common fixes:
95
+ - Add AI IDE configuration if the team uses Cursor, Copilot, or Claude Code
96
+ - Create a contributing guide if one doesn't exist
97
+ - Add `.env.example` if the project uses environment variables
98
+
99
+ ### Feedback Loops fixes
100
+
101
+ Focus on what gives agents the fastest signal:
102
+
103
+ - **Pre-commit hooks** are the single fastest feedback loop — configure them with
104
+ the linter and formatter the project already uses
105
+ - **Test run documentation** in the agent instruction file — agents need to know
106
+ *exactly* which command runs which tests
107
+ - If the project has no linter or formatter configured, propose one that matches
108
+ the language ecosystem (don't propose Prettier for a Go project)
109
+
110
+ ### Workflows & Automation fixes
111
+
112
+ Focus on structure that helps agents understand the process:
113
+
114
+ - **PR template** with a checklist — agents follow checklists well
115
+ - **Issue templates** for bugs and features — gives agents structured input
116
+ - **CI concurrency control** — prevents agent-triggered CI from piling up
117
+
118
+ ### Policy & Governance fixes
119
+
120
+ Focus on boundaries the agent needs to know:
121
+
122
+ - **CODEOWNERS** — agents should know who owns what before making changes
123
+ - **Security policy** — agents need to know not to file public security issues
124
+ - Agent-aware **.gitignore** entries — prevent agent config files from being
125
+ committed accidentally
126
+
127
+ ### Build & Dev Environment fixes
128
+
129
+ Focus on reproducibility:
130
+
131
+ - **Dependency lockfile** if one doesn't exist — agents can't work with
132
+ non-deterministic installs
133
+ - **Tool version pinning** — prevents "works on my machine" failures
134
+ - **Single-command setup** — document or script the full bootstrap
135
+
136
+ ## Output format
137
+
138
+ Present proposals like this:
139
+
140
+ ```
141
+ # Agent Onboarding Proposals: {repo name}
142
+
143
+ Ranked by impact. Implementing all of these would improve:
144
+ Agent Instructions (+4), Feedback Loops (+2), Policy & Governance (+1)
145
+
146
+ 1. **Create AGENTS.md** — Agent Instructions
147
+ - Include build commands from Makefile, test commands from CI, project structure
148
+ - Path: `./AGENTS.md`
149
+ - Right now agents have no way to learn this repo's conventions, banned
150
+ patterns, or how to build/test — they'll guess and get it wrong.
151
+
152
+ 2. **Add pre-commit hooks** — Feedback Loops
153
+ - Configure with ruff (already in pyproject.toml) and mypy
154
+ - Path: `./.pre-commit-config.yaml`
155
+ - Agents currently don't find out about lint/type errors until CI runs.
156
+ Pre-commit hooks catch these in seconds instead of minutes.
157
+
158
+ 3. **Add .env.example** — Agent Instructions, Build & Dev Environment
159
+ - Document the 3 env vars referenced in docker-compose.yml
160
+ - Path: `./.env.example`
161
+ - Agents can't start the dev server without knowing which env vars to set.
162
+ They'll either skip setup or hallucinate values.
163
+
164
+ ...
165
+
166
+ Ready to implement? Reply with "all" or specify which proposals to apply.
167
+ ```
@@ -0,0 +1,15 @@
1
+ # Generate AGENTS.md
2
+
3
+ Generate a high-quality, repo-specific AGENTS.md file that tells AI agents how to work effectively in a repository.
4
+
5
+ ## Triggers
6
+
7
+ This skill is activated by the following keywords:
8
+
9
+ - `setup-agents-md`
10
+
11
+ ## What This Does
12
+
13
+ Reads the actual repository — Makefiles, CI configs, package.json scripts, linter configs, directory structure — and produces an AGENTS.md with real commands, real paths, and real conventions. Never generates generic boilerplate.
14
+
15
+ Sections are included only when relevant: project overview, build/test/lint commands, project structure, coding standards, testing setup, and guardrails for things the agent must not do.
@@ -0,0 +1,150 @@
1
+ ---
2
+ name: setup-agents-md
3
+ description: Generate a high-quality, repo-specific AGENTS.md file that tells AI agents how to work effectively in a repository. Reads the actual repo to extract commands, structure, conventions, and guardrails — never generates generic boilerplate. Use when a user wants to create or improve their AGENTS.md, or after a readiness report identifies a missing agent instruction file.
4
+ triggers:
5
+ - setup-agents-md
6
+ - agents-md
7
+ ---
8
+
9
+ # Generate AGENTS.md
10
+
11
+ Create a repo-specific AGENTS.md that gives AI agents the context they need to
12
+ work effectively. Every section should reference real commands, real paths, and
13
+ real conventions from the repository — not generic advice.
14
+
15
+ ## Why this matters
16
+
17
+ An AGENTS.md is the single highest-impact addition for agent readiness. It
18
+ directly addresses features across multiple pillars:
19
+
20
+ - **Agent Instructions**: agent instruction file, README with build/run/test,
21
+ contributing guide, environment variable documentation
22
+ - **Feedback Loops**: test run documentation — agents need exact commands
23
+ - **Policy & Governance**: guardrails the agent must follow
24
+
25
+ Without it, agents guess at build commands, miss project conventions, run the
26
+ wrong test suite, and don't know what's dangerous. The best AGENTS.md files
27
+ share the same core pattern: real commands, clear structure, explicit boundaries.
28
+
29
+ ## How to run
30
+
31
+ ### Step 0: Check for an existing AGENTS.md
32
+
33
+ Look for an existing `AGENTS.md` (or `.agents/AGENTS.md`) in the repo root.
34
+ If one exists, **do not rewrite it from scratch**. Instead, read the repo
35
+ (Step 1), compare what you find against what's already documented, and suggest
36
+ specific additions or changes. Present the suggestions to the user and let them
37
+ decide what to incorporate.
38
+
39
+ If no file exists, proceed to create one.
40
+
41
+ ### Step 1: Read the repo
42
+
43
+ Before writing anything, gather the actual information. Check these sources:
44
+
45
+ **Commands** (most important — agents need to know how to build, test, lint):
46
+ - `Makefile` / `justfile` / `Taskfile.yml` — look for build/test/lint/format targets
47
+ - `package.json` `scripts` — npm/yarn/pnpm run targets
48
+ - `pyproject.toml` `[tool.prek]` / `[tool.pytest]` — Python tooling config
49
+ - `.github/workflows/*.yml` — CI steps reveal the real commands
50
+ - `Cargo.toml` — Rust build/test commands
51
+ - `build.gradle` / `pom.xml` — Java/Kotlin build commands
52
+ - `Rakefile` — Ruby task definitions
53
+ - `docker-compose.yml` — service orchestration commands
54
+
55
+ **Project structure**:
56
+ - Top-level directory listing — what's in each major directory
57
+ - Monorepo indicators: workspace configs, multiple package.json/Cargo.toml/pyproject.toml
58
+ - Source vs test layout (where does code live, where do tests live)
59
+
60
+ **Conventions**:
61
+ - Existing linter/formatter configs (.eslintrc, .prettierrc, rustfmt.toml, .rubocop.yml, ruff.toml)
62
+ - CONTRIBUTING.md — often contains coding standards
63
+ - Existing README — architecture descriptions, setup instructions
64
+ - `.editorconfig` — indentation/style basics
65
+
66
+ **Guardrails**:
67
+ - Database configs — identify destructive commands to warn about
68
+ - CI enforcement — what must pass before merge
69
+ - Secrets/env patterns — `.env.example`, vault configs
70
+ - Branch protection or merge requirements
71
+
72
+ ### Step 2: Write the AGENTS.md
73
+
74
+ Use this structure. Every section is optional — include only what's relevant to
75
+ this repo. A 30-line file with real commands beats a 200-line file with generic
76
+ advice.
77
+
78
+ ```markdown
79
+ # AGENTS.md
80
+
81
+ ## Project overview
82
+
83
+ One or two sentences: what this project is, what language/framework, and the
84
+ high-level architecture (monorepo? client-server? library?).
85
+
86
+ ## Commands
87
+
88
+ Organized by category. Use the exact commands from the repo — copy from
89
+ Makefile/CI/package.json, don't invent them.
90
+
91
+ ### Build
92
+ ### Test
93
+ ### Lint & format
94
+
95
+ ## Project structure
96
+
97
+ What's in each top-level directory. Focus on what an agent needs to navigate
98
+ the codebase — not an exhaustive tree.
99
+
100
+ ## Coding standards
101
+
102
+ Language-specific conventions that aren't captured by linter config. Things
103
+ like: naming patterns, import ordering preferences, test file location
104
+ conventions, preferred patterns over anti-patterns.
105
+
106
+ ## Testing
107
+
108
+ Where tests live, how they're organized, how to run a single test vs the full
109
+ suite, any test database setup needed.
110
+
111
+ ## Guardrails
112
+
113
+ Things the agent must NOT do. Destructive commands, files that shouldn't be
114
+ edited by hand, operations that require human approval.
115
+ ```
116
+
117
+ ### Key principles
118
+
119
+ **Be specific, not generic.** Don't write "run the linter before committing" —
120
+ write `uv run ruff check --fix <file>`. Don't write "follow the project's
121
+ coding standards" — write "use `snake_case` for variables, no `assert` in
122
+ production code."
123
+
124
+ **Commands are king.** If the agent only reads one section, it should be
125
+ Commands. Every command block should be copy-pasteable.
126
+
127
+ **Link, don't repeat.** If there's a detailed CONTRIBUTING.md or architecture
128
+ doc, link to it rather than duplicating the content. The AGENTS.md is an index
129
+ and quick reference, not a manual.
130
+
131
+ **Include dangerous operations.** If `make db-reset` destroys the dev database,
132
+ say so. If `git push -f` to main is forbidden, say so. Agents are literal —
133
+ they need explicit guardrails.
134
+
135
+ **Keep it maintainable.** A short, accurate AGENTS.md is better than a long one
136
+ that drifts out of date. Reference CI configs and Makefiles by path so a human
137
+ (or agent) can update the AGENTS.md when the underlying commands change.
138
+
139
+ ### What to leave out
140
+
141
+ - Generic software engineering advice ("write clean code", "use meaningful names")
142
+ - Process documentation that belongs in CONTRIBUTING.md
143
+ - Full API documentation that belongs in doc comments or a docs site
144
+ - Operational runbooks that belong in an ops directory
145
+
146
+ ### Monorepo considerations
147
+
148
+ If the repo is a monorepo, the root AGENTS.md should cover repo-wide commands
149
+ and conventions. Consider sub-directory AGENTS.md files only for packages with
150
+ substantially different commands or conventions, and link to them from the root.
@@ -0,0 +1,20 @@
1
+ # Set Up OpenHands
2
+
3
+ Configure a repository for effective use with OpenHands in one pass.
4
+
5
+ ## Triggers
6
+
7
+ This skill is activated by the following keywords:
8
+
9
+ - `setup-openhands`
10
+ - `set up openhands`
11
+ - `configure openhands for this repo`
12
+
13
+ ## What This Does
14
+
15
+ Walks through four steps to make a repo OpenHands-ready:
16
+
17
+ 1. **AGENTS.md** — generates a root-level agent instruction file with real commands and conventions from the repo
18
+ 2. **`.openhands/setup.sh`** — creates a bootstrap script that installs dependencies and sets up the environment at the start of every session
19
+ 3. **`.openhands/pre-commit.sh`** — creates a pre-commit script that mirrors CI checks so the agent gets fast feedback before pushing
20
+ 4. **PR review workflow** — adds a GitHub Actions workflow for automated code review on pull requests
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: setup-openhands
3
+ description: Set up a repository for effective use with OpenHands. Creates AGENTS.md, setup and pre-commit scripts, and a PR review workflow. Designed to run automatically with minimal user intervention. Use when a user wants to configure their repo for OpenHands.
4
+ triggers:
5
+ - setup-openhands
6
+ - set up openhands
7
+ - configure openhands for this repo
8
+ ---
9
+
10
+ # Set Up OpenHands for a Repository
11
+
12
+ Work through these steps in order.
13
+
14
+ ## Step 1: Create AGENTS.md
15
+
16
+ Run `setup-agents-md` to generate a root-level `AGENTS.md` from the repo's actual
17
+ CI workflows, build files, and documentation.
18
+
19
+ ## Step 2: Create `.openhands/setup.sh`
20
+
21
+ Create `.openhands/setup.sh` — a bootstrap script that runs at the start of
22
+ every OpenHands session. Read the repo's CI workflows, AGENTS.md, and build
23
+ files to determine the correct commands. The script should:
24
+
25
+ - Install dependencies (the project's actual install command)
26
+ - Set required environment variables
27
+ - Run any other bootstrap steps (e.g. copy `.env.example` to `.env`)
28
+
29
+ Keep it idempotent and fast. Use the real commands from CI, not generic examples.
30
+
31
+ **Docs**: https://docs.openhands.dev/openhands/usage/customization/repository#setup-script
32
+
33
+ ## Step 3: Create `.openhands/pre-commit.sh`
34
+
35
+ Create `.openhands/pre-commit.sh` — runs before every commit OpenHands makes.
36
+ Read the repo's CI workflows to find the lint and test commands, then mirror
37
+ them in the script. Exit non-zero on failure so the agent gets immediate
38
+ feedback instead of waiting for CI.
39
+
40
+ The script should run the same checks CI runs — if CI runs `ruff check` and
41
+ `pytest`, run those. If it runs `cargo clippy` and `cargo test`, run those.
42
+
43
+ **Docs**: https://docs.openhands.dev/openhands/usage/customization/repository#pre-commit-script
44
+
45
+ ## Step 4: Set up PR review
46
+
47
+ Run `setup-pr-review` to create the GitHub Actions workflow and walk the user
48
+ through configuration.
49
+
50
+ ## Step 5: Verify
51
+
52
+ Confirm all files exist and are correct:
53
+ - `AGENTS.md` at repo root with real commands (not boilerplate)
54
+ - `.openhands/setup.sh` with the project's actual install/bootstrap commands
55
+ - `.openhands/pre-commit.sh` mirroring the CI lint/test checks
56
+ - `.github/workflows/pr-review.yml` with valid YAML
@@ -0,0 +1,23 @@
1
+ # Set Up PR Review
2
+
3
+ Add automated AI code review to a GitHub repository.
4
+
5
+ ## Triggers
6
+
7
+ This skill is activated by the following keywords:
8
+
9
+ - `setup-pr-review`
10
+ - `set up pr review`
11
+ - `add code review workflow`
12
+ - `openhands pr review`
13
+
14
+ ## What This Does
15
+
16
+ Creates a `.github/workflows/pr-review.yml` file that triggers an OpenHands agent to review pull requests and post inline comments. Walks you through configuration options:
17
+
18
+ - **Review style** — `roasted` (blunt, Torvalds-style) or `standard` (balanced)
19
+ - **When to trigger** — on-demand (label or reviewer request) or automatic (every PR)
20
+ - **Which model** — any litellm-supported model, with optional A/B testing
21
+ - **Evidence requirement** — optionally require proof-of-work in PR descriptions
22
+
23
+ You'll need to add an `LLM_API_KEY` secret to your repository settings — the skill tells you exactly where.
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: setup-pr-review
3
+ description: Set up the OpenHands automated PR review workflow in a GitHub repository. Creates the workflow file and asks the user for configuration preferences. Use when a user wants AI code review on their pull requests.
4
+ triggers:
5
+ - setup-pr-review
6
+ - set up pr review
7
+ - add code review workflow
8
+ - openhands pr review
9
+ ---
10
+
11
+ # Set Up OpenHands PR Review
12
+
13
+ Add the PR review workflow to a GitHub repository so an OpenHands agent can
14
+ review pull requests and post inline comments.
15
+
16
+ **Docs**: https://docs.all-hands.dev/sdk/guides/github-workflows/pr-review
17
+
18
+ ## Step 1: Create the workflow file
19
+
20
+ Create `.github/workflows/pr-review.yml` in the target repo. Fetch the latest
21
+ example from https://docs.all-hands.dev/sdk/guides/github-workflows/pr-review
22
+ and use it as the starting template. The workflow calls the
23
+ `OpenHands/extensions/plugins/pr-review` composite action directly.
24
+
25
+ ## Step 2: Configure the LLM
26
+
27
+ Ask the user whether they are using the **OpenHands app** (app.all-hands.dev)
28
+ or their **own LLM provider** (e.g. Anthropic, OpenAI directly).
29
+
30
+ ### OpenHands app (default)
31
+
32
+ OpenHands app users already have access to an LLM API key through the
33
+ OpenHands litellm proxy. Tell them:
34
+
35
+ > Go to https://app.all-hands.dev → Account → API Keys → OpenHands LLM Key, and copy your key.
36
+ > Then add it as a GitHub repository secret:
37
+ > Settings → Secrets and variables → Actions → New repository secret.
38
+ > Name it `LLM_API_KEY`.
39
+
40
+ Set these inputs in the workflow `with:` block:
41
+ - `llm-model: litellm_proxy/claude-sonnet-4-5-20250929`
42
+ - `llm-base-url: https://llm-proxy.app.all-hands.dev`
43
+
44
+ ### Own LLM provider
45
+
46
+ If the user has their own API key (e.g. from Anthropic or OpenAI), tell them
47
+ to add it as a repository secret named `LLM_API_KEY` using the same path
48
+ above. Leave `llm-base-url` unset and set `llm-model` to the provider-prefixed
49
+ model name (e.g. `anthropic/claude-sonnet-4-5-20250929`).
50
+
51
+ **You cannot create secrets — the user must do it manually.** Do not ask for
52
+ the key value. Just tell them where to put it.
53
+
54
+ ## Step 3: Ask the user for preferences
55
+
56
+ Present these options and apply any requested changes to the workflow file:
57
+
58
+ **Review style** (default: `roasted`)
59
+ - `roasted` — Linus Torvalds-style, blunt, focuses on data structures and
60
+ simplicity.
61
+ - `standard` — balanced, covers style/readability/security.
62
+
63
+ **When to trigger** (default: on-demand only)
64
+ - On-demand: add `review-this` label or request `openhands-agent` as reviewer.
65
+ - Automatic: review every new PR. Add `opened` and `ready_for_review` to
66
+ `on.pull_request.types` and matching conditions to the `if:` block.
67
+
68
+ After applying these, ask the user if they want to explore additional options
69
+ (model selection, evidence requirements, custom review skills, observability).
70
+ If yes, walk them through it — use the docs as a reference:
71
+ https://docs.all-hands.dev/sdk/guides/github-workflows/pr-review
72
+ If not, you're done.
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "openhands",
3
+ "version": "0.1.0",
4
+ "description": "Unified OpenHands plugin — bundles Cloud CLI, REST API, Automations, and Software Agent SDK skills into a single plugin.",
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": ["openhands", "cloud", "api", "automation", "cli", "delegation", "sdk", "agent"]
13
+ }