Skip to content

feat: Onboarding plugin#117

Open
csmith49 wants to merge 16 commits intomainfrom
fix/onboarding-plugin
Open

feat: Onboarding plugin#117
csmith49 wants to merge 16 commits intomainfrom
fix/onboarding-plugin

Conversation

@csmith49
Copy link
Contributor

@csmith49 csmith49 commented Mar 23, 2026

This PR adds a plugin that defines a set of skills to help get a repository ready for OpenHands to start being productive.

New skills:

  • setup-openhands -- initial configuration and integrations for OpenHands
  • setup-agents-md -- advice for creating reasonable AGENTS.md files from scratch
  • setup-pr-review -- instructions on setting up the OpenHands review workflow
  • agent-readiness-report -- moved from readiness-report, optimized (see below)
  • improve-agent-readiness -- generates high-impact fixes to improve agent readiness

The intended flow to getting a repository ready for OpenHands is now just running the /setup-openhands skill. This references the other setup skills and follows the remaining advice in this documentation on SDLC setup.

Agent Readiness

If the step-by-step workflow in /setup-openhands isn't enough, we also have a process for hardening the repo based on current best practices.

Running the /agent-readiness-report skill will examine the repository, score it across a variety of factors, and generate a report. Running the /improve-agent-readiness skill will examine the report, identify high-impact fixes, and update the report when done.

The features and fixes identified by this loop have been sourced from what other state-of-the-art AI projects are doing. Not all the features are applicable to all repos, and many identify technologies/config options that are not OpenHands-specific.

Updating the Readiness Report

The previous readiness report was based (loosely) on the CMMI approach and had some strong assumptions on the repository domain (web-based apps). Defining maturity levels for such a fast-moving field is a bit strange, so the new approach is based on the BSIMM approach instead.

To that end, I gathered ~125 open-source repos across a mix of languages, domains, apparent AI readiness, and size. OpenHands inspected each repo for evidence of AI readiness across four pillars (along with an "other"):

  • Agent documentation -- agents.md files, .cursor configs, skills, etc.
  • Feedback loops -- CI/CD, linting, tests, etc.
  • Workflow and automation -- similar to feedback loops, but things like issue templates and automatic build actions
  • Policy and governance -- code owners, AI usage policy markers, etc.

This produced >1.2k features that act as evidence for or against a repo's AI readiness. Some multi-resolution clustering of embeddings and manual tweaks produced the features in criteria.md. Once fed to /agent-readiness-report and run against a sample of repos from the initial collection, the scores in the report cleanly separated those that were AI ready from those that weren't.

Copy link
Contributor

@all-hands-bot all-hands-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Acceptable - Solid concept and structure, but fix the criteria.md duplication before merge. "Bad programmers worry about the code. Good programmers worry about data structures."


---

## Pillar 2 · Feedback Loops
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will want to replace this later when @xingyaoww is done with our recommended verification stack.

| 3 | **Multi-model support** | Instructions that work across different AI models/tools, not locked to one vendor | 2+ distinct agent config types from features 1–2 present in same repo |
| 4 | **Agent skills or capabilities** | Packaged, reusable abilities the agent can invoke | `.claude/skills/`, `.factory/skills/`, `skill.md` files, tool definition files |
| 5 | **Tool server configuration** | Config for agent tool protocols (lets agents use external tools) | `.mcp.json`, `mcp.config.js`, tool server manifests |
| 6 | **Agent prompt library** | Pre-built prompts for common tasks in this repo | `.github/prompts/`, `prompts/` directory, prompt template files |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe not necessary if we have skills?


| # | Feature | What to look for | Evidence |
|---|---------|------------------|----------|
| 1 | **Agent instruction file** | A dedicated file telling agents how to work in this repo — conventions, banned patterns, common commands | `AGENTS.md`, `CLAUDE.md`, `COPILOT.md`, `CONVENTIONS.md` at root |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AGENTS.md is the standard now, probably just need that.

| # | Feature | What to look for | Evidence |
|---|---------|------------------|----------|
| 1 | **Agent instruction file** | A dedicated file telling agents how to work in this repo — conventions, banned patterns, common commands | `AGENTS.md`, `CLAUDE.md`, `COPILOT.md`, `CONVENTIONS.md` at root |
| 2 | **AI IDE configuration** | Settings or rules for AI-powered editors/IDEs | `.cursor/rules/`, `.cursorrules`, `.github/copilot-instructions.md`, `.github/instructions/`, `.claude/settings.json` |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can probably remove, we don't necessarily need to recommend that people use IDEs.

|---|---------|------------------|----------|
| 1 | **Agent instruction file** | A dedicated file telling agents how to work in this repo — conventions, banned patterns, common commands | `AGENTS.md`, `CLAUDE.md`, `COPILOT.md`, `CONVENTIONS.md` at root |
| 2 | **AI IDE configuration** | Settings or rules for AI-powered editors/IDEs | `.cursor/rules/`, `.cursorrules`, `.github/copilot-instructions.md`, `.github/instructions/`, `.claude/settings.json` |
| 3 | **Multi-model support** | Instructions that work across different AI models/tools, not locked to one vendor | 2+ distinct agent config types from features 1–2 present in same repo |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessary, since the purpose of this is mainly to tell that this is ready for openhands.

| 4 | **Agent skills or capabilities** | Packaged, reusable abilities the agent can invoke | `.claude/skills/`, `.factory/skills/`, `skill.md` files, tool definition files |
| 5 | **Tool server configuration** | Config for agent tool protocols (lets agents use external tools) | `.mcp.json`, `mcp.config.js`, tool server manifests |
| 6 | **Agent prompt library** | Pre-built prompts for common tasks in this repo | `.github/prompts/`, `prompts/` directory, prompt template files |
| 7 | **Component-level agent guidance** | Different parts of the codebase have their own agent instructions | `AGENTS.md` or instruction files in subdirectories (e.g. `frontend/AGENTS.md`, `api/CLAUDE.md`) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| 7 | **Component-level agent guidance** | Different parts of the codebase have their own agent instructions | `AGENTS.md` or instruction files in subdirectories (e.g. `frontend/AGENTS.md`, `api/CLAUDE.md`) |
| 7 | **Component-level agent guidance** | Different parts of the codebase have their own agent instructions | `AGENTS.md` or instruction files in subdirectories (e.g. `frontend/AGENTS.md`, `api/AGENTS.md`) |

| 11 | **API documentation** | Reference docs for the project's interfaces | `openapi.yaml`, generated HTML docs, `doc.go` files, Swagger UI, `api-docs/` |
| 12 | **Inline code documentation** | Doc comments, docstrings — agents read these to understand intent | JSDoc `/** */` blocks, Python docstrings, GoDoc comments, RDoc `#` blocks, Rust `///` |
| 13 | **Runnable examples** | Working example code the agent can study and imitate | `examples/` directory, `_examples/`, example apps with their own READMEs |
| 14 | **Changelog** | History of what changed and how entries should be written | `CHANGELOG.md`, `CHANGES.md`, `HISTORY.md`, release notes in GitHub Releases |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also just be tracked in github, so maybe not necessary.

| 46 | **Label automation** | Automatic PR/issue labeling based on paths or content | `.github/labeler.yml`, label-sync config, auto-label workflows |
| 47 | **Multi-platform CI** | CI matrix covering multiple OS, arch, or runtime versions | `matrix:` in CI with `os: [ubuntu, macos, windows]` or multiple language versions |
| 48 | **Deployment automation** | Automated deployment pipeline | Deploy workflow triggered on merge/tag, staging + production environments in CI |
| 49 | **Automated code review checks** | Bot-driven review checks beyond CI | Danger.js config, review bot config, required review assignments, CODEOWNERS + required reviews |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should recommend the openhands review?

| 57 | **Security scanning** | Automated vulnerability scanning in CI | `.github/workflows/codeql.yml`, Snyk config, `gosec` in CI, Trivy, Dependabot security alerts |
| 58 | **Git attributes** | Line endings, diff drivers, LFS, linguist overrides | `.gitattributes` with `text=auto`, `linguist-generated`, LFS tracking patterns |
| 59 | **Contributor agreement** | DCO sign-off or CLA process | DCO bot config, `Signed-off-by` requirement in contributing guide, CLA-assistant config |
| 60 | **Governance model** | Documented maintainer roles, decision-making process | `GOVERNANCE.md`, `MAINTAINERS.md`, governance section in docs, team/role descriptions |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems duplicated with codeowners


## Five Pillars

| Pillar | Question | Features |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we change anything based on my above comments, change here too.

@csmith49
Copy link
Contributor Author

@neubig I've updated this PR if you want to take another look.

The idea is that the agent-readiness-report and improve-agent-readiness skills are the ones that look at the criteria.md file you left most of your comments on, but those skills are not the primary way we'd expect someone to get a repo ready for OpenHands. They're intended as an improvement on the old readiness-report skill that scores an arbitrary repo, which is why the criteria include configuration options we don't use/recommend.

Instead, the main entry-point is the setup-openhands skill, which does all the OpenHands-specific setup that can be done relatively automatically. As we get the verification stack up and running or change initial configuration expectations that'll be the skill we update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants