@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.
- package/.agents/skills/custom-codereview-guide.md +25 -0
- package/.github/pull_request_template.md +38 -0
- package/.github/release.yml +14 -0
- package/.github/workflows/check-extensions.yml +72 -0
- package/.github/workflows/npm-publish.yml +89 -0
- package/.github/workflows/pr.yml +30 -0
- package/.github/workflows/release.yml +24 -0
- package/.github/workflows/tests.yml +25 -0
- package/.github/workflows/vulnerability-scan.yml +87 -0
- package/.release-please-manifest.json +3 -0
- package/AGENTS.md +132 -0
- package/README.md +10 -0
- package/analysis_results.md +162 -0
- package/marketplaces/large-codebase.json +66 -0
- package/marketplaces/openhands-extensions.json +682 -0
- package/package.json +4 -10
- package/plugins/README.md +30 -0
- package/plugins/city-weather/.plugin/plugin.json +13 -0
- package/plugins/city-weather/README.md +145 -0
- package/plugins/city-weather/commands/now.md +56 -0
- package/plugins/cobol-modernization/.plugin/plugin.json +19 -0
- package/plugins/cobol-modernization/README.md +201 -0
- package/plugins/cobol-modernization/references/troubleshooting.md +18 -0
- package/plugins/cobol-modernization/skills/build-setup/SKILL.md +78 -0
- package/plugins/cobol-modernization/skills/build-setup/scripts/install-gnucobol.sh +32 -0
- package/plugins/cobol-modernization/skills/cobol-modernization-overview/SKILL.md +113 -0
- package/plugins/cobol-modernization/skills/mainfraime-removal/SKILL.md +62 -0
- package/plugins/cobol-modernization/skills/mainfraime-removal/references/cics-transformation-examples.md +45 -0
- package/plugins/cobol-modernization/skills/mainframe-planning/SKILL.md +78 -0
- package/plugins/cobol-modernization/skills/to-java-migration/SKILL.md +59 -0
- package/plugins/cobol-modernization/skills/to-java-migration/references/cobol-to-java-example.md +58 -0
- package/plugins/cobol-modernization/skills/to-java-migration/references/datatype-mappings.md +19 -0
- package/plugins/issue-duplicate-checker/.plugin/plugin.json +13 -0
- package/plugins/issue-duplicate-checker/README.md +51 -0
- package/plugins/issue-duplicate-checker/action.yml +349 -0
- package/plugins/issue-duplicate-checker/scripts/auto_close_duplicate_issues.py +569 -0
- package/plugins/issue-duplicate-checker/scripts/issue_duplicate_check_openhands.py +681 -0
- package/plugins/issue-duplicate-checker/scripts/post_duplicate_notice.js +220 -0
- package/plugins/issue-duplicate-checker/scripts/remove_duplicate_candidate_label.js +27 -0
- package/plugins/magic-test/.plugin/plugin.json +13 -0
- package/plugins/magic-test/skills/magic-word/SKILL.md +33 -0
- package/plugins/migration-scoring/.plugin/plugin.json +19 -0
- package/plugins/migration-scoring/README.md +244 -0
- package/plugins/migration-scoring/skills/migration-mapping/SKILL.md +72 -0
- package/plugins/migration-scoring/skills/migration-report/SKILL.md +118 -0
- package/plugins/migration-scoring/skills/migration-scoring-overview/SKILL.md +126 -0
- package/plugins/migration-scoring/skills/score-quality/SKILL.md +54 -0
- package/plugins/migration-scoring/skills/score-quality/references/scoring-criteria.md +30 -0
- package/plugins/migration-scoring/skills/score-style/SKILL.md +106 -0
- package/plugins/onboarding/.plugin/plugin.json +20 -0
- package/plugins/onboarding/README.md +30 -0
- package/plugins/onboarding/references/criteria.md +144 -0
- package/plugins/onboarding/skills/agent-readiness-report/README.md +23 -0
- package/plugins/onboarding/skills/agent-readiness-report/SKILL.md +122 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_agent_instructions.sh +88 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_build_env.sh +114 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_feedback_loops.sh +133 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_policy.sh +113 -0
- package/plugins/onboarding/skills/agent-readiness-report/scripts/scan_workflows.sh +127 -0
- package/plugins/onboarding/skills/improve-agent-readiness/README.md +19 -0
- package/plugins/onboarding/skills/improve-agent-readiness/SKILL.md +167 -0
- package/plugins/onboarding/skills/setup-agents-md/README.md +15 -0
- package/plugins/onboarding/skills/setup-agents-md/SKILL.md +150 -0
- package/plugins/onboarding/skills/setup-openhands/README.md +20 -0
- package/plugins/onboarding/skills/setup-openhands/SKILL.md +56 -0
- package/plugins/onboarding/skills/setup-pr-review/README.md +23 -0
- package/plugins/onboarding/skills/setup-pr-review/SKILL.md +72 -0
- package/plugins/openhands/.plugin/plugin.json +13 -0
- package/plugins/openhands/README.md +52 -0
- package/plugins/openhands/SKILL.md +61 -0
- package/plugins/openhands/commands/create.md +55 -0
- package/plugins/openhands/commands/openhands-cloud.md +8 -0
- package/plugins/openhands/scripts/run.sh +69 -0
- package/plugins/pr-review/.plugin/plugin.json +13 -0
- package/plugins/pr-review/README.md +393 -0
- package/plugins/pr-review/action.yml +298 -0
- package/plugins/pr-review/scripts/agent_script.py +1282 -0
- package/plugins/pr-review/scripts/evaluate_review.py +655 -0
- package/plugins/pr-review/scripts/prompt.py +260 -0
- package/plugins/pr-review/workflows/pr-review-by-openhands.yml +51 -0
- package/plugins/pr-review/workflows/pr-review-evaluation.yml +85 -0
- package/plugins/qa-changes/.plugin/plugin.json +11 -0
- package/plugins/qa-changes/README.md +185 -0
- package/plugins/qa-changes/action.yml +181 -0
- package/plugins/qa-changes/scripts/agent_script.py +406 -0
- package/plugins/qa-changes/scripts/evaluate_qa_changes.py +385 -0
- package/plugins/qa-changes/scripts/prompt.py +174 -0
- package/plugins/qa-changes/workflows/qa-changes-by-openhands.yml +50 -0
- package/plugins/qa-changes/workflows/qa-changes-evaluation.yml +85 -0
- package/plugins/release-notes/.plugin/plugin.json +19 -0
- package/plugins/release-notes/README.md +283 -0
- package/plugins/release-notes/SKILL.md +83 -0
- package/plugins/release-notes/action.yml +117 -0
- package/plugins/release-notes/commands/release-notes.md +8 -0
- package/plugins/release-notes/scripts/agent_script.py +292 -0
- package/plugins/release-notes/scripts/generate_release_notes.py +733 -0
- package/plugins/release-notes/scripts/prompt.py +90 -0
- package/plugins/release-notes/scripts/validate_release_notes.py +328 -0
- package/plugins/release-notes/workflows/release-notes.yml +76 -0
- package/plugins/vulnerability-remediation/.plugin/plugin.json +19 -0
- package/plugins/vulnerability-remediation/README.md +217 -0
- package/plugins/vulnerability-remediation/action.yml +187 -0
- package/plugins/vulnerability-remediation/scripts/scan_and_remediate.py +561 -0
- package/plugins/vulnerability-remediation/workflows/vulnerability-scan.yml +87 -0
- package/pyproject.toml +12 -0
- package/release-please-config.json +16 -0
- package/scripts/sync_extensions.py +494 -0
- package/scripts/sync_openhands_sdk_skill.py +264 -0
- package/skills/README.md +159 -0
- package/skills/add-javadoc/.plugin/plugin.json +18 -0
- package/skills/add-javadoc/README.md +40 -0
- package/skills/add-javadoc/SKILL.md +35 -0
- package/skills/add-javadoc/references/example.md +32 -0
- package/skills/add-skill/.plugin/plugin.json +18 -0
- package/skills/add-skill/README.md +67 -0
- package/skills/add-skill/SKILL.md +47 -0
- package/skills/add-skill/scripts/fetch_skill.py +259 -0
- package/skills/agent-creator/.plugin/plugin.json +20 -0
- package/skills/agent-creator/README.md +104 -0
- package/skills/agent-creator/SKILL.md +190 -0
- package/skills/agent-creator/commands/agent-creator.md +8 -0
- package/skills/agent-creator/references/fallback.md +117 -0
- package/skills/agent-memory/.plugin/plugin.json +18 -0
- package/skills/agent-memory/README.md +35 -0
- package/skills/agent-memory/SKILL.md +30 -0
- package/skills/agent-memory/commands/remember.md +8 -0
- package/skills/agent-sdk-builder/.plugin/plugin.json +18 -0
- package/skills/agent-sdk-builder/README.md +40 -0
- package/skills/agent-sdk-builder/SKILL.md +37 -0
- package/skills/agent-sdk-builder/commands/agent-builder.md +8 -0
- package/skills/azure-devops/.plugin/plugin.json +18 -0
- package/skills/azure-devops/README.md +55 -0
- package/skills/azure-devops/SKILL.md +50 -0
- package/skills/bitbucket/.plugin/plugin.json +17 -0
- package/skills/bitbucket/README.md +50 -0
- package/skills/bitbucket/SKILL.md +45 -0
- package/skills/code-review/.plugin/plugin.json +19 -0
- package/skills/code-review/README.md +18 -0
- package/skills/code-review/SKILL.md +208 -0
- package/skills/code-review/commands/codereview-roasted.md +8 -0
- package/skills/code-review/commands/codereview.md +8 -0
- package/skills/code-review/references/risk-evaluation.md +41 -0
- package/skills/code-review/references/supply-chain-security.md +31 -0
- package/skills/code-simplifier/.plugin/plugin.json +21 -0
- package/skills/code-simplifier/README.md +30 -0
- package/skills/code-simplifier/SKILL.md +91 -0
- package/skills/code-simplifier/commands/simplify.md +8 -0
- package/skills/code-simplifier/references/code-quality-review.md +86 -0
- package/skills/code-simplifier/references/code-reuse-review.md +63 -0
- package/skills/code-simplifier/references/efficiency-review.md +81 -0
- package/skills/datadog/.plugin/plugin.json +19 -0
- package/skills/datadog/README.md +100 -0
- package/skills/datadog/SKILL.md +95 -0
- package/skills/deno/.plugin/plugin.json +18 -0
- package/skills/deno/README.md +5 -0
- package/skills/deno/SKILL.md +99 -0
- package/skills/deno/references/README.md +6 -0
- package/skills/discord/.plugin/plugin.json +18 -0
- package/skills/discord/README.md +31 -0
- package/skills/discord/SKILL.md +109 -0
- package/skills/discord/__init__.py +0 -0
- package/skills/discord/references/REFERENCE.md +78 -0
- package/skills/discord/scripts/__init__.py +0 -0
- package/skills/discord/scripts/_http.py +127 -0
- package/skills/discord/scripts/post_webhook.py +106 -0
- package/skills/discord/scripts/send_message.py +102 -0
- package/skills/docker/.plugin/plugin.json +17 -0
- package/skills/docker/README.md +34 -0
- package/skills/docker/SKILL.md +29 -0
- package/skills/evidence-based-citations/.plugin/plugin.json +20 -0
- package/skills/evidence-based-citations/README.md +31 -0
- package/skills/evidence-based-citations/SKILL.md +59 -0
- package/skills/flarglebargle/.plugin/plugin.json +16 -0
- package/skills/flarglebargle/README.md +14 -0
- package/skills/flarglebargle/SKILL.md +9 -0
- package/skills/frontend-design/.plugin/plugin.json +21 -0
- package/skills/frontend-design/LICENSE.txt +177 -0
- package/skills/frontend-design/README.md +42 -0
- package/skills/frontend-design/SKILL.md +42 -0
- package/skills/github/.plugin/plugin.json +19 -0
- package/skills/github/README.md +42 -0
- package/skills/github/SKILL.md +106 -0
- package/skills/github-pr-review/.plugin/plugin.json +18 -0
- package/skills/github-pr-review/README.md +145 -0
- package/skills/github-pr-review/SKILL.md +148 -0
- package/skills/github-pr-review/commands/github-pr-review.md +8 -0
- package/skills/github-pr-reviewer/.plugin/plugin.json +20 -0
- package/skills/github-pr-reviewer/README.md +34 -0
- package/skills/github-pr-reviewer/SKILL.md +89 -0
- package/skills/github-pr-reviewer/commands/pr-reviewer:setup.md +8 -0
- package/skills/github-repo-monitor/.plugin/plugin.json +22 -0
- package/skills/github-repo-monitor/README.md +70 -0
- package/skills/github-repo-monitor/SKILL.md +316 -0
- package/skills/github-repo-monitor/commands/github-monitor:poll.md +8 -0
- package/skills/github-repo-monitor/references/github-api.md +241 -0
- package/skills/github-repo-monitor/references/state-schema.md +160 -0
- package/skills/github-repo-monitor/scripts/main.py +915 -0
- package/skills/github-repo-monitor/tests/test_main.py +400 -0
- package/skills/gitlab/.plugin/plugin.json +17 -0
- package/skills/gitlab/README.md +37 -0
- package/skills/gitlab/SKILL.md +32 -0
- package/skills/incident-retrospective/.plugin/plugin.json +21 -0
- package/skills/incident-retrospective/README.md +34 -0
- package/skills/incident-retrospective/SKILL.md +98 -0
- package/skills/incident-retrospective/commands/incident-retro:setup.md +8 -0
- package/skills/iterate/.plugin/plugin.json +13 -0
- package/skills/iterate/README.md +25 -0
- package/skills/iterate/SKILL.md +399 -0
- package/skills/iterate/commands/babysit.md +8 -0
- package/skills/iterate/commands/iterate.md +8 -0
- package/skills/iterate/commands/verify.md +8 -0
- package/skills/iterate/references/heuristics.md +58 -0
- package/skills/iterate/references/verification.md +96 -0
- package/skills/jupyter/.plugin/plugin.json +18 -0
- package/skills/jupyter/README.md +55 -0
- package/skills/jupyter/SKILL.md +50 -0
- package/skills/kubernetes/.plugin/plugin.json +18 -0
- package/skills/kubernetes/README.md +53 -0
- package/skills/kubernetes/SKILL.md +48 -0
- package/skills/learn-from-code-review/.plugin/plugin.json +19 -0
- package/skills/learn-from-code-review/README.md +64 -0
- package/skills/learn-from-code-review/SKILL.md +186 -0
- package/skills/learn-from-code-review/commands/learn-from-reviews.md +8 -0
- package/skills/linear/.plugin/plugin.json +19 -0
- package/skills/linear/README.md +58 -0
- package/skills/linear/SKILL.md +213 -0
- package/skills/linear-triage/.plugin/plugin.json +21 -0
- package/skills/linear-triage/README.md +34 -0
- package/skills/linear-triage/SKILL.md +91 -0
- package/skills/linear-triage/commands/linear-triage:setup.md +8 -0
- package/skills/notion/.plugin/plugin.json +17 -0
- package/skills/notion/README.md +114 -0
- package/skills/notion/SKILL.md +109 -0
- package/skills/npm/.plugin/plugin.json +17 -0
- package/skills/npm/README.md +14 -0
- package/skills/npm/SKILL.md +9 -0
- package/skills/openhands-api/.plugin/plugin.json +22 -0
- package/skills/openhands-api/README.md +48 -0
- package/skills/openhands-api/SKILL.md +399 -0
- package/skills/openhands-api/references/README.md +33 -0
- package/skills/openhands-api/references/TROUBLESHOOTING.md +81 -0
- package/skills/openhands-api/references/example_prompt.md +12 -0
- package/skills/openhands-api/scripts/openhands_api.py +606 -0
- package/skills/openhands-api/scripts/openhands_api.ts +252 -0
- package/skills/openhands-automation/.plugin/plugin.json +19 -0
- package/skills/openhands-automation/README.md +89 -0
- package/skills/openhands-automation/SKILL.md +875 -0
- package/skills/openhands-automation/commands/automation:create.md +8 -0
- package/skills/openhands-automation/references/ab-testing.md +185 -0
- package/skills/openhands-automation/references/custom-automation.md +644 -0
- package/skills/openhands-sdk/.plugin/plugin.json +20 -0
- package/skills/openhands-sdk/README.md +22 -0
- package/skills/openhands-sdk/SKILL.md +229 -0
- package/skills/openhands-sdk/commands/sdk.md +8 -0
- package/skills/pdflatex/.plugin/plugin.json +18 -0
- package/skills/pdflatex/README.md +39 -0
- package/skills/pdflatex/SKILL.md +34 -0
- package/skills/prd/.plugin/plugin.json +19 -0
- package/skills/prd/README.md +28 -0
- package/skills/prd/SKILL.md +237 -0
- package/skills/prd/commands/prd.md +8 -0
- package/skills/qa-changes/README.md +18 -0
- package/skills/qa-changes/SKILL.md +229 -0
- package/skills/qa-changes/commands/qa-changes.md +8 -0
- package/skills/release-notes/README.md +24 -0
- package/skills/release-notes/SKILL.md +19 -0
- package/skills/release-notes/commands/release-notes.md +8 -0
- package/skills/research-brief/.plugin/plugin.json +20 -0
- package/skills/research-brief/README.md +34 -0
- package/skills/research-brief/SKILL.md +99 -0
- package/skills/research-brief/commands/research-brief:setup.md +8 -0
- package/skills/security/.plugin/plugin.json +18 -0
- package/skills/security/README.md +38 -0
- package/skills/security/SKILL.md +33 -0
- package/skills/skill-creator/.plugin/plugin.json +17 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/README.md +182 -0
- package/skills/skill-creator/SKILL.md +545 -0
- package/skills/skill-creator/references/output-patterns.md +82 -0
- package/skills/skill-creator/references/workflows.md +28 -0
- package/skills/skill-creator/scripts/init_skill.py +303 -0
- package/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/skills/slack-channel-monitor/.plugin/plugin.json +21 -0
- package/skills/slack-channel-monitor/README.md +91 -0
- package/skills/slack-channel-monitor/SKILL.md +276 -0
- package/skills/slack-channel-monitor/commands/slack-monitor:poll.md +8 -0
- package/skills/slack-channel-monitor/references/slack-api.md +207 -0
- package/skills/slack-channel-monitor/references/state-schema.md +180 -0
- package/skills/slack-channel-monitor/scripts/main.py +962 -0
- package/skills/slack-standup-digest/.plugin/plugin.json +21 -0
- package/skills/slack-standup-digest/README.md +34 -0
- package/skills/slack-standup-digest/SKILL.md +92 -0
- package/skills/slack-standup-digest/commands/standup-digest:setup.md +8 -0
- package/skills/spark-version-upgrade/.plugin/plugin.json +20 -0
- package/skills/spark-version-upgrade/README.md +54 -0
- package/skills/spark-version-upgrade/SKILL.md +233 -0
- package/skills/ssh/.plugin/plugin.json +18 -0
- package/skills/ssh/README.md +140 -0
- package/skills/ssh/SKILL.md +135 -0
- package/skills/swift-linux/.plugin/plugin.json +17 -0
- package/skills/swift-linux/README.md +86 -0
- package/skills/swift-linux/SKILL.md +81 -0
- package/skills/theme-factory/.plugin/plugin.json +19 -0
- package/skills/theme-factory/LICENSE.txt +202 -0
- package/skills/theme-factory/README.md +58 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/uv/.plugin/plugin.json +18 -0
- package/skills/uv/README.md +5 -0
- package/skills/uv/SKILL.md +95 -0
- package/skills/uv/references/README.md +5 -0
- package/skills/vercel/.plugin/plugin.json +18 -0
- package/skills/vercel/README.md +108 -0
- package/skills/vercel/SKILL.md +103 -0
- package/tests/test_add_skill_installs_to_agents_dir.py +42 -0
- package/tests/test_catalogs.py +109 -0
- package/tests/test_code_review_risk_evaluation.py +94 -0
- package/tests/test_issue_duplicate_checker.py +240 -0
- package/tests/test_openhands_api_python.py +152 -0
- package/tests/test_plugin_manifest.py +83 -0
- package/tests/test_pr_review_diff_payload.py +202 -0
- package/tests/test_pr_review_feedback.py +263 -0
- package/tests/test_pr_review_prompt.py +152 -0
- package/tests/test_pr_review_review_context.py +253 -0
- package/tests/test_qa_changes.py +232 -0
- package/tests/test_qa_changes_evaluation.py +259 -0
- package/tests/test_release_notes_generator.py +990 -0
- package/tests/test_sdk_loading.py +150 -0
- package/tests/test_skill_plugin_loading.py +149 -0
- package/tests/test_skills_have_readme.py +66 -0
- package/tests/test_sync_extensions.py +292 -0
- package/tests/test_workflow_sync.py +46 -0
- package/utils/analysis/README.md +7 -0
- package/utils/analysis/laminar_signals/README.md +211 -0
- package/utils/analysis/laminar_signals/analyze.py +780 -0
- package/utils/analysis/laminar_signals/templates/default.j2 +49 -0
- 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
|
+
}
|