migrate-bootstrap

Migrates traditional Power Pages sites from Bootstrap 3 to Bootstrap 5 using the PAC CLI engine.

808|167|Updated Jan 21, 2026
One-click install
npx skills add https://github.com/microsoft/power-platform-skills --skill migrate-bootstrap
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: migrate-bootstrap
Source: https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/migrate-bootstrap
Command: npx skills add https://github.com/microsoft/power-platform-skills --skill migrate-bootstrap

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Upgrading a legacy Power Pages portal from Bootstrap 3 to Bootstrap 5 involves hundreds of class renames, structural markup changes, and a server-side runtime flag flip that the CLI silently swallows. This Skill orchestrates the entire migration safely: downloading the site, running the pac pages bootstrap-migrate engine, applying the residual fixes the engine can only flag, uploading, and verifying the Bootstrap 5 runtime actually took effect.

Core Features & Use Cases

  • Engine-driven migration: Runs pac pages bootstrap-migrate to produce a non-destructive <folder>V5 copy with auto-applied class renames, swapped Bootstrap 5 CSS, and per-file diff reports.
  • AI-assisted residual fixes: Applies the hierarchy and CSS changes the engine only logs (grid containers, navbar structure, panel-to-card styling, pager, btn-block) with per-category consent, and flags Liquid-entangled markup instead of guessing.
  • Verified flag flip: Uploads via pac pages upload and confirms the server-side Bootstrap 5 flag by grepping pac-log.txt for BootstrapV5UploadPostProcessor, catching the common "no portal found" failure.
  • Use Case: You have a classic Power Pages portal built on Bootstrap 3 and want it on the Bootstrap 5 runtime. The Skill downloads the site, snapshots it in git, migrates it, fixes residual issues, uploads, and validates the live site.

Quick Start

Ask the assistant to migrate your traditional Power Pages site to Bootstrap 5, optionally providing the website name or a local downloaded site folder path.

Frequently Asked Questions about migrate-bootstrap

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a Power Pages site from Bootstrap 3 to Bootstrap 5?

Run the pac pages bootstrap-migrate command against a downloaded classic site folder. It creates a non-destructive V5 copy with auto-applied class renames, then you manually apply the hierarchy and CSS fixes it only flags, and upload with pac pages upload to enable the Bootstrap 5 runtime.

What changes does pac pages bootstrap-migrate apply automatically?

The engine auto-applies well-known class renames such as panel to card, navbar-toggle to navbar-toggler, pull-left to float-start, and data-toggle to data-bs-toggle across HTML, ASPX, ASCX, JS, and CSS files. It also swaps in the Bootstrap 5 stylesheet and adds the Site/BootstrapV5Enabled setting.

Does Bootstrap migration work for Power Pages code sites?

No, the migration engine only targets traditional Power Pages sites with Liquid web templates, website.yml, and sitesetting.yml. Code sites built with React, Vue, Angular, or Astro are never Bootstrap-3-based, so this migration does not apply to them.

Why is my site still on Bootstrap 3 after pac pages upload?

The upload post-processor silently skips the flag flip when no active portal exists for the website record. Grep pac-log.txt for BootstrapV5UploadPostProcessor; a 'no portal found' warning means you must activate the site first, then re-run the upload.

What manual fixes are needed after the Bootstrap migration engine runs?

Residual work includes moving rows inside containers, removing navbar-header wrappers, replacing contextual panel classes with inline styles or utilities, rebuilding pager and page-header markup, and wrapping btn-block buttons in d-grid. Liquid-entangled markup should be flagged for manual review rather than rewritten.