Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audit PowerPoint (.pptx) decks for slide count, text density, embedded images and fonts, hidden slides, speaker notes, and animation density. Use when reviewing a board deck, sales deck, or conference talk before sending.
.claude/skills/borghei-pptx-toolkit/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -7% | 0% |
Audit .pptx files using the standard library only — no python-pptx required. Reads OOXML directly via zipfile + xml.etree.
pptx, PowerPoint, slide deck, presentation, board deck, sales deck, deck review, slide density, speaker notes, animation, hidden slides
Before running the audit, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
bashpython scripts/pptx_auditor.py deck.pptx
Outputs: slide count, hidden slide count, slides with speaker notes, words per slide (with per-slide breakdown), image and embedded-media count, animation node count, theme name.
Goal: Catch the issues that make decks look unprofessional in the room — overstuffed slides, missing speaker notes, leftover hidden slides from prior versions.
Steps:
Time Estimate: 5-10 minutes per deck.
Goal: Hold a board / investor deck to a higher quality bar with a structured audit trail.
Steps:
references/deck_density_rubric.mdcs-board-deck-builder skill for narrative reviewTime Estimate: 30-60 minutes per board deck.
Goal: Stage-ready deck — hidden / cut slides removed, speaker notes complete, animations rehearsable.
Steps:
Time Estimate: 15 minutes pre-rehearsal.
Reads a .pptx file as a ZIP archive and parses OOXML directly. No external dependencies.
bashpython scripts/pptx_auditor.py deck.pptx python scripts/pptx_auditor.py deck.pptx --json
Reports:
references/deck_density_rubric.md — Words-per-slide guidance by deck purpose (board, sales, talk, training); animation philosophy; speaker-notes patternassets/deck_handoff_checklist.md — Pre-meeting deck sign-off checklistc-level-advisor/board-deck-builder for board / investor decksmarketing/launch-strategy for launch-deck reviewscs-pr-comms-lead for press / partner decks| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 13,810 | 31,338 | +127% | 1 | 1 | 0% | 1,372 | 6,670 | +386% | 0 | 0 | — |
case-02 | fail→fail | 18,243 | 5,651 | -69% | 1 | 1 | 0% | 3,977 | 1,372 | -66% | 0 | 0 | — |
case-03 | fail→fail | 11,691 | 5,384 | -54% | 1 | 1 | 0% | 982 | 1,422 | +45% | 0 | 0 | — |
case-04 | fail→fail | 10,076 | 6,609 | -34% | 1 | 1 | 0% | 1,542 | 2,115 | +37% | 0 | 0 | — |
case-05 | pass→pass | 10,851 | 6,286 | -42% | 1 | 1 | 0% | 1,985 | 2,243 | +13% | 0 | 0 | — |
case-06 | pass→pass | 8,954 | 3,294 | -63% | 1 | 1 | 0% | 1,359 | 1,641 | +21% | 0 | 0 | — |
case-07 | fail→pass | 13,795 | 3,491 | -75% | 1 | 1 | 0% | 1,411 | 1,689 | +20% | 0 | 0 | — |
case-08 | pass→pass | 6,046 | 2,061 | -66% | 1 | 1 | 0% | 1,022 | 1,472 | +44% | 0 | 0 | — |
case-09 | fail→pass | 15,202 | 2,774 | -82% | 1 | 1 | 0% | 2,264 | 1,620 | -28% | 0 | 0 | — |
case-10 | pass→fail | 10,765 | 3,465 | -68% | 1 | 1 | 0% | 1,515 | 1,695 | +12% | 0 | 0 | — |
case-11 | pass→pass | 9,401 | 1,786 | -81% | 1 | 1 | 0% | 1,310 | 1,430 | +9% | 0 | 0 | — |
case-12 | fail→pass | 6,956 | 1,591 | -77% | 1 | 1 | 0% | 1,214 | 1,362 | +12% | 0 | 0 | — |
case-13 | fail→pass | 9,191 | 1,336 | -85% | 1 | 1 | 0% | 1,344 | 1,287 | -4% | 0 | 0 | — |
case-14 | fail→pass | 8,923 | 1,597 | -82% | 1 | 1 | 0% | 1,426 | 1,330 | -7% | 0 | 0 | — |
case-15 | fail→pass | 5,014 | 1,531 | -69% | 1 | 1 | 0% | 738 | 1,349 | +83% | 0 | 0 | — |
case-16 | fail→pass | 10,150 | 2,295 | -77% | 1 | 1 | 0% | 1,544 | 1,493 | -3% | 0 | 0 | — |
case-17 | fail→pass | 8,350 | 3,068 | -63% | 1 | 1 | 0% | 1,257 | 1,610 | +28% | 0 | 0 | — |
case-18 | pass→pass | 9,998 | 3,523 | -65% | 1 | 1 | 0% | 1,535 | 1,629 | +6% | 0 | 0 | — |
case-19 | fail→pass | 5,625 | 2,072 | -63% | 1 | 1 | 0% | 786 | 1,419 | +81% | 0 | 0 | — |
case-20 | fail→fail | 11,338 | 14,390 | +27% | 1 | 1 | 0% | 1,965 | 3,234 | +65% | 0 | 0 | — |
case-21 | pass→fail | 30,348 | 9,281 | -69% | 1 | 1 | 0% | 6,170 | 2,634 | -57% | 0 | 0 | — |
case-22 | pass→pass | 10,800 | 8,442 | -22% | 1 | 1 | 0% | 1,940 | 2,586 | +33% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 20 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.