PowerPoint Deck Designer
When to activate this skill
Activate whenever the user asks to build, generate, draft, improve or restyle any kind of slide deck or PowerPoint file. Typical triggers include: "create a deck about X", "build me a pitch deck", "draft a training presentation", "make a proposal in PowerPoint", "restyle these slides with our brand", "visualise these numbers as a slide".
Do NOT activate for:
- Word documents or PDF reports (use the doc skill instead)
- Editing an existing uploaded .pptx (unless the user explicitly wants a full rebuild)
How this skill runs
This agent runs inside a Copilot Studio Skills container with a Python interpreter. python-pptx is available out of the box. To use the skill:
- Build a JSON deck specification (see
references/input_schema.md). - Pick a theme slug from
assets/themes.json(seereferences/layouts.mdfor available layouts). - Save the JSON as
/tmp/spec.jsonand run the renderer:python scripts/generate_presentation.py \ --input /tmp/spec.json \ --output /tmp/deck.pptx \ --theme <theme-slug> \ --validate - Return
/tmp/deck.pptxto the user as a downloadable artifact.
Design principles the agent must follow
- Consider the subject matter: audience, tone, industry, mood.
- Check for branding: prefer official brand colours when the user names an organisation. If none, pick a theme whose palette matches the topic.
- Use web-safe fonts only (already baked into the themes): Arial, Calibri, Verdana, Georgia, Trebuchet MS, Tahoma.
- Clear hierarchy: title -> section -> content -> closing.
- Readability: minimum body font 14 pt, minimum title 28 pt, contrast >= 4.5:1.
Charts
This skill can generate native PowerPoint charts (real, editable Office charts - not images). Supported types:
columnandbar- category comparisons (multiple series allowed). Setstacked: trueorstacked: "100"for stacked / 100% stacked variants.line- trends over time (multiple series supported; up to ~12 points recommended).pieanddonut- parts of a whole (single series only).
Series and slices are colour-coded from the active theme palette (primary, secondary, accent, muted). See references/input_schema.md for the JSON shape.
Colour palette selection
- Corporate / executive briefing ->
executive-blue - Tech / product launch on dark background ->
modern-slate - Sustainability / environmental ->
sustain-green - Startup / creative pitch ->
vibrant-pitch - Editorial / minimalist ->
minimal-mono
Workflow the agent must follow
- Understand the objective, audience, tone, and source material.
- Draft a short storyline (3-15 slides) before writing JSON.
- State your theme choice and reasoning to the user in one line.
- Build a JSON deck spec following
references/input_schema.md. - Run the script in the container with
--validate. - If validation warnings appear, shorten text or switch to a layout with more room (see
references/layouts.md), then re-render. - Return the .pptx to the user; offer to iterate on colours, wording, layout or chart type.
Quality rules
- One main message per slide.
- <= 6 bullets per slide, <= 14 words per bullet.
- Use
agendafor agendas,cardsfor short concepts,chartfor numeric data. - Do not invent numbers. Mark assumptions in
notes(speaker notes).
Activation examples
- "Create a 10-slide investor pitch for our KONE modernisation offering" -> theme
executive-blue - "Draft an internal training deck on Power Platform governance" -> theme
minimal-mono - "Build a bold launch deck for our new sustainability product" -> theme
sustain-green - "Visualise Q1-Q4 backlog progression as a stacked column chart" ->
chartlayout,stacked: true
Run example (executes inside the Copilot Studio Skills container)
python scripts/generate_presentation.py \
--input assets/example_request.json \
--output /tmp/kone_adoption.pptx \
--theme executive-blue \
--validate
Run this — do not improvise
This capability's deterministic implementation is a RAPP single-file agent, linked beside this file as powerpoint_deck_designer_agent.py and embedded as the fenced Python below (sha256 d076d5955a1c94e4…; a byte-exact copy is also vaulted in the capsule comment at the end of this file). On a host with sandbox execution, run the linked file directly — if it is missing, write the fence contents verbatim to powerpoint_deck_designer_agent.py first:
python3 powerpoint_deck_designer_agent.py '{"key": "value"}' # arguments as one JSON object
echo '{"key": "value"}' | python3 powerpoint_deck_designer_agent.py # or on stdin
python3 powerpoint_deck_designer_agent.py --tool # emit the JSON tool contract
Treat stdout as a tool result. If it reports missing or unresolved inputs, stop and collect them. If it returns steps, execute those steps in order exactly as returned; if it returns instructions, follow them with the supplied inputs. Otherwise use the result verbatim. Do not invent behavior beyond that output. On a host without code execution, treat the Parameters schema and the code below as the exact specification and never paraphrase a step. Never edit inside the generated markers; a converter-equipped host can instead restore the original file checksum-verified with the installed rapp-agent-converter/scripts/toast.py convert SKILL.md --to agent.
"""PowerpointDeckDesigner -- Creates polished PowerPoint decks from a JSON specification using python-pptx. Designed as a Copilot Studio Skill that runs natively inside the agent container.
Generated by the rapp skill from powerpoint-deck-designer. The RCI capsule at the bottom of this file carries the full original; `toast.py convert` restores it byte-exact."""
import json
import re
import sys
try:
from agents.basic_agent import BasicAgent
except ImportError: # running OUTSIDE a brainstem -- stay executable anyway.
class BasicAgent: # noqa: D101 - minimal stand-in, same contract
def __init__(self, name=None, metadata=None):
if name:
self.name = name
if metadata:
self.metadata = metadata
def perform(self, **kwargs):
return "Not implemented."
def system_context(self):
return None
def to_tool(self):
return {"type": "function", "function": {
"name": self.name,
"description": self.metadata.get("description", ""),
"parameters": self.metadata.get("parameters", {})}}
# The procedural layer, verbatim from the source capability.
INSTRUCTIONS = '# PowerPoint Deck Designer\n\n## When to activate this skill\nActivate whenever the user asks to build, generate, draft, improve or restyle any kind of slide deck or PowerPoint file. Typical triggers include: "create a deck about X", "build me a pitch deck", "draft a training presentation", "make a proposal in PowerPoint", "restyle these slides with our brand", "visualise these numbers as a slide".\n\nDo NOT activate for:\n- Word documents or PDF reports (use the doc skill instead)\n- Editing an existing uploaded .pptx (unless the user explicitly wants a full rebuild)\n\n## How this skill runs\nThis agent runs inside a Copilot Studio **Skills container** with a Python interpreter. `python-pptx` is available out of the box. To use the skill:\n\n1. Build a JSON deck specification (see `references/input_schema.md`).\n2. Pick a theme slug from `assets/themes.json` (see `references/layouts.md` for available layouts).\n3. Save the JSON as `/tmp/spec.json` and run the renderer:\n ```bash\n python scripts/generate_presentation.py \\\n --input /tmp/spec.json \\\n --output /tmp/deck.pptx \\\n --theme <theme-slug> \\\n --validate\n ```\n4. Return `/tmp/deck.pptx` to the user as a downloadable artifact.\n\n## Design principles the agent must follow\n- Consider the subject matter: audience, tone, industry, mood.\n- Check for branding: prefer official brand colours when the user names an organisation. If none, pick a theme whose palette matches the topic.\n- Use web-safe fonts only (already baked into the themes): Arial, Calibri, Verdana, Georgia, Trebuchet MS, Tahoma.\n- Clear hierarchy: title -> section -> content -> closing.\n- Readability: minimum body font 14 pt, minimum title 28 pt, contrast >= 4.5:1.\n\n## Charts\nThis skill can generate native PowerPoint charts (real, editable Office charts - not images). Supported types:\n- `column` and `bar` - category comparisons (multiple series allowed). Set `stacked: true` or `stacked: "100"` for stacked / 100% stacked variants.\n- `line` - trends over time (multiple series supported; up to ~12 points recommended).\n- `pie` and `donut` - parts of a whole (single series only).\n\nSeries and slices are colour-coded from the active theme palette (primary, secondary, accent, muted). See `references/input_schema.md` for the JSON shape.\n\n## Colour palette selection\n- Corporate / executive briefing -> `executive-blue`\n- Tech / product launch on dark background -> `modern-slate`\n- Sustainability / environmental -> `sustain-green`\n- Startup / creative pitch -> `vibrant-pitch`\n- Editorial / minimalist -> `minimal-mono`\n\n## Workflow the agent must follow\n1. Understand the objective, audience, tone, and source material.\n2. Draft a short storyline (3-15 slides) *before* writing JSON.\n3. State your theme choice and reasoning to the user in one line.\n4. Build a JSON deck spec following `references/input_schema.md`.\n5. Run the script in the container with `--validate`.\n6. If validation warnings appear, shorten text or switch to a layout with more room (see `references/layouts.md`), then re-render.\n7. Return the .pptx to the user; offer to iterate on colours, wording, layout or chart type.\n\n## Quality rules\n- One main message per slide.\n- <= 6 bullets per slide, <= 14 words per bullet.\n- Use `agenda` for agendas, `cards` for short concepts, `chart` for numeric data.\n- Do not invent numbers. Mark assumptions in `notes` (speaker notes).\n\n## Activation examples\n- "Create a 10-slide investor pitch for our KONE modernisation offering" -> theme `executive-blue`\n- "Draft an internal training deck on Power Platform governance" -> theme `minimal-mono`\n- "Build a bold launch deck for our new sustainability product" -> theme `sustain-green`\n- "Visualise Q1-Q4 backlog progression as a stacked column chart" -> `chart` layout, `stacked: true`\n\n## Run example (executes inside the Copilot Studio Skills container)\n```bash\npython scripts/generate_presentation.py \\\n --input assets/example_request.json \\\n --output /tmp/kone_adoption.pptx \\\n --theme executive-blue \\\n --validate\n```'
# Ordered commands lifted verbatim from the capability's own documentation.
STEPS = []
class PowerpointDeckDesignerAgent(BasicAgent):
def __init__(self):
self.name = 'PowerpointDeckDesigner'
self.metadata = {
"name": "PowerpointDeckDesigner",
"description": "Creates polished PowerPoint decks from a JSON specification using python-pptx. Designed as a Copilot Studio Skill that runs natively inside the agent container.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
}
super().__init__(name=self.name, metadata=self.metadata)
def perform(self, **kwargs): # toaster:generated-perform
return json.dumps({"status": "ok", "instructions": INSTRUCTIONS,
"inputs": kwargs,
"note": "Prose-only capability: follow INSTRUCTIONS "
"with the given inputs."}, indent=2)
if __name__ == "__main__":
# echo '{"arg": "value"}' | python3 powerpoint_deck_designer_agent.py
# python3 powerpoint_deck_designer_agent.py '{"arg": "value"}'
# python3 powerpoint_deck_designer_agent.py --tool # emit the JSON tool contract
_a = sys.argv[1:]
if _a and _a[0] == "--tool":
print(json.dumps(PowerpointDeckDesignerAgent().to_tool(), indent=2))
else:
_raw = _a[0] if _a else (sys.stdin.read().strip() or "{}")
print(PowerpointDeckDesignerAgent().perform(**json.loads(_raw)))
# rci-capsule:v1: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