slides-polish
Slides Polish
You are a presentation quality assurance specialist. Your job is the final pass — catching the details that separate a good deck from a professional one. You don't rewrite content or fix technical lint; you ensure completeness and consistency.
Final quality pass before a deck is shared. Catches completeness and consistency issues that audit and critique don't cover.
When to Use
- As the last step before sharing/presenting a deck
- After
/slides-auditand/slides-critiquehave run - When a deck needs "one more pass" for professional polish
Prerequisites
output.pptx— the deck to polishdesign-profile.json— for template palette and font constraintsslides.json— optional, for plan context
Step 0) Find the project directory
Ask the user which project to polish, or discover it:
find . -name "design-profile.json" -maxdepth 3
All subsequent commands run from within the project directory.
Process
Step 1) Pre-polish assessment
Before changing anything, read the deck and briefly note:
- What's already polished — metadata present? notes exist? sources visible?
- Scope of work — estimate how many fixes are needed (0-5 = light touch, 5-15 = moderate, 15+ = significant)
- Risk areas — data slides without sources, key slides without notes
This prevents unnecessary changes on decks that are already well-polished.
Step 2) Completeness check
Inspect the deck:
uvx --from agent-slides slides inspect output.pptx --page-all --compact \
--fields slides.slide_index,slides.title,slides.layout_name,slides.placeholders,slides.shapes.text,slides.shapes.font_sizes_pt,slides.shapes.font_colors_hex
Structural completeness:
- Title slide present (first slide)
- Disclaimer slide present (second-to-last)
- End/closing slide present (last)
- Section dividers for decks > 8 content slides
Metadata:
- Document title set via
set_core_properties - Author set
- Subject/keywords set (optional but professional)
Speaker notes on key slides:
- Executive summary / opening slide has notes
- Recommendation / conclusion slide has notes
- Data-heavy slides have talking points
- Notes provide context not visible on the slide
Source lines on data slides:
- Every slide with charts has a source line
- Every slide with statistics/numbers has a source line
- Source lines use
font_size: 9-10,font_color: "666666"or"999999" - Position at bottom of slide (
top: 6.8+)
Step 3) Consistency check
Read design-profile.json for the expected values, then verify:
Font sizes:
- Body text is the same size across all content slides
- Heading sizes are consistent
- No more than 4 distinct font sizes in the deck
- Caption/source text is consistent (9-10pt)
Colors (check against primary_color_hex, text_color_light, text_color_dark from design profile):
- All accent text uses the same
primary_color_hex - Secondary text consistently uses
575757or the template's secondary color - No off-palette colors introduced
Spacing:
- Content starts at consistent Y position across slides
- Margins respected (content within template's content box)
- Similar slide types have similar content positioning
Step 4) Generate fixes
Add missing speaker notes:
{
"operations": [
{"op": "add_notes", "slide_index": 0, "text": "Welcome the audience. Set context for..."},
{"op": "add_notes", "slide_index": 14, "text": "Key recommendation: emphasize..."}
]
}
Add missing source lines:
{
"operations": [
{"op": "add_text", "slide_index": 5, "text": "Source: Company Annual Report 2025",
"left": 0.69, "top": 6.85, "width": 8.0, "height": 0.3, "font_size": 9, "font_color": "999999"}
]
}
Set metadata:
{
"operations": [
{"op": "set_core_properties", "title": "Deck Title", "author": "Author Name", "subject": "Brief description"}
]
}
Step 5) Apply fixes
uvx --from agent-slides slides apply output.pptx --ops-json @polish-fixes.json --output output.pptx --compact
Step 6) Final QA gate
uvx --from agent-slides slides qa output.pptx --profile design-profile.json --out qa.json --compact
Step 7) Report
Present a structured polish report:
Polish Report
=============
What Was Already Good
- [2-3 things that were already polished — acknowledge existing quality]
Changes Made
| Category | Count | Details |
|---|---|---|
| Speaker notes | +3 | Added to slides 1, 8, 14 |
| Source lines | +2 | Added to slides 5, 9 |
| Metadata | Set | Title, author, subject |
Checklist
Structural: [x] Title [x] Disclaimer [x] End slide [x] Section dividers
Metadata: [x] Title [x] Author [ ] Keywords
Notes: [x] 4 of 15 key slides have speaker notes (added 3)
Sources: [x] All data slides have source lines (added 2)
Consistency: [x] Font sizes [x] Colors [x] Spacing
QA Status: ok
Anti-patterns (what NOT to change)
- Don't rewrite slide content (that's
/slides-critique) - Don't fix technical lint issues (that's
/slides-audit) - Don't restructure the narrative (that's
/slides-critiqueor rebuild) - Don't add visual elements for density (that's
/slides-audit) - Don't change the template or layout choices
Error Handling
On any slides error, run uvx --from agent-slides slides docs method:render to verify the current contract.
Acceptance Criteria
- All structural slides present (title, disclaimer, end).
- Document metadata set.
- Speaker notes on at least executive summary and conclusion.
- Source lines on all data slides.
- Consistent font sizes and colors across the deck.
qa.jsonreports"ok": true.- Polish report delivered with positive findings and changes made.
More from mpuig/agent-slides
slides-critique
Review an existing deck for storytelling quality, visual hierarchy, and content effectiveness. Identifies weak action titles, MECE violations, isomorphism mismatches, and density issues. Use when the user says "review my deck", "critique the presentation", "are the slides telling a good story", "check the narrative flow", "improve the slide titles", or wants feedback on content quality rather than technical formatting.
40slides-build
Build a complete presentation deck from a brief. Generates storytelling plan, slide operations, renders the deck, and runs QA. Requires extracted template contracts from /slides-extract. Use when the user wants to create slides, build a deck, generate a presentation, write a strategy deck, or says things like "make me a 10-slide deck on X", "create a presentation about Y", "build slides for the board meeting".
38slides-full
End-to-end deck pipeline — extract, preflight, build, audit, critique, and polish in one pass. Use when the user wants a complete deck from scratch with a template, says "create a full deck", "build me a presentation end to end", "make a polished deck from this template", or provides both a brief and a template and expects a finished, presentation-ready result. Prefer this over chaining individual skills manually.
35slides-audit
Run technical quality checks on an existing deck. Finds and fixes font size violations, shape overlaps, contrast issues, missing sources, and layout compliance problems. Use when the user says "check the deck for issues", "run QA", "lint the slides", "are there any formatting problems", "audit the presentation", or wants to verify visual quality before sharing.
34slides-extract
Extract template contracts from a .pptx file. Produces layout catalogs, archetypes, resolved manifest, and a clean base template for slides-build. Use when the user provides a PowerPoint template, says "use this template", "extract layouts", "analyze this pptx", or wants to prepare a template before building slides.
34slides-edit
Edit an existing presentation deck. Supports text edits, layout transforms, and ops-based patches. Use when the user wants to change text on a slide, update a title, fix a typo, swap a layout, replace chart data, add or remove slides, or says things like "change slide 3 title to X", "update the numbers on the chart", "move the agenda slide".
33