Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions plugins/power-pages/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ skills/
assets/alm-plan-template.html ← HTML template with __PLACEHOLDER__ tokens for the ALM plan document
scripts/render-alm-plan.js ← Renders alm-plan-template.html from planData JSON (stages diagram, checklist, risks)
scripts/validate-plan-alm.js ← Validates docs/alm-plan.html exists and is > 500 bytes; gracefully exits 0 if not a plan-alm session
setup-prerequisites/
SKILL.md ← Machine setup skill — checks/installs Node, Git, .NET SDK, PAC CLI, Azure CLI, optional gh; signs the CLIs in
scripts/detect-prerequisites.js ← Read-only probe; emits JSON status + an `actions` list the workflow works through
scripts/install-prerequisite.js ← Installs one tool via winget (Windows) / Homebrew (macOS) / dotnet tool (PAC, all platforms)
```

## ALM intent routing — `plan-alm` is the front door
Expand Down
21 changes: 20 additions & 1 deletion plugins/power-pages/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,16 @@ This keeps hook behavior in one place and avoids relying on skill-frontmatter ho
| Prerequisite | Required for | Install |
|---|---|---|
| [Node.js](https://nodejs.org/) (LTS) | All skills | `winget install OpenJS.NodeJS.LTS` |
| [Git](https://git-scm.com/downloads) | Commits made by most skills | `winget install Git.Git` |
| [PAC CLI](https://learn.microsoft.com/power-platform/developer/cli/introduction) | Deploy, activate, data model | `dotnet tool install -g Microsoft.PowerApps.CLI.Tool` |
| [Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli) | Data model, sample data, activation | `winget install Microsoft.AzureCLI` |
| [GitHub CLI](https://github.com/cli/cli#installation) (optional) | `/report-issue` only | `winget install GitHub.cli` |

Installing from the marketplace copies the skill files and nothing else, so none of these tools come with it. Run [`/setup-prerequisites`](#setup-prerequisites) to check what is on your machine, install what is missing, and sign the two CLIs in.

## Skills

The plugin provides 31 skills that cover the full lifecycle of a Power Pages code site — scaffolding, deployment, data modeling, backend integration, authentication, ALM and CI/CD, security review, testing, and auditing. Each skill is invoked conversationally — just describe what you want to do.
The plugin provides 32 skills that cover the full lifecycle of a Power Pages code site — scaffolding, deployment, data modeling, backend integration, authentication, ALM and CI/CD, security review, testing, and auditing. Each skill is invoked conversationally — just describe what you want to do.

### Site scaffolding and deployment

Expand Down Expand Up @@ -390,6 +394,20 @@ Adds search engine optimization artifacts: `robots.txt`, `sitemap.xml`, and meta

### Support

#### `/setup-prerequisites`

> "Set up the plugin" · "Check my setup" · "pac is not recognized"

Gets a machine ready to use the plugin. Checks Node.js, Git, the .NET SDK, the Power Platform CLI, and the Azure CLI, plus the optional GitHub CLI, installs whatever is missing, and signs the CLIs in.

- Reports each tool's version and sign-in state before changing anything
- Asks before every install, one tool at a time, showing the exact command
- Installs via winget on Windows and Homebrew on macOS; hands back commands on Linux
- Offers a PAC CLI update when a newer version is published
- Warns when the Power Platform and Azure CLIs are signed into different tenants
- Offers the GitHub CLI as optional, so a machine without it still reads as ready
- A failed install never stops the run — everything outstanding lands in the final summary

#### `/report-issue`

> "Report a bug with the create-site skill"
Expand Down Expand Up @@ -441,6 +459,7 @@ The plugin ships with two MCP servers configured in `.mcp.json` — they start a
A common end-to-end workflow looks like this:

```
0. /setup-prerequisites → Install the CLIs and sign in (first run only)
1. /create-site → Scaffold + design + build pages
2. /deploy-site → Upload to Power Pages environment
3. /activate-site → Provision a public URL
Expand Down
12 changes: 12 additions & 0 deletions plugins/power-pages/references/approval-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -685,6 +685,17 @@ New skill (Power Pages source & dependency security scan). Runs local static ana

---

### 6.31 `setup-prerequisites` (2 gate IDs)

New skill (machine setup for marketplace installs). Checks Node.js, Git, the .NET SDK, the PAC CLI, and the Azure CLI, plus the optional GitHub CLI, installs what is missing, and signs the CLIs in. Both gates are `consent` — each one authorizes a change to the user's machine (a package install, or a credential prompt that writes a CLI profile) rather than a change to the project.

| ID | Kind | Category | Phase | Trigger / question | Cancel leaves |
|---|---|---|---|---|---|
| `setup-prerequisites:2.install-consent` | gate | consent | 2 | *"Install <tool> using <command>? / Skip"* — fires once per `install`/`update` action returned by `detect-prerequisites.js`. Skipped entirely when nothing is missing. | nothing — the tool stays as it was and the run continues with the next one |
| `setup-prerequisites:3.signin-consent` | gate | consent | 3 | *"Sign in to <CLI> now? / Skip"* — fires once per `signin` action (pac, az, and optionally gh), and again after an install that added a CLI. | nothing — no CLI profile is created; the outstanding sign-in is listed in the Phase 4 summary |

---

### Cross-plugin shared skills — out of catalog scope

`report-issue` — Its prompts are cross-plugin, not power-pages-specific, so they are not catalogued here. If the shared workflow is ever governed by per-plugin approval-gate linting, add a `report-issue:*` section to this catalog.
Expand Down Expand Up @@ -728,6 +739,7 @@ These need explicit confirmation from the reviewer before SKILL.md edits land. R
- §6.13–§6.24 added — full catalog rows for `create-site`, `deploy-site`, `add-server-logic`, `add-cloud-flow`, `setup-auth`, `integrate-webapi`, `setup-datamodel`, `add-sample-data`, `add-seo`, `create-webroles`, `audit-permissions`, `integrate-backend` (45 gates + 9 not-a-gates).
- §6.24a–§6.28 added — security skills introduced by PR #151 (`manage-firewall`, `manage-headers`, `scan-site`, `security-review`). The new skills use a runtime-loop prompt pattern; §6.24a documents the marker convention for that pattern. 3 gates + 2 not-a-gates.
- §6.30 added — `scan-code` (Power Pages source & dependency security scan). 3 `plan` gates (`scan-code:1.agent-review-fallback`, `scan-code:2.scope-choice`, `scan-code:2.depth-choice`); no not-a-gates.
- §6.31 added — `setup-prerequisites` (machine setup for marketplace installs). 2 `consent` gates (`setup-prerequisites:2.install-consent`, `setup-prerequisites:3.signin-consent`); no not-a-gates.
- Markers added to all non-ALM SKILL.md files (HTML comment + 🚦 block per gate; `not-a-gate` comment per data-gathering prompt or meta-mention).
- `scripts/lint-skills-alm.js` warn-only branch removed — all skills now hard-fail.
- `AGENTS.md` Key Patterns updated — Approval Gate convention applies plugin-wide; new skills must extend §6 in the same PR they introduce a prompt.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ If the tracking script creates or updates site setting YAML files, include those
| deploy-pipeline | DeployPipeline | Site/AI/Skills/DeployPipeline |
| ensure-pipelines-host | EnsurePipelinesHost | Site/AI/Skills/EnsurePipelinesHost |
| force-link-environment | ForceLinkEnvironment | Site/AI/Skills/ForceLinkEnvironment |
| setup-prerequisites | SetupPrerequisites | Site/AI/Skills/SetupPrerequisites |

## YAML Format

Expand Down
Loading
Loading