PPT Master Skill
This built-in skill provides imported PPT Master variants with the same rendering contract used by the Guizang skill:
- The backend selects a stable
skill_id + variant_id + theme_id. - The agent produces
deck_spec.slides[].htmlanddeck_spec.slides[].css. - The backend sanitizes each slide fragment and injects it into
assets/template.html. - Existing
template_idvalues identify the corresponding skill variant. - Visual fragments must be authored as a fixed 16:9 canvas. Use
.pm-canvasor.pmvas the slide content root so the backend can preserve the upstream 1280x720 PPT-Master geometry. - Motion follows the Guizang-style declarative contract: the template/runtime owns animation code, and slide fragments only declare motion hooks with
data-pm-motionanddata-pm-anim. - Validate visual fidelity with
references/alignment-checklist.md; PPT-Master output should use registeredpm-*layouts/components instead of generic title-plus-bullet pages.
Variants
attention-transformer-blueprintdata-journalismglassmorphism-saasmemphis-poprisograph-zinecangzhuo-ink-aestheticeffective-agents-dark-techkimsoong-consulting
Output Contract
Each visual slide should provide:
idindexlayoutintenthtmlcssblocksspeaker_notescitations
The html fragment should use this root pattern:
<div class="visual-slide" data-anchor="slide_01">
<div class="pm-canvas pm-blueprint" data-pm-motion="blueprint">
<p class="pm-kicker" data-pm-anim="kicker">...</p>
<h1 class="pm-title" data-pm-anim="title">...</h1>
<section class="pm-grid-3">
<article class="pm-card" data-pm-anim="card">...</article>
</section>
</div>
</div>
Use the appropriate style class for the selected variant: pm-blueprint, pm-news, pm-dark, pm-riso, pm-cultural, pm-cangzhuo, pm-consulting, pm-showcase, pm-glass, or template-specific classes listed in skill_context.components.
Motion Contract
Do not write animation JavaScript, @keyframes, or custom transition choreography in slide fragments. Declare motion only:
- Put
data-pm-motionon the.pm-canvas,.pmv, or.slide-canvasroot. - Supported motion kinds:
blueprint,editorial,data,swiss,glass,memphis,riso,dark,consulting,business. - Mark 3-6 important elements with
data-pm-anim. - Supported element roles:
kicker,title,body,line,card,image,metric,bar,glass-card,sticker,pop-card,shape. - Choose roles that match the design: for example, blueprint uses
line/card, data usesmetric/bar, editorial usesimage/body, and memphis usessticker/pop-card/shape.
The backend does not generate fallback html/css fragments. Missing slide HTML, missing slide CSS, unsupported layouts, template injection failures, or validator failures must fail explicitly.
JSON Shape Contract
Agent final output must use the backend stable JSON shapes. These fields must always be arrays, never object maps, string-only items, or tuple arrays:
design_plan.design_rhythmdesign_plan.rulesoutlineoutline[].pointsoutline[].sourcesdeck_spec.slidesdeck_spec.slides[].blocksdeck_spec.slides[].blocks[].itemsdeck_spec.slides[].citations
Correct:
{
"outline": [
{
"id": "outline_01",
"title": "Cover",
"intent": "Introduce the topic",
"points": ["Core message", "Audience"],
"layout": "cover",
"sources": []
}
]
}
Incorrect:
{
"outline": {
"page_1": ["Cover", "Core message"]
}
}