Skip to content
Agentmart
Submit a tool

pptx

Use this skill any time a .pptx file is involved as input or output — create, read, edit, combine, or split presentations, decks, and slides.

Skill by Matrixx0070

IndexedMIT
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/matrixx0070-pptx

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use this skill any time a .pptx file is involved as input or output — create, read, edit, combine, or split presentations, decks, and slides. Trigger on 'deck', 'slides', 'presentation', 'PPT', 'PowerPoint', or a .pptx filename. If a .pptx needs to be opened, created, or modified, use this skill.

Use cases: presentations, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/pptx

What's inside

Skill name
pptx
Description
Use this skill any time a .pptx file is involved as input or output — create, read, edit, combine, or split presentations, decks, and slides. Trigger on 'deck', 'slides', 'presentation', 'PPT', 'PowerPoint', or a .pptx filename. If a .pptx needs to be opened, created, or modified, use this skill.
License
MIT
Instructions
223 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (109)

  • SKILL.md
  • creating.md
  • editing.md
  • __init__.py · scripts/
  • add_slide.py · scripts/
  • check_overlaps.py · scripts/
  • clean.py · scripts/
  • delete_slide.py · scripts/
  • detect_fonts.py · scripts/
  • inspect_slide.py · scripts/
  • media_grid.py · scripts/
  • __init__.py · scripts/office/helpers/
  • merge_runs.py · scripts/office/helpers/
  • simplify_redlines.py · scripts/office/helpers/
  • pack.py · scripts/office/
  • soffice.py · scripts/office/
  • unpack.py · scripts/office/
  • validate.py · scripts/office/
  • __init__.py · scripts/office/validators/
  • base.py · scripts/office/validators/
  • docx.py · scripts/office/validators/
  • pptx.py · scripts/office/validators/
  • redlining.py · scripts/office/validators/
  • render_slides.py · scripts/
  • replace_nth_text.py · scripts/
  • replace_text.py · scripts/
  • resize_shape.py · scripts/
  • search_templates.py · scripts/
  • thumbnail.py · scripts/
  • template_taxonomy.json
  • activewear_collection_overview.js · templates/
  • africa_fmcg_value_chain_playbook.js · templates/
  • ag_trade_finance_pitch_deck.js · templates/
  • agri_commodities_trading_primer.js · templates/
  • agtech_seed_round_pitch_deck.js · templates/
  • ai_blockchain_market_briefing.js · templates/
  • ai_llm_technical_history.js · templates/
  • ai_robotics_startup_pitch_deck.js · templates/
  • ai_sports_media_partnership_pitch.js · templates/
  • ai_startup_series_a_pitch_deck.js · templates/
  • american_regional_pizza_guide.js · templates/
  • animation_studio_company_history.js · templates/
  • apothecary_brand_introduction.js · templates/
  • art_gallery_exhibition_presentation.js · templates/
  • auto_repair_company_profile.js · templates/
  • automotive_board_strategy_review.js · templates/
  • bagel_shop_menu_pitch_deck.js · templates/
  • bakery_business_pitch_deck.js · templates/
  • bakery_commercial_loan_pitch.js · templates/
  • bakery_concept_vision_board.js · templates/
  • biotech_series_b_pitch_deck.js · templates/
  • biotech_startup_pitch_deck.js · templates/
  • childcare_operator_partnership_pitch.js · templates/
  • coffee_franchise_prospectus.js · templates/
  • college_admissions_consulting_pitch.js · templates/
  • cruise_itinerary_trade_portfolio.js · templates/
  • crypto_hedge_fund_pitch_deck.js · templates/
  • crypto_portfolio_management.js · templates/
  • crypto_quantum_risk_briefing.js · templates/
  • destination_marketing_event_pitch.js · templates/
  • …and 49 more

SKILL.md (first lines)

# PPTX Skill

## Workflow Selection

| Situation | Action |
|-----------|--------|
| User attaches or references a `.pptx` file | Read [editing.md](editing.md) — edit the template directly |
| No `.pptx` provided — create from scratch | Read [creating.md](creating.md) — use PptxGenJS templates |
| Read/analyze an existing presentation | See Reading Content below |

**When in doubt:** If ANY `.pptx` file is attached or mentioned, use the
editing workflow. The creating workflow is ONLY for when no existing
presentation exists at all.

---

## Reading Content

```bash
# Text extraction
python -m markitdown presentation.pptx

# Visual overview
python scripts/thumbnail.py presentation.pptx

# Raw XML
python scripts/office/unpack.py presentation.pptx unpacked/

# Structured inspection (placeholders, text, images, media — USE THIS)
python scripts/inspect_slide.py unpacked/ --theme --media
```


---

## QA (Required)

**Assume there are problems. Your job is to find them.**

Your first render is almost never correct. Approach QA as a bug hunt, not a confirmation step. If you found zero issues on first inspection, you weren't looking hard enough.

### Overlap Check & Auto-Fix (Before Packing)

**Run this on the unpacked XML before packing** — it catches overlapping text boxes instantly without needing a render, and `--fix` auto-applies text auto-shrink:

```bash
# Check and auto-fix (enables normAutofit on overlapping text shapes)
python scripts/check_overlaps.py unpacked/ --fix

# Check only (no modifications)
python scripts/check_overlaps.py unpacked/
```

The `--fix` flag adds `<a:normAutofit/>` to every text shape involved in an overlap or off-slide overflow. This makes PowerPoint auto-shrink text to fit the box. If issues remain after `--fix`, shorten text or resize shapes manually.

### Content QA

```bash
python -m markitdown output.pptx
```

Check for missing content, typos, wrong order.

**When using templates, check for leftover placeholder text:**

```bash
python -m markitdown output.pptx | grep -iE "xxxx|lorem|ipsum|this.*(page|slide).*layout"
```

If grep returns results, fix them before declaring success.

### Automated Checks

Run these before visual inspection to catch common issues automatically:

```bash
python scripts/detect_fonts.py output.pptx
python scripts/office/unpack.py output.pptx unpacked/
python scripts/check_overlaps.py unpacked/ --fix
python scripts/clean.py unpacked/
python scripts/office/pack.py unpacked/ final_output.pptx --original output.pptx
```

Fix any issues these report before proceeding to visual QA.

### Visual QA

You've been staring at the code and will see what you expect, not what's there. 

Convert slides to images, then look for:

- Overlapping elements (text through shapes, lines through words, stacked elements)
- Text overflow or cut off at edges/box boundaries
- Decorative lines positioned for single-line text but title wrapped to two lines
- Source citations or footers colliding with content above
- Elements too close (< 0.3" gaps) or cards/sections nearly touching
- Uneven gaps (large empty area in one place, cramped in another)
- Insufficient margin from slide edges (< 0.5")
- Columns or similar elements not aligned consistently
- Low-contrast text (e.g., light gray text on cream-colored background)
- Low-contrast icons (e.g., dark icons on dark backgrounds without a contrasting circle)
- Text boxes too narrow causing excessive wrapping
- Leftover placeholder content
- **Style consistency** — does every slide feel like it belongs to the same deck?

For each slide, list issues or areas of concern, even if minor.

Read and analyze these images:
1. /path/to/slide-01.jpg (Expected: [brief description])
2. /path/to/slide-02.jpg (Expected: [brief description])

### Verification Loop

1. Generate slides → Convert to images → Inspect
2. Run `detect_fonts.py` and `check_overlaps.py`
3. **List issues found** (if none found, look again more critically)
4. Fix issues
5. **Re-verify affected slides** — one fix often creates another problem
6. Repeat until a full pass reveals no new issues

From Matrixx0070/xclaw, MIT.

More from Matrixx0070/xclaw

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 12, 2026 (2 months ago)
Last release
Sep 9, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Matrixx0070

Cite this page

pptx skill. Agent Mart. https://agentmart.dev/skills/matrixx0070-pptx (last updated 2026-10-24)