Kql Validator
Azure/azqr
Validate KQL (Kusto Query Language) files used in Azure Quick Review (azqr) against their recommendation definitions.
Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API.
$ npx skills add microsoft/power-platform-skills --skill activate-site -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/power-platform-skills activate-site --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .claude/skills/activate-site && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .claude/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-siteType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft/power-platform-skills --skill activate-site -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/power-platform-skills activate-site --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .agents/skills/activate-site && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .agents/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/power-platform-skills --skill activate-site -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/power-platform-skills activate-site --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .cursor/skills/activate-site && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .cursor/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft/power-platform-skills.git --path plugins/power-pages/skills/activate-site--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft/power-platform-skills --skill activate-site -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/power-platform-skills activate-site --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .gemini/skills/activate-site && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .gemini/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft/power-platform-skills activate-siteInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft/power-platform-skills --skill activate-site -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .github/skills/activate-site && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .github/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/power-platform-skills --skill activate-site -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/power-platform-skills activate-site --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/power-pages/skills/activate-site .opencode/skills/activate-site && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "activate-site" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-pages/skills/activate-site into .opencode/skills/activate-site/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "activate-site", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
activate-siteActivates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API.
Activate Site is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API. Use when the user wants to activate, provision, turn on, or enable a Power Pages website or portal.
Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `scripts/activate-site.js`, `scripts/generate-subdomain.js` and `scripts/validate-activation.js`).
It sits in Backend & APIs, covering REST APIs. It works with Power Automate and Microsoft Azure. The repository describes itself as: A plugin marketplace for GitHub Copilot and other AI agents that provides Power Platform development plugins, including reusable skills, agents, and commands for building and… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5ef4e4f. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteBashGlobGrepAskUserQuestionTaskCreateTaskUpdateTaskListFrom allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeazdotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
aka.msFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Activate Site loads about 5k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 2,333 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskListAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from microsoft/power-platform-skills at commit 5ef4e4f, republished under its MIT licence (© microsoft). 2,333 words, ~4,958 tokens.
.claude/skills/activate-site/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Plugin check: Run
node "${PLUGIN_ROOT}/scripts/check-version.js"— if it outputs a message, show it to the user before proceeding.
Provision a new Power Pages website in a Power Platform environment via the Power Platform REST API.
Prerequisite: This skill expects an existing Power Pages code site created via
/create-site. Run that skill first if the site does not exist yet.
pac auth who.environmentUrl, verify PAC and Azure CLI still target that environment and tenant before activation./create-site supplies a statusPath, update that file before and after activation prompts so the open template status page shows when user input is required.Initial request: $ARGUMENTS
Goal: Ensure PAC CLI is installed and authenticated, and verify the user is logged in to Azure CLI.
Run pac help to check if the PAC CLI is installed and available on the system PATH.
pac helpIf the command fails (command not found / not recognized):
Tell the user: "PAC CLI is not installed. You can install it by running:"
dotnet tool install --global Microsoft.PowerApps.CLI.ToolIf dotnet is also not available, direct the user to https://aka.ms/PowerPlatformCLI for full installation instructions.
After installation, verify by running pac help again.
Run pac auth who to check current authentication status.
pac auth whoIf authenticated: Extract these values from the output:
Environment ID:Organization ID: (this is the Dataverse org ID)Cloud: (e.g., Public, UsGov, UsGovHigh, UsGovDod, China)If not authenticated: Follow the same authentication flow as deploy-site — ask the user for their environment URL and run pac auth create --environment "<URL>".
Verify the user is logged in to Azure CLI:
az account showIf az is not installed or not logged in: Instruct the user to install Azure CLI and run az login --allow-no-subscriptions (this form works whether or not the user has an Azure subscription — the activation flow only needs an AAD token).
First inspect $ARGUMENTS for explicit imported-site identity from another skill:
siteName: <name>
websiteRecordId: <guid>
environmentUrl: <url>
statusPath: <path>When both values are present, set SITE_IDENTITY_SOURCE = "arguments" immediately and skip the local-project activation status check below. That check resolves identity from powerpages.config.json / .powerpages-site, which may be absent or unrelated when /create-site activates an imported template site. Continue to Phase 2 with the explicit identity.
When environmentUrl is present, store it as EXPECTED_ENVIRONMENT_URL and verify the current CLI context before Phase 2:
node "${PLUGIN_ROOT}/scripts/validate-cli-tenant-alignment.js" --envUrl "<EXPECTED_ENVIRONMENT_URL>"Continue only when the JSON result has ok: true. This check compares the active PAC environment URL with the caller's URL and verifies that PAC, the Azure account, and the Dataverse access token use the same tenant. If it fails, stop and ask the user to switch PAC or Azure CLI authentication. Do not activate the imported Website Record ID in a different environment.
When source is create-site template path and statusPath is present, store it as ACTIVATION_STATUS_PATH. This is the existing template status file created by /create-site; do not create a separate status page.
When SITE_IDENTITY_SOURCE !== "arguments", check whether the local project site is already activated by running the shared activation status script:
node "${PLUGIN_ROOT}/scripts/check-activation-status.js" --projectRoot "<PROJECT_ROOT>"Where <PROJECT_ROOT> is the directory containing powerpages.config.json or .powerpages-site folder.
Evaluate the JSON result:
activated is true: Inform the user their site is already activated at websiteUrl. Suggest next steps (Phase 5.3) and stop — do NOT proceed to Phase 2.activated is false: Proceed to Phase 2.error is present: Proceed to Phase 2 (do not block the activation flow).When SITE_IDENTITY_SOURCE = "arguments", skip this entire local-project status check and continue to Phase 2 with the supplied site identity.
Goal: Determine the site name, generate or accept a subdomain, and look up the website record ID needed for the activation API call.
If the skill was invoked by another skill with explicit imported-site identity in $ARGUMENTS, use it before local project discovery:
siteName: <name>
websiteRecordId: <guid>When both values are present:
siteName from the explicit value.websiteRecordId from the explicit value.SITE_IDENTITY_SOURCE = "arguments".powerpages.config.json lookup below and skip Phase 2.3 (pac pages list) because the caller already resolved the imported website record.If either explicit value is missing, continue with the existing local-project discovery flow.
Look for powerpages.config.json in the current directory or one level of subdirectories using Glob:
**/powerpages.config.jsonRead the file and extract the siteName field. If not found, ask the user for the site name using AskUserQuestion.
CRITICAL — This step is MANDATORY. You MUST ask the user about the subdomain before proceeding. Do NOT skip this step or auto-select a subdomain without user input.
Run the subdomain generator script to create a random suggestion:
node "${PLUGIN_ROOT}/skills/activate-site/scripts/generate-subdomain.js"This outputs a string like site-a3f2b1. Resolve the correct site URL domain from the Cloud value obtained in Phase 1.2:
| Cloud | Site URL Domain |
|---|---|
Public | powerappsportals.com |
UsGov | powerappsportals.us |
UsGovHigh | high.powerappsportals.us |
UsGovDod | appsplatform.us |
China | powerappsportals.cn |
<!-- gate: activate-site:2.2.subdomain | category=plan | cancel-leaves=nothing -->
🚦 Gate (plan · activate-site:2.2.subdomain): Confirm or override the generated subdomain. Subdomain is part of the resulting site URL; Cancel exits before any provisioning call.
Present the generated subdomain to the user and ask them to accept or enter their own using AskUserQuestion:
| Question | Header | Options |
|---|---|---|
Your site subdomain will be: <suggestion> (full URL: https://<suggestion>.<siteUrlDomain>). Would you like to use this subdomain or enter your own? | Subdomain | Use <suggestion> (Recommended), Enter a custom subdomain |
When ACTIVATION_STATUS_PATH is set, use Write to atomically overwrite it immediately before AskUserQuestion:
{
"state": "running",
"phase": "activation",
"message": "Waiting for subdomain selection",
"awaitingInput": true,
"inputPrompt": "Choose the site subdomain in the agent terminal."
}Immediately after the user responds, overwrite the file again so the toast disappears:
{
"state": "running",
"phase": "activation",
"message": "Preparing site activation",
"awaitingInput": false
}If the user cancels the prompt, clear awaitingInput before stopping. Apply the same status updates whenever a subdomain conflict loops back to this step.
If custom: The user provides their own subdomain via "Other" free text input. Validate it is lowercase, alphanumeric with hyphens only, and 3-50 characters.
Skip this step when SITE_IDENTITY_SOURCE = "arguments" and websiteRecordId is already set.
Run pac pages list to get the website record ID:
pac pages listParse the output to find the website record that matches the site name. Extract the Website Record ID (GUID). If pac pages list returns no results or the command is not available, set websiteRecordId to $null — the API will create a new website record.
Goal: Present all activation parameters to the user and get explicit approval before making the API call.
<!-- gate: activate-site:3.confirm | category=final | cancel-leaves=nothing -->
🚦 Gate (final · activate-site:3.confirm): Last-call before the activation API call. All activation parameters echoed back; Cancel exits cleanly before provisioning. Fires fresh on every skill invocation. When
plan-almorchestrates multi-stage activation (Staging + Production), it invokesactivate-siteonce per stage — each invocation hits this gate fresh with its ownsiteName,subdomain, and target env. The Staging activation consent does NOT cover Production. Each stage's site URL is a separate go-live decision (different audiences, different timing).
Present all activation parameters to the user using AskUserQuestion:
| Question | Header | Options |
|---|---|---|
Ready to activate your Power Pages site with these settings:\n\n- Site name: <siteName>\n- Subdomain: <subdomain>.powerappsportals.com\n- Environment ID: <environmentId>\n\nProceed with activation? | Activate | Yes, activate the site (Recommended), No, cancel |
If "No": Stop the skill and inform the user they can re-run it later.
If "Yes": Proceed to Phase 4.
Goal: POST to the Power Platform websites API to start provisioning, poll until completion, and report the result.
Run the shared activation script, passing all parameters gathered in Phases 1–2:
node "${PLUGIN_ROOT}/skills/activate-site/scripts/activate-site.js" --siteName "<siteName>" --subdomain "<subdomain>" --organizationId "<organizationId>" --environmentId "<environmentId>" --cloud "<cloud>" --websiteRecordId "<websiteRecordId>"Omit --websiteRecordId if it is null/empty.
Treat the script's JSON result as the authoritative activation result. Run it in the foreground with a Bash timeout of at least 360 seconds, and do not continue to Phase 5 until it exits. Do not launch a separate readiness poll.
Evaluate the JSON output:
status value | statusCode / errorCode | Action |
|---|---|---|
Succeeded | — | Provisioning complete. The result includes siteUrl. Proceed to Phase 5. |
Failed | 400 + SubdomainConflict (or error message mentions subdomain) | Subdomain already taken. Loop back to Phase 2 action 2.2 for a new subdomain, then re-run the script. |
Failed | 401 | Token expired. Ask the user to run az login --allow-no-subscriptions and retry. |
Failed | 403 | Insufficient permissions. Inform user they need the "Power Pages site creator" or "System Administrator" role. |
Failed | 409 | Website already exists. Inform user and suggest using /deploy-site instead. |
Failed | 429 or 5xx | Throttling or server error. Wait 5 seconds and re-run the script once. |
Failed | other | Present the error to the user and help troubleshoot. |
Running | — | Provisioning still in progress after 5 minutes. Inform the user it may take up to 15 minutes and suggest checking the Power Platform admin center. |
error field | — | Prerequisite failure (missing args, no token). Present the error and help troubleshoot. |
Do not start a second background poll against siteUrl after the activation script returns Succeeded. HTTP and DNS propagation can lag behind provisioning; report that caveat in Phase 5 instead of leaving a command that can trigger another assistant turn. If an extra reachability poll was started accidentally, stop it before presenting the activation summary.
siteUrl, Failed with error details, or Running with timeout advisory)Goal: Show the user the final site URL and suggest next steps.
Present the activation summary using the siteUrl from the script output:
Power Pages site activated successfully!
Site Name: <siteName>
Site URL: <siteUrl>
Environment: <environmentName> (<environmentId>)
Status: ProvisionedThe script already resolves the correct cloud-specific site URL domain, so use the siteUrl value directly.
docs/alm/last-activate.json MarkerFor consumers like the rendered ALM plan (Manual path's per-target Activate steps), write a structured marker that captures the post-activation state. Ensure the docs/alm/ directory exists first:
node -e "require('fs').mkdirSync('docs/alm',{recursive:true})"
# Determine the stage label this activation was for. The upstream ALM context
# (e.g. the user running this after import-solution) supplies it as "Staging"/
# "Production"; standalone invocations may leave it null — refreshActivateSite
# falls back to env-URL matching against planData.stages[].envUrl.
node -e "require('fs').writeFileSync('docs/alm/last-activate.json', JSON.stringify({
stageName: <stageNameOrNull>,
siteName: '<siteName>',
siteUrl: '<siteUrl>',
websiteRecordId: '<websiteRecordId>',
environmentUrl: '<envUrl>',
environmentId: '<environmentId>',
activatedAt: new Date().toISOString(),
status: 'Activated',
cloud: '<cloud>',
}, null, 2))"When the activation was an already-activated detection (Phase 1.4), still write the marker — the rendered plan should reflect "this stage is live at https://..." regardless of whether activation was performed this run or pre-existing. Set status: 'AlreadyActivated' and use the existing siteUrl from Phase 1.4's check.
Reference:
${PLUGIN_ROOT}/references/skill-tracking-reference.md
Follow the skill tracking instructions in the reference to record this skill's usage. Use --skillName "ActivateSite".
node "${PLUGIN_ROOT}/scripts/lib/refresh-alm-plan-data.js" \
--projectRoot "." \
--phase activate-site \
--stageName "{stageNameOrEmpty}" \
--render{stageNameOrEmpty} is the Manual-path target stage label (e.g. Staging, Production) the agent was activating — stated by the user, or inferred from the target env. Pass an empty string when unknown; refreshActivateSite falls back to URL-matching docs/alm/last-activate.json's environmentUrl against planData.stages[].envUrl, so standalone invocations still get captured.
The helper reads docs/alm/last-activate.json, writes a per-target entry into planData.activations[stageName] (siteUrl, status, activatedAt), and re-renders docs/alm-plan.html so the matching Activate site in {stageName} checklist step shows an ACTIVATED badge with the live site URL inline. When docs/.alm-plan-data.json is absent (standalone, not part of an ALM plan), the helper returns ok:false as a soft no-op.
Point the user at the next step (user-driven sequencing). The helper's stdout JSON includes nextStep: { name, skill: string | null } | null. When non-null, branch on skill: when skill is non-null, tell the user "Plan updated. Next in your plan: {nextStep.name} → run {nextStep.skill} when you're ready."; when skill is null (an internal step such as Finalize, no user command), name the step only — *"Plan updated. Next in your plan: {nextStep.name}."* — and never print run null. When null or the helper returned ok:false, say nothing about a next step. Never auto-invoke the next skill — the user drives execution.
After the summary, suggest:
/test-site — Verify the site loads correctly and API calls are working/power-pages:plan-alm — Set up ALM to promote this site to staging or production (creates a solution, configures a deployment pipeline or export/import strategy)/setup-datamodel/add-sample-dataUse TaskCreate at the start to track progress through each phase:
| Task | Description |
|---|---|
| Phase 1 | Verify Prerequisites — PAC CLI auth, Cloud detection, Azure CLI login, activation status check |
| Phase 2 | Gather Parameters — site name, subdomain, website record ID |
| Phase 3 | Confirm — user approval of activation parameters |
| Phase 4 | Activate & Poll — run activation script, handle result |
| Phase 5 | Present Summary — show site URL and next steps |
Mark each task complete with TaskUpdate as you finish each phase.
/deploy-site instead.Begin with Phase 1: Verify Prerequisites
© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts) in plugins/power-pages/skills/activate-site of microsoft/power-platform-skills.
Open the folder on GitHubat commit 5ef4e4f
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in microsoft/power-platform-skills, which our catalogue first saw on October 7, 2026.
Activate Site next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Activate Site this skillmicrosoft/power-platform-skills | 967 | 1 repos | ~5k | Automated safety check: Notes | MIT | |
| Kql ValidatorAzure/azqr | 794 | — | ~703 | Automated safety check: Pass | MIT | |
| Foundry Agent Syncgithub/awesome-copilot | 40k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Azure Carbon OptimizationMicrosoftDocs/Agent-Skills | 775 | — | ~837 | Automated safety check: Pass | CC-BY-4.0 | |
| Azure Update ManagerMicrosoftDocs/Agent-Skills | 775 | — | ~3k | Automated safety check: Pass | CC-BY-4.0 | |
| Azv Bicep Policy CheckAzure/AZVerify | 101 | — | ~4.3k | Automated safety check: Pass | MIT |
Azure/azqr
Validate KQL (Kusto Query Language) files used in Azure Quick Review (azqr) against their recommendation definitions.
github/awesome-copilot
Create and synchronize prompt-based AI agents directly within Azure AI Foundry via REST API, from a local JSON manifest.
MicrosoftDocs/Agent-Skills
Expert knowledge for Azure Carbon Optimization development including troubleshooting, security, and integrations & coding patterns.
MicrosoftDocs/Agent-Skills
Expert knowledge for Azure Update Manager development including troubleshooting, best practices, decision making, limits & quotas, security, configuration, integrations & coding patterns, and…
Azure/AZVerify
Check a Bicep template against the Azure Policy assignments in the target Azure environment to determine whether the resources would be compliant before deployment.
microsoft/skills
Azure Speech to Text REST API for short audio (Python). An agent skill from microsoft/skills.
microsoft/power-platform-skills
Inspects and configures the web application firewall (WAF) in front of a Power Pages production site.
microsoft/power-platform-skills
Inspects and configures the security headers a Power Pages site sends to browsers — Content Security Policy, frame and clickjacking protection, cross-origin sharing, cookie behavior, and related…
microsoft/power-platform-skills
Scans a Power Pages site project for security issues in source code and dependencies.
microsoft/power-platform-skills
Runs a security scan on a deployed Power Pages site, fetches the latest scan report, and produces a plain-language summary.
microsoft/power-platform-skills
Creates Dataverse tables, columns, and relationships for a Power Pages site based on a data model proposal.
microsoft/power-platform-skills
Creates, edits, and manages Power Pages Server Logic files — server-side JavaScript that runs securely on the Power Pages runtime.
Works with
Categories
Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API. Activate Site is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API.
Activate Site fits situations like: the user wants to activate; enable a Power Pages website.
Run `npx skills add microsoft/power-platform-skills --skill activate-site -a claude-code`. Or copy the skill folder (plugins/power-pages/skills/activate-site in microsoft/power-platform-skills) into .claude/skills/activate-site in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/power-platform-skills --skill activate-site -a codex`. Or copy the skill folder (plugins/power-pages/skills/activate-site in microsoft/power-platform-skills) into .agents/skills/activate-site in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/power-platform-skills --skill activate-site -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/activate-site, .gemini/skills/activate-site, .github/skills/activate-site and .opencode/skills/activate-site in your project.
Going by SKILL.md and its folder, Activate Site needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, az and dotnet). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList.
SKILL.md names 1 domain. As links in the text: aka.ms. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Activate Site is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Activate Site: Kql Validator (Azure/azqr, 794 stars), Foundry Agent Sync (github/awesome-copilot, 40k stars), Azure Carbon Optimization (MicrosoftDocs/Agent-Skills, 775 stars) and Azure Update Manager (MicrosoftDocs/Agent-Skills, 775 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/power-platform-skills, which has 967 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on October 6, 2026.
Source: microsoft/power-platform-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.