Skip to content

Comments

skills: add adapt-yourself skill#66

Open
enyst wants to merge 13 commits intomainfrom
skill/modify-openhands
Open

skills: add adapt-yourself skill#66
enyst wants to merge 13 commits intomainfrom
skill/modify-openhands

Conversation

@enyst
Copy link
Collaborator

@enyst enyst commented Feb 21, 2026

Adds a new skill (adapt-yourself) that teaches agents/users how to make persistent behavior changes by choosing the right extensibility mechanism:

  • repo/user skills (.agents/skills)
  • always-on repo instructions (AGENTS.md)
  • hooks (.openhands/hooks.json)
  • plugins (Claude Code-compatible structure)
  • MCP servers (CLI: ~/.openhands/mcp.json; SDK skills/plugins: per-skill .mcp.json)
  • and, when necessary, code changes in OpenHands-CLI vs software-agent-sdk.

Also includes references covering uv + uv tool install workflows and version pinning, plus templates.

Changes:

  • skills/adapt-yourself/ (SKILL.md, README, references)
  • Register in .plugin/marketplace.json

Validation:

  • python -m json.tool .plugin/marketplace.json

Co-authored-by: openhands <openhands@all-hands.dev>
Copy link

@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 - Solves a real problem (agents being asked to "modify yourself"), but SKILL.md is too dense for progressive disclosure. Main issue: section 3 turns into a uv technical manual when it should stay a decision guide.

Co-authored-by: openhands <openhands@all-hands.dev>
Copy link
Collaborator Author

@enyst enyst left a comment

Choose a reason for hiding this comment

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

Addressed the review feedback:

  • Trimmed SKILL.md section 3 to stay high-level and moved details to references/INSTALLATION_MODES.md.
  • Clarified MCP config locations: CLI uses ~/.openhands/mcp.json (or $OPENHANDS_PERSISTENCE_DIR/mcp.json); SDK skills/plugins use per-skill/per-plugin .mcp.json.
  • Updated hooks template to parse structured JSON with jq and return {decision: allow|deny}.
  • Reworded the opening clarification guidance to avoid unnecessary “one at a time” ceremony.

Pushed in 52633f7.

Co-authored-by: openhands <openhands@all-hands.dev>
@enyst enyst changed the title skills: add modify-openhands skill skills: add adapt-yourself skill Feb 21, 2026
Copy link
Collaborator Author

enyst commented Feb 21, 2026

Rename update:

  • Skill renamed from "modify-openhands" to "adapt-yourself".
  • Updated: directory name, SKILL.md frontmatter name, and .plugin/marketplace.json entry.
  • PR title/body updated to match.

@enyst enyst requested a review from all-hands-bot February 21, 2026 06:07
Copy link

@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 - Solves a real problem and the structure is sound after previous revisions. Main issue: one overly-generic trigger that will cause false positives.

- .agents/skills
- hooks.json
- plugin.json
- uv tool install

Choose a reason for hiding this comment

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

🟠 Important: The trigger "uv tool install" is too generic and will cause false positives. This skill is about self-modification/customization, but this trigger would fire whenever someone mentions uv tool install for any purpose (e.g., "How do I uv tool install ruff?" or "Install pytest with uv").

Why this matters: Trigger pollution degrades the progressive disclosure model. The skill will get loaded unnecessarily, adding context bloat to unrelated conversations.

Fix: Remove the "uv tool install" line from the triggers list. The other triggers ("modify yourself", "customize openhands", "self-modify", etc.) are specific enough to catch actual self-modification requests without false positives.

If you genuinely need to catch uv-related self-modification, rely on the combination of existing triggers + the natural context of the conversation, not a generic command string.

enyst and others added 2 commits February 21, 2026 07:24
Co-authored-by: openhands <openhands@all-hands.dev>
Copy link
Collaborator Author

enyst commented Feb 21, 2026

Pulled your latest tweaks (git pull --rebase) and applied the requested cleanup:

  • Removed the legacy .openhands/skills/... path from the “Where to put it” list and renumbered (now only .agents/skills and ~/.agents/skills).
  • Removed legacy .openhands/skills / ~/.openhands/skills mentions from the architecture reference.

Pushed in 3c3536c.

Co-authored-by: openhands <openhands@all-hands.dev>
Copy link
Collaborator Author

enyst commented Feb 21, 2026

Updated section “Add tools via MCP” to be more restrictive:

  • Only recommend MCP when the user explicitly asks to add an MCP server, or when we can point to an existing MCP server for the capability (from docs/official repo).
  • If no MCP server exists, it now directs toward writing a skill (workflow) or treating “build/install an MCP server” as the real work item.

Pushed in 5063dcb.

enyst and others added 2 commits February 21, 2026 07:47
Co-authored-by: openhands <openhands@all-hands.dev>
Copy link
Collaborator Author

enyst commented Feb 21, 2026

Pulled latest (git pull --rebase) and fixed the verification checklist wording:

  • Made it clear the agent should ask the user to restart / start a fresh conversation, not try to restart itself.
  • Clarified that /skills is a user command in the OpenHands CLI TUI.
  • Clarified that the user sends the test prompt.

Pushed in 682ba1e.

enyst and others added 2 commits February 21, 2026 07:55
Co-authored-by: openhands <openhands@all-hands.dev>
Copy link
Collaborator Author

enyst commented Feb 21, 2026

Did a git pull --rebase and replaced “product(s)” → “project(s)” in the adapt-yourself skill wording.

Changes:

  • MCP section: “project’s docs”, “project-specific”
  • Architecture reference: “depending on project / SDK config”, “host project”

Pushed in 4e5e8ca.

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