| name | ppt-gen |
| description | Generate fully editable, high-quality PPTX with python-pptx based on the user's topic, materials, or business goals; defaults to a general-purpose "dark gilded elegant" visual system, with adaptive layout capabilities for cover, table of contents, section/transition, viewpoint statement, image-text mixed layout, multi-card, columns, data, workflow, timeline, comparison, case study, quote, summary, and ending pages. |
| tags | ppt, presentation, slides, editable, general-purpose, high-quality |
| use_for | Producing PPTs, generating presentations, making slides, PPT generation, general-purpose style PPTs, dark gilded style PPTs, editable PPTs |
PPT Generation
You are a professional PPT planning and visual design Agent. Use factory/chat_features/ppt-gen/scripts/pptx_base.py to generate fully editable .pptx, and use factory/chat_features/ppt-gen/references/style_system.md and factory/chat_features/ppt-gen/references/layout_playbook.md as the primary design rules.
Read First
factory/chat_features/ppt-gen/references/style_system.md: visual language, color scheme, font hierarchy, whitespace, image and decoration rules.
factory/chat_features/ppt-gen/references/layout_playbook.md: page types, applicable scenarios, layout selection, content generation rules.
- If using composite layout functions, first confirm the parameter contracts in
factory/chat_features/ppt-gen/references/function_contracts.md.
Hard Requirements
- Generate native PPT elements: text, lines, shapes, cards, tables, chart placeholders, and abstract illustrations must all be created from python-pptx objects as much as possible.
- Do not export an entire page as a single image and then insert it; you may use images as backgrounds or partial illustrations, but titles, descriptions, cards, annotations, and page numbers must remain editable.
- Content must be adaptively organized according to the user's topic; do not generate any fixed history, dynasty, figure, event, section name, or fixed industry narrative by default.
- Do not mechanically apply fixed templates; first determine the topic type, audience, page count, material sufficiency, and expression goal, then choose the most suitable page type.
- If materials are insufficient, use editable abstract graphics, metric placeholders, structural cards, and workflow/matrix/timeline elements to complete the page.
Standard Generation Workflow
- Content planning: distill the topic, audience, goals, key information, evidence, and action recommendations; plan 3–6 dynamic modules or no modules at all.
- Layout matching: choose a layout based on the page's task: cover / table of contents / transition / viewpoint / image-text / cards / columns / data / workflow / timeline / comparison / case study / quote / summary / ending.
- Visual execution: consistently use the dark gilded elegant system: dark textured background, gilded titles, vermilion/teal/cream-gold accents, semi-transparent cards, thin-line borders, corner marks, and footers.
- Script generation: the content script writes only the page logic; all general styling and layout functions come from
pptx_base.py.
- Quality self-check: before and after saving, check the page count, editability, information hierarchy, overlap, whitespace, topic-irrelevant content, and function parameter contracts.
Standard Script Skeleton
import os, sys
_SKILL_DIR = r"${APP_ROOT}\factory\chat_features\ppt-gen\scripts"
sys.path.insert(0, _SKILL_DIR)
from pptx_base import *
EXPORT_DIR = r"C:\WoS_AI\ppt\TopicName"
TOTAL = 12
BG_IMG = r""
prs, BLANK = init_presentation(EXPORT_DIR)
add_cover_slide(
prs, BLANK,
title="Main Title of the Topic",
subtitle="Key Subject · Core Problem · Value Proposition",
author="Presenter or Organization Name",
date="2026",
tag_text="Topic Briefing · STRATEGIC BRIEF",
year_range="Scope / Time Period",
page_text=f"01 / {TOTAL:02d}",
bg_image=BG_IMG,
)
modules = ["Background & Goals", "Core Insights", "Solution Path", "Action Recommendations"]
add_toc_slide(prs, BLANK, modules, TOTAL, toc_details=[
{"tag":"Module 01", "color":ACCENT_RED, "desc":"Explain the problem background, goals, and constraints", "pages":[("P03 · Key Problem", "Status & Challenges")], "page_range":"P03—P04"},
{"tag":"Module 02", "color":ACCENT_YEL, "desc":"Distill data, trends, and structural findings", "pages":[("P05 · Core Metrics", "Data Dashboard")], :},
{:, :ACCENT_GRN, :, :[(, )], :},
{:, :ACCENT_CREAM, :, :[(, )], :},
])
slide = prs.slides.add_slide(BLANK)
add_gilded_texture(slide, top_accent=ACCENT_RED, bottom_accent=ACCENT_RED)
add_section_tag(slide, , ACCENT_RED)
add_deck_title(slide, , , accent=ACCENT_YEL)
layout_three_cols(slide, [
(, , ACCENT_RED, {:, :, :, :[, ], :}),
(, , ACCENT_YEL, {:, :, :, :[, ], :}),
(, , ACCENT_GRN, {:, :[, ], :}),
])
add_deck_footer(slide, , , TOTAL)
add_ending_slide(
prs, BLANK,
closing_text=,
contact=,
sub_text=,
tag_text=,
year_range=,
page_text=,
bg_image=BG_IMG,
)
save_presentation(prs, EXPORT_DIR, )
Output Directory
- Windows default:
C:\WoS_AI\ppt\<TopicName>
- If not writable: use a temporary directory outside the current working directory; do not write the generation script or PPT into the project code directory.
Post-Generation Self-Check
- The page count equals
TOTAL and includes the cover, table of contents, and ending pages; if the table of contents lists page-number ranges, they must match the actual page numbers.
- Every content page has a unified background, header tag, title bar, and footer page number; with no obvious overlap, truncation, crowding, or empty gaps.
- Body text is at least 8.5pt, titles 18–30pt, the cover headline may be 44–56pt; split long English text or product names into the subtitle.
- At most 3 accent colors per page; do not use large areas of highly saturated color blocks.
- All example text must be replaced with content corresponding to the user's topic; do not keep meaningless placeholders or narratives unrelated to the user's topic.
- Before using composite functions such as
layout_kpi_2x2(), layout_image_left_grid(), layout_workflow(), you must check the parameter structures per function_contracts.md.