Agent skills and plugins for Power Platform development, aligned for Equinor internal use.
This repository is a plugin marketplace containing agent plugins for Power Platform services. Each plugin provides skills, agents, and commands to help developers build on the Power Platform.
Primary platform: GitHub Copilot (VS Code) via the .github/ convention.
Also supported: Claude Code via the plugin marketplace system.
This repository is a fork of microsoft/power-platform-skills, maintained for Equinor internal use. It is not a neutral mirror — it applies Equinor governance, security standards, and the shared practices of the Equinor IT professional network before any plugin is piloted or published internally.
Tip
View the full diff on GitHub → — includes all changes: plugins, governance docs, dev container, and repo tooling. To see only plugin changes locally, run:
git diff upstream/main -- plugins/The upstream Microsoft plugins are designed for general Power Platform use across any organisation. Equinor has additional obligations that the upstream does not satisfy by default:
| Concern | Equinor requirement |
|---|---|
| Governance gate | Every plugin must pass a review against docs/equinor-alignment/baseline.md before internal publication |
| Tech Radar | Hold items require an approved deviation permit; Assess items require Architecture Contract dialogue |
| Design standards | Generated UI must target Equinor Design System components, tokens, and accessibility guidance |
| MCP security | MCP-dependent workflows must be explicitly evaluated, documented, and opted into — they are not enabled by default |
| Production safety | Skills must not interact with production systems during development by default |
| Secret hygiene | No credentials, tokens, connection IDs, or environment URLs may be committed to this repository |
| Discovery | Internal plugins are published through Varia and TechDocs, not the public Microsoft marketplace |
The table below summarises every category of change. The review records in docs/equinor-alignment/reviews/ contain the detailed per-plugin assessment.
| Category | What was added or changed | Why |
|---|---|---|
.github/skills/ and .github/agents/ |
equinor-plugin-reviewer agent + review-plugin and sync-upstream skills |
Automates governance review and upstream synchronisation using the Equinor checklist |
docs/equinor-alignment/ |
Baseline, checklist, JSON schema, and per-plugin review records | Provides the canonical, reviewable source of truth for internal publication decisions |
.github/skills/ |
review-plugin, sync-upstream, docs-conventions, docs-review, copilot-cost, update-copilot-pricing |
Installs Equinor-specific agent skills into every project that uses this fork |
.github/copilot-instructions.md |
Project-level Copilot instructions | Grounds Copilot in Equinor authority hierarchy (EMS → varia.equinor.com → Tech Radar → Microsoft docs) |
.github/instructions/ |
Markdown, documentation, and alignment instruction files | Enforces shared Equinor documentation conventions across all AI-assisted authoring |
.devcontainer/ |
Dev container with Equinor CA certificates and standard tooling | Ensures consistent, trusted development environments inside Equinor's network |
plugins/code-apps/ |
EDS integration guidance, mandatory deploy confirmation, updated development standards | Aligns generated code apps with Equinor Design System and prevents accidental production deploys |
scripts/install.js |
Extended to support GitHub Copilot project-scoped installation and Equinor fork URL | Lets teams install into .github/ for shared team use, not only user-level Claude Code install |
scripts/validate-plugin-reviews.js |
New script | CI-validates review records against the JSON schema before any plugin state change merges |
SECURITY.md |
Updated to Equinor responsible disclosure contacts | Replaces Microsoft-only disclosure path with Equinor contacts |
CODE_OF_CONDUCT.md, SUPPORT.md |
Removed | Superseded by Equinor's own conduct and support processes |
Current review status for each plugin. A review record reaching controlled-pilot or higher means the Equinor alignment team has found sufficient evidence to recommend piloting — it is not a compliance certificate or a guarantee of correctness.
| Plugin | Status | Review record |
|---|---|---|
code-apps-preview |
defer | reviews/code-apps-preview.json |
power-pages |
defer | reviews/power-pages.json |
model-apps |
defer | reviews/model-apps.json |
canvas-apps |
defer | reviews/canvas-apps.json |
mcp-apps |
defer | reviews/mcp-apps.json |
defer means the plugin has an initial review record but lacks sufficient evidence (owner confirmation, DLP mapping, Tech Radar positioning, or EDS compliance) to recommend piloting. Plugins with a defer status warrant extra care — review the record and understand what is still outstanding before adopting them in your team's workflow.
Regardless of review status, AI agents are not a substitute for human judgement. No review process can guarantee that a plugin's output will be correct, compliant, or appropriate for your context. Alignment with Equinor standards is the goal of the review process, and we believe it helps — but responsibility for how these plugins are used always rests with the people using them. Practice responsible AI use: understand what a plugin does before running it, verify generated artefacts before deploying them, and raise concerns through the support channels listed in each review record.
For team use, install skills and agents into your project's .github/ directory so all contributors benefit:
# Install a specific plugin (recommended)
node scripts/install.js --scope project --plugin code-apps-preview
# Install multiple plugins
node scripts/install.js --scope project --plugin power-pages,code-apps-previewThis copies agent definitions into .github/agents/, instructions into .github/instructions/, and skills into .github/skills/, following the GitHub Copilot customization convention. Commit these files to share with your team.
Note
There is no automatic update for project-scoped installs. To get the latest plugin content, re-run the installer and commit the updated files.
Or run without cloning:
curl -fsSL https://raw.githubusercontent.com/equinor/power-platform-skills/main/scripts/install.js | node - --scope project --plugin code-apps-previewAvailable plugins: power-pages, model-apps, mcp-apps, canvas-apps, code-apps-preview
For Claude Code users, the installer registers the marketplace and installs plugins at user level:
node scripts/install.jsOr run directly without cloning:
Windows (PowerShell):
iwr https://raw.githubusercontent.com/equinor/power-platform-skills/main/scripts/install.js -OutFile install.js; node install.js; del install.jsmacOS/Linux:
curl -fsSL https://raw.githubusercontent.com/equinor/power-platform-skills/main/scripts/install.js | nodeThe installer automatically:
- Detects available tools (Claude Code, GitHub Copilot CLI)
- Installs
pacCLI if not already installed - Registers the plugin marketplace and installs all listed plugins
- Enables auto-update so plugins stay current without manual steps
Inside a Claude Code session:
-
Add the marketplace
/plugin marketplace add equinor/power-platform-skills
-
Install the desired plugin
/plugin install power-pages@power-platform-skills /plugin install model-apps@power-platform-skills /plugin install code-apps@power-platform-skills /plugin install canvas-apps@power-platform-skills
| Scope | Platform | Location |
|---|---|---|
project |
GitHub Copilot (VS Code) | .github/agents/, .github/instructions/, .github/skills/ |
user (default) |
Claude Code | ~/.claude/plugins/ |
The marketplace registry (Claude Code) is stored at ~/.claude/plugins/known_marketplaces.json.
GitHub Copilot (project-scoped): Delete the installed files from .github/agents/, .github/instructions/, and .github/skills/.
Claude Code (user-scoped):
# Inside a Claude Code session
/plugin uninstall power-pages
/plugin uninstall model-apps
/plugin uninstall code-apps
/plugin uninstall canvas-apps
/plugin marketplace remove power-platform-skillsPower Pages (plugins/power-pages)
Create and deploy Power Pages sites using modern development approaches.
Currently supported: Code Sites (SPAs) with React, Angular, Vue, or Astro
Model Apps (plugins/model-apps)
Build and deploy Power Apps generative pages for model-driven apps.
Stack: React + TypeScript + Fluent, deployed via PAC CLI
Code Apps (plugins/code-apps)
Build and deploy Power Apps code apps connected to Power Platform via connectors.
Stack: React + Vite + TypeScript, deployed via PAC CLI
Canvas Apps (plugins/canvas-apps)
Author Power Apps Canvas Apps using the Canvas Authoring MCP server.
Stack: PA YAML (.pa.yaml) authored via CanvasAuthoringMcpServer, requires .NET 10 SDK
To develop and test plugins locally, follow these steps:
-
Clone this repository
-
Launch Claude Code with plugin path:
claude --plugin-dir /path/to/power-platform-skills/plugins/power-pages claude --plugin-dir /path/to/power-platform-skills/plugins/model-apps claude --plugin-dir /path/to/power-platform-skills/plugins/code-apps claude --plugin-dir /path/to/power-platform-skills/plugins/canvas-apps
Plugins in this repo may invoke multiple tools (file edits, shell commands, MCP servers) during a session, which can result in frequent approval prompts. Use the options below to reduce or eliminate these interruptions.
Warning
Auto-approval options give the agent the same access you have on your machine. Only use these in trusted or sandboxed environments.
Set the acceptEdits mode to auto-approve file edits while still prompting for shell commands:
Press Shift+Tab during a session to cycle to auto-accept mode, or launch with:
claude --dangerously-skip-permissionsSee the Claude Code permissions docs for the full reference.
Pre-approve only the tools your workflow needs:
copilot --allow-tool 'write' --allow-tool 'shell(npm run build)' --allow-tool 'shell(pac *)'copilot --allow-all-toolsTo allow everything except dangerous commands:
copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)'See the Copilot CLI docs for the full reference.
power-platform-skills/
├── .claude-plugin/
│ └── marketplace.json # Marketplace manifest (lists all plugins)
├── .claude/
│ └── settings.json # Auto-allowed tools (pac, node, dotnet, etc.)
├── plugins/
│ ├── power-pages/ # Power Pages plugin
│ │ ├── .claude-plugin/
│ │ │ └── plugin.json
│ │ ├── commands/
│ │ ├── shared/
│ │ └── skills/
│ ├── model-apps/ # Model Apps plugin
│ | ├── .claude-plugin/
│ │ └── plugin.json
│ | ├── commands/
│ | ├── skills/
│ | ├── shared/ # Shared references + samples
│ | └── github/ # GitHub Copilot instructions
│ ├── code-apps/ # Code Apps plugin
│ │ ├── .claude-plugin/
│ │ │ └── plugin.json
│ │ ├── agents/
│ │ ├── skills/
│ │ └── shared/ # Shared instructions + references
│ └── canvas-apps/ # Canvas Apps plugin
│ ├── .claude-plugin/
│ │ └── plugin.json
│ ├── references/ # Technical + design guides
│ └── skills/
├── AGENTS.md # Development guidelines
└── README.md
- Equinor Alignment Baseline
- Power Pages Code Sites
- Power Pages REST API
- Generative Pages with External Tools
- Power Apps Code Apps
- PAC CLI Reference
See CONTRIBUTING.md for contribution guide.
The code in this repo is licensed under the MIT license.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.