#!/usr/bin/env node // Scaffold one Open Design skill per upstream html-ppt full-deck template. // // Each generated `skills/html-ppt-/SKILL.md` ships only frontmatter + // a short body. Authoring guidance, layouts, themes, and animations live in // the master `skills/html-ppt/` skill — these wrappers only exist so each // template surfaces as its own card in the Examples gallery and so the // "Use this prompt" flow can prefill `mode=deck`, scenario, and the right // example_prompt. import { writeFile, mkdir } from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..'); const SKILLS = path.join(ROOT, 'skills'); const UPSTREAM_URL = 'https://github.com/lewislulu/html-ppt-skill'; // `featured` is a sort priority used by the Examples gallery — smaller wins // the tie-break, so a curated handful float to the top. Templates without // `featured` slot in alphabetically after the existing skills. const TEMPLATES = [ { slug: 'pitch-deck', name: 'html-ppt-pitch-deck', title: 'HTML PPT · Pitch Deck', scenario: 'finance', featured: 20, description: 'Investor-ready 10-slide HTML pitch deck — white + blue→purple gradient hero, big numbers, traction bar chart, $4.5M-style ask page. Use when the user wants a fundraising deck, seed-round pitch, or VC meeting slides.', triggers: ['pitch deck', 'pitch', 'fundraising', 'seed round', 'investor deck', 'vc deck', 'pitch slides'], examplePrompt: 'Build a 10-slide pitch deck in HTML for my seed round. Use the html-ppt-pitch-deck full-deck template (white + blue→purple gradient, traction bars, $X.XM ask). Confirm three things first: (1) name + one-line pitch, (2) key traction numbers, (3) ask + use of funds.', }, { slug: 'product-launch', name: 'html-ppt-product-launch', title: 'HTML PPT · Product Launch', scenario: 'marketing', featured: 21, description: 'Launch keynote deck — dark hero + light content, warm orange→peach accent, feature cards, pricing tiers, CTA. Use when announcing a product, launching a feature, or doing a keynote-style reveal.', triggers: ['product launch', 'keynote', 'launch deck', 'feature reveal', 'launch slides', '发布会'], examplePrompt: 'Make a product-launch keynote deck in HTML using the html-ppt-product-launch full-deck template (dark hero, warm orange accent, feature cards, pricing tiers). Confirm: product name + tagline, the 3 key features, and pricing tiers — then write the deck.', }, { slug: 'tech-sharing', name: 'html-ppt-tech-sharing', title: 'HTML PPT · Tech Sharing', scenario: 'engineering', featured: 22, description: 'Conference / internal tech-talk deck — GitHub-dark, JetBrains Mono, terminal code blocks, agenda + Q&A pages. Use for engineering presentations, internal sharing sessions, conference talks, and code-heavy walkthroughs.', triggers: ['tech sharing', 'tech talk', '技术分享', 'engineering talk', 'conference talk', 'dev talk'], examplePrompt: '帮我用 html-ppt-tech-sharing 模板做一份 8 页的技术分享 PPT。先确认:分享主题、目标听众(同事 / 社区 / 客户)、要不要包含代码片段和 benchmark。GitHub 暗色主题 + JetBrains Mono,agenda + Q&A 页备好。', }, { slug: 'weekly-report', name: 'html-ppt-weekly-report', title: 'HTML PPT · Weekly Report', scenario: 'operations', featured: 23, description: 'Team weekly / status-update deck — corporate clarity, 8-cell KPI grid, shipped list, 8-week bar chart, next-week table. Use for 周报, business reviews, team status updates, and exec dashboards.', triggers: ['weekly report', '周报', 'status update', 'team report', 'business review', 'wbr'], examplePrompt: '用 html-ppt-weekly-report 模板生成一份周报(7 页)。先问我四件事:本周时间范围、3-5 个核心 KPI 数字、本周已发布 / 已完成的事项、下周计划与风险。然后用模板填好 8 周柱状图和下周表格。', }, { slug: 'xhs-post', name: 'html-ppt-xhs-post', title: 'HTML PPT · 小红书 图文', scenario: 'marketing', featured: 24, description: '小红书 / Instagram 风 9 页 3:4 竖版图文(810×1080)— 暖色 pastel、虚线 sticker 卡片、底部页码点点。用于发小红书图文、Instagram carousel、品牌种草内容。', triggers: ['小红书', 'xhs', 'xhs post', 'xiaohongshu', '图文', 'instagram carousel', '种草'], examplePrompt: '帮我用 html-ppt-xhs-post 模板做一组 9 张小红书图文(3:4 竖版,810×1080)。先告诉我主题,然后帮我把封面 + 7 页内容 + 结尾 CTA 排好,每页一句标题 + 一段正文 + 关键词 sticker。', }, { slug: 'course-module', name: 'html-ppt-course-module', title: 'HTML PPT · Course Module', scenario: 'education', featured: 25, description: 'Online-course / workshop module deck — warm paper background + Playfair serif, persistent left sidebar of learning objectives, MCQ self-check page. Use for teaching modules, training materials, workshop slides.', triggers: ['course module', 'course slides', 'workshop', 'training deck', 'lesson', '教学', '课件'], examplePrompt: 'Use the html-ppt-course-module template to build a 7-slide module deck. Confirm: module title, 3-5 learning objectives (these stick on the left rail), and the MCQ self-check question. Then assemble the deck with serif headings on warm paper.', }, { slug: 'presenter-mode-reveal', name: 'html-ppt-presenter-mode', title: 'HTML PPT · Presenter Mode (演讲者模式)', scenario: 'engineering', featured: 26, description: '演讲者模式专用 deck — tokyo-night 默认主题,5 套主题 T 键切换,每页带 150-300 字逐字稿示例(