{"id":"2da207a9-cf96-4c33-8cac-fb7750cbe8b6","shortId":"VSR8sz","kind":"skill","title":"lovstudio-any2deck","tagline":"Generate professional slide deck images from content (Markdown, text, URLs). Creates outlines with style instructions, then generates individual slide images. Supports 16 visual styles, CJK/Latin mixed text, branding overlays, and PPTX/PDF export. Use when the user asks to \"creat","description":"# Slide Deck Generator\n\nTransform content into professional slide deck images.\n\n## Usage\n\n```bash\n/lovstudio:any2deck path/to/content.md\n/lovstudio:any2deck path/to/content.md --style sketch-notes\n/lovstudio:any2deck path/to/content.md --audience executives\n/lovstudio:any2deck path/to/content.md --lang zh\n/lovstudio:any2deck path/to/content.md --slides 10\n/lovstudio:any2deck path/to/content.md --outline-only\n/lovstudio:any2deck  # Then paste content\n```\n\n## Script Directory\n\n**Agent Execution Instructions**:\n1. Determine this SKILL.md file's directory path as `SKILL_DIR`\n2. Script path = `${SKILL_DIR}/scripts/<script-name>`\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| `scripts/apply-branding.py` | Composite logo(s)/QR onto slides — dual logo, tight-crop, JPG white→alpha (opt-in) |\n\n## Options\n\n| Option | Description |\n|--------|-------------|\n| `--style <name>` | Visual style: preset name, `custom`, or custom style name |\n| `--audience <type>` | Target: beginners, intermediate, experts, executives, general |\n| `--lang <code>` | Output language (en, zh, ja, etc.) |\n| `--slides <number>` | Target slide count (8-25 recommended, max 30) |\n| `--outline-only` | Generate outline only, skip image generation |\n| `--prompts-only` | Generate outline + prompts, skip images |\n| `--images-only` | Generate images from existing prompts directory |\n| `--regenerate <N>` | Regenerate specific slide(s): `--regenerate 3` or `--regenerate 2,5,8` |\n| `--logo <path>` | Primary brand logo (top-right, skips cover/back-cover) |\n| `--logo2 <path>` | Secondary logo (placed left of primary, optically aligned) |\n| `--presentation` | Presentation mode: strips narration text, keeps only visual anchors |\n\n**Slide Count by Content Length**:\n| Content | 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## Style System\n\n### Presets\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| `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\n### Style Dimensions\n\n| Dimension | Options | Description |\n|-----------|---------|-------------|\n| **Texture** | clean, grid, organic, pixel, paper | Visual texture and background treatment |\n| **Mood** | professional, warm, cool, vibrant, dark, neutral | Color temperature and palette style |\n| **Typography** | geometric, humanist, handwritten, editorial, technical | Headline and body text styling |\n| **Density** | minimal, balanced, dense | Information density per slide |\n\nFull specs: `references/dimensions/*.md`\n\n### Auto Style Selection\n\n| Content Signals | Preset |\n|-----------------|--------|\n| tutorial, learn, education, guide, beginner | `sketch-notes` |\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| Default | `blueprint` |\n\n## Design Philosophy\n\nDecks designed for **reading and sharing**, not live presentation:\n- Each slide self-explanatory without verbal commentary\n- Logical flow when scrolling\n- All necessary context within each slide\n- Optimized for social media sharing\n\nSee `references/design-guidelines.md` for:\n- Audience-specific principles\n- Visual hierarchy\n- Content density guidelines\n- Color and typography selection\n- Font recommendations\n\nSee `references/layouts.md` for layout options.\n\n## File Management\n\n### Output Directory\n\n```\nslide-deck/{topic-slug}/\n├── source-{slug}.{ext}\n├── outline.md\n├── prompts/\n│   └── 01-slide-cover.md, 02-slide-{slug}.md, ...\n├── 01-slide-cover.png, 02-slide-{slug}.png, ...\n├── {topic-slug}.pptx\n└── {topic-slug}.pdf\n```\n\n**Slug**: Extract topic (2-4 words, kebab-case). Example: \"Introduction to Machine Learning\" → `intro-machine-learning`\n\n**Conflict Handling**: See Step 1.3 for existing content detection and user options.\n\n## Language Handling\n\n**Detection Priority**:\n1. `--lang` flag (explicit)\n2. EXTEND.md `language` setting\n3. User's conversation language (input language)\n4. Source content language\n\n**Rule**: ALL responses use user's preferred language:\n- Questions and confirmations\n- Progress reports\n- Error messages\n- Completion summaries\n\nTechnical terms (style names, file paths, code) remain in English.\n\n## Workflow\n\nFor the full step-by-step workflow, use `references/workflow.md`. Keep the main\nflow in this order:\n\n1. Setup & analyze: load `.lovstudio-skills/lovstudio-any2deck/EXTEND.md` when present, save source content, analyze style signals, detect language, choose slide count, and check for existing `slide-deck/{topic-slug}` output before continuing.\n2. Confirm: use `AskUserQuestion` for style, audience, slide count, outline review, and prompt review. If custom dimensions are selected, collect texture, mood, typography, and density.\n3. Generate outline: read the selected preset from `references/styles/` or combine dimension docs from `references/dimensions/`, then write `outline.md` using `references/outline-template.md`.\n4. Review outline when requested, then generate per-slide prompts under `prompts/` using `references/base-prompt.md` and `references/layouts.md`.\n5. Review prompts when requested, generate slide images, optionally apply branding with `scripts/apply-branding.py`, then merge PPTX/PDF with the TypeScript scripts.\n6. Report the output directory, generated slide count, PPTX/PDF paths, style, audience, language, and any partial failures.\n\nPartial workflows (`--outline-only`, `--prompts-only`, `--images-only`,\n`--regenerate`) and slide modification procedures are documented in\n`references/workflow.md`.\n\n## References\n\n| File | Content |\n|------|---------|\n| `references/analysis-framework.md` | Content analysis for presentations |\n| `references/outline-template.md` | Outline structure and format |\n| `references/modification-guide.md` | Edit, add, delete slide workflows |\n| `references/content-rules.md` | Content and style guidelines |\n| `references/design-guidelines.md` | Audience, typography, colors, visual elements |\n| `references/layouts.md` | Layout options and selection tips |\n| `references/base-prompt.md` | Base prompt for image generation |\n| `references/dimensions/*.md` | Dimension specifications (texture, mood, typography, density) |\n| `references/dimensions/presets.md` | Preset → dimension mapping |\n| `references/styles/<style>.md` | Full style specifications (legacy) |\n| `references/config/preferences-schema.md` | EXTEND.md structure |\n\n## Notes\n\n- Image generation: 10-30 seconds per slide\n- Auto-retry once on generation failure\n- Use stylized alternatives for sensitive public figures\n- Maintain style consistency via session ID\n- **Step 2 confirmation required** - do not skip (style, audience, slides, outline review, prompt review)\n- **Step 4 conditional** - only if user requested outline review in Step 2\n- **Step 6 conditional** - only if user requested prompt review in Step 2\n\n## Extension Support\n\nCustom configurations via EXTEND.md. See **Step 1.1** for paths and supported options.","tags":["any2deck","skills","lovstudio","agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx","markdown-to-pdf"],"capabilities":["skill","source-lovstudio","skill-any2deck","topic-agent-skills","topic-ai-coding-assistant","topic-cjk","topic-claude-code","topic-cursor","topic-gemini-cli","topic-markdown-to-docx","topic-markdown-to-pdf"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/lovstudio/skills/any2deck","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add lovstudio/skills","source_repo":"https://github.com/lovstudio/skills","install_from":"skills.sh"}},"qualityScore":"0.477","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 54 github stars · SKILL.md body (9,191 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:57:47.907Z","embedding":null,"createdAt":"2026-04-18T22:18:50.522Z","updatedAt":"2026-05-18T18:57:47.907Z","lastSeenAt":"2026-05-18T18:57:47.907Z","tsv":"'-10':255 '-18':260 '-25':175,265 '-30':269 '-3000':257 '-4':669 '-5000':262 '/lovstudio':55,58,65,70,75,80,86 '/lovstudio-any2deck/extend.md':770 '/qr':129 '/scripts':112 '01-slide-cover.md':647 '01-slide-cover.png':652 '02':648,653 '1':96,699,763 '1.3':687 '10':79,259 '1000':252,256 '15':264 '16':25 '2':107,214,668,703,797 '20':268 '3':211,707,822 '30':178 '3000':261 '4':714,842 '5':215,254,859 '5000':266 '6':879 '8':174,216 'academ':381,502 'add':931 'agent':93 'align':234 'alpha':139 'analysi':491,921 'analyz':765,776 'anchor':244 'anim':365,546,550 'any2deck':3,56,59,66,71,76,81,87 'appli':868 'architectur':285,488 'art':384,557 'artist':571 'ask':40 'askuserquest':800 'atmospher':328,533,536 'audienc':68,156,613,803,890,941 'audience-specif':612 'auto':469 'background':432 'balanc':284,292,299,316,332,349,388,406,415,459 'base':953 'bash':54 'beginn':158,479 'best':277 'bilingu':504 'biolog':397,558 'blueprint':279,493,574 'bodi':454 'bold':344,528 'bold-editori':343,527 'brand':31,219,869 'brief':309,501 'busi':520 'case':673 'chalkboard':288,486,487 'check':785 'chemistri':398,559 'children':408,495 'choos':781 'cjk/latin':28 'classroom':483 'clean':296,304,329,336,346,356,375,393,403,424,510 'code':741 'collect':816 'color':441,621,943 'combin':832 'commentari':593 'communic':540 'complet':733 'composit':126 'confirm':728,798 'conflict':683 'consid':270 'content':10,47,90,248,250,410,472,618,690,716,775,918,920,936 'context':600 'continu':796 'convers':710 'cool':282,357,376,394,437 'corpor':295,521,522 'count':173,246,783,805,886 'cover/back-cover':225 'creat':14,42 'creativ':407,494 'crop':136 'custom':151,153,812 'cute':497 'dark':327,330,439,535 'dark-atmospher':326,534 'dashboard':515 'data':490 'deck':7,44,51,301,577,638,790 'default':280,573 'delet':932 'demo':341 'dens':339,359,378,396,460 'densiti':457,462,619,821,965 'descript':145,422 'design':287,575,578 'detect':691,697,779 'determin':97 'develop':390,554 'dimens':276,419,420,813,833,960,968 'dir':106,111 'directori':92,102,204,635,883 'doc':380,834 'document':913 'dual':132 'edit':930 'editori':331,345,348,354,358,414,450,529,542 'editorial-infograph':353,541 'educ':293,317,370,477 'element':945 'en':166 'english':744 'entertain':333,530 'error':731 'etc':169 'exampl':674 'execut':69,94,161,308,508 'exist':202,689,787 'expedit':566 'expert':160 'explain':361,537 'explanatori':590 'explicit':702 'export':35 'ext':644 'extend.md':704 'extract':666 'failur':895 'fantasi':364,545,549 'fantasy-anim':363,548 'file':100,632,739,917 'flag':701 'flow':595,759 'font':625 'format':928 'full':465,748 'game':334,389,532,551 'general':162 'generat':4,20,45,182,187,191,199,823,848,864,884,957 'geometr':298,306,338,447 'grid':281,425 'guid':478 'guidelin':620,939 'handl':684,696 'handwritten':291,315,368,449 'headlin':452 'heritag':417,564 'hierarchi':617 'histor':416 'histori':563 'humanist':322,405,448 'illustr':402,500 'imag':8,23,52,186,195,197,200,866,905,956 'images-on':196,904 'individu':21 'infograph':355,543 'inform':461 'input':712 'instruct':18,95 'intermedi':159 'intro':680 'intro-machine-learn':679 'introduct':675 'intuit':373,506 'intuition-machin':372,505 'investor':300,518 'ja':168 'journal':538 'jpg':137 'kebab':672 'kebab-cas':671 'keep':241,756 'keynot':352,525 'kid':496 'lang':73,163,700 'languag':165,695,705,711,713,717,725,780,891 'launch':351,523 'layout':630,947 'learn':476,678,682 'left':230 'length':249 'lifestyl':324,568 'live':584 'load':766 'logic':594 'logo':127,133,217,220,228 'logo2':226 'lovstudio':2,768 'lovstudio-any2deck':1 'lovstudio-skil':767 'machin':374,507,677,681 'magazin':526 'magic':547 'main':758 'manag':633 'map':969 'markdown':11 'market':524 'max':177 'md':468,651,959 'media':607 'medic':399,560 'merg':116,121,873 'messag':732 'metric':516 'minim':303,307,323,369,458,509,512 'mix':29 'mode':237 'modif':910 'mood':434,818,963 'music':531 'name':150,155,738 'narrat':239 'necessari':599 'neutral':305,337,440 'note':64,312,482 'notion':335,517 'onto':130 'opt':141 'opt-in':140 'optic':233 'optim':604 'option':143,144,421,631,694,867,948 'order':762 'organ':289,313,320,366,426 'outlin':15,84,180,183,192,806,824,844,899,925 'outline-on':83,179,898 'outline.md':645,839 'output':164,634,794,882 'overlay':32 'palett':444 'paper':412,428 'partial':894,896 'past':89 'path':103,109,740,888 'path/to/content.md':57,60,67,72,77,82 'pdf':124,664 'per':463,850 'per-slid':849 'philosophi':576 'pixel':383,385,427,553,556 'pixel-art':382,555 'place':229 'png':656 'powerpoint':119 'pptx':660 'pptx/pdf':34,874,887 'prefer':724 'present':235,236,585,772,923 'preset':149,274,275,474,828,967 'primari':218,232 'principl':615 'prioriti':698 'procedur':911 'product':340,350,514 'profession':5,49,297,435 'progress':729 'prompt':189,193,203,646,809,852,854,861,902,954 'prompts-on':188,901 'propos':302 'purpos':114 'quarter':519 'question':726 'read':580,825 'recommend':176,626 'refer':916 'references/analysis-framework.md':919 'references/base-prompt.md':856,952 'references/content-rules.md':935 'references/design-guidelines.md':610,940 'references/dimensions':467,836,958 'references/dimensions/presets.md':966 'references/layouts.md':628,858,946 'references/modification-guide.md':929 'references/outline-template.md':841,924 'references/styles':830,970 'references/workflow.md':755,915 'regener':205,206,210,213,907 'remain':742 'report':730,880 'request':846,863 'research':362,503 'respons':720 'retro':552 'review':807,810,843,860 'right':223 'rule':718 'saa':342,513 'save':773 'school':485 'scienc':539 'scientif':392,561,562 'script':91,108,113,878 'scripts/apply-branding.py':125,871 'scripts/merge-to-pdf.ts':120 'scripts/merge-to-pptx.ts':115 'scroll':597 'secondari':227 'see':609,627,685 'select':471,624,815,827,950 'self':589 'self-explanatori':588 'set':706 'setup':764 'share':582,608 'signal':473,778 'simpl':511 'sketch':63,311,481 'sketch-not':62,310,480 'skill':105,110,769 'skill-any2deck' 'skill.md':99 'skip':185,194,224 'slide':6,22,43,50,78,117,122,131,170,172,208,245,251,464,587,603,637,649,654,782,789,804,851,865,885,909,933 'slide-deck':636,788 'slug':641,643,650,655,659,663,665,793 'social':606 'sourc':642,715,774 'source-lovstudio' 'spec':466 'specif':207,614,961 'split':271 'step':686,750,752 'step-by-step':749 'stori':544 'storytel':371 'strip':238 'structur':926 'style':17,27,61,146,148,154,272,418,445,456,470,737,777,802,889,938 'summari':734 'support':24 'system':273,286,489 'talk':391 'target':157,171 'teach':484 'tech':360 'technic':283,377,379,387,395,451,492,735 'temperatur':442 'term':736 'text':12,30,240,455 'textur':423,430,817,962 'tight':135 'tight-crop':134 'tip':951 'top':222 'top-right':221 'topic':640,658,662,667,792 'topic-agent-skills' 'topic-ai-coding-assistant' 'topic-cjk' 'topic-claude-code' 'topic-cursor' 'topic-gemini-cli' 'topic-markdown-to-docx' 'topic-markdown-to-pdf' 'topic-slug':639,657,661,791 'transform':46 'travel':570 'treatment':433 'tutori':294,318,475 'typescript':877 'typographi':446,623,819,942,964 'url':13 'usag':53 'use':36,721,754,799,840,855 'user':39,693,708,722 'vector':401,499 'vector-illustr':400,498 'verbal':592 'vibrant':347,367,386,404,438 'vintag':411,565,567 'visual':26,147,243,429,616,944 'warm':290,314,321,413,436 'watercolor':319,572 'well':325,569 'white':138 'within':601 'without':591 'word':253,258,263,267,670 'workflow':745,753,897,934 'write':838 'zh':74,167","prices":[{"id":"8429b7a2-d530-4d61-9509-ec1d977cc59e","listingId":"2da207a9-cf96-4c33-8cac-fb7750cbe8b6","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"lovstudio","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:18:50.522Z"}],"sources":[{"listingId":"2da207a9-cf96-4c33-8cac-fb7750cbe8b6","source":"github","sourceId":"lovstudio/skills/any2deck","sourceUrl":"https://github.com/lovstudio/skills/tree/main/skills/any2deck","isPrimary":false,"firstSeenAt":"2026-04-18T22:18:50.522Z","lastSeenAt":"2026-05-18T18:57:47.907Z"}],"details":{"listingId":"2da207a9-cf96-4c33-8cac-fb7750cbe8b6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"lovstudio","slug":"any2deck","github":{"repo":"lovstudio/skills","stars":54,"topics":["agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx","markdown-to-pdf"],"license":"mit","html_url":"https://github.com/lovstudio/skills","pushed_at":"2026-05-17T09:28:31Z","description":"Top-level index for the Lovstudio skills ecosystem","skill_md_sha":"22e780722b2a8473cc37c3a05bab679d5a599733","skill_md_path":"skills/any2deck/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/lovstudio/skills/tree/main/skills/any2deck"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"lovstudio-any2deck","license":"MIT","description":"Generate professional slide deck images from content (Markdown, text, URLs). Creates outlines with style instructions, then generates individual slide images. Supports 16 visual styles, CJK/Latin mixed text, branding overlays, and PPTX/PDF export. Use when the user asks to \"create slides\", \"make a presentation\", \"generate deck\", \"slide deck\", \"PPT\", \"做PPT\", \"生成幻灯片\", \"制作演示文稿\", or wants to turn content into a visual slide deck.","compatibility":"Requires an image generation skill (e.g. image-gen) and Node.js for PPTX/PDF merge. Python 3.8+ for branding overlay. Cross-platform: macOS, Windows, Linux."},"skills_sh_url":"https://skills.sh/lovstudio/skills/any2deck"},"updatedAt":"2026-05-18T18:57:47.907Z"}}