{"id":"246f3b79-765f-499e-97ac-260dcf8b49fb","entityType":"agent","slug":"clawhub-vincentlau2046-sudo-pptx-master","name":"Pptx Master V1.2.3 20260507","canonicalUrl":"https://www.xpersona.co/agent/clawhub-vincentlau2046-sudo-pptx-master","canonicalPath":"/agent/clawhub-vincentlau2046-sudo-pptx-master","generatedAt":"2026-10-10T10:43:16.412Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":null},"description":"专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red... Skill: Pptx Master V1.2.3 20260507 Owner: vincentlau2046-sudo Summary: 专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red... Tags: latest:1.2.3, ppt:1.0.2, presentation:1.0.2 Version history: v1.2.3 | 2026-05-07T07:20:42.569Z | user XML实体自动转义 v1.0.2 | 2026-04-24T16:23:36.705Z | user ClawHub适配版本，基于github开源ppt-mas","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.6K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s177qxxtwn13trxmgd54c7a6wh83h7rc:pptx-master","sourceUrl":"https://clawhub.ai/vincentlau2046-sudo/pptx-master","homepage":"https://clawhub.ai/vincentlau2046-sudo/skills/pptx-master","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/vincentlau2046-sudo/pptx-master","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/vincentlau2046-sudo/skills/pptx-master","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":64,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":null},"stars":null,"forks":null,"downloads":1580,"packageName":null,"latestVersion":"1.2.3","tractionLabel":"1.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T07:49:46.776Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T07:49:46.914Z","lastCrawledAt":"2026-10-10T07:49:46.776Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T07:49:46.776Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.3","createdAt":"2026-05-07T07:20:42.569Z","changelog":"XML实体自动转义","fileCount":258,"zipByteSize":611559},{"version":"1.0.2","createdAt":"2026-04-24T16:23:36.705Z","changelog":"ClawHub适配版本，基于github开源ppt-master，新增HUAWEI和red grey两个layout模板","fileCount":97,"zipByteSize":299196},{"version":"1.0.1","createdAt":"2026-04-24T16:21:17.552Z","changelog":"ClawHub适配版本","fileCount":97,"zipByteSize":299196}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177qxxtwn13trxmgd54c7a6wh83h7rc:pptx-master","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T10:43:16.408Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-vincentlau2046-sudo-pptx-master/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":null},"readme":"Skill: Pptx Master V1.2.3 20260507\n\nOwner: vincentlau2046-sudo\n\nSummary: 专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red...\n\nTags: latest:1.2.3, ppt:1.0.2, presentation:1.0.2\n\nVersion history:\n\nv1.2.3 | 2026-05-07T07:20:42.569Z | user\n\nXML实体自动转义\n\nv1.0.2 | 2026-04-24T16:23:36.705Z | user\n\nClawHub适配版本，基于github开源ppt-master，新增HUAWEI和red grey两个layout模板\n\nv1.0.1 | 2026-04-24T16:21:17.552Z | user\n\nClawHub适配版本\n\nArchive index:\n\nArchive v1.2.3: 258 files, 611559 bytes\n\nFiles: CHANGELOG.md (4207b), README.md (3830b), references/canvas-formats.md (2902b), references/executor-base.md (11829b), references/executor-consultant-top.md (10349b), references/executor-consultant.md (7180b), references/executor-general.md (6070b), references/image-generator.md (18038b), references/image-layout-spec.md (5620b), references/shared-standards.md (18394b), references/strategist.md (18574b), references/svg-image-embedding.md (6089b), references/template-designer.md (8483b), RESOURCES.md (4297b), scripts/analyze_images.py (8226b), scripts/batch_validate.py (10419b), scripts/config.py (16611b), scripts/doc_to_md.py (7467b), scripts/docs/conversion.md (2206b), scripts/docs/image.md (2861b), scripts/docs/project.md (2627b), scripts/docs/svg-pipeline.md (4601b), scripts/docs/troubleshooting.md (1388b), scripts/error_helper.py (16161b), scripts/finalize_svg.py (13052b), scripts/gemini_watermark_remover.py (6825b), scripts/generate_examples_index.py (8311b), scripts/image_backends/__init__.py (57b), scripts/image_backends/backend_bfl.py (5784b), scripts/image_backends/backend_common.py (7366b), scripts/image_backends/backend_fal.py (4198b), scripts/image_backends/backend_gemini.py (8808b), scripts/image_backends/backend_ideogram.py (4875b), scripts/image_backends/backend_openai.py (8135b), scripts/image_backends/backend_qwen.py (6333b), scripts/image_backends/backend_replicate.py (5908b), scripts/image_backends/backend_siliconflow.py (5718b), scripts/image_backends/backend_stability.py (4889b), scripts/image_backends/backend_volcengine.py (6004b), scripts/image_backends/backend_zhipu.py (5911b), scripts/image_gen.py (13130b), scripts/pdf_to_md.py (26621b), scripts/pptx_animations.py (8269b), scripts/pptx_template_import.py (18066b), scripts/project_manager.py (24802b), scripts/project_utils.py (15378b), scripts/README.md (3296b), scripts/rotate_images.py (20980b), scripts/svg_content_checker.py (18598b), scripts/svg_finalize/__init__.py (88b), scripts/svg_finalize/crop_images.py (10973b), scripts/svg_finalize/embed_icons.py (10938b), scripts/svg_finalize/embed_images.py (6370b), scripts/svg_finalize/fix_image_aspect.py (13656b), scripts/svg_finalize/flatten_tspan.py (16205b), scripts/svg_finalize/svg_rect_to_path.py (10698b), scripts/svg_position_calculator.py (54811b), scripts/svg_quality_checker.py (18782b), scripts/svg_repair_coordinator.py (15822b), scripts/svg_to_pptx.py (449b), scripts/svg_to_pptx/__init__.py (465b), scripts/svg_to_pptx/drawingml_context.py (3812b), scripts/svg_to_pptx/drawingml_converter.py (7655b), scripts/svg_to_pptx/drawingml_elements.py (29068b), scripts/svg_to_pptx/drawingml_paths.py (13801b), scripts/svg_to_pptx/drawingml_styles.py (11889b), scripts/svg_to_pptx/drawingml_utils.py (10052b), scripts/svg_to_pptx/pptx_builder.py (17409b), scripts/svg_to_pptx/pptx_cli.py (7591b), scripts/svg_to_pptx/pptx_dimensions.py (4188b), scripts/svg_to_pptx/pptx_discovery.py (2938b), scripts/svg_to_pptx/pptx_media.py (2418b), scripts/svg_to_pptx/pptx_notes.py (4625b), scripts/svg_to_pptx/pptx_slide_xml.py (4736b), scripts/total_md_split.py (10941b), scripts/update_repo.py (4289b), scripts/web_to_md.cjs (27305b), scripts/web_to_md.py (25871b), skill-card.md (2756b), SKILL.md (17217b)\n\nFile v1.2.3:SKILL.md\n\n---\nname: pptx-master\ndescription: >-\n  专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。\n  多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。\n  版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red grey 等新模板。\n\nread_when:\n  - 用户说\"生成 PPT\"、\"做 PPT\"、\"制作演示文稿\"、\"做个 PPT\"\n  - 用户提供 PDF 文件要求转换成 PPT\n  - 用户提供 DOCX/Word 文档要求转换成 PPT\n  - 用户提供 URL 要求提取内容生成 PPT\n  - 用户需要专业演示文稿（财报、技术汇报、商业演示）\n  - 用户明确要求\"原生可编辑\"、\"可修改\"的 PPT\n  - 用户提到\"pptx-master\"、\"ppt pro\"\n\nmetadata:\n  openclaw:\n    emoji: 📊\n    priority: high\n    category: content-generation\n    tags:\n      - ppt\n      - presentation\n      - slides\n      - 演示文稿\n    conflicts_with:\n      - ppt-video\n      - fireworks-tech-graph\n  clawhub:\n    license: MIT-0\n    tags: latest=1.2.3\n---\n\n# PPT Master Skill\n\n> AI-driven multi-format SVG content generation system. Converts source documents into high-quality SVG pages through multi-role collaboration and exports to PPTX.\n\n**Core Pipeline**: `Source Document → Create Project → Template Option → Strategist → [Image_Generator] → Executor → Post-processing → Export`\n\n> [!CAUTION]\n> ## 🚨 Global Execution Discipline (MANDATORY)\n>\n> **This workflow is a strict serial pipeline. The following rules have the highest priority — violating any one of them constitutes execution failure:**\n>\n> 1. **SERIAL EXECUTION** — Steps MUST be executed in order; the output of each step is the input for the next. Non-BLOCKING adjacent steps may proceed continuously once prerequisites are met, without waiting for the user to say \"continue\"\n> 2. **BLOCKING = HARD STOP** — Steps marked ⛔ BLOCKING require a full stop; the AI MUST wait for an explicit user response before proceeding and MUST NOT make any decisions on behalf of the user\n> 3. **NO CROSS-PHASE BUNDLING** — Cross-phase bundling is FORBIDDEN. (Note: the Eight Confirmations in Step 4 are ⛔ BLOCKING — the AI MUST present recommendations and wait for explicit user confirmation before proceeding. Once the user confirms, all subsequent non-BLOCKING steps — design spec output, SVG generation, speaker notes, and post-processing — may proceed automatically without further user confirmation)\n> 4. **GATE BEFORE ENTRY** — Each Step has prerequisites (🚧 GATE) listed at the top; these MUST be verified before starting that Step\n> 5. **NO SPECULATIVE EXECUTION** — \"Pre-preparing\" content for subsequent Steps is FORBIDDEN (e.g., writing SVG code during the Strategist phase)\n> 6. **NO SUB-AGENT SVG GENERATION** — Executor Step 6 SVG generation is context-dependent and MUST be completed by the current main agent end-to-end. Delegating page SVG generation to sub-agents is FORBIDDEN\n> 7. **SEQUENTIAL PAGE GENERATION ONLY** — In Executor Step 6, after the global design context is confirmed, SVG pages MUST be generated sequentially page by page in one continuous pass. Grouped page batches (for example, 5 pages at a time) are FORBIDDEN\n\n> [!IMPORTANT]\n> ## 🌐 Language & Communication Rule\n>\n> - **Response language**: Always match the language of the user's input and provided source materials. For example, if the user asks in Chinese, respond in Chinese; if the source material is in English, respond in English.\n> - **Explicit override**: If the user explicitly requests a specific language (e.g., \"请用英文回答\" or \"Reply in Chinese\"), use that language instead.\n> - **Template format**: The `design_spec.md` file MUST always follow its original English template structure (section headings, field names), regardless of the conversation language. Content values within the template may be in the user's language.\n\n> [!IMPORTANT]\n> ## 🔌 Compatibility With Generic Coding Skills\n>\n> - `pptx-master` is a repository-specific workflow skill, not a general application scaffold\n> - Do NOT create or require `.worktrees/`, `tests/`, branch workflows, or other generic engineering structure by default\n> - If another generic coding skill suggests repository conventions that conflict with this workflow, follow this skill first unless the user explicitly asks otherwise\n\n## Main Pipeline Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `${SKILL_DIR}/scripts/pdf_to_md.py` | PDF to Markdown |\n| `${SKILL_DIR}/scripts/doc_to_md.py` | Documents to Markdown via Pandoc (DOCX, EPUB, HTML, LaTeX, RST, etc.) |\n| `${SKILL_DIR}/scripts/web_to_md.py` | Web page to Markdown |\n| `${SKILL_DIR}/scripts/web_to_md.cjs` | WeChat / high-security sites to Markdown |\n| `${SKILL_DIR}/scripts/project_manager.py` | Project init / validate / manage |\n| `${SKILL_DIR}/scripts/analyze_images.py` | Image analysis |\n| `${SKILL_DIR}/scripts/image_gen.py` | AI image generation (multi-provider) |\n| `${SKILL_DIR}/scripts/svg_quality_checker.py` | SVG quality check |\n| `${SKILL_DIR}/scripts/total_md_split.py` | Speaker notes splitting |\n| `${SKILL_DIR}/scripts/finalize_svg.py` | SVG post-processing (unified entry) |\n| `${SKILL_DIR}/scripts/svg_to_pptx.py` | Export to PPTX |\n\nFor complete tool documentation, see `${SKILL_DIR}/scripts/README.md`.\n\n## Template Index\n\n| Index | Path | Purpose |\n|-------|------|---------|\n| Layout templates | `${SKILL_DIR}/templates/layouts/layouts_index.json` | Query available page layout templates |\n| Chart templates | `${SKILL_DIR}/templates/charts/charts_index.json` | Query available chart SVG templates |\n| Icon library | `${SKILL_DIR}/templates/icons/` | Search icons on demand: `ls templates/icons/<library>/ \\| grep <keyword>` (libraries: `chunk/`, `tabler-filled/`, `tabler-outline/`) |\n\n## Standalone Workflows\n\n| Workflow | Path | Purpose |\n|----------|------|---------|\n| `create-template` | `workflows/create-template.md` | Standalone template creation workflow |\n\n---\n\n## Workflow\n\n### Step 1: Source Content Processing\n\n🚧 **GATE**: User has provided source material (PDF / DOCX / EPUB / URL / Markdown file / text description / conversation content — any form is acceptable).\n\nWhen the user provides non-Markdown content, convert immediately:\n\n| User Provides | Command |\n|---------------|---------|\n| PDF file | `python3 ${SKILL_DIR}/scripts/pdf_to_md.py <file>` |\n| DOCX / Word / Office document | `python3 ${SKILL_DIR}/scripts/doc_to_md.py <file>` |\n| EPUB / HTML / LaTeX / RST / other | `python3 ${SKILL_DIR}/scripts/doc_to_md.py <file>` |\n| Web link | `python3 ${SKILL_DIR}/scripts/web_to_md.py <URL>` |\n| WeChat / high-security site | `node ${SKILL_DIR}/scripts/web_to_md.cjs <URL>` |\n| Markdown | Read directly |\n\n**✅ Checkpoint — Confirm source content is ready, proceed to Step 2.**\n\n---\n\n### Step 2: Project Initialization\n\n🚧 **GATE**: Step 1 complete; source content is ready (Markdown file, user-provided text, or requirements described in conversation are all valid).\n\n```bash\npython3 ${SKILL_DIR}/scripts/project_manager.py init <project_name> --format <format>\n```\n\nFormat options: `ppt169` (default), `ppt43`, `xhs`, `story`, etc. For the full format list, see `references/canvas-formats.md`.\n\nImport source content (choose based on the situation):\n\n| Situation | Action |\n|-----------|--------|\n| Has source files (PDF/MD/etc.) | `python3 ${SKILL_DIR}/scripts/project_manager.py import-sources <project_path> <source_files...> --move` |\n| User provided text directly in conversation | No import needed — content is already in conversation context; subsequent steps can reference it directly |\n\n> ⚠️ **MUST use `--copy`**: All source files (original PDF / MD / images) MUST be **copied** (not moved) into `sources/` for archiving.\n> - Markdown files generated in Step 1, original PDFs, original MDs — **all** must be copied into the project via `import-sources --copy`\n> - Intermediate artifacts (e.g., `_files/` directories) are handled automatically by `import-sources`\n> - Original source files remain at their original location after copying\n\n**✅ Checkpoint — Confirm project structure created successfully, `sources/` contains all source files, converted materials are ready. Proceed to Step 3.**\n\n---\n\n### Step 3: Template Selection\n\n🚧 **GATE**: Step 2 complete; project directory structure is ready.\n\n⛔ **BLOCKING**: If the user has not yet clearly expressed whether to use a template, you MUST present options and **wait for an explicit user response** before proceeding. If the user has previously stated \"no template\" or specified a particular template, skip this prompt and proceed directly.\n\n**⚡ Early-exit**: If the user has already stated \"no template\" / \"不使用模板\" / \"自由设计\" (or equivalent) at any prior point in the conversation, **do NOT query `layouts_index.json`** — skip directly to Step 4. This avoids unnecessary token consumption.\n\n**Template recommendation flow** (only when the user has NOT yet decided):\nQuery `${SKILL_DIR}/templates/layouts/layouts_index.json` to list available templates and their style descriptions. Note: New templates include HUAWEI and red grey layouts.\n**When presenting options, you MUST provide a professional recommendation based on the current PPT topic and content** (recommend a specific template or free design, with reasoning), then ask the user:\n\n> 💡 **AI Recommendation**: Based on your content topic (brief summary), I recommend **[specific template / free design]** because...\n>\n> Which approach would you prefer?\n> **A) Use an existing template** (please specify template name or style preference - note: new options include HUAWEI and red grey templates)\n> **B) No template** — free design\n\nAfter the user confirms option A, copy template files to the project directory:\n```bash\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.svg <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/design_spec.md <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.png <project_path>/images/ 2>/dev/null || true\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.jpg <project_path>/images/ 2>/dev/null || true\n```\n\nAfter the user confirms option B, proceed directly to Step 4.\n\n> To create a new global template, read `workflows/create-template.md`\n\n**✅ Checkpoint — User has responded with template selection, template files copied (if option A). Proceed to Step 4.**\n\n---\n\n### Step 4: Strategist Phase (MANDATORY — cannot be skipped)\n\n🚧 **GATE**: Step 3 complete; user has confirmed template selection.\n\nFirst, read the role definition:\n```\nRead references/strategist.md\n```\n\n**Must complete the Eight Confirmations** (refer to `templates/design_spec_reference.md` for the template structure):\n\n⛔ **BLOCKING**: The Eight Confirmations MUST be presented to the user as a bundled set of recommendations, and you MUST **wait for the user to confirm or modify** before outputting the Design Specification & Content Outline. This is one of only two core confirmation points in the workflow (the other is template selection). Once confirmed, all subsequent script execution and slide generation should proceed fully automatically.\n\n1. Canvas format\n2. Page count range\n3. Target audience\n4. Style objective\n5. Color scheme\n6. Icon usage approach\n7. Typography plan\n8. Image usage approach\n\nIf the user has provided images, run the analysis script **before outputting the design spec** (do NOT directly read/open image files — use the script output only):\n```bash\npython3 ${SKILL_DIR}/scripts/analyze_images.py <project_path>/images\n```\n\n> ⚠️ **Image handling rule**: The AI must NEVER directly read, open, or view image files (`.jpg`, `.png`, etc.). All image information must come from the `analyze_images.py` script output or the Design Specification's Image Resource List.\n\n**Output**: `<project_path>/design_spec.md`\n\n**✅ Checkpoint — Phase deliverables complete, auto-proceed to next step**:\n```markdown\n## ✅ Strategist Phase Complete\n- [x] Eight Confirmations completed (user confirmed)\n- [x] Design Specification & Content Outline generated\n- [ ] **Next**: Auto-proceed to [Image_Generator / Executor] phase\n```\n\n---\n\n### Step 5: Image_Generator Phase (Conditional)\n\n🚧 **GATE**: Step 4 complete; Design Specification & Content Outline generated and user confirmed.\n\n> **Trigger condition**: Image approach includes \"AI generation\". If not triggered, skip directly to Step 6 (Step 6 GATE must still be satisfied).\n\nRead `references/image-generator.md`\n\n1. Extract all images with status \"pending generation\" from the design spec\n2. Generate prompt document → `<project_path>/images/image_prompts.md`\n3. Generate images (CLI tool recommended):\n   ```bash\n   python3 ${SKILL_DIR}/scripts/image_gen.py \"prompt\" --aspect_ratio 16:9 --image_size 1K -o <project_path>/images\n   ```\n\n**✅ Checkpoint — Confirm all images are ready, proceed to Step 6**:\n```markdown\n## ✅ Image_Generator Phase Complete\n- [x] Prompt document created\n- [x] All images saved to images/\n```\n\n---\n\n### Step 6: Executor Phase\n\n🚧 **GATE**: Step 4 (and Step 5 if triggered) complete; all prerequisite deliverables are ready.\n\nRead the role definition based on the selected style:\n```\nRead references/executor-base.md          # REQUIRED: common guidelines\nRead references/executor-general.md       # General flexible style\nRead references/executor-consultant.md    # Consulting style\nRead references/executor-consultant-top.md # Top consulting style (MBB level)\n```\n\n> Only need to read executor-base + one style file.\n\n**Design Parameter Confirmation (Mandatory)**: Before generating the first SVG, the Executor MUST review and output key design parameters from the Design Specification (canvas dimensions, color scheme, font plan, body font size) to ensure spec adherence. See executor-base.md Section 2 for details.\n\n> ⚠️ **Main-agent only rule**: SVG generation in Step 6 MUST remain with the current main agent because page design depends on full upstream context (source content, design spec, template mapping, image decisions, and cross-page consistency). Do NOT delegate any slide SVG generation to sub-agents.\n> ⚠️ **Generation rhythm rule**: After confirming the global design parameters, the Executor MUST generate pages sequentially, one page at a time, while staying in the same continuous main-agent context. Do NOT split Step 6 into grouped page batches such as 5 pages per batch.\n\n**Visual Construction Phase**:\n- Generate SVG pages sequentially, one page at a time, in one continuous pass → `<project_path>/svg_output/`\n\n**Logic Construction Phase**:\n- Generate speaker notes → `<project_path>/notes/total.md`\n\n**✅ Checkpoint — Confirm all SVGs and notes are fully generated. Proceed directly to Step 7 post-processing**:\n```markdown\n## ✅ Executor Phase Complete\n- [x] All SVGs generated to svg_output/\n- [x] Speaker notes generated at notes/total.md\n```\n\n---\n\n### Step 7: Post-processing & Export\n\n🚧 **GATE**: Step 6 complete; all SVGs generated to `svg_output/`; speaker notes `notes/total.md` generated.\n\n> ⚠️ The following three sub-steps MUST be **executed individually one at a time**. Each command must complete and be confirmed successful before running the next.\n> ❌ **NEVER** put all three commands in a single code block or single shell invocation.\n\n**Step 7.1** — Split speaker notes:\n```bash\npython3 ${SKILL_DIR}/scripts/total_md_split.py <project_path>\n```\n\n**Step 7.2** — SVG post-processing (icon embedding / image crop & embed / text flattening / rounded rect to path):\n```bash\npython3 ${SKILL_DIR}/scripts/finalize_svg.py <project_path>\n```\n\n**Step 7.3** — Export PPTX (embeds speaker notes by default):\n```bash\npython3 ${SKILL_DIR}/scripts/svg_to_pptx.py <project_path> -s final\n# Default: generates two files — native shapes (.pptx) + SVG reference (_svg.pptx)\n# Use --only native  to skip SVG reference version\n# Use --only legacy  to only generate SVG image version\n```\n\n> ❌ **NEVER** use `cp` as a substitute for `finalize_svg.py` — it performs multiple critical processing steps\n> ❌ **NEVER** export directly from `svg_output/` — MUST use `-s final` to export from `svg_final/`\n> ❌ **NEVER** add extra flags like `--only`\n\n---\n\n## Role Switching Protocol\n\nBefore switching roles, you **MUST first read** the corresponding reference file — skipping is FORBIDDEN. Output marker:\n\n```markdown\n## [Role Switch: <Role Name>]\n📖 Reading role definition: references/<filename>.md\n📋 Current task: <brief description>\n```\n\n---\n\n## Reference Resources\n\n| Resource | Path |\n|----------|------|\n| Shared technical constraints | `references/shared-standards.md` |\n| Canvas format specification | `references/canvas-formats.md` |\n| Image layout specification | `references/image-layout-spec.md` |\n| SVG image embedding | `references/svg-image-embedding.md` |\n\n---\n\n## Notes\n\n- Do NOT add extra flags like `--only` to the post-processing commands — run them as-is\n- Local preview: `python3 -m http.server -d <project_path>/svg_final 8000`\n\nFile v1.2.3:README.md\n\n# PPT Master\n\nAI-driven multi-format SVG content generation system for professional presentations.\n\n## Version History\n\n### v1.2.1 (2026-04-19) - XML Validation Enhancement\n\n**Fixed:**\n- **SVG Content Checker** now validates XML syntax before content analysis\n- Detects mismatched tags (e.g., `<tspan>...</text>`)\n- Catches malformed SVG that would cause rendering failures\n\n**Technical Details:**\n- Added `xml.etree.ElementTree.fromstring()` validation in `_check_content_elements()`\n- XML parse errors now block the workflow with clear error messages\n- Prevents false-positive \"passes\" on malformed SVG files\n\n**Issue Resolved:**\n- Page 7 of AI Weekly Report PPT was blank due to XML tag mismatch\n- Root cause: `<tspan>` closed with `</text>` instead of `</tspan>`\n- Old checker missed it because it only counted string occurrences\n\n---\n\n### v1.2.0 (2026-04-18) - Content Review & Auto-Repair\n\n**Added:**\n- **SVG Content Checker** (`scripts/svg_content_checker.py`)\n  - Blank page detection (text elements < 2 AND file size < 500 bytes)\n  - Content density scoring (0-100%)\n  - Design consistency checking (colors, fonts)\n  - Structure completeness evaluation\n- **SVG Repair Coordinator** (`scripts/svg_repair_coordinator.py`)\n  - Automatic repair workflow\n  - Regeneration prompt generation for blank pages\n  - Fallback to placeholder pages when repair fails\n- **Step 6.5** in workflow: Content Review & Auto-Repair\n  - Automatic check after SVG generation\n  - Non-blocking: warnings allow continuation\n  - Blocking: blank pages trigger repair workflow\n\n**Changed:**\n- `SKILL.md`: Added Step 6.5 between SVG generation and post-processing\n- Tool list: Added svg_content_checker.py and svg_repair_coordinator.py\n\n**Use Case:**\n- Automatically detect blank pages before PPTX export\n- Generate repair prompts for manual regeneration\n- Ensure presentation quality before delivery\n\n---\n\n### v1.1.1 (2026-04-11) - Huawei Template Integration\n\n**Added:**\n- Huawei Technologies brand template (`华为技术`)\n- New `enterprise` quick lookup category in template index\n- Template count updated to 21\n\n**Changed:**\n- `layouts_index.json`: Added Huawei template to brand category and technology/enterprise lookups\n- `README.md`: Updated template index with Huawei template details\n\n**Use Case:**\n- Enterprise reports, solution showcases, annual reports, B2B client communication\n- Minimalist tech style with Huawei red accents and professional gray tones\n\n---\n\n### v1.1.0 (2026-04-09) - Source File Handling Update\n\n**Changed:**\n- Source files are now **copied** (not moved) to `sources/` directory by default\n- Original files are preserved at their source location\n- Use `--move` flag if you want to move files instead of copying\n\n**Previous behavior (v1.0.x):**\n- Source files were moved to `sources/`, removing them from original location\n\n**Rationale:**\n- Safer default behavior - originals are preserved\n- Users can still opt-in to move behavior with `--move` flag\n- Reduces risk of accidental data loss\n\n---\n\n### v1.0.0 (2026-04-08) - Initial Release\n\n**Features:**\n- Multi-format input support (PDF, DOCX, EPUB, HTML, URL, Markdown)\n- Professional SVG generation with design system\n- Template-based and free-design modes\n- Eight Confirmations design specification\n- PPTX export with speaker notes\n- Icon embedding and image processing\n\n---\n\n## Usage\n\n```bash\n# Initialize project\npython3 scripts/project_manager.py init <project_name> --format ppt169\n\n# Import source files (default: copy, preserve originals)\npython3 scripts/project_manager.py import-sources <project_path> <source_files...>\n\n# Import source files (move mode - remove originals)\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\n\n# Generate PPTX\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\n## License\n\nMIT\n\nFile v1.2.3:scripts/README.md\n\n# PPT Master Toolset\n\nThis directory contains user-facing scripts for conversion, project setup, SVG processing, export, and image generation.\n\n## Directory Layout\n\n- Top-level `scripts/`: runnable entry scripts\n- `scripts/image_backends/`: internal provider implementations used by `image_gen.py`\n- `scripts/svg_finalize/`: internal post-processing helpers used by `finalize_svg.py`\n- `scripts/docs/`: topic-focused script documentation\n- `scripts/assets/`: static assets consumed by scripts\n\n## Quick Start\n\nTypical end-to-end workflow:\n\n```bash\npython3 scripts/pdf_to_md.py <file.pdf>\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\n```\n\n## Script Index\n\n| Area | Primary scripts | Documentation |\n|------|-----------------|---------------|\n| Conversion | `pdf_to_md.py`, `doc_to_md.py`, `web_to_md.py`, `web_to_md.cjs` | [docs/conversion.md](./docs/conversion.md) |\n| Project management | `project_manager.py`, `batch_validate.py`, `generate_examples_index.py`, `error_helper.py`, `pptx_template_import.py` | [docs/project.md](./docs/project.md) |\n| SVG pipeline | `finalize_svg.py`, `svg_to_pptx.py`, `total_md_split.py`, `svg_quality_checker.py` | [docs/svg-pipeline.md](./docs/svg-pipeline.md) |\n| Image tools | `image_gen.py`, `analyze_images.py`, `gemini_watermark_remover.py` | [docs/image.md](./docs/image.md) |\n| Repo maintenance | `update_repo.py` | README install/update section |\n| Troubleshooting | validation, preview, export, dependency issues | [docs/troubleshooting.md](./docs/troubleshooting.md) |\n\n## High-Frequency Commands\n\nProject setup:\n\n```bash\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/project_manager.py validate <project_path>\n```\n\nTemplate source import:\n\n```bash\npython3 scripts/pptx_template_import.py <template.pptx>\n```\n\nPost-processing and export:\n\n```bash\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nImage generation:\n\n```bash\npython3 scripts/image_gen.py \"A modern futuristic workspace\"\npython3 scripts/image_gen.py --list-backends\npython3 scripts/analyze_images.py <project_path>/images\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\npython3 scripts/update_repo.py --skip-pip\n```\n\n## Recommendations\n\n- Keep new runnable scripts at the top level of `scripts/`\n- Move provider-specific or helper internals into subdirectories\n- Prefer the unified entry points `project_manager.py`, `finalize_svg.py`, and `image_gen.py`\n- Prefer `svg_final/` over `svg_output/` when exporting\n\n## Related Docs\n\n- [Conversion Tools](./docs/conversion.md)\n- [Project Tools](./docs/project.md)\n- [SVG Pipeline Tools](./docs/svg-pipeline.md)\n- [Image Tools](./docs/image.md)\n- [Troubleshooting](./docs/troubleshooting.md)\n- [AGENTS Guide](../../../AGENTS.md)\n\n_Last updated: 2026-03-26_\n\nFile v1.2.3:templates/charts/README.md\n\n# SVG Chart Template Library (33 Types)\n\nThis directory provides **33 standardized SVG chart templates** for use as chart selection references in PPT Master.\n\n- **Full Index**: [README.md](./README.md) (human browsing)\n- **JSON Index**: [charts_index.json](./charts_index.json) (AI / programmatic lookup — preferred)\n\nBefore generating chart pages, review the corresponding template file to understand its structure and layout.\n\n## Quick Selection\n\n> **AI / Programmatic recommendation**: Prefer reading `charts_index.json`; use this README for human browsing and quick comparison.\n\n| I want to show... | Recommended Template | Filename |\n|-------------------|---------------------|----------|\n| Key numeric metrics | KPI Cards | `kpi_cards.svg` |\n| Category value comparison | Bar Chart | `bar_chart.svg` |\n| Long-label rankings | Horizontal Bar Chart | `horizontal_bar_chart.svg` |\n| Multi-series comparison | Grouped Bar Chart | `grouped_bar_chart.svg` |\n| Time trends | Line Chart | `line_chart.svg` |\n| Cumulative trends | Area Chart | `area_chart.svg` |\n| Proportional composition | Pie / Donut Chart | `pie_chart.svg` / `donut_chart.svg` |\n| Goal completion rate | Progress Bar / Gauge | `progress_bar_chart.svg` / `gauge_chart.svg` |\n| Conversion funnel | Funnel Chart | `funnel_chart.svg` |\n| Project scheduling | Gantt Chart | `gantt_chart.svg` |\n| Milestone events | Timeline | `timeline.svg` |\n| Multi-dimensional assessment | Radar Chart | `radar_chart.svg` |\n| Bidirectional comparison | Butterfly Chart | `butterfly_chart.svg` |\n| Incremental breakdown | Waterfall Chart | `waterfall_chart.svg` |\n| Flow / fund allocation | Sankey Chart | `sankey_chart.svg` |\n| Strategic analysis | SWOT / Porter's Five Forces | `swot_analysis.svg` / `porter_five_forces.svg` |\n| Quadrant analysis | Matrix (2x2) | `matrix_2x2.svg` |\n\n## Full Chart Index\n\n### Comparison\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `bar_chart.svg` | Vertical bar comparison (3-8 bars) | Sales comparison, regional ranking |\n| `horizontal_bar_chart.svg` | Horizontal bar ranking (5-12 bars) | Brand ranking, satisfaction scores |\n| `grouped_bar_chart.svg` | Multi-series grouped comparison | Quarterly product line comparison, YoY/QoQ |\n| `stacked_bar_chart.svg` | Stacked composition comparison | Revenue composition, market share changes |\n| `butterfly_chart.svg` | Bidirectional comparison | Population pyramid, A/B testing, income vs expense |\n| `bullet_chart.svg` | Target vs actual | KPI achievement, performance evaluation |\n| `dumbbell_chart.svg` | Multi-dimension score comparison | Competitive analysis, composite index |\n| `waterfall_chart.svg` | Incremental change breakdown | Profit decomposition, budget variance |\n\n### Trends\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `line_chart.svg` | Line trend (multi-line support) | Time series, growth trends |\n| `area_chart.svg` | Area cumulative trend | Traffic trends, user growth |\n| `stacked_area_chart.svg` | Multi-series stacked trend | Revenue sources, traffic source changes |\n| `dual_axis_line_chart.svg` | Dual Y-axis different-unit comparison | Sales vs profit margin, traffic vs conversion rate |\n\n### Proportions\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `pie_chart.svg` | Basic proportion (3-6 slices) | Market share, budget allocation |\n| `donut_chart.svg` | Ring proportion (with center data) | Structural proportion, category composition |\n| `treemap_chart.svg` | Hierarchical area proportion | Budget allocation, market share composition |\n\n### Metrics\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `kpi_cards.svg` | Key metric cards (2x2 / 1x4) | Financial overview, data dashboard |\n| `gauge_chart.svg` | Gauge completion rate | KPI completion, performance monitoring |\n| `progress_bar_chart.svg` | Multi-item progress bars | OKR progress, project completion |\n\n### Analysis\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `radar_chart.svg` | Multi-dimensional assessment (4-8 axes) | Capability assessment, competitive comparison |\n| `scatter_chart.svg` | Correlation / distribution | Input-output analysis, price-demand |\n| `funnel_chart.svg` | Conversion funnel (3-5 stages) | Sales funnel, user conversion |\n| `matrix_2x2.svg` | Four-quadrant analysis | BCG matrix, priority analysis |\n| `bubble_chart.svg` | 3D bubble (X/Y/Size) | Market size vs growth rate vs share |\n| `heatmap_chart.svg` | Matrix heatmap | User activity periods, correlation matrix |\n| `pareto_chart.svg` | 80/20 Pareto analysis | Quality attribution, sales contribution |\n| `box_plot_chart.svg` | Box plot distribution | Salary distribution, quality control |\n\n### Project Management / Relationships\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `gantt_chart.svg` | Gantt schedule (6-12 tasks) | Project management, product roadmap |\n| `timeline.svg` | Timeline events (3-8 nodes) | Milestones, historical evolution |\n| `process_flow.svg` | Process flow steps | Business processes, operational guides |\n| `org_chart.svg` | Org structure (2-4 levels) | Company structure, reporting relationships |\n| `sankey_chart.svg` | Data flow (three-tier) | Budget flow, user conversion paths |\n\n### Strategic Frameworks\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `swot_analysis.svg` | SWOT four-quadrant analysis | Strategic planning, competitive analysis |\n| `porter_five_forces.svg` | Porter's Five Forces model | Industry analysis, market entry assessment |\n\nFile v1.2.3:templates/icons/README.md\n\n# SVG Icon Library\n\nThis directory provides **6000+ high-quality SVG icons** from [Tabler Icons](https://tabler.io/icons) that can be directly embedded into SVG files generated by PPT Master.\n\n## Libraries\n\n| Library | Style | Count | viewBox | Prefix |\n|---------|-------|-------|---------|--------|\n| `tabler-filled` | fill / solid | 1000+ | `0 0 24 24` | `tabler-filled/` |\n| `tabler-outline` | stroke / line | 5000+ | `0 0 24 24` | `tabler-outline/` |\n\n> `chunk/` exists only for backward compatibility with older projects. Do **not** use it in new work.\n\n---\n\n## Usage\n\nUse placeholder syntax **during SVG generation**:\n\n```xml\n<!-- tabler-filled (solid style) -->\n<use data-icon=\"tabler-filled/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#0076A8\"/>\n\n<!-- tabler-outline (line style) -->\n<use data-icon=\"tabler-outline/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#0076A8\"/>\n```\n\n**Attributes**:\n- `data-icon` — `<library>/<icon-name>` (filename without `.svg`)\n- `x`, `y` — Position\n- `width`, `height` — Size (base 24px; `width=48` → `scale(2)`)\n- `fill` — Color\n\n`finalize_svg.py` auto-embeds all placeholders during post-processing. To run manually:\n\n```bash\npython3 scripts/svg_finalize/embed_icons.py svg_output/*.svg\n```\n\n---\n\n## Searching for Icons\n\nUse `ls | grep` — zero token cost:\n\n```bash\nls skills/pptx-master/templates/icons/tabler-filled/ | grep home\nls skills/pptx-master/templates/icons/tabler-outline/ | grep chart\n```\n\n---\n\n## Style Rules\n\n- **Fill / Solid**: use `tabler-filled`\n- **Stroke / Line**: use `tabler-outline`\n- ⚠️ Do **not** mix fill and outline icons in the same presentation\n\nFile v1.2.3:templates/layouts/README.md\n\n# Page Layout Template Library (20 Templates)\n\nPre-built PPT page layout templates supporting multiple styles and use cases.\n\n- **Full Index**: [README.md](./README.md) (human browsing)\n- **JSON Index**: [layouts_index.json](./layouts_index.json) (AI / programmatic lookup — preferred)\n\n> **AI / Programmatic recommendation**: Prefer reading `layouts_index.json`; use this README for human browsing and quick comparison.\n\n---\n\n## Quick Template Index\n\n| Template Name | Category | Use Cases | Primary Color | Design Tone |\n|---------------|----------|-----------|---------------|-------------|\n| `google_style` | Brand | Annual reports, tech sharing, data presentation | Google Four Colors `#4285F4` `#EA4335` `#FBBC04` `#34A853` | Modern clean, data-driven, ample whitespace |\n| `mckinsey` | Brand | Strategic consulting, executive reports, investment analysis | McKinsey Blue `#005587` | Structured thinking, minimalist premium, MECE principle |\n| `anthropic` | Brand | AI tech sharing, developer conferences, product launches | Anthropic Orange `#D97757` | Tech-forward, conclusion-first, dark cover |\n| `中汽研_常规` | Brand | Product certification, evaluation & testing | Deep Blue `#004098` | [Standard] Professional authority, consulting style |\n| `中汽研_商务` | Brand | Business visits, technical exchanges | Blue Gradient `#003366` | [Business] Modern tech, composed and sophisticated |\n| `中汽研_现代` | Brand | Strategic launches, future tech | Deep Blue `#001529` | [Future] Future Tech, neon glow |\n| `中国电建_常规` | Brand | Power & energy, engineering, state-owned enterprise reports | PowerChina Blue `#00418D` | Craftsmanship, steady and reliable |\n| `中国电建_现代` | Brand | International engineering, premium roadshows, tech innovation | Deep Sea Blue `#001F45` | [Modern] Grand narrative, digital tech |\n| `招商银行` | Brand | Premium reports, VIP services, annual reports | CMB Red `#C41230` | Minimalist luxury, financial texture, borderless |\n| `exhibit` | General | Exhibit-driven strategic reports, executive presentations, board briefings | Gradient top bar + Gold accents | Conclusion-first, data-driven, confidential |\n| `academic_defense` | Scenario | Thesis defense, academic reports, grant proposals | Deep Blue + Red accents | Clear hierarchy, academic standards |\n| `psychology_attachment` | Scenario | Psychotherapy training, counseling lectures | Blue-green gradient + Colorful semantic colors | Warm professional, therapeutic feel |\n| `medical_university` | Scenario | Medical reports, case discussions, research presentations | Medical Blue `#0066B3` | Professional rigorous, life-affirming |\n| `government_red` | Government/Enterprise | Government work reports, party-building presentations | Government Red `#8B0000` | Solemn authority, grand and imposing |\n| `government_blue` | Government/Enterprise | Smart cities, open governance, digital transformation | Tech Blue `#0050B3` | Modern tech, rigorous and rational |\n| `ai_ops` | Government/Enterprise | Telecom AI ops, IT system overview, digital intelligence solutions | Telecom Red `#C00000` + Blue `#2E75B6` | High information density, modular layout, telecom style |\n| `pixel_retro` | Special | Git/tech introductions, retro gaming themes | Neon colors `#00FF41` `#FF0080` | Pixel art, cyberpunk |\n| `科技蓝商务` | General | Corporate reports, product launches, proposals | Tech Blue `#0078D7` | Tech, business, professional, clean |\n| `smart_red` | General | Tech company profiles, education solutions | Smart Red-Orange `#DE3545` | Modern, vibrant, geometric |\n| `重庆大学` | Scenario | Academic defense, research presentations | CQU Blue `#006BB7` | Academic solidity, mountain-city character |\n---\n\n## Template Categories\n\n### 1. Brand Style Templates\n\nTemplates mimicking **specific well-known brands/institutions** with their exclusive design style.\n> **Characteristics**: Distinctive brand identity (specific logos, color schemes, VI standards), suitable for internal or external presentations of that organization. Examples: Google, McKinsey, PowerChina.\n\n| Template | Description |\n|----------|-------------|\n| `google_style` | Google Material Design style, four-color brand identity |\n| `mckinsey` | McKinsey consulting style, data-driven and structured |\n| `anthropic` | Anthropic AI style, dark tech-forward aesthetic |\n| `中汽研_常规` | CATARC standard style (v1), suitable for certification and evaluation |\n| `中汽研_商务` | CATARC business style (v2), modern tech business, composed and sophisticated |\n| `中汽研_现代` | CATARC modern style (v3 Future), Future Tech style, deep blue + neon cyan |\n| `中国电建_常规` | PowerChina standard style (v1), suitable for power, energy, and engineering SOEs |\n| `中国电建_现代` | PowerChina modern style (v2), emphasis on grand narrative and digital tech |\n| `招商银行` | China Merchants Bank v2.0, minimalist luxury, borderless open layout |\n\n### 2. General Style Templates\n\nUniversal business styles not tied to any specific brand, broadly applicable.\n\n| Template | Description |\n|----------|-------------|\n| `exhibit` | Exhibit-driven style, conclusion-first layout with Exhibit takeaway bar, gradient top bar, grid decoration |\n| `科技蓝商务` | Tech business style, rigorous and professional, hexagonal texture |\n| `smart_red` | Smart red-orange business style, modern and vibrant, geometric cutaway design |\n\n### 3. Scenario-Specific Templates\n\nDesigned for **specific use cases**, with content structures tailored to scenario requirements.\n\n| Template | Description |\n|----------|-------------|\n| `academic_defense` | Academic defense, clear research content hierarchy |\n| `psychology_attachment` | Psychotherapy theme, warm and professional color palette |\n| `medical_university` | Hospital / medical university template, suitable for medical reports |\n| `重庆大学` | Chongqing University template, blending mountain-city layered imagery with modern academic style |\n\n### 4. Government & Enterprise Templates\n\nIndustry-standard designs for **government agencies and general state-owned enterprises**.\n> **Distinction**: Unlike brand styles, these are not targeted at specific organizations but provide templates matching the common aesthetic preferences of government/SOE contexts (e.g., official document red, smart governance blue).\n\n| Template | Description |\n|----------|-------------|\n| `government_red` | Red government style, suitable for government work reports, party-building events |\n| `government_blue` | Blue government style, suitable for smart cities, digital governance reports |\n| `ai_ops` | Enterprise digital intelligence style, telecom AI ops architecture, high-density reports (includes `reference_style.svg` style reference) |\n\n### 5. Special Style Templates\n\nUnconventional visual styles for specific creative scenarios.\n\n| Template | Description |\n|----------|-------------|\n| `pixel_retro` | Pixel retro style, cyberpunk / gaming themes |\n\n> **Design philosophy**: Style and scenario are **orthogonal** concepts. Scenario templates define content structure; style templates define visual presentation. In theory, scenario templates can be combined with different styles.\n\n---\n\n## Template File Structure\n\nEach template should contain the following standard files (TOC page is optional):\n\n| Filename | Required | Purpose | Description |\n|----------|----------|---------|-------------|\n| `design_spec.md` | Yes | Design specification | Complete color, typography, and layout specs |\n| `01_cover.svg` | Yes | Cover page | Title, subtitle, date, organization |\n| `02_toc.svg` | Optional | Table of contents | Chapter list, navigation |\n| `02_chapter.svg` | Yes | Chapter page | Chapter number, chapter title |\n| `03_content.svg` | Yes | Content page | Fixed header/footer, flexible content area |\n| `04_ending.svg` | Yes | Ending page | Thank-you message, contact info |\n\n> **Design philosophy**: Templates define visual consistency and structural pages; content pages maintain maximum flexibility, letting AI determine layout based on actual content.\n\n---\n\n## design_spec.md Standard Structure\n\nAll template design specification documents should follow this chapter structure:\n\n```markdown\n# [Template Name] - Design Specification\n\n> One-line description of applicable scenarios\n\n## I. Template Overview\n## II. Canvas Specification\n## III. Color Scheme\n## IV. Typography System\n## V. Page Structure\n## VI. Page Types\n## VII. Layout Modes (Recommended)\n## VIII. Spacing Specification\n## IX. SVG Technical Constraints\n## X. Placeholder Specification\n## XI. Usage Guide (Recommended)\n```\n\n---\n\n## Placeholder Specification\n\nTemplates use `{{PLACEHOLDER}}` format to mark replaceable content:\n\n> For **newly created library templates**, use the canonical placeholder contract below. Some existing templates still contain legacy placeholder variants; those should be treated as historical exceptions rather than the standard for new assets.\n\n### General Placeholders\n\n| Placeholder | Purpose | Applicable Pages |\n|-------------|---------|-----------------|\n| `{{TITLE}}` | Main title | Cover |\n| `{{SUBTITLE}}` | Subtitle | Cover |\n| `{{DATE}}` | Date | Cover, Ending |\n| `{{AUTHOR}}` | Author / Organization (Chinese) | Cover |\n| `{{AUTHOR_EN}}` | Author / Organization (English) | Cover |\n\n### Chapter-Related\n\n| Placeholder | Purpose | Applicable Pages |\n|-------------|---------|-----------------|\n| `{{CHAPTER_NUM}}` | Chapter number | Chapter, Content |\n| `{{CHAPTER_TITLE}}` | Chapter title | Chapter |\n| `{{CHAPTER_TITLE_EN}}` | Chapter English subtitle | Chapter |\n\n### Content Page\n\n| Placeholder | Purpose | Applicable Pages |\n|-------------|---------|-----------------|\n| `{{PAGE_TITLE}}` | Page title | Content |\n| `{{CONTENT_AREA}}` | Content area placeholder | Content |\n| `{{PAGE_NUM}}` | Page number | Content, Ending |\n| `{{SOURCE}}` | Data source | Content footer |\n\n### Table of Contents\n\n| Placeholder | Purpose |\n|-------------|---------|\n| `{{TOC_ITEM_1_TITLE}}` ~ `{{TOC_ITEM_N_TITLE}}` | TOC item titles |\n| `{{TOC_ITEM_1_DESC}}` ~ `{{TOC_ITEM_N_DESC}}` | Optional TOC item descriptions |\n| `{{TOC_ITEM_1}}` ~ `{{TOC_ITEM_N}}` | Legacy simple TOC items; do not use for new templates unless no description field is needed |\n\n### Ending Page\n\n| Placeholder | Purpose |\n|-------------|---------|\n| `{{THANK_YOU}}` | Thank-you message |\n| `{{ENDING_SUBTITLE}}` | Ending page subtitle |\n| `{{CLOSING_MESSAGE}}` | Closing message |\n| `{{CONTACT_INFO}}` | Contact information |\n\n---\n\n## Usage\n\n### Copy from Template Library to Project\n\n```bash\n# Copy exhibit style template to project\ncp templates/layouts/exhibit/* projects/<project>/templates/\n\n# Copy Google style template to project\ncp templates/layouts/google_style/* projects/<project>/templates/\n\n# Copy government style template to project (e.g., government red)\ncp templates/layouts/government_red/* projects/<project>/templates/\n```\n\n### After Copying\n\n1. Read `design_spec.md` to understand the design specification\n2. Adjust colors based on project requirements (if needed)\n3. Place logo files in the `images/` directory\n4. Use the Executor role to generate SVG pages based on templates\n\n---\n\n## Template Development Guide\n\n### Creating New Templates\n\n1. Create a new directory under `templates/layouts/`\n2. Create required files following the existing template structure\n3. Ensure `design_spec.md` follows the standard chapter structure\n4. All SVGs use `viewBox=\"0 0 1280 720\"`\n5. Follow SVG technical constraints (see below)\n6. Validate the template directory with `python3 scripts/svg_quality_checker.py templates/layouts/<template_name> --format ppt169`\n7. Register the new template in `templates/layouts/layouts_index.json`\n\n`layouts_index.json` is the primary machine-readable source for template discovery. A template folder without an index entry is considered incomplete.\n\n### SVG Technical Constraints (All Templates Must Comply)\n\n#### Required\n\n- viewBox: `0 0 1280 720`\n- Backgrounds use `<rect>` elements\n- Text wrapping uses `<tspan>`\n- Transparency uses `fill-opacity` / `stroke-opacity`\n- Gradients use `<defs>` with `<linearGradient>`\n\n#### Forbidden (PPT Incompatible)\n\n| Banned Element | Alternative |\n|----------------|-------------|\n| `<foreignObject>` | Use `<text>` + `<tspan>` |\n| `clipPath` | Redesign layout |\n| `mask` | Use `fill-opacity` |\n| `<style>` / `class` | Use inline styles |\n| `textPath` | Use plain `<text>` |\n| `animate*` | Static design |\n| `script` | No interactivity supported |\n| `marker` / `marker-end` | Use `<polygon>` triangles |\n| `rgba()` | Use HEX + `fill-opacity` |\n| `<g opacity=\"...\">` | Set opacity on each child element individually |\n\n---\n\nFile v1.2.3:templates/README.md\n\n# Template Resources\n\n## Design Specification & Outline Reference\n\n`design_spec_reference.md` is an all-in-one reference template for defining:\n1.  **Visual Specifications**: Canvas dimensions, color scheme, typography, layout principles\n2.  **Content Outline**: Slide-by-slide page structure planning\n3.  **Technical Constraints**: Hard requirements for SVG generation and PPT compatibility\n\n[View Design Spec Reference](./design_spec_reference.md)\n\n## Page Layout Templates\n\nThe `layouts/` directory contains pre-built page layout templates organized by design style:\n\n- **General**: Versatile modern style, clean and flexible\n- **Consultant**: Consulting style, professional and structured\n- **Consultant Top**: Top-tier consulting style (MBB-level)\n- **Academic Defense**: Academic defense style, research-oriented\n\n- **Human browsing**: [layouts/README.md](./layouts/README.md)\n- **AI / Programmatic lookup**: [layouts/layouts_index.json](./layouts/layouts_index.json)\n\n## Chart Templates\n\nThe `charts/` directory contains 33 standard chart templates:\n\n- KPI Cards\n- Bar Chart / Stacked Bar Chart\n- Line Chart / Dual-Axis Line Chart\n- Donut Chart\n- Radar Chart\n- Funnel Chart\n- Matrix (2x2)\n- Timeline\n- Gantt Chart\n- Process Flow\n- Org Chart\n\n- **Human browsing**: [charts/README.md](./charts/README.md)\n- **AI / Programmatic lookup**: [charts/charts_index.json](./charts/charts_index.json)\n\n## Icon Library\n\nThe `icons/` directory contains 6000+ vector icons from [Tabler Icons](https://tabler.io/icons), organized in two active libraries:\n\n| Library | Style | Count |\n|---------|-------|-------|\n| `tabler-filled` | fill / solid | 1000+ |\n| `tabler-outline` | stroke / line | 5000+ |\n\n- **Usage & style rules**: [icons/README.md](./icons/README.md)\n- **Search icons**: `ls skills/pptx-master/templates/icons/<library>/ | grep <keyword>`\n\nFile v1.2.3:_meta.json\n\n{\n  \"ownerId\": \"kn7dbzxmk4fh39kk5rbgsdj5nn82qjcs\",\n  \"slug\": \"pptx-master\",\n  \"version\": \"1.2.3\",\n  \"publishedAt\": 1778138442569\n}\n\nFile v1.2.3:references/canvas-formats.md\n\n# Canvas Format Specification\n\n> See shared-standards.md for SVG basic rules.\n\n## Format Quick Reference\n\n| Format | viewBox | Ratio | Use Case |\n|--------|---------|-------|----------|\n| PPT 16:9 | `0 0 1280 720` | 16:9 | Business presentations, meetings |\n| PPT 4:3 | `0 0 1024 768` | 4:3 | Traditional projectors, academic talks |\n| Xiaohongshu (RED) | `0 0 1242 1660` | 3:4 | Image-text sharing, knowledge posts |\n| WeChat Moments / IG | `0 0 1080 1080` | 1:1 | Square posters, brand showcases |\n| Story / TikTok | `0 0 1080 1920` | 9:16 | Vertical stories, short video covers |\n| WeChat Article Header | `0 0 900 383` | 2.35:1 | WeChat article cover images |\n| Landscape Banner | `0 0 1920 1080` | 16:9 | Web banners, digital screens |\n| Portrait Poster | `0 0 1080 1920` | 9:16 | Phone screens, elevator ads |\n| A4 Print | `0 0 1240 1754` | 1:sqrt(2) | Print posters, flyers |\n\n## Format Selection Decision Tree\n\n```\nContent purpose?\n├── Presentation\n│   ├── Modern devices → PPT 16:9 (1280x720)\n│   └── Traditional devices → PPT 4:3 (1024x768)\n├── Social sharing\n│   ├── Xiaohongshu (RED) → 1242x1660\n│   ├── WeChat Moments / IG → 1080x1080\n│   └── Story / TikTok → 1080x1920\n└── Marketing materials\n    ├── WeChat Article Header → 900x383\n    ├── Banner → 1920x1080\n    └── Print → 1240x1754\n```\n\n## Layout Principles\n\n### Landscape (16:9, 4:3, 2.35:1)\n- Visual flow: Z-pattern, left to right\n- Margins: 40-80px\n- Layouts: multi-column, left-right split, grid\n- Card dimensions (16:9): single-row 530-600px, double-row 265-295px\n\n### Portrait (3:4, 9:16)\n- Visual flow: top to bottom\n- Margins: 60-120px\n- Layouts: single-column, top-bottom split, card stacking\n- Card dimensions (3:4): height 400-600px, gap 40-60px\n\n### Square (1:1)\n- Visual flow: center-radiating\n- Margins: 60-100px\n- Core area: ~800x800px\n\n## Format-specific Design\n\n| Format | Title Area | Content Area | Special Notes |\n|--------|-----------|--------------|---------------|\n| PPT | 80-100px | Full width utilization | Page number bottom-right |\n| Xiaohongshu (RED) | 180-240px (bold) | Generous top/bottom whitespace | Brand area at bottom 120-160px |\n| WeChat Moments | 200-280px | Center 500-600px | QR code area at bottom 150-200px |\n| Story | — | Middle 1500px | Top safe zone 120px, bottom 180px |\n| WeChat Article Header | Center/left-aligned 48-72px | — | Image on right or as background |\n\n## ViewBox Examples\n\n```xml\n<svg width=\"1280\" height=\"720\" viewBox=\"0 0 1280 720\">   <!-- PPT 16:9 -->\n<svg width=\"1242\" height=\"1660\" viewBox=\"0 0 1242 1660\"> <!-- Xiaohongshu -->\n<svg width=\"1080\" height=\"1080\" viewBox=\"0 0 1080 1080\"> <!-- WeChat Moments -->\n<svg width=\"1080\" height=\"1920\" viewBox=\"0 0 1080 1920\"> <!-- Story -->\n<svg width=\"900\" height=\"383\" viewBox=\"0 0 900 383\">     <!-- WeChat Article Header -->\n```\n\nFile v1.2.3:references/executor-base.md\n\n# Executor Common Guidelines\n\n> Style-specific content is in the corresponding `executor-{style}.md`. Technical constraints are in shared-standards.md.\n\n---\n\n## 1. Template Adherence Rules\n\nIf template files exist in the project's `templates/` directory, the template structure must be followed:\n\n| Page Type | Corresponding Template | Adherence Rules |\n|-----------|----------------------|-----------------|\n| Cover | `01_cover.svg` | Inherit background, decorative elements, layout structure; replace placeholder content |\n| Chapter | `02_chapter.svg` | Inherit numbering style, title position, decorative elements |\n| Content | `03_content.svg` | Inherit header/footer styles; **content area may be freely laid out** |\n| Ending | `04_ending.svg` | Inherit background, thank-you message position, contact info layout |\n| TOC | `02_toc.svg` | **Optional**: Inherit TOC title, list styles |\n\n### Page-Template Mapping Declaration (Required Output)\n\nBefore generating each page, you must explicitly output which template (or \"free design\") is used:\n\n```\n📝 **Template mapping**: `templates/01_cover.svg` (or \"None (free design)\")\n🎯 **Adherence rules / layout strategy**: [specific description]\n```\n\n- **Content pages**: Templates only define header and footer; the content area is freely laid out by the Executor\n- **No template**: Generate entirely per the Design Specification & Content Outline\n\n---\n\n## 2. Design Parameter Confirmation (Mandatory Step)\n\n> Before generating the first SVG page, you **must review the key design parameters from the Design Specification & Content Outline** to ensure all subsequent generation strictly follows the spec.\n\nMust output confirmation including: canvas dimensions, body font size, color scheme (primary/secondary/accent HEX values), font plan.\n\n**Why is this step mandatory?** Prevents the \"spec says one thing, execution does another\" disconnect.\n\n---\n\n## 3. Execution Guidelines\n\n- **Proximity principle**: Place related elements close together to form visual groups; increase spacing between unrelated groups to reinforce logical structure\n- **Absolute spec adherence**: Strictly follow the color, layout, canvas format, and typography parameters in the spec\n- **Follow template structure**: If templates exist, inherit the template's visual framework\n- **Main-agent ownership**: SVG generation must be performed by the current main agent, not delegated to sub-agents, because each page depends on shared upstream context and cross-page visual continuity\n- **Generation rhythm**: First lock the global design context, then generate pages sequentially one by one in the same continuous context; grouped page batches (for example, 5 pages at a time) are not allowed\n- **Phased batch generation** (recommended):\n  1. **Visual Construction Phase**: Generate all SVG pages continuously in sequential page order, ensuring high consistency in design style and layout coordinates (Visual Consistency)\n  2. **Logic Construction Phase**: After all SVGs are finalized, batch-generate speaker notes to ensure narrative coherence (Narrative Continuity)\n- **Technical specifications**: See [shared-standards.md](shared-standards.md) for SVG technical constraints and PPT compatibility rules\n- **Visual depth**: Use filter shadows, glow effects, gradient fills, dashed strokes, and gradient overlays from shared-standards.md to create layered depth — flat pages without elevation or emphasis look unfinished\n\n### SVG File Naming Convention\n\nFile naming format: `<number>_<page_name>.svg`\n\n- **Chinese content** → Chinese naming: `01_封面.svg`, `02_目录.svg`, `03_核心优势.svg`\n- **English content** → English naming: `01_cover.svg`, `02_agenda.svg`, `03_key_benefits.svg`\n- **Number rules**: Two-digit numbers, starting from 01\n- **Page name**: Concise and descriptive, matching the page title in the Design Specification & Content Outline\n\n---\n\n## 4. Icon Usage\n\nFour approaches: **A: Emoji** (`<text>🚀</text>`) | **B: AI-generated** (SVG basic shapes) | **C: Built-in library** (`templates/icons/` 6000+ icons, recommended) | **D: Custom** (user-specified)\n\n**Built-in icons — Placeholder method (recommended)**:\n\n```xml\n<!-- tabler-filled library (fill, 24px) -->\n<use data-icon=\"tabler-filled/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#005587\"/>\n<!-- tabler-outline library (stroke, 24px) -->\n<use data-icon=\"tabler-outline/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#005587\"/>\n```\n\n> No need to manually run `embed_icons.py`; `finalize_svg.py` post-processing tool will auto-embed icons.\n\n**Two icon libraries**:\n\n| Library | Style | Count | Prefix | Best for |\n|---------|-------|-------|--------|----------|\n| `tabler-filled` | fill/solid | 1000+ | `tabler-filled/` | Modern solid icons |\n| `tabler-outline` | stroke/line | 5000+ | `tabler-outline/` | Light, elegant style |\n\n**Searching for icons** — use terminal, zero token cost:\n```bash\nls skills/pptx-master/templates/icons/tabler-filled/ | grep home\nls skills/pptx-master/templates/icons/tabler-outline/ | grep chart\n```\n\n**Abstract concept → icon name** (for concepts whose meaning isn't obvious from the filename):\n\n| Concept | tabler-filled | tabler-outline |\n|---------|---------------|----------------|\n| Growth / Increase | `arrow-trend-up` | `arrow-trend-up` |\n| Decline / Decrease | `arrow-trend-down` | `arrow-trend-down` |\n| Success / Complete | `circle-check` | `circle-check` |\n| Warning / Risk | `alert-triangle` | `alert-triangle` |\n| Innovation / Idea | `bulb` | `bulb` |\n| Strategy / Goal | `target` | `target` |\n| Efficiency / Speed | `bolt` | `bolt` |\n| Collaboration / Team | `users` | `users` |\n| Settings / Config | `settings` | `settings` |\n| Security / Trust | `shield` | `shield` |\n| Money / Finance | `currency-dollar` | `currency-dollar` |\n| Time / Deadline | `clock` | `clock` |\n| Location / Region | `map-pin` | `map-pin` |\n| Communication | `message` | `message` |\n| Analysis / Data | `chart-bar` | `chart-bar` |\n| Process / Flow | `refresh` | `refresh` |\n| Global / World | `world` | `world` |\n| Excellence / Award | `star` | `star` |\n| Expand / Scale | `maximize` | `maximize` |\n| Problem / Issue | `bug` | `bug` |\n\n> For self-evident names (home, user, file, search, arrow, etc.) — just `grep` directly without consulting the table.\n\n> ⚠️ **Icon validation rule**: If the Design Specification includes an icon inventory list, Executor may **only** use icons from that approved list. Before using any icon, verify it exists via `ls | grep` search. **Mixing fill and outline icons in the same presentation is FORBIDDEN** — use only the style specified in the Design Spec.\n\n---\n\n## 5. Chart Reference\n\nWhen the Design Spec includes a **VII. Chart Reference List**, read the referenced SVG templates from `templates/charts/` to understand common chart patterns.\n\n**Adaptation rules**:\n- **Must preserve**: Chart type (bar/line/pie etc.) as specified in the Design Spec\n- **Must adapt**: Data values, labels, colors (match the project's color scheme), and dimensions to fit the page layout\n- **May adjust**: Axis ranges, grid lines, legend position, spacing — as long as the chart remains accurate and readable\n- **Must NOT**: Change chart type without Design Spec justification, or remove data points specified in the outline\n\n> Chart templates: `templates/charts/` (33 types). Index: `templates/charts/charts_index.json`\n\n---\n\n## 6. Image Handling\n\nHandle images based on their status in the Design Specification's \"Image Resource List\":\n\n| Status | Source | Handling |\n|--------|--------|----------|\n| **Existing** | User-provided | Reference images directly from `../images/` directory |\n| **AI-generated** | Generated by Image_Generator | Images already in `../images/`, reference directly |\n| **Placeholder** | Not yet prepared | Use dashed border placeholder |\n\n**Reference**: `<image href=\"../images/xxx.png\" ... preserveAspectRatio=\"xMidYMid slice\"/>`\n\n**Placeholder**: Dashed border `<rect stroke-dasharray=\"8,4\" .../>` + description text\n\n---\n\n## 7. Font Usage\n\nApply corresponding fonts for different text roles based on the font plan in the Design Specification & Content Outline:\n\n| Role | Chinese Recommended | English Recommended |\n|------|--------------------|--------------------|\n| Title font | Microsoft YaHei / KaiTi / SimHei | Arial / Georgia |\n| Body font | Microsoft YaHei / SimSun | Calibri / Times |\n| Emphasis font | SimHei | Arial Black / Consolas |\n| Annotation font | Microsoft YaHei / SimSun | Arial / Times |\n\n---\n\n## 8. Speaker Notes Generation Framework\n\n### Task 1. Generate Complete Speaker Notes Document\n\nAfter **all SVG pages are generated and finalized**, enter the \"Logic Construction Phase\" and generate the complete speaker notes document in `notes/total.md`.\n\n**Why not generate page-by-page?** Batch-writing notes allows planning transitions like a script, ensuring coherent presentation logic.\n\n**Format**: Each page starts with `# <number>_<page_title>`, separated by `---` between pages. Each page includes: script text (2-5 sentences), `Key points: ① ② ③`, `Duration: X minutes`. Except for the first page, each page's text starts with a `[Transition]` phrase.\n\n**Basic stage direction markers** (common to all styles):\n\n| Marker | Purpose |\n|--------|---------|\n| `[Pause]` | Whitespace after key content, letting the audience absorb |\n| `[Transition]` | Standalone paragraph at the start of each page's text, bridging from the previous page |\n\n> Each style may extend with additional markers (`[Interactive]`/`[Data]`/`[Scan Room]`/`[Benchmark]` etc.), see `executor-{style}.md`.\n\n**Language consistency rule**: All structural labels and stage direction markers in speaker notes **MUST match the presentation's content language**. When the presentation content is non-English, localize every label — do NOT mix English labels with non-English content.\n\n| English | 中文 | 日本語 | 한국어 |\n|---------|------|--------|--------|\n| `[Transition]` | `[过渡]` | `[つなぎ]` | `[전환]` |\n| `[Pause]` | `[停顿]` | `[間]` | `[멈춤]` |\n| `[Interactive]` | `[互动]` | `[問いかけ]` | `[상호작용]` |\n| `[Data]` | `[数据]` | `[データ]` | `[데이터]` |\n| `[Scan Room]` | `[观察]` | `[観察]` | `[관찰]` |\n| `[Benchmark]` | `[对标]` | `[ベンチマーク]` | `[벤치마크]` |\n| `Key points:` | `要点：` | `要点：` | `핵심 포인트:` |\n| `Duration:` | `时长：` | `所要時間：` | `소요 시간:` |\n| `Flex:` | `弹性：` | `調整：` | `조정:` |\n\n> For languages not listed above, translate each label to the corresponding natural term in that language.\n\n**Requirements**:\n\n- Notes should be conversational and flow naturally\n- Highlight each page's core information and presentation key points\n- Users can manually edit and override in the `notes/` directory\n\n### Task 2. Split Into Per-Page Note Files\n\nAutomatically split `notes/total.md` into individual speaker note files in the `notes/` directory.\n\n**File naming convention**:\n\n- **Recommended**: Match SVG names (e.g., `01_cover.svg` → `notes/01_cover.md`)\n- **Compatible**: Also supports `slide01.md` format (backward compatibility)\n\n---\n\n## 9. Next Steps After Completion\n\n> **Auto-continuation**: After Visual Construction Phase (all SVG pages) and Logic Construction Phase (all notes) are complete, the Executor proceeds directly to the post-processing pipeline.\n\n**Post-processing & Export** (see [shared-standards.md](shared-standards.md)):\n\n```bash\n# 1. Split speaker notes\npython3 scripts/total_md_split.py <project_path>\n\n# 2. SVG post-processing (auto-embed icons, images, etc.)\npython3 scripts/finalize_svg.py <project_path>\n\n# 3. Export PPTX\npython3 scripts/svg_to_pptx.py <project_path> -s final\n# Default: generates native shapes (.pptx) + SVG reference (_svg.pptx)\n```\n\nFile v1.2.3:references/executor-consultant-top.md\n\n# Executor Consultant Top — Top-tier Consulting Style (MBB Level)\n\n> Common guidelines: executor-base.md. Technical constraints: shared-standards.md.\n\n---\n\n## Role Definition\n\nAn MBB-level (McKinsey / Bain / BCG) top-tier consulting style SVG design executor. Suitable for strategic planning, board presentations, investment roadshows, C-suite decision support, and other **premium consulting** scenarios. Core characteristics: data-driven insights, pyramid-structured narrative, extreme simplicity. Output targets C-level decision-makers.\n\n---\n\n## SCQA Framework (Narrative Structure)\n\nEvery MBB-level presentation follows the SCQA narrative structure:\n\n| Element | Purpose | Typical Pages |\n|---------|---------|---------------|\n| **S - Situation** | Establish shared context | Cover / Pages 1-2 |\n| **C - Complication** | Introduce the problem / tension | Pages 2-3 |\n| **Q - Question** | The implicit or explicit question to solve | Transition page |\n| **A - Answer** | Core solution | All body pages |\n\n**Page sequencing**: Cover embodies S+C → Executive Summary answers Q → Chapters develop A → Closing revisits S\n\n**Title writing**:\n\n| SCQA Element | Weak Title | MBB-level Title |\n|-------------|------------|-----------------|\n| S | \"Industry Background\" | \"Digital penetration surpasses 60%, industry enters deep waters\" |\n| C | \"Challenges Faced\" | \"Yet three structural contradictions constrain scaled deployment\" |\n| Q | \"Strategic Question\" | \"How to move from pilot to full deployment within 18 months?\" |\n| A | \"Solution\" | \"Three-phase path: Focus, Expand, Scale\" |\n\n---\n\n## Data Contextualization (Never Present Data in Isolation)\n\n> **Golden Rule**: Never display a single data point in isolation. Every number needs context.\n\n| Method | Pattern | Visual Implementation |\n|--------|---------|----------------------|\n| **Time comparison** | \"From X to Y\" | Line chart + arrow annotating magnitude of change |\n| **Benchmark** | \"X vs industry average Y\" | Bar chart with gray dashed baseline |\n| **Competitive comparison** | \"Us X vs Competitor Y\" | Side-by-side bar chart, highlight own data |\n| **Target gap** | \"Actual X / Target Y\" | Progress bar + gap annotation |\n| **Ranking** | \"Ranked #N of M\" | Horizontal bar chart + highlight marker |\n\n**Data annotation three essentials**: Every data visualization must include (1) The value itself (large bold font) (2) Comparison reference (baseline / prior period / competitor) (3) Meaning interpretation (\"So what?\")\n\n```xml\n<text x=\"160\" y=\"280\" text-anchor=\"middle\" font-size=\"42\" font-weight=\"bold\" fill=\"#1E293B\">97.3%</text>\n<text x=\"160\" y=\"310\" text-anchor=\"middle\" font-size=\"13\" fill=\"#64748B\">Industry avg 82% | Competitor A 89%</text>\n<text x=\"160\" y=\"335\" text-anchor=\"middle\" font-size=\"12\" fill=\"#059669\">Leading industry by 15.3 percentage points</text>\n```\n\n---\n\n## Pyramid Principle (Conclusion First)\n\n> Executives don't care about your *process* — they care about *results*.\n\n```\n         ┌─────────────────┐\n         │  Core Conclusion │   ← Page title / Takeaway\n         └────────┬────────┘\n      ┌───────────┼───────────┐\n  ┌───┴───┐  ┌───┴───┐  ┌───┴───┐\n  │ Arg 1 │  │ Arg 2 │  │ Arg 3 │   ← Key supporting points\n  └───────┘  └───────┘  └───────┘\n```\n\n| Level | Position | Font Size |\n|-------|----------|-----------|\n| Core conclusion | Takeaway Box | 16-18px bold |\n| Arguments | Content area body | 14-16px |\n| Supporting data | Charts / cards | 12-14px |\n\n**Contrast**: Title \"Market Research Results\" (wrong) → \"Metaverse needs 5-10 years to reach scale\" (right); Body \"We researched... and found...\" (wrong) → \"Three arguments: (1)... (2)... (3)...\" (right)\n\n---\n\n## MBB-level Layout Patterns\n\n### Content Page Standard Structure (1280x720)\n\n```\n┌──────────────────────────────────┐\n│ Gradient top bar (0,0 → 1280,6)  │\n├──────────────────────────────────┤\n│ Assertion title (x=40, y=50, 24px)│\n├──────────────────────────────────┤\n│ Takeaway Box (x=40, y=75,        │  ← Dark background + white text, one-sentence conclusion\n│   w=1200, h=45)                  │\n├──────────────────────────────────┤\n│ Content area (x=40, y=140,       │  ← Charts / data / analysis\n│   w=1200, h=520)                 │\n├──────────────────────────────────┤\n│ Source | CONFIDENTIAL | Page #    │  ← y=700, 10px\n└──────────────────────────────────┘\n```\n\n### Strategic Roadmap\n\nThree phases laid out horizontally, `<rect rx=\"8\">` + title + action list, `<polygon>` arrows connecting:\n\n```\nFocus Core (0-6mo)  ──>  Expand Capability (6-12mo)  ──>  Scale Up (12-18mo)\nx=40,w=380              x=450,w=380                     x=860,w=380\n```\n\n### Benchmarking Matrix\n\nHorizontal table; own row highlighted in theme color, others in gray. Leading indicators marked green, lagging marked red. Use `<circle>` or `<rect>` to build score points.\n\n### Waterfall Chart (Change Attribution)\n\nStart → increase/decrease factors → End. Positive factors green bars, negative factors red bars, start/end points dark bars, cumulative line as dashed connector.\n\n---\n\n## Strategic Use of Color\n\nMBB-level color usage is extremely restrained — color serves information:\n\n| Purpose | Method |\n|---------|--------|\n| **Focus** | Target data in theme color, everything else gray |\n| **Reduce cognitive load** | Same series differentiated by opacity (`fill-opacity` 1.0/0.6/0.3) |\n| **Semantics** | Green = positive, Red = negative, Gray = baseline |\n| **Branding** | Gradient top bar / decorative lines in brand color |\n\n**Commandments**: No more than 3 primary colors; accent color used at most 2-3 places globally; data series use same-hue depth variations, not different colors; background white or very light gray.\n\n---\n\n## Chart vs Table Selection Matrix\n\n| Scenario | Recommended Form | Reason |\n|----------|-----------------|--------|\n| Comparing 2-7 categories | **Bar chart** | Visual comparison is intuitive |\n| Time trends | **Line chart** | Time series clarity |\n| Precise values / large rankings | **Table** | 50 data points in a bar chart would be chaotic |\n| Proportional composition | **Donut chart** | More modern than pie charts |\n| Two-dimensional positioning | **2x2 matrix** | Strategic quadrant analysis |\n| Change attribution | **Waterfall chart** | Factor decomposition |\n\n---\n\n## Speaker Notes Style\n\n### Narrative Tone\n\nTargeting **executives / decision-makers**. Pyramid structure — every sentence carries information. Composed, authoritative, and insightful tone.\n\n### Stage Direction Markers\n\n| Marker | Purpose | Example |\n|--------|---------|---------|\n| `[Pause]` | Silence after key insight, let executives absorb | \"This means we are missing a billion-dollar market. [Pause]\" |\n| `[Scan Room]` | Observe decision-makers' reactions, decide whether to elaborate | \"[Scan Room] If there are questions, I can elaborate.\" |\n| `[Data]` | Conversational number delivery | \"[Data] 63% → nearly two-thirds\" |\n| `[Benchmark]` | Emphasize comparison baseline | \"[Benchmark] Compared to the industry average of 12%, our 23% is nearly double\" |\n| `[Transition]` | Bridge from previous page, at start of each page's text | \"[Transition] Building on the strategic framework, let's drill into the implementation path.\" |\n\n### Notes Writing Guidelines\n\n- **Pyramid structure**: Conclusion → Arguments → Details\n- **Data contextualization**: Every number has a comparison reference\n- **Executive language**: \"The strategic implication is...\", \"The core insight is...\"\n- **Flex mechanism**: Annotate \"content that can be skipped if time is tight\" for flexible duration\n- **Key points structure**: `Key points: (1) Core insight (2) Data support (3) Strategic implication`\n\n### Notes Example\n\n```markdown\n# 03_strategic_path\n\n[Transition] Having clarified the problem and the opportunity, now comes the most critical part — our response path.\n\nWe recommend a three-phase strategy. [Pause]\n\nPhase one: Focus. Over the next six months, concentrate resources on conquering the Eastern China market.\n[Data] Eastern China contributes nearly two-thirds of industry growth, [Benchmark] yet our penetration rate is only half of Competitor A's. [Pause]\n\nPhase two: Expand. Use Eastern China as a template, replicate to Southern and Northern China.\nPhase three: Scale. Leverage a digital platform for nationwide coverage.\n\n[Scan Room] The resource allocation for phase one is in the appendix — would you like me to walk through it now?\n\nKey points: (1) Focus-Expand-Scale three-phase approach (2) Data-backed Eastern China priority (3) 18-month full deployment\nDuration: 3 minutes\nFlex: [If time is tight, skip phase two and three details and go straight to financial impact]\n```\n\n---\n\n## MBB-level Quality Checklist Supplement\n\n### Content Level\n\n- [ ] **SCQA complete**: Overall follows Situation-Complication-Question-Answer structure\n- [ ] **Data contextualized**: Every data point has a comparison reference\n- [ ] **Conclusion first**: Every page's Takeaway Box has a one-sentence conclusion\n- [ ] **MECE principle**: Categorized analysis is mutually exclusive and collectively exhaustive\n\n### Visual Level\n\n- [ ] **Color with intent**: Colors serve information delivery\n- [ ] **Ample whitespace**: Not crowded; information can \"breathe\"\n- [ ] **Visual hierarchy**: Conclusion > Arguments > Details, differentiated by font size/weight\n- [ ] **Brand consistency**: Gradient top bar and footer unified throughout\n\n### Notes Level\n\n- [ ] **Pyramid structure**: Every page is conclusion-first\n- [ ] **Stage markers complete**: [Pause] and [Scan Room] at key positions\n- [ ] **Flex content annotated**: Supports flexible duration\n\nFile v1.2.3:references/executor-consultant.md\n\n# Executor Consultant — Consulting Style\n\n> Common guidelines: executor-base.md. Technical constraints: shared-standards.md.\n\n---\n\n## Role Definition\n\nA data-driven, consulting-style SVG design executor. Suitable for business analysis reports, market research, operational reviews, strategic recommendations, and other **general consulting** scenarios. Emphasizes structured information presentation and data visualization; clean, clear, and professional style.\n\n---\n\n## Consultant-specific Data Visualization Techniques\n\n### 1. KPI Dashboard Design\n\nKPI cards are the most common element in consulting reports. Standard layout (1280x720):\n\n```\n4-card layout: each card 280x180, gap 30\n  Card 1: x=45,  y=160\n  Card 2: x=355, y=160\n  Card 3: x=665, y=160\n  Card 4: x=975, y=160\n```\n\n**Card internal structure** (top to bottom):\n\n| Area | Content | Font Size | Style |\n|------|---------|-----------|-------|\n| Icon row | data-icon icon | 32x32 | Theme color |\n| Metric name | \"Monthly Active Users\" | 14px | Gray #64748B |\n| Core number | \"1.2M\" | 36-42px | Bold, dark color |\n| Trend annotation | \"+12.3% vs last month\" | 12px | Green=up / Red=down |\n\n**Trend arrow conventions**:\n- Up: `arrow-trend-up` icon + green text\n- Down: `arrow-trend-down` icon + red text\n- Flat: horizontal line icon + gray text\n\n### 2. Chart Color Conventions\n\nConsulting-style charts use **monochromatic depth gradients** rather than rainbow colors:\n\n```\nPrimary series:   Theme color 100% opacity\nComparison series: Theme color 60% opacity\nBaseline:         #94A3B8 (gray dashed line)\nHighlight:        Accent color (only for key data points)\n```\n\n### 3. Data Annotation Principles\n\n- **Direct data labels**: Place values at the top of bar charts — no legend needed\n- **Annotated trend lines**: Add text notes at key inflection points (\"Policy change\", \"Product launch\")\n- **Comparison baselines**: Mark industry average / target values with gray dashed lines\n- **Consistent units**: Maintain the same numeric units and precision within a chart\n\n### 4. Table Design\n\nConsulting reports frequently use tables for precise data:\n\n| Design Element | Specification |\n|----------------|---------------|\n| Header | Dark background + white text, font-weight=\"bold\" |\n| Zebra striping | Alternate rows with `fill-opacity=\"0.05\"` light background |\n| Number alignment | Numbers right-aligned, text left-aligned |\n| Highlighted row | Mark key rows with accent color `fill-opacity=\"0.1\"` |\n| Borders | Use horizontal lines only to separate rows; avoid full grid lines |\n\n---\n\n## Consulting-specific Layout Patterns\n\n### MECE Decomposition Tree\n\nMain trunk on the left, branches expanding rightward — mutually exclusive, collectively exhaustive:\n\n```\nMain metric ──┬── Branch A (45%)\n              ├── Branch B (30%)\n              ├── Branch C (20%)\n              └── Branch D (5%)\n```\n\n- Use `<line>` to connect trunk to branches\n- Each branch has a `<rect>` container + percentage annotation\n- Sum must = 100% (or explicitly label \"Other\")\n\n### Driver Factor Tree\n\nTop-level metric → decomposed factors → actions. Ideal for performance attribution analysis:\n\n```\nRevenue growth 15%\n  ├── Average order value +8%  → Premium product line expansion\n  ├── Customer count +5%       → New channel acquisition\n  └── Repurchase rate +2%      → Loyalty program optimization\n```\n\n### Left-chart Right-text (Chart Interpretation)\n\nCore consulting report layout: chart on the left, key insights on the right:\n\n```\nChart area: x=40, y=120, w=700, h=480\nInsight area: x=780, y=120, w=460, h=480\n  - Core conclusion (bold, 16px)\n  - 3-5 bullet points (14px)\n  - Data source (12px, gray)\n```\n\n---\n\n## Professional Expression Standards\n\n### Page Titles\n\nConsulting-style page titles should be **assertion headlines**, not descriptive titles:\n\n| Type | Descriptive (avoid) | Assertion (recommended) |\n|------|---------------------|------------------------|\n| Market | \"Market Overview\" | \"Domestic market grows 23% YoY, significantly outpacing global average\" |\n| Competition | \"Competitive Analysis\" | \"Three major competitors show clear weaknesses in channel coverage\" |\n| Finance | \"Financial Data\" | \"Gross margin improved for four consecutive quarters, breaking industry ceiling\" |\n\n### Data Source Attribution\n\nEvery data-containing page must include a source note at the bottom:\n\n```xml\n<text x=\"40\" y=\"700\" font-size=\"10\" fill=\"#94A3B8\">\n  Source: National Bureau of Statistics 2025 Annual Report; Internal team analysis\n</text>\n```\n\n### Key Takeaway Box\n\nConsulting-style content pages should include a **Takeaway Box** below the title:\n\n```\nPosition: x=40, y=80, w=1200, h=50\nBackground: Light theme color (fill-opacity=\"0.08\")\nText: 14-16px, one-sentence summary of the page's core takeaway\n```\n\n---\n\n## Speaker Notes Style\n\n### Narrative Tone\n\nConsultant-style speaker notes use a **conclusion-driven** approach — state the conclusion first, then present supporting evidence. Professional, concise, and persuasive tone.\n\n### Stage Direction Markers\n\n| Marker | Purpose | Example |\n|--------|---------|---------|\n| `[Pause]` | Silence after key conclusions, let the audience absorb | \"This means our market share is being eroded. [Pause]\" |\n| `[Data]` | Cue to verbalize numbers conversationally | \"[Data] 85% → more than eight out of ten customers reported this issue\" |\n| `[Transition]` | Bridge from previous page, must be at start of each page's text | \"[Transition] Based on that analysis, let's look at specific recommendations.\" |\n\n### Notes Writing Guidelines\n\n- **Conclusion first**: The first sentence of each page's notes is the core takeaway\n- **Conversational data**: 30% → \"roughly one-third\", 85% → \"more than eight out of ten\", 2.5x → \"two and a half times\"\n- **Evidence follows immediately**: After the conclusion, provide 2-3 supporting data points/facts\n- **Professional terminology**: Use terms like \"insight\", \"driver\", \"key lever\" etc.\n- **Key points structure**: `Key points: (1) Core conclusion (2) Supporting data (3) Next steps`\n\n### Notes Example\n\n```markdown\n# 03_key_findings\n\n[Transition] Based on our market scan, we have distilled three key findings.\n\nFirst, the primary growth driver is shifting from acquisition to retention.\n[Data] New customer acquisition cost rose nearly 40% year-over-year, yet improved repurchase rates contributed over 60% of revenue growth. [Pause]\n\nSecond, lower-tier market growth significantly outpaces tier-1 and tier-2 cities.\nThird, the 25-35 female user segment has an ARPU 1.8x the overall average.\n\nKey points: (1) Growth engine shifting from acquisition to retention (2) Lower-tier market opportunity window (3) High-value user persona\nDuration: 2 minutes\n```\n\n---\n\n## Self-check Supplement (Consultant-specific)\n\n- [ ] Data matches source data — no fabrication\n- [ ] Every data page has a source attribution at the bottom\n- [ ] Page titles are assertion-based, not descriptive\n- [ ] KPI cards have trend arrows and comparison annotations\n- [ ] Chart colors are unified, using monochromatic scheme rather than rainbow\n- [ ] Notes are conclusion-first with conversational data\n\nArchive v1.0.2: 97 files, 299196 bytes\n\nFiles: README.md (4273b), references/canvas-formats.md (2902b), references/executor-base.md (11827b), references/executor-consultant-top.md (10349b), references/executor-consultant.md (7180b), references/executor-general.md (6070b), references/image-generator.md (18038b), references/image-layout-spec.md (5620b), references/shared-standards.md (18394b), references/strategist.md (18573b), references/svg-image-embedding.md (6089b), references/template-designer.md (8483b), RESOURCES.md (4295b), scripts/analyze_images.py (8226b), scripts/batch_validate.py (10419b), scripts/config.py (16611b), scripts/doc_to_md.py (7467b), scripts/docs/conversion.md (2206b), scripts/docs/image.md (2861b), scripts/docs/project.md (2627b), scripts/docs/svg-pipeline.md (4601b), scripts/docs/troubleshooting.md (1388b), scripts/error_helper.py (16161b), scripts/finalize_svg.py (10946b), scripts/gemini_watermark_remover.py (6825b), scripts/generate_examples_index.py (8310b), scripts/image_backends/__init__.py (57b), scripts/image_backends/backend_bfl.py (5784b), scripts/image_backends/backend_common.py (7366b), scripts/image_backends/backend_fal.py (4198b), scripts/image_backends/backend_gemini.py (8808b), scripts/image_backends/backend_ideogram.py (4875b), scripts/image_backends/backend_openai.py (8135b), scripts/image_backends/backend_qwen.py (6333b), scripts/image_backends/backend_replicate.py (5908b), scripts/image_backends/backend_siliconflow.py (5718b), scripts/image_backends/backend_stability.py (4889b), scripts/image_backends/backend_volcengine.py (6004b), scripts/image_backends/backend_zhipu.py (5911b), scripts/image_gen.py (13130b), scripts/pdf_to_md.py (26621b), scripts/pptx_animations.py (8269b), scripts/pptx_template_import.py (18066b), scripts/project_manager.py (24802b), scripts/project_utils.py (15378b), scripts/README.md (3296b), scripts/rotate_images.py (20979b), scripts/svg_content_checker.py (18598b), scripts/svg_finalize/__init__.py (88b), scripts/svg_finalize/crop_images.py (10973b), scripts/svg_finalize/embed_icons.py (10938b), scripts/svg_finalize/embed_images.py (6370b), scripts/svg_finalize/fix_image_aspect.py (13656b), scripts/svg_finalize/flatten_tspan.py (16205b), scripts/svg_finalize/svg_rect_to_path.py (10698b), scripts/svg_position_calculator.py (54811b), scripts/svg_quality_checker.py (18782b), scripts/svg_repair_coordinator.py (15822b), scripts/svg_to_pptx.py (449b), scripts/svg_to_pptx/__init__.py (465b), scripts/svg_to_pptx/drawingml_context.py (3812b), scripts/svg_to_pptx/drawingml_converter.py (7655b), scripts/svg_to_pptx/drawingml_elements.py (29068b), scripts/svg_to_pptx/drawingml_paths.py (13801b), scripts/svg_to_pptx/drawingml_styles.py (11889b), scripts/svg_to_pptx/drawingml_utils.py (10052b), scripts/svg_to_pptx/pptx_builder.py (17409b), scripts/svg_to_pptx/pptx_cli.py (7591b), scripts/svg_to_pptx/pptx_dimensions.py (4188b), scripts/svg_to_pptx/pptx_discovery.py (2938b), scripts/svg_to_pptx/pptx_media.py (2418b), scripts/svg_to_pptx/pptx_notes.py (4625b), scripts/svg_to_pptx/pptx_slide_xml.py (4736b), scripts/total_md_split.py (10941b), scripts/update_repo.py (4287b), scripts/web_to_md.cjs (27305b), scripts/web_to_md.py (25871b), SKILL.md (16554b), SVG_BEST_PRACTICES.md (4691b), templates/design_spec_reference.md (9726b)\n\nFile v1.0.2:SKILL.md\n\n# PPTX Master Skill\n\n> AI-driven multi-format SVG content generation system. Converts source documents into high-quality SVG pages through multi-role collaboration and exports to PPTX.\n\n**Base Version**: [ppt-master](https://github.com/openclaw/skills/tree/main/ppt-master) (Open Source)\n**Adaptation**: ClawHub compatible version with additional layout templates\n\n> [!NOTE]\n> ## 📋 声明\n>\n> 本技能基于 GitHub 开源项目 [ppt-master](https://github.com/openclaw/skills/tree/main/ppt-master) 进行 ClawHub 适配，\n> 并额外增加了两个 layout 模板（HUAWEI 和 red grey），以提供更丰富的演示文稿设计选项。\n\n**Core Pipeline**: `Source Document → Create Project → Template Option → Strategist → [Image_Generator] → Executor → Post-processing → Export`\n\n> [!CAUTION]\n> ## 🚨 Global Execution Discipline (MANDATORY)\n>\n> **This workflow is a strict serial pipeline. The following rules have the highest priority — violating any one of them constitutes execution failure:**\n>\n> 1. **SERIAL EXECUTION** — Steps MUST be executed in order; the output of each step is the input for the next. Non-BLOCKING adjacent steps may proceed continuously once prerequisites are met, without waiting for the user to say \"continue\"\n> 2. **BLOCKING = HARD STOP** — Steps marked ⛔ BLOCKING require a full stop; the AI MUST wait for an explicit user response before proceeding and MUST NOT make any decisions on behalf of the user\n> 3. **NO CROSS-PHASE BUNDLING** — Cross-phase bundling is FORBIDDEN. (Note: the Eight Confirmations in Step 4 are ⛔ BLOCKING — the AI MUST present recommendations and wait for explicit user confirmation before proceeding. Once the user confirms, all subsequent non-BLOCKING steps — design spec output, SVG generation, speaker notes, and post-processing — may proceed automatically without further user confirmation)\n> 4. **GATE BEFORE ENTRY** — Each Step has prerequisites (🚧 GATE) listed at the top; these MUST be verified before starting that Step\n> 5. **NO SPECULATIVE EXECUTION** — \"Pre-preparing\" content for subsequent Steps is FORBIDDEN (e.g., writing SVG code during the Strategist phase)\n> 6. **NO SUB-AGENT SVG GENERATION** — Executor Step 6 SVG generation is context-dependent and MUST be completed by the current main agent end-to-end. Delegating page SVG generation to sub-agents is FORBIDDEN\n> 7. **SEQUENTIAL PAGE GENERATION ONLY** — In Executor Step 6, after the global design context is confirmed, SVG pages MUST be generated sequentially page by page in one continuous pass. Grouped page batches (for example, 5 pages at a time) are FORBIDDEN\n\n> [!IMPORTANT]\n> ## 🌐 Language & Communication Rule\n>\n> - **Response language**: Always match the language of the user's input and provided source materials. For example, if the user asks in Chinese, respond in Chinese; if the source material is in English, respond in English.\n> - **Explicit override**: If the user explicitly requests a specific language (e.g., \"请用英文回答\" or \"Reply in Chinese\"), use that language instead.\n> - **Template format**: The `design_spec.md` file MUST always follow its original English template structure (section headings, field names), regardless of the conversation language. Content values within the template may be in the user's language.\n\n> [!IMPORTANT]\n> ## 🔌 Compatibility With Generic Coding Skills\n>\n> - `ppt-master` is a repository-specific workflow skill, not a general application scaffold\n> - Do NOT create or require `.worktrees/`, `tests/`, branch workflows, or other generic engineering structure by default\n> - If another generic coding skill suggests repository conventions that conflict with this workflow, follow this skill first unless the user explicitly asks otherwise\n\n## Main Pipeline Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `${SKILL_DIR}/scripts/pdf_to_md.py` | PDF to Markdown |\n| `${SKILL_DIR}/scripts/doc_to_md.py` | Documents to Markdown via Pandoc (DOCX, EPUB, HTML, LaTeX, RST, etc.) |\n| `${SKILL_DIR}/scripts/web_to_md.py` | Web page to Markdown |\n| `${SKILL_DIR}/scripts/web_to_md.cjs` | WeChat / high-security sites to Markdown |\n| `${SKILL_DIR}/scripts/project_manager.py` | Project init / validate / manage |\n| `${SKILL_DIR}/scripts/analyze_images.py` | Image analysis |\n| `${SKILL_DIR}/scripts/image_gen.py` | AI image generation (multi-provider) |\n| `${SKILL_DIR}/scripts/svg_quality_checker.py` | SVG quality check |\n| `${SKILL_DIR}/scripts/total_md_split.py` | Speaker notes splitting |\n| `${SKILL_DIR}/scripts/finalize_svg.py` | SVG post-processing (unified entry) |\n| `${SKILL_DIR}/scripts/svg_to_pptx.py` | Export to PPTX |\n\nFor complete tool documentation, see `${SKILL_DIR}/scripts/README.md`.\n\n## Template Index\n\n| Index | Path | Purpose |\n|-------|------|---------|\n| Layout templates | `${SKILL_DIR}/templates/layouts/layouts_index.json` | Query available page layout templates |\n| Chart templates | `${SKILL_DIR}/templates/charts/charts_index.json` | Query available chart SVG templates |\n| Icon library | `${SKILL_DIR}/templates/icons/` | Search icons on demand: `ls templates/icons/<library>/ \\| grep <keyword>` (libraries: `chunk/`, `tabler-filled/`, `tabler-outline/`) |\n\n## Standalone Workflows\n\n| Workflow | Path | Purpose |\n|----------|------|---------|\n| `create-template` | `workflows/create-template.md` | Standalone template creation workflow |\n\n---\n\n## Workflow\n\n### Step 1: Source Content Processing\n\n🚧 **GATE**: User has provided source material (PDF / DOCX / EPUB / URL / Markdown file / text description / conversation content — any form is acceptable).\n\nWhen the user provides non-Markdown content, convert immediately:\n\n| User Provides | Command |\n|---------------|---------|\n| PDF file | `python3 ${SKILL_DIR}/scripts/pdf_to_md.py <file>` |\n| DOCX / Word / Office document | `python3 ${SKILL_DIR}/scripts/doc_to_md.py <file>` |\n| EPUB / HTML / LaTeX / RST / other | `python3 ${SKILL_DIR}/scripts/doc_to_md.py <file>` |\n| Web link | `python3 ${SKILL_DIR}/scripts/web_to_md.py <URL>` |\n| WeChat / high-security site | `node ${SKILL_DIR}/scripts/web_to_md.cjs <URL>` |\n| Markdown | Read directly |\n\n**✅ Checkpoint — Confirm source content is ready, proceed to Step 2.**\n\n---\n\n### Step 2: Project Initialization\n\n🚧 **GATE**: Step 1 complete; source content is ready (Markdown file, user-provided text, or requirements described in conversation are all valid).\n\n```bash\npython3 ${SKILL_DIR}/scripts/project_manager.py init <project_name> --format <format>\n```\n\nFormat options: `ppt169` (default), `ppt43`, `xhs`, `story`, etc. For the full format list, see `references/canvas-formats.md`.\n\nImport source content (choose based on the situation):\n\n| Situation | Action |\n|-----------|--------|\n| Has source files (PDF/MD/etc.) | `python3 ${SKILL_DIR}/scripts/project_manager.py import-sources <project_path> <source_files...> --move` |\n| User provided text directly in conversation | No import needed — content is already in conversation context; subsequent steps can reference it directly |\n\n> ⚠️ **MUST use `--copy`**: All source files (original PDF / MD / images) MUST be **copied** (not moved) into `sources/` for archiving.\n> - Markdown files generated in Step 1, original PDFs, original MDs — **all** must be copied into the project via `import-sources --copy`\n> - Intermediate artifacts (e.g., `_files/` directories) are handled automatically by `import-sources`\n> - Original source files remain at their original location after copying\n\n**✅ Checkpoint — Confirm project structure created successfully, `sources/` contains all source files, converted materials are ready. Proceed to Step 3.**\n\n---\n\n### Step 3: Template Selection\n\n🚧 **GATE**: Step 2 complete; project directory structure is ready.\n\n⛔ **BLOCKING**: If the user has not yet clearly expressed whether to use a template, you MUST present options and **wait for an explicit user response** before proceeding. If the user has previously stated \"no template\" or specified a particular template, skip this prompt and proceed directly.\n\n**⚡ Early-exit**: If the user has already stated \"no template\" / \"不使用模板\" / \"自由设计\" (or equivalent) at any prior point in the conversation, **do NOT query `layouts_index.json`** — skip directly to Step 4. This avoids unnecessary token consumption.\n\n**Template recommendation flow** (only when the user has NOT yet decided):\nQuery `${SKILL_DIR}/templates/layouts/layouts_index.json` to list available templates and their style descriptions. Note: New templates include HUAWEI and red grey layouts.\n**When presenting options, you MUST provide a professional recommendation based on the current PPT topic and content** (recommend a specific template or free design, with reasoning), then ask the user:\n\n> 💡 **AI Recommendation**: Based on your content topic (brief summary), I recommend **[specific template / free design]** because...\n>\n> Which approach would you prefer?\n> **A) Use an existing template** (please specify template name or style preference - note: new options include HUAWEI and red grey templates)\n> **B) No template** — free design\n\nAfter the user confirms option A, copy template files to the project directory:\n```bash\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.svg <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/design_spec.md <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.png <project_path>/images/ 2>/dev/null || true\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.jpg <project_path>/images/ 2>/dev/null || true\n```\n\nAfter the user confirms option B, proceed directly to Step 4.\n\n> To create a new global template, read `workflows/create-template.md`\n\n**✅ Checkpoint — User has responded with template selection, template files copied (if option A). Proceed to Step 4.**\n\n---\n\n### Step 4: Strategist Phase (MANDATORY — cannot be skipped)\n\n🚧 **GATE**: Step 3 complete; user has confirmed template selection.\n\nFirst, read the role definition:\n```\nRead references/strategist.md\n```\n\n**Must complete the Eight Confirmations** (refer to `templates/design_spec_reference.md` for the template structure):\n\n⛔ **BLOCKING**: The Eight Confirmations MUST be presented to the user as a bundled set of recommendations, and you MUST **wait for the user to confirm or modify** before outputting the Design Specification & Content Outline. This is one of only two core confirmation points in the workflow (the other is template selection). Once confirmed, all subsequent script execution and slide generation should proceed fully automatically.\n\n1. Canvas format\n2. Page count range\n3. Target audience\n4. Style objective\n5. Color scheme\n6. Icon usage approach\n7. Typography plan\n8. Image usage approach\n\nIf the user has provided images, run the analysis script **before outputting the design spec** (do NOT directly read/open image files — use the script output only):\n```bash\npython3 ${SKILL_DIR}/scripts/analyze_images.py <project_path>/images\n```\n\n> ⚠️ **Image handling rule**: The AI must NEVER directly read, open, or view image files (`.jpg`, `.png`, etc.). All image information must come from the `analyze_images.py` script output or the Design Specification's Image Resource List.\n\n**Output**: `<project_path>/design_spec.md`\n\n**✅ Checkpoint — Phase deliverables complete, auto-proceed to next step**:\n```markdown\n## ✅ Strategist Phase Complete\n- [x] Eight Confirmations completed (user confirmed)\n- [x] Design Specification & Content Outline generated\n- [ ] **Next**: Auto-proceed to [Image_Generator / Executor] phase\n```\n\n---\n\n### Step 5: Image_Generator Phase (Conditional)\n\n🚧 **GATE**: Step 4 complete; Design Specification & Content Outline generated and user confirmed.\n\n> **Trigger condition**: Image approach includes \"AI generation\". If not triggered, skip directly to Step 6 (Step 6 GATE must still be satisfied).\n\nRead `references/image-generator.md`\n\n1. Extract all images with status \"pending generation\" from the design spec\n2. Generate prompt document → `<project_path>/images/image_prompts.md`\n3. Generate images (CLI tool recommended):\n   ```bash\n   python3 ${SKILL_DIR}/scripts/image_gen.py \"prompt\" --aspect_ratio 16:9 --image_size 1K -o <project_path>/images\n   ```\n\n**✅ Checkpoint — Confirm all images are ready, proceed to Step 6**:\n```markdown\n## ✅ Image_Generator Phase Complete\n- [x] Prompt document created\n- [x] All images saved to images/\n```\n\n---\n\n### Step 6: Executor Phase\n\n🚧 **GATE**: Step 4 (and Step 5 if triggered) complete; all prerequisite deliverables are ready.\n\nRead the role definition based on the selected style:\n```\nRead references/executor-base.md          # REQUIRED: common guidelines\nRead references/executor-general.md       # General flexible style\nRead references/executor-consultant.md    # Consulting style\nRead references/executor-consultant-top.md # Top consulting style (MBB level)\n```\n\n> Only need to read executor-base + one style file.\n\n**Design Parameter Confirmation (Mandatory)**: Before generating the first SVG, the Executor MUST review and output key design parameters from the Design Specification (canvas dimensions, color scheme, font plan, body font size) to ensure spec adherence. See executor-base.md Section 2 for details.\n\n> ⚠️ **Main-agent only rule**: SVG generation in Step 6 MUST remain with the current main agent because page design depends on full upstream context (source content, design spec, template mapping, image decisions, and cross-page consistency). Do NOT delegate any slide SVG generation to sub-agents.\n> ⚠️ **Generation rhythm rule**: After confirming the global design parameters, the Executor MUST generate pages sequentially, one page at a time, while staying in the same continuous main-agent context. Do NOT split Step 6 into grouped page batches such as 5 pages per batch.\n\n**Visual Construction Phase**:\n- Generate SVG pages sequentially, one page at a time, in one continuous pass → `<project_path>/svg_output/`\n\n**Logic Construction Phase**:\n- Generate speaker notes → `<project_path>/notes/total.md`\n\n**✅ Checkpoint — Confirm all SVGs and notes are fully generated. Proceed directly to Step 7 post-processing**:\n```markdown\n## ✅ Executor Phase Complete\n- [x] All SVGs generated to svg_output/\n- [x] Speaker notes generated at notes/total.md\n```\n\n---\n\n### Step 7: Post-processing & Export\n\n🚧 **GATE**: Step 6 complete; all SVGs generated to `svg_output/`; speaker notes `notes/total.md` generated.\n\n> ⚠️ The following three sub-steps MUST be **executed individually one at a time**. Each command must complete and be confirmed successful before running the next.\n> ❌ **NEVER** put all three commands in a single code block or single shell invocation.\n\n**Step 7.1** — Split speaker notes:\n```bash\npython3 ${SKILL_DIR}/scripts/total_md_split.py <project_path>\n```\n\n**Step 7.2** — SVG post-processing (icon embedding / image crop & embed / text flattening / rounded rect to path):\n```bash\npython3 ${SKILL_DIR}/scripts/finalize_svg.py <project_path>\n```\n\n**Step 7.3** — Export PPTX (embeds speaker notes by default):\n```bash\npython3 ${SKILL_DIR}/scripts/svg_to_pptx.py <project_path> -s final\n# Default: generates two files — native shapes (.pptx) + SVG reference (_svg.pptx)\n# Use --only native  to skip SVG reference version\n# Use --only legacy  to only generate SVG image version\n```\n\n> ❌ **NEVER** use `cp` as a substitute for `finalize_svg.py` — it performs multiple critical processing steps\n> ❌ **NEVER** export directly from `svg_output/` — MUST use `-s final` to export from `svg_final/`\n> ❌ **NEVER** add extra flags like `--only`\n\n---\n\n## Role Switching Protocol\n\nBefore switching roles, you **MUST first read** the corresponding reference file — skipping is FORBIDDEN. Output marker:\n\n```markdown\n## [Role Switch: <Role Name>]\n📖 Reading role definition: references/<filename>.md\n📋 Current task: <brief description>\n```\n\n---\n\n## Reference Resources\n\n| Resource | Path |\n|----------|------|\n| Shared technical constraints | `references/shared-standards.md` |\n| Canvas format specification | `references/canvas-formats.md` |\n| Image layout specification | `references/image-layout-spec.md` |\n| SVG image embedding | `references/svg-image-embedding.md` |\n\n---\n\n## Notes\n\n- Do NOT add extra flags like `--only` to the post-processing commands — run them as-is\n- Local preview: `python3 -m http.server -d <project_path>/svg_final 8000`\n\nFile v1.0.2:README.md\n\n# PPTX Master\n\nAI-driven multi-format SVG content generation system for professional presentations.\n\n## 📋 声明\n\n本技能基于 GitHub 开源项目 [ppt-master](https://github.com/openclaw/skills/tree/main/ppt-master) 进行 ClawHub 适配，\n并额外增加了两个 layout 模板（HUAWEI 和 red grey），以提供更丰富的演示文稿设计选项。\n\n**Base Version**: [ppt-master](https://github.com/openclaw/skills/tree/main/ppt-master) (Open Source)\n**Adaptation**: ClawHub compatible version with additional layout templates\n\n## Version History\n\n### v1.2.1 (2026-04-19) - XML Validation Enhancement\n\n**Fixed:**\n- **SVG Content Checker** now validates XML syntax before content analysis\n- Detects mismatched tags (e.g., `<tspan>...</text>`)\n- Catches malformed SVG that would cause rendering failures\n\n**Technical Details:**\n- Added `xml.etree.ElementTree.fromstring()` validation in `_check_content_elements()`\n- XML parse errors now block the workflow with clear error messages\n- Prevents false-positive \"passes\" on malformed SVG files\n\n**Issue Resolved:**\n- Page 7 of AI Weekly Report PPT was blank due to XML tag mismatch\n- Root cause: `<tspan>` closed with `</text>` instead of `</tspan>`\n- Old checker missed it because it only counted string occurrences\n\n---\n\n### v1.2.0 (2026-04-18) - Content Review & Auto-Repair\n\n**Added:**\n- **SVG Content Checker** (`scripts/svg_content_checker.py`)\n  - Blank page detection (text elements < 2 AND file size < 500 bytes)\n  - Content density scoring (0-100%)\n  - Design consistency checking (colors, fonts)\n  - Structure completeness evaluation\n- **SVG Repair Coordinator** (`scripts/svg_repair_coordinator.py`)\n  - Automatic repair workflow\n  - Regeneration prompt generation for blank pages\n  - Fallback to placeholder pages when repair fails\n- **Step 6.5** in workflow: Content Review & Auto-Repair\n  - Automatic check after SVG generation\n  - Non-blocking: warnings allow continuation\n  - Blocking: blank pages trigger repair workflow\n\n**Changed:**\n- `SKILL.md`: Added Step 6.5 between SVG generation and post-processing\n- Tool list: Added svg_content_checker.py and svg_repair_coordinator.py\n\n**Use Case:**\n- Automatically detect blank pages before PPTX export\n- Generate repair prompts for manual regeneration\n- Ensure presentation quality before delivery\n\n---\n\n### v1.1.1 (2026-04-11) - Huawei Template Integration\n\n**Added:**\n- Huawei Technologies brand template (`华为技术`)\n- New `enterprise` quick lookup category in template index\n- Template count updated to 21\n\n**Changed:**\n- `layouts_index.json`: Added Huawei template to brand category and technology/enterprise lookups\n- `README.md`: Updated template index with Huawei template details\n\n**Use Case:**\n- Enterprise reports, solution showcases, annual reports, B2B client communication\n- Minimalist tech style with Huawei red accents and professional gray tones\n\n---\n\n### v1.1.0 (2026-04-09) - Source File Handling Update\n\n**Changed:**\n- Source files are now **copied** (not moved) to `sources/` directory by default\n- Original files are preserved at their source location\n- Use `--move` flag if you want to move files instead of copying\n\n**Previous behavior (v1.0.x):**\n- Source files were moved to `sources/`, removing them from original location\n\n**Rationale:**\n- Safer default behavior - originals are preserved\n- Users can still opt-in to move behavior with `--move` flag\n- Reduces risk of accidental data loss\n\n---\n\n### v1.0.0 (2026-04-08) - Initial Release\n\n**Features:**\n- Multi-format input support (PDF, DOCX, EPUB, HTML, URL, Markdown)\n- Professional SVG generation with design system\n- Template-based and free-design modes\n- Eight Confirmations design specification\n- PPTX export with speaker notes\n- Icon embedding and image processing\n\n---\n\n## Usage\n\n```bash\n# Initialize project\npython3 scripts/project_manager.py init <project_name> --format ppt169\n\n# Import source files (default: copy, preserve originals)\npython3 scripts/project_manager.py import-sources <project_path> <source_files...>\n\n# Import source files (move mode - remove originals)\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\n\n# Generate PPTX\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\n## License\n\nMIT\n\nFile v1.0.2:scripts/README.md\n\n# PPT Master Toolset\n\nThis directory contains user-facing scripts for conversion, project setup, SVG processing, export, and image generation.\n\n## Directory Layout\n\n- Top-level `scripts/`: runnable entry scripts\n- `scripts/image_backends/`: internal provider implementations used by `image_gen.py`\n- `scripts/svg_finalize/`: internal post-processing helpers used by `finalize_svg.py`\n- `scripts/docs/`: topic-focused script documentation\n- `scripts/assets/`: static assets consumed by scripts\n\n## Quick Start\n\nTypical end-to-end workflow:\n\n```bash\npython3 scripts/pdf_to_md.py <file.pdf>\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\n```\n\n## Script Index\n\n| Area | Primary scripts | Documentation |\n|------|-----------------|---------------|\n| Conversion | `pdf_to_md.py`, `doc_to_md.py`, `web_to_md.py`, `web_to_md.cjs` | [docs/conversion.md](./docs/conversion.md) |\n| Project management | `project_manager.py`, `batch_validate.py`, `generate_examples_index.py`, `error_helper.py`, `pptx_template_import.py` | [docs/project.md](./docs/project.md) |\n| SVG pipeline | `finalize_svg.py`, `svg_to_pptx.py`, `total_md_split.py`, `svg_quality_checker.py` | [docs/svg-pipeline.md](./docs/svg-pipeline.md) |\n| Image tools | `image_gen.py`, `analyze_images.py`, `gemini_watermark_remover.py` | [docs/image.md](./docs/image.md) |\n| Repo maintenance | `update_repo.py` | README install/update section |\n| Troubleshooting | validation, preview, export, dependency issues | [docs/troubleshooting.md](./docs/troubleshooting.md) |\n\n## High-Frequency Commands\n\nProject setup:\n\n```bash\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/project_manager.py validate <project_path>\n```\n\nTemplate source import:\n\n```bash\npython3 scripts/pptx_template_import.py <template.pptx>\n```\n\nPost-processing and export:\n\n```bash\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nImage generation:\n\n```bash\npython3 scripts/image_gen.py \"A modern futuristic workspace\"\npython3 scripts/image_gen.py --list-backends\npython3 scripts/analyze_images.py <project_path>/images\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\npython3 scripts/update_repo.py --skip-pip\n```\n\n## Recommendations\n\n- Keep new runnable scripts at the top level of `scripts/`\n- Move provider-specific or helper internals into subdirectories\n- Prefer the unified entry points `project_manager.py`, `finalize_svg.py`, and `image_gen.py`\n- Prefer `svg_final/` over `svg_output/` when exporting\n\n## Related Docs\n\n- [Conversion Tools](./docs/conversion.md)\n- [Project Tools](./docs/project.md)\n- [SVG Pipeline Tools](./docs/svg-pipeline.md)\n- [Image Tools](./docs/image.md)\n- [Troubleshooting](./docs/troubleshooting.md)\n- [AGENTS Guide](../../../AGENTS.md)\n\n_Last updated: 2026-03-26_\n\nFile v1.0.2:templates/README.md\n\n# Template Resources\n\n## Design Specification & Outline Reference\n\n`design_spec_reference.md` is an all-in-one reference template for defining:\n1.  **Visual Specifications**: Canvas dimensions, color scheme, typography, layout principles\n2.  **Content Outline**: Slide-by-slide page structure planning\n3.  **Technical Constraints**: Hard requirements for SVG generation and PPT compatibility\n\n[View Design Spec Reference](./design_spec_reference.md)\n\n## Page Layout Templates\n\nThe `layouts/` directory contains pre-built page layout templates organized by design style:\n\n- **General**: Versatile modern style, clean and flexible\n- **Consultant**: Consulting style, professional and structured\n- **Consultant Top**: Top-tier consulting style (MBB-level)\n- **Academic Defense**: Academic defense style, research-oriented\n\n- **Human browsing**: [layouts/README.md](./layouts/README.md)\n- **AI / Programmatic lookup**: [layouts/layouts_index.json](./layouts/layouts_index.json)\n\n## Chart Templates\n\nThe `charts/` directory contains 33 standard chart templates:\n\n- KPI Cards\n- Bar Chart / Stacked Bar Chart\n- Line Chart / Dual-Axis Line Chart\n- Donut Chart\n- Radar Chart\n- Funnel Chart\n- Matrix (2x2)\n- Timeline\n- Gantt Chart\n- Process Flow\n- Org Chart\n\n- **Human browsing**: [charts/README.md](./charts/README.md)\n- **AI / Programmatic lookup**: [charts/charts_index.json](./charts/charts_index.json)\n\n## Icon Library\n\nThe `icons/` directory contains 6000+ vector icons from [Tabler Icons](https://tabler.io/icons), organized in two active libraries:\n\n| Library | Style | Count |\n|---------|-------|-------|\n| `tabler-filled` | fill / solid | 1000+ |\n| `tabler-outline` | stroke / line | 5000+ |\n\n- **Usage & style rules**: [icons/README.md](./icons/README.md)\n- **Search icons**: `ls skills/ppt-master/templates/icons/<library>/ | grep <keyword>`\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7dbzxmk4fh39kk5rbgsdj5nn82qjcs\",\n  \"slug\": \"pptx-master\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1777047816705\n}\n\nFile v1.0.2:references/canvas-formats.md\n\n# Canvas Format Specification\n\n> See shared-standards.md for SVG basic rules.\n\n## Format Quick Reference\n\n| Format | viewBox | Ratio | Use Case |\n|--------|---------|-------|----------|\n| PPT 16:9 | `0 0 1280 720` | 16:9 | Business presentations, meetings |\n| PPT 4:3 | `0 0 1024 768` | 4:3 | Traditional projectors, academic talks |\n| Xiaohongshu (RED) | `0 0 1242 1660` | 3:4 | Image-text sharing, knowledge posts |\n| WeChat Moments / IG | `0 0 1080 1080` | 1:1 | Square posters, brand showcases |\n| Story / TikTok | `0 0 1080 1920` | 9:16 | Vertical stories, short video covers |\n| WeChat Article Header | `0 0 900 383` | 2.35:1 | WeChat article cover images |\n| Landscape Banner | `0 0 1920 1080` | 16:9 | Web banners, digital screens |\n| Portrait Poster | `0 0 1080 1920` | 9:16 | Phone screens, elevator ads |\n| A4 Print | `0 0 1240 1754` | 1:sqrt(2) | Print posters, flyers |\n\n## Format Selection Decision Tree\n\n```\nContent purpose?\n├── Presentation\n│   ├── Modern devices → PPT 16:9 (1280x720)\n│   └── Traditional devices → PPT 4:3 (1024x768)\n├── Social sharing\n│   ├── Xiaohongshu (RED) → 1242x1660\n│   ├── WeChat Moments / IG → 1080x1080\n│   └── Story / TikTok → 1080x1920\n└── Marketing materials\n    ├── WeChat Article Header → 900x383\n    ├── Banner → 1920x1080\n    └── Print → 1240x1754\n```\n\n## Layout Principles\n\n### Landscape (16:9, 4:3, 2.35:1)\n- Visual flow: Z-pattern, left to right\n- Margins: 40-80px\n- Layouts: multi-column, left-right split, grid\n- Card dimensions (16:9): single-row 530-600px, double-row 265-295px\n\n### Portrait (3:4, 9:16)\n- Visual flow: top to bottom\n- Margins: 60-120px\n- Layouts: single-column, top-bottom split, card stacking\n- Card dimensions (3:4): height 400-600px, gap 40-60px\n\n### Square (1:1)\n- Visual flow: center-radiating\n- Margins: 60-100px\n- Core area: ~800x800px\n\n## Format-specific Design\n\n| Format | Title Area | Content Area | Special Notes |\n|--------|-----------|--------------|---------------|\n| PPT | 80-100px | Full width utilization | Page number bottom-right |\n| Xiaohongshu (RED) | 180-240px (bold) | Generous top/bottom whitespace | Brand area at bottom 120-160px |\n| WeChat Moments | 200-280px | Center 500-600px | QR code area at bottom 150-200px |\n| Story | — | Middle 1500px | Top safe zone 120px, bottom 180px |\n| WeChat Article Header | Center/left-aligned 48-72px | — | Image on right or as background |\n\n## ViewBox Examples\n\n```xml\n<svg width=\"1280\" height=\"720\" viewBox=\"0 0 1280 720\">   <!-- PPT 16:9 -->\n<svg width=\"1242\" height=\"1660\" viewBox=\"0 0 1242 1660\"> <!-- Xiaohongshu -->\n<svg width=\"1080\" height=\"1080\" viewBox=\"0 0 1080 1080\"> <!-- WeChat Moments -->\n<svg width=\"1080\" height=\"1920\" viewBox=\"0 0 1080 1920\"> <!-- Story -->\n<svg width=\"900\" height=\"383\" viewBox=\"0 0 900 383\">     <!-- WeChat Article Header -->\n```\n\nFile v1.0.2:references/executor-base.md\n\n# Executor Common Guidelines\n\n> Style-specific content is in the corresponding `executor-{style}.md`. Technical constraints are in shared-standards.md.\n\n---\n\n## 1. Template Adherence Rules\n\nIf template files exist in the project's `templates/` directory, the template structure must be followed:\n\n| Page Type | Corresponding Template | Adherence Rules |\n|-----------|----------------------|-----------------|\n| Cover | `01_cover.svg` | Inherit background, decorative elements, layout structure; replace placeholder content |\n| Chapter | `02_chapter.svg` | Inherit numbering style, title position, decorative elements |\n| Content | `03_content.svg` | Inherit header/footer styles; **content area may be freely laid out** |\n| Ending | `04_ending.svg` | Inherit background, thank-you message position, contact info layout |\n| TOC | `02_toc.svg` | **Optional**: Inherit TOC title, list styles |\n\n### Page-Template Mapping Declaration (Required Output)\n\nBefore generating each page, you must explicitly output which template (or \"free design\") is used:\n\n```\n📝 **Template mapping**: `templates/01_cover.svg` (or \"None (free design)\")\n🎯 **Adherence rules / layout strategy**: [specific description]\n```\n\n- **Content pages**: Templates only define header and footer; the content area is freely laid out by the Executor\n- **No template**: Generate entirely per the Design Specification & Content Outline\n\n---\n\n## 2. Design Parameter Confirmation (Mandatory Step)\n\n> Before generating the first SVG page, you **must review the key design parameters from the Design Specification & Content Outline** to ensure all subsequent generation strictly follows the spec.\n\nMust output confirmation including: canvas dimensions, body font size, color scheme (primary/secondary/accent HEX values), font plan.\n\n**Why is this step mandatory?** Prevents the \"spec says one thing, execution does another\" disconnect.\n\n---\n\n## 3. Execution Guidelines\n\n- **Proximity principle**: Place related elements close together to form visual groups; increase spacing between unrelated groups to reinforce logical structure\n- **Absolute spec adherence**: Strictly follow the color, layout, canvas format, and typography parameters in the spec\n- **Follow template structure**: If templates exist, inherit the template's visual framework\n- **Main-agent ownership**: SVG generation must be performed by the current main agent, not delegated to sub-agents, because each page depends on shared upstream context and cross-page visual continuity\n- **Generation rhythm**: First lock the global design context, then generate pages sequentially one by one in the same continuous context; grouped page batches (for example, 5 pages at a time) are not allowed\n- **Phased batch generation** (recommended):\n  1. **Visual Construction Phase**: Generate all SVG pages continuously in sequential page order, ensuring high consistency in design style and layout coordinates (Visual Consistency)\n  2. **Logic Construction Phase**: After all SVGs are finalized, batch-generate speaker notes to ensure narrative coherence (Narrative Continuity)\n- **Technical specifications**: See [shared-standards.md](shared-standards.md) for SVG technical constraints and PPT compatibility rules\n- **Visual depth**: Use filter shadows, glow effects, gradient fills, dashed strokes, and gradient overlays from shared-standards.md to create layered depth — flat pages without elevation or emphasis look unfinished\n\n### SVG File Naming Convention\n\nFile naming format: `<number>_<page_name>.svg`\n\n- **Chinese content** → Chinese naming: `01_封面.svg`, `02_目录.svg`, `03_核心优势.svg`\n- **English content** → English naming: `01_cover.svg`, `02_agenda.svg`, `03_key_benefits.svg`\n- **Number rules**: Two-digit numbers, starting from 01\n- **Page name**: Concise and descriptive, matching the page title in the Design Specification & Content Outline\n\n---\n\n## 4. Icon Usage\n\nFour approaches: **A: Emoji** (`<text>🚀</text>`) | **B: AI-generated** (SVG basic shapes) | **C: Built-in library** (`templates/icons/` 6000+ icons, recommended) | **D: Custom** (user-specified)\n\n**Built-in icons — Placeholder method (recommended)**:\n\n```xml\n<!-- tabler-filled library (fill, 24px) -->\n<use data-icon=\"tabler-filled/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#005587\"/>\n<!-- tabler-outline library (stroke, 24px) -->\n<use data-icon=\"tabler-outline/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#005587\"/>\n```\n\n> No need to manually run `embed_icons.py`; `finalize_svg.py` post-processing tool will auto-embed icons.\n\n**Two icon libraries**:\n\n| Library | Style | Count | Prefix | Best for |\n|---------|-------|-------|--------|----------|\n| `tabler-filled` | fill/solid | 1000+ | `tabler-filled/` | Modern solid icons |\n| `tabler-outline` | stroke/line | 5000+ | `tabler-outline/` | Light, elegant style |\n\n**Searching for icons** — use terminal, zero token cost:\n```bash\nls skills/ppt-master/templates/icons/tabler-filled/ | grep home\nls skills/ppt-master/templates/icons/tabler-outline/ | grep chart\n```\n\n**Abstract concept → icon name** (for concepts whose meaning isn't obvious from the filename):\n\n| Concept | tabler-filled | tabler-outline |\n|---------|---------------|----------------|\n| Growth / Increase | `arrow-trend-up` | `arrow-trend-up` |\n| Decline / Decrease | `arrow-trend-down` | `arrow-trend-down` |\n| Success / Complete | `circle-check` | `circle-check` |\n| Warning / Risk | `alert-triangle` | `alert-triangle` |\n| Innovation / Idea | `bulb` | `bulb` |\n| Strategy / Goal | `target` | `target` |\n| Efficiency / Speed | `bolt` | `bolt` |\n| Collaboration / Team | `users` | `users` |\n| Settings / Config | `settings` | `settings` |\n| Security / Trust | `shield` | `shield` |\n| Money / Finance | `currency-dollar` | `currency-dollar` |\n| Time / Deadline | `clock` | `clock` |\n| Location / Region | `map-pin` | `map-pin` |\n| Communication | `message` | `message` |\n| Analysis / Data | `chart-bar` | `chart-bar` |\n| Process / Flow | `refresh` | `refresh` |\n| Global / World | `world` | `world` |\n| Excellence / Award | `star` | `star` |\n| Expand / Scale | `maximize` | `maximize` |\n| Problem / Issue | `bug` | `bug` |\n\n> For self-evident names (home, user, file, search, arrow, etc.) — just `grep` directly without consulting the table.\n\n> ⚠️ **Icon validation rule**: If the Design Specification includes an icon inventory list, Executor may **only** use icons from that approved list. Before using any icon, verify it exists via `ls | grep` search. **Mixing fill and outline icons in the same presentation is FORBIDDEN** — use only the style specified in the Design Spec.\n\n---\n\n## 5. Chart Reference\n\nWhen the Design Spec includes a **VII. Chart Reference List**, read the referenced SVG templates from `templates/charts/` to understand common chart patterns.\n\n**Adaptation rules**:\n- **Must preserve**: Chart type (bar/line/pie etc.) as specified in the Design Spec\n- **Must adapt**: Data values, labels, colors (match the project's color scheme), and dimensions to fit the page layout\n- **May adjust**: Axis ranges, grid lines, legend position, spacing — as long as the chart remains accurate and readable\n- **Must NOT**: Change chart type without Design Spec justification, or remove data points specified in the outline\n\n> Chart templates: `templates/charts/` (33 types). Index: `templates/charts/charts_index.json`\n\n---\n\n## 6. Image Handling\n\nHandle images based on their status in the Design Specification's \"Image Resource List\":\n\n| Status | Source | Handling |\n|--------|--------|----------|\n| **Existing** | User-provided | Reference images directly from `../images/` directory |\n| **AI-generated** | Generated by Image_Generator | Images already in `../images/`, reference directly |\n| **Placeholder** | Not yet prepared | Use dashed border placeholder |\n\n**Reference**: `<image href=\"../images/xxx.png\" ... preserveAspectRatio=\"xMidYMid slice\"/>`\n\n**Placeholder**: Dashed border `<rect stroke-dasharray=\"8,4\" .../>` + description text\n\n---\n\n## 7. Font Usage\n\nApply corresponding fonts for different text roles based on the font plan in the Design Specification & Content Outline:\n\n| Role | Chinese Recommended | English Recommended |\n|------|--------------------|--------------------|\n| Title font | Microsoft YaHei / KaiTi / SimHei | Arial / Georgia |\n| Body font | Microsoft YaHei / SimSun | Calibri / Times |\n| Emphasis font | SimHei | Arial Black / Consolas |\n| Annotation font | Microsoft YaHei / SimSun | Arial / Times |\n\n---\n\n## 8. Speaker Notes Generation Framework\n\n### Task 1. Generate Complete Speaker Notes Document\n\nAfter **all SVG pages are generated and finalized**, enter the \"Logic Construction Phase\" and generate the complete speaker notes document in `notes/total.md`.\n\n**Why not generate page-by-page?** Batch-writing notes allows planning transitions like a script, ensuring coherent presentation logic.\n\n**Format**: Each page starts with `# <number>_<page_title>`, separated by `---` between pages. Each page includes: script text (2-5 sentences), `Key points: ① ② ③`, `Duration: X minutes`. Except for the first page, each page's text starts with a `[Transition]` phrase.\n\n**Basic stage direction markers** (common to all styles):\n\n| Marker | Purpose |\n|--------|---------|\n| `[Pause]` | Whitespace after key content, letting the audience absorb |\n| `[Transition]` | Standalone paragraph at the start of each page's text, bridging from the previous page |\n\n> Each style may extend with additional markers (`[Interactive]`/`[Data]`/`[Scan Room]`/`[Benchmark]` etc.), see `executor-{style}.md`.\n\n**Language consistency rule**: All structural labels and stage direction markers in speaker notes **MUST match the presentation's content language**. When the presentation content is non-English, localize every label — do NOT mix English labels with non-English content.\n\n| English | 中文 | 日本語 | 한국어 |\n|---------|------|--------|--------|\n| `[Transition]` | `[过渡]` | `[つなぎ]` | `[전환]` |\n| `[Pause]` | `[停顿]` | `[間]` | `[멈춤]` |\n| `[Interactive]` | `[互动]` | `[問いかけ]` | `[상호작용]` |\n| `[Data]` | `[数据]` | `[データ]` | `[데이터]` |\n| `[Scan Room]` | `[观察]` | `[観察]` | `[관찰]` |\n| `[Benchmark]` | `[对标]` | `[ベンチマーク]` | `[벤치마크]` |\n| `Key points:` | `要点：` | `要点：` | `핵심 포인트:` |\n| `Duration:` | `时长：` | `所要時間：` | `소요 시간:` |\n| `Flex:` | `弹性：` | `調整：` | `조정:` |\n\n> For languages not listed above, translate each label to the corresponding natural term in that language.\n\n**Requirements**:\n\n- Notes should be conversational and flow naturally\n- Highlight each page's core information and presentation key points\n- Users can manually edit and override in the `notes/` directory\n\n### Task 2. Split Into Per-Page Note Files\n\nAutomatically split `notes/total.md` into individual speaker note files in the `notes/` directory.\n\n**File naming convention**:\n\n- **Recommended**: Match SVG names (e.g., `01_cover.svg` → `notes/01_cover.md`)\n- **Compatible**: Also supports `slide01.md` format (backward compatibility)\n\n---\n\n## 9. Next Steps After Completion\n\n> **Auto-continuation**: After Visual Construction Phase (all SVG pages) and Logic Construction Phase (all notes) are complete, the Executor proceeds directly to the post-processing pipeline.\n\n**Post-processing & Export** (see [shared-standards.md](shared-standards.md)):\n\n```bash\n# 1. Split speaker notes\npython3 scripts/total_md_split.py <project_path>\n\n# 2. SVG post-processing (auto-embed icons, images, etc.)\npython3 scripts/finalize_svg.py <project_path>\n\n# 3. Export PPTX\npython3 scripts/svg_to_pptx.py <project_path> -s final\n# Default: generates native shapes (.pptx) + SVG reference (_svg.pptx)\n```\n\nFile v1.0.2:references/executor-consultant-top.md\n\n# Executor Consultant Top — Top-tier Consulting Style (MBB Level)\n\n> Common guidelines: executor-base.md. Technical constraints: shared-standards.md.\n\n---\n\n## Role Definition\n\nAn MBB-level (McKinsey / Bain / BCG) top-tier consulting style SVG design executor. Suitable for strategic planning, board presentations, investment roadshows, C-suite decision support, and other **premium consulting** scenarios. Core characteristics: data-driven insights, pyramid-structured narrative, extreme simplicity. Output targets C-level decision-makers.\n\n---\n\n## SCQA Framework (Narrative Structure)\n\nEvery MBB-level presentation follows the SCQA narrative structure:\n\n| Element | Purpose | Typical Pages |\n|---------|---------|---------------|\n| **S - Situation** | Establish shared context | Cover / Pages 1-2 |\n| **C - Complication** | Introduce the problem / tension | Pages 2-3 |\n| **Q - Question** | The implicit or explicit question to solve | Transition page |\n| **A - Answer** | Core solution | All body pages |\n\n**Page sequencing**: Cover embodies S+C → Executive Summary answers Q → Chapters develop A → Closing revisits S\n\n**Title writing**:\n\n| SCQA Element | Weak Title | MBB-level Title |\n|-------------|------------|-----------------|\n| S | \"Industry Background\" | \"Digital penetration surpasses 60%, industry enters deep waters\" |\n| C | \"Challenges Faced\" | \"Yet three structural contradictions constrain scaled deployment\" |\n| Q | \"Strategic Question\" | \"How to move from pilot to full deployment within 18 months?\" |\n| A | \"Solution\" | \"Three-phase path: Focus, Expand, Scale\" |\n\n---\n\n## Data Contextualization (Never Present Data in Isolation)\n\n> **Golden Rule**: Never display a single data point in isolation. Every number needs context.\n\n| Method | Pattern | Visual Implementation |\n|--------|---------|----------------------|\n| **Time comparison** | \"From X to Y\" | Line chart + arrow annotating magnitude of change |\n| **Benchmark** | \"X vs industry average Y\" | Bar chart with gray dashed baseline |\n| **Competitive comparison** | \"Us X vs Competitor Y\" | Side-by-side bar chart, highlight own data |\n| **Target gap** | \"Actual X / Target Y\" | Progress bar + gap annotation |\n| **Ranking** | \"Ranked #N of M\" | Horizontal bar chart + highlight marker |\n\n**Data annotation three essentials**: Every data visualization must include (1) The value itself (large bold font) (2) Comparison reference (baseline / prior period / competitor) (3) Meaning interpretation (\"So what?\")\n\n```xml\n<text x=\"160\" y=\"280\" text-anchor=\"middle\" font-size=\"42\" font-weight=\"bold\" fill=\"#1E293B\">97.3%</text>\n<text x=\"160\" y=\"310\" text-anchor=\"middle\" font-size=\"13\" fill=\"#64748B\">Industry avg 82% | Competitor A 89%</text>\n<text x=\"160\" y=\"335\" text-anchor=\"middle\" font-size=\"12\" fill=\"#059669\">Leading industry by 15.3 percentage points</text>\n```\n\n---\n\n## Pyramid Principle (Conclusion First)\n\n> Executives don't care about your *process* — they care about *results*.\n\n```\n         ┌─────────────────┐\n         │  Core Conclusion │   ← Page title / Takeaway\n         └────────┬────────┘\n      ┌───────────┼───────────┐\n  ┌───┴───┐  ┌───┴───┐  ┌───┴───┐\n  │ Arg 1 │  │ Arg 2 │  │ Arg 3 │   ← Key supporting points\n  └───────┘  └───────┘  └───────┘\n```\n\n| Level | Position | Font Size |\n|-------|----------|-----------|\n| Core conclusion | Takeaway Box | 16-18px bold |\n| Arguments | Content area body | 14-16px |\n| Supporting data | Charts / cards | 12-14px |\n\n**Contrast**: Title \"Market Research Results\" (wrong) → \"Metaverse needs 5-10 years to reach scale\" (right); Body \"We researched... and found...\" (wrong) → \"Three arguments: (1)... (2)... (3)...\" (right)\n\n---\n\n## MBB-level Layout Patterns\n\n### Content Page Standard Structure (1280x720)\n\n```\n┌──────────────────────────────────┐\n│ Gradient top bar (0,0 → 1280,6)  │\n├──────────────────────────────────┤\n│ Assertion title (x=40, y=50, 24px)│\n├──────────────────────────────────┤\n│ Takeaway Box (x=40, y=75,        │  ← Dark background + white text, one-sentence conclusion\n│   w=1200, h=45)                  │\n├──────────────────────────────────┤\n│ Content area (x=40, y=140,       │  ← Charts / data / analysis\n│   w=1200, h=520)                 │\n├──────────────────────────────────┤\n│ Source | CONFIDENTIAL | Page #    │  ← y=700, 10px\n└──────────────────────────────────┘\n```\n\n### Strategic Roadmap\n\nThree phases laid out horizontally, `<rect rx=\"8\">` + title + action list, `<polygon>` arrows connecting:\n\n```\nFocus Core (0-6mo)  ──>  Expand Capability (6-12mo)  ──>  Scale Up (12-18mo)\nx=40,w=380              x=450,w=380                     x=860,w=380\n```\n\n### Benchmarking Matrix\n\nHorizontal table; own row highlighted in theme color, others in gray. Leading indicators marked green, lagging marked red. Use `<circle>` or `<rect>` to build score points.\n\n### Waterfall Chart (Change Attribution)\n\nStart → increase/decrease factors → End. Positive factors green bars, negative factors red bars, start/end points dark bars, cumulative line as dashed connector.\n\n---\n\n## Strategic Use of Color\n\nMBB-level color usage is extremely restrained — color serves information:\n\n| Purpose | Method |\n|---------|--------|\n| **Focus** | Target data in theme color, everything else gray |\n| **Reduce cognitive load** | Same series differentiated by opacity (`fill-opacity` 1.0/0.6/0.3) |\n| **Semantics** | Green = positive, Red = negative, Gray = baseline |\n| **Branding** | Gradient top bar / decorative lines in brand color |\n\n**Commandments**: No more than 3 primary colors; accent color used at most 2-3 places globally; data series use same-hue depth variations, not different colors; background white or very light gray.\n\n---\n\n## Chart vs Table Selection Matrix\n\n| Scenario | Recommended Form | Reason |\n|----------|-----------------|--------|\n| Comparing 2-7 categories | **Bar chart** | Visual comparison is intuitive |\n| Time trends | **Line chart** | Time series clarity |\n| Precise values / large rankings | **Table** | 50 data points in a bar chart would be chaotic |\n| Proportional composition | **Donut chart** | More modern than pie charts |\n| Two-dimensional positioning | **2x2 matrix** | Strategic quadrant analysis |\n| Change attribution | **Waterfall chart** | Factor decomposition |\n\n---\n\n## Speaker Notes Style\n\n### Narrative Tone\n\nTargeting **executives / decision-makers**. Pyramid structure — every sentence carries information. Composed, authoritative, and insightful tone.\n\n### Stage Direction Markers\n\n| Marker | Purpose | Example |\n|--------|---------|---------|\n| `[Pause]` | Silence after key insight, let executives absorb | \"This means we are missing a billion-dollar market. [Pause]\" |\n| `[Scan Room]` | Observe decision-makers' reactions, decide whether to elaborate | \"[Scan Room] If there are questions, I can elaborate.\" |\n| `[Data]` | Conversational number delivery | \"[Data] 63% → nearly two-thirds\" |\n| `[Benchmark]` | Emphasize comparison baseline | \"[Benchmark] Compared to the industry average of 12%, our 23% is nearly double\" |\n| `[Transition]` | Bridge from previous page, at start of each page's text | \"[Transition] Building on the strategic framework, let's drill into the implementation path.\" |\n\n### Notes Writing Guidelines\n\n- **Pyramid structure**: Conclusion → Arguments → Details\n- **Data contextualization**: Every number has a comparison reference\n- **Executive language**: \"The strategic implication is...\", \"The core insight is...\"\n- **Flex mechanism**: Annotate \"content that can be skipped if time is tight\" for flexible duration\n- **Key points structure**: `Key points: (1) Core insight (2) Data support (3) Strategic implication`\n\n### Notes Example\n\n```markdown\n# 03_strategic_path\n\n[Transition] Having clarified the problem and the opportunity, now comes the most critical part — our response path.\n\nWe recommend a three-phase strategy. [Pause]\n\nPhase one: Focus. Over the next six months, concentrate resources on conquering the Eastern China market.\n[Data] Eastern China contributes nearly two-thirds of industry growth, [Benchmark] yet our penetration rate is only half of Competitor A's. [Pause]\n\nPhase two: Expand. Use Eastern China as a template, replicate to Southern and Northern China.\nPhase three: Scale. Leverage a digital platform for nationwide coverage.\n\n[Scan Room] The resource allocation for phase one is in the appendix — would you like me to walk through it now?\n\nKey points: (1) Focus-Expand-Scale three-phase approach (2) Data-backed Eastern China priority (3) 18-month full deployment\nDuration: 3 minutes\nFlex: [If time is tight, skip phase two and three details and go straight to financial impact]\n```\n\n---\n\n## MBB-level Quality Checklist Supplement\n\n### Content Level\n\n- [ ] **SCQA complete**: Overall follows Situation-Complication-Question-Answer structure\n- [ ] **Data contextualized**: Every data point has a comparison reference\n- [ ] **Conclusion first**: Every page's Takeaway Box has a one-sentence conclusion\n- [ ] **MECE principle**: Categorized analysis is mutually exclusive and collectively exhaustive\n\n### Visual Level\n\n- [ ] **Color with intent**: Colors serve information delivery\n- [ ] **Ample whitespace**: Not crowded; information can \"breathe\"\n- [ ] **Visual hierarchy**: Conclusion > Arguments > Details, differentiated by font size/weight\n- [ ] **Brand consistency**: Gradient top bar and footer unified throughout\n\n### Notes Level\n\n- [ ] **Pyramid structure**: Every page is conclusion-first\n- [ ] **Stage markers complete**: [Pause] and [Scan Room] at key positions\n- [ ] **Flex content annotated**: Supports flexible duration\n\nFile v1.0.2:references/executor-consultant.md\n\n# Executor Consultant — Consulting Style\n\n> Common guidelines: executor-base.md. Technical constraints: shared-standards.md.\n\n---\n\n## Role Definition\n\nA data-driven, consulting-style SVG design executor. Suitable for business analysis reports, market research, operational reviews, strategic recommendations, and other **general consulting** scenarios. Emphasizes structured information presentation and data visualization; clean, clear, and professional style.\n\n---\n\n## Consultant-specific Data Visualization Techniques\n\n### 1. KPI Dashboard Design\n\nKPI cards are the most common element in consulting reports. Standard layout (1280x720):\n\n```\n4-card layout: each card 280x180, gap 30\n  Card 1: x=45,  y=160\n  Card 2: x=355, y=160\n  Card 3: x=665, y=160\n  Card 4: x=975, y=160\n```\n\n**Card internal structure** (top to bottom):\n\n| Area | Content | Font Size | Style |\n|------|---------|-----------|-------|\n| Icon row | data-icon icon | 32x32 | Theme color |\n| Metric name | \"Monthly Active Users\" | 14px | Gray #64748B |\n| Core number | \"1.2M\" | 36-42px | Bold, dark color |\n| Trend annotation | \"+12.3% vs last month\" | 12px | Green=up / Red=down |\n\n**Trend arrow conventions**:\n- Up: `arrow-trend-up` icon + green text\n- Down: `arrow-trend-down` icon + red text\n- Flat: horizontal line icon + gray text\n\n### 2. Chart Color Conventions\n\nConsulting-style charts use **monochromatic depth gradients** rather than rainbow colors:\n\n```\nPrimary series:   Theme color 100% opacity\nComparison series: Theme color 60% opacity\nBaseline:         #94A3B8 (gray dashed line)\nHighlight:        Accent color (only for key data points)\n```\n\n### 3. Data Annotation Principles\n\n- **Direct data labels**: Place values at the top of bar charts — no legend needed\n- **Annotated trend lines**: Add text notes at key inflection points (\"Policy change\", \"Product launch\")\n- **Comparison baselines**: Mark industry average / target values with gray dashed lines\n- **Consistent units**: Maintain the same numeric units and precision within a chart\n\n### 4. Table Design\n\nConsulting reports frequently use tables for precise data:\n\n| Design Element | Specification |\n|----------------|---------------|\n| Header | Dark background + white text, font-weight=\"bold\" |\n| Zebra striping | Alternate rows with `fill-opacity=\"0.05\"` light background |\n| Number alignment | Numbers right-aligned, text left-aligned |\n| Highlighted row | Mark key rows with accent color `fill-opacity=\"0.1\"` |\n| Borders | Use horizontal lines only to separate rows; avoid full grid lines |\n\n---\n\n## Consulting-specific Layout Patterns\n\n### MECE Decomposition Tree\n\nMain trunk on the left, branches expanding rightward — mutually exclusive, collectively exhaustive:\n\n```\nMain metric ──┬── Branch A (45%)\n              ├── Branch B (30%)\n              ├── Branch C (20%)\n              └── Branch D (5%)\n```\n\n- Use `<line>` to connect trunk to branches\n- Each branch has a `<rect>` container + percentage annotation\n- Sum must = 100% (or explicitly label \"Other\")\n\n### Driver Factor Tree\n\nTop-level metric → decomposed factors → actions. Ideal for performance attribution analysis:\n\n```\nRevenue growth 15%\n  ├── Average order value +8%  → Premium product line expansion\n  ├── Customer count +5%       → New channel acquisition\n  └── Repurchase rate +2%      → Loyalty program optimization\n```\n\n### Left-chart Right-text (Chart Interpretation)\n\nCore consulting report layout: chart on the left, key insights on the right:\n\n```\nChart area: x=40, y=120, w=700, h=480\nInsight area: x=780, y=120, w=460, h=480\n  - Core conclusion (bold, 16px)\n  - 3-5 bullet points (14px)\n  - Data source (12px, gray)\n```\n\n---\n\n## Professional Expression Standards\n\n### Page Titles\n\nConsulting-style page titles should be **assertion headlines**, not descriptive titles:\n\n| Type | Descriptive (avoid) | Assertion (recommended) |\n|------|---------------------|------------------------|\n| Market | \"Market Overview\" | \"Domestic market grows 23% YoY, significantly outpacing global average\" |\n| Competition | \"Competitive Analysis\" | \"Three major competitors show clear weaknesses in channel coverage\" |\n| Finance | \"Financial Data\" | \"Gross margin improved for four consecutive quarters, breaking industry ceiling\" |\n\n### Data Source Attribution\n\nEvery data-containing page must include a source note at the bottom:\n\n```xml\n<text x=\"40\" y=\"700\" font-size=\"10\" fill=\"#94A3B8\">\n  Source: National Bureau of Statistics 2025 Annual Report; Internal team analysis\n</text>\n```\n\n### Key Takeaway Box\n\nConsulting-style content pages should include a **Takeaway Box** below the title:\n\n```\nPosition: x=40, y=80, w=1200, h=50\nBackground: Light theme color (fill-opacity=\"0.08\")\nText: 14-16px, one-sentence summary of the page's core takeaway\n```\n\n---\n\n## Speaker Notes Style\n\n### Narrative Tone\n\nConsultant-style speaker notes use a **conclusion-driven** approach — state the conclusion first, then present supporting evidence. Professional, concise, and persuasive tone.\n\n### Stage Direction Markers\n\n| Marker | Purpose | Example |\n|--------|---------|---------|\n| `[Pause]` | Silence after key conclusions, let the audience absorb | \"This means our market share is being eroded. [Pause]\" |\n| `[Data]` | Cue to verbalize numbers conversationally | \"[Data] 85% → more than eight out of ten customers reported this issue\" |\n| `[Transition]` | Bridge from previous page, must be at start of each page's text | \"[Transition] Based on that analysis, let's look at specific recommendations.\" |\n\n### Notes Writing Guidelines\n\n- **Conclusion first**: The first sentence of each page's notes is the core takeaway\n- **Conversational data**: 30% → \"roughly one-third\", 85% → \"more than eight out of ten\", 2.5x → \"two and a half times\"\n- **Evidence follows immediately**: After the conclusion, provide 2-3 supporting data points/facts\n- **Professional terminology**: Use terms like \"insight\", \"driver\", \"key lever\" etc.\n- **Key points structure**: `Key points: (1) Core conclusion (2) Supporting data (3) Next steps`\n\n### Notes Example\n\n```markdown\n# 03_key_findings\n\n[Transition] Based on our market scan, we have distilled three key findings.\n\nFirst, the primary growth driver is shifting from acquisition to retention.\n[Data] New customer acquisition cost rose nearly 40% year-over-year, yet improved repurchase rates contributed over 60% of revenue growth. [Pause]\n\nSecond, lower-tier market growth significantly outpaces tier-1 and tier-2 cities.\nThird, the 25-35 female user segment has an ARPU 1.8x the overall average.\n\nKey points: (1) Growth engine shifting from acquisition to retention (2) Lower-tier market opportunity window (3) High-value user persona\nDuration: 2 minutes\n```\n\n---\n\n## Self-check Supplement (Consultant-specific)\n\n- [ ] Data matches source data — no fabrication\n- [ ] Every data page has a source attribution at the bottom\n- [ ] Page titles are assertion-based, not descriptive\n- [ ] KPI cards have trend arrows and comparison annotations\n- [ ] Chart colors are unified, using monochromatic scheme rather than rainbow\n- [ ] Notes are conclusion-first with conversational data\n\nFile v1.0.2:references/executor-general.md\n\n# Executor General — Creative Versatile Style\n\n> Common guidelines: executor-base.md. Technical constraints: shared-standards.md.\n\n---\n\n## Role Definition\n\nA creative, versatile-style SVG design executor. Suitable for product introductions, training materials, proposal presentations, marketing campaigns, and other **non-consulting** scenarios. Emphasizes visual impact and information engagement, striking a balance between professionalism and approachability.\n\n---\n\n## General-specific Layout Techniques\n\n### 1. Flexible and Varied Layouts\n\nThe General style is not confined to fixed templates; layouts can be freely chosen based on content:\n\n| Layout | Use Case | Layout Details (1280x720) |\n|--------|----------|--------------------------|\n| Full-image background + text overlay | Covers, emotional pages | `<image>` fills canvas + semi-transparent overlay + centered title |\n| Left-right split (image-text mix) | Feature introductions, comparisons | Left x=40,w=580 / Right x=660,w=580 |\n| Three-column cards | Feature lists, team introductions | x=40,450,860 each w=380, equal-height cards |\n| Top-bottom split | Timelines, process flows | Top area: title+description h=250 / Bottom area: charts+content h=420 |\n| Center-radiating | Core concepts, ecosystem diagrams | Center element + 4-6 surrounding nodes, lines pointing to center |\n| Waterfall / Z-pattern | Storytelling, case studies | Content blocks alternate left-right, guiding the eye in a Z-pattern |\n\n### 2. Visual Rhythm Control\n\n- **Information density alternation**: Follow a data-heavy page with a \"breathing page\" (large image / quote / transition) to prevent audience fatigue\n- **Visual weight balance**: Dark/large-area elements are \"heavy\", light/small elements are \"light\" — balance left-right/top-bottom\n- **Repetition and variation**: Maintain layout consistency within a chapter; vary between chapters to maintain freshness\n\n### 3. Decorative Element Usage\n\n| Element | Usage | Notes |\n|---------|-------|-------|\n| Gradient blocks | Background zones, title backing | Use `<linearGradient>` / `<radialGradient>`, limit to 2-3 colors |\n| Rounded rectangle cards | Content containers, feature modules | `rx=\"12\"` with light shadow (simulate with lighter rect) |\n| Icon accents | List item prefixes, feature markers | Use `data-icon` placeholders, size 32-48px |\n| Numbered circles | Step flows, ranked lists | `<circle>` + centered `<text>`, theme color fill |\n| Divider lines | Content separation | `<line>` or `<rect height=\"2\">`, opacity 0.2-0.3 |\n\n---\n\n## Visual Strategy\n\n### Color Usage\n\n- **Bold use of theme color**: Covers and chapter pages can use large areas of theme color background\n- **Gradients enhance depth**: Title bars and card backgrounds can use same-hue gradients\n- **Contrast creates focus**: Key numbers/words use accent color, creating contrast with surroundings\n- **Color-mood matching**: Cool tones for tech feel, warm tones for energy, dark tones for gravitas\n\n### Image Handling Strategy\n\n| Scenario | Strategy | SVG Implementation |\n|----------|----------|-------------------|\n| Full-screen background | Image fills + dark gradient overlay | `preserveAspectRatio=\"xMidYMid slice\"` + gradient rect |\n| Portrait image display | Place left/right, maintain original ratio | Control width, height adapts |\n| Multi-image grid | Grid arrangement, uniform sizing | Equal-width equal-height `<image>` matrix |\n| Person photo | Circular crop effect | `<circle>` background + square image overlay (post-processing crops) |\n\n### Typography Hierarchy\n\n```\nTitle layer   → 28-36px, bold, theme color or white\nSubtitle layer → 20-24px, medium weight, secondary color\nBody layer    → 16-18px, regular, dark gray\nAnnotation layer → 12-14px, light gray, bottom-aligned\n```\n\n---\n\n## Speaker Notes Style\n\n### Narrative Tone\n\nGeneral style speaker notes use **conversational narration** — like talking with the audience, not reading a report. Natural tone with rhythm, using rhetorical devices where appropriate.\n\n### Stage Direction Markers\n\n| Marker | Purpose | Example |\n|--------|---------|---------|\n| `[Pause]` | Silence after key reveal, letting the audience absorb | \"What does this number mean? [Pause] It means 1 in every 3 users...\" |\n| `[Interactive]` | Ask questions or guide audience participation | \"[Interactive] How many of you have used this feature?\" |\n| `[Transition]` | Bridge from previous page, must be at start of each page's text | \"[Transition] Now that we understand the context, let's see how it works.\" |\n\n### Notes Writing Guidelines\n\n- **Tell stories**: Use \"scenario-conflict-resolution\" structure for each page's narrative\n- **Use metaphors**: Make abstract concepts tangible (\"It's like adding a turbocharger to the system\")\n- **Create suspense**: Pose questions at the right time, answer on the next page\n- **Conversational data**: 30% → \"nearly one-third\", 2.5x → \"more than doubled\"\n- **Key points structure**: `Key points: (1) Core message (2) Supporting evidence (3) Call to action`\n\n### Notes Example\n\n```markdown\n# 03_key_advantages\n\n[Transition] Having covered the market landscape, you might be wondering: where is our opportunity?\n\nOur core advantages can be summed up in three words: Fast, Accurate, Efficient.\nFast — deployment time cut from 3 months to 2 weeks; [Pause]\nAccurate — recognition accuracy at 97.3%, far exceeding the industry average of 82%;\nEfficient — overall costs reduced by nearly one-third.\n\n[Interactive] If you were the decision-maker, which of these three numbers would impress you most?\n\nKey points: (1) Three differentiating advantages (2) Quantitative data support (3) Prompt for reflection\nDuration: 2 minutes\n```\n\n---\n\n## Self-check Supplement (General-specific)\n\n- [ ] Visual rhythm is reasonable: data-dense pages alternate with breathing pages\n- [ ] Decorative elements are moderate: serving content, not overshadowing it\n- [ ] Image-text ratio is appropriate: not just text walls, visual highlights present\n- [ ] Notes are conversational: reads like speaking, not reading a script\n\nFile v1.0.2:references/image-generator.md\n\n# Image_Generator Reference Manual\n\n> This file is the streamlined reference for the Image_Generator role. Common standards (SVG technical constraints, canvas formats, post-processing pipeline, etc.) are in [shared-standards.md](./shared-standards.md).\n\n## Core Mission\n\nReceive the \"Image Resource List\" from the Design Specification & Content Outline output by the Strategist, create optimized prompts for each image pending generation, generate images via AI tools, and save them to the project's `images/` directory.\n\n**Trigger condition**: When AI image generation is ne\n\nArchive v1.0.1: 97 files, 299196 bytes\n\nFiles: README.md (4273b), references/canvas-formats.md (2902b), references/executor-base.md (11827b), references/executor-consultant-top.md (10349b), references/executor-consultant.md (7180b), references/executor-general.md (6070b), references/image-generator.md (18038b), references/image-layout-spec.md (5620b), references/shared-standards.md (18394b), references/strategist.md (18573b), references/svg-image-embedding.md (6089b), references/template-designer.md (8483b), RESOURCES.md (4295b), scripts/analyze_images.py (8226b), scripts/batch_validate.py (10419b), scripts/config.py (16611b), scripts/doc_to_md.py (7467b), scripts/docs/conversion.md (2206b), scripts/docs/image.md (2861b), scripts/docs/project.md (2627b), scripts/docs/svg-pipeline.md (4601b), scripts/docs/troubleshooting.md (1388b), scripts/error_helper.py (16161b), scripts/finalize_svg.py (10946b), scripts/gemini_watermark_remover.py (6825b), scripts/generate_examples_index.py (8310b), scripts/image_backends/__init__.py (57b), scripts/image_backends/backend_bfl.py (5784b), scripts/image_backends/backend_common.py (7366b), scripts/image_backends/backend_fal.py (4198b), scripts/image_backends/backend_gemini.py (8808b), scripts/image_backends/backend_ideogram.py (4875b), scripts/image_backends/backend_openai.py (8135b), scripts/image_backends/backend_qwen.py (6333b), scripts/image_backends/backend_replicate.py (5908b), scripts/image_backends/backend_siliconflow.py (5718b), scripts/image_backends/backend_stability.py (4889b), scripts/image_backends/backend_volcengine.py (6004b), scripts/image_backends/backend_zhipu.py (5911b), scripts/image_gen.py (13130b), scripts/pdf_to_md.py (26621b), scripts/pptx_animations.py (8269b), scripts/pptx_template_import.py (18066b), scripts/project_manager.py (24802b), scripts/project_utils.py (15378b), scripts/README.md (3296b), scripts/rotate_images.py (20979b), scripts/svg_content_checker.py (18598b), scripts/svg_finalize/__init__.py (88b), scripts/svg_finalize/crop_images.py (10973b), scripts/svg_finalize/embed_icons.py (10938b), scripts/svg_finalize/embed_images.py (6370b), scripts/svg_finalize/fix_image_aspect.py (13656b), scripts/svg_finalize/flatten_tspan.py (16205b), scripts/svg_finalize/svg_rect_to_path.py (10698b), scripts/svg_position_calculator.py (54811b), scripts/svg_quality_checker.py (18782b), scripts/svg_repair_coordinator.py (15822b), scripts/svg_to_pptx.py (449b), scripts/svg_to_pptx/__init__.py (465b), scripts/svg_to_pptx/drawingml_context.py (3812b), scripts/svg_to_pptx/drawingml_converter.py (7655b), scripts/svg_to_pptx/drawingml_elements.py (29068b), scripts/svg_to_pptx/drawingml_paths.py (13801b), scripts/svg_to_pptx/drawingml_styles.py (11889b), scripts/svg_to_pptx/drawingml_utils.py (10052b), scripts/svg_to_pptx/pptx_builder.py (17409b), scripts/svg_to_pptx/pptx_cli.py (7591b), scripts/svg_to_pptx/pptx_dimensions.py (4188b), scripts/svg_to_pptx/pptx_discovery.py (2938b), scripts/svg_to_pptx/pptx_media.py (2418b), scripts/svg_to_pptx/pptx_notes.py (4625b), scripts/svg_to_pptx/pptx_slide_xml.py (4736b), scripts/total_md_split.py (10941b), scripts/update_repo.py (4287b), scripts/web_to_md.cjs (27305b), scripts/web_to_md.py (25871b), SKILL.md (16554b), SVG_BEST_PRACTICES.md (4691b), templates/design_spec_reference.md (9726b)","readmeExcerpt":"Skill: Pptx Master V1.2.3 20260507 Owner: vincentlau2046-sudo Summary: 专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red... Tags: latest:1.2.3, ppt:1.0.2, presentation:1.0.2 Version history: v1.2.3 | 2026-05-07T07:20:42.569Z | user XML实体自动转义 v1.0.2 | 2026-04-24T16:23:36.705Z | user ClawHub适配版本，基于github开源ppt-mas","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 ${SKILL_DIR}/scripts/project_manager.py init <project_name> --format <format>"},{"language":"bash","snippet":"cp ${SKILL_DIR}/templates/layouts/<template_name>/*.svg <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/design_spec.md <project_path>/templates/\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.png <project_path>/images/ 2>/dev/null || true\ncp ${SKILL_DIR}/templates/layouts/<template_name>/*.jpg <project_path>/images/ 2>/dev/null || true"},{"language":"text","snippet":"Read references/strategist.md"},{"language":"bash","snippet":"python3 ${SKILL_DIR}/scripts/analyze_images.py <project_path>/images"},{"language":"markdown","snippet":"## ✅ Strategist Phase Complete\n- [x] Eight Confirmations completed (user confirmed)\n- [x] Design Specification & Content Outline generated\n- [ ] **Next**: Auto-proceed to [Image_Generator / Executor] phase"},{"language":"bash","snippet":"python3 ${SKILL_DIR}/scripts/image_gen.py \"prompt\" --aspect_ratio 16:9 --image_size 1K -o <project_path>/images"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: pptx-master\ndescription: >-\n  专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。\n  多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。\n  版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red grey 等新模板。\n\nread_when:\n  - 用户说\"生成 PPT\"、\"做 PPT\"、\"制作演示文稿\"、\"做个 PPT\"\n  - 用户提供 PDF 文件要求转换成 PPT\n  - 用户提供 DOCX/Word 文档要求转换成 PPT\n  - 用户提供 URL 要求提取内容生成 PPT\n  - 用户需要专业演示文稿（财报、技术汇报、商业演示）\n  - 用户明确要求\"原生可编辑\"、\"可修改\"的 PPT\n  - 用户提到\"pptx-master\"、\"ppt pro\"\n\nmetadata:\n  openclaw:\n    emoji: 📊\n    priority: high\n    category: content-generation\n    tags:\n      - ppt\n      - presentation\n      - slides\n      - 演示文稿\n    conflicts_with:\n      - ppt-video\n      - fireworks-tech-graph\n  clawhub:\n    license: MIT-0\n    tags: latest=1.2.3\n---\n\n# PPT Master Skill\n\n> AI-driven multi-format SVG content generation system. Converts source documents into high-quality SVG pages through multi-role collaboration and exports to PPTX.\n\n**Core Pipeline**: `Source Document → Create Project → Template Option → Strategist → [Image_Generator] → Executor → Post-processing → Export`\n\n> [!CAUTION]\n> ## 🚨 Global Execution Discipline (MANDATORY)\n>\n> **This workflow is a strict serial pipeline. The following rules have the highest priority — violating any one of them constitutes execution failure:**\n>\n> 1. **SERIAL EXECUTION** — Steps MUST be executed in order; the output of each step is the input for the next. Non-BLOCKING adjacent steps may proceed continuously once prerequisites are met, without waiting for the user to say \"continue\"\n> 2. **BLOCKING = HARD STOP** — Steps marked ⛔ BLOCKING require a full stop; the AI MUST wait for an explicit user response before proceeding and MUST NOT make any decisions on behalf of the user\n> 3. **NO CROSS-PHASE BUNDLING** — Cross-phase bundling is FORBIDDEN. (Note: the Eight Confirmations in Step 4 are ⛔ BLOCKING — the AI MUST present recommendations and wait for explicit user confirmation before proceeding. Once the user confirms, all subsequent non-BLOCKING steps — design spec output, SVG generation, speaker notes, and post-processing — may proceed automatically without further user confirmation)\n> 4. **GATE BEFORE ENTRY** — Each Step has prerequisites (🚧 GATE) listed at the top; these MUST be verified before starting that Step\n> 5. **NO SPECULATIVE EXECUTION** — \"Pre-preparing\" content for subsequent Steps is FORBIDDEN (e.g., writing SVG code during the Strategist phase)\n> 6. **NO SUB-AGENT SVG GENERATION** — Executor Step 6 SVG generation is context-dependent and MUST be completed by the current main agent end-to-end. Delegating page SVG generation to sub-agents is FORBIDDEN\n> 7. **SEQUENTIAL PAGE GENERATION ONLY** — In Executor Step 6, after the global design context is confirmed, SVG pages MUST be generated sequentially page by page in one continuous pass. Grouped page batches (for example, 5 pages at a time) are FORBIDDEN\n\n> [!IMPORTANT]\n> ## 🌐 Language & Communication Rule\n>\n> - **Response language**: Always match the language of the user's input "},{"path":"README.md","content":"# PPT Master\n\nAI-driven multi-format SVG content generation system for professional presentations.\n\n## Version History\n\n### v1.2.1 (2026-04-19) - XML Validation Enhancement\n\n**Fixed:**\n- **SVG Content Checker** now validates XML syntax before content analysis\n- Detects mismatched tags (e.g., `<tspan>...</text>`)\n- Catches malformed SVG that would cause rendering failures\n\n**Technical Details:**\n- Added `xml.etree.ElementTree.fromstring()` validation in `_check_content_elements()`\n- XML parse errors now block the workflow with clear error messages\n- Prevents false-positive \"passes\" on malformed SVG files\n\n**Issue Resolved:**\n- Page 7 of AI Weekly Report PPT was blank due to XML tag mismatch\n- Root cause: `<tspan>` closed with `</text>` instead of `</tspan>`\n- Old checker missed it because it only counted string occurrences\n\n---\n\n### v1.2.0 (2026-04-18) - Content Review & Auto-Repair\n\n**Added:**\n- **SVG Content Checker** (`scripts/svg_content_checker.py`)\n  - Blank page detection (text elements < 2 AND file size < 500 bytes)\n  - Content density scoring (0-100%)\n  - Design consistency checking (colors, fonts)\n  - Structure completeness evaluation\n- **SVG Repair Coordinator** (`scripts/svg_repair_coordinator.py`)\n  - Automatic repair workflow\n  - Regeneration prompt generation for blank pages\n  - Fallback to placeholder pages when repair fails\n- **Step 6.5** in workflow: Content Review & Auto-Repair\n  - Automatic check after SVG generation\n  - Non-blocking: warnings allow continuation\n  - Blocking: blank pages trigger repair workflow\n\n**Changed:**\n- `SKILL.md`: Added Step 6.5 between SVG generation and post-processing\n- Tool list: Added svg_content_checker.py and svg_repair_coordinator.py\n\n**Use Case:**\n- Automatically detect blank pages before PPTX export\n- Generate repair prompts for manual regeneration\n- Ensure presentation quality before delivery\n\n---\n\n### v1.1.1 (2026-04-11) - Huawei Template Integration\n\n**Added:**\n- Huawei Technologies brand template (`华为技术`)\n- New `enterprise` quick lookup category in template index\n- Template count updated to 21\n\n**Changed:**\n- `layouts_index.json`: Added Huawei template to brand category and technology/enterprise lookups\n- `README.md`: Updated template index with Huawei template details\n\n**Use Case:**\n- Enterprise reports, solution showcases, annual reports, B2B client communication\n- Minimalist tech style with Huawei red accents and professional gray tones\n\n---\n\n### v1.1.0 (2026-04-09) - Source File Handling Update\n\n**Changed:**\n- Source files are now **copied** (not moved) to `sources/` directory by default\n- Original files are preserved at their source location\n- Use `--move` flag if you want to move files instead of copying\n\n**Previous behavior (v1.0.x):**\n- Source files were moved to `sources/`, removing them from original location\n\n**Rationale:**\n- Safer default behavior - originals are preserved\n- Users can still opt-in to move behavior with `--move` flag\n- Reduces risk of accidental data loss\n\n---\n\n"},{"path":"scripts/README.md","content":"# PPT Master Toolset\n\nThis directory contains user-facing scripts for conversion, project setup, SVG processing, export, and image generation.\n\n## Directory Layout\n\n- Top-level `scripts/`: runnable entry scripts\n- `scripts/image_backends/`: internal provider implementations used by `image_gen.py`\n- `scripts/svg_finalize/`: internal post-processing helpers used by `finalize_svg.py`\n- `scripts/docs/`: topic-focused script documentation\n- `scripts/assets/`: static assets consumed by scripts\n\n## Quick Start\n\nTypical end-to-end workflow:\n\n```bash\npython3 scripts/pdf_to_md.py <file.pdf>\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\n```\n\n## Script Index\n\n| Area | Primary scripts | Documentation |\n|------|-----------------|---------------|\n| Conversion | `pdf_to_md.py`, `doc_to_md.py`, `web_to_md.py`, `web_to_md.cjs` | [docs/conversion.md](./docs/conversion.md) |\n| Project management | `project_manager.py`, `batch_validate.py`, `generate_examples_index.py`, `error_helper.py`, `pptx_template_import.py` | [docs/project.md](./docs/project.md) |\n| SVG pipeline | `finalize_svg.py`, `svg_to_pptx.py`, `total_md_split.py`, `svg_quality_checker.py` | [docs/svg-pipeline.md](./docs/svg-pipeline.md) |\n| Image tools | `image_gen.py`, `analyze_images.py`, `gemini_watermark_remover.py` | [docs/image.md](./docs/image.md) |\n| Repo maintenance | `update_repo.py` | README install/update section |\n| Troubleshooting | validation, preview, export, dependency issues | [docs/troubleshooting.md](./docs/troubleshooting.md) |\n\n## High-Frequency Commands\n\nProject setup:\n\n```bash\npython3 scripts/project_manager.py init <project_name> --format ppt169\npython3 scripts/project_manager.py import-sources <project_path> <source_files...> --move\npython3 scripts/project_manager.py validate <project_path>\n```\n\nTemplate source import:\n\n```bash\npython3 scripts/pptx_template_import.py <template.pptx>\n```\n\nPost-processing and export:\n\n```bash\npython3 scripts/total_md_split.py <project_path>\npython3 scripts/finalize_svg.py <project_path>\npython3 scripts/svg_to_pptx.py <project_path> -s final\n```\n\nImage generation:\n\n```bash\npython3 scripts/image_gen.py \"A modern futuristic workspace\"\npython3 scripts/image_gen.py --list-backends\npython3 scripts/analyze_images.py <project_path>/images\n```\n\nRepository update:\n\n```bash\npython3 scripts/update_repo.py\npython3 scripts/update_repo.py --skip-pip\n```\n\n## Recommendations\n\n- Keep new runnable scripts at the top level of `scripts/`\n- Move provider-specific or helper internals into subdirectories\n- Prefer the unified entry points `project_manager.py`, `finalize_svg.py`, and `image_gen.py`\n- Prefer `svg_final/` over `svg_output/` when expo"},{"path":"templates/charts/README.md","content":"# SVG Chart Template Library (33 Types)\n\nThis directory provides **33 standardized SVG chart templates** for use as chart selection references in PPT Master.\n\n- **Full Index**: [README.md](./README.md) (human browsing)\n- **JSON Index**: [charts_index.json](./charts_index.json) (AI / programmatic lookup — preferred)\n\nBefore generating chart pages, review the corresponding template file to understand its structure and layout.\n\n## Quick Selection\n\n> **AI / Programmatic recommendation**: Prefer reading `charts_index.json`; use this README for human browsing and quick comparison.\n\n| I want to show... | Recommended Template | Filename |\n|-------------------|---------------------|----------|\n| Key numeric metrics | KPI Cards | `kpi_cards.svg` |\n| Category value comparison | Bar Chart | `bar_chart.svg` |\n| Long-label rankings | Horizontal Bar Chart | `horizontal_bar_chart.svg` |\n| Multi-series comparison | Grouped Bar Chart | `grouped_bar_chart.svg` |\n| Time trends | Line Chart | `line_chart.svg` |\n| Cumulative trends | Area Chart | `area_chart.svg` |\n| Proportional composition | Pie / Donut Chart | `pie_chart.svg` / `donut_chart.svg` |\n| Goal completion rate | Progress Bar / Gauge | `progress_bar_chart.svg` / `gauge_chart.svg` |\n| Conversion funnel | Funnel Chart | `funnel_chart.svg` |\n| Project scheduling | Gantt Chart | `gantt_chart.svg` |\n| Milestone events | Timeline | `timeline.svg` |\n| Multi-dimensional assessment | Radar Chart | `radar_chart.svg` |\n| Bidirectional comparison | Butterfly Chart | `butterfly_chart.svg` |\n| Incremental breakdown | Waterfall Chart | `waterfall_chart.svg` |\n| Flow / fund allocation | Sankey Chart | `sankey_chart.svg` |\n| Strategic analysis | SWOT / Porter's Five Forces | `swot_analysis.svg` / `porter_five_forces.svg` |\n| Quadrant analysis | Matrix (2x2) | `matrix_2x2.svg` |\n\n## Full Chart Index\n\n### Comparison\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `bar_chart.svg` | Vertical bar comparison (3-8 bars) | Sales comparison, regional ranking |\n| `horizontal_bar_chart.svg` | Horizontal bar ranking (5-12 bars) | Brand ranking, satisfaction scores |\n| `grouped_bar_chart.svg` | Multi-series grouped comparison | Quarterly product line comparison, YoY/QoQ |\n| `stacked_bar_chart.svg` | Stacked composition comparison | Revenue composition, market share changes |\n| `butterfly_chart.svg` | Bidirectional comparison | Population pyramid, A/B testing, income vs expense |\n| `bullet_chart.svg` | Target vs actual | KPI achievement, performance evaluation |\n| `dumbbell_chart.svg` | Multi-dimension score comparison | Competitive analysis, composite index |\n| `waterfall_chart.svg` | Incremental change breakdown | Profit decomposition, budget variance |\n\n### Trends\n\n| Filename | Purpose | Use Cases |\n|----------|---------|-----------|\n| `line_chart.svg` | Line trend (multi-line support) | Time series, growth trends |\n| `area_chart.svg` | Area cumulative trend | Traffic trends, user growth |\n| `stacked_area_cha"},{"path":"templates/icons/README.md","content":"# SVG Icon Library\n\nThis directory provides **6000+ high-quality SVG icons** from [Tabler Icons](https://tabler.io/icons) that can be directly embedded into SVG files generated by PPT Master.\n\n## Libraries\n\n| Library | Style | Count | viewBox | Prefix |\n|---------|-------|-------|---------|--------|\n| `tabler-filled` | fill / solid | 1000+ | `0 0 24 24` | `tabler-filled/` |\n| `tabler-outline` | stroke / line | 5000+ | `0 0 24 24` | `tabler-outline/` |\n\n> `chunk/` exists only for backward compatibility with older projects. Do **not** use it in new work.\n\n---\n\n## Usage\n\nUse placeholder syntax **during SVG generation**:\n\n```xml\n<!-- tabler-filled (solid style) -->\n<use data-icon=\"tabler-filled/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#0076A8\"/>\n\n<!-- tabler-outline (line style) -->\n<use data-icon=\"tabler-outline/home\" x=\"100\" y=\"200\" width=\"48\" height=\"48\" fill=\"#0076A8\"/>\n```\n\n**Attributes**:\n- `data-icon` — `<library>/<icon-name>` (filename without `.svg`)\n- `x`, `y` — Position\n- `width`, `height` — Size (base 24px; `width=48` → `scale(2)`)\n- `fill` — Color\n\n`finalize_svg.py` auto-embeds all placeholders during post-processing. To run manually:\n\n```bash\npython3 scripts/svg_finalize/embed_icons.py svg_output/*.svg\n```\n\n---\n\n## Searching for Icons\n\nUse `ls | grep` — zero token cost:\n\n```bash\nls skills/pptx-master/templates/icons/tabler-filled/ | grep home\nls skills/pptx-master/templates/icons/tabler-outline/ | grep chart\n```\n\n---\n\n## Style Rules\n\n- **Fill / Solid**: use `tabler-filled`\n- **Stroke / Line**: use `tabler-outline`\n- ⚠️ Do **not** mix fill and outline icons in the same presentation"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red... Skill: Pptx Master V1.2.3 20260507 Owner: vincentlau2046-sudo Summary: 专业级 AI 驱动 SVG 内容生成系统。支持 PDF/DOCX/URL/Markdown 转换为原生可编辑的 PPTX。 多角色协作流程，输出高质量演示文稿，适合财报分析、技术汇报、商业演示等专业场景。 版本 v1.2.3，新增 XML 实体自动转义（修复孤立 & 符号导致解析失败），支持 HUAWEI、red... Tags: latest:1.2.3, ppt:1.0.2, presentation:1.0.2 Version history: v1.2.3 | 2026-05-07T07:20:42.569Z | user XML实体自动转义 v1.0.2 | 2026-04-24T16:23:36.705Z | user ClawHub适配版本，基于github开源ppt-mas","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1876,"uniquenessScore":47,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T07:49:46.914Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T10:43:16.412Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}