Skip to content
Back to skills

Migrate Agent Plugin

ASecurity

Migrate an existing Claude, Copilot, Codex, Cursor, Kiro, VS Code, or other client-specific agent plugin to the portable Agent Plugins v1 structure while preserving platform-specific hooks, agents, commands, LSP, UI, and marketplace behavior. Use when auditing, converting, or modernizing an agent plugin.

  • 1,389 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 20, 2026
ai-agents

Works with

  • cursor
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add awslabs/cli-agent-orchestrator --skill migrate-agent-plugin --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Migrate Agent Plugin?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Migrate Agent Plugin
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/awslabs-migrate-agent-plugin/badge)](https://www.skillsdirectory.com/skills/awslabs-migrate-agent-plugin)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: migrate-agent-plugin
description: Migrate an existing Claude, Copilot, Codex, Cursor, Kiro, VS Code, or other client-specific agent plugin to the portable Agent Plugins v1 structure while preserving platform-specific hooks, agents, commands, LSP, UI, and marketplace behavior. Use when auditing, converting, or modernizing an agent plugin.
license: MIT
metadata:
  version: "1.0.0"
---

# Migrate an Agent Plugin

Convert an existing plugin to the Agent Plugins v1 portable core without prematurely removing behavior required by its current clients.

## Source of truth

Use the current [Agent Plugins specification](https://agent-plugins.org/specification) as the normative source.

Read these references before editing:

- [Migration guide](references/migration-guide.md)
- [Client extensions](references/client-extensions.md)
- [Validation checklist](references/validation-checklist.md)

## Workflow

1. Inventory the current plugin before moving files.
   - Record every manifest, skill, prompt or command, agent, MCP server, hook, LSP server, UI resource, script, secret requirement, and marketplace entry.
   - Identify the clients that currently load each artifact and the install paths or discovery rules they require.
   - Run existing tests or capture a manual smoke-test baseline.

2. Classify each artifact.
   - Portable core: root `plugin.json`, Agent Skills in `skills/`, and MCP servers in root `mcp.json`.
   - Client extension: additional behavior loaded through a reverse-domain namespace owned and documented by a client.
   - Compatibility layer: legacy files or a generated client package retained until that client supports the portable or namespaced form.
   - Distribution metadata: marketplace catalogs, install policy, signing, and release configuration; these are outside the portable package format.

3. Add the portable manifest.
   - Create `plugin.json` at the plugin root.
   - Set `$schema` to `https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`.
   - Include `name` and only supported metadata fields.
   - Do not put component paths or client fields such as `hooks`, `agents`, `skills`, or `mcpServers` at the top level.

4. Normalize portable components.
   - Put each skill at `skills/<skill-name>/SKILL.md`; only immediate children of `skills/` are discovered.
   - Make each skill name match its parent directory and the Agent Skills naming rules.
   - If MCP is present, convert it to root `mcp.json`, declare the matching v1.0.0 schema, and give every server an explicit `stdio`, `streamable-http`, or `sse` type.
   - Use `${PLUGIN_ROOT}` for packaged read-only resources and `${PLUGIN_DATA}` for persistent writable state where the MCP schema permits expansion.

5. Preserve non-core behavior.
   - Use a client extension only when the target client publishes a reverse-domain namespace and its semantics.
   - If the client still requires a legacy layout, keep or generate a separate compatibility package. Treat the portable files as the source of truth and avoid manually maintaining divergent copies.
   - Do not invent a vendor namespace and assume an unrelated client will load it.

6. Validate and test incrementally.
   - Validate the portable manifest, every skill, optional MCP configuration, and package path containment.
   - Test each supported client independently, including hooks and other compatibility behavior.
   - Remove legacy artifacts only after the replacement passes the same behavior checks.

## Required migration report

Before finishing, report:

- The discovered source format and target clients.
- A mapping from every original artifact to portable core, extension, compatibility layer, distribution metadata, or removal.
- Files added, moved, generated, retained, and intentionally omitted.
- Validation and client smoke-test results.
- Remaining client-specific risks or manual steps.

Prefer an additive, reversible migration. Never claim that hooks, agents, commands, LSP servers, UI, or marketplace metadata became portable Agent Plugins v1 components.

Files in this skill

  • SKILL.md4 KB
  • references/client-extensions.md3 KB
  • references/migration-guide.md5.2 KB
  • references/validation-checklist.md2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.