Agent skill · Audited from source
powerpoint
skill · microsoft/hve-coreMIT licenceAudited 20 Oct 2026 · source 4e94ce0cc433
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 4e94ce0cc433 and observed filesystem and network access and no hard-coded secrets. What it does: PowerPoint slide deck generation and management using python-pptx with YAML-driven content and styling
Cite
Cite this page
ModelsAtlas. “powerpoint (microsoft/hve-core)”. Retrieved 20 Oct 2026. https://modelsatlas.com/skills/microsoft/powerpoint
Trust audit
Audit 0.4.1 · source read 20 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
- NetworkDeclared5 observations
- 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 | 5 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | WARN | 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 (8)
MEDIUMObfuscation / stealthobf.zero_width · scripts/Invoke-PptxPipeline.ps1:1
#!/usr/bin/env pwsh
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWInventory / provenanceinv.binary · tests/corpus/0_empty
0_empty
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · tests/corpus/0_short_hex
0_short_hex
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · tests/corpus/0_theme_ref
0_theme_ref
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · tests/corpus/0_valid_hex
0_valid_hex
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
LOWInventory / provenanceinv.binary · tests/corpus/2_empty_results
2_empty_results
- Why
- a compiled or binary member cannot be reviewed from source
- Fix
- ship source, or explain the binary in the README
INFOSupply chainprompt.pipe_to_shell · SKILL.md:34
curl -LsSf https://astral.sh/uv/install.sh | sh
- Why
- No further detail recorded for this rule.
- Fix
- —
INFOSupply chainprompt.pipe_to_shell · SKILL.md:245
| `uv` not found | uv package manager not installed | Install uv: `curl -LsSf https://astral.sh/uv/install.sh \| sh` (macOS/Linux) or `pip install uv` |
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 4e94ce0cc433 · 20 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/hve-core/.github/skills/experimental/powerpointThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict4e94ce0cc433A 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: PowerPoint slide deck generation and management using python-pptx with YAML-driven content and styling
--- name: powerpoint description: 'PowerPoint slide deck generation and management using python-pptx with YAML-driven content and styling' license: MIT compatibility: 'Requires uv, Python 3.11+, PowerShell 7+, and LibreOffice' metadata: authors: "microsoft/hve-core" spec_version: "1.0" last_updated: "2026-08-09" --- # PowerPoint Skill Generates, updates, and manages PowerPoint slide decks using `python-pptx` with YAML-driven content and styling definitions. ## Overview This skill provides Python scripts that consume YAML configuration files to produce PowerPoint slide decks. Each slide is defined by a `content.yaml` file describing its layout, text, and shapes. A `style.yaml` file defines dimensions, template configuration, layout mappings, metadata, and defaults. SKILL.md covers technical reference: prerequisites, commands, script architecture, API constraints, and troubleshooting. For conventions and design rules (element positioning, visual quality, color and contrast, contextual styling), follow `pptx.instructions.md`. ## Prerequisites ### PowerShell The `Invoke-PptxPipeline.ps1` script handles virtual environment creation and dependency installation automatically via `uv sync`. Requires `uv`, Python 3.11+, and PowerShell 7+. ### Installing uv If `uv` is not installed: ```bash # macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # Via pip (fallback) pip install uv ``` ### System Dependencies (Export and Validation) The Export and Validate actions require LibreOffice for PPTX-to-PDF conversion and optionally `pdftoppm` from poppler for PDF-to-JPG rendering. When `pdftoppm` is not available, PyMuPDF handles the image rendering. The Validate action's vision-based checks require the GitHub Copilot CLI for model access. ```bash # macOS brew install --cask libreoffice brew install poppler # optional, provides pdftoppm # Linux sudo apt-get install libreoffice poppler-utils # Windows (winget preferred, choco fallback) winget install TheDocumentFoundation.LibreOffice # choco install libreoffice-still # alternative # poppler: no winget package; use choco install poppler (optional, provides pdftoppm) ``` ### Copilot CLI (Vision Validation) The `validate_slides.py` script uses the GitHub Copilot SDK to send slide images to vision-capable models. The Copilot CLI must be installed and authenticated: ```bash # Install Copilot CLI npm install -g @github/copilot-cli # Authenticate (uses the same GitHub account as VS Code Copilot) copilot auth login # Verify copilot --version ``` ### Required Files * `style.yaml` — Dimensions, defaults, template configuration, and metadata * `content.yaml` — Per-slide content definition (text, shapes, images, layout) * (Optional) `content-extra.py` — Custom Python for complex slide drawings ## Content Directory Structure All slide content lives under the working directory's `content/` folder: ```text content/ ├── global/ │ ├── style.yaml # Dimensions, defaults, template config, and theme metadata │ └── voice-guide.md # Voice and tone guidelines ├── slide-001/ │ ├── content.yaml # Slide 1 content and layout │ └── images/ # Slide-specific images │ ├── background.png │ └── background.yaml # Image metadata sidecar ├── slide-002/ │ ├── content.yaml # Slide 2 content and layout │ ├── content-extra.py # Custom Python for complex drawings │ └── images/ │ └── screenshot.png ├── slide-003/ │ ├── content.yaml │ └── images/ │ ├── diagram.png │ └── diagram.yaml └── ... ``` ## Global Style Definition (`style.yaml`) The global `style.yaml` defines dimensions, template configuration, layout mappings, metadata, and defaults. Color and font choices are specified per-element in each slide's `content.yaml` rather than centralized in the style file. See the [style.yaml template](style-yaml-template.md) for the full template, field reference, and usage instructions. ## Per-Slide Content Definition (`content.yaml`) Each slide's `content.yaml` defines layout, text, shapes, and positioning. All position and size values are in inches. Color values use `#RRGGBB` hex format or `@theme_name` references. Text contract: markdown-like list lines in `textbox.text` and `shape.text` are interpreted as PowerPoint lists during rendering. Unordered markers (`-`, `+`, `*`) become bulleted paragraphs, ordered markers (`1.`, `1)`) become auto-numbered paragraphs, and leading indentation maps to paragraph level. See the [content.yaml template](content-yaml-template.md) for the full template, supported element types, supported shape types, and usage instructions. Accessibility: each slide's `title` becomes the slide title that screen readers announce and navigate by, `alt` or `decorative` on an image sets its alternative text, and `metadata.language` in `style.yaml` sets the document and text language. ## Complex Drawings (`content-extra.py`) When a slide requires complex drawings that cannot be expressed through `content.yaml` element definitions, create a `content-extra.py` file in the slide folder. The `render()` function signature is fixed. The build script calls it after placing standard `content.yaml` elements. See the [content-extra.py template](content-extra-py-template.md) for the full template, function parameters, and usage guidelines. ### Security Validation `content-extra.py` execution is disabled by default. When a slide folder contains one and `--allow-scripts` is not passed, the build fails with an error naming the file. Pass `--allow-scripts` to authorize execution after reviewing the script. When execution is authorized, the build script performs AST-based static analysis before running the file and rejects the patterns below. This analysis is a lint that catches obvious mistakes early. It is not a security bounda
Excerpt, first 6,000 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 4e94ce0
pip install uv npm install -g @github/copilot-cli uv sync uv sync --group fuzz uv run python tests/fuzz_harness.py tests/corpus/
git clone https://github.com/microsoft/hve-core git -C hve-core checkout 4e94ce0cc433
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 4e94ce0cc433 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| GitHub Copilot | Mentioned in its text, not tested | Skills for GitHub Copilot · About GitHub Copilot |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
4e94ce0cc433
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/microsoft/powerpoint/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
obra/superpowers
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions…
obra/superpowers
Use when you have a spec or requirements for a multi-step task, before touching code
obra/superpowers
Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions
Add this badge to your README
[](https://modelsatlas.com/skills/microsoft/powerpoint/)
<a href="https://modelsatlas.com/skills/microsoft/powerpoint/"><img src="https://modelsatlas.com/skills/microsoft/powerpoint/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about powerpoint
What does the powerpoint skill do?
Is powerpoint safe to install?
What can powerpoint access on my machine?
What do I need installed to use powerpoint?
Which assistants does powerpoint work with?
How current is this page?
Sources
- github.com/microsoft/hve-core/tree/main/.github/skills/experimen — the audited source at commit 4e94ce0cc433 and every finding aboveObserved · 20 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 powerpoint skill do?
- Is powerpoint safe to install?
- What can powerpoint access on my machine?