Migrate plugins to Open Plugins format - #188
Merged
Priyanshu Agrawal (priyanshu92) merged 11 commits intoJun 19, 2026
Merged
Conversation
Move marketplace and plugin manifests to the vendor-neutral Open Plugins paths, update plugin path references, and align MCP configuration with Open Plugins discovery while preserving Claude Code runtime compatibility for local launcher paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Priyanshu Agrawal (priyanshu92)
June 10, 2026 18:11
View session
Contributor
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository’s plugin marketplace and individual plugins from the legacy Claude-specific layout (e.g., .claude-plugin/marketplace.json, .claude-plugin/plugin.json) to the vendor-neutral Open Plugins layout (root marketplace.json, per-plugin .plugin/plugin.json), updating scripts, docs, eval fixtures, and MCP configuration accordingly.
Changes:
- Relocates marketplace + plugin manifests to Open Plugins paths and updates docs/skills/agents/evals to reference
${PLUGIN_ROOT}(keeping${CLAUDE_PLUGIN_ROOT}where required for Claude’s executable config expansion). - Updates validation and install scripts to support Open Plugins naming rules and new manifest locations (with legacy fallbacks).
- Updates MCP server config shape to
mcpServersand adjusts Playwright MCP launch args to usenpx -y.
Show a summary per file
| File | Description |
|---|---|
| shared/skills/report-issue/SKILL.template.md | Switches workflow link to ${PLUGIN_ROOT}. |
| shared/skills/report-issue/report-issue-workflow.md | Updates manifest auto-detection path to .plugin/plugin.json. |
| scripts/validate-plugin-names.js | Updates name validation to Open Plugins constraints and new manifest paths. |
| scripts/install.js | Adds marketplace manifest path fallbacks (local + GitHub) for new/legacy layouts. |
| scripts/ensure-skill-version-check.js | Updates required “Plugin check” line to reference ${PLUGIN_ROOT}. |
| README.md | Documents new plugin (mcp-apps) and Open Plugins layout (manual install list updated). |
| plugins/power-pages/skills/test-site/SKILL.md | Rewrites ${CLAUDE_PLUGIN_ROOT} references to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/setup-pipeline/SKILL.md | Rewrites ${CLAUDE_PLUGIN_ROOT} references to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/setup-datamodel/SKILL.md | Rewrites ${CLAUDE_PLUGIN_ROOT} references to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/setup-datamodel/references/odata-api-patterns.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/security-review/SKILL.md | Updates script/template paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/scan-site/SKILL.md | Updates script/template paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/scan-site/references/commands.md | Updates command examples to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/report-issue/SKILL.md | Updates plugin check + workflow link to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/plan-alm/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/manage-headers/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/manage-headers/references/commands.md | Updates command examples to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/manage-firewall/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/manage-firewall/references/commands.md | Updates command examples to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/integrate-webapi/SKILL.md | Updates script/agent reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/integrate-backend/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/import-solution/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/force-link-environment/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/export-solution/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/ensure-pipelines-host/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/diagnose-deployment/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/deploy-site/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/deploy-pipeline/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/create-webroles/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/create-site/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/configure-env-variables/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/audit-permissions/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-server-logic/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-server-logic/references/server-logic-plan-data-format.md | Updates render script path to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-seo/SKILL.md | Updates reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-sample-data/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-sample-data/references/odata-record-patterns.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/add-cloud-flow/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/skills/activate-site/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/scripts/tests/launch-playwright-mcp.test.js | Updates tests for npx -y @playwright/mcp@latest args. |
| plugins/power-pages/scripts/tests/check-version.test.js | Adds test coverage for legacy marketplace path fallback. |
| plugins/power-pages/scripts/launch-playwright-mcp.js | Adds -y to Playwright MCP launcher args. |
| plugins/power-pages/scripts/check-version.js | Adds Open Plugins + legacy manifest path fallbacks and safer git access. |
| plugins/power-pages/references/skill-tracking-reference.md | Updates tracking command path to ${PLUGIN_ROOT}. |
| plugins/power-pages/references/permissions-plan-data-format.md | Updates render script path to ${PLUGIN_ROOT}. |
| plugins/power-pages/references/odata-common.md | Updates shared script paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/references/dataverse-prerequisites.md | Updates shared script paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/references/alm-docs-grounding.md | Updates shared reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/PLUGIN_DEVELOPMENT_GUIDE.md | Updates shared script path example to ${PLUGIN_ROOT}. |
| plugins/power-pages/agents/webapi-settings-architect.md | Updates script paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/agents/webapi-integration.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/agents/table-permissions-architect.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/agents/data-model-architect.md | Updates script/template paths to ${PLUGIN_ROOT}. |
| plugins/power-pages/AGENTS.md | Updates documented layout + reference path conventions to ${PLUGIN_ROOT}. |
| plugins/power-pages/.plugin/plugin.json | Adds Open Plugins manifest for power-pages plugin. |
| plugins/power-pages/.mcp.json | Converts MCP config to mcpServers shape. |
| plugins/model-apps/skills/report-issue/SKILL.md | Updates workflow link to ${PLUGIN_ROOT}. |
| plugins/model-apps/skills/genpage/SKILL.md | Updates script/reference paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/skills/genpage/edit-flow.md | Updates reference paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/scripts/generate-page-manifest.js | Updates comment/documented command path to ${PLUGIN_ROOT}. |
| plugins/model-apps/references/supported-dependencies.md | Updates manifest bump path to .plugin/plugin.json. |
| plugins/model-apps/references/rules.md | Updates reference paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/references/plan-schema.md | Updates sample-path wording to ${PLUGIN_ROOT}. |
| plugins/model-apps/docs/architecture.md | Updates documented manifest location to .plugin/plugin.json. |
| plugins/model-apps/agents/genpage-planner.md | Updates reference/script paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/agents/genpage-page-builder.md | Updates reference/sample paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/agents/genpage-entity-builder.md | Updates reference/script paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/agents/genpage-edit-planner.md | Updates reference paths to ${PLUGIN_ROOT}. |
| plugins/model-apps/AGENTS.md | Updates documented manifest location to .plugin/plugin.json. |
| plugins/model-apps/.plugin/plugin.json | Minor description punctuation change (and Open Plugins path already in place). |
| plugins/model-apps/.mcp.json | Converts MCP config to mcpServers shape. |
| plugins/mcp-apps/skills/report-issue/SKILL.md | Updates workflow link to ${PLUGIN_ROOT}. |
| plugins/mcp-apps/.plugin/plugin.json | Adds Open Plugins manifest for mcp-apps plugin. |
| plugins/code-apps/skills/report-issue/SKILL.md | Updates workflow link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/list-connections/SKILL.md | Updates shared-instructions link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/deploy/SKILL.md | Updates shared-instructions link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/create-code-app/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-teams/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-sharepoint/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-sharepoint/references/sharepoint-reference.md | Updates connector-reference link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-onedrive/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-office365/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-mcscopilot/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-excel/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-dataverse/SKILL.md | Updates shared-instructions link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-datasource/SKILL.md | Updates shared-instructions link to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-connector/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/skills/add-azuredevops/SKILL.md | Updates shared references to ${PLUGIN_ROOT}. |
| plugins/code-apps/shared/version-check.md | Updates local+remote manifest paths to Open Plugins locations. |
| plugins/code-apps/agents/code-app-architect.md | Updates shared reference links to ${PLUGIN_ROOT}. |
| plugins/code-apps/AGENTS.md | Updates documented manifest location to .plugin/plugin.json. |
| plugins/code-apps/.plugin/plugin.json | Adds Open Plugins manifest for code-apps plugin (name: code-apps-preview). |
| plugins/canvas-apps/skills/report-issue/SKILL.md | Updates workflow link to ${PLUGIN_ROOT}. |
| plugins/canvas-apps/agents/canvas-screen-builder.md | Updates reference path to ${PLUGIN_ROOT}. |
| plugins/canvas-apps/agents/canvas-app-planner.md | Updates reference paths to ${PLUGIN_ROOT}. |
| plugins/canvas-apps/AGENTS.md | Updates documented manifest location to .plugin/plugin.json. |
| plugins/canvas-apps/.plugin/plugin.json | Adds Open Plugins manifest for canvas-apps plugin. |
| plugins/canvas-apps/.mcp.json | Converts MCP config to mcpServers shape. |
| marketplace.json | Moves to Open Plugins marketplace shape (pluginRoot + per-plugin metadata). |
| evals/power-pages/setup-auth/evals.json | Updates expected command paths to ${PLUGIN_ROOT}. |
| evals/power-pages/create-site/evals.json | Updates expected reference paths to ${PLUGIN_ROOT}. |
| evals/model-apps/genpage/lib/assertions-layer-1.js | Updates assertions to ${PLUGIN_ROOT} reference paths. |
| evals/model-apps/genpage/fixtures/7-job-candidates-new-entities/workflow-log.md | Updates fixture log to ${PLUGIN_ROOT} paths. |
| evals/model-apps/genpage/fixtures/4-case-wizard/workflow-log.md | Updates fixture log to ${PLUGIN_ROOT} paths. |
| evals/model-apps/genpage/fixtures/13-contact-localization/workflow-log.md | Updates fixture log to ${PLUGIN_ROOT} paths. |
| evals/model-apps/genpage/fixtures/1-account-card-gallery/workflow-log.md | Updates fixture log to ${PLUGIN_ROOT} paths. |
| evals/model-apps/genpage/evals.json | Updates expectations to ${PLUGIN_ROOT} reference paths. |
| AGENTS.md | Updates repo-level guidance to Open Plugins paths and ${PLUGIN_ROOT}. |
| .claude/settings.json | Removes MCP allow rules from repo-level Claude settings. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 108/112 changed files
- Comments generated: 2
Fix the manual install command for the code apps preview plugin and update the code apps version-check instructions to use the manifest plugin name consistently. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
T-Nid (tyaginidhi)
approved these changes
Jun 11, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Priyanshu Agrawal (priyanshu92)
June 11, 2026 11:00
View session
Contributor
There was a problem hiding this comment.
Copilot's findings
Comments suppressed due to low confidence (1)
marketplace.json:15
- The
power-pagesversion inmarketplace.json(2.0.0) does not match the plugin manifest version inplugins/power-pages/.plugin/plugin.json(2.1.0). This will cause hosts/CLIs to surface incorrect version information for that plugin (and may break any tooling that expects the marketplace version to reflect the plugin manifest).
- Files reviewed: 116/120 changed files
- Comments generated: 1
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add .claude-plugin compatibility manifests alongside the Open Plugins metadata so existing marketplace subscriptions can continue to resolve legacy manifest paths during update. Add validation to keep the compatibility metadata in sync. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Priyanshu Agrawal (priyanshu92)
June 15, 2026 05:35
View session
Replace duplicated per-plugin .claude-plugin manifests with symlinks to the Open Plugins manifests. Keep the root legacy marketplace as a real compatibility shim because legacy clients expect repository-root-relative plugin sources. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Make the root legacy marketplace manifest a symlink to marketplace.json by shaping the shared manifest to be compatible with both Open Plugins and legacy subscribers. Keep root-relative plugin sources and legacy category/tags fields while preserving Open Plugins metadata. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Priyanshu Agrawal (priyanshu92)
June 15, 2026 09:06
View session
Rename the plugin-name metadata workflow step to match Open Plugins validation and ensure the installer rejects unrelated local marketplace manifests before falling back to other sources. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve conflicts by preserving the Open Plugins compatibility symlinks, carrying forward the Power Pages 2.2.0 metadata, and adopting the latest plan-alm planner updates from main with PLUGIN_ROOT resource paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot started reviewing on behalf of
Priyanshu Agrawal (priyanshu92)
June 18, 2026 05:34
View session
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Akshay Maloo (akshaymaloo)
approved these changes
Jun 19, 2026
Priyanshu Agrawal (priyanshu92)
deleted the
priyanshu92/migrate-open-plugins
branch
June 19, 2026 05:12
T-Nid (tyaginidhi)
added a commit
that referenced
this pull request
Jun 19, 2026
#188 (Open Plugins migration) merged after #192 and rebuilt the manifests with `.plugin/plugin.json` = 2.2.0 — wiping #192's 2.3.0 bump — and made `.claude-plugin/plugin.json` a symlink to it. So main's effective version regressed to 2.2.0, and this PR's own bump (which targeted the now-symlinked old path) became a no-op. Set the canonical Open Plugins manifests to 2.4.0 (reflects #191+#192+#193; the 2.3.0 label for #192 is skipped but the end state is correct — #194 still lands 2.5.0): - plugins/power-pages/.plugin/plugin.json: 2.2.0 -> 2.4.0 - marketplace.json (power-pages entry): 2.2.0 -> 2.4.0 The legacy `.claude-plugin/{plugin,marketplace}.json` symlinks follow automatically. validate-legacy-compatibility.js: metadata in sync. 1229 tests pass, alm-lint 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This migrates the Power Platform plugin marketplace from Claude-specific manifest paths to the vendor-neutral Open Plugins layout so conformant plugin hosts can discover the marketplace and individual plugins consistently, while preserving compatibility for existing marketplace subscribers.
Summary
marketplace.jsonand plugin manifests to.plugin/plugin.json..claude-pluginpaths as compatibility symlinks so existing subscriptions can auto-update without reinstalling the marketplace or plugins.sourcepaths and preserving legacycategory/tagsfields alongside Open Plugins metadata.${PLUGIN_ROOT}where portable references are supported.mcpServersshape.${CLAUDE_PLUGIN_ROOT}for Claude Code MCP and hook command paths because Claude currently expands that variable for executable plugin configs under--plugin-dir.npx -yto the Playwright MCP launcher so startup does not pause on package install prompts..claude/settings.jsonbecause those settings are local to this repository, not distributed with plugins.Validation
node scripts/validate-legacy-compatibility.js.node scripts/validate-plugin-names.js.node scripts/validate-skill-descriptions.js.node scripts/ensure-skill-version-check.js --check.node --test plugins/power-pages/scripts/tests/.npx -y @playwright/mcp@latest --help.