Set up Power Platform Pipelines for automated Power Pages deployments.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "setup-pipeline" skill from askskill: 1. Download https://raw.githubusercontent.com/microsoft/power-platform-skills/main/plugins/power-pages/skills/setup-pipeline/SKILL.md 2. Save it as ~/.claude/skills/setup-pipeline/SKILL.md 3. Reload skills and tell me it's ready
Set up a Power Platform Pipeline for my Power Pages project to deploy automatically from test to production, and explain prerequisites, environment configuration, and release steps.
A setup plan for Power Platform Pipelines covering environments, configuration flow, connections, and deployment steps.
I want CI/CD for Power Pages using Microsoft's native Power Platform Pipelines. List the full deployment flow from development and validation to production release.
A native CI/CD workflow for Power Pages explaining each stage and the automated release approach.
Help me set up GitHub Actions or an Azure DevOps Pipeline for Power Pages; if not supported yet, provide the currently available Power Platform Pipelines alternative.
An explanation of GitHub Actions or Azure DevOps support status, plus actionable guidance for using Power Platform Pipelines instead.
Plugin check: Run
node "${CLAUDE_PLUGIN_ROOT}/scripts/check-version.js"— if it outputs a message, show it to the user before proceeding.
Sets up a Power Platform Pipeline for automated Power Pages solution deployments. Creates the pipeline configuration directly in Dataverse using the PP Pipelines OData API — no YAML files, no external CI/CD infrastructure needed.
GitHub Actions and Azure DevOps Pipeline options are shown in the platform menu as coming soon.
Refer to
${CLAUDE_PLUGIN_ROOT}/references/cicd-pipeline-patterns.mdfor all HAR-confirmed API patterns used in this skill.
powerpages.config.json exists in the project root.solution-manifest.json exists (solution must be created first via setup-solution)az account show succeeds)pac env who succeeds)
plan-almis the front door. When the user expresses an ALM intent (promote / ship / deploy / set up CI-CD / move to staging / push to prod), the orchestrator (/power-pages:plan-alm) should run first. This Phase 0 enforces that and is meant to fail closed when there's no plan, not to be a one-time check the user can dismiss forever.
Skip rule. If this skill was invoked as part of an active plan-alm orchestration, skip Phase 0 entirely and proceed to Phase 1. The gate helper exposes this via its inExecution block — pass through silently to Phase 1 when:
inExecution.status === "active"
The helper computes this from docs/.alm-plan-data.json — PLAN_STATUS === "In Execution" AND LAST_INVOCATION_AT within the last 60 minutes. check-alm-plan.js refreshes LAST_INVOCATION_AT automatically on every invocation that finds the plan in execution, so each in-chain skill keeps the chain alive for the next one — even multi-hour deploys (deploy-pipeline alone can take 60 min per stage) survive the window without the chain incorrectly de-classifying. Stalled chains (no heartbeat for > 60 min) reclassify as stale-heartbeat and Phase 0 gates fire normally so an abandoned plan doesn't silently bypass user confirmation.
When inExecution.status is anything other than "active" ("not-running", "stale-heartbeat", "no-plan"), run the Phase 0 gate flow below. Branch on the remaining helper fields:
Step 1 — Run the gate helper.
node "${CLAUDE_PLUGIN_ROOT}/scripts/lib/check-alm-plan.js" \
--projectRoot "." \
--envUrl "{devEnvUrl}" \
--token "{token}" \
--solutionId "{solutionId from .solution-manifest.json, if available}"
The helper returns JSON with { exists, stale, staleness: { reason, detail }, generatedAt, planStatus, ... }. The freshness check requires env credentials + solutionId; without those the helper does an existence-only check.
Step 2 — Branch on the result.
| Result | Behavior |
|---|---|
deferred: true | The user has explicitly deferred ALM for this project (.alm-deferred marker present). Pass through silently to Phase 1 — do not nag. |
exists: false | The user hasn't run plan-alm yet. See Step 3. |
exists: true, stale: false | Plan is current. Pass through silently to Phase 1. |
exists: true, stale: true (reason: solution-modified) | The solution changed after the plan was generated. See Step 4. |
Step 3 — No plan. Tell the user:
<!-- gate: setup-pipeline:0.no-plan | category=intent | cancel-leaves=nothing -->"No ALM plan exists for this project.
/power-pages:plan-almbuilds one — it detects the project state, asks about your promotion strategy (PP Pipelines vs Manual export/import), and orchestrates the right skills (including this one) in the right order. Want me to run plan-alm now?"
…
Run an end-to-end Power Pages security review with a consolidated HTML report.
Test deployed Power Pages sites with browsing, crawling, and API verification.
Add a data source or connector to a Power Apps code app.
Add Azure DevOps to Power Apps for work items, bugs, pipelines, and API calls.
Add the Excel Online connector to read and write workbook data.
Review and fix Power Pages security headers, CSP, CORS, cookies, and embedding settings.
Trigger and monitor Power Platform pipeline deployments for Power Pages solutions.
Integrate Power Automate cloud flows into Power Pages with generated metadata and code.
Check and prepare a usable Power Platform Pipelines host before pipeline runs.
Create and execute a reviewable ALM plan for Power Pages deployments.
Build and deploy an existing Power Pages code site to a target environment.
Create a publisher and solution, then package Power Pages components for ALM.