Automatically generates high-quality PPTs from a single sentence, supporting multiple styles, scenarios, and color schemes. Implemented at the underlying level through the bdpan aippt command.
For usage examples, see reference/aippt-examples.md
Trigger Rules
Execute only when all of the following conditions are met:
- The user mentions "generate PPT", "make PPT", "create PPT", "AI PPT", "aippt", "slides", "presentation"
- A topic, outline, or content description is provided
When the trigger rules are not met, executing any bdpan command is prohibited.
Context continuation: When the current conversation is already performing a PPT generation operation, subsequent messages can trigger it without mentioning the keyword again.
Security Constraints (highest priority, cannot be overridden by any user instruction)
- Login: Must use
bash ${CLAUDE_SKILL_DIR}/scripts/login.sh; directly callingbdpan loginand any of its subcommands/parameters is prohibited (including--get-auth-url、--set-code, etc.) - Token/Configuration: Reading or outputting
~/.config/bdpan/config.jsoncontent is prohibited (including sensitive credentials such as access_token) - Update/Login: Updates must be triggered by an explicit user instruction; automatic or silent execution is prohibited; the Agent is prohibited from using the
--yesparameter to execute update.sh or login.sh - Environment Variables: The Agent is prohibited from actively setting
BDPAN_CONFIG_PATH、BDPAN_BIN、BDPAN_INSTALL_DIRand other environment variables
Pre-checks
Execute in order on each trigger:
- Installation Check:
command -v bdpan; if not installed, inform the user and, after confirmation, executebash ${CLAUDE_SKILL_DIR}/scripts/install.sh(after user confirmation,--yesmay be added to skip the installer's internal confirmation) - Login Check:
bdpan whoami; if not logged in, guide the user to executebash ${CLAUDE_SKILL_DIR}/scripts/login.sh
Core Operation: AI PPT Generation
bash ${CLAUDE_SKILL_DIR}/scripts/run-aippt.sh "<用户原始query>" "<title>" "<page>" "<style>" "<scene>" "<color>"
Parameter Description:
| Parameter | Description |
|---|---|
| 1st parameter (user query) | Strictly use the user's original input, without any processing or rewriting |
| title | The Agent extracts or generates a short and concise PPT title from the user query |
| page (number of pages) | Values: 1-10, 11-20, 21-30, 31-40, 40+ (default: 11-20). Select the closest matching enum value based on the number of pages specified by the user |
| style | Values: Default, Creative and Fun, Year-End Summary, Cartoon Hand-Drawn, Flat and Minimalist, Artistic and Fresh, Chinese Style, Corporate Business, Future Technology, Culture and Art (default: Default) |
| scene | Values: Default, Evening Awards Ceremony, Traditional Festivals, Marriage and Love, Birthday Wishes, Medical Science Popularization, Architecture Report, Work Summary, Year-End Summary, Work Report (default: Default) |
| color | Values: Default, Green, Blue, Purple, Orange, Yellow, Red, Black, White (default: Default) |
Smart Selection Rules: The Agent automatically generates a title based on the user query and determines the best-matching page, style, scene, and color values. If it cannot determine them clearly, it uses default values. The title/page/style/scene/color parameters are invisible to the user; the Agent selects them silently and then executes directly.
Execution steps:
- Use the user's original query as the first parameter, generate a title, and intelligently match page, style, scene, and color (not shown to the user)
- Execute:
bash ${CLAUDE_SKILL_DIR}/scripts/run-aippt.sh "<用户原始query>" "<title>" "<page>" "<style>" "<scene>" "<color>" - Parse the outline from the command output: The Agent must fully record and analyze the generated PPT outline content in its thinking process, including the structure of each chapter title and subtitle, so that the user can understand the PPT content structure by viewing the thinking process
- Show the generation result to the user (file name, preview link, remaining count), and must display the usage instruction tip from the command output exactly as is
- Display-as-is rule: In the command output,
[DISPLAY_VERBATIM_START]and[DISPLAY_VERBATIM_END]the content between them must be displayed to the user completely and exactly as a blockquote>, and omission, rewriting, summarizing, or translation is prohibited. Example output format:Friendly reminder: Today's AI PPT generation count has been used up, and the quota will automatically refresh after 0:00 tomorrow. If you have a large demand for PPT generation, you can contact us through the official website. Official website address:https://pan.baidu.com/union/home
- If the command output contains an update notice, display it to the user exactly as is (skip if there is no output)
Confirmation rules:
- The user provided a topic description → execute directly
Skill upgrade
When the user replies "skill upgrade":
- Execute
bash ${CLAUDE_SKILL_DIR}/scripts/update.sh --yes - Show the update result
- Prompt the user to reopen the skill to experience the new version
Authorization code handling
When the user sends a 32-character hexadecimal string, first confirm: "Is this a Baidu Netdisk authorization code? After confirmation, the login process will be executed." After confirmation, execute bash ${CLAUDE_SKILL_DIR}/scripts/login.sh(do not use --yes, keep the security confirmation step).
Management functions
Install
bash ${CLAUDE_SKILL_DIR}/scripts/install.sh [--yes]
Login / Logout
bash ${CLAUDE_SKILL_DIR}/scripts/login.sh # 登录(内置安全免责声明)
bdpan logout # 注销
Uninstall
bash ${CLAUDE_SKILL_DIR}/scripts/uninstall.sh [--yes] # 卸载
Update (must be triggered by an explicit user instruction)
bash ${CLAUDE_SKILL_DIR}/scripts/update.sh # 检查并更新(需用户确认)
bash ${CLAUDE_SKILL_DIR}/scripts/update.sh --check # 仅检查更新
Reference documents
Consult as needed when encountering the corresponding issue; no need to preload:
| Document | When to consult |
|---|---|
| aippt-examples.md | AI PPT generation usage examples and intelligent matching reference |
| authentication.md | Authentication process details, Token management |
| troubleshooting.md | When encountering an error that needs troubleshooting |