Individual skill
create-site
Creates a new Power Pages site from an SPA or non-SPA template, or scaffolds an SPA from scratch using React, Angular, Vue, or Astro. Guides requirements discovery, template selection, provisioning, design, validation, and deployment. Use when the user wants to create, build, use a template for, or scaffold a new Power Pages website or portal.
plugins/power-pages/skills/create-site/SKILL.md
Source commit 9a3cf2e61277cb3d96e103b0cdd73017829476fa
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,127
- Repository last updated
- Nov 8, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- claude-code-plugin Repository topic
- claude-code-skills Repository topic
- power-apps Repository topic
- power-pages Repository topic
- power-platform Repository topic
- code-apps Repository topic
- github-copilot-plugin Repository topic
- design Derived category
- devops Derived category
- engineering Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesSKILL.mdcore · 158,001 bytesassets/angular/angular.jsonasset · 1,630 bytesassets/angular/gitignoreasset · 484 bytesassets/angular/package.jsonruns · 743 bytesassets/angular/powerpages.config.jsonasset · 187 bytesassets/angular/public/.gitkeepasset · 0 bytesassets/angular/src/app/app.component.tsruns · 365 bytesassets/angular/src/app/app.config.tsruns · 319 bytesassets/angular/src/app/app.routes.tsruns · 278 bytesassets/angular/src/app/components/layout.component.tsruns · 167 bytesassets/angular/src/app/pages/about.component.tsruns · 151 bytesassets/angular/src/app/pages/home.component.tsruns · 24,621 bytesassets/angular/src/index.htmlasset · 703 bytesassets/angular/src/main.tsruns · 208 bytesassets/angular/src/styles.cssasset · 333 bytesassets/angular/tsconfig.app.jsonasset · 153 bytesassets/angular/tsconfig.jsonasset · 542 bytesassets/astro/astro.config.mjsruns · 139 bytesassets/astro/gitignoreasset · 358 bytesassets/astro/package.jsonruns · 285 bytesassets/astro/powerpages.config.jsonasset · 264 bytesassets/astro/public/.gitkeepasset · 0 bytesassets/astro/src/components/Footer.astroasset · 70 bytesassets/astro/src/components/Header.astroasset · 70 bytesassets/astro/src/layouts/Layout.astroasset · 946 bytesassets/astro/src/pages/about.astroasset · 87 bytesassets/astro/src/pages/index.astroasset · 23,110 bytesassets/astro/src/styles/theme.cssasset · 333 bytesassets/astro/tsconfig.jsonasset · 42 bytesassets/create-site-plan.htmlasset · 30,955 bytesassets/non-spa-creation-status-template.htmlasset · 35,271 bytesassets/react/gitignoreasset · 419 bytesassets/react/index.htmlasset · 759 bytesassets/react/package.jsonruns · 488 bytesassets/react/powerpages.config.jsonasset · 165 bytesassets/react/src/App.tsxruns · 362 bytesassets/react/src/components/Layout.tsxruns · 139 bytesassets/react/src/main.tsxruns · 325 bytesassets/react/src/pages/About.tsxruns · 50 bytesassets/react/src/pages/Home.tsxruns · 24,449 bytesassets/react/src/styles/theme.cssasset · 333 bytesassets/react/tsconfig.jsonasset · 509 bytesassets/react/vite.config.tsruns · 169 bytesassets/shared/power-pages-icon.pngasset · 22,740 bytesassets/template-browser.htmlasset · 6,666 bytesassets/vue/env.d.tsruns · 186 bytesassets/vue/gitignoreasset · 419 bytesassets/vue/index.htmlasset · 757 bytesassets/vue/package.jsonruns · 412 bytesassets/vue/powerpages.config.jsonasset · 165 bytesassets/vue/src/App.vueasset · 146 bytesassets/vue/src/components/Layout.vueasset · 34 bytesassets/vue/src/main.tsruns · 160 bytesassets/vue/src/pages/About.vueasset · 37 bytesassets/vue/src/pages/Home.vueasset · 23,746 bytesassets/vue/src/router/index.tsruns · 319 bytesassets/vue/src/styles/theme.cssasset · 333 bytesassets/vue/tsconfig.jsonasset · 560 bytesassets/vue/vite.config.tsruns · 163 bytesreferences/design-aesthetics.mddoc · 617 bytesscripts/list-site-templates.jsruns · 4,756 bytesscripts/render-non-spa-status.jsruns · 14,286 bytesscripts/resolve-non-spa-context.jsruns · 5,781 bytesscripts/validate-site.jsruns · 16,112 bytesworkflows/non-spa-site.mddoc · 37,147 bytes
Read excerpt
> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` — if it outputs a message, show it to the user before proceeding.
# Create Power Pages Site
Guide the user through creating a complete Power Pages site. Keep discovery and template browsing
path-agnostic, then route the selected SPA or non-SPA creation path to its own provisioning steps.
## Core Principles
- **Design for the first impression**: The site must make the user say "wow" the moment the Home page replaces the scaffold, and keep earning it on every page. Once the user answers the aesthetic, mood, and brand questions, make confident decisions about fonts, colors, layouts, imagery, and motion yourself - the design references (`design-aesthetics.md`, `page-blueprints.md`, `design-critique.md` under `${PLUGIN_ROOT}/references/`) define the bar, and your own taste fills the rest.
- **Use TaskCreate/TaskUpdate**: Track all progress throughout all phases — create the path-agnostic upfront tasks first, then append branch-specific tasks after the creation path is selected.
- **Scaffold early, design with intention**: Get the dev server running immediately after discovery so the user has something to look at. Then plan the design and features while the scaffold is live — apply the chosen aesthetic during implementation.
- **Live preview feedback loop**: The dev server MUST be running before any customization begins. Browse the site via Playwright (`browser_navigate` + `browser_snapshot`) to verify the structure of every significant change. Visual design review captures every page with one script call and opens the screenshots in one turn (see [5.7](#57-design-critique-pass)); use Playwright MCP screenshots only for brand extraction in Phase 3.
- **Keep the scaffold loader in sync with reality**: The scaffold loader polls `public/scaffold-status.json`. Update this file before every `AskUserQuestion` (to raise the "waiting for your input" banner so the user doesn't miss a terminal prompt) and before each implementation step in Phase 5 (so the progress-bar label matches what you're actually doing while the decorative spinner continues its default cycle). See [Live Preview Status Protocol](#live-preview-status-protocol).