{"id":"be189492-69c6-44d2-9773-58fd3b79d245","entityType":"agent","slug":"clawhub-jimliu-baoyu-slide-deck","name":"Baoyu Slide Deck","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jimliu-baoyu-slide-deck","canonicalPath":"/agent/clawhub-jimliu-baoyu-slide-deck","generatedAt":"2026-10-09T20:38:57.347Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T05:14:07.079Z","emptyReason":null},"description":"Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t... Skill: Baoyu Slide Deck Owner: jimliu Summary: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t... Tags: latest:1.117.4 Version history: v1.117.4 | 2026-06-13T04:59:10.597Z | auto - Added native support for Codex image generation via codex CLI fallback (codex-imagegen) when Codex imagegen skill is unavailable.","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 4.5K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17dfbhg0khk4fvtnx0stqg0yx83j25z:baoyu-slide-deck","sourceUrl":"https://clawhub.ai/jimliu/baoyu-slide-deck","homepage":"https://clawhub.ai/jimliu/skills/baoyu-slide-deck","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jimliu/baoyu-slide-deck","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/jimliu/skills/baoyu-slide-deck","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T05:14:07.079Z","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-09T05:14:07.079Z","emptyReason":null},"stars":null,"forks":null,"downloads":4546,"packageName":null,"latestVersion":"1.117.4","tractionLabel":"4.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T05:14:07.078Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T05:14:07.079Z","lastCrawledAt":"2026-10-09T05:14:07.078Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T05:14:07.079Z","lastVerifiedAt":null,"highlights":[{"version":"1.117.4","createdAt":"2026-06-13T04:59:10.597Z","changelog":"- Added native support for Codex image generation via codex CLI fallback (codex-imagegen) when Codex `imagegen` skill is unavailable. - Added native support for Cursor's `GenerateImage` tool, with caveats around aspect ratio handling and output location. - Updated image backend selection logic and documentation to reflect new runtime detection and invocation procedure. - Added references/codex-imagegen.md with implementation notes for Codex CLI integration. - Removed obsolete skill-card.md.","fileCount":37,"zipByteSize":65912},{"version":"1.117.3","createdAt":"2026-05-24T23:38:43.209Z","changelog":"v2.0.0: rename baoyu-imagine→baoyu-image-gen and baoyu-image-cards→baoyu-xhs-images; cross-skill image-backend examples updated","fileCount":36,"zipByteSize":63321},{"version":"1.117.2","createdAt":"2026-05-18T02:16:12.921Z","changelog":"## 1.117.2 - 2026-05-17 ### Documentation - `baoyu-cover-image`: ban programmatic text repair on generated bitmaps — disallow ImageMagick / Pillow / Canvas / SVG / HTML overlays to cover, rewrite, or replace title/subtitle text; regenerate from a corrected prompt or switch to a lower-text or no-title variant instead - `baoyu-article-illustrator`, `baoyu-comic`, `baoyu-image-cards`, `baoyu-xhs-images`, `baoyu-infographic`, `baoyu-slide-deck`: sync the same text-repair ban with skill-specific text categories (labels/captions, dialogue/sound effects, titles/body/tags, headings/data values, slide titles/bullets)","fileCount":35,"zipByteSize":62006},{"version":"1.117.0","createdAt":"2026-05-16T05:53:11.878Z","changelog":"## 1.117.0 - 2026-05-16 ### Features - `baoyu-article-illustrator`: add batch generation policy — backend native batch first, runtime parallel calls second, sequential fallback; configurable `generation_batch_size` and `--batch-size` option - `baoyu-comic`: add batch generation policy with dependency-aware ordering (character sheet before pages) and configurable `--batch-size` - `baoyu-image-cards`: add batch generation policy honoring image-1 anchor chain, with configurable `--batch-size` - `baoyu-slide-deck`: add batch generation policy for slide image rendering with configurable `--batch-size` - `baoyu-xhs-images`: sync batch generation policy from baoyu-image-cards","fileCount":35,"zipByteSize":61613},{"version":"1.115.4","createdAt":"2026-05-11T23:49:55.041Z","changelog":"### Documentation - Image generation backend selection: emphasize Codex `imagegen` as the priority runtime-native tool (invoke via the `Skill` tool with `skill: \"imagegen\"`) and forbid SVG/HTML/canvas substitution when no raster backend can be resolved — fall through to asking the user instead of silently emitting code-based art. Updated in `docs/image-generation-tools.md` and inlined into `baoyu-article-illustrator`, `baoyu-comic`, `baoyu-cover-image`, `baoyu-image-cards`, `baoyu-infographic`, `baoyu-slide-deck`, and `baoyu-xhs-images`.","fileCount":35,"zipByteSize":60864},{"version":"1.103.2","createdAt":"2026-04-21T22:03:56.455Z","changelog":"**Expanded support for explicit user confirmation, UI tool selection, and image backend control.** - New: User input and confirmation flow is clearly prioritized and tool-agnostic; supports runtime-native methods and manual fallback, batching questions as needed. - New: Image backend selection now supports per-request override, persistent preferences via `EXTEND.md`, native tool detection, and explicit user choice; prompts are always saved before rendering images. - Confirmation is always required before deck generation unless the user explicitly asks to skip, regardless of invocation method or preset. - User-facing messages (questions, errors, progress) now always match the user's language. - Reference files updated for new confirmation/UI logic; new `references/confirmation.md` added. - Internal documentation restructured for clarity, emphasizing reproducibility, preference order, and usability across different agent runtimes.","fileCount":35,"zipByteSize":60448},{"version":"1.103.1","createdAt":"2026-04-13T16:17:50.696Z","changelog":"## 1.103.1 - 2026-04-13 ### Fixes - `baoyu-markdown-to-html`: decode HTML entities and strip tags from article summary - `baoyu-post-to-weibo`: decode HTML entities and strip tags from article summary","fileCount":34,"zipByteSize":58919},{"version":"1.103.0","createdAt":"2026-04-13T01:22:35.978Z","changelog":"## 1.103.0 - 2026-04-12 ### Features - baoyu-diagram: add multi-diagram mode for article-wide diagram generation ### Fixes - baoyu-article-illustrator: prevent color names and hex codes from appearing as visible text in generated images - baoyu-cover-image: prevent color names and hex codes from appearing as visible text in generated images - baoyu-image-cards: prevent color names from appearing as visible text in generated images - baoyu-post-to-wechat: decode HTML entities and strip tags from article summary","fileCount":34,"zipByteSize":58919}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dfbhg0khk4fvtnx0stqg0yx83j25z:baoyu-slide-deck","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-jimliu-baoyu-slide-deck/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/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-09T20:38:57.342Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jimliu-baoyu-slide-deck/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-09T05:14:07.079Z","emptyReason":null},"readme":"Skill: Baoyu Slide Deck\n\nOwner: jimliu\n\nSummary: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t...\n\nTags: latest:1.117.4\n\nVersion history:\n\nv1.117.4 | 2026-06-13T04:59:10.597Z | auto\n\n- Added native support for Codex image generation via codex CLI fallback (codex-imagegen) when Codex `imagegen` skill is unavailable.\n- Added native support for Cursor's `GenerateImage` tool, with caveats around aspect ratio handling and output location.\n- Updated image backend selection logic and documentation to reflect new runtime detection and invocation procedure.\n- Added references/codex-imagegen.md with implementation notes for Codex CLI integration.\n- Removed obsolete skill-card.md.\n\nv1.117.3 | 2026-05-24T23:38:43.209Z | user\n\nv2.0.0: rename baoyu-imagine→baoyu-image-gen and baoyu-image-cards→baoyu-xhs-images; cross-skill image-backend examples updated\n\nv1.117.2 | 2026-05-18T02:16:12.921Z | user\n\n## 1.117.2 - 2026-05-17\n\n### Documentation\n- `baoyu-cover-image`: ban programmatic text repair on generated bitmaps — disallow ImageMagick / Pillow / Canvas / SVG / HTML overlays to cover, rewrite, or replace title/subtitle text; regenerate from a corrected prompt or switch to a lower-text or no-title variant instead\n- `baoyu-article-illustrator`, `baoyu-comic`, `baoyu-image-cards`, `baoyu-xhs-images`, `baoyu-infographic`, `baoyu-slide-deck`: sync the same text-repair ban with skill-specific text categories (labels/captions, dialogue/sound effects, titles/body/tags, headings/data values, slide titles/bullets)\n\nv1.117.0 | 2026-05-16T05:53:11.878Z | user\n\n## 1.117.0 - 2026-05-16\n\n### Features\n- `baoyu-article-illustrator`: add batch generation policy — backend native batch first, runtime parallel calls second, sequential fallback; configurable `generation_batch_size` and `--batch-size` option\n- `baoyu-comic`: add batch generation policy with dependency-aware ordering (character sheet before pages) and configurable `--batch-size`\n- `baoyu-image-cards`: add batch generation policy honoring image-1 anchor chain, with configurable `--batch-size`\n- `baoyu-slide-deck`: add batch generation policy for slide image rendering with configurable `--batch-size`\n- `baoyu-xhs-images`: sync batch generation policy from baoyu-image-cards\n\nv1.115.4 | 2026-05-11T23:49:55.041Z | user\n\n### Documentation\n- Image generation backend selection: emphasize Codex `imagegen` as the priority runtime-native tool (invoke via the `Skill` tool with `skill: \"imagegen\"`) and forbid SVG/HTML/canvas substitution when no raster backend can be resolved — fall through to asking the user instead of silently emitting code-based art. Updated in `docs/image-generation-tools.md` and inlined into `baoyu-article-illustrator`, `baoyu-comic`, `baoyu-cover-image`, `baoyu-image-cards`, `baoyu-infographic`, `baoyu-slide-deck`, and `baoyu-xhs-images`.\n\nv1.103.2 | 2026-04-21T22:03:56.455Z | auto\n\n**Expanded support for explicit user confirmation, UI tool selection, and image backend control.**\n\n- New: User input and confirmation flow is clearly prioritized and tool-agnostic; supports runtime-native methods and manual fallback, batching questions as needed.\n- New: Image backend selection now supports per-request override, persistent preferences via `EXTEND.md`, native tool detection, and explicit user choice; prompts are always saved before rendering images.\n- Confirmation is always required before deck generation unless the user explicitly asks to skip, regardless of invocation method or preset.\n- User-facing messages (questions, errors, progress) now always match the user's language.\n- Reference files updated for new confirmation/UI logic; new `references/confirmation.md` added.\n- Internal documentation restructured for clarity, emphasizing reproducibility, preference order, and usability across different agent runtimes.\n\nv1.103.1 | 2026-04-13T16:17:50.696Z | user\n\n## 1.103.1 - 2026-04-13\n\n### Fixes\n- `baoyu-markdown-to-html`: decode HTML entities and strip tags from article summary\n- `baoyu-post-to-weibo`: decode HTML entities and strip tags from article summary\n\nv1.103.0 | 2026-04-13T01:22:35.978Z | user\n\n## 1.103.0 - 2026-04-12\n\n### Features\n- baoyu-diagram: add multi-diagram mode for article-wide diagram generation\n\n### Fixes\n- baoyu-article-illustrator: prevent color names and hex codes from appearing as visible text in generated images\n- baoyu-cover-image: prevent color names and hex codes from appearing as visible text in generated images\n- baoyu-image-cards: prevent color names from appearing as visible text in generated images\n- baoyu-post-to-wechat: decode HTML entities and strip tags from article summary\n\nv1.60.1 | 2026-04-09T16:29:40.164Z | auto\n\nbaoyu-slide-deck 1.60.1 adds a new \"hand-drawn-edu\" style for educational diagrams and process explainers.\n\n- Added new style preset: hand-drawn-edu (organic + macaron + handwritten + balanced) for education-focused slides\n- Updated style system to include \"macaron\" as a mood option\n- Expanded auto style selection logic for content with hand-drawn, infographic, diagram, process, onboarding signals\n- Documentation updated to reflect new style in preset and dimension references\n\nv1.60.0 | 2026-03-12T03:51:27.555Z | user\n\n## 1.60.0 - 2026-03-11\n\n### Features\n- `baoyu-url-to-markdown`: support reusing existing Chrome CDP instances and fix port detection order\n\n### Fixes\n- `baoyu-post-to-x`: add missing `fs` import in x-article\n\n### Refactor\n- Unify all CDP skills to use shared `baoyu-chrome-cdp` package with vendored copies\n- Simplify CLAUDE.md, move detailed documentation to `docs/` directory\n- Publish skills directly from synced vendor, removing separate artifact preparation step\n\nv1.0.0 | 2026-03-09T17:18:44.957Z | auto\n\nbaoyu-slide-deck 1.0.0\n\n- Initial release of the baoyu-slide-deck skill.\n- Generates professional slide deck images from user content with style customization.\n- Supports outline creation, style presets, audience targeting, language options, and flexible slide count.\n- Provides commands to merge slides into PowerPoint or PDF formats.\n- Includes an automated style system with preset and custom options.\n\nArchive index:\n\nArchive v1.117.4: 37 files, 65912 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/codex-imagegen.md (3715b), references/config/preferences-schema.md (3967b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), skill-card.md (2689b), SKILL.md (23350b), _meta.json (137b)\n\nFile v1.117.4:SKILL.md\n\n---\nname: baoyu-slide-deck\ndescription: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", or \"PPT\".\nversion: 1.117.4\nmetadata:\n  openclaw:\n    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-slide-deck\n    requires:\n      anyBins:\n        - bun\n        - npx\n---\n\n# Slide Deck Generator\n\nTransform content into professional slide deck images. The deck is designed for **reading and sharing** (self-explanatory slides, logical scroll flow, social-media-friendly) rather than live presentation — that assumption drives every layout and density decision below.\n\n## User Input Tools\n\nWhen this skill prompts the user, follow this tool-selection rule (priority order):\n\n1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.\n2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.\n3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.\n\nConcrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.\n\n## Image Generation Tools\n\nWhen this skill needs to render an image, resolve the backend in this order:\n\n1. **Current-request override** — if the user names a specific backend in the current message, use it.\n2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.\n3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):\n   - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: \"imagegen\"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`.\n   - **Codex via `codex exec` (`codex-imagegen`)** — if the current runtime exposes no native `imagegen` skill but the `codex` CLI is on `PATH` with an active `codex login`, route through `baoyu-image-gen --provider codex-cli` (preferred), or — if baoyu-image-gen is unavailable — invoke the bundled wrapper directly. Details, parameters, and the runtime-discovery procedure live in [references/codex-imagegen.md](references/codex-imagegen.md) — load that file only when this branch is selected.\n   - **Cursor (`GenerateImage`)** — if the runtime exposes a native `GenerateImage` tool, you are running inside Cursor and it outranks any non-native skill the same way Codex `imagegen` does. Two hard caveats: (a) it has no aspect-ratio parameter — state the target aspect ratio / dimensions explicitly in the prompt text passed as `description`; (b) it does not accept an output directory — it saves to a tool-managed location, so after generation copy/move the file to the skill's expected output path (e.g., `outputs/.../NN-xxx.png`). Reference images go in `reference_image_paths`.\n   - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way.\n   - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it.\n   - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions.\n4. **If none are available**, tell the user and ask how to proceed.\n\n**⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.** Codex `imagegen`'s own description says it should be used \"when the output should be a bitmap asset rather than repo-native code or vector.\" If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user — do **not** silently emit SVG, write inline `<svg>` markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems \"diagram-like\": the consumer skill calling this rule has already decided that a raster image is what it needs.\n\n**⛔ Never repair rendered text by painting over a generated bitmap.** Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace slide titles, bullets, or any other text inside an already generated slide image. If text is wrong or unclear, regenerate from a corrected prompt, simplify the slide's on-image text, or ask the user which imperfect candidate to keep.\n\nSetting `preferred_image_backend: ask` forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the `## Changing Preferences` section below.\n\n**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/` (naming: `NN-slide-[slug].md`) BEFORE invoking any backend. The file is the reproducibility record and lets you switch backends without regenerating prompts.\n\nConcrete tool names (`imagegen`, `GenerateImage`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule.\n\n## Batch Generation Policy\n\nAfter every prompt file for the current generation group has been saved and verified, generate slide images in batches by default.\n\nPriority order:\n\n1. Use the chosen backend's native batch / multi-task interface if it exists. Each task must keep its own prompt file, output path, aspect ratio, session ID, and direct reference images.\n2. If no native batch interface exists but the runtime can issue parallel tool calls, dispatch up to `generation_batch_size` slide images at a time. Default: `4`. An explicit user request in the current message, such as `--batch-size 4` or \"并行4张一起生成\", overrides EXTEND.md.\n3. If neither native batch nor parallel tool calls are available, generate sequentially.\n\nRules:\n\n- Never start the first batch until all selected slide prompt files exist on disk.\n- Retry failed items once without regenerating successful items.\n- Do not use subagents merely to parallelize image rendering. Use subagents only for separate prompt iteration or creative exploration.\n- Merge PPTX/PDF only after all selected slide images are generated.\n\n## Confirmation Policy\n\nDefault behavior: **confirm before generation**.\n\n- Treat explicit skill invocation, a file path, matched signals/presets, and `EXTEND.md` defaults as **recommendation inputs only**. None of them authorizes skipping confirmation.\n- Do **not** start Step 3 or later until the user completes Step 2.\n- Skip confirmation only when the current request explicitly says to do so, for example: \"直接生成\", \"不用确认\", \"跳过确认\", \"按默认出幻灯片\", or equivalent wording.\n- If confirmation is skipped explicitly, state the assumed style / audience / slide-count / language / backend in the next user-facing update before generating.\n\n## Language\n\nRespond in the user's language across questions, progress reports, error messages, and the completion summary. Keep technical tokens (style names, file paths, code) in English.\n\n## Script Directory\n\n`{baseDir}` = this SKILL.md's directory. Resolve `${BUN_X}`: prefer `bun`; else `npx -y bun`; else suggest `brew install oven-sh/bun/bun`.\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/merge-to-pptx.ts` | Merge slides into PowerPoint |\n| `scripts/merge-to-pdf.ts` | Merge slides into PDF |\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `--style <name>` | Preset (see Presets below), `custom`, or custom style name |\n| `--audience <type>` | beginners / intermediate / experts / executives / general |\n| `--lang <code>` | Output language (en, zh, ja, ...) |\n| `--slides <N>` | Target slide count (8-25 recommended, max 30) |\n| `--ref <files...>` | Reference images applied per slide (style / palette / composition / subject) |\n| `--batch-size <n>` | Temporary slide image generation batch size for this run. Default: `generation_batch_size` from EXTEND.md, otherwise 4. Clamp to 1-8. |\n| `--outline-only` | Stop after outline |\n| `--prompts-only` | Stop after prompts (skip image generation) |\n| `--images-only` | Skip to Step 7; requires existing `prompts/` |\n| `--regenerate <N>` | Regenerate specific slide(s): `3` or `2,5,8` |\n\n## Style System\n\n17 presets covering technical / educational / lifestyle / editorial use cases. Every preset is a combination of four dimensions (texture / mood / typography / density). If the user picks \"Custom dimensions\" in Round 1, Round 2 of the confirmation asks one question per dimension — options and verbatim copy live in `references/confirmation.md`.\n\n### Presets (17)\n\n| Preset | Dimensions | Best For |\n|--------|------------|----------|\n| `blueprint` (Default) | grid + cool + technical + balanced | Architecture, system design |\n| `chalkboard` | organic + warm + handwritten + balanced | Education, tutorials |\n| `corporate` | clean + professional + geometric + balanced | Investor decks, proposals |\n| `minimal` | clean + neutral + geometric + minimal | Executive briefings |\n| `sketch-notes` | organic + warm + handwritten + balanced | Educational, tutorials |\n| `hand-drawn-edu` | organic + macaron + handwritten + balanced | Educational diagrams, process explainers |\n| `watercolor` | organic + warm + humanist + minimal | Lifestyle, wellness |\n| `dark-atmospheric` | clean + dark + editorial + balanced | Entertainment, gaming |\n| `notion` | clean + neutral + geometric + dense | Product demos, SaaS |\n| `bold-editorial` | clean + vibrant + editorial + balanced | Product launches, keynotes |\n| `editorial-infographic` | clean + cool + editorial + dense | Tech explainers, research |\n| `fantasy-animation` | organic + vibrant + handwritten + minimal | Educational storytelling |\n| `intuition-machine` | clean + cool + technical + dense | Technical docs, academic |\n| `pixel-art` | pixel + vibrant + technical + balanced | Gaming, developer talks |\n| `scientific` | clean + cool + technical + dense | Biology, chemistry, medical |\n| `vector-illustration` | clean + vibrant + humanist + balanced | Creative, children's content |\n| `vintage` | paper + warm + editorial + balanced | Historical, heritage |\n\nPer-preset specs: `references/styles/<preset>.md`. Preset → dimension mapping: `references/dimensions/presets.md`.\n\n### Dimensions (when \"Custom dimensions\" picked)\n\n| Dimension | Options | Purpose |\n|-----------|---------|---------|\n| **Texture** | clean, grid, organic, pixel, paper | Background treatment |\n| **Mood** | professional, warm, cool, vibrant, dark, neutral, macaron | Color temperature |\n| **Typography** | geometric, humanist, handwritten, editorial, technical | Headline/body styling |\n| **Density** | minimal, balanced, dense | Information per slide |\n\nFull per-dimension specs: `references/dimensions/*.md`.\n\n### Auto-Selection\n\nMatch content signals to a preset. Pick the first row whose signal keywords appear in the source; fall back to `blueprint` if nothing matches.\n\n| Signals in source | Preset |\n|-------------------|--------|\n| tutorial, learn, education, guide, beginner | `sketch-notes` |\n| hand-drawn, infographic, diagram, process, onboarding | `hand-drawn-edu` |\n| classroom, teaching, school, chalkboard | `chalkboard` |\n| architecture, system, data, analysis, technical | `blueprint` |\n| creative, children, kids, cute | `vector-illustration` |\n| briefing, academic, research, bilingual | `intuition-machine` |\n| executive, minimal, clean, simple | `minimal` |\n| saas, product, dashboard, metrics | `notion` |\n| investor, quarterly, business, corporate | `corporate` |\n| launch, marketing, keynote, magazine | `bold-editorial` |\n| entertainment, music, gaming, atmospheric | `dark-atmospheric` |\n| explainer, journalism, science communication | `editorial-infographic` |\n| story, fantasy, animation, magical | `fantasy-animation` |\n| gaming, retro, pixel, developer | `pixel-art` |\n| biology, chemistry, medical, scientific | `scientific` |\n| history, heritage, vintage, expedition | `vintage` |\n| lifestyle, wellness, travel, artistic | `watercolor` |\n\n### Slide Count Heuristic\n\n| Source length | Recommended slides |\n|---------------|--------------------|\n| < 1000 words | 5-10 |\n| 1000-3000 words | 10-18 |\n| 3000-5000 words | 15-25 |\n| > 5000 words | 20-30 (consider splitting) |\n\n## Reference Images\n\nUsers may supply reference images to guide style, palette, layout, or subject.\n\n**Intake**: Accept via `--ref <files...>` or when the user provides file paths / pastes images in conversation.\n- File path → copy to `{slide-deck-dir}/refs/NN-ref-{slug}.{ext}`\n- Pasted image with no path → ask for the path, or extract style traits verbally as a text fallback\n\n**Usage modes** (per reference):\n\n| Usage | Effect |\n|-------|--------|\n| `direct` | Pass the file to the backend as a reference image for each slide |\n| `style` | Extract style traits (line treatment, texture, mood) and append to every slide's prompt body |\n| `palette` | Extract hex colors and append to every slide's prompt body |\n\nRecord refs in each slide's prompt frontmatter:\n\n```yaml\nreferences:\n  - ref_id: 01\n    filename: 01-ref-brand.png\n    usage: direct\n```\n\nAt generation time, verify files exist. If `usage: direct` and the backend accepts refs (e.g., `baoyu-image-gen --ref`), pass the file on every slide. Otherwise embed extracted `style`/`palette` traits in the prompt text.\n\n## File Layout\n\n```\nslide-deck/{topic-slug}/\n├── source-{slug}.{ext}\n├── outline.md\n├── prompts/NN-slide-{slug}.md\n├── NN-slide-{slug}.png\n├── {topic-slug}.pptx\n└── {topic-slug}.pdf\n```\n\n**Slug**: 2-4 words, kebab-case, extracted from topic. \"Introduction to Machine Learning\" → `intro-machine-learning`.\n\n**Backup rule** (applies across steps): if a file about to be written already exists, rename it to `<name>-backup-YYYYMMDD-HHMMSS.<ext>` before writing the new one. This protects user edits and enables rollback.\n\n## Workflow\n\nCopy this checklist and check off items as you complete them:\n\n```\n- [ ] Step 1: Setup & analyze\n- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1; Round 2 only if \"Custom dimensions\")\n- [ ] Step 3: Generate outline\n- [ ] Step 4: Review outline (conditional)\n- [ ] Step 5: Generate prompts\n- [ ] Step 6: Review prompts (conditional)\n- [ ] Step 7: Generate images\n- [ ] Step 8: Merge to PPTX/PDF\n- [ ] Step 9: Output summary\n```\n\n### Step 1: Setup & Analyze\n\n**1.1 Load EXTEND.md** — check these paths in order; first hit wins:\n\n| Path | Scope |\n|------|-------|\n| `.baoyu-skills/baoyu-slide-deck/EXTEND.md` | Project |\n| `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md` | XDG |\n| `$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md` | User home |\n\nIf found, read, parse, and print a summary (style / audience / language / review / generation batch size). If not, proceed with defaults — first-time setup is not blocking for this skill. Schema: `references/config/preferences-schema.md`.\n\n**1.2 Analyze content** — follow `references/analysis-framework.md`: classify content, detect language, note signals for style selection, estimate slide count from length (see the **Slide Count Heuristic** in Style System above), generate topic slug. Save source as `source.md` (honor backup rule if one exists).\n\n**1.3 Check existing output** ⚠️ REQUIRED before Step 2. If `slide-deck/{topic-slug}/` exists, ask how to proceed — four options (regenerate outline / regenerate images / backup and regenerate / exit), verbatim copy in `references/confirmation.md`.\n\nSave findings to `analysis.md`: topic, audience, signals, recommended style and slide count, language detection.\n\n### Step 2: Confirmation ⚠️ REQUIRED\n\n**Hard gate**: this step is mandatory per the [Confirmation Policy](#confirmation-policy) — Steps 3+ cannot start until the user confirms here (or explicitly opts out with \"直接生成\" / equivalent wording in the current request).\n\n**Round 1 (always)** — batch five questions in one `AskUserQuestion` call: style, audience, slide count, review-outline?, review-prompts?. Verbatim options in `references/confirmation.md`.\n\nSummary displayed before the questions:\n- Content type + topic\n- Detected language\n- Recommended style (based on signals)\n- Recommended slide count (based on length)\n\n**Round 2 (only if \"Custom dimensions\" in Round 1)** — batch four questions: texture, mood, typography, density. Verbatim options in `references/confirmation.md`. The four answers replace the preset.\n\n**After confirmation**: update `analysis.md` with final choices and store `skip_outline_review` / `skip_prompt_review` flags from Q4/Q5.\n\n### Step 3: Generate Outline\n\nResolve style: preset → `references/styles/{preset}.md`; custom dimensions → combine files in `references/dimensions/`. Build `STYLE_INSTRUCTIONS` from the resolved style, apply confirmed audience + language + slide count, follow `references/outline-template.md`, and save as `outline.md`.\n\nStop here if `--outline-only`. Skip Step 4 if `skip_outline_review`.\n\n### Step 4: Review Outline (Conditional)\n\nDisplay a slide-by-slide table (`# | Title | Type | Layout`) along with total count and resolved style. Ask: proceed / edit outline first / regenerate — verbatim in `references/confirmation.md`.\n\nOn \"Edit outline first\", tell the user to edit `outline.md` and ask again when ready. On \"Regenerate outline\", return to Step 3.\n\n### Step 5: Generate Prompts\n\nFor each slide in outline:\n1. Read `references/base-prompt.md`\n2. Extract `STYLE_INSTRUCTIONS` from the outline (don't re-read the style file)\n3. Add the slide's content\n4. If a `Layout:` is specified, include guidance from `references/layouts.md`\n5. Save to `prompts/NN-slide-{slug}.md` (backup rule applies)\n\nStop here if `--prompts-only`. Skip Step 6 if `skip_prompt_review`.\n\n### Step 6: Review Prompts (Conditional)\n\nDisplay the prompts index (`# | Filename | Slide Title`) and ask: proceed / edit prompts first / regenerate — verbatim in `references/confirmation.md`. Branches mirror Step 4.\n\n### Step 7: Generate Images\n\n1. Resolve the image backend via the Image Generation Tools rule at the top — ask once if multiple are installed.\n   - **`codex-imagegen` invocation**: when the rule resolves to `codex-imagegen`, see [references/codex-imagegen.md](references/codex-imagegen.md) for the invocation contract (preferred `baoyu-image-gen --provider codex-cli` path, runtime wrapper discovery, parameter notes, stdout schema, batch semantics — n=1 per call so slide batches must dispatch one wrapper call per slide).\n2. Confirm every `prompts/NN-slide-{slug}.md` exists (hard requirement; prompt files are the reproducibility record regardless of backend).\n3. Session ID: `slides-{topic-slug}-{timestamp}` — pass to the backend only if it supports sessions.\n4. Build a task list for selected slides with each slide's prompt file, output PNG path, aspect ratio, session ID, and verified direct references.\n5. Dispatch slide images in batches per the `## Batch Generation Policy`: backend native batch first, runtime parallel tool calls second, sequential only as fallback. Backup rule applies to PNG files before dispatch. Report progress as `Generated X/N`. Retry only failed items once before reporting an error.\n\n`--regenerate N` jumps to this step for the named slides only. `--images-only` starts here with existing prompts.\n\n### Step 8: Merge\n\n```bash\n${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>\n${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>\n```\n\n### Step 9: Summary\n\n```\nSlide Deck Complete!\nTopic: [topic]\nStyle: [preset or \"custom: texture+mood+typography+density\"]\nLocation: [directory]\nSlides: N\n\n- 01-slide-cover.png\n- ...\n- NN-slide-back-cover.png\n\nOutline: outline.md\nPPTX: {topic-slug}.pptx\nPDF: {topic-slug}.pdf\n```\n\n## Slide Modification\n\n| Action | How |\n|--------|-----|\n| Edit | Update `prompts/NN-slide-{slug}.md` **first**, then `--regenerate N` |\n| Add | Create new prompt at position, generate image, renumber subsequent `NN` (slugs unchanged), update `outline.md`, re-merge |\n| Delete | Remove PNG + prompt, renumber subsequent, update `outline.md`, re-merge |\n\nAlways update the prompt file before regenerating the image — this keeps the prompts directory as the source of truth and makes changes reproducible. Only `NN` changes on renumber; slugs stay stable so references remain valid.\n\nText correction policy:\n\n- If a slide's title, bullets, or any other rendered text is misspelled, garbled, hard to read, or visually weak, do not patch the bitmap with code.\n- For text-correction regenerations, write a new prompt file and a new output path so the flawed candidate is preserved for comparison.\n- Post-processing is limited to crop, resize, compression, or format conversion that does not alter text or the main composition.\n\nSee `references/modification-guide.md` for full details.\n\n## References\n\n| File | Content |\n|------|---------|\n| `references/confirmation.md` | Verbatim AskUserQuestion option copy for every confirmation |\n| `references/analysis-framework.md` | Content analysis framework |\n| `references/outline-template.md` | Outline structure |\n| `references/base-prompt.md` | Base prompt body for image generation |\n| `references/layouts.md` | Layout options |\n| `references/design-guidelines.md` | Audience, typography, color selection |\n| `references/content-rules.md` | Content guidelines |\n| `references/modification-guide.md` | Edit/add/delete workflows |\n| `references/styles/<preset>.md` | Per-preset specifications |\n| `references/dimensions/*.md` | Per-dimension specifications |\n| `references/config/preferences-schema.md` | EXTEND.md schema |\n\n## Notes\n\n- Image generation takes ~10-30s per slide; report progress between them.\n- For sensitive public figures, prefer stylized alternatives to avoid likeness issues.\n- Maintain visual consistency via the session ID when the backend supports it.\n\n## Changing Preferences\n\nEXTEND.md lives at the first matching path listed in Step 1.1. Two ways to change it:\n\n- **Edit directly** — open EXTEND.md and change fields. Full schema: `references/config/preferences-schema.md`.\n- **Common one-line edits**:\n  - `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present.\n  - `preferred_image_backend: codex-imagegen` — pin to Codex's built-in.\n  - `preferred_image_backend: baoyu-image-gen` — pin to the baoyu-image-gen skill.\n  - `preferred_image_backend: ask` — confirm backend every run.\n  - `generation_batch_size: 4` — default number of slide images to render concurrently when the backend/runtime supports batch or parallel generation.\n  - `preferred_style: blueprint`, `preferred_audience: experts`, `language: zh`.\n\nFile v1.117.4:_meta.json\n\n{\n  \"ownerId\": \"kn7csrrndw79hpke5d0gsnx93d82k67r\",\n  \"slug\": \"baoyu-slide-deck\",\n  \"version\": \"1.117.4\",\n  \"publishedAt\": 1781326750597\n}\n\nFile v1.117.4:references/analysis-framework.md\n\n# Presentation Analysis Framework\n\nDeep content analysis for effective slide deck creation.\n\n## 1. Message Hierarchy\n\nIdentify the core message structure before designing slides.\n\n### Core Message (One Sentence)\n- What is the single most important takeaway?\n- If the audience remembers only one thing, what should it be?\n- Can you state it in ≤15 words?\n\n### Supporting Points (3-5 Maximum)\n- What evidence supports the core message?\n- What sub-topics must be covered?\n- Prioritize by audience relevance, not source order\n\n### Call-to-Action\n- What should the audience DO after viewing?\n- Is it clear, specific, and achievable?\n- Where does it appear (slide position)?\n\n## 2. Audience Decision Matrix\n\n| Question | Analysis |\n|----------|----------|\n| Who is the primary audience? | [Role, expertise level, relationship to topic] |\n| What do they currently believe? | [Existing knowledge, assumptions, biases] |\n| What decision do we want them to make? | [Specific action or conclusion] |\n| What barriers exist? | [Objections, concerns, missing information] |\n| What evidence will convince them? | [Data types, credibility sources, emotional hooks] |\n\n### Audience Adaptation\n\n| Audience Type | Content Focus | Visual Treatment |\n|---------------|---------------|------------------|\n| Executives | Outcomes, ROI, strategic impact | High-level, clean, data highlights |\n| Technical | Architecture, implementation, specs | Detailed diagrams, code, schematics |\n| General | Benefits, stories, relatability | Visual metaphors, simple charts |\n| Investors | Market size, traction, team | Growth charts, milestones, comparisons |\n| Learners | Step-by-step, examples, practice | Progressive reveals, exercises |\n\n## 3. Visual Opportunity Map\n\nIdentify which content benefits from visualization.\n\n### Content-to-Visual Mapping\n\n| Content Type | Visual Treatment | Example |\n|--------------|------------------|---------|\n| Comparisons | Side-by-side, before/after | Feature comparison table |\n| Processes | Flow diagrams, numbered steps | Workflow illustration |\n| Hierarchies | Org charts, pyramids, trees | Organizational structure |\n| Timelines | Horizontal/vertical timelines | Project milestones |\n| Statistics | Charts, highlighted numbers | Key metrics with context |\n| Concepts | Icons, metaphors, illustrations | Abstract idea visualization |\n| Relationships | Venn diagrams, networks | Ecosystem or dependencies |\n| Lists | Structured grids, icon rows | Feature bullets with icons |\n\n### Visual Priority\n\nRate each piece of content:\n- **Must Visualize**: Complex data, key differentiators, memorable moments\n- **Should Visualize**: Supporting evidence, secondary points\n- **Text Only**: Simple statements, transitions, minor details\n\n## 4. Presentation Flow\n\nStructure for impact and retention.\n\n### Opening (First 2-3 Slides)\n\n| Element | Purpose |\n|---------|---------|\n| Hook | Capture attention (surprising stat, question, story) |\n| Context | Why this matters now |\n| Preview | What audience will learn/gain |\n\n### Middle (Content Slides)\n\n| Pattern | When to Use |\n|---------|-------------|\n| Problem → Solution | Introducing new products/ideas |\n| Situation → Complication → Resolution | Complex business cases |\n| What → Why → How | Educational content |\n| Past → Present → Future | Transformation stories |\n| Claim → Evidence → Implication | Data-driven arguments |\n\n### Closing (Final 2-3 Slides)\n\n| Element | Purpose |\n|---------|---------|\n| Synthesis | Tie back to core message |\n| Call-to-Action | Clear next steps |\n| Memorable Close | Resonant quote, image, or statement |\n\n### Transitions\n\n- Each slide should answer: \"What comes next?\"\n- Use narrative connectors between sections\n- Build logical progression, not topic jumps\n\n## 5. Content Adaptation\n\nDecide what to keep, transform, or omit.\n\n### Keep (High Value)\n- Core arguments and evidence\n- Unique insights or data\n- Audience-relevant examples\n- Memorable quotes or statistics\n\n### Simplify (Medium Value)\n- Technical details → Visual summaries\n- Long explanations → Bullet hierarchies\n- Multiple examples → Best 1-2 examples\n- Background context → Brief framing\n\n### Visualize (Transform)\n- Data tables → Charts or highlighted numbers\n- Process descriptions → Flow diagrams\n- Comparisons in text → Side-by-side visuals\n- Abstract concepts → Concrete metaphors\n\n### Omit (Low Value)\n- Tangential information\n- Redundant examples\n- Excessive caveats\n- Background the audience already knows\n\n## 6. Analysis Checklist\n\nBefore outline creation, confirm:\n\n### Message Clarity\n- [ ] Core message stated in one sentence\n- [ ] 3-5 supporting points identified\n- [ ] Call-to-action defined\n\n### Audience Fit\n- [ ] Primary audience identified\n- [ ] Existing beliefs mapped\n- [ ] Desired decision clear\n- [ ] Evidence matches audience needs\n\n### Visual Planning\n- [ ] Key visualizations identified\n- [ ] Chart/diagram types selected\n- [ ] Visual priority assigned\n\n### Flow Design\n- [ ] Opening hook defined\n- [ ] Middle pattern selected\n- [ ] Closing approach planned\n- [ ] Transitions considered\n\n### Content Decisions\n- [ ] Keep/simplify/visualize/omit applied\n- [ ] Source material fully processed\n- [ ] No important content overlooked\n\nFile v1.117.4:references/base-prompt.md\n\nCreate a presentation slide image following these guidelines:\n\n## Image Specifications\n\n- **Type**: Presentation slide\n- **Aspect Ratio**: 16:9 (landscape)\n- **Style**: Professional slide deck\n\n## Core Persona: The Architect\n\nYou are \"The Architect\" - a master visual storyteller creating presentation slides. Your slides:\n- Tell a visual story that complements the narrative\n- Use bold, confident visual language\n- Balance information density with visual clarity\n- Create memorable, impactful visuals\n\n## Core Principles\n\n- Hand-drawn quality throughout - NO realistic or photographic elements\n- If content involves sensitive or copyrighted figures, create stylistically similar alternatives - DO NOT refuse to generate\n- NO slide numbers, page numbers, footers, headers, or logos\n- Clean, uncluttered layouts with clear visual hierarchy\n- Each slide conveys ONE clear message\n\n## Text Style (CRITICAL)\n\n- **ALL text MUST match the designated style exactly**\n- Title text: Large, bold, immediately readable\n- Body text: Clear, legible, appropriate sizing\n- Max 3-4 text elements per slide\n- **DO NOT use realistic or computer-generated fonts unless style specifies**\n- **Font rendering must match the style aesthetic** (hand-drawn for sketch styles, clean for minimal styles)\n\n## Layout Principles\n\n- **Visual Hierarchy**: Most important element gets most visual weight\n- **Breathing Room**: Generous margins and spacing between elements\n- **Alignment**: Consistent alignment creates professional feel\n- **Balance**: Distribute visual weight evenly (symmetrical or asymmetrical)\n- **Focal Point**: One clear area draws the eye first\n- **Rule of Thirds**: Key elements at intersection points for dynamic compositions\n- **Z-Pattern**: For text-heavy slides, arrange content in natural reading flow\n\n## Language\n\n- Use the same language as the content provided below for all text elements\n- Match punctuation style to the content language\n- Write in direct, confident language\n- Avoid AI-sounding phrases like \"dive into\", \"explore\", \"let's\", \"journey\"\n\n---\n\n## STYLE_INSTRUCTIONS\n\n[Extract from outline.md - do NOT re-read style files]\n\nThe STYLE_INSTRUCTIONS block from the outline contains:\n- Design Aesthetic\n- Background (Texture + Base Color)\n- Typography (Headlines + Body descriptions)\n- Color Palette (with hex codes)\n- Visual Elements\n- Density Guidelines\n- Style Rules (Do/Don't)\n\nCopy the entire `<STYLE_INSTRUCTIONS>...</STYLE_INSTRUCTIONS>` block from the outline here.\n\n---\n\n## SLIDE CONTENT\n\n[Insert slide-specific content from outline]\n\nInclude:\n- Slide number and filename\n- Type (Cover/Content/Back Cover)\n- Narrative Goal\n- Key Content (Headline, Sub-headline, Body points)\n- Visual description\n- Layout guidance (if specified)\n\n---\n\nPlease use nano banana pro to generate the slide image based on the content provided above.\n\nFile v1.117.4:references/codex-imagegen.md\n\n# `codex-imagegen` Wrapper Invocation\n\nLoad this reference only when the [Image Generation Tools](../SKILL.md#image-generation-tools) rule has resolved to `codex-imagegen` — i.e., the current runtime exposes no native `imagegen` skill but `codex` CLI is on `PATH` with an active `codex login`.\n\n## Preferred path: route through `baoyu-image-gen`\n\nIf the `baoyu-image-gen` skill is available in this runtime, **always** invoke through it rather than calling the wrapper directly. It handles retry/cache/batch/EXTEND.md preferences uniformly with every other provider.\n\n```bash\n${BUN_X} <baoyu-image-gen-base>/scripts/main.ts \\\n  --provider codex-cli \\\n  --image <ABSOLUTE_output> \\\n  --promptfiles <ABSOLUTE_prompts/NN-slide-{slug}.md> \\\n  --ar <ratio> \\\n  [--ref <ABSOLUTE_file>]...\n```\n\nResolve `<baoyu-image-gen-base>` the same way you resolve any sibling skill — through your runtime's skill registry (`Skill` tool, plugin marketplace, or `$HOME/.baoyu-skills/baoyu-image-gen/`).\n\n## Fallback: spawn the wrapper directly\n\nOnly when `baoyu-image-gen` is NOT installed in the current runtime. Discover the wrapper's location at runtime — do NOT hard-code `../../packages/...` from this skill:\n\n1. **Honor explicit override**: if `$BAOYU_CODEX_IMAGEGEN_BIN` is set and points to a real file, use that path. It may be `.ts` (spawn `bun <path>`) or `.sh`/binary (spawn directly).\n2. **Search the plugin root**: walk up from this skill's directory looking for `packages/baoyu-codex-imagegen/src/main.ts`. If found, that is the wrapper. Spawn it with `bun`.\n3. **Last resort**: tell the user that `codex-imagegen` is not available in this runtime and ask whether to install the `baoyu-skills` plugin (or set `BAOYU_CODEX_IMAGEGEN_BIN`) or pick another backend.\n\nOnce located, the invocation shape is:\n\n```bash\nbun <WRAPPER>/main.ts \\\n  --image <ABSOLUTE_output> \\\n  --prompt-file <ABSOLUTE_prompts/NN-slide-{slug}.md> \\\n  --aspect <ratio> \\\n  [--ref <ABSOLUTE_file>]... \\\n  [--timeout <ms>] \\\n  [--cache-dir ~/.cache/baoyu-codex-imagegen] \\\n  [--log-file <ABSOLUTE_jsonl_log_path>]\n```\n\nIf `bun` is missing, `npx -y bun <WRAPPER>/main.ts ...` works as a fallback.\n\n## Parameter notes\n\n- **All filesystem inputs** are auto-resolved against `process.cwd()` when relative, but agents should pass absolute paths to be robust against cwd drift.\n- **`--timeout`** defaults to `300000` (5 min) per `codex exec` attempt. Raise (e.g. `--timeout 600000` for 10 min) on slow networks or large prompts.\n- **`--cache-dir`** is off by default. Enable for repeatable runs to skip redundant generations of the same prompt+aspect+refs.\n- **Authentication**: the wrapper uses the user's Codex subscription — no `OPENAI_API_KEY` is read or sent.\n\n## Stdout contract\n\nSingle JSON line:\n\n- Success: `{\"status\":\"ok\",\"path\":\"...\",\"bytes\":N,\"elapsed_seconds\":N,\"thread_id\":\"...\",\"attempts\":N,\"cached\":bool,...}`\n- Failure: `{\"status\":\"error\",\"path\":\"...\",\"bytes\":0,\"error\":\"...\",\"error_kind\":\"...\"}`\n\n`error_kind` values: `codex_not_installed`, `invalid_args`, `prompt_file_missing`, `spawn_failed`, `timeout`, `no_image_gen_tool_use`, `output_missing`, `invalid_png`, `agent_refused`, `lock_busy`.\n\nOn retryable errors (timeout, spawn_failed, no_image_gen_tool_use, output_missing, invalid_png, agent_refused), ask the user whether to retry or fall back to another backend.\n\n## Batch semantics\n\n- Codex `image_gen` returns **one image per call** (`n=1` only). Multi-image jobs must dispatch one wrapper call per image.\n- The wrapper does NOT accept a `--sessionId` flag. Chain/scene consistency must come from `--ref` reference images.\n- `--size` and `--quality` are silently ignored — Codex picks pixel dimensions from `--aspect`.\n\nFile v1.117.4:references/config/preferences-schema.md\n\n# EXTEND.md Schema\n\nStructure for user preferences in `.baoyu-skills/baoyu-slide-deck/EXTEND.md`.\n\n## Full Schema\n\n```yaml\n# Slide Deck Preferences\n\n## Defaults\nstyle: blueprint              # Preset name OR \"custom\"\naudience: general             # beginners | intermediate | experts | executives | general\nlanguage: auto                # auto | en | zh | ja | etc.\nreview: true                  # true = review outline before generation\npreferred_image_backend: auto # auto | ask | <backend-id>\ngeneration_batch_size: 4      # 1-8, used when backend/runtime supports batch or parallel slide generation\n\n## Custom Dimensions (only when style: custom)\ndimensions:\n  texture: clean              # clean | grid | organic | pixel | paper\n  mood: professional          # professional | warm | cool | vibrant | dark | neutral\n  typography: geometric       # geometric | humanist | handwritten | editorial | technical\n  density: balanced           # minimal | balanced | dense\n\n## Custom Styles (optional)\ncustom_styles:\n  my-style:\n    texture: organic\n    mood: warm\n    typography: humanist\n    density: minimal\n    description: \"My custom warm and friendly style\"\n```\n\n## Field Descriptions\n\n### Defaults\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `style` | string | `blueprint` | Preset name, `custom`, or custom style name |\n| `audience` | string | `general` | Default target audience |\n| `language` | string | `auto` | Output language (auto = detect from input) |\n| `review` | boolean | `true` | Show outline review before generation |\n| `preferred_image_backend` | string | `auto` | Image backend selection. `auto` = prefer runtime-native tool, fall back to the only installed backend, ask if multiple non-native are present. `ask` = always confirm on every run. `<backend-id>` (e.g., `codex-imagegen`, `baoyu-image-gen`, `image_generate`) = pin this backend when available; fall back to `auto` when it isn't. Absent = `auto`. Resolution logic is documented in `SKILL.md`'s `## Image Generation Tools` section. |\n| `generation_batch_size` | int | 4 | Number of slide images to dispatch per batch when the backend has native batch support or the runtime can issue parallel generation calls. Clamp invalid values to 1-8. Current user request overrides this value. |\n\n### Custom Dimensions\n\nOnly used when `style: custom`. Defines dimension values directly.\n\n| Field | Options | Default |\n|-------|---------|---------|\n| `texture` | clean, grid, organic, pixel, paper | clean |\n| `mood` | professional, warm, cool, vibrant, dark, neutral | professional |\n| `typography` | geometric, humanist, handwritten, editorial, technical | geometric |\n| `density` | minimal, balanced, dense | balanced |\n\n### Custom Styles\n\nDefine reusable custom dimension combinations.\n\n```yaml\ncustom_styles:\n  style-name:\n    texture: <texture>\n    mood: <mood>\n    typography: <typography>\n    density: <density>\n    description: \"Optional description\"\n```\n\nThen use with: `/baoyu-slide-deck content.md --style style-name`\n\n## Minimal Examples\n\n### Just change default style\n\n```yaml\nstyle: sketch-notes\n```\n\n### Prefer no reviews\n\n```yaml\nreview: false\n```\n\n### Custom default dimensions\n\n```yaml\nstyle: custom\ndimensions:\n  texture: organic\n  mood: professional\n  typography: humanist\n  density: minimal\n```\n\n### Define reusable custom style\n\n```yaml\ncustom_styles:\n  brand-style:\n    texture: clean\n    mood: vibrant\n    typography: editorial\n    density: balanced\n    description: \"Company brand style\"\n```\n\n## File Locations\n\nPriority order (first found wins):\n\n1. `.baoyu-skills/baoyu-slide-deck/EXTEND.md` (project)\n2. `$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md` (user)\n\n## First-Time Setup\n\nWhen no EXTEND.md exists, the skill prompts for initial preferences:\n\n1. Preferred style (preset or custom)\n2. Default audience\n3. Language preference\n4. Review preference\n5. Save location (project or user)\n\nCreates EXTEND.md at chosen location.\n\nFile v1.117.4:references/confirmation.md\n\n# Confirmation Questions\n\nConcrete option copy for the confirmation steps. SKILL.md lists which questions to ask — this file gives the verbatim options used in Claude Code. Adapt copy to the runtime's native user-input tool; the intent matters more than the exact wording.\n\n## Round 1 (Always)\n\nBatch all five questions in a single `AskUserQuestion` call.\n\n### Q1: Style\n\n```yaml\nheader: Style\nquestion: Which visual style for this deck?\noptions:\n  - label: \"{recommended_preset} (Recommended)\"\n    description: Best match based on content analysis\n  - label: \"{alternative_preset}\"\n    description: \"{alternative style description}\"\n  - label: Custom dimensions\n    description: Choose texture, mood, typography, density separately\n```\n\n### Q2: Audience\n\n```yaml\nheader: Audience\nquestion: Who is the primary reader?\noptions:\n  - label: General readers (Recommended)\n    description: Broad appeal, accessible content\n  - label: Beginners/learners\n    description: Educational focus, clear explanations\n  - label: Experts/professionals\n    description: Technical depth, domain knowledge\n  - label: Executives\n    description: High-level insights, minimal detail\n```\n\n### Q3: Slide Count\n\n```yaml\nheader: Slides\nquestion: How many slides?\noptions:\n  - label: \"{N} slides (Recommended)\"\n    description: Based on content length\n  - label: \"Fewer ({N-3} slides)\"\n    description: More condensed, less detail\n  - label: \"More ({N+3} slides)\"\n    description: More detailed breakdown\n```\n\n### Q4: Review Outline\n\n```yaml\nheader: Outline\nquestion: Review outline before generating prompts?\noptions:\n  - label: Yes, review outline (Recommended)\n    description: Review slide titles and structure\n  - label: No, skip outline review\n    description: Proceed directly to prompt generation\n```\n\n### Q5: Review Prompts\n\n```yaml\nheader: Prompts\nquestion: Review prompts before generating images?\noptions:\n  - label: Yes, review prompts (Recommended)\n    description: Review image generation prompts\n  - label: No, skip prompt review\n    description: Proceed directly to image generation\n```\n\n## Round 2 — Custom Dimensions\n\nTriggered only when Q1 of Round 1 = \"Custom dimensions\". Batch all four dimension questions.\n\n### Texture\n\n```yaml\nheader: Texture\nquestion: Which visual texture?\noptions:\n  - label: clean\n    description: Pure solid color, no texture\n  - label: grid\n    description: Subtle grid overlay, technical\n  - label: organic\n    description: Soft textures, hand-drawn feel\n  - label: pixel\n    description: Chunky pixels, 8-bit aesthetic\n```\n\n`paper` is also valid — accept via \"Other\".\n\n### Mood\n\n```yaml\nheader: Mood\nquestion: Which color mood?\noptions:\n  - label: professional\n    description: Cool-neutral, navy/gold\n  - label: warm\n    description: Earth tones, friendly\n  - label: cool\n    description: Blues, grays, analytical\n  - label: vibrant\n    description: High saturation, bold\n  - label: macaron\n    description: Pastel blocks on cream\n```\n\n`dark`, `neutral` valid via \"Other\".\n\n### Typography\n\n```yaml\nheader: Typography\nquestion: Which typography style?\noptions:\n  - label: geometric\n    description: Modern sans-serif, clean\n  - label: humanist\n    description: Friendly, readable\n  - label: handwritten\n    description: Marker/brush, organic\n  - label: editorial\n    description: Magazine style, dramatic\n```\n\n`technical` valid via \"Other\".\n\n### Density\n\n```yaml\nheader: Density\nquestion: Information density?\noptions:\n  - label: balanced (Recommended)\n    description: 2-3 key points per slide\n  - label: minimal\n    description: One focus point, maximum whitespace\n  - label: dense\n    description: Multiple data points, compact\n```\n\n## Outline Review (Step 4)\n\n```yaml\nheader: Confirm\nquestion: Ready to generate prompts?\noptions:\n  - label: Yes, proceed (Recommended)\n    description: Generate image prompts\n  - label: Edit outline first\n    description: I'll modify outline.md before continuing\n  - label: Regenerate outline\n    description: Create new outline with different approach\n```\n\n## Prompt Review (Step 6)\n\n```yaml\nheader: Confirm\nquestion: Ready to generate slide images?\noptions:\n  - label: Yes, proceed (Recommended)\n    description: Generate all slide images\n  - label: Edit prompts first\n    description: I'll modify prompts before continuing\n  - label: Regenerate prompts\n    description: Create new prompts with different approach\n```\n\n## Existing Content (Step 1.3)\n\n```yaml\nheader: Existing\nquestion: Existing content found. How to proceed?\noptions:\n  - label: Regenerate outline\n    description: Keep images, regenerate outline only\n  - label: Regenerate images\n    description: Keep outline, regenerate images only\n  - label: Backup and regenerate\n    description: Backup to {slug}-backup-{timestamp}, then regenerate all\n  - label: Exit\n    description: Cancel, keep existing content unchanged\n```\n\nFile v1.117.4:references/content-rules.md\n\n# Content & Style Rules\n\nGuidelines for slide deck content quality and style consistency.\n\n## Content Rules\n\n### 1. Respect Reader Attention\n- Each slide should communicate ONE main idea\n- Remove redundant information\n- Prioritize clarity over comprehensiveness\n\n### 2. Data Traceability\n- All statistics must include source attribution\n- Cite sources directly on slides with data\n- Use specific numbers over vague claims\n\n### 3. Self-Contained Prompts\n- Every detail must be in the image prompt\n- No external references (e.g., \"like slide 2\")\n- Include all colors, layouts, and content explicitly\n\n### 4. No Placeholders\n- Every element must be fully specified\n- No \"[insert data here]\" or \"TBD\"\n- All text content finalized before generation\n\n## Style Rules\n\n### 1. Narrative Headlines\nHeadlines tell the story, not label the content.\n\n| Bad | Good |\n|-----|------|\n| \"Key Statistics\" | \"Usage doubled in 6 months\" |\n| \"Our Solution\" | \"One platform replaces five tools\" |\n| \"Benefits\" | \"Teams save 10 hours weekly\" |\n\n### 2. Avoid AI Clichés\nRemove these patterns:\n- \"Dive into\", \"explore\", \"journey\"\n- \"Let's look at\", \"let me show you\"\n- \"Exciting\", \"amazing\", \"revolutionary\"\n- \"In conclusion\", \"to summarize\"\n\n### 3. Meaningful Back Cover\nNot just \"Thank you\" or \"Questions?\"\n\nInclude one of:\n- Clear call-to-action\n- Memorable key takeaway\n- Thought-provoking closing statement\n- Contact information with purpose\n\n### 4. Consistent Visual Language\nThroughout the deck:\n- Same icon style\n- Same color usage patterns\n- Same layout grid system\n- Same typography hierarchy\n\n## Slide Structure\n\n| Position | Type | Purpose |\n|----------|------|---------|\n| 1 | Cover | Title, visual hook, topic introduction |\n| 2 to N-1 | Content | Key points, data, explanations |\n| N | Back Cover | Summary, call-to-action, memorable close |\n\n## Key Specifications\n\n| Specification | Value |\n|---------------|-------|\n| Aspect Ratio | 16:9 (landscape) |\n| Slide Count | Dynamic based on content |\n| Required Slides | Cover + Back Cover minimum |\n| Footers | None (no slide numbers, logos) |\n| Language Priority | `--lang` → source language → ask user |\n| Tone | Direct, confident (avoid AI phrases) |\n\n## Style Quick Reference\n\n| Style | Visual Summary |\n|-------|----------------|\n| `sketch-notes` | Hand-drawn, warm off-white, conceptual icons |\n| `blueprint` | Technical schematics, grid texture, blue tones |\n| `bold-editorial` | High contrast, dark backgrounds, magazine impact |\n| `vector-illustration` | Flat vector, black outlines, retro colors |\n| `minimal` | Maximum whitespace, single accent, zen-like |\n| `storytelling` | Full-bleed imagery, cinematic, emotional |\n| `warm` | Soft gradients, rounded shapes, wellness palette |\n| `notion` | Dashboard aesthetic, clean data viz, SaaS-inspired |\n| `corporate` | Navy/gold, structured layouts, business polish |\n| `playful` | Vibrant coral/teal/yellow, dynamic, energetic |\n\nFull style specifications: `references/styles/<style>.md`\n\nFile v1.117.4:references/design-guidelines.md\n\n# Design Guidelines\n\nDetailed design principles for slide decks.\n\n## Audience Guidelines\n\nDesign decisions adapt to target audience. Use `--audience` to set.\n\n| Audience | Content Density | Visual Style | Terminology | Slides |\n|----------|-----------------|--------------|-------------|--------|\n| `beginners` | Low | Friendly, illustrative | Plain language | 8-15 |\n| `intermediate` | Medium | Balanced, structured | Some jargon OK | 10-20 |\n| `experts` | High | Data-rich, precise | Technical terms | 12-25 |\n| `executives` | Low-Medium | Clean, impactful | Business language | 8-12 |\n| `general` | Medium | Accessible, engaging | Minimal jargon | 10-18 |\n\n### Audience → Density Mapping\n\nRecommended density dimension based on audience:\n\n| Audience | Recommended Density | Rationale |\n|----------|-------------------|-----------|\n| `executives` | minimal | One insight per slide, respect time |\n| `beginners` | minimal → balanced | Single concepts, build understanding |\n| `general` | balanced | Accessible but informative |\n| `intermediate` | balanced | Standard information density |\n| `experts` | balanced → dense | Can handle more data per slide |\n\n**Automatic Density Selection**:\n- If `--audience executives` → default to `minimal` density\n- If `--audience beginners` → default to `minimal` or `balanced`\n- If `--audience experts` → allow `dense` density\n- Otherwise → default to `balanced`\n\n### Audience-Specific Principles\n\n**Beginners**:\n- One concept per slide\n- Visual metaphors over abstract diagrams\n- Step-by-step progression\n- Generous whitespace\n\n**Experts**:\n- Multiple data points per slide acceptable\n- Technical diagrams with precise labels\n- Assume domain knowledge\n- Dense but organized information\n\n**Executives**:\n- Lead with insights, not data\n- \"So what?\" on every slide\n- Decision-enabling content\n- Bottom-line upfront (BLUF)\n\n## Visual Hierarchy Principles\n\n| Principle | Description |\n|-----------|-------------|\n| Focal Point | ONE dominant element per slide draws attention first |\n| Rule of Thirds | Position key elements at grid intersections |\n| Z-Pattern | Guide eye: top-left → top-right → bottom-left → bottom-right |\n| Size Contrast | Headlines 2-3x larger than body text |\n| Breathing Room | Minimum 10% margin from all edges |\n\n## Content Density\n\nSee `references/dimensions/density.md` for full density dimension specs.\n\n| Level | Description | Use When |\n|-------|-------------|----------|\n| High | Multiple data points, detailed charts, dense text | Expert audience, technical reviews |\n| Medium | Key points with supporting details | General business, mixed audiences |\n| Low | One main idea, large visuals, minimal text | Beginners, keynotes, emotional impact |\n\n**High-Density Principles** (McKinsey-style):\n- Every element earns its space\n- Data speaks louder than decoration\n- Annotations explain insights, not describe data\n- White space is strategic, not filler\n\n**Density by Slide Type**:\n| Slide Type | Recommended Density |\n|------------|-------------------|\n| Cover/Title | minimal |\n| Agenda/Overview | balanced |\n| Content/Analysis | balanced or dense |\n| Data/Metrics | dense |\n| Quote/Impact | minimal |\n| Summary/Takeaway | balanced |\n\n## Color Selection\n\nSee `references/dimensions/mood.md` for full mood dimension specs.\n\n**Content-First Approach**:\n1. Analyze content topic, mood, and industry\n2. Consider target audience expectations\n3. Match palette to subject matter\n4. Ensure strong contrast for readability\n\n**Quick Palette Guide**:\n| Content Type | Recommended Mood |\n|--------------|-----------------|\n| Technical/Architecture | cool |\n| Educational/Friendly | warm |\n| Corporate/Professional | professional |\n| Creative/Artistic | vibrant |\n| Scientific/Medical | cool or neutral |\n| Entertainment/Gaming | dark or vibrant |\n\n## Typography Principles\n\nSee `references/dimensions/typography.md` for full typography dimension specs.\n\n| Element | Treatment |\n|---------|-----------|\n| Headlines | Bold, 2-3x body size, narrative style |\n| Body Text | Regular weight, readable size |\n| Captions | Smaller, lighter weight |\n| Data Labels | Monospace for technical content |\n| Emphasis | Use bold or color, not underlines |\n\n## Font Recommendations\n\n**English Fonts**:\n| Font | Style | Best For |\n|------|-------|----------|\n| Liter | Sans-serif, geometric | Modern, clean, technical |\n| HedvigLettersSans | Sans-serif, distinctive | Brand-forward, creative |\n| Oranienbaum | High-contrast serif | Elegant, classical |\n| SortsMillGoudy | Classical serif | Traditional, readable |\n| Coda | Round sans-serif | Friendly, approachable |\n\n**Chinese Fonts**:\n| Font | Style | Best For |\n|------|-------|----------|\n| MiSans | Modern sans-serif | Clean, versatile, screen-optimized |\n| Noto Sans SC | Neutral sans-serif | Standard, multilingual |\n| siyuanSongti | Refined Song typeface | Elegant, editorial |\n| alimamashuheiti | Geometric sans-serif | Commercial, structured |\n| LXGW Bright | Song-Kai hybrid | Warm, readable |\n\n**Multilingual Pairing**:\n| Use Case | English | Chinese |\n|----------|---------|---------|\n| Technical | Liter | MiSans |\n| Editorial | Oranienbaum | siyuanSongti |\n| Friendly | Coda | LXGW Bright |\n| Corporate | HedvigLettersSans | alimamashuheiti |\n\n## Visual Elements Reference\n\nSee `references/dimensions/texture.md` for full texture dimension specs.\n\n### Background Treatments\n\n| Treatment | Description | Best For |\n|-----------|-------------|----------|\n| Solid color | Single background color | Clean, minimal |\n| Split background | Two colors, diagonal or vertical | Contrast, sections |\n| Gradient | Subtle vertical or diagonal fade | Modern, dynamic |\n| Textured | Pattern or texture overlay | Character, style |\n\n### Typography Treatments\n\n| Treatment | Description | Best For |\n|-----------|-------------|----------|\n| Size contrast | 3-4x difference headline vs body | Impact, hierarchy |\n| All-caps headers | Uppercase with letter spacing | Authority, structure |\n| Monospace data | Fixed-width for numbers/code | Technical, precision |\n| Hand-drawn | Organic, imperfect letterforms | Friendly, approachable |\n\n### Geometric Accents\n\n| Element | Description | Best For |\n|---------|-------------|----------|\n| Diagonal dividers | Angled section separators | Energy, movement |\n| Corner brackets | L-shaped frames | Focus, framing |\n| Circles/hexagons | Shape frames for images | Modern, tech |\n| Underline accents | Thick lines under headers | Emphasis, hierarchy |\n\n## Consistency Requirements\n\n| Element | Guideline |\n|---------|-----------|\n| Spacing | Consistent margins and padding throughout |\n| Colors | Maximum 3-4 colors per slide, palette consistent across deck |\n| Typography | Same font families and sizes for same content types |\n| Visual Language | Repeat patterns, shapes, and treatments |\n\n## Dimension Combination Guide\n\nWhen combining dimensions, consider compatibility:\n\n| Audience | Recommended Dimensions |\n|----------|----------------------|\n| Executives | clean + neutral + geometric + minimal |\n| Beginners | organic + warm + humanist + minimal |\n| General | any texture + any mood + humanist/geometric + balanced |\n| Experts | grid/clean + cool + technical + balanced/dense |\n\n| Content Type | Recommended Dimensions |\n|--------------|----------------------|\n| Tutorial | organic + warm + handwritten + balanced |\n| Technical | grid + cool + technical + balanced |\n| Business | clean + professional + geometric + balanced |\n| Creative | organic + vibrant + humanist + balanced |\n| Data-heavy | clean + cool + technical + dense |\n\nFile v1.117.4:references/dimensions/density.md\n\n# Density Dimension\n\nInformation density per slide.\n\n## Options\n\n| Option | Content/Slide | Whitespace | Best For |\n|--------|---------------|------------|----------|\n| `minimal` | One focus point | Maximum | Executive briefings, keynotes, emotional impact |\n| `balanced` | 2-3 key points | Standard | General presentations, mixed audiences |\n| `dense` | Multiple data points | Compact | Data-heavy, technical reviews, detailed analysis |\n\n## Rendering Guidelines\n\n### minimal\n\n- ONE main idea per slide\n- Large visuals dominate\n- Minimal text (headline + 1-2 lines max)\n- Generous margins (15%+ from edges)\n- Maximum breathing room between elements\n- Let single element carry full weight\n\n**Principles**:\n- \"One slide, one message\"\n- Visual > text\n- Empty space is intentional\n- Every element must earn its space\n\n### balanced\n\n- 2-3 key points per slide\n- Standard margins (10% from edges)\n- Balanced text/visual ratio\n- Clear hierarchy with supporting details\n- Comfortable reading experience\n\n**Principles**:\n- Primary point + supporting context\n- Visuals complement text\n- Structured but not crowded\n- Good for diverse audiences\n\n### dense\n\n- Multiple data points acceptable\n- Compact margins (5-8% from edges)\n- Information-rich layouts\n- Charts, tables, detailed annotations\n- Assume engaged, attentive audience\n\n**Principles**:\n- Data speaks louder than decoration\n- Annotations explain insights\n- White space is strategic\n- Every pixel serves a purpose\n\n## Audience → Density Mapping\n\n| Audience | Recommended Density |\n|----------|-------------------|\n| Executives | minimal |\n| Beginners | minimal to balanced |\n| General | balanced |\n| Intermediate | balanced |\n| Experts | balanced to dense |\n\n## Slide Type → Density Guidelines\n\n| Slide Type | Recommended Density |\n|------------|-------------------|\n| Cover/Title | minimal |\n| Section break | minimal |\n| Quote/Impact | minimal |\n| Agenda/Overview | balanced |\n| Content/Analysis | balanced or dense |\n| Summary/Takeaway | balanced |\n| Data/Metrics | dense |\n\n## Content Guidelines Per Density\n\n### minimal\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Large (40-60pt equivalent) |\n| Body text | Minimal or none |\n| Bullet points | 0-2 max |\n| Visual elements | 1 dominant element |\n| Charts/Data | 1 key stat only |\n\n### balanced\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Medium-large (32-48pt equivalent) |\n| Body text | 2-4 lines |\n| Bullet points | 2-4 |\n| Visual elements | 1-2 elements |\n| Charts/Data | Simple charts OK |\n\n### dense\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Medium (24-36pt equivalent) |\n| Body text | Multiple paragraphs OK |\n| Bullet points | 4-6+ |\n| Visual elements | Multiple allowed |\n| Charts/Data | Complex charts, tables OK |\n\n## Combination Notes\n\n| Density | Works Best With | Avoid With |\n|---------|-----------------|------------|\n| minimal | neutral mood, geometric typography | dense data content |\n| balanced | any mood/typography | extremes (too sparse or too packed) |\n| dense | cool mood, technical typography | handwritten typography, organic texture |\n\nFile v1.117.4:references/dimensions/mood.md\n\n# Mood Dimension\n\nColor temperature and palette style.\n\n## Options\n\n| Option | Color Temperature | Palette Style | Best For |\n|--------|-------------------|---------------|----------|\n| `professional` | Cool-neutral | Navy, gold, structured grays | Business, investor, corporate |\n| `warm` | Warm | Earth tones, oranges, natural colors | Education, friendly, approachable |\n| `macaron` | Warm | Pastel blocks (blue, mint, lavender, peach) on cream | Educational diagrams, knowledge sharing |\n| `cool` | Cool | Blues, grays, cyan, teal | Technical, data, analytical |\n| `vibrant` | Varied | High saturation, bold colors | Marketing, creative, attention-grabbing |\n| `dark` | Dark | Deep backgrounds with bright accents | Entertainment, gaming, atmospheric |\n| `neutral` | Neutral | Minimal color, grayscale focus | Executive, minimal, sophisticated |\n\n## Palette Specifications\n\n### professional\n\n```\nBackground: #FFFFFF (Pure White)\nPrimary Text: #1E3A5F (Navy)\nSecondary Text: #4A5568 (Dark Gray)\nAccent 1: #C9A227 (Gold)\nAccent 2: #3D5A80 (Light Navy)\n```\n\n### warm\n\n```\nBackground: #FAF8F0 (Warm Off-White)\nPrimary Text: #2C3E50 (Deep Charcoal)\nSecondary Text: #4A4A4A (Deep Brown)\nAccent 1: #F4A261 (Soft Orange)\nAccent 2: #E9C46A (Mustard Yellow)\nAccent 3: #87A96B (Sage Green)\n```\n\n### macaron\n\n```\nBackground: #F5F0E8 (Warm Cream)\nPrimary Text: #2D2D2D (Deep Charcoal)\nMuted Text: #6B6B6B (Warm Gray)\nMacaron Blue: #A8D8EA (Sky Blue)\nMacaron Mint: #B5E5CF (Mint Green)\nMacaron Lavender: #D5C6E0 (Lavender)\nMacaron Peach: #FFD5C2 (Peach)\nAccent: #E8655A (Coral Red)\n```\n\n### cool\n\n```\nBackground: #FAF8F5 (Blueprint Off-White)\nPrimary Text: #334155 (Deep Slate)\nSecondary Text: #64748B (Slate Gray)\nAccent 1: #2563EB (Engineering Blue)\nAccent 2: #1E3A5F (Navy Blue)\nAccent 3: #BFDBFE (Light Blue)\n```\n\n### vibrant\n\n```\nBackground: #FFFFFF or #1A1A2E (Light or Dark)\nPrimary Text: #1A1A2E or #FFFFFF\nAccent 1: #E94560 (Coral Red)\nAccent 2: #0F3460 (Deep Blue)\nAccent 3: #16C79A (Teal Green)\nAccent 4: #F9B208 (Golden Yellow)\n```\n\n### dark\n\n```\nBackground: #0D1117 (Deep Black)\nPrimary Text: #E6EDF3 (Soft White)\nSecondary Text: #8B949E (Muted Gray)\nAccent 1: #58A6FF (Bright Blue)\nAccent 2: #7EE787 (Bright Green)\nAccent 3: #FF7B72 (Coral)\n```\n\n### neutral\n\n```\nBackground: #FFFFFF (Pure White)\nPrimary Text: #18181B (Near Black)\nSecondary Text: #71717A (Medium Gray)\nAccent 1: #18181B (Black)\nAccent 2: #A1A1AA (Light Gray)\n```\n\n## Rendering Guidelines\n\n### professional\n\n- Restrained use of accent colors\n- Gold for emphasis only\n- Clean, institutional feel\n- Balanced contrast\n\n### warm\n\n- Generous use of warm tones\n- Natural, approachable colors\n- Soft transitions between colors\n- Welcoming atmosphere\n\n### macaron\n\n- Soft pastel color blocks as distinct information zones\n- Each zone uses one macaron color (blue, mint, lavender, peach)\n- Coral Red accent used sparingly for emphasis\n- Warm cream background maintains friendly, approachable feel\n\n### cool\n\n- Blue-dominant palette\n- Technical precision in color use\n- High contrast for clarity\n- Analytical, trustworthy feel\n\n### vibrant\n\n- Bold color combinations\n- High saturation throughout\n- Dynamic color contrasts\n- Energetic visual presence\n\n### dark\n\n- Deep backgrounds dominate\n- Accent colors pop against dark\n- Glowing/luminous effects\n- Cinematic atmosphere\n\n### neutral\n\n- Minimal color usage\n- Typography carries weight\n- Grayscale hierarchy\n- Maximum sophistication\n\n## Combination Notes\n\n| Mood | Works Best With | Avoid With |\n|------|-----------------|------------|\n| professional | clean texture, geometric typography | organic texture, handwritten |\n| warm | organic texture, humanist typography | pixel texture, minimal density |\n| macaron | organic texture, handwritten typography | pixel texture, dark mood |\n| cool | grid texture, technical typography | paper texture, handwritten |\n| vibrant | pixel/organic texture, editorial typography | neutral mood overlaps |\n| dark | clean/pixel texture, technical typography | paper texture |\n| neutral | clean texture, geometric typography | organic texture, vibrant elements |\n\nFile v1.117.4:references/dimensions/presets.md\n\n# Preset → Dimension Mapping\n\nMaps 16 preset styles to their dimension combinations.\n\n## Mapping Table\n\n| Preset | Texture | Mood | Typography | Density |\n|--------|---------|------|------------|---------|\n| blueprint | grid | cool | technical | balanced |\n| chalkboard | organic | warm | handwritten | balanced |\n| corporate | clean | professional | geometric | balanced |\n| minimal | clean | neutral | geometric | minimal |\n| sketch-notes | organic | warm | handwritten | balanced |\n| hand-drawn-edu | organic | macaron | handwritten | balanced |\n| watercolor | organic | warm | humanist | minimal |\n| dark-atmospheric | clean | dark | editorial | balanced |\n| notion | clean | neutral | geometric | dense |\n| bold-editorial | clean | vibrant | editorial | balanced |\n| editorial-infographic | clean | cool | editorial | dense |\n| fantasy-animation | organic | vibrant | handwritten | minimal |\n| intuition-machine | clean | cool | technical | dense |\n| pixel-art | pixel | vibrant | technical | balanced |\n| scientific | clean | cool | technical | dense |\n| vector-illustration | clean | vibrant | humanist | balanced |\n| vintage | paper | warm | editorial | balanced |\n\n## Preset Details\n\n### blueprint\n- **Dimensions**: grid + cool + technical + balanced\n- **Feel**: Engineering precision, analytical clarity\n- **Auto-select**: architecture, system, data, analysis, technical\n\n### chalkboard\n- **Dimensions**: organic + warm + handwritten + balanced\n- **Feel**: Classroom warmth, educational\n- **Auto-select**: classroom, teaching, school, chalkboard\n\n### corporate\n- **Dimensions**: clean + professional + geometric + balanced\n- **Feel**: Business credibility, institutional trust\n- **Auto-select**: investor, quarterly, business, corporate\n\n### minimal\n- **Dimensions**: clean + neutral + geometric + minimal\n- **Feel**: Maximum sophistication, executive focus\n- **Auto-select**: executive, minimal, clean, simple\n\n### sketch-notes\n- **Dimensions**: organic + warm + handwritten + balanced\n- **Feel**: Friendly learning, approachable education\n- **Auto-select**: tutorial, learn, education, guide, beginner\n\n### hand-drawn-edu\n- **Dimensions**: organic + macaron + handwritten + balanced\n- **Feel**: Hand-drawn educational infographic, macaron pastel zones\n- **Auto-select**: hand-drawn, infographic, diagram, process, onboarding\n\n### watercolor\n- **Dimensions**: organic + warm + humanist + minimal\n- **Feel**: Artistic, natural, lifestyle\n- **Auto-select**: lifestyle, wellness, travel, artistic\n\n### dark-atmospheric\n- **Dimensions**: clean + dark + editorial + balanced\n- **Feel**: Cinematic, entertainment\n- **Auto-select**: entertainment, music, gaming, atmospheric\n\n### notion\n- **Dimensions**: clean + neutral + geometric + dense\n- **Feel**: SaaS professional, data-forward\n- **Auto-select**: saas, product, dashboard, metrics\n\n### bold-editorial\n- **Dimensions**: clean + vibrant + editorial + balanced\n- **Feel**: Magazine impact, keynote drama\n- **Auto-select**: launch, marketing, keynote, magazine\n\n### editorial-infographic\n- **Dimensions**: clean + cool + editorial + dense\n- **Feel**: Publication quality, informative\n- **Auto-select**: explainer, journalism, science communication\n\n### fantasy-animation\n- **Dimensions**: organic + vibrant + handwritten + minimal\n- **Feel**: Magical, storytelling\n- **Auto-select**: story, fantasy, animation, magical\n\n### intuition-machine\n- **Dimensions**: clean + cool + technical + dense\n- **Feel**: Technical briefing, bilingual documentation\n- **Auto-select**: briefing, academic, research, bilingual\n\n### pixel-art\n- **Dimensions**: pixel + vibrant + technical + balanced\n- **Feel**: Retro gaming, developer culture\n- **Auto-select**: gaming, retro, pixel, developer\n\n### scientific\n- **Dimensions**: clean + cool + technical + dense\n- **Feel**: Academic precision, research quality\n- **Auto-select**: biology, chemistry, medical, scientific\n\n### vector-illustration\n- **Dimensions**: clean + vibrant + humanist + balanced\n- **Feel**: Flat design, friendly creative\n- **Auto-select**: creative, children, kids, cute\n\n### vintage\n- **Dimensions**: paper + warm + editorial + balanced\n- **Feel**: Historical, heritage storytelling\n- **Auto-select**: history, heritage, vintage, expedition\n\n## Building Custom Combinations\n\nWhen user selects \"Custom dimensions\", combine any:\n\n- **Texture** (5): clean, grid, organic, pixel, paper\n- **Mood** (6): professional, warm, cool, vibrant, dark, neutral\n- **Typography** (5): geometric, humanist, handwritten, editorial, technical\n- **Density** (3): minimal, balanced, dense\n\nTotal possible combinations: 5 × 7 × 5 × 3 = **525 unique styles**\n\n## Recommended Combinations (Beyond Presets)\n\n| Custom Name | Texture | Mood | Typography | Density | Use Case |\n|-------------|---------|------|------------|---------|----------|\n| tech-minimal | clean | neutral | technical | minimal | Developer keynotes |\n| warm-editorial | paper | warm | editorial | balanced | Heritage brands |\n| dark-technical | grid | dark | technical | dense | Security, DevOps |\n| playful-clean | clean | vibrant | humanist | balanced | Startups, apps |\n\nArchive v1.117.3: 36 files, 63321 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3967b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), skill-card.md (2605b), SKILL.md (21853b), _meta.json (137b)\n\nFile v1.117.3:SKILL.md\n\n---\nname: baoyu-slide-deck\ndescription: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", or \"PPT\".\nversion: 1.117.3\nmetadata:\n  openclaw:\n    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-slide-deck\n    requires:\n      anyBins:\n        - bun\n        - npx\n---\n\n# Slide Deck Generator\n\nTransform content into professional slide deck images. The deck is designed for **reading and sharing** (self-explanatory slides, logical scroll flow, social-media-friendly) rather than live presentation — that assumption drives every layout and density decision below.\n\n## User Input Tools\n\nWhen this skill prompts the user, follow this tool-selection rule (priority order):\n\n1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.\n2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.\n3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.\n\nConcrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.\n\n## Image Generation Tools\n\nWhen this skill needs to render an image, resolve the backend in this order:\n\n1. **Current-request override** — if the user names a specific backend in the current message, use it.\n2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.\n3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):\n   - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: \"imagegen\"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`.\n   - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way.\n   - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-image-gen`), use it.\n   - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions.\n4. **If none are available**, tell the user and ask how to proceed.\n\n**⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.** Codex `imagegen`'s own description says it should be used \"when the output should be a bitmap asset rather than repo-native code or vector.\" If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user — do **not** silently emit SVG, write inline `<svg>` markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems \"diagram-like\": the consumer skill calling this rule has already decided that a raster image is what it needs.\n\n**⛔ Never repair rendered text by painting over a generated bitmap.** Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace slide titles, bullets, or any other text inside an already generated slide image. If text is wrong or unclear, regenerate from a corrected prompt, simplify the slide's on-image text, or ask the user which imperfect candidate to keep.\n\nSetting `preferred_image_backend: ask` forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the `## Changing Preferences` section below.\n\n**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/` (naming: `NN-slide-[slug].md`) BEFORE invoking any backend. The file is the reproducibility record and lets you switch backends without regenerating prompts.\n\nConcrete tool names (`imagegen`, `image_generate`, `baoyu-image-gen`) above are examples — substitute the local equivalents under the same rule.\n\n## Batch Generation Policy\n\nAfter every prompt file for the current generation group has been saved and verified, generate slide images in batches by default.\n\nPriority order:\n\n1. Use the chosen backend's native batch / multi-task interface if it exists. Each task must keep its own prompt file, output path, aspect ratio, session ID, and direct reference images.\n2. If no native batch interface exists but the runtime can issue parallel tool calls, dispatch up to `generation_batch_size` slide images at a time. Default: `4`. An explicit user request in the current message, such as `--batch-size 4` or \"并行4张一起生成\", overrides EXTEND.md.\n3. If neither native batch nor parallel tool calls are available, generate sequentially.\n\nRules:\n\n- Never start the first batch until all selected slide prompt files exist on disk.\n- Retry failed items once without regenerating successful items.\n- Do not use subagents merely to parallelize image rendering. Use subagents only for separate prompt iteration or creative exploration.\n- Merge PPTX/PDF only after all selected slide images are generated.\n\n## Confirmation Policy\n\nDefault behavior: **confirm before generation**.\n\n- Treat explicit skill invocation, a file path, matched signals/presets, and `EXTEND.md` defaults as **recommendation inputs only**. None of them authorizes skipping confirmation.\n- Do **not** start Step 3 or later until the user completes Step 2.\n- Skip confirmation only when the current request explicitly says to do so, for example: \"直接生成\", \"不用确认\", \"跳过确认\", \"按默认出幻灯片\", or equivalent wording.\n- If confirmation is skipped explicitly, state the assumed style / audience / slide-count / language / backend in the next user-facing update before generating.\n\n## Language\n\nRespond in the user's language across questions, progress reports, error messages, and the completion summary. Keep technical tokens (style names, file paths, code) in English.\n\n## Script Directory\n\n`{baseDir}` = this SKILL.md's directory. Resolve `${BUN_X}`: prefer `bun`; else `npx -y bun`; else suggest `brew install oven-sh/bun/bun`.\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/merge-to-pptx.ts` | Merge slides into PowerPoint |\n| `scripts/merge-to-pdf.ts` | Merge slides into PDF |\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `--style <name>` | Preset (see Presets below), `custom`, or custom style name |\n| `--audience <type>` | beginners / intermediate / experts / executives / general |\n| `--lang <code>` | Output language (en, zh, ja, ...) |\n| `--slides <N>` | Target slide count (8-25 recommended, max 30) |\n| `--ref <files...>` | Reference images applied per slide (style / palette / composition / subject) |\n| `--batch-size <n>` | Temporary slide image generation batch size for this run. Default: `generation_batch_size` from EXTEND.md, otherwise 4. Clamp to 1-8. |\n| `--outline-only` | Stop after outline |\n| `--prompts-only` | Stop after prompts (skip image generation) |\n| `--images-only` | Skip to Step 7; requires existing `prompts/` |\n| `--regenerate <N>` | Regenerate specific slide(s): `3` or `2,5,8` |\n\n## Style System\n\n17 presets covering technical / educational / lifestyle / editorial use cases. Every preset is a combination of four dimensions (texture / mood / typography / density). If the user picks \"Custom dimensions\" in Round 1, Round 2 of the confirmation asks one question per dimension — options and verbatim copy live in `references/confirmation.md`.\n\n### Presets (17)\n\n| Preset | Dimensions | Best For |\n|--------|------------|----------|\n| `blueprint` (Default) | grid + cool + technical + balanced | Architecture, system design |\n| `chalkboard` | organic + warm + handwritten + balanced | Education, tutorials |\n| `corporate` | clean + professional + geometric + balanced | Investor decks, proposals |\n| `minimal` | clean + neutral + geometric + minimal | Executive briefings |\n| `sketch-notes` | organic + warm + handwritten + balanced | Educational, tutorials |\n| `hand-drawn-edu` | organic + macaron + handwritten + balanced | Educational diagrams, process explainers |\n| `watercolor` | organic + warm + humanist + minimal | Lifestyle, wellness |\n| `dark-atmospheric` | clean + dark + editorial + balanced | Entertainment, gaming |\n| `notion` | clean + neutral + geometric + dense | Product demos, SaaS |\n| `bold-editorial` | clean + vibrant + editorial + balanced | Product launches, keynotes |\n| `editorial-infographic` | clean + cool + editorial + dense | Tech explainers, research |\n| `fantasy-animation` | organic + vibrant + handwritten + minimal | Educational storytelling |\n| `intuition-machine` | clean + cool + technical + dense | Technical docs, academic |\n| `pixel-art` | pixel + vibrant + technical + balanced | Gaming, developer talks |\n| `scientific` | clean + cool + technical + dense | Biology, chemistry, medical |\n| `vector-illustration` | clean + vibrant + humanist + balanced | Creative, children's content |\n| `vintage` | paper + warm + editorial + balanced | Historical, heritage |\n\nPer-preset specs: `references/styles/<preset>.md`. Preset → dimension mapping: `references/dimensions/presets.md`.\n\n### Dimensions (when \"Custom dimensions\" picked)\n\n| Dimension | Options | Purpose |\n|-----------|---------|---------|\n| **Texture** | clean, grid, organic, pixel, paper | Background treatment |\n| **Mood** | professional, warm, cool, vibrant, dark, neutral, macaron | Color temperature |\n| **Typography** | geometric, humanist, handwritten, editorial, technical | Headline/body styling |\n| **Density** | minimal, balanced, dense | Information per slide |\n\nFull per-dimension specs: `references/dimensions/*.md`.\n\n### Auto-Selection\n\nMatch content signals to a preset. Pick the first row whose signal keywords appear in the source; fall back to `blueprint` if nothing matches.\n\n| Signals in source | Preset |\n|-------------------|--------|\n| tutorial, learn, education, guide, beginner | `sketch-notes` |\n| hand-drawn, infographic, diagram, process, onboarding | `hand-drawn-edu` |\n| classroom, teaching, school, chalkboard | `chalkboard` |\n| architecture, system, data, analysis, technical | `blueprint` |\n| creative, children, kids, cute | `vector-illustration` |\n| briefing, academic, research, bilingual | `intuition-machine` |\n| executive, minimal, clean, simple | `minimal` |\n| saas, product, dashboard, metrics | `notion` |\n| investor, quarterly, business, corporate | `corporate` |\n| launch, marketing, keynote, magazine | `bold-editorial` |\n| entertainment, music, gaming, atmospheric | `dark-atmospheric` |\n| explainer, journalism, science communication | `editorial-infographic` |\n| story, fantasy, animation, magical | `fantasy-animation` |\n| gaming, retro, pixel, developer | `pixel-art` |\n| biology, chemistry, medical, scientific | `scientific` |\n| history, heritage, vintage, expedition | `vintage` |\n| lifestyle, wellness, travel, artistic | `watercolor` |\n\n### Slide Count Heuristic\n\n| Source length | Recommended slides |\n|---------------|--------------------|\n| < 1000 words | 5-10 |\n| 1000-3000 words | 10-18 |\n| 3000-5000 words | 15-25 |\n| > 5000 words | 20-30 (consider splitting) |\n\n## Reference Images\n\nUsers may supply reference images to guide style, palette, layout, or subject.\n\n**Intake**: Accept via `--ref <files...>` or when the user provides file paths / pastes images in conversation.\n- File path → copy to `{slide-deck-dir}/refs/NN-ref-{slug}.{ext}`\n- Pasted image with no path → ask for the path, or extract style traits verbally as a text fallback\n\n**Usage modes** (per reference):\n\n| Usage | Effect |\n|-------|--------|\n| `direct` | Pass the file to the backend as a reference image for each slide |\n| `style` | Extract style traits (line treatment, texture, mood) and append to every slide's prompt body |\n| `palette` | Extract hex colors and append to every slide's prompt body |\n\nRecord refs in each slide's prompt frontmatter:\n\n```yaml\nreferences:\n  - ref_id: 01\n    filename: 01-ref-brand.png\n    usage: direct\n```\n\nAt generation time, verify files exist. If `usage: direct` and the backend accepts refs (e.g., `baoyu-image-gen --ref`), pass the file on every slide. Otherwise embed extracted `style`/`palette` traits in the prompt text.\n\n## File Layout\n\n```\nslide-deck/{topic-slug}/\n├── source-{slug}.{ext}\n├── outline.md\n├── prompts/NN-slide-{slug}.md\n├── NN-slide-{slug}.png\n├── {topic-slug}.pptx\n└── {topic-slug}.pdf\n```\n\n**Slug**: 2-4 words, kebab-case, extracted from topic. \"Introduction to Machine Learning\" → `intro-machine-learning`.\n\n**Backup rule** (applies across steps): if a file about to be written already exists, rename it to `<name>-backup-YYYYMMDD-HHMMSS.<ext>` before writing the new one. This protects user edits and enables rollback.\n\n## Workflow\n\nCopy this checklist and check off items as you complete them:\n\n```\n- [ ] Step 1: Setup & analyze\n- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1; Round 2 only if \"Custom dimensions\")\n- [ ] Step 3: Generate outline\n- [ ] Step 4: Review outline (conditional)\n- [ ] Step 5: Generate prompts\n- [ ] Step 6: Review prompts (conditional)\n- [ ] Step 7: Generate images\n- [ ] Step 8: Merge to PPTX/PDF\n- [ ] Step 9: Output summary\n```\n\n### Step 1: Setup & Analyze\n\n**1.1 Load EXTEND.md** — check these paths in order; first hit wins:\n\n| Path | Scope |\n|------|-------|\n| `.baoyu-skills/baoyu-slide-deck/EXTEND.md` | Project |\n| `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-slide-deck/EXTEND.md` | XDG |\n| `$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md` | User home |\n\nIf found, read, parse, and print a summary (style / audience / language / review / generation batch size). If not, proceed with defaults — first-time setup is not blocking for this skill. Schema: `references/config/preferences-schema.md`.\n\n**1.2 Analyze content** — follow `references/analysis-framework.md`: classify content, detect language, note signals for style selection, estimate slide count from length (see the **Slide Count Heuristic** in Style System above), generate topic slug. Save source as `source.md` (honor backup rule if one exists).\n\n**1.3 Check existing output** ⚠️ REQUIRED before Step 2. If `slide-deck/{topic-slug}/` exists, ask how to proceed — four options (regenerate outline / regenerate images / backup and regenerate / exit), verbatim copy in `references/confirmation.md`.\n\nSave findings to `analysis.md`: topic, audience, signals, recommended style and slide count, language detection.\n\n### Step 2: Confirmation ⚠️ REQUIRED\n\n**Hard gate**: this step is mandatory per the [Confirmation Policy](#confirmation-policy) — Steps 3+ cannot start until the user confirms here (or explicitly opts out with \"直接生成\" / equivalent wording in the current request).\n\n**Round 1 (always)** — batch five questions in one `AskUserQuestion` call: style, audience, slide count, review-outline?, review-prompts?. Verbatim options in `references/confirmation.md`.\n\nSummary displayed before the questions:\n- Content type + topic\n- Detected language\n- Recommended style (based on signals)\n- Recommended slide count (based on length)\n\n**Round 2 (only if \"Custom dimensions\" in Round 1)** — batch four questions: texture, mood, typography, density. Verbatim options in `references/confirmation.md`. The four answers replace the preset.\n\n**After confirmation**: update `analysis.md` with final choices and store `skip_outline_review` / `skip_prompt_review` flags from Q4/Q5.\n\n### Step 3: Generate Outline\n\nResolve style: preset → `references/styles/{preset}.md`; custom dimensions → combine files in `references/dimensions/`. Build `STYLE_INSTRUCTIONS` from the resolved style, apply confirmed audience + language + slide count, follow `references/outline-template.md`, and save as `outline.md`.\n\nStop here if `--outline-only`. Skip Step 4 if `skip_outline_review`.\n\n### Step 4: Review Outline (Conditional)\n\nDisplay a slide-by-slide table (`# | Title | Type | Layout`) along with total count and resolved style. Ask: proceed / edit outline first / regenerate — verbatim in `references/confirmation.md`.\n\nOn \"Edit outline first\", tell the user to edit `outline.md` and ask again when ready. On \"Regenerate outline\", return to Step 3.\n\n### Step 5: Generate Prompts\n\nFor each slide in outline:\n1. Read `references/base-prompt.md`\n2. Extract `STYLE_INSTRUCTIONS` from the outline (don't re-read the style file)\n3. Add the slide's content\n4. If a `Layout:` is specified, include guidance from `references/layouts.md`\n5. Save to `prompts/NN-slide-{slug}.md` (backup rule applies)\n\nStop here if `--prompts-only`. Skip Step 6 if `skip_prompt_review`.\n\n### Step 6: Review Prompts (Conditional)\n\nDisplay the prompts index (`# | Filename | Slide Title`) and ask: proceed / edit prompts first / regenerate — verbatim in `references/confirmation.md`. Branches mirror Step 4.\n\n### Step 7: Generate Images\n\n1. Resolve the image backend via the Image Generation Tools rule at the top — ask once if multiple are installed.\n2. Confirm every `prompts/NN-slide-{slug}.md` exists (hard requirement; prompt files are the reproducibility record regardless of backend).\n3. Session ID: `slides-{topic-slug}-{timestamp}` — pass to the backend only if it supports sessions.\n4. Build a task list for selected slides with each slide's prompt file, output PNG path, aspect ratio, session ID, and verified direct references.\n5. Dispatch slide images in batches per the `## Batch Generation Policy`: backend native batch first, runtime parallel tool calls second, sequential only as fallback. Backup rule applies to PNG files before dispatch. Report progress as `Generated X/N`. Retry only failed items once before reporting an error.\n\n`--regenerate N` jumps to this step for the named slides only. `--images-only` starts here with existing prompts.\n\n### Step 8: Merge\n\n```bash\n${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>\n${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>\n```\n\n### Step 9: Summary\n\n```\nSlide Deck Complete!\nTopic: [topic]\nStyle: [preset or \"custom: texture+mood+typography+density\"]\nLocation: [directory]\nSlides: N\n\n- 01-slide-cover.png\n- ...\n- NN-slide-back-cover.png\n\nOutline: outline.md\nPPTX: {topic-slug}.pptx\nPDF: {topic-slug}.pdf\n```\n\n## Slide Modification\n\n| Action | How |\n|--------|-----|\n| Edit | Update `prompts/NN-slide-{slug}.md` **first**, then `--regenerate N` |\n| Add | Create new prompt at position, generate image, renumber subsequent `NN` (slugs unchanged), update `outline.md`, re-merge |\n| Delete | Remove PNG + prompt, renumber subsequent, update `outline.md`, re-merge |\n\nAlways update the prompt file before regenerating the image — this keeps the prompts directory as the source of truth and makes changes reproducible. Only `NN` changes on renumber; slugs stay stable so references remain valid.\n\nText correction policy:\n\n- If a slide's title, bullets, or any other rendered text is misspelled, garbled, hard to read, or visually weak, do not patch the bitmap with code.\n- For text-correction regenerations, write a new prompt file and a new output path so the flawed candidate is preserved for comparison.\n- Post-processing is limited to crop, resize, compression, or format conversion that does not alter text or the main composition.\n\nSee `references/modification-guide.md` for full details.\n\n## References\n\n| File | Content |\n|------|---------|\n| `references/confirmation.md` | Verbatim AskUserQuestion option copy for every confirmation |\n| `references/analysis-framework.md` | Content analysis framework |\n| `references/outline-template.md` | Outline structure |\n| `references/base-prompt.md` | Base prompt body for image generation |\n| `references/layouts.md` | Layout options |\n| `references/design-guidelines.md` | Audience, typography, color selection |\n| `references/content-rules.md` | Content guidelines |\n| `references/modification-guide.md` | Edit/add/delete workflows |\n| `references/styles/<preset>.md` | Per-preset specifications |\n| `references/dimensions/*.md` | Per-dimension specifications |\n| `references/config/preferences-schema.md` | EXTEND.md schema |\n\n## Notes\n\n- Image generation takes ~10-30s per slide; report progress between them.\n- For sensitive public figures, prefer stylized alternatives to avoid likeness issues.\n- Maintain visual consistency via the session ID when the backend supports it.\n\n## Changing Preferences\n\nEXTEND.md lives at the first matching path listed in Step 1.1. Two ways to change it:\n\n- **Edit directly** — open EXTEND.md and change fields. Full schema: `references/config/preferences-schema.md`.\n- **Common one-line edits**:\n  - `preferred_image_backend: auto` — default; runtime-native tool wins, falls back to the only installed backend, asks only if multiple non-native are present.\n  - `preferred_image_backend: codex-imagegen` — pin to Codex's built-in.\n  - `preferred_image_backend: baoyu-image-gen` — pin to the baoyu-image-gen skill.\n  - `preferred_image_backend: ask` — confirm backend every run.\n  - `generation_batch_size: 4` — default number of slide images to render concurrently when the backend/runtime supports batch or parallel generation.\n  - `preferred_style: blueprint`, `preferred_audience: experts`, `language: zh`.\n\nFile v1.117.3:_meta.json\n\n{\n  \"ownerId\": \"kn7csrrndw79hpke5d0gsnx93d82k67r\",\n  \"slug\": \"baoyu-slide-deck\",\n  \"version\": \"1.117.3\",\n  \"publishedAt\": 1779665923209\n}\n\nFile v1.117.3:references/analysis-framework.md\n\n# Presentation Analysis Framework\n\nDeep content analysis for effective slide deck creation.\n\n## 1. Message Hierarchy\n\nIdentify the core message structure before designing slides.\n\n### Core Message (One Sentence)\n- What is the single most important takeaway?\n- If the audience remembers only one thing, what should it be?\n- Can you state it in ≤15 words?\n\n### Supporting Points (3-5 Maximum)\n- What evidence supports the core message?\n- What sub-topics must be covered?\n- Prioritize by audience relevance, not source order\n\n### Call-to-Action\n- What should the audience DO after viewing?\n- Is it clear, specific, and achievable?\n- Where does it appear (slide position)?\n\n## 2. Audience Decision Matrix\n\n| Question | Analysis |\n|----------|----------|\n| Who is the primary audience? | [Role, expertise level, relationship to topic] |\n| What do they currently believe? | [Existing knowledge, assumptions, biases] |\n| What decision do we want them to make? | [Specific action or conclusion] |\n| What barriers exist? | [Objections, concerns, missing information] |\n| What evidence will convince them? | [Data types, credibility sources, emotional hooks] |\n\n### Audience Adaptation\n\n| Audience Type | Content Focus | Visual Treatment |\n|---------------|---------------|------------------|\n| Executives | Outcomes, ROI, strategic impact | High-level, clean, data highlights |\n| Technical | Architecture, implementation, specs | Detailed diagrams, code, schematics |\n| General | Benefits, stories, relatability | Visual metaphors, simple charts |\n| Investors | Market size, traction, team | Growth charts, milestones, comparisons |\n| Learners | Step-by-step, examples, practice | Progressive reveals, exercises |\n\n## 3. Visual Opportunity Map\n\nIdentify which content benefits from visualization.\n\n### Content-to-Visual Mapping\n\n| Content Type | Visual Treatment | Example |\n|--------------|------------------|---------|\n| Comparisons | Side-by-side, before/after | Feature comparison table |\n| Processes | Flow diagrams, numbered steps | Workflow illustration |\n| Hierarchies | Org charts, pyramids, trees | Organizational structure |\n| Timelines | Horizontal/vertical timelines | Project milestones |\n| Statistics | Charts, highlighted numbers | Key metrics with context |\n| Concepts | Icons, metaphors, illustrations | Abstract idea visualization |\n| Relationships | Venn diagrams, networks | Ecosystem or dependencies |\n| Lists | Structured grids, icon rows | Feature bullets with icons |\n\n### Visual Priority\n\nRate each piece of content:\n- **Must Visualize**: Complex data, key differentiators, memorable moments\n- **Should Visualize**: Supporting evidence, secondary points\n- **Text Only**: Simple statements, transitions, minor details\n\n## 4. Presentation Flow\n\nStructure for impact and retention.\n\n### Opening (First 2-3 Slides)\n\n| Element | Purpose |\n|---------|---------|\n| Hook | Capture attention (surprising stat, question, story) |\n| Context | Why this matters now |\n| Preview | What audience will learn/gain |\n\n### Middle (Content Slides)\n\n| Pattern | When to Use |\n|---------|-------------|\n| Problem → Solution | Introducing new products/ideas |\n| Situation → Complication → Resolution | Complex business cases |\n| What → Why → How | Educational content |\n| Past → Present → Future | Transformation stories |\n| Claim → Evidence → Implication | Data-driven arguments |\n\n### Closing (Final 2-3 Slides)\n\n| Element | Purpose |\n|---------|---------|\n| Synthesis | Tie back to core message |\n| Call-to-Action | Clear next steps |\n| Memorable Close | Resonant quote, image, or statement |\n\n### Transitions\n\n- Each slide should answer: \"What comes next?\"\n- Use narrative connectors between sections\n- Build logical progression, not topic jumps\n\n## 5. Content Adaptation\n\nDecide what to keep, transform, or omit.\n\n### Keep (High Value)\n- Core arguments and evidence\n- Unique insights or data\n- Audience-relevant examples\n- Memorable quotes or statistics\n\n### Simplify (Medium Value)\n- Technical details → Visual summaries\n- Long explanations → Bullet hierarchies\n- Multiple examples → Best 1-2 examples\n- Background context → Brief framing\n\n### Visualize (Transform)\n- Data tables → Charts or highlighted numbers\n- Process descriptions → Flow diagrams\n- Comparisons in text → Side-by-side visuals\n- Abstract concepts → Concrete metaphors\n\n### Omit (Low Value)\n- Tangential information\n- Redundant examples\n- Excessive caveats\n- Background the audience already knows\n\n## 6. Analysis Checklist\n\nBefore outline creation, confirm:\n\n### Message Clarity\n- [ ] Core message stated in one sentence\n- [ ] 3-5 supporting points identified\n- [ ] Call-to-action defined\n\n### Audience Fit\n- [ ] Primary audience identified\n- [ ] Existing beliefs mapped\n- [ ] Desired decision clear\n- [ ] Evidence matches audience needs\n\n### Visual Planning\n- [ ] Key visualizations identified\n- [ ] Chart/diagram types selected\n- [ ] Visual priority assigned\n\n### Flow Design\n- [ ] Opening hook defined\n- [ ] Middle pattern selected\n- [ ] Closing approach planned\n- [ ] Transitions considered\n\n### Content Decisions\n- [ ] Keep/simplify/visualize/omit applied\n- [ ] Source material fully processed\n- [ ] No important content overlooked\n\nFile v1.117.3:references/base-prompt.md\n\nCreate a presentation slide image following these guidelines:\n\n## Image Specifications\n\n- **Type**: Presentation slide\n- **Aspect Ratio**: 16:9 (landscape)\n- **Style**: Professional slide deck\n\n## Core Persona: The Architect\n\nYou are \"The Architect\" - a master visual storyteller creating presentation slides. Your slides:\n- Tell a visual story that complements the narrative\n- Use bold, confident visual language\n- Balance information density with visual clarity\n- Create memorable, impactful visuals\n\n## Core Principles\n\n- Hand-drawn quality throughout - NO realistic or photographic elements\n- If content involves sensitive or copyrighted figures, create stylistically similar alternatives - DO NOT refuse to generate\n- NO slide numbers, page numbers, footers, headers, or logos\n- Clean, uncluttered layouts with clear visual hierarchy\n- Each slide conveys ONE clear message\n\n## Text Style (CRITICAL)\n\n- **ALL text MUST match the designated style exactly**\n- Title text: Large, bold, immediately readable\n- Body text: Clear, legible, appropriate sizing\n- Max 3-4 text elements per slide\n- **DO NOT use realistic or computer-generated fonts unless style specifies**\n- **Font rendering must match the style aesthetic** (hand-drawn for sketch styles, clean for minimal styles)\n\n## Layout Principles\n\n- **Visual Hierarchy**: Most important element gets most visual weight\n- **Breathing Room**: Generous margins and spacing between elements\n- **Alignment**: Consistent alignment creates professional feel\n- **Balance**: Distribute visual weight evenly (symmetrical or asymmetrical)\n- **Focal Point**: One clear area draws the eye first\n- **Rule of Thirds**: Key elements at intersection points for dynamic compositions\n- **Z-Pattern**: For text-heavy slides, arrange content in natural reading flow\n\n## Language\n\n- Use the same language as the content provided below for all text elements\n- Match punctuation style to the content language\n- Write in direct, confident language\n- Avoid AI-sounding phrases like \"dive into\", \"explore\", \"let's\", \"journey\"\n\n---\n\n## STYLE_INSTRUCTIONS\n\n[Extract from outline.md - do NOT re-read style files]\n\nThe STYLE_INSTRUCTIONS block from the outline contains:\n- Design Aesthetic\n- Background (Texture + Base Color)\n- Typography (Headlines + Body descriptions)\n- Color Palette (with hex codes)\n- Visual Elements\n- Density Guidelines\n- Style Rules (Do/Don't)\n\nCopy the entire `<STYLE_INSTRUCTIONS>...</STYLE_INSTRUCTIONS>` block from the outline here.\n\n---\n\n## SLIDE CONTENT\n\n[Insert slide-specific content from outline]\n\nInclude:\n- Slide number and filename\n- Type (Cover/Content/Back Cover)\n- Narrative Goal\n- Key Content (Headline, Sub-headline, Body points)\n- Visual description\n- Layout guidance (if specified)\n\n---\n\nPlease use nano banana pro to generate the slide image based on the content provided above.\n\nFile v1.117.3:references/config/preferences-schema.md\n\n# EXTEND.md Schema\n\nStructure for user preferences in `.baoyu-skills/baoyu-slide-deck/EXTEND.md`.\n\n## Full Schema\n\n```yaml\n# Slide Deck Preferences\n\n## Defaults\nstyle: blueprint              # Preset name OR \"custom\"\naudience: general             # beginners | intermediate | experts | executives | general\nlanguage: auto                # auto | en | zh | ja | etc.\nreview: true                  # true = review outline before generation\npreferred_image_backend: auto # auto | ask | <backend-id>\ngeneration_batch_size: 4      # 1-8, used when backend/runtime supports batch or parallel slide generation\n\n## Custom Dimensions (only when style: custom)\ndimensions:\n  texture: clean              # clean | grid | organic | pixel | paper\n  mood: professional          # professional | warm | cool | vibrant | dark | neutral\n  typography: geometric       # geometric | humanist | handwritten | editorial | technical\n  density: balanced           # minimal | balanced | dense\n\n## Custom Styles (optional)\ncustom_styles:\n  my-style:\n    texture: organic\n    mood: warm\n    typography: humanist\n    density: minimal\n    description: \"My custom warm and friendly style\"\n```\n\n## Field Descriptions\n\n### Defaults\n\n| Field | Type | Default | Description |\n|-------|------|---------|-------------|\n| `style` | string | `blueprint` | Preset name, `custom`, or custom style name |\n| `audience` | string | `general` | Default target audience |\n| `language` | string | `auto` | Output language (auto = detect from input) |\n| `review` | boolean | `true` | Show outline review before generation |\n| `preferred_image_backend` | string | `auto` | Image backend selection. `auto` = prefer runtime-native tool, fall back to the only installed backend, ask if multiple non-native are present. `ask` = always confirm on every run. `<backend-id>` (e.g., `codex-imagegen`, `baoyu-image-gen`, `image_generate`) = pin this backend when available; fall back to `auto` when it isn't. Absent = `auto`. Resolution logic is documented in `SKILL.md`'s `## Image Generation Tools` section. |\n| `generation_batch_size` | int | 4 | Number of slide images to dispatch per batch when the backend has native batch support or the runtime can issue parallel generation calls. Clamp invalid values to 1-8. Current user request overrides this value. |\n\n### Custom Dimensions\n\nOnly used when `style: custom`. Defines dimension values directly.\n\n| Field | Options | Default |\n|-------|---------|---------|\n| `texture` | clean, grid, organic, pixel, paper | clean |\n| `mood` | professional, warm, cool, vibrant, dark, neutral | professional |\n| `typography` | geometric, humanist, handwritten, editorial, technical | geometric |\n| `density` | minimal, balanced, dense | balanced |\n\n### Custom Styles\n\nDefine reusable custom dimension combinations.\n\n```yaml\ncustom_styles:\n  style-name:\n    texture: <texture>\n    mood: <mood>\n    typography: <typography>\n    density: <density>\n    description: \"Optional description\"\n```\n\nThen use with: `/baoyu-slide-deck content.md --style style-name`\n\n## Minimal Examples\n\n### Just change default style\n\n```yaml\nstyle: sketch-notes\n```\n\n### Prefer no reviews\n\n```yaml\nreview: false\n```\n\n### Custom default dimensions\n\n```yaml\nstyle: custom\ndimensions:\n  texture: organic\n  mood: professional\n  typography: humanist\n  density: minimal\n```\n\n### Define reusable custom style\n\n```yaml\ncustom_styles:\n  brand-style:\n    texture: clean\n    mood: vibrant\n    typography: editorial\n    density: balanced\n    description: \"Company brand style\"\n```\n\n## File Locations\n\nPriority order (first found wins):\n\n1. `.baoyu-skills/baoyu-slide-deck/EXTEND.md` (project)\n2. `$HOME/.baoyu-skills/baoyu-slide-deck/EXTEND.md` (user)\n\n## First-Time Setup\n\nWhen no EXTEND.md exists, the skill prompts for initial preferences:\n\n1. Preferred style (preset or custom)\n2. Default audience\n3. Language preference\n4. Review preference\n5. Save location (project or user)\n\nCreates EXTEND.md at chosen location.\n\nFile v1.117.3:references/confirmation.md\n\n# Confirmation Questions\n\nConcrete option copy for the confirmation steps. SKILL.md lists which questions to ask — this file gives the verbatim options used in Claude Code. Adapt copy to the runtime's native user-input tool; the intent matters more than the exact wording.\n\n## Round 1 (Always)\n\nBatch all five questions in a single `AskUserQuestion` call.\n\n### Q1: Style\n\n```yaml\nheader: Style\nquestion: Which visual style for this deck?\noptions:\n  - label: \"{recommended_preset} (Recommended)\"\n    description: Best match based on content analysis\n  - label: \"{alternative_preset}\"\n    description: \"{alternative style description}\"\n  - label: Custom dimensions\n    description: Choose texture, mood, typography, density separately\n```\n\n### Q2: Audience\n\n```yaml\nheader: Audience\nquestion: Who is the primary reader?\noptions:\n  - label: General readers (Recommended)\n    description: Broad appeal, accessible content\n  - label: Beginners/learners\n    description: Educational focus, clear explanations\n  - label: Experts/professionals\n    description: Technical depth, domain knowledge\n  - label: Executives\n    description: High-level insights, minimal detail\n```\n\n### Q3: Slide Count\n\n```yaml\nheader: Slides\nquestion: How many slides?\noptions:\n  - label: \"{N} slides (Recommended)\"\n    description: Based on content length\n  - label: \"Fewer ({N-3} slides)\"\n    description: More condensed, less detail\n  - label: \"More ({N+3} slides)\"\n    description: More detailed breakdown\n```\n\n### Q4: Review Outline\n\n```yaml\nheader: Outline\nquestion: Review outline before generating prompts?\noptions:\n  - label: Yes, review outline (Recommended)\n    description: Review slide titles and structure\n  - label: No, skip outline review\n    description: Proceed directly to prompt generation\n```\n\n### Q5: Review Prompts\n\n```yaml\nheader: Prompts\nquestion: Review prompts before generating images?\noptions:\n  - label: Yes, review prompts (Recommended)\n    description: Review image generation prompts\n  - label: No, skip prompt review\n    description: Proceed directly to image generation\n```\n\n## Round 2 — Custom Dimensions\n\nTriggered only when Q1 of Round 1 = \"Custom dimensions\". Batch all four dimension questions.\n\n### Texture\n\n```yaml\nheader: Texture\nquestion: Which visual texture?\noptions:\n  - label: clean\n    description: Pure solid color, no texture\n  - label: grid\n    description: Subtle grid overlay, technical\n  - label: organic\n    description: Soft textures, hand-drawn feel\n  - label: pixel\n    description: Chunky pixels, 8-bit aesthetic\n```\n\n`paper` is also valid — accept via \"Other\".\n\n### Mood\n\n```yaml\nheader: Mood\nquestion: Which color mood?\noptions:\n  - label: professional\n    description: Cool-neutral, navy/gold\n  - label: warm\n    description: Earth tones, friendly\n  - label: cool\n    description: Blues, grays, analytical\n  - label: vibrant\n    description: High saturation, bold\n  - label: macaron\n    description: Pastel blocks on cream\n```\n\n`dark`, `neutral` valid via \"Other\".\n\n### Typography\n\n```yaml\nheader: Typography\nquestion: Which typography style?\noptions:\n  - label: geometric\n    description: Modern sans-serif, clean\n  - label: humanist\n    description: Friendly, readable\n  - label: handwritten\n    description: Marker/brush, organic\n  - label: editorial\n    description: Magazine style, dramatic\n```\n\n`technical` valid via \"Other\".\n\n### Density\n\n```yaml\nheader: Density\nquestion: Information density?\noptions:\n  - label: balanced (Recommended)\n    description: 2-3 key points per slide\n  - label: minimal\n    description: One focus point, maximum whitespace\n  - label: dense\n    description: Multiple data points, compact\n```\n\n## Outline Review (Step 4)\n\n```yaml\nheader: Confirm\nquestion: Ready to generate prompts?\noptions:\n  - label: Yes, proceed (Recommended)\n    description: Generate image prompts\n  - label: Edit outline first\n    description: I'll modify outline.md before continuing\n  - label: Regenerate outline\n    description: Create new outline with different approach\n```\n\n## Prompt Review (Step 6)\n\n```yaml\nheader: Confirm\nquestion: Ready to generate slide images?\noptions:\n  - label: Yes, proceed (Recommended)\n    description: Generate all slide images\n  - label: Edit prompts first\n    description: I'll modify prompts before continuing\n  - label: Regenerate prompts\n    description: Create new prompts with different approach\n```\n\n## Existing Content (Step 1.3)\n\n```yaml\nheader: Existing\nquestion: Existing content found. How to proceed?\noptions:\n  - label: Regenerate outline\n    description: Keep images, regenerate outline only\n  - label: Regenerate images\n    description: Keep outline, regenerate images only\n  - label: Backup and regenerate\n    description: Backup to {slug}-backup-{timestamp}, then regenerate all\n  - label: Exit\n    description: Cancel, keep existing content unchanged\n```\n\nFile v1.117.3:references/content-rules.md\n\n# Content & Style Rules\n\nGuidelines for slide deck content quality and style consistency.\n\n## Content Rules\n\n### 1. Respect Reader Attention\n- Each slide should communicate ONE main idea\n- Remove redundant information\n- Prioritize clarity over comprehensiveness\n\n### 2. Data Traceability\n- All statistics must include source attribution\n- Cite sources directly on slides with data\n- Use specific numbers over vague claims\n\n### 3. Self-Contained Prompts\n- Every detail must be in the image prompt\n- No external references (e.g., \"like slide 2\")\n- Include all colors, layouts, and content explicitly\n\n### 4. No Placeholders\n- Every element must be fully specified\n- No \"[insert data here]\" or \"TBD\"\n- All text content finalized before generation\n\n## Style Rules\n\n### 1. Narrative Headlines\nHeadlines tell the story, not label the content.\n\n| Bad | Good |\n|-----|------|\n| \"Key Statistics\" | \"Usage doubled in 6 months\" |\n| \"Our Solution\" | \"One platform replaces five tools\" |\n| \"Benefits\" | \"Teams save 10 hours weekly\" |\n\n### 2. Avoid AI Clichés\nRemove these patterns:\n- \"Dive into\", \"explore\", \"journey\"\n- \"Let's look at\", \"let me show you\"\n- \"Exciting\", \"amazing\", \"revolutionary\"\n- \"In conclusion\", \"to summarize\"\n\n### 3. Meaningful Back Cover\nNot just \"Thank you\" or \"Questions?\"\n\nInclude one of:\n- Clear call-to-action\n- Memorable key takeaway\n- Thought-provoking closing statement\n- Contact information with purpose\n\n### 4. Consistent Visual Language\nThroughout the deck:\n- Same icon style\n- Same color usage patterns\n- Same layout grid system\n- Same typography hierarchy\n\n## Slide Structure\n\n| Position | Type | Purpose |\n|----------|------|---------|\n| 1 | Cover | Title, visual hook, topic introduction |\n| 2 to N-1 | Content | Key points, data, explanations |\n| N | Back Cover | Summary, call-to-action, memorable close |\n\n## Key Specifications\n\n| Specification | Value |\n|---------------|-------|\n| Aspect Ratio | 16:9 (landscape) |\n| Slide Count | Dynamic based on content |\n| Required Slides | Cover + Back Cover minimum |\n| Footers | None (no slide numbers, logos) |\n| Language Priority | `--lang` → source language → ask user |\n| Tone | Direct, confident (avoid AI phrases) |\n\n## Style Quick Reference\n\n| Style | Visual Summary |\n|-------|----------------|\n| `sketch-notes` | Hand-drawn, warm off-white, conceptual icons |\n| `blueprint` | Technical schematics, grid texture, blue tones |\n| `bold-editorial` | High contrast, dark backgrounds, magazine impact |\n| `vector-illustration` | Flat vector, black outlines, retro colors |\n| `minimal` | Maximum whitespace, single accent, zen-like |\n| `storytelling` | Full-bleed imagery, cinematic, emotional |\n| `warm` | Soft gradients, rounded shapes, wellness palette |\n| `notion` | Dashboard aesthetic, clean data viz, SaaS-inspired |\n| `corporate` | Navy/gold, structured layouts, business polish |\n| `playful` | Vibrant coral/teal/yellow, dynamic, energetic |\n\nFull style specifications: `references/styles/<style>.md`\n\nFile v1.117.3:references/design-guidelines.md\n\n# Design Guidelines\n\nDetailed design principles for slide decks.\n\n## Audience Guidelines\n\nDesign decisions adapt to target audience. Use `--audience` to set.\n\n| Audience | Content Density | Visual Style | Terminology | Slides |\n|----------|-----------------|--------------|-------------|--------|\n| `beginners` | Low | Friendly, illustrative | Plain language | 8-15 |\n| `intermediate` | Medium | Balanced, structured | Some jargon OK | 10-20 |\n| `experts` | High | Data-rich, precise | Technical terms | 12-25 |\n| `executives` | Low-Medium | Clean, impactful | Business language | 8-12 |\n| `general` | Medium | Accessible, engaging | Minimal jargon | 10-18 |\n\n### Audience → Density Mapping\n\nRecommended density dimension based on audience:\n\n| Audience | Recommended Density | Rationale |\n|----------|-------------------|-----------|\n| `executives` | minimal | One insight per slide, respect time |\n| `beginners` | minimal → balanced | Single concepts, build understanding |\n| `general` | balanced | Accessible but informative |\n| `intermediate` | balanced | Standard information density |\n| `experts` | balanced → dense | Can handle more data per slide |\n\n**Automatic Density Selection**:\n- If `--audience executives` → default to `minimal` density\n- If `--audience beginners` → default to `minimal` or `balanced`\n- If `--audience experts` → allow `dense` density\n- Otherwise → default to `balanced`\n\n### Audience-Specific Principles\n\n**Beginners**:\n- One concept per slide\n- Visual metaphors over abstract diagrams\n- Step-by-step progression\n- Generous whitespace\n\n**Experts**:\n- Multiple data points per slide acceptable\n- Technical diagrams with precise labels\n- Assume domain knowledge\n- Dense but organized information\n\n**Executives**:\n- Lead with insights, not data\n- \"So what?\" on every slide\n- Decision-enabling content\n- Bottom-line upfront (BLUF)\n\n## Visual Hierarchy Principles\n\n| Principle | Description |\n|-----------|-------------|\n| Focal Point | ONE dominant element per slide draws attention first |\n| Rule of Thirds | Position key elements at grid intersections |\n| Z-Pattern | Guide eye: top-left → top-right → bottom-left → bottom-right |\n| Size Contrast | Headlines 2-3x larger than body text |\n| Breathing Room | Minimum 10% margin from all edges |\n\n## Content Density\n\nSee `references/dimensions/density.md` for full density dimension specs.\n\n| Level | Description | Use When |\n|-------|-------------|----------|\n| High | Multiple data points, detailed charts, dense text | Expert audience, technical reviews |\n| Medium | Key points with supporting details | General business, mixed audiences |\n| Low | One main idea, large visuals, minimal text | Beginners, keynotes, emotional impact |\n\n**High-Density Principles** (McKinsey-style):\n- Every element earns its space\n- Data speaks louder than decoration\n- Annotations explain insights, not describe data\n- White space is strategic, not filler\n\n**Density by Slide Type**:\n| Slide Type | Recommended Density |\n|------------|-------------------|\n| Cover/Title | minimal |\n| Agenda/Overview | balanced |\n| Content/Analysis | balanced or dense |\n| Data/Metrics | dense |\n| Quote/Impact | minimal |\n| Summary/Takeaway | balanced |\n\n## Color Selection\n\nSee `references/dimensions/mood.md` for full mood dimension specs.\n\n**Content-First Approach**:\n1. Analyze content topic, mood, and industry\n2. Consider target audience expectations\n3. Match palette to subject matter\n4. Ensure strong contrast for readability\n\n**Quick Palette Guide**:\n| Content Type | Recommended Mood |\n|--------------|-----------------|\n| Technical/Architecture | cool |\n| Educational/Friendly | warm |\n| Corporate/Professional | professional |\n| Creative/Artistic | vibrant |\n| Scientific/Medical | cool or neutral |\n| Entertainment/Gaming | dark or vibrant |\n\n## Typography Principles\n\nSee `references/dimensions/typography.md` for full typography dimension specs.\n\n| Element | Treatment |\n|---------|-----------|\n| Headlines | Bold, 2-3x body size, narrative style |\n| Body Text | Regular weight, readable size |\n| Captions | Smaller, lighter weight |\n| Data Labels | Monospace for technical content |\n| Emphasis | Use bold or color, not underlines |\n\n## Font Recommendations\n\n**English Fonts**:\n| Font | Style | Best For |\n|------|-------|----------|\n| Liter | Sans-serif, geometric | Modern, clean, technical |\n| HedvigLettersSans | Sans-serif, distinctive | Brand-forward, creative |\n| Oranienbaum | High-contrast serif | Elegant, classical |\n| SortsMillGoudy | Classical serif | Traditional, readable |\n| Coda | Round sans-serif | Friendly, approachable |\n\n**Chinese Fonts**:\n| Font | Style | Best For |\n|------|-------|----------|\n| MiSans | Modern sans-serif | Clean, versatile, screen-optimized |\n| Noto Sans SC | Neutral sans-serif | Standard, multilingual |\n| siyuanSongti | Refined Song typeface | Elegant, editorial |\n| alimamashuheiti | Geometric sans-serif | Commercial, structured |\n| LXGW Bright | Song-Kai hybrid | Warm, readable |\n\n**Multilingual Pairing**:\n| Use Case | English | Chinese |\n|----------|---------|---------|\n| Technical | Liter | MiSans |\n| Editorial | Oranienbaum | siyuanSongti |\n| Friendly | Coda | LXGW Bright |\n| Corporate | HedvigLettersSans | alimamashuheiti |\n\n## Visual Elements Reference\n\nSee `references/dimensions/texture.md` for full texture dimension specs.\n\n### Background Treatments\n\n| Treatment | Description | Best For |\n|-----------|-------------|----------|\n| Solid color | Single background color | Clean, minimal |\n| Split background | Two colors, diagonal or vertical | Contrast, sections |\n| Gradient | Subtle vertical or diagonal fade | Modern, dynamic |\n| Textured | Pattern or texture overlay | Character, style |\n\n### Typography Treatments\n\n| Treatment | Description | Best For |\n|-----------|-------------|----------|\n| Size contrast | 3-4x difference headline vs body | Impact, hierarchy |\n| All-caps headers | Uppercase with letter spacing | Authority, structure |\n| Monospace data | Fixed-width for numbers/code | Technical, precision |\n| Hand-drawn | Organic, imperfect letterforms | Friendly, approachable |\n\n### Geometric Accents\n\n| Element | Description | Best For |\n|---------|-------------|----------|\n| Diagonal dividers | Angled section separators | Energy, movement |\n| Corner brackets | L-shaped frames | Focus, framing |\n| Circles/hexagons | Shape frames for images | Modern, tech |\n| Underline accents | Thick lines under headers | Emphasis, hierarchy |\n\n## Consistency Requirements\n\n| Element | Guideline |\n|---------|-----------|\n| Spacing | Consistent margins and padding throughout |\n| Colors | Maximum 3-4 colors per slide, palette consistent across deck |\n| Typography | Same font families and sizes for same content types |\n| Visual Language | Repeat patterns, shapes, and treatments |\n\n## Dimension Combination Guide\n\nWhen combining dimensions, consider compatibility:\n\n| Audience | Recommended Dimensions |\n|----------|----------------------|\n| Executives | clean + neutral + geometric + minimal |\n| Beginners | organic + warm + humanist + minimal |\n| General | any texture + any mood + humanist/geometric + balanced |\n| Experts | grid/clean + cool + technical + balanced/dense |\n\n| Content Type | Recommended Dimensions |\n|--------------|----------------------|\n| Tutorial | organic + warm + handwritten + balanced |\n| Technical | grid + cool + technical + balanced |\n| Business | clean + professional + geometric + balanced |\n| Creative | organic + vibrant + humanist + balanced |\n| Data-heavy | clean + cool + technical + dense |\n\nFile v1.117.3:references/dimensions/density.md\n\n# Density Dimension\n\nInformation density per slide.\n\n## Options\n\n| Option | Content/Slide | Whitespace | Best For |\n|--------|---------------|------------|----------|\n| `minimal` | One focus point | Maximum | Executive briefings, keynotes, emotional impact |\n| `balanced` | 2-3 key points | Standard | General presentations, mixed audiences |\n| `dense` | Multiple data points | Compact | Data-heavy, technical reviews, detailed analysis |\n\n## Rendering Guidelines\n\n### minimal\n\n- ONE main idea per slide\n- Large visuals dominate\n- Minimal text (headline + 1-2 lines max)\n- Generous margins (15%+ from edges)\n- Maximum breathing room between elements\n- Let single element carry full weight\n\n**Principles**:\n- \"One slide, one message\"\n- Visual > text\n- Empty space is intentional\n- Every element must earn its space\n\n### balanced\n\n- 2-3 key points per slide\n- Standard margins (10% from edges)\n- Balanced text/visual ratio\n- Clear hierarchy with supporting details\n- Comfortable reading experience\n\n**Principles**:\n- Primary point + supporting context\n- Visuals complement text\n- Structured but not crowded\n- Good for diverse audiences\n\n### dense\n\n- Multiple data points acceptable\n- Compact margins (5-8% from edges)\n- Information-rich layouts\n- Charts, tables, detailed annotations\n- Assume engaged, attentive audience\n\n**Principles**:\n- Data speaks louder than decoration\n- Annotations explain insights\n- White space is strategic\n- Every pixel serves a purpose\n\n## Audience → Density Mapping\n\n| Audience | Recommended Density |\n|----------|-------------------|\n| Executives | minimal |\n| Beginners | minimal to balanced |\n| General | balanced |\n| Intermediate | balanced |\n| Experts | balanced to dense |\n\n## Slide Type → Density Guidelines\n\n| Slide Type | Recommended Density |\n|------------|-------------------|\n| Cover/Title | minimal |\n| Section break | minimal |\n| Quote/Impact | minimal |\n| Agenda/Overview | balanced |\n| Content/Analysis | balanced or dense |\n| Summary/Takeaway | balanced |\n| Data/Metrics | dense |\n\n## Content Guidelines Per Density\n\n### minimal\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Large (40-60pt equivalent) |\n| Body text | Minimal or none |\n| Bullet points | 0-2 max |\n| Visual elements | 1 dominant element |\n| Charts/Data | 1 key stat only |\n\n### balanced\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Medium-large (32-48pt equivalent) |\n| Body text | 2-4 lines |\n| Bullet points | 2-4 |\n| Visual elements | 1-2 elements |\n| Charts/Data | Simple charts OK |\n\n### dense\n\n| Element | Guideline |\n|---------|-----------|\n| Headlines | Medium (24-36pt equivalent) |\n| Body text | Multiple paragraphs OK |\n| Bullet points | 4-6+ |\n| Visual elements | Multiple allowed |\n| Charts/Data | Complex charts, tables OK |\n\n## Combination Notes\n\n| Density | Works Best With | Avoid With |\n|---------|-----------------|------------|\n| minimal | neutral mood, geometric typography | dense data content |\n| balanced | any mood/typography | extremes (too sparse or too packed) |\n| dense | cool mood, technical typography | handwritten typography, organic texture |\n\nFile v1.117.3:references/dimensions/mood.md\n\n# Mood Dimension\n\nColor temperature and palette style.\n\n## Options\n\n| Option | Color Temperature | Palette Style | Best For |\n|--------|-------------------|---------------|----------|\n| `professional` | Cool-neutral | Navy, gold, structured grays | Business, investor, corporate |\n| `warm` | Warm | Earth tones, oranges, natural colors | Education, friendly, approachable |\n| `macaron` | Warm | Pastel blocks (blue, mint, lavender, peach) on cream | Educational diagrams, knowledge sharing |\n| `cool` | Cool | Blues, grays, cyan, teal | Technical, data, analytical |\n| `vibrant` | Varied | High saturation, bold colors | Marketing, creative, attention-grabbing |\n| `dark` | Dark | Deep backgrounds with bright accents | Entertainment, gaming, atmospheric |\n| `neutral` | Neutral | Minimal color, grayscale focus | Executive, minimal, sophisticated |\n\n## Palette Specifications\n\n### professional\n\n```\nBackground: #FFFFFF (Pure White)\nPrimary Text: #1E3A5F (Navy)\nSecondary Text: #4A5568 (Dark Gray)\nAccent 1: #C9A227 (Gold)\nAccent 2: #3D5A80 (Light Navy)\n```\n\n### warm\n\n```\nBackground: #FAF8F0 (Warm Off-White)\nPrimary Text: #2C3E50 (Deep Charcoal)\nSecondary Text: #4A4A4A (Deep Brown)\nAccent 1: #F4A261 (Soft Orange)\nAccent 2: #E9C46A (Mustard Yellow)\nAccent 3: #87A96B (Sage Green)\n```\n\n### macaron\n\n```\nBackground: #F5F0E8 (Warm Cream)\nPrimary Text: #2D2D2D (Deep Charcoal)\nMuted Text: #6B6B6B (Warm Gray)\nMacaron Blue: #A8D8EA (Sky Blue)\nMacaron Mint: #B5E5CF (Mint Green)\nMacaron Lavender: #D5C6E0 (Lavender)\nMacaron Peach: #FFD5C2 (Peach)\nAccent: #E8655A (Coral Red)\n```\n\n### cool\n\n```\nBackground: #FAF8F5 (Blueprint Off-White)\nPrimary Text: #334155 (Deep Slate)\nSecondary Text: #64748B (Slate Gray)\nAccent 1: #2563EB (Engineering Blue)\nAccent 2: #1E3A5F (Navy Blue)\nAccent 3: #BFDBFE (Light Blue)\n```\n\n### vibrant\n\n```\nBackground: #FFFFFF or #1A1A2E (Light or Dark)\nPrimary Text: #1A1A2E or #FFFFFF\nAccent 1: #E94560 (Coral Red)\nAccent 2: #0F3460 (Deep Blue)\nAccent 3: #16C79A (Teal Green)\nAccent 4: #F9B208 (Golden Yellow)\n```\n\n### dark\n\n```\nBackground: #0D1117 (Deep Black)\nPrimary Text: #E6EDF3 (Soft White)\nSecondary Text: #8B949E (Muted Gray)\nAccent 1: #58A6FF (Bright Blue)\nAccent 2: #7EE787 (Bright Green)\nAccent 3: #FF7B72 (Coral)\n```\n\n### neutral\n\n```\nBackground: #FFFFFF (Pure White)\nPrimary Text: #18181B (Near Black)\nSecondary Text: #71717A (Medium Gray)\nAccent 1: #18181B (Black)\nAccent 2: #A1A1AA (Light Gray)\n```\n\n## Rendering Guidelines\n\n### professional\n\n- Restrained use of accent colors\n- Gold for emphasis only\n- Clean, institutional feel\n- Balanced contrast\n\n### warm\n\n- Generous use of warm tones\n- Natural, approachable colors\n- Soft transitions between colors\n- Welcoming atmosphere\n\n### macaron\n\n- Soft pastel color blocks as distinct information zones\n- Each zone uses one macaron color (blue, mint, lavender, peach)\n- Coral Red accent used sparingly for emphasis\n- Warm cream background maintains friendly, approachable feel\n\n### cool\n\n- Blue-dominant palette\n- Technical precision in color use\n- High contrast for clarity\n- Analytical, trustworthy feel\n\n### vibrant\n\n- Bold color combinations\n- High saturation throughout\n- Dynamic color contrasts\n- Energetic visual presence\n\n### dark\n\n- Deep backgrounds dominate\n- Accent colors pop against dark\n- Glowing/luminous effects\n- Cinematic atmosphere\n\n### neutral\n\n- Minimal color usage\n- Typography carries weight\n- Grayscale hierarchy\n- Maximum sophistication\n\n## Combination Notes\n\n| Mood | Works Best With | Avoid With |\n|------|-----------------|------------|\n| professional | clean texture, geometric typography | organic texture, handwritten |\n| warm | organic texture, humanist typography | pixel texture, minimal density |\n| macaron | organic texture, handwritten typography | pixel texture, dark mood |\n| cool | grid texture, technical typography | paper texture, handwritten |\n| vibrant | pixel/organic texture, editorial typography | neutral mood overlaps |\n| dark | clean/pixel texture, technical typography | paper texture |\n| neutral | clean texture, geometric typography | organic texture, vibrant elements |\n\nFile v1.117.3:references/dimensions/presets.md\n\n# Preset → Dimension Mapping\n\nMaps 16 preset styles to their dimension combinations.\n\n## Mapping Table\n\n| Preset | Texture | Mood | Typography | Density |\n|--------|---------|------|------------|---------|\n| blueprint | grid | cool | technical | balanced |\n| chalkboard | organic | warm | handwritten | balanced |\n| corporate | clean | professional | geometric | balanced |\n| minimal | clean | neutral | geometric | minimal |\n| sketch-notes | organic | warm | handwritten | balanced |\n| hand-drawn-edu | organic | macaron | handwritten | balanced |\n| watercolor | organic | warm | humanist | minimal |\n| dark-atmospheric | clean | dark | editorial | balanced |\n| notion | clean | neutral | geometric | dense |\n| bold-editorial | clean | vibrant | editorial | balanced |\n| editorial-infographic | clean | cool | editorial | dense |\n| fantasy-animation | organic | vibrant | handwritten | minimal |\n| intuition-machine | clean | cool | technical | dense |\n| pixel-art | pixel | vibrant | technical | balanced |\n| scientific | clean | cool | technical | dense |\n| vector-illustration | clean | vibrant | humanist | balanced |\n| vintage | paper | warm | editorial | balanced |\n\n## Preset Details\n\n### blueprint\n- **Dimensions**: grid + cool + technical + balanced\n- **Feel**: Engineering precision, analytical clarity\n- **Auto-select**: architecture, system, data, analysis, technical\n\n### chalkboard\n- **Dimensions**: organic + warm + handwritten + balanced\n- **Feel**: Classroom warmth, educational\n- **Auto-select**: classroom, teaching, school, chalkboard\n\n### corporate\n- **Dimensions**: clean + professional + geometric + balanced\n- **Feel**: Business credibility, institutional trust\n- **Auto-select**: investor, quarterly, business, corporate\n\n### minimal\n- **Dimensions**: clean + neutral + geometric + minimal\n- **Feel**: Maximum sophistication, executive focus\n- **Auto-select**: executive, minimal, clean, simple\n\n### sketch-notes\n- **Dimensions**: organic + warm + handwritten + balanced\n- **Feel**: Friendly learning, approachable education\n- **Auto-select**: tutorial, learn, education, guide, beginner\n\n### hand-drawn-edu\n- **Dimensions**: organic + macaron + handwritten + balanced\n- **Feel**: Hand-drawn educational infographic, macaron pastel zones\n- **Auto-select**: hand-drawn, infographic, diagram, process, onboarding\n\n### watercolor\n- **Dimensions**: organic + warm + humanist + minimal\n- **Feel**: Artistic, natural, lifestyle\n- **Auto-select**: lifestyle, wellness, travel, artistic\n\n### dark-atmospheric\n- **Dimensions**: clean + dark + editorial + balanced\n- **Feel**: Cinematic, entertainment\n- **Auto-select**: entertainment, music, gaming, atmospheric\n\n### notion\n- **Dimensions**: clean + neutral + geometric + dense\n- **Feel**: SaaS professional, data-forward\n- **Auto-select**: saas, product, dashboard, metrics\n\n### bold-editorial\n- **Dimensions**: clean + vibrant + editorial + balanced\n- **Feel**: Magazine impact, keynote drama\n- **Auto-select**: launch, marketing, keynote, magazine\n\n### editorial-infographic\n- **Dimensions**: clean + cool + editorial + dense\n- **Feel**: Publication quality, informative\n- **Auto-select**: explainer, journalism, science communication\n\n### fantasy-animation\n- **Dimensions**: organic + vibrant + handwritten + minimal\n- **Feel**: Magical, storytelling\n- **Auto-select**: story, fantasy, animation, magical\n\n### intuition-machine\n- **Dimensions**: clean + cool + technical + dense\n- **Feel**: Technical briefing, bilingual documentation\n- **Auto-select**: briefing, academic, research, bilingual\n\n### pixel-art\n- **Dimensions**: pixel + vibrant + technical + balanced\n- **Feel**: Retro gaming, developer culture\n- **Auto-select**: gaming, retro, pixel, developer\n\n### scientific\n- **Dimensions**: clean + cool + technical + dense\n- **Feel**: Academic precision, research quality\n- **Auto-select**: biology, chemistry, medical, scientific\n\n### vector-illustration\n- **Dimensions**: clean + vibrant + humanist + balanced\n- **Feel**: Flat design, friendly creative\n- **Auto-select**: creative, children, kids, cute\n\n### vintage\n- **Dimensions**: paper + warm + editorial + balanced\n- **Feel**: Historical, heritage storytelling\n- **Auto-select**: history, heritage, vintage, expedition\n\n## Building Custom Combinations\n\nWhen user selects \"Custom dimensions\", combine any:\n\n- **Texture** (5): clean, grid, organic, pixel, paper\n- **Mood** (6): professional, warm, cool, vibrant, dark, neutral\n- **Typography** (5): geometric, humanist, handwritten, editorial, technical\n- **Density** (3): minimal, balanced, dense\n\nTotal possible combinations: 5 × 7 × 5 × 3 = **525 unique styles**\n\n## Recommended Combinations (Beyond Presets)\n\n| Custom Name | Texture | Mood | Typography | Density | Use Case |\n|-------------|---------|------|------------|---------|----------|\n| tech-minimal | clean | neutral | technical | minimal | Developer keynotes |\n| warm-editorial | paper | warm | editorial | balanced | Heritage brands |\n| dark-technical | grid | dark | technical | dense | Security, DevOps |\n| playful-clean | clean | vibrant | humanist | balanced | Startups, apps |\n\nFile v1.117.3:references/dimensions/texture.md\n\n# Texture Dimension\n\nVisual texture and background treatment.\n\n## Options\n\n| Option | Background | Visual Elements | Best For |\n|--------|------------|-----------------|----------|\n| `clean` | Pure solid color, no texture | Clean lines, geometric shapes | Executive, minimal, corporate |\n| `grid` | Subtle grid overlay | Grid lines, schematics, technical diagrams | Technical, architecture, engineering |\n| `organic` | Soft textures, hand-drawn feel | Brush strokes, watercolor, sketchy lines | Creative, educational, friendly |\n| `pixel` | Chunky pixels, 8-bit aesthetic | Pixel art, retro game elements | Gaming, developer, nostalgic |\n| `paper` | Aged/textured paper | Vintage elements, stamps, weathering | Historical, heritage, storytelling |\n\n## Rendering Guidelines\n\n### clean\n\n- Solid background colors with no visible texture\n- Crisp, sharp edges on all elements\n- Digital precision and clarity\n- Maximum contrast for readability\n\n### grid\n\n- Light grid overlay (5-10% opacity)\n- Engineering paper or blueprint feel\n- Alignment guides visible but subtle\n- Technical drawing aesthetic\n\n### organic\n\n- Paper grain or canvas texture\n- Imperfect edges, natural variations\n- Hand-painted color fills\n- Casual, approachable feel\n\n### pixel\n\n- Visible pixel grid (chunky, not fine)\n- 8-bit color palette aesthetic\n- Aliased edges (no smoothing)\n- Retro game UI elements\n\n### paper\n\n- Aged paper texture (subtle creases, discoloration)\n- Vintage printing artifacts\n- Sepia or warm tones\n- Historical document feel\n\n## Combination Notes\n\n| Texture | Works Best With | Avoid With |\n|---------|-----------------|------------|\n| clean | professional, neutral moods | handwritten typography |\n| grid | cool, professional moods | handwritten, vibrant moods |\n| organic | warm, macaron, vibrant moods | technical typography |\n| pixel | vibrant, dark moods | editorial typography |\n| paper | warm moods | geometric typography, minimal density |\n\nArchive v1.117.2: 35 files, 62006 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3965b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (21840b), _meta.json (137b)\n\nFile v1.117.2:SKILL.md\n\n---\nname: baoyu-slide-deck\ndescription: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", or \"PPT\".\nversion: 1.57.0\nmetadata:\n  openclaw:\n    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-slide-deck\n    requires:\n      anyBins:\n        - bun\n        - npx\n---\n\n# Slide Deck Generator\n\nTransform content into professional slide deck images. The deck is designed for **reading and sharing** (self-explanatory slides, logical scroll flow, social-media-friendly) rather than live presentation — that assumption drives every layout and density decision below.\n\n## User Input Tools\n\nWhen this skill prompts the user, follow this tool-selection rule (priority order):\n\n1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.\n2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.\n3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.\n\nConcrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.\n\n## Image Generation Tools\n\nWhen this skill needs to render an image, resolve the backend in this order:\n\n1. **Current-request override** — if the user names a specific backend in the current message, use it.\n2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.\n3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):\n   - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: \"imagegen\"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-imagine`) unless the user has explicitly pinned a different `preferred_image_backend`.\n   - **Other runtime-native tools** — if the runtime exposes a different native image tool (e.g., Hermes `image_generate`), use it the same way.\n   - Otherwise, if exactly one non-native backend is installed (e.g., `baoyu-imagine`), use it.\n   - Otherwise (multiple non-native backends with no runtime-native tool), ask the user once — batch with any other initial questions.\n4. **If none are available**, tell the user and ask how to proceed.\n\n**⛔ Never substitute SVG, HTML, canvas, or other code-based rendering for raster image generation.** Codex `imagegen`'s own description says it should be used \"when the output should be a bitmap asset rather than repo-native code or vector.\" If you cannot resolve a raster backend via step 3, fall through to step 4 and ask the user — do **not** silently emit SVG, write inline `<svg>` markup, or produce HTML/CSS art as a substitute. This applies even if the article/section seems \"diagram-like\": the consumer skill calling this rule has already decided that a raster image is what it needs.\n\n**⛔ Never repair rendered text by painting over a generated bitmap.** Do not use ImageMagick, Pillow, Canvas, SVG, HTML/CSS, OCR scripts, or any other programmatic overlay to cover, rewrite, erase, stroke, or replace slide titles, bullets, or any other text inside an already generated slide image. If text is wrong or unclear, regenerate from a corrected prompt, simplify the slide's on-image text, or ask the user which imperfect candidate to keep.\n\nSetting `preferred_image_backend: ask` forces the step-3 prompt every run regardless of available backends. Users change the pinned backend via the `## Changing Preferences` section below.\n\n**Prompt file requirement (hard)**: write each image's full, final prompt to a standalone file under `prompts/` (naming: `NN-slide-[slug].md`) BEFORE invoking any backend. The file is the reproducibility record and lets you switch backends without regenerating prompts.\n\nConcrete tool names (`imagegen`, `image_generate`, `baoyu-imagine`) above are examples — substitute the local equivalents under the same rule.\n\n## Batch Generation Policy\n\nAfter every prompt file for the current generation group has been saved and verified, generate slide images in batches by default.\n\nPriority order:\n\n1. Use the chosen backend's native batch / multi-task interface if it exists. Each task must keep its own prompt file, output path, aspect ratio, session ID, and direct reference images.\n2. If no native batch interface exists but the runtime can issue parallel tool calls, dispatch up to `generation_batch_size` slide images at a time. Default: `4`. An explicit user request in the current message, such as `--batch-size 4` or \"并行4张一起生成\", overrides EXTEND.md.\n3. If neither native batch nor parallel tool calls are available, generate sequentially.\n\nRules:\n\n- Never start the first batch until all selected slide prompt files exist on disk.\n- Retry failed items once without regenerating successful items.\n- Do not use subagents merely to parallelize image rendering. Use subagents only for separate prompt iteration or creative exploration.\n- Merge PPTX/PDF only after all selected slide images are generated.\n\n## Confirmation Policy\n\nDefault behavior: **confirm before generation**.\n\n- Treat explicit skill invocation, a file path, matched signals/presets, and `EXTEND.md` defaults as **recommendation inputs only**. None of them authorizes skipping confirmation.\n- Do **not** start Step 3 or later until the user completes Step 2.\n- Skip confirmation only when the current request explicitly says to do so, for example: \"直接生成\", \"不用确认\", \"跳过确认\", \"按默认出幻灯片\", or equivalent wording.\n- If confirmation is skipped explicitly, state the assumed style / audience / slide-count / language / backend in the next user-facing update before generating.\n\n## Language\n\nRespond in the user's language across questions, progress reports, error messages, and the completion summary. Keep technical tokens (style names, file paths, code) in English.\n\n## Script Directory\n\n`{baseDir}` = this SKILL.md's directory. Resolve `${BUN_X}`: prefer `bun`; else `npx -y bun`; else suggest `brew install oven-sh/bun/bun`.\n\n| Script | Purpose |\n|--------|---------|\n| `scripts/merge-to-pptx.ts` | Merge slides into PowerPoint |\n| `scripts/merge-to-pdf.ts` | Merge slides into PDF |\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `--style <name>` | Preset (see Presets below), `custom`, or custom style name |\n| `--audience <type>` | beginners / intermediate / experts / executives / general |\n| `--lang <code>` | Output language (en, zh, ja, ...) |\n| `--slides <N>` | Target slide count (8-25 recommended, max 30) |\n| `--ref <files...>` | Reference images applied per slide (style / palette / composition / subject) |\n| `--batch-size <n>` | Temporary slide image generation batch size for this run. Default: `generation_batch_size` from EXTEND.md, otherwise 4. Clamp to 1-8. |\n| `--outline-only` | Stop after outline |\n| `--prompts-only` | Stop after prompts (skip image generation) |\n| `--images-only` | Skip to Step 7; requires existing `prompts/` |\n| `--regenerate <N>` | Regenerate specific slide(s): `3` or `2,5,8` |\n\n## Style System\n\n17 presets covering technical / educational / lifestyle / editorial use cases. Every preset is a combination of four dimensions (texture / mood / typography / density). If the user picks \"Custom dimensions\" in Round 1, Round 2 of the confirmation asks one question per dimension — options and verbatim copy live in `references/confirmation.md`.\n\n### Presets (17)\n\n| Preset | Dimensions | Best For |\n|--------|------------|----------|\n| `blueprint` (Default) | grid + cool + technical + balanced | Architecture, system design |\n| `chalkboard` | organic + warm + handwritten + balanced | Education, tutorials |\n| `corporate` | clean + professional + geometric + balanced | Investor decks, proposals |\n| `minimal` | clean + neutral + geometric + minimal | Executive briefings |\n| `sketch-notes` | organic + warm + handwritten + balanced | Educational, tutorials |\n| `hand-drawn-edu` | organic + macaron + handwritten + balanced | Educational diagrams, process explainers |\n| `watercolor` | organic + warm + humanist + minimal | Lifestyle, wellness |\n| `dark-atmospheric` | clean + dark + editorial + balanced | Entertainment, gaming |\n| `notion` | clean + neutral + geometric + dense | Product demos, SaaS |\n| `bold-editorial` | clean + vibrant + editorial + balanced | Product launches, keynotes |\n| `editorial-infographic` | clean + cool + editorial + dense | Tech explainers, research |\n| `fantasy-animation` | organic + vibrant + handwritten + minimal | Educational storytelling |\n| `intuition-machine` | clean + cool + technical + dense | Technical docs, academic |\n| `pixel-art` | pixel + vibrant + technical + balanced | Gaming, developer talks |\n| `scientific` | clean + cool + technical + dense | Biology, chemistry, medical |\n| `vector-illustration` | clean + vibrant + humanist + balanced | Creative, children's content |\n| `vintage` | paper + warm + editorial + balanced | Historical, heritage |\n\nPer-preset specs: `references/styles/<preset>.md`. Preset → dimension mapping: `references/dimensions/presets.md`.\n\n### Dimensions (when \"Custom dimensions\" picked)\n\n| Dimension | Options | Purpose |\n|-----------|---------|------\n\nArchive v1.117.0: 35 files, 61613 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3965b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (20945b), _meta.json (137b)\n\nArchive v1.115.4: 35 files, 60864 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3607b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (19240b), _meta.json (137b)\n\nArchive v1.103.2: 35 files, 60448 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3607b), references/confirmation.md (4854b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (18204b), _meta.json (137b)\n\nArchive v1.103.1: 34 files, 58919 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3073b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (24171b), _meta.json (137b)\n\nArchive v1.103.0: 34 files, 58919 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3073b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md (2133b), references/styles/pixel-art.md (2446b), references/styles/scientific.md (2448b), references/styles/sketch-notes.md (2463b), references/styles/vector-illustration.md (2646b), references/styles/vintage.md (2499b), references/styles/watercolor.md (2349b), scripts/merge-to-pdf.ts (3222b), scripts/merge-to-pptx.ts (3918b), SKILL.md (24171b), _meta.json (137b)\n\nArchive v1.60.1: 34 files, 58919 bytes\n\nFiles: references/analysis-framework.md (5241b), references/base-prompt.md (2844b), references/config/preferences-schema.md (3073b), references/content-rules.md (2986b), references/design-guidelines.md (7581b), references/dimensions/density.md (3126b), references/dimensions/mood.md (4106b), references/dimensions/presets.md (5133b), references/dimensions/texture.md (1938b), references/dimensions/typography.md (4062b), references/layouts.md (3086b), references/modification-guide.md (2467b), references/outline-template.md (7599b), references/styles/blueprint.md (2277b), references/styles/bold-editorial.md (2409b), references/styles/chalkboard.md (2512b), references/styles/corporate.md (2346b), references/styles/dark-atmospheric.md (2435b), references/styles/editorial-infographic.md (2450b), references/styles/fantasy-animation.md (2474b), references/styles/hand-drawn-edu.md (2905b), references/styles/intuition-machine.md (2870b), references/styles/minimal.md (2036b), references/styles/notion.md...","readmeExcerpt":"Skill: Baoyu Slide Deck Owner: jimliu Summary: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t... Tags: latest:1.117.4 Version history: v1.117.4 | 2026-06-13T04:59:10.597Z | auto - Added native support for Codex image generation via codex CLI fallback (codex-imagegen) when Codex imagegen skill is unavailable.","codeSnippets":[],"executableExamples":[{"language":"yaml","snippet":"references:\n  - ref_id: 01\n    filename: 01-ref-brand.png\n    usage: direct"},{"language":"text","snippet":"slide-deck/{topic-slug}/\n├── source-{slug}.{ext}\n├── outline.md\n├── prompts/NN-slide-{slug}.md\n├── NN-slide-{slug}.png\n├── {topic-slug}.pptx\n└── {topic-slug}.pdf"},{"language":"text","snippet":"- [ ] Step 1: Setup & analyze\n- [ ] Step 2: Confirmation ⚠️ REQUIRED (Round 1; Round 2 only if \"Custom dimensions\")\n- [ ] Step 3: Generate outline\n- [ ] Step 4: Review outline (conditional)\n- [ ] Step 5: Generate prompts\n- [ ] Step 6: Review prompts (conditional)\n- [ ] Step 7: Generate images\n- [ ] Step 8: Merge to PPTX/PDF\n- [ ] Step 9: Output summary"},{"language":"bash","snippet":"${BUN_X} {baseDir}/scripts/merge-to-pptx.ts <slide-deck-dir>\n${BUN_X} {baseDir}/scripts/merge-to-pdf.ts <slide-deck-dir>"},{"language":"text","snippet":"Slide Deck Complete!\nTopic: [topic]\nStyle: [preset or \"custom: texture+mood+typography+density\"]\nLocation: [directory]\nSlides: N\n\n- 01-slide-cover.png\n- ...\n- NN-slide-back-cover.png\n\nOutline: outline.md\nPPTX: {topic-slug}.pptx\nPDF: {topic-slug}.pdf"},{"language":"bash","snippet":"${BUN_X} <baoyu-image-gen-base>/scripts/main.ts \\\n  --provider codex-cli \\\n  --image <ABSOLUTE_output> \\\n  --promptfiles <ABSOLUTE_prompts/NN-slide-{slug}.md> \\\n  --ar <ratio> \\\n  [--ref <ABSOLUTE_file>]..."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: baoyu-slide-deck\ndescription: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", or \"PPT\".\nversion: 1.117.4\nmetadata:\n  openclaw:\n    homepage: https://github.com/JimLiu/baoyu-skills#baoyu-slide-deck\n    requires:\n      anyBins:\n        - bun\n        - npx\n---\n\n# Slide Deck Generator\n\nTransform content into professional slide deck images. The deck is designed for **reading and sharing** (self-explanatory slides, logical scroll flow, social-media-friendly) rather than live presentation — that assumption drives every layout and density decision below.\n\n## User Input Tools\n\nWhen this skill prompts the user, follow this tool-selection rule (priority order):\n\n1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent.\n2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question.\n3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order.\n\nConcrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes.\n\n## Image Generation Tools\n\nWhen this skill needs to render an image, resolve the backend in this order:\n\n1. **Current-request override** — if the user names a specific backend in the current message, use it.\n2. **Saved preference** — if `EXTEND.md` sets `preferred_image_backend` to a backend available right now, use it.\n3. **Auto-select** (when the preference is `auto`, unset, or the pinned backend isn't available):\n   - **Codex (`imagegen`)** — first, inspect your available-skills / tool inventory. If a skill named `imagegen` is listed, you are running inside Codex and MUST use it: invoke via the `Skill` tool with `skill: \"imagegen\"`, passing the saved prompt file's content (plus output path and aspect ratio per Codex `imagegen`'s own args). Codex `imagegen` is the official raster backend in that runtime and outranks any non-native skill (e.g., `baoyu-image-gen`) unless the user has explicitly pinned a different `preferred_image_backend`.\n   - **Codex via `codex exec` (`codex-imagegen`)** — if the current runtime exposes no native `imagegen` skill but the `codex` CLI is on `PATH` with an active `codex login`, route through `baoyu-image-gen --provider codex-cli` (preferred), or — if baoyu-image-gen is unavailable — invoke the bundled wrapper directly. Details, parameters, and the runtime-discovery procedure live in [references/codex-imagegen.md](references/codex-imagegen.md) — load that file only when this branch is selected.\n   - **Cursor (`GenerateImage`)** — if the runtime exposes a native `GenerateIma"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7csrrndw79hpke5d0gsnx93d82k67r\",\n  \"slug\": \"baoyu-slide-deck\",\n  \"version\": \"1.117.4\",\n  \"publishedAt\": 1781326750597\n}"},{"path":"references/analysis-framework.md","content":"# Presentation Analysis Framework\n\nDeep content analysis for effective slide deck creation.\n\n## 1. Message Hierarchy\n\nIdentify the core message structure before designing slides.\n\n### Core Message (One Sentence)\n- What is the single most important takeaway?\n- If the audience remembers only one thing, what should it be?\n- Can you state it in ≤15 words?\n\n### Supporting Points (3-5 Maximum)\n- What evidence supports the core message?\n- What sub-topics must be covered?\n- Prioritize by audience relevance, not source order\n\n### Call-to-Action\n- What should the audience DO after viewing?\n- Is it clear, specific, and achievable?\n- Where does it appear (slide position)?\n\n## 2. Audience Decision Matrix\n\n| Question | Analysis |\n|----------|----------|\n| Who is the primary audience? | [Role, expertise level, relationship to topic] |\n| What do they currently believe? | [Existing knowledge, assumptions, biases] |\n| What decision do we want them to make? | [Specific action or conclusion] |\n| What barriers exist? | [Objections, concerns, missing information] |\n| What evidence will convince them? | [Data types, credibility sources, emotional hooks] |\n\n### Audience Adaptation\n\n| Audience Type | Content Focus | Visual Treatment |\n|---------------|---------------|------------------|\n| Executives | Outcomes, ROI, strategic impact | High-level, clean, data highlights |\n| Technical | Architecture, implementation, specs | Detailed diagrams, code, schematics |\n| General | Benefits, stories, relatability | Visual metaphors, simple charts |\n| Investors | Market size, traction, team | Growth charts, milestones, comparisons |\n| Learners | Step-by-step, examples, practice | Progressive reveals, exercises |\n\n## 3. Visual Opportunity Map\n\nIdentify which content benefits from visualization.\n\n### Content-to-Visual Mapping\n\n| Content Type | Visual Treatment | Example |\n|--------------|------------------|---------|\n| Comparisons | Side-by-side, before/after | Feature comparison table |\n| Processes | Flow diagrams, numbered steps | Workflow illustration |\n| Hierarchies | Org charts, pyramids, trees | Organizational structure |\n| Timelines | Horizontal/vertical timelines | Project milestones |\n| Statistics | Charts, highlighted numbers | Key metrics with context |\n| Concepts | Icons, metaphors, illustrations | Abstract idea visualization |\n| Relationships | Venn diagrams, networks | Ecosystem or dependencies |\n| Lists | Structured grids, icon rows | Feature bullets with icons |\n\n### Visual Priority\n\nRate each piece of content:\n- **Must Visualize**: Complex data, key differentiators, memorable moments\n- **Should Visualize**: Supporting evidence, secondary points\n- **Text Only**: Simple statements, transitions, minor details\n\n## 4. Presentation Flow\n\nStructure for impact and retention.\n\n### Opening (First 2-3 Slides)\n\n| Element | Purpose |\n|---------|---------|\n| Hook | Capture attention (surprising stat, question, story) |\n| Context | Why this matters now |\n| Preview | What audience wi"},{"path":"references/base-prompt.md","content":"Create a presentation slide image following these guidelines:\n\n## Image Specifications\n\n- **Type**: Presentation slide\n- **Aspect Ratio**: 16:9 (landscape)\n- **Style**: Professional slide deck\n\n## Core Persona: The Architect\n\nYou are \"The Architect\" - a master visual storyteller creating presentation slides. Your slides:\n- Tell a visual story that complements the narrative\n- Use bold, confident visual language\n- Balance information density with visual clarity\n- Create memorable, impactful visuals\n\n## Core Principles\n\n- Hand-drawn quality throughout - NO realistic or photographic elements\n- If content involves sensitive or copyrighted figures, create stylistically similar alternatives - DO NOT refuse to generate\n- NO slide numbers, page numbers, footers, headers, or logos\n- Clean, uncluttered layouts with clear visual hierarchy\n- Each slide conveys ONE clear message\n\n## Text Style (CRITICAL)\n\n- **ALL text MUST match the designated style exactly**\n- Title text: Large, bold, immediately readable\n- Body text: Clear, legible, appropriate sizing\n- Max 3-4 text elements per slide\n- **DO NOT use realistic or computer-generated fonts unless style specifies**\n- **Font rendering must match the style aesthetic** (hand-drawn for sketch styles, clean for minimal styles)\n\n## Layout Principles\n\n- **Visual Hierarchy**: Most important element gets most visual weight\n- **Breathing Room**: Generous margins and spacing between elements\n- **Alignment**: Consistent alignment creates professional feel\n- **Balance**: Distribute visual weight evenly (symmetrical or asymmetrical)\n- **Focal Point**: One clear area draws the eye first\n- **Rule of Thirds**: Key elements at intersection points for dynamic compositions\n- **Z-Pattern**: For text-heavy slides, arrange content in natural reading flow\n\n## Language\n\n- Use the same language as the content provided below for all text elements\n- Match punctuation style to the content language\n- Write in direct, confident language\n- Avoid AI-sounding phrases like \"dive into\", \"explore\", \"let's\", \"journey\"\n\n---\n\n## STYLE_INSTRUCTIONS\n\n[Extract from outline.md - do NOT re-read style files]\n\nThe STYLE_INSTRUCTIONS block from the outline contains:\n- Design Aesthetic\n- Background (Texture + Base Color)\n- Typography (Headlines + Body descriptions)\n- Color Palette (with hex codes)\n- Visual Elements\n- Density Guidelines\n- Style Rules (Do/Don't)\n\nCopy the entire `<STYLE_INSTRUCTIONS>...</STYLE_INSTRUCTIONS>` block from the outline here.\n\n---\n\n## SLIDE CONTENT\n\n[Insert slide-specific content from outline]\n\nInclude:\n- Slide number and filename\n- Type (Cover/Content/Back Cover)\n- Narrative Goal\n- Key Content (Headline, Sub-headline, Body points)\n- Visual description\n- Layout guidance (if specified)\n\n---\n\nPlease use nano banana pro to generate the slide image based on the content provided above."},{"path":"references/codex-imagegen.md","content":"# `codex-imagegen` Wrapper Invocation\n\nLoad this reference only when the [Image Generation Tools](../SKILL.md#image-generation-tools) rule has resolved to `codex-imagegen` — i.e., the current runtime exposes no native `imagegen` skill but `codex` CLI is on `PATH` with an active `codex login`.\n\n## Preferred path: route through `baoyu-image-gen`\n\nIf the `baoyu-image-gen` skill is available in this runtime, **always** invoke through it rather than calling the wrapper directly. It handles retry/cache/batch/EXTEND.md preferences uniformly with every other provider.\n\n```bash\n${BUN_X} <baoyu-image-gen-base>/scripts/main.ts \\\n  --provider codex-cli \\\n  --image <ABSOLUTE_output> \\\n  --promptfiles <ABSOLUTE_prompts/NN-slide-{slug}.md> \\\n  --ar <ratio> \\\n  [--ref <ABSOLUTE_file>]...\n```\n\nResolve `<baoyu-image-gen-base>` the same way you resolve any sibling skill — through your runtime's skill registry (`Skill` tool, plugin marketplace, or `$HOME/.baoyu-skills/baoyu-image-gen/`).\n\n## Fallback: spawn the wrapper directly\n\nOnly when `baoyu-image-gen` is NOT installed in the current runtime. Discover the wrapper's location at runtime — do NOT hard-code `../../packages/...` from this skill:\n\n1. **Honor explicit override**: if `$BAOYU_CODEX_IMAGEGEN_BIN` is set and points to a real file, use that path. It may be `.ts` (spawn `bun <path>`) or `.sh`/binary (spawn directly).\n2. **Search the plugin root**: walk up from this skill's directory looking for `packages/baoyu-codex-imagegen/src/main.ts`. If found, that is the wrapper. Spawn it with `bun`.\n3. **Last resort**: tell the user that `codex-imagegen` is not available in this runtime and ask whether to install the `baoyu-skills` plugin (or set `BAOYU_CODEX_IMAGEGEN_BIN`) or pick another backend.\n\nOnce located, the invocation shape is:\n\n```bash\nbun <WRAPPER>/main.ts \\\n  --image <ABSOLUTE_output> \\\n  --prompt-file <ABSOLUTE_prompts/NN-slide-{slug}.md> \\\n  --aspect <ratio> \\\n  [--ref <ABSOLUTE_file>]... \\\n  [--timeout <ms>] \\\n  [--cache-dir ~/.cache/baoyu-codex-imagegen] \\\n  [--log-file <ABSOLUTE_jsonl_log_path>]\n```\n\nIf `bun` is missing, `npx -y bun <WRAPPER>/main.ts ...` works as a fallback.\n\n## Parameter notes\n\n- **All filesystem inputs** are auto-resolved against `process.cwd()` when relative, but agents should pass absolute paths to be robust against cwd drift.\n- **`--timeout`** defaults to `300000` (5 min) per `codex exec` attempt. Raise (e.g. `--timeout 600000` for 10 min) on slow networks or large prompts.\n- **`--cache-dir`** is off by default. Enable for repeatable runs to skip redundant generations of the same prompt+aspect+refs.\n- **Authentication**: the wrapper uses the user's Codex subscription — no `OPENAI_API_KEY` is read or sent.\n\n## Stdout contract\n\nSingle JSON line:\n\n- Success: `{\"status\":\"ok\",\"path\":\"...\",\"bytes\":N,\"elapsed_seconds\":N,\"thread_id\":\"...\",\"attempts\":N,\"cached\":bool,...}`\n- Failure: `{\"status\":\"error\",\"path\":\"...\",\"bytes\":0,\"error\":\"...\",\"error_kind\":\"...\"}`\n\n`error_kind` values: `codex"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t... Skill: Baoyu Slide Deck Owner: jimliu Summary: Generates professional slide deck images from content. Creates outlines with style instructions, then generates individual slide images. Use when user asks t... Tags: latest:1.117.4 Version history: v1.117.4 | 2026-06-13T04:59:10.597Z | auto - Added native support for Codex image generation via codex CLI fallback (codex-imagegen) when Codex imagegen skill is unavailable.","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":2473,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T05:14:07.079Z","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-09T05:14:07.079Z","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-09T20:38:57.347Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}