{"id":"40273097-5670-4cfc-b867-c6252797082e","entityType":"agent","slug":"clawhub-ningzimu-codex-ppt","name":"Codex PPT","canonicalUrl":"https://www.xpersona.co/agent/clawhub-ningzimu-codex-ppt","canonicalPath":"/agent/clawhub-ningzimu-codex-ppt","generatedAt":"2026-10-09T18:49:04.066Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T09:59:15.547Z","emptyReason":null},"description":"Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Skill: Codex PPT Owner: ningzimu Summary: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Tags: latest:0.6.0 Version history: v0.6.0 | 2026-09-12T04:55:00.733Z | user Improvements - Default image requests to GPT Image 2.5 Flare, support Sunburst, xhigh/max quality and transparent PNG/WebP, and retain legacy model validation. (#101) - Refresh image backend guida","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 3.1K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17e4dp91njzkhm04gy32mxzah83g9sk:codex-ppt","sourceUrl":"https://clawhub.ai/ningzimu/codex-ppt","homepage":"https://clawhub.ai/ningzimu/skills/codex-ppt","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/ningzimu/codex-ppt","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/ningzimu/skills/codex-ppt","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":70,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Skill: Codex PPT Owner: ningzimu Summary: Generate visu"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T09:59:15.547Z","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-09T09:59:15.547Z","emptyReason":null},"stars":null,"forks":null,"downloads":3065,"packageName":null,"latestVersion":"0.6.0","tractionLabel":"3.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T09:59:15.547Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T09:59:15.547Z","lastCrawledAt":"2026-10-09T09:59:15.547Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T09:59:15.547Z","lastVerifiedAt":null,"highlights":[{"version":"0.6.0","createdAt":"2026-09-12T04:55:00.733Z","changelog":"### Improvements - Default image requests to GPT Image 2.5 Flare, support Sunburst, xhigh/max quality and transparent PNG/WebP, and retain legacy model validation. (#101) - Refresh image backend guidance across all languages without claiming a fixed model for built-in tools. (#101) ### Documentation - Add Codia NoteSlide sponsor cards and links across Chinese, English, and Korean READMEs and documentation homepages. (#100) - Replace the redundant QA and community sections with compact documentation, Telegram, and issue support links across all README language versions, and remove the obsolete community QR code. (#92) - Add a Korean translation of the README (`README_ko.md`) and a language badge linking to it from `README.md` and `README_en.md`. (#90) - Replace README language badges with a consistent text-based language switcher across all translations. (#91) - Add complete English and Korean versions of the Docsify usage documentation with localized navigation, search, and pagination. (#91)","fileCount":41,"zipByteSize":107433},{"version":"0.5.5","createdAt":"2026-07-13T18:29:25.903Z","changelog":"### Features - Store user custom styles in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/` outside the skill install so they survive skill updates and reinstalls, with automatic discovery and same-name priority over built-in styles. (#83) - Proactively offer to save custom or adapted deck styles to the personal style library in the final report. (#83) ### Improvements - Make the Party-and-Government Red style more adaptable by replacing fixed layout and motif prescriptions with content-driven visual guidance. (#82) - Make the Teaching Courseware style more adaptable across disciplines by removing example-specific subject matter, fixed module counts, and repetitive card-grid assumptions. (#82) ### Documentation - Add a styles page to the documentation site and expand workflow, installation, and FAQ coverage. (#83) - Replace the deprecated codex-gpt-image pairing tip with guidance to use the gpt-image-2 API for higher-resolution slides, and add a ClawMama badge to the README. (#83)","fileCount":41,"zipByteSize":106868},{"version":"0.5.4","createdAt":"2026-07-12T20:03:37.827Z","changelog":"### Features - Add a reusable Party-and-Government Red style reference and preview for formal public-sector presentations. (#79) - Add a reusable Teaching Courseware style reference and preview for academic and technical learning presentations. (#79)","fileCount":41,"zipByteSize":105061},{"version":"0.5.3","createdAt":"2026-07-09T17:28:47.733Z","changelog":"### Improvements - Simplify generated speaker notes to include only the spoken talk track for each slide. (#76) ### Documentation - Add a GitHub Pages documentation site for codex-ppt usage notes. (#76)","fileCount":39,"zipByteSize":98248},{"version":"0.5.2","createdAt":"2026-06-20T15:57:28.881Z","changelog":"### Fixes - Revert the codex-ppt skill contents to the v0.5.0 release state. (#67)","fileCount":39,"zipByteSize":98316},{"version":"0.5.1","createdAt":"2026-06-18T13:21:23.975Z","changelog":"### Improvements - Update the codex-ppt workflow defaults for 2K 16:9 image output, direct sample prompts, mandatory subagent dispatch/refill behavior, and edit-based single-slide revisions. (#64) ### Fixes - Add Codex OAuth image generation through local Codex auth using the official images endpoints, with provider-level retries for transient failures. (#64)","fileCount":40,"zipByteSize":104788},{"version":"0.5.0","createdAt":"2026-06-17T18:48:01.726Z","changelog":"### Features - Add an AtlasCloud image provider adapter for GPT Image 2 generation and editing. (#60) ### Documentation - Document OpenAI-compatible and AtlasCloud image provider configuration examples. (#60)","fileCount":39,"zipByteSize":98340},{"version":"0.4.4","createdAt":"2026-06-07T16:38:06.018Z","changelog":"### Fixes - Sort slide images by numeric index when assembling decks. (#52) ### Documentation - Add README one-sentence install guidance and related project links. (#49) - Refresh README user guidance for PPT generation workflows, image backend setup, style reuse, and slide revision tips. (#48)","fileCount":34,"zipByteSize":92689}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17e4dp91njzkhm04gy32mxzah83g9sk:codex-ppt","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","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-ningzimu-codex-ppt/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/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-09T18:49:04.063Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-ningzimu-codex-ppt/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-09T09:59:15.547Z","emptyReason":null},"readme":"Skill: Codex PPT\n\nOwner: ningzimu\n\nSummary: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines.\n\nTags: latest:0.6.0\n\nVersion history:\n\nv0.6.0 | 2026-09-12T04:55:00.733Z | user\n\n### Improvements\n\n- Default image requests to GPT Image 2.5 Flare, support Sunburst, xhigh/max quality and transparent PNG/WebP, and retain legacy model validation. (#101)\n- Refresh image backend guidance across all languages without claiming a fixed model for built-in tools. (#101)\n\n### Documentation\n\n- Add Codia NoteSlide sponsor cards and links across Chinese, English, and Korean READMEs and documentation homepages. (#100)\n- Replace the redundant QA and community sections with compact documentation, Telegram, and issue support links across all README language versions, and remove the obsolete community QR code. (#92)\n- Add a Korean translation of the README (`README_ko.md`) and a language badge linking to it from `README.md` and `README_en.md`. (#90)\n- Replace README language badges with a consistent text-based language switcher across all translations. (#91)\n- Add complete English and Korean versions of the Docsify usage documentation with localized navigation, search, and pagination. (#91)\n\nv0.5.5 | 2026-07-13T18:29:25.903Z | user\n\n### Features\n\n- Store user custom styles in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/` outside the skill install so they survive skill updates and reinstalls, with automatic discovery and same-name priority over built-in styles. (#83)\n- Proactively offer to save custom or adapted deck styles to the personal style library in the final report. (#83)\n\n### Improvements\n\n- Make the Party-and-Government Red style more adaptable by replacing fixed layout and motif prescriptions with content-driven visual guidance. (#82)\n- Make the Teaching Courseware style more adaptable across disciplines by removing example-specific subject matter, fixed module counts, and repetitive card-grid assumptions. (#82)\n\n### Documentation\n\n- Add a styles page to the documentation site and expand workflow, installation, and FAQ coverage. (#83)\n- Replace the deprecated codex-gpt-image pairing tip with guidance to use the gpt-image-2 API for higher-resolution slides, and add a ClawMama badge to the README. (#83)\n\nv0.5.4 | 2026-07-12T20:03:37.827Z | user\n\n### Features\n\n- Add a reusable Party-and-Government Red style reference and preview for formal public-sector presentations. (#79)\n- Add a reusable Teaching Courseware style reference and preview for academic and technical learning presentations. (#79)\n\nv0.5.3 | 2026-07-09T17:28:47.733Z | user\n\n### Improvements\n\n- Simplify generated speaker notes to include only the spoken talk track for each slide. (#76)\n\n### Documentation\n\n- Add a GitHub Pages documentation site for codex-ppt usage notes. (#76)\n\nv0.5.2 | 2026-06-20T15:57:28.881Z | user\n\n### Fixes\n\n- Revert the codex-ppt skill contents to the v0.5.0 release state. (#67)\n\nv0.5.1 | 2026-06-18T13:21:23.975Z | user\n\n### Improvements\n\n- Update the codex-ppt workflow defaults for 2K 16:9 image output, direct sample prompts, mandatory subagent dispatch/refill behavior, and edit-based single-slide revisions. (#64)\n\n### Fixes\n\n- Add Codex OAuth image generation through local Codex auth using the official images endpoints, with provider-level retries for transient failures. (#64)\n\nv0.5.0 | 2026-06-17T18:48:01.726Z | user\n\n### Features\n\n- Add an AtlasCloud image provider adapter for GPT Image 2 generation and editing. (#60)\n\n### Documentation\n\n- Document OpenAI-compatible and AtlasCloud image provider configuration examples. (#60)\n\nv0.4.4 | 2026-06-07T16:38:06.018Z | user\n\n### Fixes\n\n- Sort slide images by numeric index when assembling decks. (#52)\n\n### Documentation\n\n- Add README one-sentence install guidance and related project links. (#49)\n- Refresh README user guidance for PPT generation workflows, image backend setup, style reuse, and slide revision tips. (#48)\n\nv0.4.3 | 2026-06-03T18:57:35.860Z | user\n\n### Features\n\n- Add a reusable McKinsey style reference and README preview for conclusion-first consulting decks. (#45)\n\n### Improvements\n\n- Refresh the hand-drawn technical style preview with a clearer Codex PPT explainer illustration. (#45)\n\nv0.4.2 | 2026-06-02T17:34:24.934Z | user\n\n### Documentation\n\n- Expand speaker notes guidance so `speech.md` uses content-specific delivery styles, natural presenter-facing talk tracks, and separate emphasis and pacing cues. (#43)\n\nv0.4.1 | 2026-06-01T03:33:19.770Z | user\n\n### Fixes\n\n- Use a cross-platform file lock for slide generation state files so Windows can run state recording scripts. (#41)\n\nv0.4.0 | 2026-05-29T12:54:15.395Z | user\n\n### Improvements\n\n- Add deck-level and slide-level context fields to slide prompt jobs so subagents receive self-contained task packets. (#39)\n- Add a reusable style-library workflow for saving approved deck styles into `references/` for future decks. (#39)\n\n### Fixes\n\n- Prevent concurrent slide state writes from overwriting dispatch, result, or blocker records. (#39)\n\n### Documentation\n\n- Move detailed codex-ppt workflow guidance into supporting docs and keep the main skill file within SkillHub limits. (#39)\n- Clarify how to use user-specified styles and image/PDF/PPT/PPTX style references without forcing an extra style-selection step. (#39)\n- Require PDF/PPT/PPTX style references to be inspected as rendered page images before deriving a visual style. (#39)\n\nv0.3.2 | 2026-05-29T07:35:54.130Z | user\n\n### Documentation\n\n- Add an update and installation reference to the codex-ppt skill instructions. (#36)\n- Add a README callout linking to the pinned community showcase issue. (#35)\n- Add the generated skill duo introduction PDF to the README tips.\n\nv0.3.1 | 2026-05-25T10:02:59.162Z | user\n\n### Fixes\n\n- Fix full-deck generation so the parent actively dispatches slide subagents, and subagents must use the selected image generation tool instead of local rendering fallbacks. (#31)\n\n### Documentation\n\n- Clarify that PPT style references can be screenshots or full PPT/PDF files, and that reusable styles can be saved into this skill's `references/` directory. (#24)\n- Add a README note about personalizing the codex-ppt workflow and include the good skill design deck. (#22)\n- Add a README tip pointing users to image-to-editable-ppt-skill when they need editable PPT reconstruction. (#29)\n\n### Improvements\n\n- Display GitHub Release skill zip assets with their versioned filenames. (#21)\n- Package GitHub Release assets as a skill-only zip for direct manual installation. (#20)\n\nv0.3.0 | 2026-05-11T19:43:42.169Z | user\n\n### Documentation\n\n- Add an `Attention Is All You Need` example deck with preserved paper figures. (#18)\n- Require subagent-based per-slide generation whenever subagents are available. (#18)\n- Add mandatory phase gates and stricter image backend selection rules to the codex-ppt skill. (#18)\n- Add README examples for assigning original paper figures to specific slides, referencing issue #14. (#18)\n- Document Markdown image references inside `Required images`. (#18)\n- Clarify how to preserve user-supplied figures and result charts in generated decks, including subagent slide generation with approved sample-slide style references. (#18)\n- Document simplified prompt preparation with one self-contained JSON job per slide instead of a separate prompt file and job manifest. (#18)\n- Document relative input image path resolution in slide jobs against the `deck_spec.json` directory. (#18)\n- Reject duplicate slide numbers when preparing per-slide prompt jobs. (#18)\n- Clarify that CLI/API fallback must not text-generate slide jobs that require input images. (#18)\n\nv0.2.1 | 2026-05-11T16:08:49.864Z | user\n\n### Documentation\n\n- Fix README badge labels and GitHub star/fork badge style. (#16)\n- Add GitHub star and fork badges to both READMEs. (#15)\n- Recommend `npx skills` installation commands for Codex, Claude Code, and Hermes Agent. (#13)\n\n### Fixes\n\n- Mark local image API fallback config as optional so built-in image tool users do not see unnecessary missing-config warnings. (#12)\n- Clarify that Codex built-in image generation remains the preferred `gpt-image-2` path when available, avoiding unnecessary API key prompts. (#11)\n- Omit empty changelog subsections from generated release notes. (#10)\n\nv0.2.0 | 2026-05-09T15:02:04.377Z | user\n\n### Features\n\n- Add ClawHub publishing workflow and skill metadata. (#8)\n- Add third-party OpenAI-compatible image API fallback for codex-ppt. (#6)\n- Add shared runtime configuration for API key, base URL, and image model reuse. (#6)\n- Support Claude Code, OpenClaw, Hermes Agent, and other `SKILL.md`-based agent usage. (#6)\n\n### Improvements\n\n- Default image fallback generation to 2K 16:9 output. (#6)\n\n### Fixes\n\n### Documentation\n\n- Add ClawHub badge and OpenClaw install command to the READMEs. (#8)\n- Require explicit image backend confirmation before sample generation. (#6)\n- Add agent contribution guidelines for PR, changelog, and release workflows. (#5)\n\nv0.1.0 | 2026-05-09T14:44:11.802Z | user\n\nInitial ClawHub publish test for codex-ppt.\n\nArchive index:\n\nArchive v0.6.0: 41 files, 107433 bytes\n\nFiles: docs/backend-selection.md (3588b), docs/cli-api-fallback.md (5070b), docs/image-model-configuration.md (3542b), docs/outline-style-and-sample.md (9533b), docs/project-assembly-and-reporting.md (8467b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (6518b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/党政红风格.md (8673b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/教学课件风.md (9949b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8668b), scripts/image_gen.py (34896b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.py (887b), scripts/image_providers/factory.py (734b), scripts/image_providers/openai_compatible.py (7448b), scripts/prepare_slide_prompts.py (20270b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (2732b), SKILL.md (10406b), _meta.json (128b)\n\nFile v0.6.0:SKILL.md\n\n---\nname: codex-ppt\ndescription: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines.\nversion: 0.6.0\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - python3\n    primaryEnv: OPENAI_API_KEY\n    envVars:\n      - name: OPENAI_API_KEY\n        required: false\n        description: API key for CLI fallback.\n      - name: OPENAI_BASE_URL\n        required: false\n        description: API base URL.\n      - name: CODEX_PPT_IMAGE_MODEL\n        required: false\n        description: Image model, defaults to gpt-image-2.5-flare.\n      - name: CODEX_PPT_HOME\n        required: false\n        description: Runtime home override.\n    homepage: https://github.com/ningzimu/codex-ppt-skill\n---\n\n# Codex PPT\n\n## Overview\n\nThis skill creates image-based PowerPoint decks from source material. Each slide is a complete 16:9 generated image. Final images are assembled into `.pptx` with `scripts/assemble_ppt.py`.\n\nUse this when the user wants a visually unified presentation and accepts full-slide image pages. Do not use it when every textbox, chart, or shape must remain separately editable.\n\nPrefer the built-in image generation/editing tool. Use `scripts/image_gen.py` only when the built-in backend is unavailable, lacks a required capability, or the user explicitly asks for API/CLI mode.\n\n## Hard Constraints\n\n- Read the relevant `Reference Map` files before each phase. This file is the orchestration contract; detailed rules live in `docs/` and worker prompts in `prompts/`.\n- Respect approval gates. Do not create final `deck_spec.json`, `speech.md`, prompt jobs, slide images, or `.pptx` before the approvals in `docs/workflow-gates-and-progress.md`.\n- After the user approves the sample slide and authorizes full-deck generation, every remaining slide image job must be dispatched to a slide subagent whenever subagents are available.\n- The main agent owns orchestration, prompt jobs, state recording, QA, speaker notes, and assembly. Do not silently replace available slide subagents with sequential production.\n- Every final `origin_image/slide_XX.png` must be generated by the selected image backend: built-in image generation/editing tool or `scripts/image_gen.py`.\n- Local drawing, Pillow, SVG, HTML/CSS/canvas screenshots, python-pptx/PptxGenJS layouts, and manual overlays are failure modes, not fallbacks.\n- The selected image backend must stay fixed after backend confirmation. Do not let subagents switch backend for convenience.\n- After sample approval, record how the approved sample was generated and pass that exact method to every slide subagent.\n- Slide dispatch and result state must be recorded with the bundled scripts. Chat messages alone do not make a slide dispatched or complete.\n- If a required subagent, image backend, or required-image path is unavailable, stop and report a blocker with the slide id and evidence. Do not create a lower-quality replacement.\n\n## Visible Progress\n\nFor non-trivial decks, keep a user-visible checklist with one active step. Canonical completion evidence is in `docs/workflow-gates-and-progress.md`.\n\nDefault visible steps:\n\n1. Prepare source, outline, style, and backend decisions.\n2. Generate and approve one sample slide.\n3. Prepare slide jobs and slide state.\n4. Dispatch slide subagents.\n5. Record generated slide results.\n6. QA, repair, notes, and PPT assembly.\n\nDo not mark a step complete from chat alone; use real files or script-recorded state.\n\n## Default Workflow\n\n1. Understand the source content.\n   - Identify topic, audience, goal, page count, style/brand constraints, and sections to include or exclude.\n   - If no page count is specified, choose a practical count. Typical decks are 8-12 slides.\n\n2. Plan the deck outline.\n   - Before writing or updating `outline.md`, read `docs/workflow-gates-and-progress.md` and `docs/outline-style-and-sample.md`.\n   - Draft slide roles and required source images. Ask for confirmation, then stop before style, backend, sample, or downstream artifacts until approved.\n\n3. Confirm a unified visual style.\n   - Before offering style options or using files from `references/`, read `docs/outline-style-and-sample.md`.\n   - Offer 2-3 concrete style directions, recommend one, wait for confirmation, then keep one visual identity while varying layouts by page role.\n\n4. Confirm the image backend.\n   - Before generating any slide image, read `docs/backend-selection.md`.\n   - Check whether a built-in image tool is callable, state what you checked, name the backend, explain fallback status, and wait for confirmation.\n   - If CLI/API fallback is selected, read `docs/cli-api-fallback.md`. Read `docs/image-model-configuration.md` only after config errors or explicit API-setting requests.\n\n5. Generate one sample slide for approval.\n   - Before generating or approving the sample slide, read `docs/outline-style-and-sample.md`.\n   - Generate exactly one representative sample after outline, style, and backend are confirmed. Do not generate the full deck until approved.\n   - After approval, record `sample_generation_method` in `deck_spec.json` so jobs and subagents inherit the same path.\n\n6. Create the project directory.\n   - Before initializing folders or assembling files, read `docs/project-assembly-and-reporting.md`.\n   - If no destination is specified, use the current working directory or the source file directory.\n\n7. Prepare user-supplied assets.\n   - Before using paper figures, charts, screenshots, logos, or other required assets, read `docs/user-supplied-assets.md`.\n   - Treat required assets as strict inputs and confirm slide-to-asset mapping before generation.\n\n8. Generate all slide images.\n   - Before full-deck image generation, read `docs/slide-generation-and-subagents.md`.\n   - Create per-slide jobs with `scripts/prepare_slide_prompts.py` or saved `prompts/slide_XX.json` files.\n   - Every final image must come from the selected backend and be recorded with bundled state scripts.\n\n9. Dispatch slide subagents.\n   - Before dispatching or replacing slide workers, read `docs/slide-generation-and-subagents.md` and `prompts/slide-worker.md`.\n   - Use one subagent per remaining slide job whenever possible. If required subagents cannot be spawned, stop and report a blocker unless the user changes the workflow.\n\n10. Quality check and repair.\n    - Before QA or assembly, read `docs/project-assembly-and-reporting.md`.\n    - Inspect every slide before assembly: text, outline match, truncation, style, unwanted page numbers, overlaps, and required assets.\n    - Regenerate severe failures with a tighter prompt. Use backend editing for localized issues when available.\n    - For CLI/API fallback edit commands, read `docs/cli-api-fallback.md`. Replace the final slide only after validating the edited output.\n\n11. Write speaker notes and assemble the PPT.\n    - Before writing `speech.md` or running assembly, read `docs/project-assembly-and-reporting.md`.\n    - Make sure `outline.md` reflects the final confirmed deck outline. Use `speech.md` headings that map to `Slide N`.\n    - Before assembly, ensure `slide_jobs.json` shows generated slides as `recorded` and approved samples as `accepted`. If any slide is `pending`, `dispatched`, or `blocked`, stop.\n\n12. Report the result.\n    - Use the final report checklist in `docs/project-assembly-and-reporting.md`.\n    - Include paths, slide count, backend used, recorded-result status, and any limitations or blockers.\n\n13. Save reusable styles.\n    - If asked to save the current deck style or a supplied image/PDF/PPT/PPTX style, read `docs/style-library.md`.\n    - If the final deck used a custom or adapted style, proactively offer to save it in the final report, per `docs/project-assembly-and-reporting.md`. User custom styles are stored in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/`, outside the skill install.\n\n## Subagent Dispatch\n\nSlide subagents are mandatory after sample approval whenever the runtime can spawn them. The main agent prepares jobs and records state; each worker handles exactly one `prompts/slide_XX.json` job and returns only selected image path, backend, and QA note.\n\nUse `docs/slide-generation-and-subagents.md` for dispatch, commands, result recording, blockers, and backend provenance. Use `prompts/slide-worker.md` as the handoff template.\n\nSubagents must not edit `outline.md`, `deck_spec.json`, other slide jobs, `origin_image/`, `speech.md`, or the final `.pptx`. The parent records outputs and assembles.\n\n## Acceptance Criteria\n\n- Output is a valid `.pptx`.\n- Each expected final slide image exists under `origin_image/slide_XX.png`.\n- Every final slide image was generated by the confirmed backend and recorded through `record_slide_result.py`, except an approved sample marked accepted by run state.\n- `outline.md` reflects the approved deck outline.\n- `speech.md` exists when speaker notes are expected, and assembly writes those notes into the PPT.\n- `slide_jobs.json` and `slide_run_state.json` reflect the final state.\n- Required source images are visibly represented, or a blocker is reported.\n- If blocked, the final response identifies phase, slide id, evidence path, and unfinished reason; do not call the deck complete.\n\n## Reference Map\n\n- `docs/workflow-gates-and-progress.md`: approval gates, progress, completion evidence.\n- `docs/backend-selection.md`: backend decision rules and confirmation text.\n- `docs/outline-style-and-sample.md`: outline, style, sample rules, prompt examples.\n- `docs/user-supplied-assets.md`: strict handling for required source assets.\n- `docs/slide-generation-and-subagents.md`: jobs, dispatch, result recording, blockers, provenance.\n- `docs/cli-api-fallback.md`: fallback runtime, generation/edit commands, image limits, troubleshooting.\n- `docs/image-model-configuration.md`: API key, base URL, model, `.env`; read only when config is needed.\n- `docs/project-assembly-and-reporting.md`: project directory, notes, assembly, final report, prompting principles.\n- `prompts/slide-worker.md`: slide subagent handoff template.\n- `references/*.md`: built-in visual style references. User custom styles live in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/` and take priority over built-in styles with the same name.\n\n## Documentation and Updates\n\nFor source, docs, install, config, and examples, see [ningzimu/codex-ppt-skill](https://github.com/ningzimu/codex-ppt-skill).\n\nFile v0.6.0:_meta.json\n\n{\n  \"ownerId\": \"kn70ybyb64yfkyyve79tvhh7vn82js5s\",\n  \"slug\": \"codex-ppt\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1789188900733\n}\n\nFile v0.6.0:references/党政红风格.md\n\n# 党政红风格\n\n**适用场景:**\n- 党政机关工作汇报、专题学习与会议材料\n- 政策宣讲、党建活动、年度总结与重点工作部署\n- 国企、事业单位和公共服务机构的正式汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"党政红风格\",\n  \"best_for\": \"党政机关、国企和事业单位的工作汇报、政策宣讲、党建学习、年度总结与重点工作部署\",\n  \"visual_direction\": \"solemn, authoritative, and optimistic Chinese public-sector presentation with a recognizable Chinese-red identity, restrained gold accents, strong Chinese typography, and a visual expression shaped by the subject rather than a fixed ceremonial layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"choose red, warm ivory, a restrained gradient, a relevant photograph, or a subtle abstract treatment according to the page role and subject; any landscape, architecture, ribbon, skyline, or cultural motif is optional and must serve the content rather than become a default background\",\n    \"composition\": \"formal and balanced with a prominent title hierarchy and disciplined alignment; allow centered, asymmetric, image-led, modular, or spacious compositions when they better express the content\",\n    \"density\": \"medium information density with controlled whitespace, clear reading order, and enough supporting text or evidence to make each page useful\"\n  },\n  \"color_palette\": {\n    \"primary\": \"Chinese red #C41E3A for main titles, structural emphasis, and key labels\",\n    \"secondary\": \"deep red #9E1530 for contrast and warm ivory #FFF9F2 for the main canvas\",\n    \"accent\": \"restrained matte gold #D6A84B and warm amber #E9A11B for icons, connectors, and small title ornaments\",\n    \"neutral\": \"ink black #262626, dark gray #4A4A4A, pale warm gray #F3EEE7\",\n    \"rule\": \"use Chinese red to establish authority and gold as a restrained accent. Balance red, warm ivory, and neutral space according to page role; avoid glitter, glossy gradients, and festive red-and-gold decoration\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Microsoft YaHei or Source Han Sans style Chinese sans-serif, visually strong, dignified, and immediately noticeable\",\n    \"body\": \"Microsoft YaHei or Source Han Sans style Chinese sans-serif, concise, highly readable, and aligned to a strict grid\",\n    \"labels\": \"bold white or dark-red text on restrained red or pale-gold blocks\",\n    \"text_quality\": \"all Chinese text must be exact, fully legible, non-garbled, and suitable for formal government reporting\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep the title hierarchy, typeface, weight, color logic, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"Use a prominent, dignified title treatment that may be centered, offset, or integrated with a relevant visual according to the composition.\",\n    \"section_divider\": \"Use a concise title and a clear transition in scale, color, whitespace, or imagery without requiring a fixed navigation bar or ornament.\",\n    \"content_slide\": \"Keep the page topic immediately recognizable, but align the title with the composition and information structure; centered and left-aligned treatments are both valid.\",\n    \"flexibility\": \"Treat the title system as a hierarchy and consistency rule, not a fixed arrangement. Do not require a navigation strip, centered title, gold separator, numbering style, or identical decoration on every slide.\"\n  },\n  \"layout_patterns\": [\n    \"cover or opener with a dominant title and a subject-relevant photographic, illustrative, architectural, landscape, or abstract visual\",\n    \"section divider with a concise statement and a clear transition created through scale, whitespace, color, or imagery\",\n    \"content explanation organized around the most important relationship, argument, process, comparison, or evidence\",\n    \"work deployment or policy interpretation page whose modules, sequence, and emphasis follow the source content\",\n    \"achievement or data page combining key figures, charts, images, and evidence-based captions as needed\",\n    \"summary or closing page that reinforces the central message with a strong but restrained visual conclusion\"\n  ],\n  \"layout_usage_rule\": \"Keep the red-led identity, typography, and formal tone consistent while varying title placement, background treatment, imagery, information structure, and whitespace by page purpose. Do not force every slide into the same grid, module count, title position, or decorative motif; use lighter backgrounds when they improve readability.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"封面 / 开场\",\n      \"sections\": [\n        {\"position\": \"primary visual field\", \"count\": 1, \"labels\": [\"prominent title and concise supporting information\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"optional subject-relevant photograph, illustration, architecture, landscape, or abstract visual\"]}\n      ]\n    },\n    {\n      \"name\": \"信息阐释 / 工作部署\",\n      \"sections\": [\n        {\"position\": \"title zone\", \"count\": 1, \"labels\": [\"clear page topic or guiding statement\"]},\n        {\"position\": \"main content field\", \"count\": 1, \"labels\": [\"the dominant argument, relationship, process, comparison, or evidence structure\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"supporting text, data, images, or callouts selected according to the source\"]}\n      ]\n    },\n    {\n      \"name\": \"成果 / 总结\",\n      \"sections\": [\n        {\"position\": \"primary message field\", \"count\": 1, \"labels\": [\"central conclusion, achievement, or call to action\"]},\n        {\"position\": \"evidence field\", \"count\": 1, \"labels\": [\"figures, chart, comparison, documentary image, or concise supporting points as appropriate\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"content-relevant photography, illustrations, landscapes, architecture, skylines, public-service scenes, people, abstract ribbons or color fields, restrained red-and-gold accents, formal information modules, simple icons, clean charts, and subtle cultural motifs; none of these elements is mandatory\",\n    \"avoid\": \"repeating the same landmark or ornament without content justification, invented or inaccurate official marks, excessive ceremonial decoration, thick shadows, glossy 3D text, glitter, festival or wedding motifs, cartoon styling, unrelated stock imagery, and decorative elements that compete with the message\"\n  },\n  \"image_treatment\": {\n    \"photos\": \"use relevant and credible documentary, landscape, architectural, public-service, or institutional imagery; it may be full-bleed, cropped, framed, or integrated with a restrained red treatment, but avoid heavy filters that obscure the subject\",\n    \"screenshots\": \"place inside clean warm-white frames with short source labels and no ornamental clutter\",\n    \"charts\": \"use red as the primary series, gold for one key highlight, and neutral gray for comparison; keep labels direct and readable\",\n    \"illustrations\": \"choose a flat, graphic, painterly, or restrained symbolic treatment according to the subject; do not impose a fixed landmark, ribbon, skyline, or landscape motif\",\n    \"official_symbols\": \"use a party emblem, national emblem, flag, seal, or other official symbol only when the content genuinely requires it and an accurate, authorized source asset is available; never invent, approximate, or redesign official symbols\"\n  },\n  \"rendering_constraints\": [\n    \"The slide must look like a formal Chinese government or public-sector report, not a festival poster or commercial advertisement.\",\n    \"Use large, dignified Chinese sans-serif typography resembling Microsoft YaHei or Source Han Sans.\",\n    \"Follow a consistent title system across slides of the same page type, while allowing cover, section-divider, and content-slide variants.\",\n    \"Let the page role and source content determine title placement, background, imagery, module count, and composition.\",\n    \"Do not force a navigation strip, centered title, gold separator, landscape, Great Wall, skyline, ribbon, or other specific motif onto every slide.\",\n    \"Use Chinese red #C41E3A as the main red and gold as a restrained supporting accent.\",\n    \"Keep gold restrained and matte; do not use glossy metallic or embossed 3D text.\",\n    \"Use exact readable Chinese text and a clear top-to-bottom or left-to-right hierarchy.\",\n    \"Do not invent, approximate, or redesign official marks, government logos, party emblems, national emblems, seals, flags, or institutional names.\",\n    \"No watermark and no unrelated logo.\"\n  ]\n}\n```\n\nFile v0.6.0:references/创意杂志风.md\n\n# 创意杂志风\n\n**适用场景:**\n- 创意提案\n- 品牌展示\n- 设计作品集\n- 文化活动\n- 时尚发布\n- 艺术展览\n- 创意工作室介绍\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"创意杂志风\",\n  \"best_for\": \"需要强视觉记忆点、品牌个性或传播感的分享型演示\",\n  \"visual_direction\": \"high-end editorial magazine spread, bold asymmetry, art-directed composition, graphic tension, premium creative layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white, black, or deep charcoal with intentional negative space\",\n    \"composition\": \"asymmetric editorial layout with a large headline, image/collage zone, and 2-3 supporting text blocks\",\n    \"density\": \"strong contrast between dense editorial blocks and open whitespace\"\n  },\n  \"color_palette\": {\n    \"base\": \"black, white, and gray\",\n    \"accent\": \"one vivid accent such as neon pink #FF006E, lemon yellow #FFED00, or electric cyan #00F5FF\",\n    \"support\": \"optional lavender, coral, or muted fashion tones\",\n    \"rule\": \"use one dominant accent color consistently; do not make the palette chaotic\"\n  },\n  \"typography\": {\n    \"title\": \"oversized bold display sans-serif or editorial serif, can occupy 25-45% of the slide\",\n    \"body\": \"small clean sans-serif blocks with strong alignment\",\n    \"emphasis\": \"keywords may use accent color, rotated labels, vertical text, or extreme scale contrast\",\n    \"text_quality\": \"Chinese headline and key points must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"oversized headline on one side with collage or abstract image block on the other\",\n    \"diagonal color block cutting across the slide\",\n    \"magazine cover style with title, subtitle, and three feature teasers\",\n    \"editorial grid with one large image crop and small annotation labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"editorial hero spread\",\n      \"sections\": [\n        {\"position\": \"left 45%\", \"count\": 1, \"labels\": [\"oversized headline\"]},\n        {\"position\": \"right 55%\", \"count\": 1, \"labels\": [\"collage or abstract image zone\"]},\n        {\"position\": \"bottom-left\", \"count\": 3, \"labels\": [\"feature teaser 1\", \"feature teaser 2\", \"feature teaser 3\"]}\n      ]\n    },\n    {\n      \"name\": \"cover story grid\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"large cover title\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"main visual block\", \"accent typography block\"]},\n        {\"position\": \"right edge\", \"count\": 3, \"labels\": [\"short editorial callouts\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"bold geometric blocks, cropped photography zones, halftone texture, thin rules, torn-paper collage edges, accent stickers, abstract shapes\",\n    \"avoid\": \"generic corporate icons, overly symmetrical layout, low-contrast text, too many accent colors\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel designed, not templated.\",\n    \"Maintain legibility despite bold composition.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/复古扁平插画风.md\n\n# 复古扁平插画风\n\n**适用场景:**\n- 文化创意项目展示\n- 品牌故事讲述\n- 旅游景点介绍\n- 复古产品发布\n- 艺术设计作品集\n- 创意活动宣传\n- 生活方式类演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"复古扁平插画风\",\n  \"best_for\": \"文化创意、品牌故事、生活方式、城市旅游和带叙事感的主题演示\",\n  \"visual_direction\": \"retro flat vector illustration slide, cream paper texture, monoline black outlines, vintage palette, playful handcrafted design\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"cream/off-white paper #F5F3E8 with subtle grain\",\n    \"composition\": \"panoramic illustration band plus structured content cards or labels\",\n    \"density\": \"moderate, decorative but still clear\"\n  },\n  \"color_palette\": {\n    \"base\": \"cream background and dark slate text #34495E\",\n    \"vintage_colors\": \"coral red #FF6B6B, mint green #95E1D3, mustard yellow #F9CA24, burnt orange #E17055, slate blue #6C7A89\",\n    \"line\": \"uniform black or deep charcoal outline\",\n    \"rule\": \"flat fills only, no glossy 3D, no heavy gradients\"\n  },\n  \"typography\": {\n    \"title\": \"bold retro serif or chunky vintage display type\",\n    \"body\": \"geometric sans-serif, clear and friendly\",\n    \"labels\": \"small badge labels with outlined shapes\",\n    \"text_quality\": \"Chinese text must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"top panoramic flat illustration with bottom content cards\",\n    \"central retro title with three outlined icon cards\",\n    \"2.5D simplified scene with callout labels\",\n    \"vintage poster composition adapted to presentation readability\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"panoramic illustration plus cards\",\n      \"sections\": [\n        {\"position\": \"top third\", \"count\": 1, \"labels\": [\"panoramic flat vector illustration\"]},\n        {\"position\": \"middle\", \"count\": 1, \"labels\": [\"large retro title\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"outlined content card 1\", \"outlined content card 2\", \"outlined content card 3\"]}\n      ]\n    },\n    {\n      \"name\": \"retro poster diagram\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main simplified scene or object\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"callout label\", \"badge\", \"mini icon\", \"decorative note\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"summary plaque\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"flat vector scenes, 2-3px monoline outlines, simplified buildings, plants, clouds, badges, dotted textures, small geometric decorations\",\n    \"avoid\": \"photorealism, complex shadows, neon palette, overly detailed linework, unreadable decorative type\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a polished retro illustration system, not a random cartoon.\",\n    \"Maintain consistent outline weight across objects.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/手绘技术解释风.md\n\n# 手绘技术解释风\n\n**适用场景:**\n- 中文技术文章配图\n- 技术概念解释\n- 课程课件\n- 知识卡片\n- 产品机制说明\n- AI / 软件工程主题分享\n- 需要降低理解门槛的复杂概念\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘技术解释风\",\n  \"best_for\": \"中文技术文章、课程课件、复杂概念解释、知识卡片和软件工程/AI 主题的低压力说明图\",\n  \"visual_direction\": \"clean Chinese handdrawn technical explainer, near-white paper background, thin sketch lines, light pencil hatching, small precise central diagram, restrained pastel markers, lots of whitespace, calm educational tone\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"near-white paper #FCFBF7, not yellow, no full-page border\",\n    \"composition\": \"small central explanatory diagram with sparse labels, surrounding whitespace, short title and minimal visible text\",\n    \"density\": \"low to moderate; one core idea per slide; avoid dense whiteboard clutter\"\n  },\n  \"color_palette\": {\n    \"line\": \"soft graphite #2F3437 or dark gray ink, thin and slightly irregular\",\n    \"accent\": \"pale blue #BFD7F1, sage green #CFE2D1, light peach #F4C7B8, pale lavender #D8C7EF\",\n    \"background\": \"near-white, clean, not kraft, not cream-heavy\",\n    \"rule\": \"pastel marks are used for emphasis only; keep the page calm and airy\"\n  },\n  \"typography\": {\n    \"title\": \"restrained handwritten Chinese title, medium-large but not poster-sized\",\n    \"body\": \"short handwritten Chinese labels, few words per label, easy to inspect\",\n    \"emphasis\": \"light underline, small bracket, soft marker highlight, or tiny note tag\",\n    \"text_quality\": \"Chinese text must be exact, sparse, and readable; avoid long paragraphs\"\n  },\n  \"layout_patterns\": [\n    \"central concept diagram with 3-4 short surrounding labels\",\n    \"before-after explanation with two small sketch panels\",\n    \"flow diagram with 3 steps and minimal arrows\",\n    \"mental model page with one metaphor object and short annotations\",\n    \"matrix or decision guide with sparse handwritten notes\",\n    \"summary page with one small character or object and three takeaway labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; keep visual DNA stable while varying archetypes such as metaphor, process, comparison, matrix, and summary. Avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"small central concept map\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"short handwritten title\"]},\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"small precise concept diagram\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"label 1\", \"label 2\", \"label 3\", \"label 4\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"one-sentence takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"technical before-after\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"short page title\"]},\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"before sketch panel\"]},\n        {\"position\": \"right\", \"count\": 1, \"labels\": [\"after sketch panel\"]},\n        {\"position\": \"between panels\", \"count\": 1, \"labels\": [\"thin handdrawn arrow\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"why it matters\", \"tradeoff\", \"next step\"]}\n      ]\n    },\n    {\n      \"name\": \"one idea teaching card\",\n      \"sections\": [\n        {\"position\": \"center-left\", \"count\": 1, \"labels\": [\"metaphor object or tiny engineer/reader character\"]},\n        {\"position\": \"center-right\", \"count\": 3, \"labels\": [\"core idea\", \"common mistake\", \"useful rule\"]},\n        {\"position\": \"background\", \"count\": 1, \"labels\": [\"very light pencil hatching and pastel highlight\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"thin handdrawn arrows, small diagrams, pencil hatching, pastel marker blocks, bracket notes, simple software/AI icons, tiny engineer or reader character at most once\",\n    \"avoid\": \"messy whiteboard frame, marker tray, large cartoon characters, dense handwriting, yellowed paper, decorative stickers, poster-scale title, full-page border, digital UI cards\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a calm handdrawn technical article illustration, not a brainstorming whiteboard.\",\n    \"Keep the central drawing small and precise with generous empty space.\",\n    \"Use minimal Chinese text and make every visible word correct.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/手绘白板风.md\n\n# 手绘白板风\n\n**适用场景:**\n- 教学讲解\n- 培训课程\n- 头脑风暴\n- 概念说明\n- 技术分享\n- 内部研讨\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘白板风\",\n  \"best_for\": \"概念解释、技术分享、培训课程和需要亲和力的思路拆解\",\n  \"visual_direction\": \"realistic whiteboard explanation slide, marker handwriting, sketched diagrams, friendly teaching atmosphere, authentic whiteboard details\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm off-white whiteboard surface #FAFAF5 with subtle marker smudges\",\n    \"composition\": \"freeform but organized whiteboard layout with title, three concept blocks, arrows, and small doodle illustrations\",\n    \"density\": \"moderate, readable, brainstorming feel without chaos\"\n  },\n  \"color_palette\": {\n    \"primary\": \"black marker for main text\",\n    \"accent\": \"red #E74C3C, blue #3498DB, orange #F39C12 marker annotations\",\n    \"support\": \"green #27AE60, purple #9B59B6, yellow sticky note #FFF9C4\",\n    \"rule\": \"colors should look like real marker ink, not digital neon\"\n  },\n  \"typography\": {\n    \"title\": \"large neat handwritten Chinese marker style\",\n    \"body\": \"clear handwritten marker text, slightly irregular but readable\",\n    \"emphasis\": \"circle, underline, boxed words, sticky-note comments\",\n    \"text_quality\": \"Chinese handwriting must remain accurate and legible\"\n  },\n  \"layout_patterns\": [\n    \"three hand-drawn boxes connected by arrows\",\n    \"central concept bubble with surrounding notes\",\n    \"simple process diagram with sketches and annotations\",\n    \"left explanation list plus right hand-drawn diagram\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"whiteboard process diagram\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"handwritten title\"]},\n        {\"position\": \"center\", \"count\": 3, \"labels\": [\"step 1 box\", \"step 2 box\", \"step 3 box\"]},\n        {\"position\": \"between boxes\", \"count\": 2, \"labels\": [\"hand-drawn arrow\", \"hand-drawn arrow\"]},\n        {\"position\": \"right edge\", \"count\": 1, \"labels\": [\"sticky-note takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"concept map\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main concept bubble\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"supporting idea\", \"risk note\", \"example sketch\", \"action item\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"underlined summary\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"whiteboard frame, marker tray, colored markers, arrows, boxes, clouds, sticky notes, doodle icons, underlines, circled keywords\",\n    \"avoid\": \"messy illegible handwriting, childish clutter, photoreal people, digital UI cards\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look like a real whiteboard captured cleanly for a presentation.\",\n    \"Keep all Chinese text readable despite handwritten style.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/教学课件风.md\n\n# 教学课件风\n\n**适用场景:**\n- 高校课程、专题讲座与课堂教学\n- 技术培训、知识科普与专业能力建设\n- 概念讲解、体系梳理、案例分析与研究进展介绍\n- 需要同时呈现文字、图解、图片和数据的教学型演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"教学课件风\",\n  \"best_for\": \"高校课程、专题讲座、技术培训、知识科普、概念讲解、体系梳理、案例分析和研究进展介绍\",\n  \"visual_direction\": \"clear and credible academic courseware with structured knowledge communication, evidence-supported explanation, discipline-appropriate visuals, and a professional classroom tone shaped by the lesson rather than a fixed technical template\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white or very light cool gray with restrained pale-blue structural accents\",\n    \"composition\": \"structured teaching slide with a clear title hierarchy and a content-driven combination of text, images, diagrams, charts, formulas, source material, annotations, or comparisons selected according to the lesson objective\",\n    \"density\": \"balanced teaching density: substantial enough to support explanation, but never sparse, paragraph-heavy, or crowded; use strong grouping, alignment, and readable whitespace\"\n  },\n  \"color_palette\": {\n    \"primary\": \"deep academic navy #0B2E6D and clear blue #1769AA\",\n    \"secondary\": \"light blue #EAF3FB and cool gray #F3F6F9\",\n    \"accent\": \"choose a small set of restrained auxiliary colors according to the subject matter, source material, and semantic categories\",\n    \"neutral\": \"ink black #1F2937, body gray #4B5563, border gray #D7E0EA\",\n    \"rule\": \"use the blue system to establish the teaching structure; select auxiliary colors only when the content needs semantic distinction, then apply them consistently rather than decoratively\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Chinese sans-serif resembling Microsoft YaHei or Source Han Sans, usually dark navy, concise and immediately readable\",\n    \"body\": \"compact but readable Chinese sans-serif with clear indentation and short explanatory phrases\",\n    \"labels\": \"bold short labels with strong contrast, used when hierarchy or semantic categories need clarification rather than as mandatory card decoration\",\n    \"text_quality\": \"all Chinese text, Latin terms, formulas, units, and data labels must be exact, readable, and non-garbled\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep title typeface, weight, color logic, alignment, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"May combine a large course title with one or more subject-relevant visuals and concise presenter or course information; choose the visual structure according to the discipline and topic.\",\n    \"section_divider\": \"May use a concise section title with stronger whitespace and a restrained academic cue.\",\n    \"content_slide\": \"Keep the page topic immediately recognizable, but let title alignment, supporting accents, and surrounding composition adapt to the teaching content.\",\n    \"closing\": \"Use a concise acknowledgement or closing statement together with a subject-relevant visual or summary echo; keep the page informative and visually complete rather than leaving a nearly empty text-only slide.\",\n    \"flexibility\": \"Treat the title system as a consistency guide rather than a fixed template. Do not force every slide into the same header, rule, alignment, or decorative treatment.\"\n  },\n  \"layout_patterns\": [\n    \"course cover combining a clear title hierarchy with subject-relevant visual material and concise course information\",\n    \"concept explanation using the most suitable combination of diagrams, images, definitions, formulas, source excerpts, or annotated examples\",\n    \"sequence, process, development, or causal explanation with a clear viewing order\",\n    \"comparison or relationship page whose structure follows the concepts being contrasted or connected\",\n    \"case, text, artwork, experiment, event, or application analysis supported by relevant evidence and explanation\",\n    \"overview or synthesis page organizing examples, themes, findings, or knowledge relationships\",\n    \"knowledge summary using a concise framework, conclusion, or takeaway\",\n    \"closing or acknowledgement page combining a short closing statement with a restrained subject-relevant visual\"\n  ],\n  \"layout_usage_rule\": \"Choose the layout that best supports the teaching objective and viewing sequence. Every slide should combine meaningful visual explanation with readable text; use one strong visual or several complementary photographs, diagrams, charts, maps, formulas, documents, artworks, screenshots, or annotated examples according to the discipline and content. Keep the visual language coherent without forcing every page into cards, equal columns, or one repeated composition.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"概念 / 知识讲解\",\n      \"sections\": [\n        {\"position\": \"title area\", \"count\": 1, \"labels\": [\"lesson question or core concept\"]},\n        {\"position\": \"primary teaching field\", \"count\": 1, \"labels\": [\"the most suitable visual and explanatory structure for the concept\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"definitions, examples, evidence, annotations, or implications as needed\"]}\n      ]\n    },\n    {\n      \"name\": \"过程 / 关系讲解\",\n      \"sections\": [\n        {\"position\": \"title area\", \"count\": 1, \"labels\": [\"process, development, comparison, or relationship topic\"]},\n        {\"position\": \"primary relationship field\", \"count\": 1, \"labels\": [\"sequence, cause, contrast, hierarchy, interaction, or transformation\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"conditions, examples, evidence, annotations, or summary as needed\"]}\n      ]\n    },\n    {\n      \"name\": \"案例 / 材料 / 证据\",\n      \"sections\": [\n        {\"position\": \"context field\", \"count\": 1, \"labels\": [\"case, text, event, artwork, experiment, or application context\"]},\n        {\"position\": \"evidence field\", \"count\": 1, \"labels\": [\"relevant visual material, source excerpt, data, observations, or comparison\"]},\n        {\"position\": \"teaching conclusion field\", \"count\": 1, \"labels\": [\"interpretation, lesson learned, or takeaway\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"discipline-relevant photographs, artworks, archival documents, source excerpts, maps, formulas, tables, charts, diagrams, screenshots, multi-image evidence groups, annotated images, timelines, relationship structures, restrained icons, and subtle academic background texture; cards and grids may be used when they genuinely clarify the material but are not the default\",\n    \"avoid\": \"text-only pages, purely decorative illustration, repetitive card grids, default three-column layouts, generic AI-looking imagery, unsupported futuristic or technical styling, random 3D icons, playful stickers, excessive gradients, heavy shadows, glossy elements, inconsistent icon styles, dense ungrouped text, unrelated stock imagery, and ornamental layouts that weaken the teaching sequence\"\n  },\n  \"image_treatment\": {\n    \"photos\": \"use relevant and credible course or case images as evidence, crop them consistently, and pair them with concise explanatory labels; one page may use a single main image or several complementary images when they explain different aspects of the topic\",\n    \"screenshots\": \"place inside clean frames and preserve important interface details, annotations, and labels\",\n    \"charts\": \"use the palette semantically, retain accurate axes and values, and emphasize the comparison or trend being taught\",\n    \"illustrations\": \"choose diagrams, maps, explanatory drawings, documentary collage, symbolic graphics, or other illustration treatments appropriate to the discipline and lesson; avoid decorative scenes that do not teach anything\",\n    \"discipline_materials\": \"treat formulas, artworks, historical documents, literary excerpts, medical images, scientific figures, and other subject-specific materials as valid visual evidence when relevant and accurately represented\"\n  },\n  \"rendering_constraints\": [\n    \"The slide must look like professional academic courseware, not a marketing pitch deck.\",\n    \"Prioritize teaching sequence, conceptual clarity, and readable evidence over visual decoration.\",\n    \"Every slide must contain both meaningful visual content and readable text; visuals should explain, demonstrate, compare, or provide evidence rather than merely decorate.\",\n    \"Visual content may include photographs, diagrams, charts, maps, formulas, artworks, documents, source excerpts, screenshots, or other discipline-appropriate material; it does not always mean a decorative illustration.\",\n    \"Avoid both underfilled slides and long blocks of prose. Convert dense explanations into diagrams, image groups, structured labels, or concise teaching points.\",\n    \"Keep related information visibly grouped and maintain a clear viewing order.\",\n    \"Avoid tiny text; split or simplify content when it cannot remain readable at presentation distance.\",\n    \"Use semantic accent colors consistently across the deck.\",\n    \"Do not force every slide into repeated cards, equal columns, a fixed module count, or an identical information grid.\",\n    \"Avoid an obvious AI-generated look: no fabricated text inside images, implausible photo details, generic glowing technology effects, random decorative objects, or repetitive template-like compositions.\",\n    \"Do not invent university, school, laboratory, company, or course logos; use only user-provided identity assets.\",\n    \"Do not inherit topics, examples, imagery, terminology, or organizations from a style reference unless they are required by the source content.\",\n    \"No watermark and no unrelated logo.\"\n  ]\n}\n```\n\nFile v0.6.0:references/数据仪表盘风.md\n\n# 数据仪表盘风\n\n**适用场景:**\n- 数据分析报告\n- 业绩展示\n- KPI 汇报\n- 实时数据展示\n- 商业智能BI\n- 运营数据看板\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"数据仪表盘风\",\n  \"best_for\": \"数据密集型汇报、运营分析、KPI 复盘和业务洞察展示\",\n  \"visual_direction\": \"bright modern SaaS analytics dashboard, clean BI interface, lightweight data cards, precise charts, professional and non-oppressive\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white #FFFFFF, very light blue-gray #F5F8FC, or mist gray #F8FAFC\",\n    \"composition\": \"dashboard grid with title area, KPI cards, chart panels, and status list\",\n    \"density\": \"medium-high information density with enough card spacing and clear grouping\"\n  },\n  \"color_palette\": {\n    \"primary\": \"data blue #2563EB or #1976D2\",\n    \"secondary\": \"cyan #06B6D4 and soft purple #8B5CF6\",\n    \"status\": \"green #10B981, orange #F59E0B, red #EF4444 used sparingly\",\n    \"text\": \"deep navy #0F172A and neutral gray #64748B\",\n    \"rule\": \"avoid dark control-room backgrounds, heavy neon, and oppressive black panels\"\n  },\n  \"typography\": {\n    \"title\": \"bold clean sans-serif, dashboard header style\",\n    \"numbers\": \"large tabular numerals for KPI values\",\n    \"labels\": \"small but readable sans-serif chart labels\",\n    \"text_quality\": \"Chinese labels and KPI names must be exact and legible\"\n  },\n  \"layout_patterns\": [\n    \"top KPI strip with 3-4 cards and trend arrows\",\n    \"main area split into workflow cards and a line chart\",\n    \"lower area with donut chart, bar chart, and recent activity table\",\n    \"large central insight card surrounded by supporting metrics\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"SaaS BI overview\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"dashboard title and subtitle\"]},\n        {\"position\": \"top-right\", \"count\": 4, \"labels\": [\"KPI card 1\", \"KPI card 2\", \"KPI card 3\", \"KPI card 4\"]},\n        {\"position\": \"middle-left\", \"count\": 3, \"labels\": [\"process card 1\", \"process card 2\", \"process card 3\"]},\n        {\"position\": \"middle-right\", \"count\": 1, \"labels\": [\"line chart panel\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"donut chart\", \"bar chart\", \"recent records table\"]}\n      ]\n    },\n    {\n      \"name\": \"single insight dashboard\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"large insight card\"]},\n        {\"position\": \"surrounding\", \"count\": 4, \"labels\": [\"supporting metric\", \"trend sparkline\", \"status list\", \"risk indicator\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"white cards, soft shadows, pale borders, line charts, bar charts, progress rings, KPI cards, status dots, trend arrows, mini sparklines\",\n    \"avoid\": \"dark monitoring wall, dense cyberpunk glow, unreadable tiny table text, random numbers without structure\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look like a polished SaaS analytics product screenshot adapted for presentation.\",\n    \"Charts should be visually plausible and organized, even when illustrative.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/清爽专业风.md\n\n# 清爽专业风\n\n**适用场景:**\n- 毕业答辩\n- 工作总结\n- 工作 review\n- 技术分享\n- 项目复盘\n- 晋升述职\n- 阶段性成果汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"清爽专业风\",\n  \"best_for\": \"毕业答辩、工作总结、工作 review、技术分享、项目复盘和晋升述职等需要清晰表达过程、成果、问题和下一步的场景\",\n  \"visual_direction\": \"clean modern professional deck, calm technical presentation, structured evidence-driven layout, readable pragmatic visual system, light background with crisp hierarchy\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm white #FFFFFF, light gray #F8FAFC, or very pale blue #F6F9FF\",\n    \"composition\": \"title zone, structured content zone, evidence/diagram zone, and concise takeaway zone\",\n    \"density\": \"medium information density, enough room for technical details without visual clutter\"\n  },\n  \"color_palette\": {\n    \"primary\": \"professional blue #2563EB or slate blue #334155\",\n    \"secondary\": \"calm teal #0F766E or muted cyan #0891B2\",\n    \"accent\": \"soft amber #F59E0B for highlights and risk/attention notes\",\n    \"neutral\": \"slate gray #475569, light border #E2E8F0, pale card background #F8FAFC\",\n    \"rule\": \"use restrained professional colors; avoid playful neon, luxury gold, or heavy dark backgrounds\"\n  },\n  \"typography\": {\n    \"title\": \"clear bold sans-serif, report-like and authoritative\",\n    \"body\": \"clean sans-serif, strong hierarchy, left-aligned for readability\",\n    \"labels\": \"small but readable labels for timeline, evidence, metrics, and code/process diagrams\",\n    \"text_quality\": \"Chinese text must be exact, readable, and suitable for formal reporting\"\n  },\n  \"layout_patterns\": [\n    \"problem-process-result-next steps\",\n    \"timeline plus milestone cards\",\n    \"technical architecture diagram with key takeaways\",\n    \"summary dashboard with achievements, issues, learnings, and plan\",\n    \"defense slide with research question, method, evidence, and conclusion\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"work review summary\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"slide title and context subtitle\"]},\n        {\"position\": \"left column\", \"count\": 3, \"labels\": [\"目标\", \"完成情况\", \"关键结果\"]},\n        {\"position\": \"right column\", \"count\": 2, \"labels\": [\"问题与风险\", \"下一步计划\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"one-sentence takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"technical sharing flow\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"topic title and motivation\"]},\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"architecture / workflow / method diagram\"]},\n        {\"position\": \"right\", \"count\": 3, \"labels\": [\"核心机制\", \"实践经验\", \"注意事项\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"before\", \"after\", \"impact\"]}\n      ]\n    },\n    {\n      \"name\": \"graduation defense evidence slide\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"研究问题 / 答辩主题\"]},\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"方法路线图\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"实验/项目证据\", \"关键数据\"]},\n        {\"position\": \"right\", \"count\": 1, \"labels\": [\"结论与贡献\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"限制与后续工作\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"timeline, checklist, progress bars, architecture blocks, process arrows, evidence cards, metric badges, issue/risk callouts, code-like panels, simple icons\",\n    \"avoid\": \"overly decorative poster layout, random stock photos, cute stickers, dense unreadable tables, exaggerated marketing style\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look suitable for a real workplace review, thesis defense, or technical sharing session.\",\n    \"Prioritize clarity, evidence, and logical flow over decoration.\",\n    \"All diagrams and labels should feel purposeful and related to the slide content.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/温暖手工风.md\n\n# 温暖手工风\n\n**适用场景:**\n- 儿童教育\n- 文化活动\n- 手工艺展示\n- 温馨主题\n- 亲子活动\n- 艺术工作坊\n- 社区公益项目\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"温暖手工风\",\n  \"best_for\": \"教育、公益、文化、成长、社区和需要温度感的主题演示\",\n  \"visual_direction\": \"warm handmade paper collage slide, tactile paper craft, gentle human-centered storytelling, cozy scrapbook composition\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm cream paper #F5F1E8 or pale wood #E8DCC8 with subtle paper fibers\",\n    \"composition\": \"paper cutout title area, 3 paper note cards for key points, gentle illustration accents\",\n    \"density\": \"airy and comforting, generous breathing room\"\n  },\n  \"color_palette\": {\n    \"primary\": \"warm brown #A67C52 and deep cocoa #5C4033 for text\",\n    \"soft_colors\": \"dusty pink #F5C4B8, sage green #B8D4A8, sky blue #A8D8EA, sunset orange #FFA574, lavender #C9B1D0\",\n    \"surface\": \"cream, handmade paper, kraft paper, pastel sticky notes\",\n    \"rule\": \"all colors should feel soft, matte, and paper-like\"\n  },\n  \"typography\": {\n    \"title\": \"rounded handwritten or friendly display style\",\n    \"body\": \"clear friendly handwritten or rounded sans-serif Chinese text\",\n    \"emphasis\": \"paper labels, stitched tags, small handwritten captions\",\n    \"text_quality\": \"Chinese text must be accurate and legible\"\n  },\n  \"layout_patterns\": [\n    \"three torn-paper cards aligned naturally across the slide\",\n    \"scrapbook title ribbon with small illustrated stickers\",\n    \"central handmade diagram with taped labels\",\n    \"soft paper collage with one warm illustration and supporting notes\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"paper note cards\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"torn-paper title ribbon\"]},\n        {\"position\": \"center\", \"count\": 3, \"labels\": [\"paper card 1\", \"paper card 2\", \"paper card 3\"]},\n        {\"position\": \"corners\", \"count\": 4, \"labels\": [\"small sticker\", \"tape strip\", \"plant doodle\", \"paper clip\"]}\n      ]\n    },\n    {\n      \"name\": \"scrapbook story\",\n      \"sections\": [\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"warm illustration or paper collage scene\"]},\n        {\"position\": \"right\", \"count\": 3, \"labels\": [\"key point note\", \"example note\", \"takeaway note\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"handwritten closing line\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"paper texture, torn edges, tape, paper clips, buttons, watercolor blocks, simple doodles, plant stickers, soft shadows\",\n    \"avoid\": \"glossy plastic look, corporate sharp edges, harsh black text, neon colors, overly childish clutter\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel handmade but still presentation-ready.\",\n    \"Paper shadows and textures should be subtle and not reduce text legibility.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.6.0:references/电子墨水杂志风.md\n\n# 电子墨水杂志风\n\n**适用场景:**\n- 线下分享\n- 行业内部讲话\n- AI / 科技产品发布\n- Demo day\n- 个人观点型演讲\n- 非虚构叙事\n- 需要强节奏感的主题演讲\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"电子墨水杂志风\",\n  \"best_for\": \"线下演讲、观点分享、AI/科技发布、非虚构叙事和需要强个人表达的横向演示\",\n  \"visual_direction\": \"electronic ink editorial presentation, premium magazine layout, serif headline, sans-serif body, monospace metadata, restrained WebGL-like ink flow background only as subtle texture, strong hero/non-hero rhythm\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"off-white #F7F4EA, ink black #111111, deep indigo #1E2A78, forest ink #163B2F, kraft paper #D8C3A5, or dune sand #D9C29E depending on theme\",\n    \"composition\": \"editorial grid with strong margins, magazine-like hierarchy, hero pages alternating with quieter content pages\",\n    \"density\": \"moderate to low information density, designed for stage readability and narrative pacing\"\n  },\n  \"color_palette\": {\n    \"base\": \"paper-like light background or deep ink background\",\n    \"primary\": \"ink black, off-white, or deep indigo\",\n    \"accent\": \"one restrained accent such as vermilion, electric blue, forest green, or sand gold\",\n    \"metadata\": \"muted gray or low-contrast monochrome\",\n    \"rule\": \"use a curated theme palette; avoid random custom colors and decorative gradients\"\n  },\n  \"typography\": {\n    \"title\": \"large editorial serif Chinese headline or elegant high-contrast display type\",\n    \"body\": \"clean sans-serif, short paragraphs or compact bullets\",\n    \"metadata\": \"small monospace labels for chapter, date, source, index, or tags\",\n    \"text_quality\": \"Chinese text must be exact, readable, and typeset like a magazine spread\"\n  },\n  \"layout_patterns\": [\n    \"hero cover with oversized serif headline and subtle ink-flow background\",\n    \"chapter divider with one provocative sentence and metadata strip\",\n    \"data poster with one huge number, footnote, and tiny supporting labels\",\n    \"left text right image with image treated as editorial photography or abstract ink plate\",\n    \"big quote page with pull quote, source line, and large whitespace\",\n    \"before-after comparison with two editorial columns\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; alternate hero and non-hero pages to create rhythm, and avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"hero editorial opener\",\n      \"sections\": [\n        {\"position\": \"left or center\", \"count\": 1, \"labels\": [\"oversized serif headline\"]},\n        {\"position\": \"top or side edge\", \"count\": 3, \"labels\": [\"chapter label\", \"date/source\", \"short metadata\"]},\n        {\"position\": \"background\", \"count\": 1, \"labels\": [\"subtle ink-flow or paper texture\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"one-line thesis\"]}\n      ]\n    },\n    {\n      \"name\": \"magazine argument spread\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"slide title\"]},\n        {\"position\": \"left column\", \"count\": 2, \"labels\": [\"argument block\", \"evidence block\"]},\n        {\"position\": \"right half\", \"count\": 1, \"labels\": [\"editorial image, diagram, or abstract visual plate\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"monospace metadata strip\"]}\n      ]\n    },\n    {\n      \"name\": \"data broadsheet\",\n      \"sections\": [\n        {\"position\": \"center-left\", \"count\": 1, \"labels\": [\"huge number or keyword\"]},\n        {\"position\": \"right column\", \"count\": 3, \"labels\": [\"supporting fact 1\", \"supporting fact 2\", \"supporting fact 3\"]},\n        {\"position\": \"bottom-left\", \"count\": 1, \"labels\": [\"source / caveat / time range\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"editorial rules, thin dividers, paper grain, subtle ink-flow texture, cropped photography zones, metadata strips, chapter marks, pull quotes, huge numerals\",\n    \"avoid\": \"template-like cards, shiny corporate gradients, cute illustrations, dense tables, dashboard overload, generic stock-photo collage\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like an electronic magazine page adapted for a stage presentation.\",\n    \"Use large readable typography and strong whitespace.\",\n    \"Do not turn every page into a hero cover; alternate page intensity across the deck.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nArchive v0.5.5: 41 files, 106868 bytes\n\nFiles: docs/backend-selection.md (3449b), docs/cli-api-fallback.md (4606b), docs/image-model-configuration.md (3347b), docs/outline-style-and-sample.md (9533b), docs/project-assembly-and-reporting.md (8467b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (6518b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/党政红风格.md (8673b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/教学课件风.md (9949b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8660b), scripts/image_gen.py (34434b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.py (887b), scripts/image_providers/factory.py (734b), scripts/image_providers/openai_compatible.py (7448b), scripts/prepare_slide_prompts.py (20270b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (2708b), SKILL.md (10398b), _meta.json (128b)\n\nFile v0.5.5:SKILL.md\n\n---\nname: codex-ppt\ndescription: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines.\nversion: 0.5.5\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - python3\n    primaryEnv: OPENAI_API_KEY\n    envVars:\n      - name: OPENAI_API_KEY\n        required: false\n        description: API key for CLI fallback.\n      - name: OPENAI_BASE_URL\n        required: false\n        description: API base URL.\n      - name: CODEX_PPT_IMAGE_MODEL\n        required: false\n        description: Image model, defaults to gpt-image-2.\n      - name: CODEX_PPT_HOME\n        required: false\n        description: Runtime home override.\n    homepage: https://github.com/ningzimu/codex-ppt-skill\n---\n\n# Codex PPT\n\n## Overview\n\nThis skill creates image-based PowerPoint decks from source material. Each slide is a complete 16:9 generated image. Final images are assembled into `.pptx` with `scripts/assemble_ppt.py`.\n\nUse this when the user wants a visually unified presentation and accepts full-slide image pages. Do not use it when every textbox, chart, or shape must remain separately editable.\n\nPrefer the built-in image generation/editing tool. Use `scripts/image_gen.py` only when the built-in backend is unavailable, lacks a required capability, or the user explicitly asks for API/CLI mode.\n\n## Hard Constraints\n\n- Read the relevant `Reference Map` files before each phase. This file is the orchestration contract; detailed rules live in `docs/` and worker prompts in `prompts/`.\n- Respect approval gates. Do not create final `deck_spec.json`, `speech.md`, prompt jobs, slide images, or `.pptx` before the approvals in `docs/workflow-gates-and-progress.md`.\n- After the user approves the sample slide and authorizes full-deck generation, every remaining slide image job must be dispatched to a slide subagent whenever subagents are available.\n- The main agent owns orchestration, prompt jobs, state recording, QA, speaker notes, and assembly. Do not silently replace available slide subagents with sequential production.\n- Every final `origin_image/slide_XX.png` must be generated by the selected image backend: built-in image generation/editing tool or `scripts/image_gen.py`.\n- Local drawing, Pillow, SVG, HTML/CSS/canvas screenshots, python-pptx/PptxGenJS layouts, and manual overlays are failure modes, not fallbacks.\n- The selected image backend must stay fixed after backend confirmation. Do not let subagents switch backend for convenience.\n- After sample approval, record how the approved sample was generated and pass that exact method to every slide subagent.\n- Slide dispatch and result state must be recorded with the bundled scripts. Chat messages alone do not make a slide dispatched or complete.\n- If a required subagent, image backend, or required-image path is unavailable, stop and report a blocker with the slide id and evidence. Do not create a lower-quality replacement.\n\n## Visible Progress\n\nFor non-trivial decks, keep a user-visible checklist with one active step. Canonical completion evidence is in `docs/workflow-gates-and-progress.md`.\n\nDefault visible steps:\n\n1. Prepare source, outline, style, and backend decisions.\n2. Generate and approve one sample slide.\n3. Prepare slide jobs and slide state.\n4. Dispatch slide subagents.\n5. Record generated slide results.\n6. QA, repair, notes, and PPT assembly.\n\nDo not mark a step complete from chat alone; use real files or script-recorded state.\n\n## Default Workflow\n\n1. Understand the source content.\n   - Identify topic, audience, goal, page count, style/brand constraints, and sections to include or exclude.\n   - If no page count is specified, choose a practical count. Typical decks are 8-12 slides.\n\n2. Plan the deck outline.\n   - Before writing or updating `outline.md`, read `docs/workflow-gates-and-progress.md` and `docs/outline-style-and-sample.md`.\n   - Draft slide roles and required source images. Ask for confirmation, then stop before style, backend, sample, or downstream artifacts until approved.\n\n3. Confirm a unified visual style.\n   - Before offering style options or using files from `references/`, read `docs/outline-style-and-sample.md`.\n   - Offer 2-3 concrete style directions, recommend one, wait for confirmation, then keep one visual identity while varying layouts by page role.\n\n4. Confirm the image backend.\n   - Before generating any slide image, read `docs/backend-selection.md`.\n   - Check whether a built-in image tool is callable, state what you checked, name the backend, explain fallback status, and wait for confirmation.\n   - If CLI/API fallback is selected, read `docs/cli-api-fallback.md`. Read `docs/image-model-configuration.md` only after config errors or explicit API-setting requests.\n\n5. Generate one sample slide for approval.\n   - Before generating or approving the sample slide, read `docs/outline-style-and-sample.md`.\n   - Generate exactly one representative sample after outline, style, and backend are confirmed. Do not generate the full deck until approved.\n   - After approval, record `sample_generation_method` in `deck_spec.json` so jobs and subagents inherit the same path.\n\n6. Create the project directory.\n   - Before initializing folders or assembling files, read `docs/project-assembly-and-reporting.md`.\n   - If no destination is specified, use the current working directory or the source file directory.\n\n7. Prepare user-supplied assets.\n   - Before using paper figures, charts, screenshots, logos, or other required assets, read `docs/user-supplied-assets.md`.\n   - Treat required assets as strict inputs and confirm slide-to-asset mapping before generation.\n\n8. Generate all slide images.\n   - Before full-deck image generation, read `docs/slide-generation-and-subagents.md`.\n   - Create per-slide jobs with `scripts/prepare_slide_prompts.py` or saved `prompts/slide_XX.json` files.\n   - Every final image must come from the selected backend and be recorded with bundled state scripts.\n\n9. Dispatch slide subagents.\n   - Before dispatching or replacing slide workers, read `docs/slide-generation-and-subagents.md` and `prompts/slide-worker.md`.\n   - Use one subagent per remaining slide job whenever possible. If required subagents cannot be spawned, stop and report a blocker unless the user changes the workflow.\n\n10. Quality check and repair.\n    - Before QA or assembly, read `docs/project-assembly-and-reporting.md`.\n    - Inspect every slide before assembly: text, outline match, truncation, style, unwanted page numbers, overlaps, and required assets.\n    - Regenerate severe failures with a tighter prompt. Use backend editing for localized issues when available.\n    - For CLI/API fallback edit commands, read `docs/cli-api-fallback.md`. Replace the final slide only after validating the edited output.\n\n11. Write speaker notes and assemble the PPT.\n    - Before writing `speech.md` or running assembly, read `docs/project-assembly-and-reporting.md`.\n    - Make sure `outline.md` reflects the final confirmed deck outline. Use `speech.md` headings that map to `Slide N`.\n    - Before assembly, ensure `slide_jobs.json` shows generated slides as `recorded` and approved samples as `accepted`. If any slide is `pending`, `dispatched`, or `blocked`, stop.\n\n12. Report the result.\n    - Use the final report checklist in `docs/project-assembly-and-reporting.md`.\n    - Include paths, slide count, backend used, recorded-result status, and any limitations or blockers.\n\n13. Save reusable styles.\n    - If asked to save the current deck style or a supplied image/PDF/PPT/PPTX style, read `docs/style-library.md`.\n    - If the final deck used a custom or adapted style, proactively offer to save it in the final report, per `docs/project-assembly-and-reporting.md`. User custom styles are stored in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/`, outside the skill install.\n\n## Subagent Dispatch\n\nSlide subagents are mandatory after sample approval whenever the runtime can spawn them. The main agent prepares jobs and records state; each worker handles exactly one `prompts/slide_XX.json` job and returns only selected image path, backend, and QA note.\n\nUse `docs/slide-generation-and-subagents.md` for dispatch, commands, result recording, blockers, and backend provenance. Use `prompts/slide-worker.md` as the handoff template.\n\nSubagents must not edit `outline.md`, `deck_spec.json`, other slide jobs, `origin_image/`, `speech.md`, or the final `.pptx`. The parent records outputs and assembles.\n\n## Acceptance Criteria\n\n- Output is a valid `.pptx`.\n- Each expected final slide image exists under `origin_image/slide_XX.png`.\n- Every final slide image was generated by the confirmed backend and recorded through `record_slide_result.py`, except an approved sample marked accepted by run state.\n- `outline.md` reflects the approved deck outline.\n- `speech.md` exists when speaker notes are expected, and assembly writes those notes into the PPT.\n- `slide_jobs.json` and `slide_run_state.json` reflect the final state.\n- Required source images are visibly represented, or a blocker is reported.\n- If blocked, the final response identifies phase, slide id, evidence path, and unfinished reason; do not call the deck complete.\n\n## Reference Map\n\n- `docs/workflow-gates-and-progress.md`: approval gates, progress, completion evidence.\n- `docs/backend-selection.md`: backend decision rules and confirmation text.\n- `docs/outline-style-and-sample.md`: outline, style, sample rules, prompt examples.\n- `docs/user-supplied-assets.md`: strict handling for required source assets.\n- `docs/slide-generation-and-subagents.md`: jobs, dispatch, result recording, blockers, provenance.\n- `docs/cli-api-fallback.md`: fallback runtime, generation/edit commands, image limits, troubleshooting.\n- `docs/image-model-configuration.md`: API key, base URL, model, `.env`; read only when config is needed.\n- `docs/project-assembly-and-reporting.md`: project directory, notes, assembly, final report, prompting principles.\n- `prompts/slide-worker.md`: slide subagent handoff template.\n- `references/*.md`: built-in visual style references. User custom styles live in `${CODEX_PPT_HOME:-~/.codex-ppt-skill}/references/` and take priority over built-in styles with the same name.\n\n## Documentation and Updates\n\nFor source, docs, install, config, and examples, see [ningzimu/codex-ppt-skill](https://github.com/ningzimu/codex-ppt-skill).\n\nFile v0.5.5:_meta.json\n\n{\n  \"ownerId\": \"kn70ybyb64yfkyyve79tvhh7vn82js5s\",\n  \"slug\": \"codex-ppt\",\n  \"version\": \"0.5.5\",\n  \"publishedAt\": 1783967365903\n}\n\nFile v0.5.5:references/党政红风格.md\n\n# 党政红风格\n\n**适用场景:**\n- 党政机关工作汇报、专题学习与会议材料\n- 政策宣讲、党建活动、年度总结与重点工作部署\n- 国企、事业单位和公共服务机构的正式汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"党政红风格\",\n  \"best_for\": \"党政机关、国企和事业单位的工作汇报、政策宣讲、党建学习、年度总结与重点工作部署\",\n  \"visual_direction\": \"solemn, authoritative, and optimistic Chinese public-sector presentation with a recognizable Chinese-red identity, restrained gold accents, strong Chinese typography, and a visual expression shaped by the subject rather than a fixed ceremonial layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"choose red, warm ivory, a restrained gradient, a relevant photograph, or a subtle abstract treatment according to the page role and subject; any landscape, architecture, ribbon, skyline, or cultural motif is optional and must serve the content rather than become a default background\",\n    \"composition\": \"formal and balanced with a prominent title hierarchy and disciplined alignment; allow centered, asymmetric, image-led, modular, or spacious compositions when they better express the content\",\n    \"density\": \"medium information density with controlled whitespace, clear reading order, and enough supporting text or evidence to make each page useful\"\n  },\n  \"color_palette\": {\n    \"primary\": \"Chinese red #C41E3A for main titles, structural emphasis, and key labels\",\n    \"secondary\": \"deep red #9E1530 for contrast and warm ivory #FFF9F2 for the main canvas\",\n    \"accent\": \"restrained matte gold #D6A84B and warm amber #E9A11B for icons, connectors, and small title ornaments\",\n    \"neutral\": \"ink black #262626, dark gray #4A4A4A, pale warm gray #F3EEE7\",\n    \"rule\": \"use Chinese red to establish authority and gold as a restrained accent. Balance red, warm ivory, and neutral space according to page role; avoid glitter, glossy gradients, and festive red-and-gold decoration\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Microsoft YaHei or Source Han Sans style Chinese sans-serif, visually strong, dignified, and immediately noticeable\",\n    \"body\": \"Microsoft YaHei or Source Han Sans style Chinese sans-serif, concise, highly readable, and aligned to a strict grid\",\n    \"labels\": \"bold white or dark-red text on restrained red or pale-gold blocks\",\n    \"text_quality\": \"all Chinese text must be exact, fully legible, non-garbled, and suitable for formal government reporting\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep the title hierarchy, typeface, weight, color logic, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"Use a prominent, dignified title treatment that may be centered, offset, or integrated with a relevant visual according to the composition.\",\n    \"section_divider\": \"Use a concise title and a clear transition in scale, color, whitespace, or imagery without requiring a fixed navigation bar or ornament.\",\n    \"content_slide\": \"Keep the page topic immediately recognizable, but align the title with the composition and information structure; centered and left-aligned treatments are both valid.\",\n    \"flexibility\": \"Treat the title system as a hierarchy and consistency rule, not a fixed arrangement. Do not require a navigation strip, centered title, gold separator, numbering style, or identical decoration on every slide.\"\n  },\n  \"layout_patterns\": [\n    \"cover or opener with a dominant title and a subject-relevant photographic, illustrative, architectural, landscape, or abstract visual\",\n    \"section divider with a concise statement and a clear transition created through scale, whitespace, color, or imagery\",\n    \"content explanation organized around the most important relationship, argument, process, comparison, or evidence\",\n    \"work deployment or policy interpretation page whose modules, sequence, and emphasis follow the source content\",\n    \"achievement or data page combining key figures, charts, images, and evidence-based captions as needed\",\n    \"summary or closing page that reinforces the central message with a strong but restrained visual conclusion\"\n  ],\n  \"layout_usage_rule\": \"Keep the red-led identity, typography, and formal tone consistent while varying title placement, background treatment, imagery, information structure, and whitespace by page purpose. Do not force every slide into the same grid, module count, title position, or decorative motif; use lighter backgrounds when they improve readability.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"封面 / 开场\",\n      \"sections\": [\n        {\"position\": \"primary visual field\", \"count\": 1, \"labels\": [\"prominent title and concise supporting information\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"optional subject-relevant photograph, illustration, architecture, landscape, or abstract visual\"]}\n      ]\n    },\n    {\n      \"name\": \"信息阐释 / 工作部署\",\n      \"sections\": [\n        {\"position\": \"title zone\", \"count\": 1, \"labels\": [\"clear page topic or guiding statement\"]},\n        {\"position\": \"main content field\", \"count\": 1, \"labels\": [\"the dominant argument, relationship, process, comparison, or evidence structure\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"supporting text, data, images, or callouts selected according to the source\"]}\n      ]\n    },\n    {\n      \"name\": \"成果 / 总结\",\n      \"sections\": [\n        {\"position\": \"primary message field\", \"count\": 1, \"labels\": [\"central conclusion, achievement, or call to action\"]},\n        {\"position\": \"evidence field\", \"count\": 1, \"labels\": [\"figures, chart, comparison, documentary image, or concise supporting points as appropriate\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"content-relevant photography, illustrations, landscapes, architecture, skylines, public-service scenes, people, abstract ribbons or color fields, restrained red-and-gold accents, formal information modules, simple icons, clean charts, and subtle cultural motifs; none of these elements is mandatory\",\n    \"avoid\": \"repeating the same landmark or ornament without content justification, invented or inaccurate official marks, excessive ceremonial decoration, thick shadows, glossy 3D text, glitter, festival or wedding motifs, cartoon styling, unrelated stock imagery, and decorative elements that compete with the message\"\n  },\n  \"image_treatment\": {\n    \"photos\": \"use relevant and credible documentary, landscape, architectural, public-service, or institutional imagery; it may be full-bleed, cropped, framed, or integrated with a restrained red treatment, but avoid heavy filters that obscure the subject\",\n    \"screenshots\": \"place inside clean warm-white frames with short source labels and no ornamental clutter\",\n    \"charts\": \"use red as the primary series, gold for one key highlight, and neutral gray for comparison; keep labels direct and readable\",\n    \"illustrations\": \"choose a flat, graphic, painterly, or restrained symbolic treatment according to the subject; do not impose a fixed landmark, ribbon, skyline, or landscape motif\",\n    \"official_symbols\": \"use a party emblem, national emblem, flag, seal, or other official symbol only when the content genuinely requires it and an accurate, authorized source asset is available; never invent, approximate, or redesign official symbols\"\n  },\n  \"rendering_constraints\": [\n    \"The slide must look like a formal Chinese government or public-sector report, not a festival poster or commercial advertisement.\",\n    \"Use large, dignified Chinese sans-serif typography resembling Microsoft YaHei or Source Han Sans.\",\n    \"Follow a consistent title system across slides of the same page type, while allowing cover, section-divider, and content-slide variants.\",\n    \"Let the page role and source content determine title placement, background, imagery, module count, and composition.\",\n    \"Do not force a navigation strip, centered title, gold separator, landscape, Great Wall, skyline, ribbon, or other specific motif onto every slide.\",\n    \"Use Chinese red #C41E3A as the main red and gold as a restrained supporting accent.\",\n    \"Keep gold restrained and matte; do not use glossy metallic or embossed 3D text.\",\n    \"Use exact readable Chinese text and a clear top-to-bottom or left-to-right hierarchy.\",\n    \"Do not invent, approximate, or redesign official marks, government logos, party emblems, national emblems, seals, flags, or institutional names.\",\n    \"No watermark and no unrelated logo.\"\n  ]\n}\n```\n\nFile v0.5.5:references/创意杂志风.md\n\n# 创意杂志风\n\n**适用场景:**\n- 创意提案\n- 品牌展示\n- 设计作品集\n- 文化活动\n- 时尚发布\n- 艺术展览\n- 创意工作室介绍\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"创意杂志风\",\n  \"best_for\": \"需要强视觉记忆点、品牌个性或传播感的分享型演示\",\n  \"visual_direction\": \"high-end editorial magazine spread, bold asymmetry, art-directed composition, graphic tension, premium creative layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white, black, or deep charcoal with intentional negative space\",\n    \"composition\": \"asymmetric editorial layout with a large headline, image/collage zone, and 2-3 supporting text blocks\",\n    \"density\": \"strong contrast between dense editorial blocks and open whitespace\"\n  },\n  \"color_palette\": {\n    \"base\": \"black, white, and gray\",\n    \"accent\": \"one vivid accent such as neon pink #FF006E, lemon yellow #FFED00, or electric cyan #00F5FF\",\n    \"support\": \"optional lavender, coral, or muted fashion tones\",\n    \"rule\": \"use one dominant accent color consistently; do not make the palette chaotic\"\n  },\n  \"typography\": {\n    \"title\": \"oversized bold display sans-serif or editorial serif, can occupy 25-45% of the slide\",\n    \"body\": \"small clean sans-serif blocks with strong alignment\",\n    \"emphasis\": \"keywords may use accent color, rotated labels, vertical text, or extreme scale contrast\",\n    \"text_quality\": \"Chinese headline and key points must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"oversized headline on one side with collage or abstract image block on the other\",\n    \"diagonal color block cutting across the slide\",\n    \"magazine cover style with title, subtitle, and three feature teasers\",\n    \"editorial grid with one large image crop and small annotation labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"editorial hero spread\",\n      \"sections\": [\n        {\"position\": \"left 45%\", \"count\": 1, \"labels\": [\"oversized headline\"]},\n        {\"position\": \"right 55%\", \"count\": 1, \"labels\": [\"collage or abstract image zone\"]},\n        {\"position\": \"bottom-left\", \"count\": 3, \"labels\": [\"feature teaser 1\", \"feature teaser 2\", \"feature teaser 3\"]}\n      ]\n    },\n    {\n      \"name\": \"cover story grid\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"large cover title\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"main visual block\", \"accent typography block\"]},\n        {\"position\": \"right edge\", \"count\": 3, \"labels\": [\"short editorial callouts\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"bold geometric blocks, cropped photography zones, halftone texture, thin rules, torn-paper collage edges, accent stickers, abstract shapes\",\n    \"avoid\": \"generic corporate icons, overly symmetrical layout, low-contrast text, too many accent colors\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel designed, not templated.\",\n    \"Maintain legibility despite bold composition.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/复古扁平插画风.md\n\n# 复古扁平插画风\n\n**适用场景:**\n- 文化创意项目展示\n- 品牌故事讲述\n- 旅游景点介绍\n- 复古产品发布\n- 艺术设计作品集\n- 创意活动宣传\n- 生活方式类演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"复古扁平插画风\",\n  \"best_for\": \"文化创意、品牌故事、生活方式、城市旅游和带叙事感的主题演示\",\n  \"visual_direction\": \"retro flat vector illustration slide, cream paper texture, monoline black outlines, vintage palette, playful handcrafted design\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"cream/off-white paper #F5F3E8 with subtle grain\",\n    \"composition\": \"panoramic illustration band plus structured content cards or labels\",\n    \"density\": \"moderate, decorative but still clear\"\n  },\n  \"color_palette\": {\n    \"base\": \"cream background and dark slate text #34495E\",\n    \"vintage_colors\": \"coral red #FF6B6B, mint green #95E1D3, mustard yellow #F9CA24, burnt orange #E17055, slate blue #6C7A89\",\n    \"line\": \"uniform black or deep charcoal outline\",\n    \"rule\": \"flat fills only, no glossy 3D, no heavy gradients\"\n  },\n  \"typography\": {\n    \"title\": \"bold retro serif or chunky vintage display type\",\n    \"body\": \"geometric sans-serif, clear and friendly\",\n    \"labels\": \"small badge labels with outlined shapes\",\n    \"text_quality\": \"Chinese text must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"top panoramic flat illustration with bottom content cards\",\n    \"central retro title with three outlined icon cards\",\n    \"2.5D simplified scene with callout labels\",\n    \"vintage poster composition adapted to presentation readability\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"panoramic illustration plus cards\",\n      \"sections\": [\n        {\"position\": \"top third\", \"count\": 1, \"labels\": [\"panoramic flat vector illustration\"]},\n        {\"position\": \"middle\", \"count\": 1, \"labels\": [\"large retro title\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"outlined content card 1\", \"outlined content card 2\", \"outlined content card 3\"]}\n      ]\n    },\n    {\n      \"name\": \"retro poster diagram\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main simplified scene or object\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"callout label\", \"badge\", \"mini icon\", \"decorative note\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"summary plaque\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"flat vector scenes, 2-3px monoline outlines, simplified buildings, plants, clouds, badges, dotted textures, small geometric decorations\",\n    \"avoid\": \"photorealism, complex shadows, neon palette, overly detailed linework, unreadable decorative type\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a polished retro illustration system, not a random cartoon.\",\n    \"Maintain consistent outline weight across objects.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/手绘技术解释风.md\n\n# 手绘技术解释风\n\n**适用场景:**\n- 中文技术文章配图\n- 技术概念解释\n- 课程课件\n- 知识卡片\n- 产品机制说明\n- AI / 软件工程主题分享\n- 需要降低理解门槛的复杂概念\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘技术解释风\",\n  \"best_for\": \"中文技术文章、课程课件、复杂概念解释、知识卡片和软件工程/AI 主题的低压力说明图\",\n  \"visual_direction\": \"clean Chinese handdrawn technical explainer, near-white paper background, thin sketch lines, light pencil hatching, small precise central diagram, restrained pastel markers, lots of whitespace, calm educational tone\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"near-white paper #FCFBF7, not yellow, no full-page border\",\n    \"composition\": \"small central explanatory diagram with sparse labels, surrounding whitespace, short title and minimal visible text\",\n    \"density\": \"low to moderate; one core idea per slide; avoid dense whiteboard clutter\"\n  },\n  \"color_palette\": {\n    \"line\": \"soft graphite #2F3437 or dark gray ink, thin and slightly irregular\",\n    \"accent\": \"pale blue #BFD7F1, sage green #CFE2D1, light peach #F4C7B8, pale lavender #D8C7EF\",\n    \"background\": \"near-white, clean, not kraft, not cream-heavy\",\n    \"rule\": \"pastel marks are used for emphasis only; keep the page calm and airy\"\n  },\n  \"typography\": {\n    \"title\": \"restrained handwritten Chinese title, medium-large but not poster-sized\",\n    \"body\": \"short handwritten Chinese labels, few words per label, easy to inspect\",\n    \"emphasis\": \"light underline, small bracket, soft marker highlight, or tiny note tag\",\n    \"text_quality\": \"Chinese text must be exact, sparse, and readable; avoid long paragraphs\"\n  },\n  \"layout_patterns\": [\n    \"central concept diagram with 3-4 short surrounding labels\",\n    \"before-after explanation with two small sketch panels\",\n    \"flow diagram with 3 steps and minimal arrows\",\n    \"mental model page with one metaphor object and short annotations\",\n    \"matrix or decision guide with sparse handwritten notes\",\n    \"summary page with one small character or object and three takeaway labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; keep visual DNA stable while varying archetypes such as metaphor, process, comparison, matrix, and summary. Avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"small central concept map\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"short handwritten title\"]},\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"small precise concept diagram\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"label 1\", \"label 2\", \"label 3\", \"label 4\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"one-sentence takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"technical before-after\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"short page title\"]},\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"before sketch panel\"]},\n        {\"position\": \"right\", \"count\": 1, \"labels\": [\"after sketch panel\"]},\n        {\"position\": \"between panels\", \"count\": 1, \"labels\": [\"thin handdrawn arrow\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"why it matters\", \"tradeoff\", \"next step\"]}\n      ]\n    },\n    {\n      \"name\": \"one idea teaching card\",\n      \"sections\": [\n        {\"position\": \"center-left\", \"count\": 1, \"labels\": [\"metaphor object or tiny engineer/reader character\"]},\n        {\"position\": \"center-right\", \"count\": 3, \"labels\": [\"core idea\", \"common mistake\", \"useful rule\"]},\n        {\"position\": \"background\", \"count\": 1, \"labels\": [\"very light pencil hatching and pastel highlight\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"thin handdrawn arrows, small diagrams, pencil hatching, pastel marker blocks, bracket notes, simple software/AI icons, tiny engineer or reader character at most once\",\n    \"avoid\": \"messy whiteboard frame, marker tray, large cartoon characters, dense handwriting, yellowed paper, decorative stickers, poster-scale title, full-page border, digital UI cards\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a calm handdrawn technical article illustration, not a brainstorming whiteboard.\",\n    \"Keep the central drawing small and precise with generous empty space.\",\n    \"Use minimal Chinese text and make every visible word correct.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/手绘白板风.md\n\n# 手绘白板风\n\n**适用场景:**\n- 教学讲解\n- 培训课程\n- 头脑风暴\n- 概念说明\n- 技术分享\n- 内部研讨\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘白板风\",\n  \"best_for\": \"概念解释、技术分享、培训课程和需要亲和力的思路拆解\",\n  \"visual_direction\": \"realistic whiteboard explanation slide, marker handwriting, sketched diagrams, friendly teaching atmosphere, authentic whiteboard details\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm off-white whiteboard surface #FAFAF5 with subtle marker smudges\",\n    \"composition\": \"freeform but organized whiteboard layout with title, three concept blocks, arrows, and small doodle illustrations\",\n    \"density\": \"moderate, readable, brainstorming feel without chaos\"\n  },\n  \"color_palette\": {\n    \"primary\": \"black marker for main text\",\n    \"accent\": \"red #E74C3C, blue #3498DB, orange #F39C12 marker annotations\",\n    \"support\": \"green #27AE60, purple #9B59B6, yellow sticky note #FFF9C4\",\n    \"rule\": \"colors should look like real marker ink, not digital neon\"\n  },\n  \"typography\": {\n    \"title\": \"large neat handwritten Chinese marker style\",\n    \"body\": \"clear handwritten marker text, slightly irregular but readable\",\n    \"emphasis\": \"circle, underline, boxed words, sticky-note comments\",\n    \"text_quality\": \"Chinese handwriting must remain accurate and legible\"\n  },\n  \"layout_patterns\": [\n    \"three hand-drawn boxes connected by arrows\",\n    \"central concept bubble with surrounding notes\",\n    \"simple process diagram with sketches and annotations\",\n    \"left explanation list plus right hand-drawn diagram\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"whiteboard process diagram\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"handwritten title\"]},\n        {\"position\": \"center\", \"count\": 3, \"labels\": [\"step 1 box\", \"step 2 box\", \"step 3 box\"]},\n        {\"position\": \"between boxes\", \"count\": 2, \"labels\": [\"hand-drawn arrow\", \"hand-drawn arrow\"]},\n        {\"position\": \"right edge\", \"count\": 1, \"labels\": [\"sticky-note takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"concept map\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main concept bubble\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"supporting idea\", \"risk note\", \"example sketch\", \"action item\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"underlined summary\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"whiteboard frame, marker tray, colored markers, arrows, boxes, clouds, sticky notes, doodle icons, underlines, circled keywords\",\n    \"avoid\": \"messy illegible handwriting, childish clutter, photoreal people, digital UI cards\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look like a real whiteboard captured cleanly for a presentation.\",\n    \"Keep all Chinese text readable despite handwritten style.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/教学课件风.md\n\n# 教学课件风\n\n**适用场景:**\n- 高校课程、专题讲座与课堂教学\n- 技术培训、知识科普与专业能力建设\n- 概念讲解、体系梳理、案例分析与研究进展介绍\n- 需要同时呈现文字、图解、图片和数据的教学型演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"教学课件风\",\n  \"best_for\": \"高校课程、专题讲座、技术培训、知识科普、概念讲解、体系梳理、案例分析和研究进展介绍\",\n  \"visual_direction\": \"clear and credible academic courseware with structured knowledge communication, evidence-supported explanation, discipline-appropriate visuals, and a professional classroom tone shaped by the lesson rather than a fixed technical template\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white or very light cool gray with restrained pale-blue structural accents\",\n    \"composition\": \"structured teaching slide with a clear title hierarchy and a content-driven combination of text, images, diagrams, charts, formulas, source material, annotations, or comparisons selected according to the lesson objective\",\n    \"density\": \"balanced teaching density: substantial enough to support explanation, but never sparse, paragraph-heavy, or crowded; use strong grouping, alignment, and readable whitespace\"\n  },\n  \"color_palette\": {\n    \"primary\": \"deep academic navy #0B2E6D and clear blue #1769AA\",\n    \"secondary\": \"light blue #EAF3FB and cool gray #F3F6F9\",\n    \"accent\": \"choose a small set of restrained auxiliary colors according to the subject matter, source material, and semantic categories\",\n    \"neutral\": \"ink black #1F2937, body gray #4B5563, border gray #D7E0EA\",\n    \"rule\": \"use the blue system to establish the teaching structure; select auxiliary colors only when the content needs semantic distinction, then apply them consistently rather than decoratively\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Chinese sans-serif resembling Microsoft YaHei or Source Han Sans, usually dark navy, concise and immediately readable\",\n    \"body\": \"compact but readable Chinese sans-serif with clear indentation and short explanatory phrases\",\n    \"labels\": \"bold short labels with strong contrast, used when hierarchy or semantic categories need clarification rather than as mandatory card decoration\",\n    \"text_quality\": \"all Chinese text, Latin terms, formulas, units, and data labels must be exact, readable, and non-garbled\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep title typeface, weight, color logic, alignment, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"May combine a large course title with one or more subject-relevant visuals and concise presenter or course information; choose the visual structure according to the discipline and topic.\",\n    \"section_divider\": \"May use a concise section title with stronger whitespace and a restrained academic cue.\",\n    \"content_slide\": \"Keep the page topic immediately recognizable, but let title alignment, supporting accents, and surrounding composition adapt to the teaching content.\",\n    \"closing\": \"Use a concise acknowledgement or closing statement together with a subject-relevant visual or summary echo; keep the page informative and visually complete rather than leaving a nearly empty text-only slide.\",\n    \"flexibility\": \"Treat the title system as a consistency guide rather than a fixed template. Do not force every slide into the same header, rule, alignment, or decorative treatment.\"\n  },\n  \"layout_patterns\": [\n    \"course cover combining a clear title hierarchy with subject-relevant visual material and concise course information\",\n    \"concept explanation using the most suitable combination of diagrams, images, definitions, formulas, source excerpts, or annotated examples\",\n    \"sequence, process, development, or causal explanation with a clear viewing order\",\n    \"comparison or relationship page whose structure follows the concepts being contrasted or connected\",\n    \"case, text, artwork, experiment, event, or application analysis supported by relevant evidence and explanation\",\n    \"overview or synthesis page organizing examples, themes, findings, or knowledge relationships\",\n    \"knowledge summary using a concise framework, conclusion, or takeaway\",\n    \"closing or acknowledgement page combining a short closing statement with a restrained subject-relevant visual\"\n  ],\n  \"layout_usage_rule\": \"Choose the layout that best supports the teaching objective and viewing sequence. Every slide should combine meaningful visual explanation with readable text; use one strong visual or several complementary photographs, diagrams, charts, maps, formulas, documents, artworks, screenshots, or annotated examples according to the discipline and content. Keep the visual language coherent without forcing every page into cards, equal columns, or one repeated composition.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"概念 / 知识讲解\",\n      \"sections\": [\n        {\"position\": \"title area\", \"count\": 1, \"labels\": [\"lesson question or core concept\"]},\n        {\"position\": \"primary teaching field\", \"count\": 1, \"labels\": [\"the most suitable visual and explanatory structure for the concept\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"definitions, examples, evidence, annotations, or implications as needed\"]}\n      ]\n    },\n    {\n      \"name\": \"过程 / 关系讲解\",\n      \"sections\": [\n        {\"position\": \"title area\", \"count\": 1, \"labels\": [\"process, development, comparison, or relationship topic\"]},\n        {\"position\": \"primary relationship field\", \"count\": 1, \"labels\": [\"sequence, cause, contrast, hierarchy, interaction, or transformation\"]},\n        {\"position\": \"supporting field\", \"count\": 1, \"labels\": [\"conditions, examples, evidence, annotations, or summary as needed\"]}\n      ]\n    },\n    {\n      \"name\": \"案例 / 材料 / 证据\",\n      \"sections\": [\n        {\"position\": \"context field\", \"count\": 1, \"labels\": [\"case, text, event, artwork, experiment, or application context\"]},\n        {\"position\": \"evidence field\", \"count\": 1, \"labels\": [\"relevant visual material, source excerpt, data, observations, or comparison\"]},\n        {\"position\": \"teaching conclusion field\", \"count\": 1, \"labels\": [\"interpretation, lesson learned, or takeaway\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"discipline-relevant photographs, artworks, archival documents, source excerpts, maps, formulas, tables, charts, diagrams, screenshots, multi-image evidence groups, annotated images, timelines, relationship structures, restrained icons, and subtle academic background texture; cards and grids may be used when they genuinely clarify the material but are not the default\",\n    \"avoid\": \"text-only pages, purely decorative illustration, repetitive card grids, default three-column layouts, generic AI-looking imagery, unsupported futuristic or technical styling, random 3D icons, playful stickers, excessive gradients, heavy shadows, glossy elements, inconsistent icon styles, dense ungrouped text, unrelated stock imagery, and ornamental layouts that weaken the teaching sequence\"\n  },\n  \"image_treatment\": {\n    \"photos\": \"use relevant and credible course or case images as evidence, crop them consistently, and pair them with concise explanatory labels; one page may use a single main image or several complementary images when they explain different aspects of the topic\",\n    \"screenshots\": \"place inside clean frames and preserve important interface details, annotations, and labels\",\n    \"charts\": \"use the palette semantically, retain accurate axes and values, and emphasize the comparison or trend being taught\",\n    \"illustrations\": \"choose diagrams, maps, explanatory drawings, documentary collage, symbolic graphics, or other illustration treatments appropriate to the discipline and lesson; avoid decorative scenes that do not teach anything\",\n    \"discipline_materials\": \"treat formulas, artworks, historical documents, literary excerpts, medical images, scientific figures, and other subject-specific materials as valid visual evidence when relevant and accurately represented\"\n  },\n  \"rendering_constraints\": [\n    \"The slide must look like professional academic courseware, not a marketing pitch deck.\",\n    \"Prioritize teaching sequence, conceptual clarity, and readable evidence over visual decoration.\",\n    \"Every slide must contain both meaningful visual content and readable text; visuals should explain, demonstrate, compare, or provide evidence rather than merely decorate.\",\n    \"Visual content may include photographs, diagrams, charts, maps, formulas, artworks, documents, source excerpts, screenshots, or other discipline-appropriate material; it does not always mean a decorative illustration.\",\n    \"Avoid both underfilled slides and long blocks of prose. Convert dense explanations into diagrams, image groups, structured labels, or concise teaching points.\",\n    \"Keep related information visibly grouped and maintain a clear viewing order.\",\n    \"Avoid tiny text; split or simplify content when it cannot remain readable at presentation distance.\",\n    \"Use semantic accent colors consistently across the deck.\",\n    \"Do not force every slide into repeated cards, equal columns, a fixed module count, or an identical information grid.\",\n    \"Avoid an obvious AI-generated look: no fabricated text inside images, implausible photo details, generic glowing technology effects, random decorative objects, or repetitive template-like compositions.\",\n    \"Do not invent university, school, laboratory, company, or course logos; use only user-provided identity assets.\",\n    \"Do not inherit topics, examples, imagery, terminology, or organizations from a style reference unless they are required by the source content.\",\n    \"No watermark and no unrelated logo.\"\n  ]\n}\n```\n\nFile v0.5.5:references/数据仪表盘风.md\n\n# 数据仪表盘风\n\n**适用场景:**\n- 数据分析报告\n- 业绩展示\n- KPI 汇报\n- 实时数据展示\n- 商业智能BI\n- 运营数据看板\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"数据仪表盘风\",\n  \"best_for\": \"数据密集型汇报、运营分析、KPI 复盘和业务洞察展示\",\n  \"visual_direction\": \"bright modern SaaS analytics dashboard, clean BI interface, lightweight data cards, precise charts, professional and non-oppressive\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white #FFFFFF, very light blue-gray #F5F8FC, or mist gray #F8FAFC\",\n    \"composition\": \"dashboard grid with title area, KPI cards, chart panels, and status list\",\n    \"density\": \"medium-high information density with enough card spacing and clear grouping\"\n  },\n  \"color_palette\": {\n    \"primary\": \"data blue #2563EB or #1976D2\",\n    \"secondary\": \"cyan #06B6D4 and soft purple #8B5CF6\",\n    \"status\": \"green #10B981, orange #F59E0B, red #EF4444 used sparingly\",\n    \"text\": \"deep navy #0F172A and neutral gray #64748B\",\n    \"rule\": \"avoid dark control-room backgrounds, heavy neon, and oppressive black panels\"\n  },\n  \"typography\": {\n    \"title\": \"bold clean sans-serif, dashboard header style\",\n    \"numbers\": \"large tabular numerals for KPI values\",\n    \"labels\": \"small but readable sans-serif chart labels\",\n    \"text_quality\": \"Chinese labels and KPI names must be exact and legible\"\n  },\n  \"layout_patterns\": [\n    \"top KPI strip with 3-4 cards and trend arrows\",\n    \"main area split into workflow cards and a line chart\",\n    \"lower area with donut chart, bar chart, and recent activity table\",\n    \"large central insight card surrounded by supporting metrics\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"SaaS BI overview\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"dashboard title and subtitle\"]},\n        {\"position\": \"top-right\", \"count\": 4, \"labels\": [\"KPI card 1\", \"KPI card 2\", \"KPI card 3\", \"KPI card 4\"]},\n        {\"position\": \"middle-left\", \"count\": 3, \"labels\": [\"process card 1\", \"process card 2\", \"process card 3\"]},\n        {\"position\": \"middle-right\", \"count\": 1, \"labels\": [\"line chart panel\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"donut chart\", \"bar chart\", \"recent records table\"]}\n      ]\n    },\n    {\n      \"name\": \"single insight dashboard\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"large insight card\"]},\n        {\"position\": \"surrounding\", \"count\": 4, \"labels\": [\"supporting metric\", \"trend sparkline\", \"status list\", \"risk indicator\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"white cards, soft shadows, pale borders, line charts, bar charts, progress rings, KPI cards, status dots, trend arrows, mini sparklines\",\n    \"avoid\": \"dark monitoring wall, dense cyberpunk glow, unreadable tiny table text, random numbers without structure\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look like a polished SaaS analytics product screenshot adapted for presentation.\",\n    \"Charts should be visually plausible and organized, even when illustrative.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/清爽专业风.md\n\n# 清爽专业风\n\n**适用场景:**\n- 毕业答辩\n- 工作总结\n- 工作 review\n- 技术分享\n- 项目复盘\n- 晋升述职\n- 阶段性成果汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"清爽专业风\",\n  \"best_for\": \"毕业答辩、工作总结、工作 review、技术分享、项目复盘和晋升述职等需要清晰表达过程、成果、问题和下一步的场景\",\n  \"visual_direction\": \"clean modern professional deck, calm technical presentation, structured evidence-driven layout, readable pragmatic visual system, light background with crisp hierarchy\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm white #FFFFFF, light gray #F8FAFC, or very pale blue #F6F9FF\",\n    \"composition\": \"title zone, structured content zone, evidence/diagram zone, and concise takeaway zone\",\n    \"density\": \"medium information density, enough room for technical details without visual clutter\"\n  },\n  \"color_palette\": {\n    \"primary\": \"professional blue #2563EB or slate blue #334155\",\n    \"secondary\": \"calm teal #0F766E or muted cyan #0891B2\",\n    \"accent\": \"soft amber #F59E0B for highlights and risk/attention notes\",\n    \"neutral\": \"slate gray #475569, light border #E2E8F0, pale card background #F8FAFC\",\n    \"rule\": \"use restrained professional colors; avoid playful neon, luxury gold, or heavy dark backgrounds\"\n  },\n  \"typography\": {\n    \"title\": \"clear bold sans-serif, report-like and authoritative\",\n    \"body\": \"clean sans-serif, strong hierarchy, left-aligned for readability\",\n    \"labels\": \"small but readable labels for timeline, evidence, metrics, and code/process diagrams\",\n    \"text_quality\": \"Chinese text must be exact, readable, and suitable for formal reporting\"\n  },\n  \"layout_patterns\": [\n    \"problem-process-result-next steps\",\n    \"timeline plus milestone cards\",\n    \"technical architecture diagram with key takeaways\",\n    \"summary dashboard with achievements, issues, learnings, and plan\",\n    \"defense slide with research question, method, evidence, and conclusion\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"work review summary\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"slide title and context subtitle\"]},\n        {\"position\": \"left column\", \"count\": 3, \"labels\": [\"目标\", \"完成情况\", \"关键结果\"]},\n        {\"position\": \"right column\", \"count\": 2, \"labels\": [\"问题与风险\", \"下一步计划\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"one-sentence takeaway\"]}\n      ]\n    },\n    {\n      \"name\": \"technical sharing flow\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"topic title and motivation\"]},\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"architecture / workflow / method diagram\"]},\n        {\"position\": \"right\", \"count\": 3, \"labels\": [\"核心机制\", \"实践经验\", \"注意事项\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"before\", \"after\", \"impact\"]}\n      ]\n    },\n    {\n      \"name\": \"graduation defense evidence slide\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"研究问题 / 答辩主题\"]},\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"方法路线图\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"实验/项目证据\", \"关键数据\"]},\n        {\"position\": \"right\", \"count\": 1, \"labels\": [\"结论与贡献\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"限制与后续工作\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"timeline, checklist, progress bars, architecture blocks, process arrows, evidence cards, metric badges, issue/risk callouts, code-like panels, simple icons\",\n    \"avoid\": \"overly decorative poster layout, random stock photos, cute stickers, dense unreadable tables, exaggerated marketing style\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should look suitable for a real workplace review, thesis defense, or technical sharing session.\",\n    \"Prioritize clarity, evidence, and logical flow over decoration.\",\n    \"All diagrams and labels should feel purposeful and related to the slide content.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/温暖手工风.md\n\n# 温暖手工风\n\n**适用场景:**\n- 儿童教育\n- 文化活动\n- 手工艺展示\n- 温馨主题\n- 亲子活动\n- 艺术工作坊\n- 社区公益项目\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"温暖手工风\",\n  \"best_for\": \"教育、公益、文化、成长、社区和需要温度感的主题演示\",\n  \"visual_direction\": \"warm handmade paper collage slide, tactile paper craft, gentle human-centered storytelling, cozy scrapbook composition\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm cream paper #F5F1E8 or pale wood #E8DCC8 with subtle paper fibers\",\n    \"composition\": \"paper cutout title area, 3 paper note cards for key points, gentle illustration accents\",\n    \"density\": \"airy and comforting, generous breathing room\"\n  },\n  \"color_palette\": {\n    \"primary\": \"warm brown #A67C52 and deep cocoa #5C4033 for text\",\n    \"soft_colors\": \"dusty pink #F5C4B8, sage green #B8D4A8, sky blue #A8D8EA, sunset orange #FFA574, lavender #C9B1D0\",\n    \"surface\": \"cream, handmade paper, kraft paper, pastel sticky notes\",\n    \"rule\": \"all colors should feel soft, matte, and paper-like\"\n  },\n  \"typography\": {\n    \"title\": \"rounded handwritten or friendly display style\",\n    \"body\": \"clear friendly handwritten or rounded sans-serif Chinese text\",\n    \"emphasis\": \"paper labels, stitched tags, small handwritten captions\",\n    \"text_quality\": \"Chinese text must be accurate and legible\"\n  },\n  \"layout_patterns\": [\n    \"three torn-paper cards aligned naturally across the slide\",\n    \"scrapbook title ribbon with small illustrated stickers\",\n    \"central handmade diagram with taped labels\",\n    \"soft paper collage with one warm illustration and supporting notes\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"paper note cards\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"torn-paper title ribbon\"]},\n        {\"position\": \"center\", \"count\": 3, \"labels\": [\"paper card 1\", \"paper card 2\", \"paper card 3\"]},\n        {\"position\": \"corners\", \"count\": 4, \"labels\": [\"small sticker\", \"tape strip\", \"plant doodle\", \"paper clip\"]}\n      ]\n    },\n    {\n      \"name\": \"scrapbook story\",\n      \"sections\": [\n        {\"position\": \"left\", \"count\": 1, \"labels\": [\"warm illustration or paper collage scene\"]},\n        {\"position\": \"right\", \"count\": 3, \"labels\": [\"key point note\", \"example note\", \"takeaway note\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"handwritten closing line\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"paper texture, torn edges, tape, paper clips, buttons, watercolor blocks, simple doodles, plant stickers, soft shadows\",\n    \"avoid\": \"glossy plastic look, corporate sharp edges, harsh black text, neon colors, overly childish clutter\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel handmade but still presentation-ready.\",\n    \"Paper shadows and textures should be subtle and not reduce text legibility.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.5:references/电子墨水杂志风.md\n\n# 电子墨水杂志风\n\n**适用场景:**\n- 线下分享\n- 行业内部讲话\n- AI / 科技产品发布\n- Demo day\n- 个人观点型演讲\n- 非虚构叙事\n- 需要强节奏感的主题演讲\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"电子墨水杂志风\",\n  \"best_for\": \"线下演讲、观点分享、AI/科技发布、非虚构叙事和需要强个人表达的横向演示\",\n  \"visual_direction\": \"electronic ink editorial presentation, premium magazine layout, serif headline, sans-serif body, monospace metadata, restrained WebGL-like ink flow background only as subtle texture, strong hero/non-hero rhythm\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"off-white #F7F4EA, ink black #111111, deep indigo #1E2A78, forest ink #163B2F, kraft paper #D8C3A5, or dune sand #D9C29E depending on theme\",\n    \"composition\": \"editorial grid with strong margins, magazine-like hierarchy, hero pages alternating with quieter content pages\",\n    \"density\": \"moderate to low information density, designed for stage readability and narrative pacing\"\n  },\n  \"color_palette\": {\n    \"base\": \"paper-like light background or deep ink background\",\n    \"primary\": \"ink black, off-white, or deep indigo\",\n    \"accent\": \"one restrained accent such as vermilion, electric blue, forest green, or sand gold\",\n    \"metadata\": \"muted gray or low-contrast monochrome\",\n    \"rule\": \"use a curated theme palette; avoid random custom colors and decorative gradients\"\n  },\n  \"typography\": {\n    \"title\": \"large editorial serif Chinese headline or elegant high-contrast display type\",\n    \"body\": \"clean sans-serif, short paragraphs or compact bullets\",\n    \"metadata\": \"small monospace labels for chapter, date, source, index, or tags\",\n    \"text_quality\": \"Chinese text must be exact, readable, and typeset like a magazine spread\"\n  },\n  \"layout_patterns\": [\n    \"hero cover with oversized serif headline and subtle ink-flow background\",\n    \"chapter divider with one provocative sentence and metadata strip\",\n    \"data poster with one huge number, footnote, and tiny supporting labels\",\n    \"left text right image with image treated as editorial photography or abstract ink plate\",\n    \"big quote page with pull quote, source line, and large whitespace\",\n    \"before-after comparison with two editorial columns\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; alternate hero and non-hero pages to create rhythm, and avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"hero editorial opener\",\n      \"sections\": [\n        {\"position\": \"left or center\", \"count\": 1, \"labels\": [\"oversized serif headline\"]},\n        {\"position\": \"top or side edge\", \"count\": 3, \"labels\": [\"chapter label\", \"date/source\", \"short metadata\"]},\n        {\"position\": \"background\", \"count\": 1, \"labels\": [\"subtle ink-flow or paper texture\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"one-line thesis\"]}\n      ]\n    },\n    {\n      \"name\": \"magazine argument spread\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"slide title\"]},\n        {\"position\": \"left column\", \"count\": 2, \"labels\": [\"argument block\", \"evidence block\"]},\n        {\"position\": \"right half\", \"count\": 1, \"labels\": [\"editorial image, diagram, or abstract visual plate\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"monospace metadata strip\"]}\n      ]\n    },\n    {\n      \"name\": \"data broadsheet\",\n      \"sections\": [\n        {\"position\": \"center-left\", \"count\": 1, \"labels\": [\"huge number or keyword\"]},\n        {\"position\": \"right column\", \"count\": 3, \"labels\": [\"supporting fact 1\", \"supporting fact 2\", \"supporting fact 3\"]},\n        {\"position\": \"bottom-left\", \"count\": 1, \"labels\": [\"source / caveat / time range\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"editorial rules, thin dividers, paper grain, subtle ink-flow texture, cropped photography zones, metadata strips, chapter marks, pull quotes, huge numerals\",\n    \"avoid\": \"template-like cards, shiny corporate gradients, cute illustrations, dense tables, dashboard overload, generic stock-photo collage\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like an electronic magazine page adapted for a stage presentation.\",\n    \"Use large readable typography and strong whitespace.\",\n    \"Do not turn every page into a hero cover; alternate page intensity across the deck.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nArchive v0.5.4: 41 files, 105061 bytes\n\nFiles: docs/backend-selection.md (3449b), docs/cli-api-fallback.md (4606b), docs/image-model-configuration.md (3347b), docs/outline-style-and-sample.md (8702b), docs/project-assembly-and-reporting.md (7878b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (5745b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/党政红风格.md (7285b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/教学课件风.md (8297b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8660b), scripts/image_gen.py (34434b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.py (887b), scripts/image_providers/factory.py (734b), scripts/image_providers/openai_compatible.py (7448b), scripts/prepare_slide_prompts.py (20270b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (3054b), SKILL.md (10001b), _meta.json (128b)\n\nFile v0.5.4:SKILL.md\n\n---\nname: codex-ppt\ndescription: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines.\nversion: 0.5.4\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - python3\n    primaryEnv: OPENAI_API_KEY\n    envVars:\n      - name: OPENAI_API_KEY\n        required: false\n        description: API key for CLI fallback.\n      - name: OPENAI_BASE_URL\n        required: false\n        description: API base URL.\n      - name: CODEX_PPT_IMAGE_MODEL\n        required: false\n        description: Image model, defaults to gpt-image-2.\n      - name: CODEX_PPT_HOME\n        required: false\n        description: Runtime home override.\n    homepage: https://github.com/ningzimu/codex-ppt-skill\n---\n\n# Codex PPT\n\n## Overview\n\nThis skill creates image-based PowerPoint decks from source material. Each slide is a complete 16:9 generated image. Final images are assembled into `.pptx` with `scripts/assemble_ppt.py`.\n\nUse this when the user wants a visually unified presentation and accepts full-slide image pages. Do not use it when every textbox, chart, or shape must remain separately editable.\n\nPrefer the built-in image generation/editing tool. Use `scripts/image_gen.py` only when the built-in backend is unavailable, lacks a required capability, or the user explicitly asks for API/CLI mode.\n\n## Hard Constraints\n\n- Read the relevant `Reference Map` files before each phase. This file is the orchestration contract; detailed rules live in `docs/` and worker prompts in `prompts/`.\n- Respect approval gates. Do not create final `deck_spec.json`, `speech.md`, prompt jobs, slide images, or `.pptx` before the approvals in `docs/workflow-gates-and-progress.md`.\n- After the user approves the sample slide and authorizes full-deck generation, every remaining slide image job must be dispatched to a slide subagent whenever subagents are available.\n- The main agent owns orchestration, prompt jobs, state recording, QA, speaker notes, and assembly. Do not silently replace available slide subagents with sequential production.\n- Every final `origin_image/slide_XX.png` must be generated by the selected image backend: built-in image generation/editing tool or `scripts/image_gen.py`.\n- Local drawing, Pillow, SVG, HTML/CSS/canvas screenshots, python-pptx/PptxGenJS layouts, and manual overlays are failure modes, not fallbacks.\n- The selected image backend must stay fixed after backend confirmation. Do not let subagents switch backend for convenience.\n- After sample approval, record how the approved sample was generated and pass that exact method to every slide subagent.\n- Slide dispatch and result state must be recorded with the bundled scripts. Chat messages alone do not make a slide dispatched or complete.\n- If a required subagent, image backend, or required-image path is unavailable, stop and report a blocker with the slide id and evidence. Do not create a lower-quality replacement.\n\n## Visible Progress\n\nFor non-trivial decks, keep a user-visible checklist with one active step. Canonical completion evidence is in `docs/workflow-gates-and-progress.md`.\n\nDefault visible steps:\n\n1. Prepare source, outline, style, and backend decisions.\n2. Generate and approve one sample slide.\n3. Prepare slide jobs and slide state.\n4. Dispatch slide subagents.\n5. Record generated slide results.\n6. QA, repair, notes, and PPT assembly.\n\nDo not mark a step complete from chat alone; use real files or script-recorded state.\n\n## Default Workflow\n\n1. Understand the source content.\n   - Identify topic, audience, goal, page count, style/brand constraints, and sections to include or exclude.\n   - If no page count is specified, choose a practical count. Typical decks are 8-12 slides.\n\n2. Plan the deck outline.\n   - Before writing or updating `outline.md`, read `docs/workflow-gates-and-progress.md` and `docs/outline-style-and-sample.md`.\n   - Draft slide roles and required source images. Ask for confirmation, then stop before style, backend, sample, or downstream artifacts until approved.\n\n3. Confirm a unified visual style.\n   - Before offering style options or using files from `references/`, read `docs/outline-style-and-sample.md`.\n   - Offer 2-3 concrete style directions, recommend one, wait for confirmation, then keep one visual identity while varying layouts by page role.\n\n4. Confirm the image backend.\n   - Before generating any slide image, read `docs/backend-selection.md`.\n   - Check whether a built-in image tool is callable, state what you checked, name the backend, explain fallback status, and wait for confirmation.\n   - If CLI/API fallback is selected, read `docs/cli-api-fallback.md`. Read `docs/image-model-configuration.md` only after config errors or explicit API-setting requests.\n\n5. Generate one sample slide for approval.\n   - Before generating or approving the sample slide, read `docs/outline-style-and-sample.md`.\n   - Generate exactly one representative sample after outline, style, and backend are confirmed. Do not generate the full deck until approved.\n   - After approval, record `sample_generation_method` in `deck_spec.json` so jobs and subagents inherit the same path.\n\n6. Create the project directory.\n   - Before initializing folders or assembling files, read `docs/project-assembly-and-reporting.md`.\n   - If no destination is specified, use the current working directory or the source file directory.\n\n7. Prepare user-supplied assets.\n   - Before using paper figures, charts, screenshots, logos, or other required assets, read `docs/user-supplied-assets.md`.\n   - Treat required assets as strict inputs and confirm slide-to-asset mapping before generation.\n\n8. Generate all slide images.\n   - Before full-deck image generation, read `docs/slide-generation-and-subagents.md`.\n   - Create per-slide jobs with `scripts/prepare_slide_prompts.py` or saved `prompts/slide_XX.json` files.\n   - Every final image must come from the selected backend and be recorded with bundled state scripts.\n\n9. Dispatch slide subagents.\n   - Before dispatching or replacing slide workers, read `docs/slide-generation-and-subagents.md` and `prompts/slide-worker.md`.\n   - Use one subagent per remaining slide job whenever possible. If required subagents cannot be spawned, stop and report a blocker unless the user changes the workflow.\n\n10. Quality check and repair.\n    - Before QA or assembly, read `docs/project-assembly-and-reporting.md`.\n    - Inspect every slide before assembly: text, outline match, truncation, style, unwanted page numbers, overlaps, and required assets.\n    - Regenerate severe failures with a tighter prompt. Use backend editing for localized issues when available.\n    - For CLI/API fallback edit commands, read `docs/cli-api-fallback.md`. Replace the final slide only after validating the edited output.\n\n11. Write speaker notes and assemble the PPT.\n    - Before writing `speech.md` or running assembly, read `docs/project-assembly-and-reporting.md`.\n    - Make sure `outline.md` reflects the final confirmed deck outline. Use `speech.md` headings that map to `Slide N`.\n    - Before assembly, ensure `slide_jobs.json` shows generated slides as `recorded` and approved samples as `accepted`. If any slide is `pending`, `dispatched`, or `blocked`, stop.\n\n12. Report the result.\n    - Use the final report checklist in `docs/project-assembly-and-reporting.md`.\n    - Include paths, slide count, backend used, recorded-result status, and any limitations or blockers.\n\n13. Save reusable styles when requested.\n    - If asked to save the current deck style or a supplied image/PDF/PPT/PPTX style, read `docs/style-library.md`.\n\n## Subagent Dispatch\n\nSlide subagents are mandatory after sample approval whenever the runtime can spawn them. The main agent prepares jobs and records state; each worker handles exactly one `prompts/slide_XX.json` job and returns only selected image path, backend, and QA note.\n\nUse `docs/slide-generation-and-subagents.md` for dispatch, commands, result recording, blockers, and backend provenance. Use `prompts/slide-worker.md` as the handoff template.\n\nSubagents must not edit `outline.md`, `deck_spec.json`, other slide jobs, `origin_image/`, `speech.md`, or the final `.pptx`. The parent records outputs and assembles.\n\n## Acceptance Criteria\n\n- Output is a valid `.pptx`.\n- Each expected final slide image exists under `origin_image/slide_XX.png`.\n- Every final slide image was generated by the confirmed backend and recorded through `record_slide_result.py`, except an approved sample marked accepted by run state.\n- `outline.md` reflects the approved deck outline.\n- `speech.md` exists when speaker notes are expected, and assembly writes those notes into the PPT.\n- `slide_jobs.json` and `slide_run_state.json` reflect the final state.\n- Required source images are visibly represented, or a blocker is reported.\n- If blocked, the final response identifies phase, slide id, evidence path, and unfinished reason; do not call the deck complete.\n\n## Reference Map\n\n- `docs/workflow-gates-and-progress.md`: approval gates, progress, completion evidence.\n- `docs/backend-selection.md`: backend decision rules and confirmation text.\n- `docs/outline-style-and-sample.md`: outline, style, sample rules, prompt examples.\n- `docs/user-supplied-assets.md`: strict handling for required source assets.\n- `docs/slide-generation-and-subagents.md`: jobs, dispatch, result recording, blockers, provenance.\n- `docs/cli-api-fallback.md`: fallback runtime, generation/edit commands, image limits, troubleshooting.\n- `docs/image-model-configuration.md`: API key, base URL, model, `.env`; read only when config is needed.\n- `docs/project-assembly-and-reporting.md`: project directory, notes, assembly, final report, prompting principles.\n- `prompts/slide-worker.md`: slide subagent handoff template.\n- `references/*.md`: visual style references.\n\n## Documentation and Updates\n\nFor source, docs, install, config, and examples, see [ningzimu/codex-ppt-skill](https://github.com/ningzimu/codex-ppt-skill).\n\nFile v0.5.4:_meta.json\n\n{\n  \"ownerId\": \"kn70ybyb64yfkyyve79tvhh7vn82js5s\",\n  \"slug\": \"codex-ppt\",\n  \"version\": \"0.5.4\",\n  \"publishedAt\": 1783886617827\n}\n\nFile v0.5.4:references/党政红风格.md\n\n# 党政红风格\n\n**适用场景:**\n- 党政机关工作汇报、专题学习与会议材料\n- 政策宣讲、党建活动、年度总结与重点工作部署\n- 国企、事业单位和公共服务机构的正式汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"党政红风格\",\n  \"best_for\": \"党政机关、国企和事业单位的工作汇报、政策宣讲、党建学习、年度总结与重点工作部署\",\n  \"visual_direction\": \"solemn and dignified Chinese government-report presentation, confident Chinese-red and gold visual identity, strong title hierarchy, restrained ceremonial details, and clear policy communication\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"choose deep red, warm ivory, or a restrained combination according to page role and content density; where appropriate, use a low-contrast pale-gold landscape or Great Wall motif near the lower area as a subtle unifying background element that never competes with the content\",\n    \"composition\": \"formal, balanced, and strongly aligned composition with a prominent title area and disciplined content hierarchy\",\n    \"density\": \"medium information density with generous margins, clear reading order, and concise conclusions\"\n  },\n  \"color_palette\": {\n    \"primary\": \"Chinese red #C41E3A for main titles, structural emphasis, and key labels\",\n    \"secondary\": \"deep red #9E1530 for contrast and warm ivory #FFF9F2 for the main canvas\",\n    \"accent\": \"restrained matte gold #D6A84B and warm amber #E9A11B for icons, connectors, and small title ornaments\",\n    \"neutral\": \"ink black #262626, dark gray #4A4A4A, pale warm gray #F3EEE7\",\n    \"rule\": \"use Chinese red to establish authority and gold as a restrained accent. Balance red, warm ivory, and neutral space according to page role; avoid glitter, glossy gradients, and festive red-and-gold decoration\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Microsoft YaHei or Source Han Sans style Chinese sans-serif, visually strong, dignified, and immediately noticeable\",\n    \"body\": \"Microsoft YaHei or Source Han Sans style Chinese sans-serif, concise, highly readable, and aligned to a strict grid\",\n    \"labels\": \"bold white or dark-red text on restrained red or pale-gold blocks\",\n    \"text_quality\": \"all Chinese text must be exact, fully legible, non-garbled, and suitable for formal government reporting\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep the title hierarchy, typeface, weight, color logic, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"May use a more ceremonial and prominent title treatment suited to an opening page.\",\n    \"section_divider\": \"May use a concise title treatment with stronger whitespace and a clear section cue.\",\n    \"content_slide\": \"Prefer an optional restrained section-navigation cue, a prominent centered main title, and a small gold separator. Keep the hierarchy recognizable across content slides while adapting its exact form, scale, and spacing to the page content.\",\n    \"flexibility\": \"Treat this as a visual consistency guide, not a fixed template. Title position and decoration may adapt when the slide role or composition requires it.\"\n  },\n  \"layout_patterns\": [\n    \"ceremonial cover with a large prominent title and restrained red-and-gold visual framing\",\n    \"section divider with a concise statement, clear section cue, and generous negative space\",\n    \"policy overview with one core statement and three to five aligned content modules\",\n    \"key work deployment with clear priorities, concise explanations, and a strong bottom conclusion\",\n    \"timeline or process page using a restrained red-and-gold hierarchy\",\n    \"achievement summary with large key figures, restrained charts, and evidence-based captions\"\n  ],\n  \"layout_usage_rule\": \"Keep the red-and-gold identity consistent while varying covers, dividers, content grids, timelines, and data pages by purpose. Use light backgrounds for dense content instead of forcing every slide onto solid red.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"封面 / 章节页\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"large formal title\"]},\n        {\"position\": \"below title\", \"count\": 1, \"labels\": [\"subtitle or reporting unit and date\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"subtle ribbon, Great Wall, or abstract architectural horizon\"]}\n      ]\n    },\n    {\n      \"name\": \"重点工作部署\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"page title and one-sentence guiding statement\"]},\n        {\"position\": \"middle\", \"count\": 4, \"labels\": [\"重点一\", \"重点二\", \"重点三\", \"重点四\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"summary or action requirement\"]}\n      ]\n    },\n    {\n      \"name\": \"成果与数据\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"page title\"]},\n        {\"position\": \"upper middle\", \"count\": 3, \"labels\": [\"key figure 1\", \"key figure 2\", \"key figure 3\"]},\n        {\"position\": \"lower middle\", \"count\": 1, \"labels\": [\"restrained chart, comparison, or timeline\"]},\n        {\"position\": \"bottom\", \"count\": 1, \"labels\": [\"evidence-based conclusion\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"restrained red-and-gold geometric accents, formal information modules, timelines, process arrows, simple line icons, clean charts, subtle Chinese cultural or architectural motifs, and light decorative texture\",\n    \"avoid\": \"invented government or party logos, national emblems, seals, flags, hammer-and-sickle symbols, excessive ceremonial decoration, thick shadows, glossy 3D text, glitter, lanterns, fireworks, wedding motifs, Lunar New Year decoration, cartoon characters, and unrelated stock imagery\"\n  },\n  \"image_treatment\": {\n    \"photos\": \"use only relevant user-provided documentary or institutional photos; apply consistent red-toned framing rather than heavy color filters\",\n    \"screenshots\": \"place inside clean warm-white frames with short source labels and no ornamental clutter\",\n    \"charts\": \"use red as the primary series, gold for one key highlight, and neutral gray for comparison; keep labels direct and readable\",\n    \"illustrations\": \"prefer flat architectural silhouettes, abstract ribbons, restrained line art, or policy-related diagrams instead of decorative scenes\"\n  },\n  \"rendering_constraints\": [\n    \"The slide must look like a formal Chinese government or public-sector report, not a festival poster or commercial advertisement.\",\n    \"Use large, dignified Chinese sans-serif typography resembling Microsoft YaHei or Source Han Sans.\",\n    \"Follow a consistent title system across slides of the same page type, while allowing cover, section-divider, and content-slide variants.\",\n    \"Use Chinese red #C41E3A as the main red and gold as a restrained supporting accent.\",\n    \"Keep gold restrained and matte; do not use glossy metallic or embossed 3D text.\",\n    \"Use exact readable Chinese text and a clear top-to-bottom or left-to-right hierarchy.\",\n    \"Do not invent official marks, government logos, party emblems, national emblems, seals, flags, or institutional names.\",\n    \"No watermark and no unrelated logo.\"\n  ]\n}\n```\n\nFile v0.5.4:references/创意杂志风.md\n\n# 创意杂志风\n\n**适用场景:**\n- 创意提案\n- 品牌展示\n- 设计作品集\n- 文化活动\n- 时尚发布\n- 艺术展览\n- 创意工作室介绍\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"创意杂志风\",\n  \"best_for\": \"需要强视觉记忆点、品牌个性或传播感的分享型演示\",\n  \"visual_direction\": \"high-end editorial magazine spread, bold asymmetry, art-directed composition, graphic tension, premium creative layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white, black, or deep charcoal with intentional negative space\",\n    \"composition\": \"asymmetric editorial layout with a large headline, image/collage zone, and 2-3 supporting text blocks\",\n    \"density\": \"strong contrast between dense editorial blocks and open whitespace\"\n  },\n  \"color_palette\": {\n    \"base\": \"black, white, and gray\",\n    \"accent\": \"one vivid accent such as neon pink #FF006E, lemon yellow #FFED00, or electric cyan #00F5FF\",\n    \"support\": \"optional lavender, coral, or muted fashion tones\",\n    \"rule\": \"use one dominant accent color consistently; do not make the palette chaotic\"\n  },\n  \"typography\": {\n    \"title\": \"oversized bold display sans-serif or editorial serif, can occupy 25-45% of the slide\",\n    \"body\": \"small clean sans-serif blocks with strong alignment\",\n    \"emphasis\": \"keywords may use accent color, rotated labels, vertical text, or extreme scale contrast\",\n    \"text_quality\": \"Chinese headline and key points must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"oversized headline on one side with collage or abstract image block on the other\",\n    \"diagonal color block cutting across the slide\",\n    \"magazine cover style with title, subtitle, and three feature teasers\",\n    \"editorial grid with one large image crop and small annotation labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"editorial hero spread\",\n      \"sections\": [\n        {\"position\": \"left 45%\", \"count\": 1, \"labels\": [\"oversized headline\"]},\n        {\"position\": \"right 55%\", \"count\": 1, \"labels\": [\"collage or abstract image zone\"]},\n        {\"position\": \"bottom-left\", \"count\": 3, \"labels\": [\"feature teaser 1\", \"feature teaser 2\", \"feature teaser 3\"]}\n      ]\n    },\n    {\n      \"name\": \"cover story grid\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"large cover title\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"main visual block\", \"accent typography block\"]},\n        {\"position\": \"right edge\", \"count\": 3, \"labels\": [\"short editorial callouts\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"bold geometric blocks, cropped photography zones, halftone texture, thin rules, torn-paper collage edges, accent stickers, abstract shapes\",\n    \"avoid\": \"generic corporate icons, overly symmetrical layout, low-contrast text, too many accent colors\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel designed, not templated.\",\n    \"Maintain legibility despite bold composition.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.4:references/复古扁平插画风.md\n\n# 复古扁平插画风\n\n**适用场景:**\n- 文化创意项目展示\n- 品牌故事讲述\n- 旅游景点介绍\n- 复古产品发布\n- 艺术设计作品集\n- 创意活动宣传\n- 生活方式类演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"复古扁平插画风\",\n  \"best_for\": \"文化创意、品牌故事、生活方式、城市旅游和带叙事感的主题演示\",\n  \"visual_direction\": \"retro flat vector illustration slide, cream paper texture, monoline black outlines, vintage palette, playful handcrafted design\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"cream/off-white paper #F5F3E8 with subtle grain\",\n    \"composition\": \"panoramic illustration band plus structured content cards or labels\",\n    \"density\": \"moderate, decorative but still clear\"\n  },\n  \"color_palette\": {\n    \"base\": \"cream background and dark slate text #34495E\",\n    \"vintage_colors\": \"coral red #FF6B6B, mint green #95E1D3, mustard yellow #F9CA24, burnt orange #E17055, slate blue #6C7A89\",\n    \"line\": \"uniform black or deep charcoal outline\",\n    \"rule\": \"flat fills only, no glossy 3D, no heavy gradients\"\n  },\n  \"typography\": {\n    \"title\": \"bold retro serif or chunky vintage display type\",\n    \"body\": \"geometric sans-serif, clear and friendly\",\n    \"labels\": \"small badge labels with outlined shapes\",\n    \"text_quality\": \"Chinese text must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"top panoramic flat illustration with bottom content cards\",\n    \"central retro title with three outlined icon cards\",\n    \"2.5D simplified scene with callout labels\",\n    \"vintage poster composition adapted to presentation readability\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"panoramic illustration plus cards\",\n      \"sections\": [\n        {\"position\": \"top third\", \"count\": 1, \"labels\": [\"panoramic flat vector illustration\"]},\n        {\"position\": \"middle\", \"count\": 1, \"labels\": [\"large retro title\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"outlined content card 1\", \"outlined content card 2\", \"outlined content card 3\"]}\n      ]\n    },\n    {\n      \"name\": \"retro poster diagram\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main simplified scene or object\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"callout label\", \"badge\", \"mini icon\", \"decorative note\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"summary plaque\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"flat vector scenes, 2-3px monoline outlines, simplified buildings, plants, clouds, badges, dotted textures, small geometric decorations\",\n    \"avoid\": \"photorealism, complex shadows, neon palette, overly detailed linework, unreadable decorative type\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a polished retro illustration system, not a random cartoon.\",\n    \"Maintain consistent outline weight across objects.\",\n    \"No watermark, no unrelated logo, no slide number unless explicitly requested.\"\n  ]\n}\n```\n\nFile v0.5.4:references/手绘技术解释风.md\n\n# 手绘技术解释风\n\n**适用场景:**\n- 中文技术文章配图\n- 技术概念解释\n- 课程课件\n- 知识卡片\n- 产品机制说明\n- AI / 软件工程主题分享\n- 需要降低理解门槛的复杂概念\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘技术解释风\",\n  \"best_for\": \"中文技术文章、课程课件、复杂概念解释、知识卡片和软件工程/AI 主题的低压力说明图\",\n  \"visual_direction\": \"clean Chinese handdrawn technical explainer, near-white paper background, thin sketch l\n\nArchive v0.5.3: 39 files, 98248 bytes\n\nFiles: docs/backend-selection.md (3449b), docs/cli-api-fallback.md (4606b), docs/image-model-configuration.md (3347b), docs/outline-style-and-sample.md (8634b), docs/project-assembly-and-reporting.md (7878b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (5745b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8660b), scripts/image_gen.py (34434b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.py (887b), scripts/image_providers/factory.py (734b), scripts/image_providers/openai_compatible.py (7448b), scripts/prepare_slide_prompts.py (20270b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (3245b), SKILL.md (10001b), _meta.json (128b)\n\nArchive v0.5.2: 39 files, 98316 bytes\n\nFiles: docs/backend-selection.md (3449b), docs/cli-api-fallback.md (4606b), docs/image-model-configuration.md (3347b), docs/outline-style-and-sample.md (8634b), docs/project-assembly-and-reporting.md (8909b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (5745b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8660b), scripts/image_gen.py (34434b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.py (887b), scripts/image_providers/factory.py (734b), scripts/image_providers/openai_compatible.py (7448b), scripts/prepare_slide_prompts.py (20270b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (2515b), SKILL.md (10001b), _meta.json (128b)\n\nArchive v0.5.1: 40 files, 104788 bytes\n\nFiles: docs/backend-selection.md (3160b), docs/cli-api-fallback.md (5094b), docs/image-model-configuration.md (4305b), docs/outline-style-and-sample.md (9915b), docs/project-assembly-and-reporting.md (8927b), docs/slide-generation-and-subagents.md (15564b), docs/style-library.md (5745b), docs/user-supplied-assets.md (2854b), docs/workflow-gates-and-progress.md (2862b), prompts/slide-worker.md (3495b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (9703b), scripts/image_gen.py (36822b), scripts/image_providers/__init__.py (264b), scripts/image_providers/atlascloud.py (7311b), scripts/image_providers/base.py (4917b), scripts/image_providers/codex_oauth.py (7559b), scripts/image_providers/factory.py (2245b), scripts/image_providers/openai_compatible.py (6625b), scripts/prepare_slide_prompts.py (22661b), scripts/record_slide_blocker.py (1422b), scripts/record_slide_dispatch.py (2309b), scripts/record_slide_result.py (6779b), scripts/remove_chroma_key.py (14123b), scripts/slide_job_status.py (2364b), scripts/slide_run_state.py (6536b), skill-card.md (2414b), SKILL.md (11188b), _meta.json (128b)\n\nArchive v0.5.0: 39 files, 98340 bytes\n\nFiles: docs/backend-selection.md (3449b), docs/cli-api-fallback.md (4606b), docs/image-model-configuration.md (3347b), docs/outline-style-and-sample.md (8634b), docs/project-assembly-and-reporting.md (8909b), docs/slide-generation-and-subagents.md (14823b), docs/style-library.md (5745b), docs/user-supplied-assets.md (3120b), docs/workflow-gates-and-progress.md (2581b), prompts/slide-worker.md (2649b), references/创意杂志风.md (3396b), references/复古扁平插画风.md (3339b), references/手绘技术解释风.md (4767b), references/手绘白板风.md (3337b), references/数据仪表盘风.md (3527b), references/清爽专业风.md (4512b), references/温暖手工风.md (3332b), references/电子墨水杂志风.md (4714b), references/科研答辩风.md (9334b), references/麦肯锡风格.md (15195b), requirements.txt (65b), scripts/assemble_ppt.py (14837b), scripts/codex_ppt_runtime.py (8660b), scripts/image_gen.py (34434b), scripts/image_providers/__init__.py (188b), scripts/image_providers/atlascloud.py (8310b), scripts/image_providers/base.p...","readmeExcerpt":"Skill: Codex PPT Owner: ningzimu Summary: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Tags: latest:0.6.0 Version history: v0.6.0 | 2026-09-12T04:55:00.733Z | user Improvements - Default image requests to GPT Image 2.5 Flare, support Sunburst, xhigh/max quality and transparent PNG/WebP, and retain legacy model validation. (#101) - Refresh image backend guida","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"党政红风格\",\n  \"best_for\": \"党政机关、国企和事业单位的工作汇报、政策宣讲、党建学习、年度总结与重点工作部署\",\n  \"visual_direction\": \"solemn, authoritative, and optimistic Chinese public-sector presentation with a recognizable Chinese-red identity, restrained gold accents, strong Chinese typography, and a visual expression shaped by the subject rather than a fixed ceremonial layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"choose red, warm ivory, a restrained gradient, a relevant photograph, or a subtle abstract treatment according to the page role and subject; any landscape, architecture, ribbon, skyline, or cultural motif is optional and must serve the content rather than become a default background\",\n    \"composition\": \"formal and balanced with a prominent title hierarchy and disciplined alignment; allow centered, asymmetric, image-led, modular, or spacious compositions when they better express the content\",\n    \"density\": \"medium information density with controlled whitespace, clear reading order, and enough supporting text or evidence to make each page useful\"\n  },\n  \"color_palette\": {\n    \"primary\": \"Chinese red #C41E3A for main titles, structural emphasis, and key labels\",\n    \"secondary\": \"deep red #9E1530 for contrast and warm ivory #FFF9F2 for the main canvas\",\n    \"accent\": \"restrained matte gold #D6A84B and warm amber #E9A11B for icons, connectors, and small title ornaments\",\n    \"neutral\": \"ink black #262626, dark gray #4A4A4A, pale warm gray #F3EEE7\",\n    \"rule\": \"use Chinese red to establish authority and gold as a restrained accent. Balance red, warm ivory, and neutral space according to page role; avoid glitter, glossy gradients, and festive red-and-gold decoration\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Microsoft YaHei or Source Han Sans style Chinese sans-serif, visually strong, dignified, and immediately noticeable\",\n    \"body\": \"Microsoft YaHei or Source Han Sans style Chinese sans-serif, concise,"},{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"创意杂志风\",\n  \"best_for\": \"需要强视觉记忆点、品牌个性或传播感的分享型演示\",\n  \"visual_direction\": \"high-end editorial magazine spread, bold asymmetry, art-directed composition, graphic tension, premium creative layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white, black, or deep charcoal with intentional negative space\",\n    \"composition\": \"asymmetric editorial layout with a large headline, image/collage zone, and 2-3 supporting text blocks\",\n    \"density\": \"strong contrast between dense editorial blocks and open whitespace\"\n  },\n  \"color_palette\": {\n    \"base\": \"black, white, and gray\",\n    \"accent\": \"one vivid accent such as neon pink #FF006E, lemon yellow #FFED00, or electric cyan #00F5FF\",\n    \"support\": \"optional lavender, coral, or muted fashion tones\",\n    \"rule\": \"use one dominant accent color consistently; do not make the palette chaotic\"\n  },\n  \"typography\": {\n    \"title\": \"oversized bold display sans-serif or editorial serif, can occupy 25-45% of the slide\",\n    \"body\": \"small clean sans-serif blocks with strong alignment\",\n    \"emphasis\": \"keywords may use accent color, rotated labels, vertical text, or extreme scale contrast\",\n    \"text_quality\": \"Chinese headline and key points must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"oversized headline on one side with collage or abstract image block on the other\",\n    \"diagonal color block cutting across the slide\",\n    \"magazine cover style with title, subtitle, and three feature teasers\",\n    \"editorial grid with one large image crop and small annotation labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"editorial hero spread\",\n      \"sections\": [\n        {\"position\": \"left 45"},{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"复古扁平插画风\",\n  \"best_for\": \"文化创意、品牌故事、生活方式、城市旅游和带叙事感的主题演示\",\n  \"visual_direction\": \"retro flat vector illustration slide, cream paper texture, monoline black outlines, vintage palette, playful handcrafted design\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"cream/off-white paper #F5F3E8 with subtle grain\",\n    \"composition\": \"panoramic illustration band plus structured content cards or labels\",\n    \"density\": \"moderate, decorative but still clear\"\n  },\n  \"color_palette\": {\n    \"base\": \"cream background and dark slate text #34495E\",\n    \"vintage_colors\": \"coral red #FF6B6B, mint green #95E1D3, mustard yellow #F9CA24, burnt orange #E17055, slate blue #6C7A89\",\n    \"line\": \"uniform black or deep charcoal outline\",\n    \"rule\": \"flat fills only, no glossy 3D, no heavy gradients\"\n  },\n  \"typography\": {\n    \"title\": \"bold retro serif or chunky vintage display type\",\n    \"body\": \"geometric sans-serif, clear and friendly\",\n    \"labels\": \"small badge labels with outlined shapes\",\n    \"text_quality\": \"Chinese text must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"top panoramic flat illustration with bottom content cards\",\n    \"central retro title with three outlined icon cards\",\n    \"2.5D simplified scene with callout labels\",\n    \"vintage poster composition adapted to presentation readability\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"panoramic illustration plus cards\",\n      \"sections\": [\n        {\"position\": \"top third\", \"count\": 1, \"labels\": [\"panoramic flat vector illustration\"]},\n        {\"position\": \"middle\", \"count\": 1, \"labels\": [\"large retro title\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"outlined conte"},{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘技术解释风\",\n  \"best_for\": \"中文技术文章、课程课件、复杂概念解释、知识卡片和软件工程/AI 主题的低压力说明图\",\n  \"visual_direction\": \"clean Chinese handdrawn technical explainer, near-white paper background, thin sketch lines, light pencil hatching, small precise central diagram, restrained pastel markers, lots of whitespace, calm educational tone\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"near-white paper #FCFBF7, not yellow, no full-page border\",\n    \"composition\": \"small central explanatory diagram with sparse labels, surrounding whitespace, short title and minimal visible text\",\n    \"density\": \"low to moderate; one core idea per slide; avoid dense whiteboard clutter\"\n  },\n  \"color_palette\": {\n    \"line\": \"soft graphite #2F3437 or dark gray ink, thin and slightly irregular\",\n    \"accent\": \"pale blue #BFD7F1, sage green #CFE2D1, light peach #F4C7B8, pale lavender #D8C7EF\",\n    \"background\": \"near-white, clean, not kraft, not cream-heavy\",\n    \"rule\": \"pastel marks are used for emphasis only; keep the page calm and airy\"\n  },\n  \"typography\": {\n    \"title\": \"restrained handwritten Chinese title, medium-large but not poster-sized\",\n    \"body\": \"short handwritten Chinese labels, few words per label, easy to inspect\",\n    \"emphasis\": \"light underline, small bracket, soft marker highlight, or tiny note tag\",\n    \"text_quality\": \"Chinese text must be exact, sparse, and readable; avoid long paragraphs\"\n  },\n  \"layout_patterns\": [\n    \"central concept diagram with 3-4 short surrounding labels\",\n    \"before-after explanation with two small sketch panels\",\n    \"flow diagram with 3 steps and minimal arrows\",\n    \"mental model page with one metaphor object and short annotations\",\n    \"matrix or decision guide with sparse handwritten notes\",\n    \"summary page with one small character or object and three takeaway labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the compositio"},{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"手绘白板风\",\n  \"best_for\": \"概念解释、技术分享、培训课程和需要亲和力的思路拆解\",\n  \"visual_direction\": \"realistic whiteboard explanation slide, marker handwriting, sketched diagrams, friendly teaching atmosphere, authentic whiteboard details\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"warm off-white whiteboard surface #FAFAF5 with subtle marker smudges\",\n    \"composition\": \"freeform but organized whiteboard layout with title, three concept blocks, arrows, and small doodle illustrations\",\n    \"density\": \"moderate, readable, brainstorming feel without chaos\"\n  },\n  \"color_palette\": {\n    \"primary\": \"black marker for main text\",\n    \"accent\": \"red #E74C3C, blue #3498DB, orange #F39C12 marker annotations\",\n    \"support\": \"green #27AE60, purple #9B59B6, yellow sticky note #FFF9C4\",\n    \"rule\": \"colors should look like real marker ink, not digital neon\"\n  },\n  \"typography\": {\n    \"title\": \"large neat handwritten Chinese marker style\",\n    \"body\": \"clear handwritten marker text, slightly irregular but readable\",\n    \"emphasis\": \"circle, underline, boxed words, sticky-note comments\",\n    \"text_quality\": \"Chinese handwriting must remain accurate and legible\"\n  },\n  \"layout_patterns\": [\n    \"three hand-drawn boxes connected by arrows\",\n    \"central concept bubble with surrounding notes\",\n    \"simple process diagram with sketches and annotations\",\n    \"left explanation list plus right hand-drawn diagram\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"whiteboard process diagram\",\n      \"sections\": [\n        {\"position\": \"top-left\", \"count\": 1, \"labels\": [\"handwritten title\"]},\n        {\"position\": \"center\", \"count\": 3, \"labels\": [\"step 1 box\", \"step 2 box\", \"step 3 box\""},{"language":"json","snippet":"{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"教学课件风\",\n  \"best_for\": \"高校课程、专题讲座、技术培训、知识科普、概念讲解、体系梳理、案例分析和研究进展介绍\",\n  \"visual_direction\": \"clear and credible academic courseware with structured knowledge communication, evidence-supported explanation, discipline-appropriate visuals, and a professional classroom tone shaped by the lesson rather than a fixed technical template\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white or very light cool gray with restrained pale-blue structural accents\",\n    \"composition\": \"structured teaching slide with a clear title hierarchy and a content-driven combination of text, images, diagrams, charts, formulas, source material, annotations, or comparisons selected according to the lesson objective\",\n    \"density\": \"balanced teaching density: substantial enough to support explanation, but never sparse, paragraph-heavy, or crowded; use strong grouping, alignment, and readable whitespace\"\n  },\n  \"color_palette\": {\n    \"primary\": \"deep academic navy #0B2E6D and clear blue #1769AA\",\n    \"secondary\": \"light blue #EAF3FB and cool gray #F3F6F9\",\n    \"accent\": \"choose a small set of restrained auxiliary colors according to the subject matter, source material, and semantic categories\",\n    \"neutral\": \"ink black #1F2937, body gray #4B5563, border gray #D7E0EA\",\n    \"rule\": \"use the blue system to establish the teaching structure; select auxiliary colors only when the content needs semantic distinction, then apply them consistently rather than decoratively\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Chinese sans-serif resembling Microsoft YaHei or Source Han Sans, usually dark navy, concise and immediately readable\",\n    \"body\": \"compact but readable Chinese sans-serif with clear indentation and short explanatory phrases\",\n    \"labels\": \"bold short labels with strong contrast, used when hierarchy or semantic categories need clarification rather than as mandatory card decoration\",\n    \"text_quality\": \"all Ch"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: codex-ppt\ndescription: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines.\nversion: 0.6.0\nmetadata:\n  openclaw:\n    requires:\n      bins:\n        - python3\n    primaryEnv: OPENAI_API_KEY\n    envVars:\n      - name: OPENAI_API_KEY\n        required: false\n        description: API key for CLI fallback.\n      - name: OPENAI_BASE_URL\n        required: false\n        description: API base URL.\n      - name: CODEX_PPT_IMAGE_MODEL\n        required: false\n        description: Image model, defaults to gpt-image-2.5-flare.\n      - name: CODEX_PPT_HOME\n        required: false\n        description: Runtime home override.\n    homepage: https://github.com/ningzimu/codex-ppt-skill\n---\n\n# Codex PPT\n\n## Overview\n\nThis skill creates image-based PowerPoint decks from source material. Each slide is a complete 16:9 generated image. Final images are assembled into `.pptx` with `scripts/assemble_ppt.py`.\n\nUse this when the user wants a visually unified presentation and accepts full-slide image pages. Do not use it when every textbox, chart, or shape must remain separately editable.\n\nPrefer the built-in image generation/editing tool. Use `scripts/image_gen.py` only when the built-in backend is unavailable, lacks a required capability, or the user explicitly asks for API/CLI mode.\n\n## Hard Constraints\n\n- Read the relevant `Reference Map` files before each phase. This file is the orchestration contract; detailed rules live in `docs/` and worker prompts in `prompts/`.\n- Respect approval gates. Do not create final `deck_spec.json`, `speech.md`, prompt jobs, slide images, or `.pptx` before the approvals in `docs/workflow-gates-and-progress.md`.\n- After the user approves the sample slide and authorizes full-deck generation, every remaining slide image job must be dispatched to a slide subagent whenever subagents are available.\n- The main agent owns orchestration, prompt jobs, state recording, QA, speaker notes, and assembly. Do not silently replace available slide subagents with sequential production.\n- Every final `origin_image/slide_XX.png` must be generated by the selected image backend: built-in image generation/editing tool or `scripts/image_gen.py`.\n- Local drawing, Pillow, SVG, HTML/CSS/canvas screenshots, python-pptx/PptxGenJS layouts, and manual overlays are failure modes, not fallbacks.\n- The selected image backend must stay fixed after backend confirmation. Do not let subagents switch backend for convenience.\n- After sample approval, record how the approved sample was generated and pass that exact method to every slide subagent.\n- Slide dispatch and result state must be recorded with the bundled scripts. Chat messages alone do not make a slide dispatched or complete.\n- If a required subagent, image backend, or required-image path is unavailable, stop and report a blocker with the slide id and evidence. Do not create a lower-quality replacement.\n\n## Visible Progress\n\nFor non-trivial decks, keep a user-visibl"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70ybyb64yfkyyve79tvhh7vn82js5s\",\n  \"slug\": \"codex-ppt\",\n  \"version\": \"0.6.0\",\n  \"publishedAt\": 1789188900733\n}"},{"path":"references/党政红风格.md","content":"# 党政红风格\n\n**适用场景:**\n- 党政机关工作汇报、专题学习与会议材料\n- 政策宣讲、党建活动、年度总结与重点工作部署\n- 国企、事业单位和公共服务机构的正式汇报\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"党政红风格\",\n  \"best_for\": \"党政机关、国企和事业单位的工作汇报、政策宣讲、党建学习、年度总结与重点工作部署\",\n  \"visual_direction\": \"solemn, authoritative, and optimistic Chinese public-sector presentation with a recognizable Chinese-red identity, restrained gold accents, strong Chinese typography, and a visual expression shaped by the subject rather than a fixed ceremonial layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"choose red, warm ivory, a restrained gradient, a relevant photograph, or a subtle abstract treatment according to the page role and subject; any landscape, architecture, ribbon, skyline, or cultural motif is optional and must serve the content rather than become a default background\",\n    \"composition\": \"formal and balanced with a prominent title hierarchy and disciplined alignment; allow centered, asymmetric, image-led, modular, or spacious compositions when they better express the content\",\n    \"density\": \"medium information density with controlled whitespace, clear reading order, and enough supporting text or evidence to make each page useful\"\n  },\n  \"color_palette\": {\n    \"primary\": \"Chinese red #C41E3A for main titles, structural emphasis, and key labels\",\n    \"secondary\": \"deep red #9E1530 for contrast and warm ivory #FFF9F2 for the main canvas\",\n    \"accent\": \"restrained matte gold #D6A84B and warm amber #E9A11B for icons, connectors, and small title ornaments\",\n    \"neutral\": \"ink black #262626, dark gray #4A4A4A, pale warm gray #F3EEE7\",\n    \"rule\": \"use Chinese red to establish authority and gold as a restrained accent. Balance red, warm ivory, and neutral space according to page role; avoid glitter, glossy gradients, and festive red-and-gold decoration\"\n  },\n  \"typography\": {\n    \"title\": \"large bold Microsoft YaHei or Source Han Sans style Chinese sans-serif, visually strong, dignified, and immediately noticeable\",\n    \"body\": \"Microsoft YaHei or Source Han Sans style Chinese sans-serif, concise, highly readable, and aligned to a strict grid\",\n    \"labels\": \"bold white or dark-red text on restrained red or pale-gold blocks\",\n    \"text_quality\": \"all Chinese text must be exact, fully legible, non-garbled, and suitable for formal government reporting\"\n  },\n  \"title_system\": {\n    \"consistency_rule\": \"Keep the title hierarchy, typeface, weight, color logic, and spacing consistent across slides of the same page type.\",\n    \"cover\": \"Use a prominent, dignified title treatment that may be centered, offset, or integrated with a relevant visual according to the composition.\",\n    \"section_divider\": \"Use a concise title and a clear transition in scale, color, whitespace, or imagery without requiring a fixed navigation bar or ornament.\",\n    \"content_slide\": \"Keep the page topic immediately recognizable, but align the title with the composition and information structu"},{"path":"references/创意杂志风.md","content":"# 创意杂志风\n\n**适用场景:**\n- 创意提案\n- 品牌展示\n- 设计作品集\n- 文化活动\n- 时尚发布\n- 艺术展览\n- 创意工作室介绍\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"创意杂志风\",\n  \"best_for\": \"需要强视觉记忆点、品牌个性或传播感的分享型演示\",\n  \"visual_direction\": \"high-end editorial magazine spread, bold asymmetry, art-directed composition, graphic tension, premium creative layout\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"white, black, or deep charcoal with intentional negative space\",\n    \"composition\": \"asymmetric editorial layout with a large headline, image/collage zone, and 2-3 supporting text blocks\",\n    \"density\": \"strong contrast between dense editorial blocks and open whitespace\"\n  },\n  \"color_palette\": {\n    \"base\": \"black, white, and gray\",\n    \"accent\": \"one vivid accent such as neon pink #FF006E, lemon yellow #FFED00, or electric cyan #00F5FF\",\n    \"support\": \"optional lavender, coral, or muted fashion tones\",\n    \"rule\": \"use one dominant accent color consistently; do not make the palette chaotic\"\n  },\n  \"typography\": {\n    \"title\": \"oversized bold display sans-serif or editorial serif, can occupy 25-45% of the slide\",\n    \"body\": \"small clean sans-serif blocks with strong alignment\",\n    \"emphasis\": \"keywords may use accent color, rotated labels, vertical text, or extreme scale contrast\",\n    \"text_quality\": \"Chinese headline and key points must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"oversized headline on one side with collage or abstract image block on the other\",\n    \"diagonal color block cutting across the slide\",\n    \"magazine cover style with title, subtitle, and three feature teasers\",\n    \"editorial grid with one large image crop and small annotation labels\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"editorial hero spread\",\n      \"sections\": [\n        {\"position\": \"left 45%\", \"count\": 1, \"labels\": [\"oversized headline\"]},\n        {\"position\": \"right 55%\", \"count\": 1, \"labels\": [\"collage or abstract image zone\"]},\n        {\"position\": \"bottom-left\", \"count\": 3, \"labels\": [\"feature teaser 1\", \"feature teaser 2\", \"feature teaser 3\"]}\n      ]\n    },\n    {\n      \"name\": \"cover story grid\",\n      \"sections\": [\n        {\"position\": \"top\", \"count\": 1, \"labels\": [\"large cover title\"]},\n        {\"position\": \"center\", \"count\": 2, \"labels\": [\"main visual block\", \"accent typography block\"]},\n        {\"position\": \"right edge\", \"count\": 3, \"labels\": [\"short editorial callouts\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"bold geometric blocks, cropped photography zones, halftone texture, thin rules, torn-paper collage edges, accent stickers, abstract shapes\",\n    \"avoid\": \"generic corporate icons, overly symmetrical layout, low-contrast text, too m"},{"path":"references/复古扁平插画风.md","content":"# 复古扁平插画风\n\n**适用场景:**\n- 文化创意项目展示\n- 品牌故事讲述\n- 旅游景点介绍\n- 复古产品发布\n- 艺术设计作品集\n- 创意活动宣传\n- 生活方式类演示\n\n**GPT-Image-2 风格 Brief:**\n```json\n{\n  \"type\": \"16:9 full-slide PowerPoint image\",\n  \"style_name\": \"复古扁平插画风\",\n  \"best_for\": \"文化创意、品牌故事、生活方式、城市旅游和带叙事感的主题演示\",\n  \"visual_direction\": \"retro flat vector illustration slide, cream paper texture, monoline black outlines, vintage palette, playful handcrafted design\",\n  \"canvas\": {\n    \"aspect_ratio\": \"16:9\",\n    \"background\": \"cream/off-white paper #F5F3E8 with subtle grain\",\n    \"composition\": \"panoramic illustration band plus structured content cards or labels\",\n    \"density\": \"moderate, decorative but still clear\"\n  },\n  \"color_palette\": {\n    \"base\": \"cream background and dark slate text #34495E\",\n    \"vintage_colors\": \"coral red #FF6B6B, mint green #95E1D3, mustard yellow #F9CA24, burnt orange #E17055, slate blue #6C7A89\",\n    \"line\": \"uniform black or deep charcoal outline\",\n    \"rule\": \"flat fills only, no glossy 3D, no heavy gradients\"\n  },\n  \"typography\": {\n    \"title\": \"bold retro serif or chunky vintage display type\",\n    \"body\": \"geometric sans-serif, clear and friendly\",\n    \"labels\": \"small badge labels with outlined shapes\",\n    \"text_quality\": \"Chinese text must be exact and readable\"\n  },\n  \"layout_patterns\": [\n    \"top panoramic flat illustration with bottom content cards\",\n    \"central retro title with three outlined icon cards\",\n    \"2.5D simplified scene with callout labels\",\n    \"vintage poster composition adapted to presentation readability\"\n  ],\n  \"layout_usage_rule\": \"Use layout_blueprints as candidate starting points only. Choose and adapt the composition according to each slide's semantic role; avoid repeating the same blueprint on adjacent slides unless it is a deliberate repeated sequence.\",\n  \"layout_blueprints\": [\n    {\n      \"name\": \"panoramic illustration plus cards\",\n      \"sections\": [\n        {\"position\": \"top third\", \"count\": 1, \"labels\": [\"panoramic flat vector illustration\"]},\n        {\"position\": \"middle\", \"count\": 1, \"labels\": [\"large retro title\"]},\n        {\"position\": \"bottom\", \"count\": 3, \"labels\": [\"outlined content card 1\", \"outlined content card 2\", \"outlined content card 3\"]}\n      ]\n    },\n    {\n      \"name\": \"retro poster diagram\",\n      \"sections\": [\n        {\"position\": \"center\", \"count\": 1, \"labels\": [\"main simplified scene or object\"]},\n        {\"position\": \"around center\", \"count\": 4, \"labels\": [\"callout label\", \"badge\", \"mini icon\", \"decorative note\"]},\n        {\"position\": \"bottom-right\", \"count\": 1, \"labels\": [\"summary plaque\"]}\n      ]\n    }\n  ],\n  \"visual_elements\": {\n    \"allowed\": \"flat vector scenes, 2-3px monoline outlines, simplified buildings, plants, clouds, badges, dotted textures, small geometric decorations\",\n    \"avoid\": \"photorealism, complex shadows, neon palette, overly detailed linework, unreadable decorative type\"\n  },\n  \"rendering_constraints\": [\n    \"The slide should feel like a polished retro illustration system, not a random cartoon.\",\n   "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Skill: Codex PPT Owner: ningzimu Summary: Generate visually unified image-based PPT/PPTX decks from articles, reports, papers, notes, or outlines. Tags: latest:0.6.0 Version history: v0.6.0 | 2026-09-12T04:55:00.733Z | user Improvements - Default image requests to GPT Image 2.5 Flare, support Sunburst, xhigh/max quality and transparent PNG/WebP, and retain legacy model validation. (#101) - Refresh image backend guida","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1957,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T09:59:15.547Z","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-09T09:59:15.547Z","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-09T18:49:04.066Z","emptyReason":null},"items":[{"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":"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-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","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"}]}}}