Skip to content

docs: document plugin-spec automations - #794

Merged
malhotra5 merged 5 commits into
mainfrom
docs/automation-plugin-spec-details
Oct 27, 2026
Merged

malhotra5 merged 5 commits into
mainfrom
docs/automation-plugin-spec-details

Conversation

@malhotra5

@malhotra5 malhotra5 commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

HUMAN:
Documenting plugin-spec automations in the automation skill so users know about the preferred path for reusable/code-backed automations.


AGENT:

Why

The automation skill documented prompt presets, plugin presets, and custom scripts but did not cover plugin-spec automations (POST /api/automation/v1/plugin-spec), the preferred path for reusable, code-backed, and deterministic automations. Users and agents had no reference for the manifest schema, runtime profiles, entrypoint runners, config schema, or suggested trigger templates.

Summary

  • Add /api/automation/v1/plugin-spec to the automation skill endpoint reference.
  • Document plugin-spec automation manifests, including .plugin/plugin.json automation metadata, config_schema, suggested_trigger_template, runtime profile requirements, runners, and update behavior.
  • Update the automation skill README to mention plugin-spec automations alongside prompt presets, plugin presets, and custom scripts.
  • Regenerate skills/index.js to keep the skills catalog in sync with the updated SKILL.md content.

Issue Number

Closes #816

How to Test

  1. Run node scripts/build-skills-catalog.mjs and confirm skills/index.js is unchanged (already regenerated in this PR).
  2. Run uv run --group test pytest tests/test_skills_catalog.py -x and confirm all 50 tests pass.
  3. Review the updated skills/openhands-automation/SKILL.md and skills/openhands-automation/README.md for accuracy against the OpenHands/automation implementation.

Notes

This PR was created by an AI agent (OpenHands) on behalf of the user.

Co-authored-by: openhands <openhands@all-hands.dev>
@github-actions github-actions Bot added the type: docs Documentation only changes label Oct 19, 2026
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>
Co-authored-by: openhands <openhands@all-hands.dev>

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This review was posted by an AI agent (OpenHands).

Scope assessment. This change edits skills/openhands-automation, which is this repository's job - AGENTS.md says to put reusable skills and plugins here - so it should not move repositories or close on ownership grounds.

It does need a product/architecture decision before merge.

The PR's stated purpose and its Closes #816 link are additive documentation: #816 asks for plugin-spec to be documented "alongside prompt presets, plugin presets, and custom scripts", and its acceptance criteria require the README to name plugin-spec "without removing or reframing the existing preset and custom-script guidance". #816's own triage is explicit that "Repositioning the presets as legacy, or making plugin-spec the default and preferred creation path, belongs to issue #802 ... It is a non-goal here even though PR #794 also makes those edits."

This PR makes exactly that repositioning anyway:

  • skills/openhands-automation/SKILL.md now ranks plugin-spec first as "Preferred" in ## Creating Automations, and its "Choosing the Right Preset" table demotes the prompt and plugin presets to one-off/fallback roles.
  • skills/openhands-automation/README.md now frames custom scripts as warranted "only when the user needs full packaging ... outside the preferred plugin-spec path", and the prompt preset as "one-off".

That is the direction owned by the still-open issue #802, which carries needs-automation-release. Its blocking upstream items are not settled: OpenHands/automation#614 and #615 (agent-profile propagation and selection), OpenHands/automation#617 (repo cloning in plugin-spec runs), and #799 (plugins/prompt-task) all remain open. Making plugin-spec the skill's default before that direction lands steers agents and users toward the higher-friction git-repo-plus-manifest path that #802 is gated on.

Decision for a maintainer: either narrow #794 to the additive documentation #816 requests and leave the "preferred creation path" repositioning to #802 once its needs-automation-release blockers clear, or have #794 explicitly absorb #802's direction and reconcile the two issues.

🛑 MAINTAINER DECISION REQUIRED

@malhotra5

malhotra5 commented Oct 27, 2026 •

Copy link
Copy Markdown
Member Author

Decision on the review at #794 (review): keep the scoped preferred-path guidance in this PR. I updated the original ticket, #816, so plugin-spec is the preferred way to create reusable, code-backed, or deterministic automations that can be packaged as executable plugins (using the script runner without an LLM for deterministic work). This is more than additive endpoint documentation, and #816 now explicitly includes that guidance in its requirements and acceptance criteria.

This is not a blanket switch for prompt-style LLM tasks. #802 still owns the profile-aware prompt-task default and recipe-skill migrations; its dependencies OpenHands/automation#614, OpenHands/automation#615, OpenHands/automation#617 and #799 remain open. Until they land, retain prompt presets for one-off reasoning and plugin presets where there is no executable plugin-spec contract; do not call every preset legacy.

One remaining inconsistency before merging #794: the endpoint table still labels /api/automation/v1/preset/prompt unconditionally "(recommended)". Please qualify or remove that label to match the scoped preference now specified in #816.

This comment was created by an AI agent (OpenHands) on behalf of the user.

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This review was posted by an AI agent (OpenHands). (Fresh pass on head aec34e56; a prior review exists on this SHA, but the maintainer decision on 2026-10-27 superseded its scope concern, so the technical review proceeds.)

Scope, re-checked against current state. The change edits skills/openhands-automation, which this repository owns. Issue #816 has since been updated to explicitly include the preferred-path guidance and its acceptance criteria, and the maintainer decision of 2026-10-27 keeps the scoped preferred-path guidance in this PR while leaving the prompt-style default to #802. The earlier maintainer-decision blocker is therefore resolved; this is no longer a scope stop.

Verification on this head. All GitHub Actions checks on aec34e56 are green: the single Validate PR description failure completed at 19:48:29Z on 2026-10-21 and was succeeded by a passing run of the same check at 19:49:00Z on the same SHA; test, check, sync-extensions, and sync-sdk-skill all pass. In the workspace: node scripts/build-skills-catalog.mjs leaves skills/index.js unchanged, uv run --group test pytest tests/test_skills_catalog.py -x passes all 50 tests, the full suite passes (1420 passed, 23 skipped), and python scripts/sync_extensions.py --check passes with only pre-existing non-blocking coverage warnings. All JSON examples in the new plugin-spec section parse as valid JSON, and the documented request fields, manifest schema, runner contracts, profile rules, HTTP 422 behaviors, update semantics, and credential-free source examples match the implemented contract described in #816's acceptance criteria.

Remaining finding. One material inconsistency is left, also flagged in the maintainer's 2026-10-27 comment and required by #816's acceptance criteria: the Automation Endpoints table still labels /api/automation/v1/preset/prompt unconditionally as "(recommended)". The PR itself now positions plugin-spec as the preferred path and the prompt preset as one-off LLM work (in Creating Automations, the agent behavior rules, and the Choosing the Right Preset table), so the table contradicts the rest of the PR and the issue it closes. Once that label is qualified or removed, this is ready to merge.

🔄 CHANGES REQUESTED

Comment thread skills/openhands-automation/SKILL.md Resolved
Co-authored-by: openhands <openhands@all-hands.dev>

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This review was posted by an AI agent (OpenHands).

Scope. The change edits skills/openhands-automation, which this repository owns per AGENTS.md. Issue #816 (now priority:medium, ready-for-dev) explicitly includes the preferred-path guidance in its requirements and acceptance criteria, and #802 continues to own the prompt-style default; the PR's scoped wording is consistent with that split. No maintainer decision is pending.

Verification on head cae1a6d. All GitHub Actions checks on this SHA pass, including test, check, sync-extensions, sync-sdk-skill, and Validate PR description. In the workspace, node scripts/build-skills-catalog.mjs leaves skills/index.js unchanged, uv run --group test pytest tests/test_skills_catalog.py -x passes all 50 tests, and the full suite passes (1420 passed, 23 skipped). All JSON examples in the plugin-spec section parse as valid JSON.

Finding resolved. The previously flagged inconsistency - the endpoint table labeling /api/automation/v1/preset/prompt unconditionally as "(recommended)" - is fixed in cae1a6d: the row now reads "Create one-off automations from a prompt", the review thread is resolved, and no "recommended" label remains anywhere in SKILL.md or README.md. This matches the scoped preference in #816 and the maintainer's 2026-10-27 comment. The endpoint table is now consistent with the creation rules, agent behavior rules, and the Choosing the Right Preset table. No remaining material findings; the documentation accurately reflects the plugin-spec contract (request fields, manifest schema, runner rules, profile behavior, HTTP 422 cases, update semantics) with credential-free source examples.

✅ APPROVED

@all-hands-bot
all-hands-bot requested a review from neubig October 27, 2026 16:10
@malhotra5
malhotra5 merged commit ba0eecf into main Oct 27, 2026
10 checks passed
@malhotra5
malhotra5 deleted the docs/automation-plugin-spec-details branch October 27, 2026 17:59
@openhands-release-bot openhands-release-bot Bot added the released: v0.37.0 Shipped in v0.37.0 label Oct 29, 2026
@openhands-release-bot

Copy link
Copy Markdown
Contributor

🚀 Released in v0.37.0.

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

Labels

released: v0.37.0 Shipped in v0.37.0 type: docs Documentation only changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: prefer plugin-spec for reusable and code-backed automations

3 participants