Agent skill · Audited from source
Manage Headers
skill · microsoft/power-platform-skillsMIT licenceAudited 18 Oct 2026 · source 8075ef5705c5
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 8075ef5705c5 and observed filesystem access and no hard-coded secrets. What it does: 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 site settings.…
Cite
Cite this page
ModelsAtlas. “Manage Headers (microsoft/power-platform-skills)”. Retrieved 18 Oct 2026. https://modelsatlas.com/skills/microsoft/manage-headers
Trust audit
Audit 0.4.1 · source read 18 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemDeclared1 observation
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 1 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 2 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (3)
LOWFilesystem / pathfs.traversal · scripts/transform-headers.js:5
const { loadSiteSettings } = require('../../../scripts/lib/powerpages-config');- Why
- No further detail recorded for this rule.
- Fix
- —
INFOPrompt injectionprompt.credential_read · references/headers-reference.md:44
- `HTTP/Access-Control-Allow-Credentials`
- Why
- asks the agent to read credentials
- Fix
- —
INFOPrompt injectionprompt.credential_read · references/headers-reference.md:110
- **Omit `HTTP/Access-Control-Allow-Credentials` to disable.** The runtime emits whatever value is set — writing `false` produces a confusing header with no effect.
- Why
- asks the agent to read credentials
- Fix
- —
Audit 0.4.1 · source sha 8075ef5705c5 · 18 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishermicrosoft GitHub organizationOwner of the repository this skill is read from
- Source foldermicrosoft/power-platform-skills/plugins/power-pages/skills/manage-headersThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict8075ef5705c5A new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: 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 site settings.…
---
name: manage-headers
description: >-
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 site settings.
Identifies gaps and walks the user through fixes. Use when the user
wants to review headers, fix CSP errors, allow embedding in another site,
control cross-origin access, harden cookie settings, or asks "are my
browser settings safe?", "fix my CSP", "set up CORS" — even if they only
mention a specific header name without saying "security headers".
user-invocable: true
argument-hint: "[optional: --review <out-dir>]"
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, TaskCreate, TaskUpdate, TaskList
model: opus
---
> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` — if it outputs a message, show it to the user before proceeding.
# Manage Headers
Inspect and configure the HTTP security headers for a Power Pages site. Headers are configured as `HTTP/*` site settings stored in `.powerpages-site/site-settings/` YAML files.
**Initial request:** $ARGUMENTS
## Gotchas
- **Site settings are YAML files.** Each header is a separate `.yml` file in `.powerpages-site/site-settings/`. The file name uses `-` instead of `/` (e.g., `HTTP/X-Frame-Options` → `http-x-frame-options.sitesetting.yml`).
- **Absent = no header.** When a site setting is absent, the runtime omits that header entirely (except CSP on new sites — see headers-reference.md).
- **HSTS and Cache-Control are platform-managed.** Do not try to set `HTTP/Strict-Transport-Security` — the runtime does not recognize it and the setting has no effect.
- **Maker-mode bypasses headers.** Requests from Power Pages Studio skip all `HTTP/*` header emission. Verify headers in an incognito tab, not the studio preview.
- **CSP is pass-through.** The runtime emits the value verbatim — it does NOT merge runtime sources automatically. The CSP MUST include Power Pages runtime hosts or the site breaks.
- **CSP nonce.** When `script-src` contains `'nonce'`, the runtime replaces it per-request with `'nonce-<random>'` and auto-hashes inline event handlers. Scripts created dynamically via `document.createElement` do NOT receive the nonce.
- **`SameSite=None` requires HTTPS.** The runtime sets `Secure` on every cookie over HTTPS automatically.
- **CORS `*` is auto-specialized.** The runtime replaces `*` per-request with the specific requesting Origin — the browser sees a single-origin header, not a wildcard.
## Workflow
1. **Prerequisites** — Locate project, confirm site-settings directory exists
2. **Inspect current headers** — Read site-setting YAML files, identify configured and missing headers
3. **Assess and plan** — Identify gaps, present recommendations
4. **Apply changes** — Edit existing settings or create new ones
5. **Summarize** — Present results, record usage, offer follow-ups
## Task Tracking
Create tasks in four groups. Mark each `in_progress` when starting, `completed` when done.
| Group | When to create | Tasks |
|-------|----------------|-------|
| 1 | At start | Check prerequisites |
| 2 | After prerequisites pass | Inspect current headers · Assess and plan (skip "Assess and plan" in review mode) |
| 3 | After user approves changes | Apply changes (skip in review mode OR if no changes were accepted) |
| 4 | After apply or assess | Summarize (always) |
---
## 1. Prerequisites
### 1.1 Locate the project, detect review mode
Use `Glob` to find `**/powerpages.config.json`. If `$ARGUMENTS` contains `--review <out-dir>`, remember the output directory — Steps 3–4 are skipped and Step 5 writes JSON only.
### 1.2 Verify site-settings directory
Check that `.powerpages-site/site-settings/` exists. If not, the site has not been deployed yet — tell the user and recommend `/deploy-site`. Stop.
---
## 2. Inspect current headers
Use `Glob` to find all `*.yml` files in `.powerpages-site/site-settings/`. Use `Read` to read each file and extract the `name` and `value` fields. Identify all settings with an `HTTP/` prefix — these are the configured headers.
Compare against the recognized header catalogue in `references/headers-reference.md`. For each header in the catalogue:
- **Present** — record its current value.
- **Missing** — record it as absent and note the recommended value from headers-reference.md.
For CSP specifically: if `HTTP/Content-Security-Policy` is present, scan the project's source files using `Glob` + `Read` to find external URLs and check whether they are covered by the policy. Identify the site's cloud environment via `pac auth who` to determine the correct Power Pages runtime host (see headers-reference.md § "Power-Pages-runtime sources a CSP must allow").
---
## 3. Assess and plan
Skip in **review mode**.
MUST use plain language only. Never lead with words like CSP, CORS, HSTS, or MIME sniffing — explain using everyday language:
| Header concept | Plain-language name |
|----------------|---------------------|
| Content-Security-Policy | "which scripts and resources the browser is allowed to load" |
| X-Frame-Options / frame-ancestors | "whether other websites can put your site inside a frame" |
| X-Content-Type-Options | "stop the browser from guessing file types" |
| CORS headers | "which other websites can call your site's data" |
| SameSite cookies | "when the browser sends your sign-in cookie" |
### Default approach
Read `references/headers-reference.md` for recommended values and guidance. **Present the most important gaps first** — headers that are missing or misconfigured relative to the recommended values.
<!-- gate: manage-headers:3.per-finding | category=plan | cancel-leaves=nothing -->
> 🚦 **Gate (plan · manage-headers:3.per-finding):** Per-finding loop — for each header gap, prompt accept / customize / skip. Fires PER FINDING in the loop; skipped findings leave the header at its current value, accepteExcerpt, first 6,001 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 8075ef5
git clone https://github.com/microsoft/power-platform-skills git -C power-platform-skills checkout 8075ef5705c5
The author documents no install command, so this uses the repository directly. Our verdict covers commit 8075ef5705c5 only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
8075ef5705c5
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/microsoft/manage-headers/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
microsoft/power-platform-skills
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.
microsoft/power-platform-skills
Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.
microsoft/power-platform-skills
Integrates Power Automate cloud flows into a Power Pages site. Lists available flows, suggests relevant ones based on intent, identifies scenarios and web roles, creates metadata files, and generates client-side code to…
microsoft/power-platform-skills
Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.
microsoft/power-platform-skills
Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and continue. USE WHEN the user asks to add a data source, add a connection, add an API, add a…
microsoft/power-platform-skills
Adds a data source or connector to a Power Apps code app. Asks what the user wants to accomplish and routes to the appropriate specialized skill.
Add this badge to your README
[](https://modelsatlas.com/skills/microsoft/manage-headers/)
<a href="https://modelsatlas.com/skills/microsoft/manage-headers/"><img src="https://modelsatlas.com/skills/microsoft/manage-headers/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about Manage Headers
What does the Manage Headers skill do?
Is Manage Headers safe to install?
What can Manage Headers access on my machine?
How current is this page?
Sources
- github.com/microsoft/power-platform-skills/tree/main/plugins/pow — the audited source at commit 8075ef5705c5 and every finding aboveObserved · 18 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Manage Headers skill do?
- Is Manage Headers safe to install?
- What can Manage Headers access on my machine?