Official agent skill

Security Review

by microsoft in microsoft/power-platform-skills

Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall…

OfficialMITAuto-check: notesSecurity

Install Security Review

skills CLI
$ npx skills add microsoft/power-platform-skills --skill security-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/power-platform-skills security-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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/security-review .claude/skills/security-review && rm -rf skills-src

Use ~/.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/

Facts

Skill name
security-review
GitHub stars
972
Token cost
~4.3k tokens
SKILL.md length
1,935 words
Files
2 (incl. references)
Skills in repo
87
Repo updated
First seen
Licence
MIT

At a glance

Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall…

  • Works in 6 steps: Prerequisites → Capture goal → Run the matching skills → …
  • The user wants a full security review
  • SKILL.md covers Workflow, Task Tracking, 1. Prerequisites and 2. Capture goal, plus 6 more sections
  • Calls node

What it does

Security Review is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall, authentication, and role-based permissions. Use when the user wants a full security review, a release-readiness check before publishing, a code-and-config check during development, live site monitoring, or asks open-ended questions like "review my site security", "is my site safe to ship", "do a security check"…

Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/flow.md`).

It sits in Security, covering Security review, Authorization and RBAC and Feature launches and release readiness. 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.

When your agent uses it

  • The user wants a full security review
  • A release-readiness check before publishing
  • A code-and-config check during development
  • Live site monitoring

Example prompts

  • “review my site security”
  • “is my site safe to ship”
  • “do a security check”
  • “/security-review”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Skill, Agent

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Prerequisites
  2. Capture goal
  3. Run the matching skills
  4. Build the consolidated report
  5. Present and follow-ups
  6. Clean up

What it can do on your machine

Read from SKILL.md and the folder at commit 0d044b8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Bash
    • Glob
    • Grep
    • AskUserQuestion
    • TaskCreate
    • TaskUpdate
    • TaskList
    • Skill

    …and 1 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Security Review loads about 4.3k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 149 tokens; SKILL.md has 1,935 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~149
When it runs · the whole SKILL.md, loaded when a task matches
~4.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.3k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Skill, Agent

Automated 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); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/power-platform-skills at commit 0d044b8, republished under its MIT licence (© microsoft). 1,935 words, ~4,327 tokens.

Download SKILL.mdSave it as .claude/skills/security-review/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
security-review
description
Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall, authentication, and role-based permissions. Use when the user wants a full security review, a release-readiness check before publishing, a code-and-config check during development, live site monitoring, or asks open-ended questions like "review my site security", "is my site safe to ship", "do a security check", "monitor my site" — even if they do not name the individual checks.
allowed-tools
Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Skill, Agent
user-invocable
true
argument-hint
[optional natural-language hint about the goal]
model
opus

Plugin check: Run node "${PLUGIN_ROOT}/scripts/check-version.js" — if it outputs a message, show it to the user before proceeding.

Review Security

Guide the user through a full security review of their Power Pages site. Runs the matching focused skills and assembles every finding into a single HTML report.

The skill never asks the user technical questions. The conversation stays in plain language.

Initial request: $ARGUMENTS

Workflow

The skill has six phases. Phases 2–5 each map to one conversation beat with the user; phases 1 and 6 are silent setup and cleanup. See references/flow.md for the rationale behind each beat.

PhaseWhat happensUser-facing beat
1 — PrerequisitesLocate project, set up working folders(silent setup)
2 — ScopeCapture goal — one question, three answers, plain languageAsk the goal
3 — SkillsRun the matching skills, surface progressScan in progress
4 — ReportBuild the consolidated report — totals + per-section findingsResults summary + Findings
5 — PresentPresent results, offer remediation follow-upsNext steps and guidance
6 — CleanupRemove temporary files(silent cleanup)

Task Tracking

Create tasks in three groups. Mark each in_progress when starting, completed when done.

Group 1 — create at the start of prerequisites:

Task subjectactiveForm
Check prerequisitesChecking prerequisites

Only this one task. Do not create any other tasks until prerequisites complete.

Group 2 — create after prerequisites complete:

Task subjectactiveForm
Capture goalCapturing goal

Group 3 — create after the goal is captured:

Task subjectactiveForm
Run skillsRunning checks
Build the reportBuilding the report
Present findingsPresenting findings
Clean upCleaning up

1. Prerequisites

1.1 Locate the project

Use Glob to find **/powerpages.config.json. If none is found, tell the user the site needs to be created first with /create-site, then stop.

For the monitor and release goals (any goal that delegates to scan-site or manage-firewall), also confirm that .powerpages-site/website.yml exists. If it does not, the site has not been deployed yet — tell the user (in plain language) the site needs to be deployed once before a live security review can run, recommend /deploy-site, then stop. Do not try to identify the site by name or URL — different sites can share the same name.

For the code-config goal, the deploy check is not required: source code, dependencies, authentication, web roles, and table permissions are read from local files alone.

1.2 Prepare a temporary working folder

Create a fresh working directory: <SYSTEM_TEMP>/security-review/. The folder holds JSON data files emitted by each skill in review mode. The folder is removed in the cleanup step.

If the folder already exists from a previous interrupted run, delete its contents (not the folder itself) before continuing.

1.3 Determine the docs output path

The final HTML always lives at <PROJECT_ROOT>/docs/security-review-<YYYY-MM-DD-HHMMSS>.html using the local timestamp at the start of the run (e.g. security-review-2026-05-14-053805.html). Always include the timestamp — do not use a bare security-review.html name. This keeps each run's report distinct.


2. Capture goal

2.1 Ask the goal
<!-- gate: security-review:2.1.goal | category=plan | cancel-leaves=nothing -->

🚦 Gate (plan · security-review:2.1.goal): Capture the review goal — choice branches into one of three sub-skill sets (code-config / release / monitor).

Trigger: Phase 2.1 entry, unless $ARGUMENTS already answers it. Why we ask: Auto-picking release runs ALL sub-skills (slow; possibly hits scan/firewall endpoints unnecessarily); auto-picking the wrong goal mis-scopes the review. Cancel leaves: Nothing — no sub-skills invoked yet.

Ask the user with a single AskUserQuestion call. If the user's initial request already answers it, skip and continue.

Question — What to review?

LabelDescription
Code & configCheck source code, dependencies, authentication, web roles, and table permissions. Works on local files only.
Release readinessFull review before publishing — checks everything. (Recommended)
Deployed siteCheck the live site for issues. Requires deployment.

Goal mapping (internal):

LabelGoal idSkills
Code & configcode-configscan-code, audit-permissions, setup-auth (read-only)
Release readinessreleasescan-code, scan-site, manage-headers, manage-firewall, audit-permissions, setup-auth (read-only)
Deployed sitemonitorscan-site
2.2 Capture the chosen skill set

Build a selectedSkills list based on the answer. Always include the read-only check of setup-auth for the code-config and release goals (it consists of reading existing YAML, not running the skill itself — see § 3.2 below). This is the Access & Data Security Validation component.


3. Run the matching skills

Spawn each selected skill as a background subagent via the Agent tool. Each subagent invokes its skill with the argument --review <SYSTEM_TEMP>/security-review/. Each skill handles its own authentication, error reporting, and progress.

3.1 Skill invocation via subagents

Skills run as parallel subagents using the Agent tool.

Default — launch every Agent-eligible skill in one parallel batch. Spawn all selected subagents in a single message with multiple Agent tool calls so they start concurrently. Each subagent runs with run_in_background: true. The Agent-eligible set is scan-code, scan-site, manage-headers, manage-firewall — these all support --review mode. scan-site (server-side scan, several minutes) and scan-code (local static analysis + dependency scan, up to minutes on large projects) are the slowest; the others typically finish within seconds.

Fallback — staggered launch. If the harness rejects a parallel-batch call for any reason, launch scan-code and scan-site first (the long-running ones) and then the remaining skills in a follow-up message. This is a tool-affordance fallback, not the preferred path.

Inline checks (run while subagents work). audit-permissions and setup-auth do not support --review and MUST NOT be launched via Agent — handle them inline as described in § 3.2.

Wait for all subagents to complete before proceeding to the report-building step.

3.1.1 Subagent prompt pattern

Each subagent receives a self-contained prompt that includes:

  1. The skill to invoke and the --review argument with the temp directory path
  2. The project root path so the skill can locate site files
  3. Any scope/depth parameters captured in the scope capture step

Example subagent call:

Agent({
  description: "Run scan-site",
  prompt: "Invoke the skill `scan-site` with argument `--review <SYSTEM_TEMP>/security-review/`. The Power Pages project root is <PROJECT_ROOT>. <any additional scope parameters>. Write the **transform script stdout verbatim** to <SYSTEM_TEMP>/security-review/scan-site.json. Do NOT synthesize, augment, or re-classify the findings. If the skill fails, write { \"status\": \"skipped\", \"reason\": \"<plain-language reason>\" } instead.",
  run_in_background: true
})

Verbatim rule: the subagent's output JSON must contain only the findings emitted by the skill's transform script. The orchestrator must not append findings, rewrite titles, add severity, or otherwise editorialize.

3.1.2 Expected output

After all subagents complete, expect JSON files at <SYSTEM_TEMP>/security-review/<skill-name>.json. Each file has the shape { status, findings, details? } produced by the skill's transform script:

text
<SYSTEM_TEMP>/security-review/
├── scan-code.json           (when invoked)
├── scan-site.json
├── manage-headers.json
├── manage-firewall.json
└── audit-permissions.json   (when invoked)

If a skill's subagent fails or is skipped, write a placeholder file with shape { "status": "skipped", "reason": "<plain-language reason>" }. The report-building step renders this as a single non-severity finding for that section (no severity field, to stay consistent with § 3.1.3).

3.1.3 Severity policy

Only findings that come from a tool that genuinely outputs severity may carry a severity field:

SectionSourceSeverity allowed?
scan-codeopengrep, trivyYes
scan-sitedeep-scan (ZAP)Yes
manage-headerstransform-headers.js (inventory)No
manage-firewalltransform-firewall.js (inventory)No
audit-permissionsWeb roles & table permissions auditNo
setup-authSite settings & auth-related source code auditNo

For inventory sections, do not add severity to findings — not even info. The subagent and orchestrator must write the transform output verbatim without inserting opinionated severity-bearing findings. The tag field is also off-limits as a severity workaround: it is reserved for short mechanical identifiers from tools (e.g. ZAP rule ids, CWE codes) and MUST NOT carry severity-equivalent strings (critical, warning, info), since the report template renders it as a visible chip next to the title.

Show full SKILL.md (791 more words)Show less
3.1.4 Annotations policy (plain-language text)

The transform scripts for manage-firewall and manage-headers produce only structured raw data — they do not hardcode plain-language descriptions. The subagent must generate an annotations JSON file and pass it to the transform via --annotations. The annotations supply:

  • Plain-language description per rule / per header
  • Optional suggested fix when a genuine issue is present

See each skill's SKILL.md § 5.1 for the annotation file shape. The agent's job is to write accurate, terse descriptions based on the raw data — not to invent severities or fabricate issues.

3.2 Skills without --review mode

audit-permissions and setup-auth do not support --review. Handle them inline (not as background subagents):

  • audit-permissions — invoke via the Skill tool (not Agent). The skill audits both web roles and table permissions — capture both in its output. After it completes, read its output and write <SYSTEM_TEMP>/security-review/audit-permissions.json in the unified { status, findings, details? } shape (mapping each audit finding into the common finding fields: id, title, location, details, fix).
  • setup-auth — do not invoke as a skill. Instead, read .powerpages-site/site-settings/ YAML files directly and check for:
    • identity provider configured? (Authentication/OpenIdConnect/*/Authority)
    • profile redirect disabled? (Authentication/Registration/ProfileRedirectEnabled = false)
    • cookie SameSite setting? (HTTP/SameSite/Default)

Write the resulting findings to <SYSTEM_TEMP>/security-review/setup-auth.json in the same format.

Field policy for both sections — these are inventory sections, not tool-output severities (see § 3.1.3):

  • Do NOT include a severity field on any finding.
  • Do NOT include a tag field. The tag field is reserved for short mechanical identifiers from tools (HTTP/X-Frame-Options, ZAP rule id 10055, CWE codes). It MUST NOT carry severity-equivalent strings (critical, warning, info) — the report template renders tag as a visible chip next to the title, so stashing LLM-judged severity there would visually re-introduce the severity bucketing this section explicitly forbids.
3.3 Status updates

Tell the user that all checks are running in parallel. As each subagent completes, give a short progress line (e.g., "Code check finished — 2 important issues, 4 smaller ones."). Avoid technical jargon. Do not narrate skill internal steps. Once all subagents have finished, confirm that all checks are complete before moving to the report-building step.


4. Build the consolidated report

4.1 Consolidate

Write up to four plain-language next-step recommendations as a JSON string array to <SYSTEM_TEMP>/security-review/next-steps.json. Compose a 2–4 sentence plain-language summary of the overall state.

bash
node "${PLUGIN_ROOT}/scripts/build-review-data.js" \
  --reportName "Security Review" \
  --inputDir "<SYSTEM_TEMP>/security-review/" \
  --siteName "<SITE_NAME>" \
  --goalLabel "<GOAL_LABEL>" \
  --scopeLabel "<SCOPE_LABEL>" \
  --summary "<SUMMARY_TEXT>" \
  --nextStepsFile "<SYSTEM_TEMP>/security-review/next-steps.json" \
  --output "<SYSTEM_TEMP>/security-review/security-review-data.json"
4.2 Render the master HTML
bash
node "${PLUGIN_ROOT}/scripts/render-review.js" \
  --output "<DOCS_PATH>" \
  --data "<SYSTEM_TEMP>/security-review/security-review-data.json"

5. Present and follow-ups

5.1 Open in browser

Open <DOCS_PATH> in the user's default browser.

5.2 Record skill usage

Reference: ${PLUGIN_ROOT}/references/skill-tracking-reference.md

Use --skillName "SecurityReview".

5.3 In-chat summary
<!-- gate: security-review:5.3.next-action | category=plan | cancel-leaves=nothing -->

🚦 Gate (plan · security-review:5.3.next-action): Post-report next-action prompt — "Walk me through the fixes / Re-run the review / Done for now". Drives whether remediation skills get invoked.

Trigger: Phase 5.1 wrote the HTML report. Why we ask: Auto-invoking remediation skills (/manage-headers, /manage-firewall, /audit-permissions) without the user reading the report; auto-re-running the review wastes time on a still-fresh result. Cancel leaves: Nothing — the HTML report at docs/security-review-<ts>.html is the final artifact regardless.

Show a short plain-language summary in the chat: counts of critical / warning / info findings, where the report lives. Then offer the next action with AskUserQuestion:

QuestionOptions
What would you like to do next?Walk me through the fixes; Re-run the review; Done for now

If the user picks "walk me through", group critical findings by section and offer the matching focused skill for each (/manage-headers, /manage-firewall, /audit-permissions, etc.).

If the user picks "re-run", invoke this skill again with the same goal and scope.


6. Clean up

Delete the entire <SYSTEM_TEMP>/security-review/ folder. The final HTML, located in docs/, must remain. Confirm to the user that temporary files have been removed.

If the cleanup fails (file lock, permission), warn the user and continue — the report is already written and the temp folder can be removed manually later.


Constraints

  • Plain language with users — never lead with technical terms.
  • Parallel subagent delegation — every selected skill runs as a parallel subagent via the Agent tool, launched in a single message. Perform the inline read-only setup-auth check while subagents work. Use the staggered launch (§ 3.1 fallback) only if the harness rejects the parallel-batch call.
  • Single consolidated HTML — never produce per-skill HTML reports during this run. Skills run in --review mode.
  • Same look and feel — rendering goes through the shared template at ${PLUGIN_ROOT}/scripts/lib/templates/security-review-report.html via scripts/render-review.js. Do not author per-skill HTML or duplicate the template; the generated report must match the existing audit-permissions report visually.
  • Cleanup is mandatory — the cleanup step is not optional. Failing to clean up is treated as a non-fatal warning, but the skill always tries.
  • Never run destructive sub-actions automatically — skills that propose changes (e.g., editing site settings, deleting WAF rules) must operate in read-only --review mode during this orchestration. Apply changes only via the explicit "walk me through fixes" follow-up, after the user picks an action.

References

  • references/flow.md — rationale and example phrasing for the conversation beats in phases 2–5

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in plugins/power-pages/skills/security-review of microsoft/power-platform-skills.

  • SKILL.md
  • references/flow.md

Open the folder on GitHubat commit 0d044b8

Compare with similar skills

Security Review 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.

Security Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Security Review this skillmicrosoft/power-platform-skills972—~4.3kAutomated safety check: NotesMIT
Absolute Auditmaddhruv/absolute2181 repos~1.2kAutomated safety check: PassMIT
Warden Security ReviewUsefulSoftwareCo/executor4.1k—~1.3kAutomated safety check: PassMIT
Codewhale Security Reviewcodewhale-hq/Codewhale41k—~844Automated safety check: PassMIT
Security Review Specwarpdotdev/oz-for-oss3131 repos~2.6kAutomated safety check: PassMIT
Memstack Security Rls Checkercwinvestments/memstack423—~2.9kAutomated safety check: NotesProprietary

Similar skills

  • Absolute Audit

    maddhruv/absolute

    Vulnerability and security scan (defensive, your own repo): dependency CVEs plus risky code patterns (secrets, injection, weak authz), severity x reachability triaged and remediated without…

    218 GitHub starsUsed in 1 repo~1.2k tokens
    SecurityAuto-check passed
  • Warden Security Review

    UsefulSoftwareCo/executor

    Run Warden security scans in this repo using Sentry's warden-skills.

    4.1k GitHub stars~1.3k tokensUpdated today
    SecurityAuto-check passed
  • Codewhale Security Review

    codewhale-hq/Codewhale

    Reviews a diff, module or network surface for exploitable defects, mapping trust boundaries and sinks, then reports only findings with a verified reachable path and a fix.

    41k GitHub stars~844 tokensUpdated today
    SecurityAuto-check passed
  • Security Review Spec

    warpdotdev/oz-for-oss

    Audit a product or tech spec pull request diff for high-level security concerns (threat surface, authentication and authorization model, trust boundaries, sensitive data handling, secrets and key…

    313 GitHub starsUsed in 1 repo~2.6k tokens
    SecurityAuto-check passed
  • Memstack Security Rls Checker

    cwinvestments/memstack

    A skill your agent uses when the user says 'check RLS', 'audit RLS', 'RLS policies', 'row level security', 'Supabase security audit', or needs to verify table-level access control.

    423 GitHub stars~2.9k tokensUpdated 11 days ago
    SecurityAuto-check: notes

More from microsoft/power-platform-skills

All 87 skills in this repo
  • Manage Firewall

    microsoft/power-platform-skills

    Official

    Inspects and configures the web application firewall (WAF) in front of a Power Pages production site.

    972 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes
  • Manage Headers

    microsoft/power-platform-skills

    Official

    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…

    972 GitHub stars~3k tokensUpdated today
    Auto-check: notes
  • Scan Code

    microsoft/power-platform-skills

    Official

    Scans a Power Pages site project for security issues in source code and dependencies.

    972 GitHub stars~3.4k tokensUpdated today
    Auto-check: notes
  • Scan Site

    microsoft/power-platform-skills

    Official

    Runs a security scan on a deployed Power Pages site, fetches the latest scan report, and produces a plain-language summary.

    972 GitHub stars~3.2k tokensUpdated today
    Auto-check: notes
  • Setup Datamodel

    microsoft/power-platform-skills

    Official

    Creates Dataverse tables, columns, and relationships for a Power Pages site based on a data model proposal.

    972 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Add Server Logic

    microsoft/power-platform-skills

    Official

    Creates, edits, and manages Power Pages Server Logic files — server-side JavaScript that runs securely on the Power Pages runtime.

    972 GitHub stars~18k tokensUpdated today
    Auto-check: notes

Categories

Questions about Security Review

What does Security Review do?

Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall…. Security Review is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Runs a guided, end-to-end security review of a Power Pages site and consolidates every finding into one HTML report covering source code and dependencies, the live site, browser headers, firewall, authentication, and role-based permissions.

When should I use Security Review?

Security Review fits situations like: the user wants a full security review; A release-readiness check before publishing; A code-and-config check during development; live site monitoring.

How do I install Security Review in Claude Code?

Run `npx skills add microsoft/power-platform-skills --skill security-review -a claude-code`. Or copy the skill folder (plugins/power-pages/skills/security-review in microsoft/power-platform-skills) into .claude/skills/security-review in your project. Claude Code loads it when a task matches its description.

How do I install Security Review in Codex?

Run `npx skills add microsoft/power-platform-skills --skill security-review -a codex`. Or copy the skill folder (plugins/power-pages/skills/security-review in microsoft/power-platform-skills) into .agents/skills/security-review in your project. Codex loads it when a task matches its description.

Can I use Security Review in Cursor, Gemini CLI or GitHub Copilot?

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 security-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/security-review, .gemini/skills/security-review, .github/skills/security-review and .opencode/skills/security-review in your project.

What does Security Review need to run?

Going by SKILL.md and its folder, Security Review needs the command-line tools its instructions call (node). Its frontmatter pre-approves these tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Skill, Agent.

Does Security Review access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Security Review safe to install?

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. Review the folder before installing.

What licence does Security Review use?

Security Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Security Review use?

About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 938 tokens, read only when the agent opens those files.

What are the alternatives to Security Review?

Skills that share tags, products or a category with Security Review: Absolute Audit (maddhruv/absolute, 218 stars), Warden Security Review (UsefulSoftwareCo/executor, 4.1k stars), Codewhale Security Review (codewhale-hq/Codewhale, 41k stars) and Security Review Spec (warpdotdev/oz-for-oss, 313 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Security Review?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/power-platform-skills, which has 972 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on October 7, 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.