@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.
- 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,162 @@
|
|
|
1
|
+
# Agent Improvement Report
|
|
2
|
+
|
|
3
|
+
**Signal:** `pr review suggestion and analysis`
|
|
4
|
+
|
|
5
|
+
## Executive Summary
|
|
6
|
+
|
|
7
|
+
The AI agent is technically capable but prone to 'rubber stamping' code that looks aesthetically simple but is logically flawed. The most critical improvement is to force a 'Logic Verification' step to prevent false approvals. Additionally, reducing repetitive comment noise and enforcing actionable suggestion syntax will significantly improve the developer experience and acceptance rate.
|
|
8
|
+
|
|
9
|
+
## Issues Requiring Attention
|
|
10
|
+
|
|
11
|
+
### 1. [HIGH] Premature Approval of 'Simple' but Broken Code
|
|
12
|
+
|
|
13
|
+
The agent frequently approves PRs that look 'clean' or 'simple' (adhering to the 'Good Taste' instruction) but contain functional bugs or incomplete fixes. The 'Linus' persona prioritizes architectural simplicity over logical correctness, leading to 'rubber stamping'. Examples include approving a band-aid fix for token limits that didn't solve the root cause, and missing a timestamp reset bug because the code looked 'elegant'.
|
|
14
|
+
|
|
15
|
+
**Frequency:** 15% of traces
|
|
16
|
+
|
|
17
|
+
**Example traces:**
|
|
18
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=a0dbd0c7-116d-776b-9c4b-c7f5f4d0a97e
|
|
19
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=5de277ff-38f2-e173-4b03-c7332301ea58
|
|
20
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=67e1f1bf-d5db-840b-1673-10a86b1f2285
|
|
21
|
+
|
|
22
|
+
### 2. [MEDIUM] Repetitive Comment Spam (Lack of De-duplication)
|
|
23
|
+
|
|
24
|
+
The agent generates excessive noise by posting the exact same comment multiple times across different lines or files (e.g., posting a 'None check' warning 11 times in one review). This dilutes the value of the feedback and frustrates the user, leading to the feedback being ignored.
|
|
25
|
+
|
|
26
|
+
**Frequency:** Occasional
|
|
27
|
+
|
|
28
|
+
**Example traces:**
|
|
29
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=731057f2-473a-50d5-0781-74ba203015c8
|
|
30
|
+
|
|
31
|
+
### 3. [MEDIUM] Failure to Use Actionable Suggestion Syntax
|
|
32
|
+
|
|
33
|
+
The agent identifies valid issues (e.g., future-dated CVEs, wrong version bumps) but fails to use the GitHub `suggestion` syntax to provide a one-click fix. This increases friction for the maintainer, who has to manually type the fix, leading to the suggestion often being ignored or deferred.
|
|
34
|
+
|
|
35
|
+
**Frequency:** 10% of traces
|
|
36
|
+
|
|
37
|
+
**Example traces:**
|
|
38
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=b3ee7de3-20d1-206e-579c-43e8a710b69a
|
|
39
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=8f10d9c8-cc5e-3783-f4e3-e33dfeca25ff
|
|
40
|
+
|
|
41
|
+
### 4. [MEDIUM] Ineffective Persuasion on Technical Debt
|
|
42
|
+
|
|
43
|
+
The agent provides technically correct but 'theoretical' suggestions (e.g., adding integration tests, changing architecture) that are rejected by humans for 'pragmatism'. The agent fails to articulate the *concrete risk* of the current approach, making its advice easy to dismiss as 'over-engineering'.
|
|
44
|
+
|
|
45
|
+
**Frequency:** Frequent
|
|
46
|
+
|
|
47
|
+
**Example traces:**
|
|
48
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=4506a370-f522-6de1-7e37-8010972546aa
|
|
49
|
+
- https://laminar.sh/project/e493e4f8-2a93-4e74-b5c1-865ba94d341f/traces?traceId=8fa40dfd-8d36-08e5-e454-a3f7ad27b12c
|
|
50
|
+
|
|
51
|
+
## Recommended Fixes
|
|
52
|
+
|
|
53
|
+
### 1. [HIGH PRIORITY] Enforce Logic Verification Over Aesthetic Simplicity
|
|
54
|
+
|
|
55
|
+
Add a specific 'Logic Verification' step to the analysis framework. The current prompt focuses heavily on structure (indentation, complexity) but lacks an explicit instruction to trace data flow. This change forces the agent to verify that the logic actually works before calling it 'elegant'.
|
|
56
|
+
|
|
57
|
+
**Suggested Prompt Changes:**
|
|
58
|
+
|
|
59
|
+
📍 **Section:** CORE PHILOSOPHY
|
|
60
|
+
|
|
61
|
+
```diff
|
|
62
|
+
- 2. **"Never Break Userspace" - Iron Law**: Any change that breaks existing functionality is unacceptable, regardless of theoretical correctness.
|
|
63
|
+
3. **Pragmatism**: Solve real problems, not imaginary ones.
|
|
64
|
+
+ 2. **"Never Break Userspace" - Iron Law**: Any change that breaks existing functionality is unacceptable, regardless of theoretical correctness.
|
|
65
|
+
3. **Correctness Precedes Simplicity**: Elegant code that doesn't work is garbage. Verify the logic flow before praising the structure.
|
|
66
|
+
4. **Pragmatism**: Solve real problems, not imaginary ones.
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
📍 **Section:** CRITICAL ANALYSIS FRAMEWORK
|
|
70
|
+
|
|
71
|
+
```diff
|
|
72
|
+
- 6. **Testing and Regression Proof**
|
|
73
|
+
[... existing text ...]
|
|
74
|
+
- The test should fail if the behavior regresses.
|
|
75
|
+
|
|
76
|
+
CRITICAL REVIEW OUTPUT FORMAT:
|
|
77
|
+
+ 6. **Testing and Regression Proof**
|
|
78
|
+
[... existing text ...]
|
|
79
|
+
|
|
80
|
+
7. **Logic Verification (The "Rubber Duck" Check)**
|
|
81
|
+
Don't just look at the indentation. Trace the execution path:
|
|
82
|
+
- Does the variable actually update?
|
|
83
|
+
- Is the return value used?
|
|
84
|
+
- Are side effects (like timestamp resets) happening where they should?
|
|
85
|
+
- **Stop and think**: If this looks "simple", is it because it's missing a critical check?
|
|
86
|
+
|
|
87
|
+
CRITICAL REVIEW OUTPUT FORMAT:
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
*Fixes: Premature Approval of 'Simple' but Broken Code*
|
|
91
|
+
|
|
92
|
+
### 2. [MEDIUM PRIORITY] Add Noise Control / De-duplication Rule
|
|
93
|
+
|
|
94
|
+
Implement a strict noise control rule in the output format instructions. This prevents the agent from posting identical comments on multiple lines, which was observed in trace 731057f2.
|
|
95
|
+
|
|
96
|
+
**Suggested Prompt Changes:**
|
|
97
|
+
|
|
98
|
+
📍 **Section:** CRITICAL REVIEW OUTPUT FORMAT
|
|
99
|
+
|
|
100
|
+
```diff
|
|
101
|
+
- **[STYLE NOTES]** (Skip most of these - only mention if it genuinely hurts maintainability)
|
|
102
|
+
- Generally skip style comments. Linters exist for a reason.
|
|
103
|
+
|
|
104
|
+
**[TESTING GAPS]** (If behavior changed, this is not optional)
|
|
105
|
+
+ **[STYLE NOTES]** (Skip most of these - only mention if it genuinely hurts maintainability)
|
|
106
|
+
- Generally skip style comments. Linters exist for a reason.
|
|
107
|
+
|
|
108
|
+
**NOISE CONTROL**:
|
|
109
|
+
- If the same issue appears in multiple locations (e.g., missing None check on 5 different lines), post **ONE** comment on the first occurrence that summarizes the pattern. Do NOT spam the review with identical comments.
|
|
110
|
+
|
|
111
|
+
**[TESTING GAPS]** (If behavior changed, this is not optional)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
*Fixes: Repetitive Comment Spam (Lack of De-duplication)*
|
|
115
|
+
|
|
116
|
+
### 3. [MEDIUM PRIORITY] Mandate Suggestion Syntax for Small Fixes
|
|
117
|
+
|
|
118
|
+
Mandate the use of GitHub suggestion blocks for small changes. The current prompt suggests it as an option; this change makes it a requirement for fixes under 3 lines (typos, versions, one-line logic).
|
|
119
|
+
|
|
120
|
+
**Suggested Prompt Changes:**
|
|
121
|
+
|
|
122
|
+
📍 **Section:** GitHub Suggestions
|
|
123
|
+
|
|
124
|
+
```diff
|
|
125
|
+
- ## GitHub Suggestions
|
|
126
|
+
|
|
127
|
+
For small code changes, use the suggestion syntax for one-click apply:
|
|
128
|
+
|
|
129
|
+
~~~
|
|
130
|
+
```suggestion
|
|
131
|
+
improved_code_here()
|
|
132
|
+
```
|
|
133
|
+
~~~
|
|
134
|
+
+ ## GitHub Suggestions
|
|
135
|
+
|
|
136
|
+
For small code changes (1-3 lines), **YOU MUST** use the suggestion syntax. This allows the maintainer to apply the fix with one click.
|
|
137
|
+
|
|
138
|
+
**MANDATORY**: Use this for typos, version bumps, variable renames, and simple logic fixes.
|
|
139
|
+
|
|
140
|
+
~~~
|
|
141
|
+
```suggestion
|
|
142
|
+
improved_code_here()
|
|
143
|
+
```
|
|
144
|
+
~~~
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
*Fixes: Failure to Use Actionable Suggestion Syntax*
|
|
148
|
+
|
|
149
|
+
## Metrics
|
|
150
|
+
|
|
151
|
+
**Total signals analyzed:** 111
|
|
152
|
+
**Issue rate:** ~35%
|
|
153
|
+
|
|
154
|
+
| Metric | Value |
|
|
155
|
+
|--------|-------|
|
|
156
|
+
| Suggestion Reflection Rate | ~28% (Low) |
|
|
157
|
+
| Zero-Reflection Reviews | ~60% of reviews with suggestions |
|
|
158
|
+
|
|
159
|
+
## What's Working Well
|
|
160
|
+
|
|
161
|
+
- **Security Awareness**: The agent excels at identifying security risks, such as auth bypasses and hardcoded secrets (e.g., Trace 4e04b6bd).
|
|
162
|
+
- **Architectural Review**: The 'Linus' persona is effective at catching architectural complexity and over-engineering (e.g., Trace da1802b6).
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "large-codebase",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "OpenHands",
|
|
5
|
+
"email": "contact@all-hands.dev"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "OpenHands skills for interacting, improving, and refactoring large codebases",
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"pluginRoot": "./skills"
|
|
11
|
+
},
|
|
12
|
+
"plugins": [
|
|
13
|
+
{
|
|
14
|
+
"name": "add-javadoc",
|
|
15
|
+
"source": "./skills/add-javadoc",
|
|
16
|
+
"description": "Add comprehensive JavaDoc documentation to Java classes and methods. Use when documenting Java code, adding API documentation, or improving code documentation.",
|
|
17
|
+
"category": "documentation",
|
|
18
|
+
"keywords": [
|
|
19
|
+
"javadoc",
|
|
20
|
+
"java",
|
|
21
|
+
"documentation",
|
|
22
|
+
"api-docs"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"name": "cobol-modernization",
|
|
27
|
+
"source": "./plugins/cobol-modernization",
|
|
28
|
+
"description": "End-to-end COBOL to Java migration workflow. Handles build setup, mainframe dependency removal, and code migration with test validation.",
|
|
29
|
+
"category": "development",
|
|
30
|
+
"keywords": [
|
|
31
|
+
"cobol",
|
|
32
|
+
"java",
|
|
33
|
+
"migration",
|
|
34
|
+
"mainframe",
|
|
35
|
+
"modernization"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "migration-scoring",
|
|
40
|
+
"source": "./plugins/migration-scoring",
|
|
41
|
+
"description": "Evaluate code migration quality with coverage, correctness, and style scoring. Generates executive reports with actionable recommendations.",
|
|
42
|
+
"category": "code-quality",
|
|
43
|
+
"keywords": [
|
|
44
|
+
"migration",
|
|
45
|
+
"scoring",
|
|
46
|
+
"quality",
|
|
47
|
+
"evaluation",
|
|
48
|
+
"reporting"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "spark-version-upgrade",
|
|
53
|
+
"source": "./skills/spark-version-upgrade",
|
|
54
|
+
"description": "Upgrade Apache Spark applications between major versions (2.x→3.x, 3.x→4.x). Covers build files, deprecated APIs, configuration changes, SQL/DataFrame updates, and test validation.",
|
|
55
|
+
"category": "development",
|
|
56
|
+
"keywords": [
|
|
57
|
+
"spark",
|
|
58
|
+
"upgrade",
|
|
59
|
+
"migration",
|
|
60
|
+
"pyspark",
|
|
61
|
+
"scala",
|
|
62
|
+
"big-data"
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|