Use when the user asks to create slides with a specific style, wants to use or inspect a slide template by code, wants to see platform-provided slide template options before creating, describes a custom template style, provides a PPTX/PPT file to convert into a platform template, or wants to extract a template from an existing Super Magic slide project.
75
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Use this skill to retrieve platform templates by exact code, create a custom template from a style description, extract one from a PPTX/PPT file, or extract one from an existing Super Magic slide project.
Every downloaded or generated template package should use template.json as the metadata entry. Current template packages use the HTML slide template project format:
schema_version: fixed to "1.0".template_id: PPT-xxxx format.category_code: optional PPT-CATE-xxxx format from the platform category list. It may be omitted when classification is maintained outside the template.label.zh_CN, label.en_US, description.zh_CN, and description.en_US: display metadata.files.theme_css, files.slides_dir, and files.images_dir: shared CSS, reusable slide pages, and local assets. files.visual_spec is optional in a draft and should be added after the visual spec is generated.slides[].file, slides[].title, slides[].layout, and slides[].description: reusable page index and default order.source.kind: original, converted, or derived, with a 1920x1080 canvas.Do not write or rely on legacy fields such as name, template_dir, package_type, slides[].slots, slides[].source_slide, slides[].best_for, or slides[].risks. Use the paths declared by template.json; do not assume a fixed directory layout beyond the metadata.
<skill_dir>/assets/templates/.code.code must come from a platform-provided template list, a user selection, a user-provided value, or explicit upstream context. Do not invent codes, rewrite casing, or map old local directory names to codes.code: install the template package with install_slides_template, then inspect the installed template files.ask_user. Each option must include name, short description, and exact code, plus "no template/default style".references/pptx-template-workflow.md and follow the PPTX Template Workflow first.magic.project.js with type: "slide" and asks to convert or extract it into a reusable template: read references/project-template-workflow.md and follow the Project Template Workflow. Do not modify the source project, and do not create the final ZIP until the user confirms.When a template code is selected and you need to read the template package, first call install_slides_template through Code Mode, then inspect the installed directory.
from sdk.tool import tool
result = tool.call("install_slides_template", {
"code": template_code
})
installed_directory = result.data["installed_directory"]After receiving installed_directory:
installed_directory; the tool extracts the package into a temporary directory to avoid occupying workspace storage.template.json from installed_directory first.template.json that are useful for the deck:
files.theme_css when present.files.visual_spec for design rules, typography, layout types, chart rules, and image guidance when present.slides[].file files or representative HTML files under files.slides_dir, when present.theme.css as the authoritative CSS. Treat template.json, visual-spec.md, and slides/*.html as complementary sources for reusable layouts, edit hints, components, composition patterns, visual rhythm, and asset references.create_slide_project.This skill owns the template package contract and conversion/refinement guidance. It may describe how a PPTX-derived template should signal reuse intent, but detailed page-by-page slide authoring belongs to the slide creation agent.
Identify a PPTX-derived template with these rules:
template.json.source.kind is "converted" and template.json.source.file ends with .pptx, .ppt, .potx, .pot, or .ppsx case-insensitively.visual-spec.md, the template description, or the package notes explicitly say the template was converted from PPTX/PPT.data-slot* attributes, local image-heavy pages, or page-level converted styles can support the decision, but must not trigger PPTX-derived handling by themselves.When a template is PPTX-derived, preserve and document this reuse contract:
slides/*.html as concrete page masters, not loose visual inspiration.template.json.slides[].title, layout, and description; descriptions should mention visible structure, content areas, image/chart/table roles, and notable constraints.data-slot, data-slot-type, and data-slot-role in slide HTML as downstream editing hints, but do not add template.json.slides[].slots.visual-spec.md, especially backgrounds, decorative images, textures, hero visuals, SVGs, shapes, page positioning, typography scale, palette, text fitting, content-image replacement, and chart-data replacement.install_slides_template with the exact code, then use result.data["installed_directory"].template.json from the installed directory, then read the available resources it declares (theme_css, visual_spec, slides_dir, images_dir, and slides[].file) before creating slide pages.create_slide_project.theme.css and any required assets from the installed template into the PPT project. Keep all slide references local to that project.<link rel="stylesheet" href="theme.css" />creating-slides and generate slides. Keep every slide fixed at 1920x1080; do not use responsive design. Use only the installed template's CSS variables, components, dedicated layout patterns, chart colors, and image guidance inferred from the template package. If no installed layout fits, compose the page from template components, decorations, and layout helpers instead of generic centered text.data-slot, data-slot-type, and data-slot-role from slide HTML as editing hints when present, but do not expect slot metadata in template.json.image_search only after checking template assets, or when the slide needs a factual photo, specific person/product/place, screenshot, brand mark, or another exact image the template cannot supply. Try at least 2 content-relevant keyword groups and include style keywords inferred from the installed template.generate_images and save output under the PPT project images/ folder.Use when the user describes a style in text, provides screenshots, or provides an existing template package. Read <skill_dir>/references/custom-template-workflow.md and follow it before generating custom template files.
Use when the user provides a presentation file such as .pptx, .ppt, .potx, .pot, .ppsx, a WPS presentation, or a URL to a presentation template and asks to convert it into this platform's reusable template format. Read <skill_dir>/references/pptx-template-workflow.md, then call convert_pptx_to_slide_template. After the tool returns, keep working: analyze the converted content, write visual-spec.md, sanitize obvious sensitive content, confirm ambiguous sensitive assets through ask_user, refine template.json, theme.css, images/, and slides/*.html, run lightweight QA, then ask whether to package the refined draft as the final template ZIP. Do not call the old raw HTML renderer tool or run this skill's old PPTX extraction scripts.
Use when the user provides an existing Super Magic slide project directory that contains magic.project.js with type: "slide" and asks to convert or extract it into a reusable platform template. Read <skill_dir>/references/project-template-workflow.md and follow it before creating template draft files.
theme.css must only contain template-specific styles: color variables, background decorations, typography, template components, and visual helpers. It must NOT contain structural layout properties (padding, flex, grid) on framework-level selectors like .slide-container..slide-container in theme.css should only set: dimensions (width/height), position, overflow, box-sizing, and template-specific backgrounds/colors. Layout properties (padding, margin, display: flex, flex-direction) must be defined in each slide page's own <style> block.<style> in each slide HTML has higher specificity than theme.css by nature of source order (page styles load after theme.css). If needed, use more specific selectors (e.g., .slide-container.my-page) to ensure page styles override template defaults.<style> rather than relying on theme.css, to avoid cross-page style conflicts.creating-slides, using template files installed through install_slides_template.creating-slides.template.json, optional magic.project.js, theme.css, images/, and slides/*.html; use the model to analyze the converted visual style, write visual-spec.md, sanitize obvious sensitive content, confirm ambiguous sensitive assets through ask_user, refine the folder, run lightweight QA, then ask the user whether to create the final sibling <template-id>-template.zip. If a ZIP is created, exclude magic.project.js and unconfirmed sensitive assets.template.json, visual-spec.md, theme.css, images/, and deduplicated slides/*.html; sanitize sensitive content and ask the user through ask_user before keeping ambiguous sensitive assets such as logos or internal screenshots. Only after user confirmation, create the sibling <template-id>-template.zip.slides/*.html, but they must be stored in build or publishing artifacts and must not be included in the template ZIP.f9973c5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.