#114 by GitHub stars
ConardLi/garden-skills
ConardLi's open-source Skills collection, featuring web design, knowledge retrieval, image generation, and more.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/beautiful-article/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
2b9a89340b70 → 2b9a89340b70
skills/gpt-image-2/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
2b9a89340b70 → 2b9a89340b70
skills/kb-retriever/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Local scripts → After Local scripts
2b9a89340b70 → 2b9a89340b70
skills/motion-showreel/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
2b9a89340b70 → 2b9a89340b70
skills/web-design-engineer/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Instructions only → After Instructions only
2b9a89340b70 → 2b9a89340b70
skills/web-video-presentation/SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
2b9a89340b70 → 2b9a89340b70
Verified commit 2b9a89340b70f632d31c0f1c69fce94a7912423e
git clone --filter=blob:none --no-checkout https://github.com/ConardLi/garden-skills.git .hotskills/conardli-garden-skills && git -C .hotskills/conardli-garden-skills checkout --detach 2b9a89340b70f632d31c0f1c69fce94a7912423e
# Copy each selected skill directory from .hotskills/conardli-garden-skills into .claude/skills/<skill-name>/Heat
8.2- Star growth, last 7 daysAhead of 98% of tracked repositories
- Star growth, last 24 hoursAhead of 100% of tracked repositories
- Rank movement, last 7 daysAhead of 88% of tracked repositories
- Commits, last 30 daysAhead of 80% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- beautiful-article
skills/beautiful-article - gpt-image-2
skills/gpt-image-2 - kb-retriever
skills/kb-retriever - motion-showreel
skills/motion-showreel - web-design-engineer
skills/web-design-engineer - web-video-presentation
skills/web-video-presentation
How it works
beautiful-article
When your agent uses it
把用户提供的素材(网页 URL / PDF / DOCX / Markdown / 纯文本 / 截图 / 粘贴材料)编辑、设计成一篇美丽的、可离线打开和分享的**单文件 HTML 网页文章**。基于 reacticle 组件协议:不手写裸 HTML/CSS,而用语义组件 + 受主题约束的 Raw 自由层;按 source→规划→双确认→生成→终审→修复的小型 harness 流程推进,默认 100% 信息保留的长文。触发场景:把 URL/PDF/DOCX/文章做成网页文章 / 长文 / briefing / 解释文 / 视觉文章 / 教程 / 审阅复盘 / 方案分析,'render this as a beautiful web article / 把这篇做成网页文章 / 生成一篇可分享的 HTML 长文 / reacticle 文章'。只生成文章,不生成后台、表单、dashboard、产品原型或通用 Web App。
What it loads into context
Frontmatter
231 tokensAlways available to the agent
SKILL.md
9,021 tokensWhen the skill is activated
Reference documents
57,384 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 背景原则
- 边界(先判断要不要进这个 Skill)
- 工作流总览
- 硬性质检协议(贯穿整个 Skill)
- 各阶段文件读取指南(渐进加载,别一次全读)
- Phase 0 —— Intake
- Phase 1 —— Source → Markdown
- Phase 2 —— Editorial Planning
- Phase 3 —— Plan Checkpoint(★硬节点 · Checkpoint 1,必须停)
- Phase 4 —— First Spread(文章版"第一章验收")
- Checkpoint 2 · First Spread(★硬节点,必须停)
- Phase 5 —— Full Article Build
- Phase 6 —— Final Review(三视角终审)
- Phase 7 —— Repair(最小切片)
- Checkpoint 3 · Final(★交付确认)
- Phase 8 —— Delivery
- 默认策略
- 成功标准
- 相关资源(按"何时读"标注)
Scripts executed separately
assets/scaffold-template/article/Article.tsxassets/scaffold-template/article/Cover.tsxassets/scaffold-template/article/main.tsxassets/scaffold-template/article/sections/01-opening.tsxassets/scaffold-template/package.jsonassets/scaffold-template/vite.config.tsscripts/html-to-pdf.shscripts/scaffold.shscripts/source-to-markdown-markitdown.pyscripts/source-to-markdown.py
Files
../../.claude-plugin/marketplace.jsonasset2,299 bytesREADME.mddoc24,181 bytesREADME.zh-CN.mddoc23,731 bytesSKILL.mdcore31,482 bytesSKILL.mdcore31,482 bytesSKILL.mdcore31,482 bytesSKILL.mdcore31,482 bytesSKILL.mdcore31,482 bytesassets/scaffold-template/.npmrcasset37 bytesassets/scaffold-template/article/Article.tsxruns2,811 bytesassets/scaffold-template/article/Cover.tsxruns7,660 bytesassets/scaffold-template/article/main.tsxruns1,173 bytesassets/scaffold-template/article/sections/01-opening.tsxruns1,314 bytesassets/scaffold-template/index.htmlasset755 bytesassets/scaffold-template/package.jsonruns783 bytesassets/scaffold-template/tsconfig.jsonasset512 bytesassets/scaffold-template/tsconfig.node.jsonasset230 bytesassets/scaffold-template/vite.config.tsruns614 bytesmanifest.jsonasset733 bytesreferences/article-types.mddoc3,767 bytesreferences/article-types/briefing.mddoc2,177 bytesreferences/article-types/dialogue.mddoc2,181 bytesreferences/article-types/essay.mddoc2,129 bytesreferences/article-types/explainer.mddoc2,388 bytesreferences/article-types/full-report.mddoc2,422 bytesreferences/article-types/interactive-explainer.mddoc5,042 bytesreferences/article-types/longform.mddoc2,325 bytesreferences/article-types/review.mddoc2,342 bytesreferences/article-types/tutorial.mddoc2,268 bytesreferences/article-types/visual-essay.mddoc2,504 bytesreferences/asset-policy.mddoc3,833 bytesreferences/component-policy.mddoc5,543 bytesreferences/cover.mddoc11,868 bytesreferences/harness.mddoc2,123 bytesreferences/html-output.mddoc1,988 bytesreferences/information-density.mddoc3,238 bytesreferences/layout.mddoc2,003 bytesreferences/pdf-output.mddoc10,041 bytesreferences/plan-template.mddoc5,851 bytesreferences/raw-policy.mddoc4,485 bytesreferences/repair-policy.mddoc1,236 bytesreferences/review-checklist.mddoc7,312 bytesreferences/scaffold.mddoc3,602 bytesreferences/section-build.mddoc5,405 bytesreferences/source-to-markdown.mddoc6,401 bytesreferences/theme-selection.mddoc2,301 bytesscripts/html-to-pdf.shruns6,377 bytesscripts/pdf-print-overrides.cssasset6,457 bytesscripts/scaffold.shruns7,516 bytesscripts/source-to-markdown-markitdown.pyruns3,308 bytesscripts/source-to-markdown.pyruns5,992 bytestheme-profiles/andy.mddoc3,426 bytestheme-profiles/bayer.mddoc3,198 bytestheme-profiles/bodoni.mddoc3,307 bytestheme-profiles/freddie.mddoc3,420 bytestheme-profiles/fuller.mddoc3,276 bytestheme-profiles/index.jsonasset5,912 bytestheme-profiles/knuth.mddoc3,603 bytestheme-profiles/press.mddoc3,633 bytestheme-profiles/shannon.mddoc3,831 bytestheme-profiles/sottsass.mddoc3,420 bytestheme-profiles/tufte.mddoc3,621 bytestheme-profiles/vignelli.mddoc3,655 bytes
Read SKILL.md
# Beautiful Article
## 背景原则
AI 生成内容越复杂,输出媒介越重要。HTML 的价值在于同时提升信息密度、视觉清晰度、分享便利性和交互能力:表格、SVG、CSS、代码片段、可调控件、复制与导出按钮,可以让读者不只是“看完”,而是能比较、定位、调整、复查和继续使用。Beautiful Article 的目的,是把原本枯燥、线性、难以消化的文字材料,转换成视觉体验更漂亮、阅读节奏更清晰、也更容易审阅和分享的单文件网页文章。
## 边界(先判断要不要进这个 Skill)
- 最终主产物是 **single HTML 文章**,不是网页应用。
- 文章可以有 `Raw` 自由层(任意 HTML / CSS / JS / React:交互、布局排版、动效、小工具、
按需的 SVG / canvas 图解),但**必须服务阅读、解释、论证、节奏或审美**。
- **不**生成:后台、表单、拖拽工作台、完整 dashboard、产品原型、通用 Web App。
- 信息密度由用户确认;**默认保留 100% 信息**,生成长文式网页文章。View the complete source on GitHubgpt-image-2
When your agent uses it
面向 GPT Image 2 的图像生成 / 编辑技能。可在 3 种环境下使用:(A) Garden 本地模式,通过 OpenAI 兼容接口直接出图并落盘;(B) Host-Native 模式,把本 Skill 当作提示词工程指引,把渲染好的 prompt 交给宿主 Agent 自带的图像工具出图;(C) Advisor 模式,宿主无任何图像工具时退化为高质量 prompt 顾问。涵盖 18 大类、80+ 个结构化模板,覆盖海报 / UI / 产品 / 信息图 / 学术图 / 技术架构图 / 漫画 / 头像 / 流程板 / 电影分镜 / IP 周边 / 编辑工作流等场景。
What it loads into context
Frontmatter
181 tokensAlways available to the agent
SKILL.md
7,804 tokensWhen the skill is activated
Reference documents
229,988 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 运行模式(必读,做任何事之前先确定)
- 用户输入工具
- 技能结构
- 环境变量
- 默认输出目录
- 默认命名规则
- Prompt 保存规则
- 图片保存规则(仅 Mode A)
- 快速用法
- JSON 模板工作方式
- 询问规则
- 模板索引
- 提示词工作流(模式感知)
- 重要约束
- 何时提问
Scripts executed separately
scripts/check-mode.jsscripts/edit.jsscripts/generate.jsscripts/package.jsonscripts/shared.js
Files
README.mddoc19,179 bytesREADME.zh-CN.mddoc18,942 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesSKILL.mdcore26,643 bytesmanifest.jsonasset580 bytesreferences/academic-figures/graphical-abstract.mddoc10,415 bytesreferences/academic-figures/mechanism-diagram.mddoc11,533 bytesreferences/academic-figures/method-pipeline-overview.mddoc12,888 bytesreferences/academic-figures/multi-condition-comparison.mddoc11,070 bytesreferences/academic-figures/neural-network-architecture.mddoc9,852 bytesreferences/academic-figures/publication-chart.mddoc11,594 bytesreferences/academic-figures/qualitative-comparison-grid.mddoc9,664 bytesreferences/academic-figures/research-overview-poster.mddoc11,741 bytesreferences/academic-figures/scientific-schematic.mddoc11,136 bytesreferences/assets-and-props/game-screenshot-mockup.mddoc5,914 bytesreferences/assets-and-props/retro-skeuomorphic-icons.mddoc5,453 bytesreferences/avatars-and-profile/character-grid-portrait.mddoc6,682 bytesreferences/avatars-and-profile/cultural-portrait-series.mddoc5,449 bytesreferences/avatars-and-profile/sticker-set.mddoc5,406 bytesreferences/avatars-and-profile/style-transfer-selfie.mddoc5,194 bytesreferences/avatars-and-profile/themed-3d-icon.mddoc5,122 bytesreferences/branding-and-packaging/beverage-label-design.mddoc5,226 bytesreferences/branding-and-packaging/brand-identity-board.mddoc5,806 bytesreferences/branding-and-packaging/character-merch-board.mddoc15,100 bytesreferences/branding-and-packaging/cosmetic-packaging.mddoc5,310 bytesreferences/branding-and-packaging/full-mascot-brand-doc.mddoc13,304 bytesreferences/branding-and-packaging/mascot-brand-kit.mddoc5,593 bytesreferences/editing-workflows/background-replacement.mddoc3,712 bytesreferences/editing-workflows/local-object-replacement.mddoc3,427 bytesreferences/editing-workflows/object-removal.mddoc2,896 bytesreferences/editing-workflows/portrait-local-edit.mddoc3,436 bytesreferences/editing-workflows/product-retouching.mddoc3,300 bytesreferences/grids-and-collages/ad-banner-multi-grid.mddoc10,811 bytesreferences/grids-and-collages/anime-pitch-board.mddoc5,809 bytesreferences/grids-and-collages/banner-grid-2x2.mddoc5,779 bytesreferences/grids-and-collages/lookbook-grid.mddoc5,563 bytesreferences/grids-and-collages/mixed-style-multi-panel.mddoc5,762 bytesreferences/infographics/bento-grid-infographic.mddoc8,581 bytesreferences/infographics/comparison-infographic.mddoc7,619 bytesreferences/infographics/hand-drawn-infographic.mddoc8,322 bytesreferences/infographics/kpi-dashboard-infographic.mddoc9,048 bytesreferences/infographics/legend-heavy-infographic.mddoc6,713 bytesreferences/infographics/step-by-step-infographic.mddoc8,151 bytesreferences/maps/food-map.mddoc7,140 bytesreferences/maps/illustrated-city-map.mddoc5,029 bytesreferences/maps/itinerary-day-trip-map.mddoc13,874 bytesreferences/maps/store-distribution-map.mddoc5,549 bytesreferences/maps/travel-route-map.mddoc5,933 bytesreferences/portraits-and-characters/character-sheet.mddoc5,480 bytesreferences/portraits-and-characters/founder-portrait.mddoc5,102 bytesreferences/portraits-and-characters/pose-reference-sheet.mddoc12,743 bytesreferences/portraits-and-characters/professional-portrait.mddoc4,733 bytesreferences/portraits-and-characters/virtual-host.mddoc5,006 bytesreferences/poster-and-campaigns/banner-hero.mddoc4,756 bytesreferences/poster-and-campaigns/biomimetic-concept-poster.mddoc11,323 bytesreferences/poster-and-campaigns/brand-poster.mddoc4,502 bytesreferences/poster-and-campaigns/campaign-kv.mddoc4,932 bytesreferences/poster-and-campaigns/character-catalog-poster.mddoc13,349 bytesreferences/poster-and-campaigns/editorial-cover.mddoc5,241 bytesreferences/poster-and-campaigns/lineup-comparison-poster.mddoc12,319 bytesreferences/poster-and-campaigns/vintage-editorial-infographic.mddoc12,978 bytesreferences/product-visuals/ecommerce-marketing-board.mddoc14,111 bytesreferences/product-visuals/exploded-view-poster.mddoc8,041 bytesreferences/product-visuals/lifestyle-product-scene.mddoc7,331 bytesreferences/product-visuals/packaging-showcase.mddoc7,209 bytesreferences/product-visuals/premium-studio-product.mddoc6,896 bytesreferences/product-visuals/white-background-product.mddoc5,876 bytesreferences/prompt-writing.mddoc24,019 bytesreferences/scenes-and-illustrations/concept-scene.mddoc4,570 bytesreferences/scenes-and-illustrations/healing-scene.mddoc4,511 bytesreferences/scenes-and-illustrations/minimalist-mood-scene.mddoc4,428 bytesreferences/scenes-and-illustrations/picture-book-scene.mddoc4,531 bytesreferences/slides-and-visual-docs/dense-explainer-slides.mddoc5,597 bytesreferences/slides-and-visual-docs/educational-diagram-slide.mddoc5,238 bytesreferences/slides-and-visual-docs/policy-style-slide.mddoc5,845 bytesreferences/slides-and-visual-docs/visual-report-page.mddoc5,982 bytesreferences/storyboards-and-sequences/anime-key-visual.mddoc4,809 bytesreferences/storyboards-and-sequences/character-relationship-diagram.mddoc5,773 bytesreferences/storyboards-and-sequences/cinematic-storyboard-grid.mddoc11,912 bytesreferences/storyboards-and-sequences/four-panel-comic.mddoc5,842 bytesreferences/storyboards-and-sequences/manga-spread-page.mddoc5,819 bytesreferences/storyboards-and-sequences/process-photo-board.mddoc14,365 bytesreferences/storyboards-and-sequences/product-tvc-storyboard.mddoc11,306 bytesreferences/storyboards-and-sequences/recipe-process-flowchart.mddoc5,805 bytesreferences/technical-diagrams/er-diagram.mddoc11,000 bytesreferences/technical-diagrams/flowchart-decision.mddoc10,158 bytesreferences/technical-diagrams/mind-map-tech.mddoc9,889 bytesreferences/technical-diagrams/network-topology.mddoc11,430 bytesreferences/technical-diagrams/sequence-diagram.mddoc10,805 bytesreferences/technical-diagrams/state-machine.mddoc10,134 bytesreferences/technical-diagrams/system-architecture.mddoc11,788 bytesreferences/typography-and-text-layout/bilingual-layout-visual.mddoc5,549 bytesreferences/typography-and-text-layout/title-safe-poster.mddoc4,766 bytesreferences/ui-mockups/chat-interface-scene.mddoc9,044 bytesreferences/ui-mockups/landing-page-case-study.mddoc12,686 bytesreferences/ui-mockups/live-commerce-ui.mddoc8,688 bytesreferences/ui-mockups/product-card-overlay.mddoc8,502 bytesreferences/ui-mockups/short-video-cover-ui.mddoc7,545 bytesreferences/ui-mockups/social-interface-mockup.mddoc9,366 bytesscripts/check-mode.jsruns2,213 bytesscripts/edit.jsruns7,078 bytesscripts/generate.jsruns5,681 bytesscripts/package.jsonruns67 bytesscripts/shared.jsruns6,324 bytes
Read SKILL.md
# GPT Image 2
这是一个面向 GPT Image 2 的聚焦型技能,在 3 种运行环境下都能用,但行为差异显著。**第一步必须先确定当前运行模式**。
它只做两类图像任务:
- 生成图片:`POST /images/generations`
- 编辑图片:`POST /images/edits`
本文件保留:运行模式、技能结构、环境变量、保存 / 命名规则、模板索引、模式感知工作流。详细模板全部放在 `references/`,分层组织:
- 一级:分类目录
- 二级:单模板 Markdown 文件
View the complete source on GitHubkb-retriever
When your agent uses it
面向本地知识库目录的检索和问答助手。核心流程:(1)分层索引导航 (2)遇到PDF/Excel时必须先读取references学习处理方法 (3)处理文件后再检索。按文件类型组合使用 grep、Read、pdfplumber、pandas 进行渐进式检索,避免整文件加载。用户问题涉及"从知识库目录回答问题/检索信息/查资料"时使用。
What it loads into context
Frontmatter
109 tokensAlways available to the agent
SKILL.md
3,737 tokensWhen the skill is activated
Reference documents
7,635 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 知识库目录说明
- 关键原则:先学习,再处理
- 总体流程
- 公共检索原则
- 针对不同文件类型的具体策略
- 与其他工具的协同
- 回答风格与错误处理
Scripts executed separately
scripts/convert_pdf_to_images.py
Files
README.mddoc7,249 bytesREADME.zh-CN.mddoc6,714 bytesSKILL.mdcore13,984 bytesmanifest.jsonasset546 bytesreferences/excel_analysis.mddoc2,745 bytesreferences/excel_reading.mddoc1,742 bytesreferences/pdf_reading.mddoc9,486 bytesscripts/convert_pdf_to_images.pyruns1,123 bytes
Read SKILL.md
# 本地知识库检索 Skill(kb-retriever)
## 知识库目录说明
- 知识库存放在一个根目录下,包含多种文件类型(如 `.md`/`.txt`、`.pdf`、`.xlsx` 等),通常按类型或业务用途拆分为多级子目录。
- 采用**分层目录索引文件**:
- 根目录有一个 `data_structure.md`,说明主要的「领域目录」及其用途。
- 每个领域目录下可以有自己的 `data_structure.md`,说明该目录下有哪些子目录/文件,以及各自用途。
- 更深一层的子目录也可以继续有 `data_structure.md`,形成多级索引树。
- 知识库根目录约定:
- 默认认为知识库位于当前项目根目录下的 `knowledge/` 目录。
- 如果用户在对话中明确指定了其他路径(例如“我的知识库在 /data/kb”或“用 ./docs 这个目录作为知识库”),则以用户指定的路径作为根目录。
- 当默认路径 `knowledge/` 不存在或访问失败时,应向用户确认实际的知识库根目录位置,而不是随意猜测。
- 单个业务文件可能很大:View the complete source on GitHubmotion-showreel
When your agent uses it
用代码制作图形、文字或界面动画视频,输出 MP4 和可编辑源码,最长 20 分钟。适用于动效作品集、产品片、UI 动效、动态排版、Logo 片头、生成艺术与讲解视频;支持独立选择 BGM/音效来源、用户口播,以及用用户提供的口播稿通过 TTS 合成语音。不用于实拍制作、写实人物生成或一般视频剪辑。
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
9,346 tokensWhen the skill is activated
Reference documents
161,097 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 适用范围
- Opus 的长处和默认坑
- 工作流
- 底线(所有风格都要守)
- 工具速查(`S=<skill>/scripts`)
- 参考文件(按需读)
Scripts executed separately
assets/editor/editor.jsassets/editor/progress.jsassets/editor/viewport.jsassets/starter/build.shassets/starter/motion.jsassets/starter/narration.jsassets/starter/package.jsonassets/starter/preview.jsassets/starter/score.layer.mjsassets/starter/score.mjsassets/starter/score.tone.jsassets/starter/timeline.jsscripts/audio.mjsscripts/build-long.mjsscripts/check-env.mjsscripts/editor.mjsscripts/inspect.mjsscripts/lib/browser.mjsscripts/lib/editor-media.mjsscripts/lib/editor-model.mjsscripts/lib/editor-progress.mjsscripts/lib/fft.mjsscripts/lib/frames.mjsscripts/lib/narration-providers.mjsscripts/lib/narration.mjsscripts/lib/project.mjsscripts/lib/synth.mjsscripts/lib/text-hook.mjsscripts/lib/tone-render.mjsscripts/narration.mjsscripts/package.jsonscripts/preview.mjsscripts/progress.mjsscripts/render.mjsscripts/scaffold.shscripts/setup.shscripts/test/editor-layout.test.mjsscripts/test/editor-model.test.mjsscripts/test/editor-progress.test.mjsscripts/test/editor.test.mjsscripts/test/long.test.mjsscripts/test/narration-clock.test.mjsscripts/test/narration.test.mjsscripts/test/preview.test.mjsscripts/test/render-context.test.mjsscripts/test/starter.test.mjsscripts/test/tools.test.mjs
Files
README.mddoc21,213 bytesREADME.zh-CN.mddoc21,157 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesSKILL.mdcore32,386 bytesassets/editor/editor.cssasset20,545 bytesassets/editor/editor.jsruns28,650 bytesassets/editor/index.htmlasset6,861 bytesassets/editor/progress.jsruns12,105 bytesassets/editor/viewport.cssasset340 bytesassets/editor/viewport.jsruns10,309 bytesassets/starter/build.shruns5,286 bytesassets/starter/index.htmlasset4,783 bytesassets/starter/motion.jsruns13,717 bytesassets/starter/narration.jsruns7,311 bytesassets/starter/package.jsonruns64 bytesassets/starter/preview.jsruns12,572 bytesassets/starter/score.layer.mjsruns1,402 bytesassets/starter/score.mjsruns2,404 bytesassets/starter/score.tone.jsruns2,791 bytesassets/starter/timeline.jsruns1,805 bytesmanifest.jsonasset797 bytesreferences/brief-template.mddoc9,534 bytesreferences/craft.mddoc22,521 bytesreferences/editor.mddoc7,300 bytesreferences/formats.mddoc9,162 bytesreferences/long-form.mddoc6,190 bytesreferences/narration.mddoc12,666 bytesreferences/progress.mddoc11,143 bytesreferences/recipes.mddoc17,295 bytesreferences/review.mddoc15,015 bytesreferences/sound.mddoc28,109 bytesreferences/stack.mddoc13,558 bytesreferences/styles/INDEX.mddoc10,177 bytesreferences/styles/_template.mddoc3,503 bytesreferences/styles/art-deco.mddoc8,276 bytesreferences/styles/blueprint.mddoc8,335 bytesreferences/styles/cel-anime-80s.mddoc8,448 bytesreferences/styles/cinematic-title.mddoc6,112 bytesreferences/styles/comic-pop.mddoc7,807 bytesreferences/styles/concept-morph.mddoc7,563 bytesreferences/styles/copperplate-engraving.mddoc9,703 bytesreferences/styles/crayon-storybook.mddoc5,772 bytesreferences/styles/crt-vhs.mddoc6,179 bytesreferences/styles/dark-keynote.mddoc6,087 bytesreferences/styles/data-motion.mddoc6,485 bytesreferences/styles/editorial-collage.mddoc5,712 bytesreferences/styles/flat-vector.mddoc7,336 bytesreferences/styles/generative-geometry.mddoc5,515 bytesreferences/styles/glass-material.mddoc7,255 bytesreferences/styles/glitch-digital.mddoc7,824 bytesreferences/styles/guochao.mddoc7,791 bytesreferences/styles/hologram-hud.mddoc8,390 bytesreferences/styles/illuminated-manuscript.mddoc7,850 bytesreferences/styles/ink-wash.mddoc5,830 bytesreferences/styles/isometric-infographic.mddoc5,887 bytesreferences/styles/kinetic-brutalist.mddoc6,001 bytesreferences/styles/liquid-shader.mddoc5,864 bytesreferences/styles/minimal-ui.mddoc6,263 bytesreferences/styles/mixed-media-era.mddoc9,223 bytesreferences/styles/one-line.mddoc8,221 bytesreferences/styles/painterly.mddoc7,553 bytesreferences/styles/paper-cut.mddoc5,684 bytesreferences/styles/particle-field.mddoc5,826 bytesreferences/styles/pixel-diorama.mddoc8,637 bytesreferences/styles/pixel-game.mddoc6,147 bytesreferences/styles/risograph-print.mddoc6,050 bytesreferences/styles/rubber-hose.mddoc8,634 bytesreferences/styles/shadow-puppet.mddoc8,496 bytesreferences/styles/soft-3d-toy.mddoc5,682 bytesreferences/styles/soft-organic.mddoc7,175 bytesreferences/styles/stained-glass.mddoc8,635 bytesreferences/styles/swiss-editorial.mddoc6,974 bytesreferences/styles/synthwave-neon.mddoc8,710 bytesreferences/styles/terminal-ascii.mddoc5,759 bytesreferences/styles/tilt-shift-miniature.mddoc8,390 bytesreferences/styles/ukiyo-e.mddoc8,180 bytesreferences/styles/whiteboard-explainer.mddoc7,906 bytesscripts/audio.mjsruns22,028 bytesscripts/build-long.mjsruns17,565 bytesscripts/check-env.mjsruns2,302 bytesscripts/editor.mjsruns11,822 bytesscripts/inspect.mjsruns23,952 bytesscripts/lib/browser.mjsruns8,319 bytesscripts/lib/editor-media.mjsruns10,233 bytesscripts/lib/editor-model.mjsruns8,648 bytesscripts/lib/editor-progress.mjsruns17,841 bytesscripts/lib/fft.mjsruns1,508 bytesscripts/lib/frames.mjsruns10,214 bytesscripts/lib/narration-providers.mjsruns8,325 bytesscripts/lib/narration.mjsruns22,669 bytesscripts/lib/project.mjsruns2,721 bytesscripts/lib/synth.mjsruns41,387 bytesscripts/lib/text-hook.mjsruns7,366 bytesscripts/lib/tone-render.mjsruns5,892 bytesscripts/narration.mjsruns4,058 bytesscripts/package-lock.jsonasset3,066 bytesscripts/package.jsonruns393 bytesscripts/preview.mjsruns6,229 bytesscripts/progress.mjsruns4,051 bytesscripts/render.mjsruns25,446 bytesscripts/scaffold.shruns3,316 bytesscripts/setup.shruns1,544 bytesscripts/test/editor-layout.test.mjsruns11,628 bytesscripts/test/editor-model.test.mjsruns7,560 bytesscripts/test/editor-progress.test.mjsruns21,663 bytesscripts/test/editor.test.mjsruns13,463 bytesscripts/test/fixtures/page/index.htmlasset907 bytesscripts/test/fixtures/text/index.htmlasset2,168 bytesscripts/test/long.test.mjsruns11,959 bytesscripts/test/narration-clock.test.mjsruns7,451 bytesscripts/test/narration.test.mjsruns14,231 bytesscripts/test/preview.test.mjsruns14,356 bytesscripts/test/render-context.test.mjsruns3,605 bytesscripts/test/starter.test.mjsruns3,322 bytesscripts/test/tools.test.mjsruns31,026 bytes
Read SKILL.md
# Motion Showreel
把一个想法做成以图形、文字或界面动画为主的视频,交付 MP4 和能重建的源码。保留短片的动效密度和创意自由,也支持按章节制作最长 20 分钟的内容。
**原理**:页面暴露确定性的 `render(t)`,脚本逐帧截图,再用 ffmpeg 合成 MP4。画面、口播、配乐和音效共用 `timeline.js`。无口播时按内容和音乐节拍组织画面;有口播时以真实语音时间为准,再安排音乐和音效。
**默认先预览,再导出**:所有类型都先打开剪辑工作区让用户查看真实画面与声音。用户点击「导出视频」或在对话中确认预览通过、可以导出后,才合成 MP4。首次要求「做一个视频」不等于预览已经通过;只有用户明确免除预览时才能直接导出。静帧、自查和音频准备可提前进行,不默认生成代理 MP4 或整片样片。
**按需观看制作过程**:需求问答时识别「边做边看、实时进度、每个阶段看看」等意愿;用户表达后就提前打开进度页,从需求说明到风格帧、口播样例、镜头与混音逐步展示。按 `references/progress.md` 发布已自查的阶段成果,不直接加载半成品代码。收到用户确认后,先用 `progress.mjs <project> --stage <当前阶段> --confirm --message "已确认,正在……"` 解除等待,再进行调研、下载或制作;不等产物做完才补进度。未提出时保持默认的最终工作区预览;不改变制作标准、确认节点和成片验收。
**好片子从哪来**:变化密度、运动质感、一个记忆点、音画关系,这四项通常决定观感。但具体怎么动、动多少,由**风格和内容**决定,不是每支片子都要多机位、弹簧和满屏音效。全局只守几条底线(见「底线」),其余都是给模型的起点,不是天花板。
**视频感**:讲解、产品演示和叙事片要让对象的行为与关系随内容发展,保持镜头间的空间承接。不能把口播逐句变成静态标题卡,再用淡入、缩放和背景粒子包装。分镜先写清「观众要看懂什么变化、主体前后状态、如何接上一个镜头」,再选动效。Logo、动态排版、循环与刻意静止的风格仍按自身语法制作;不靠持续乱动或强制 60fps 判定好坏。具体方法见 `references/craft.md` 的「连续叙事」。
View the complete source on GitHubweb-design-engineer
When your agent uses it
Build or redesign polished browser-rendered visual artifacts with HTML/CSS/JavaScript/React: pages, dashboards, prototypes, slide decks, animations, UI mockups, and data visualizations. Use for visual front-end creation, design-system exploration, design critique, or explicit browser acceptance / QA of a web artifact. Not for back-end, CLI, non-visual coding, source-to-longform article conversion, or narration-driven click-through video presentations.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
7,849 tokensWhen the skill is activated
Reference documents
51,974 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Scope
- Workflow
- Fallback: Design Direction Advisor
- Technical Specifications
- Design Principles
- Output Type Guidelines
- Variant Exploration Philosophy
- Tweaks Panel (Live Parameter Adjustment)
- Common CDN Resources
- Pre-delivery Checklist
- Collaborating with the User
- References Routing
Files
README.mddoc28,270 bytesREADME.zh-CN.mddoc27,553 bytesSKILL.mdcore35,406 bytesSKILL.mdcore35,406 bytesSKILL.mdcore35,406 bytesSKILL.mdcore35,406 bytesagents/openai.yamlasset288 bytesmanifest.jsonasset609 bytesreferences/advanced-patterns.mddoc14,722 bytesreferences/block-library.mddoc1,767 bytesreferences/browser-acceptance.mddoc4,643 bytesreferences/critique-guide.mddoc10,446 bytesreferences/design-calibration.mddoc6,139 bytesreferences/design-directions.mddoc14,105 bytesreferences/failure-patterns.mddoc7,119 bytesreferences/redesign-protocol.mddoc4,181 bytesreferences/style-recipes/INDEX.mddoc12,177 bytesreferences/style-recipes/active-theory.mddoc2,581 bytesreferences/style-recipes/aesop.mddoc2,796 bytesreferences/style-recipes/apple-hig.mddoc3,076 bytesreferences/style-recipes/are-na.mddoc2,230 bytesreferences/style-recipes/balenciaga-post-2017.mddoc2,361 bytesreferences/style-recipes/bloomberg-businessweek-turley.mddoc2,585 bytesreferences/style-recipes/bloomberg-terminal.mddoc2,772 bytesreferences/style-recipes/dieter-rams-braun.mddoc2,602 bytesreferences/style-recipes/field-io.mddoc2,921 bytesreferences/style-recipes/headspace-meditation.mddoc2,675 bytesreferences/style-recipes/linear.mddoc3,174 bytesreferences/style-recipes/mailchimp-freddie.mddoc2,540 bytesreferences/style-recipes/mid-century-modern.mddoc2,723 bytesreferences/style-recipes/monocle-magazine.mddoc2,620 bytesreferences/style-recipes/muji-kenya-hara.mddoc2,713 bytesreferences/style-recipes/notion-pre-ai.mddoc2,867 bytesreferences/style-recipes/nyt-the-daily.mddoc2,691 bytesreferences/style-recipes/pentagram.mddoc2,835 bytesreferences/style-recipes/raycast.mddoc3,238 bytesreferences/style-recipes/resn-storytelling.mddoc2,441 bytesreferences/style-recipes/stripe-press.mddoc2,880 bytesreferences/style-recipes/tufte-dataink.mddoc2,591 bytesreferences/style-recipes/vercel-mesh.mddoc2,975 bytesreferences/style-recipes/vignelli-swiss-helvetica.mddoc2,517 bytesreferences/style-recipes/y2k-retrofuturism.mddoc2,750 bytes
Read SKILL.md
# Web Design Engineer
This skill positions the Agent as a top-tier design engineer who crafts elegant, refined Web artifacts using HTML/CSS/JavaScript/React. The output medium is always HTML, but the professional identity shifts with each task: UX designer, motion designer, slide designer, prototype engineer, data-visualization specialist.
Core philosophy: **The bar is "stunning," not "functional." Every pixel is intentional, every interaction is deliberate. Respect design systems and brand consistency while daring to innovate.**
---
## Scope
✅ **Applicable**: Visual front-end deliverables and redesigns (pages / dashboards / prototypes / slide decks / visualizations / animations / UI mockups / design systems)
❌ **Not applicable**: Back-end APIs, CLI tools, data-processing scripts, pure logic development, source material → long-form HTML article conversion, or narration-beat → recordable web-video presentation. Route the last two to their dedicated skills when available.
View the complete source on GitHubweb-video-presentation
When your agent uses it
把一篇文章或口播稿,做成"看起来像视频"的点击驱动 16:9 网页演示,可选合成口播音频。流程:原始文章 → **一次产出**口播稿 + outline 开发计划 → 用户**一次对齐** 5 件事(稿子 / outline / 主题 / 素材 / 开发模式)→ 网页开发(逐章 / 顺序 / 并行)→ 可选音频合成(provider-agnostic:内置 MiniMax mmx-cli + OpenAI TTS,可换 ElevenLabs / edge-tts / Azure / 自带 TTS)。**outline 只规划节奏与信息密度,不规划动画** —— 动画由章节开发时按 PRINCIPLES + ANTI-AI 法则即时设计。每次点击推进口播稿的一个节拍,每一步独占整屏,进度条平时隐藏只在悬浮时出现。适用场景:用网页做视频(动态 PPT 但不像 PPT)、把口播稿 / 文章变成可交互的解说、为 B 站 / YouTube / 视频号录屏教程、做有电影感的产品 / talk demo。本 Skill 沉淀的是设计方法论 + 协作流程 —— 不绑定任何特定样式 / 字体 / 颜色 —— 因此能复用到任意主题与美学。
What it loads into context
Frontmatter
319 tokensAlways available to the agent
SKILL.md
7,091 tokensWhen the skill is activated
Reference documents
43,310 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 适用场景
- 工作流总览
- 硬性自检协议(贯穿整个 Skill)
- 各阶段文件读取指南
- Phase 1 —— 内容编写(一次产出)
- Checkpoint Plan —— 5 件事一次对齐(**硬节点**)
- Phase 2 —— 网页开发
- Checkpoint Audio —— 是否合成音频(**硬节点**)
- Phase 3 —— 音频合成(可选)
- Phase 4 —— 录屏 + 后期
- 十条原则(一句话清单)
- 常见用户反馈速查
- 相关资源
Scripts executed separately
references/EXAMPLES/hook-chapter/chapter.tsxreferences/EXAMPLES/list-reveal/chapter.tsxscripts/scaffold.shtemplates/scripts/extract-narrations.tstemplates/scripts/synthesize-audio.shtemplates/scripts/tts-providers/minimax.shtemplates/scripts/tts-providers/openai.shtemplates/src/App.tsxtemplates/src/chapters/01-example/Example.tsxtemplates/src/chapters/01-example/narrations.tstemplates/src/components/AutoStartGate.tsxtemplates/src/components/AutoToggle.tsxtemplates/src/components/MaskReveal.tsxtemplates/src/components/ProgressBar.tsxtemplates/src/components/Stage.tsxtemplates/src/hooks/useAudioPlayer.tstemplates/src/hooks/useAutoMode.tstemplates/src/hooks/useStageScale.tstemplates/src/hooks/useStepper.tstemplates/src/main.tsxtemplates/src/registry/chapters.tstemplates/src/registry/types.tstemplates/vite.config.ts
Files
README.mddoc17,939 bytesREADME.zh-CN.mddoc17,563 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesSKILL.mdcore23,239 bytesmanifest.jsonasset629 bytesreferences/AUDIO.mddoc11,126 bytesreferences/CHAPTER-CRAFT.mddoc10,676 bytesreferences/EXAMPLES/README.mddoc5,155 bytesreferences/EXAMPLES/case-tech-review/README.mddoc2,917 bytesreferences/EXAMPLES/case-tech-review/outline-snippet.mddoc6,516 bytesreferences/EXAMPLES/hook-chapter/README.mddoc3,863 bytesreferences/EXAMPLES/hook-chapter/chapter.cssasset4,882 bytesreferences/EXAMPLES/hook-chapter/chapter.tsxruns4,529 bytesreferences/EXAMPLES/list-reveal/README.mddoc3,660 bytesreferences/EXAMPLES/list-reveal/chapter.cssasset3,508 bytesreferences/EXAMPLES/list-reveal/chapter.tsxruns3,549 bytesreferences/OUTLINE-FORMAT.mddoc8,523 bytesreferences/RECORDING.mddoc2,988 bytesreferences/SCRIPT-STYLE.mddoc17,950 bytesreferences/THEMES.mddoc23,359 bytesscripts/scaffold.shruns9,537 bytestemplates/index.htmlasset302 bytestemplates/scripts/extract-narrations.tsruns4,717 bytestemplates/scripts/synthesize-audio.shruns5,119 bytestemplates/scripts/tts-providers/README.mddoc11,950 bytestemplates/scripts/tts-providers/minimax.shruns1,771 bytestemplates/scripts/tts-providers/openai.shruns2,636 bytestemplates/src/App.tsxruns2,487 bytestemplates/src/chapters/01-example/Example.cssasset1,990 bytestemplates/src/chapters/01-example/Example.tsxruns3,878 bytestemplates/src/chapters/01-example/narrations.tsruns1,280 bytestemplates/src/components/AutoStartGate.cssasset1,209 bytestemplates/src/components/AutoStartGate.tsxruns1,014 bytestemplates/src/components/AutoToggle.cssasset1,062 bytestemplates/src/components/AutoToggle.tsxruns898 bytestemplates/src/components/MaskReveal.tsxruns797 bytestemplates/src/components/ProgressBar.cssasset2,501 bytestemplates/src/components/ProgressBar.tsxruns3,837 bytestemplates/src/components/Stage.tsxruns1,507 bytestemplates/src/hooks/useAudioPlayer.tsruns3,768 bytestemplates/src/hooks/useAutoMode.tsruns2,473 bytestemplates/src/hooks/useStageScale.tsruns843 bytestemplates/src/hooks/useStepper.tsruns5,192 bytestemplates/src/main.tsxruns209 bytestemplates/src/registry/chapters.tsruns833 bytestemplates/src/registry/types.tsruns704 bytestemplates/src/styles/animations.cssasset2,320 bytestemplates/src/styles/base.cssasset15,271 bytestemplates/src/styles/fonts.cssasset2,129 bytestemplates/vite.config.tsruns196 bytesthemes/bauhaus-bold/theme.jsonasset750 bytesthemes/bauhaus-bold/tokens.cssasset2,767 bytesthemes/blueprint/theme.jsonasset744 bytesthemes/blueprint/tokens.cssasset2,957 bytesthemes/bold-signal/theme.jsonasset956 bytesthemes/bold-signal/tokens.cssasset3,184 bytesthemes/chalk-garden/theme.jsonasset705 bytesthemes/chalk-garden/tokens.cssasset2,917 bytesthemes/creative-voltage/theme.jsonasset970 bytesthemes/creative-voltage/tokens.cssasset3,087 bytesthemes/dark-botanical/theme.jsonasset911 bytesthemes/dark-botanical/tokens.cssasset3,211 bytesthemes/dune/theme.jsonasset879 bytesthemes/dune/tokens.cssasset2,920 bytesthemes/electric-studio/theme.jsonasset885 bytesthemes/electric-studio/tokens.cssasset3,013 bytesthemes/forest-ink/theme.jsonasset902 bytesthemes/forest-ink/tokens.cssasset3,337 bytesthemes/indigo-porcelain/theme.jsonasset953 bytesthemes/indigo-porcelain/tokens.cssasset2,931 bytesthemes/kraft-paper/theme.jsonasset869 bytesthemes/kraft-paper/tokens.cssasset3,241 bytesthemes/midnight-press/theme.jsonasset623 bytesthemes/midnight-press/tokens.cssasset2,455 bytesthemes/monochrome-print/theme.jsonasset818 bytesthemes/monochrome-print/tokens.cssasset2,754 bytesthemes/neon-cyber/theme.jsonasset874 bytesthemes/neon-cyber/tokens.cssasset3,451 bytesthemes/newsroom/theme.jsonasset734 bytesthemes/newsroom/tokens.cssasset3,052 bytesthemes/paper-press/theme.jsonasset637 bytesthemes/paper-press/tokens.cssasset2,920 bytesthemes/pastel-dream/theme.jsonasset908 bytesthemes/pastel-dream/tokens.cssasset3,415 bytesthemes/split-canvas/theme.jsonasset888 bytesthemes/split-canvas/tokens.cssasset3,100 bytesthemes/sunset-zine/theme.jsonasset745 bytesthemes/sunset-zine/tokens.cssasset3,120 bytesthemes/swiss-ikb/theme.jsonasset1,048 bytesthemes/swiss-ikb/tokens.cssasset3,735 bytesthemes/terminal-green/theme.jsonasset780 bytesthemes/terminal-green/tokens.cssasset3,098 bytesthemes/vintage-editorial/theme.jsonasset970 bytesthemes/vintage-editorial/tokens.cssasset3,274 bytesthemes/warm-keynote/theme.jsonasset681 bytesthemes/warm-keynote/tokens.cssasset2,849 bytes
Read SKILL.md
# Web Video Presentation
把一篇文章或口播稿,一步步做成可录屏的"伪装成视频的网页",可选合成
口播音频。产出物 = Vite + React + TS 项目 + 按章节切分的音频。
## 适用场景
- "我有口播稿 / 一篇文章,帮我做成视频" —— 口播驱动的内容
- 想做 "动态 PPT"
- 16:9 横屏录屏,大字、留白、每屏都要有动效
- 教学 / 产品演示 / keynote 想要电影感
- B 站 / YouTube /抖音视频内容
本 Skill **以方法论 + 协作流程为核心**。脚手架模板提供 token 和原语,View the complete source on GitHubSkills included
- beautiful-article
- gpt-image-2
- kb-retriever
- motion-showreel
- web-design-engineer
- web-video-presentation
Repository facts
- License
- MIT
- Created
- Apr 21, 2026
- Last pushed
- Oct 25, 2026
- Forks
- 1,650
- Open issues
- 10
- Project activity
- Active
Rank over the last 12 weeks
Now #114 · best #111 · down 1 in 30 days
- #117 on Nov 1
- #118 on Nov 2
- #119 on Nov 3
- #117 on Nov 4
- #116 on Nov 5
- #114 since Nov 6
41 earlier periods
- #117 on Aug 2
- #117 on Aug 7
- #116 from Aug 8 to Aug 9
- #118 from Aug 10 to Aug 11
- #119 from Aug 12 to Aug 15
- #118 on Aug 16
- #119 from Aug 17 to Aug 18
- #120 from Aug 19 to Aug 21
- #119 on Aug 22
- #120 from Aug 23 to Aug 25
- #116 on Aug 26
- #113 from Aug 27 to Aug 28
- #112 on Aug 29
- #111 from Aug 30 to Aug 31
- #112 on Sep 1
- #111 on Sep 2
- #112 on Sep 3
- #111 on Sep 4
- #112 on Sep 5
- #111 on Sep 6
- #112 from Sep 7 to Sep 15
- #111 from Sep 16 to Sep 17
- #113 on Sep 18
- #112 on Sep 19
- #113 from Sep 20 to Sep 25
- #112 from Sep 26 to Sep 29
- #111 on Sep 30
- #113 from Oct 1 to Oct 3
- #112 on Oct 4
- #113 on Oct 5
- #111 on Oct 6
- #113 from Oct 7 to Oct 12
- #114 from Oct 13 to Oct 14
- #115 on Oct 15
- #116 from Oct 16 to Oct 18
- #118 on Oct 19
- #117 from Oct 20 to Oct 22
- #118 from Oct 23 to Oct 24
- #119 on Oct 25
- #117 from Oct 28 to Oct 29
- #118 from Oct 30 to Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 2, 2026
Changed on Oct 27, 2026
No longer found: Access to secrets
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 48 notes
skills/beautiful-article/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/beautiful-article/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/beautiful-article/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/beautiful-article/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/gpt-image-2/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/motion-showreel/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 4 dangerous shell commandsin 4 files: beautiful-article/scripts/html-to-pdf.sh:150 web-video-presentation/SKILL.md:252 web-video-presentation/scripts/scaffold.sh:105 and 1 more
- 917 network referencesin 59 files: beautiful-article/README.md:11 beautiful-article/README.zh-CN.md:11 web-design-engineer/README.md:13 and 56 more
- No hidden or obfuscated text
- No instruction overrides
- 86 executable scriptsin 86 files: beautiful-article/assets/scaffold-template/article/Article.tsx:1 beautiful-article/assets/scaffold-template/article/Cover.tsx:1 beautiful-article/assets/scaffold-template/article/main.tsx:1 and 83 more
- 61 references to secretsin 18 files: web-video-presentation/templates/scripts/tts-providers/README.md:40 web-video-presentation/references/AUDIO.md:18 web-video-presentation/templates/scripts/tts-providers/openai.sh:5 and 15 more
- No requests to vote in Hot
Show all 1,068 signals by file
skills/beautiful-article/README.md
- Network accessline 11
### Powered by [ReActicle](https://github.com/ConardLi/reacticle) - Network accessline 13
`beautiful-article` is the editorial **harness** (methodology, checkpoints, theme picker, sub-agent reviewers); [`reacticle`](https://github.com/ConardLi/reacticle) is the underlying **runtime component protocol** the skill writes against — - Network accessline 23
|---|---|---| | `beautiful-article` (this skill) | **How** the agent plans, writes, reviews and delivers an article from any source — six numbered phases, three hard checkpoints, theme picker, sub-agent reviewers | This directory | | `react - Network accessline 25
| `reacticle` | The component vocabulary + 11 authoring themes the skill compiles into — `Article` / `Hero` / `Lead` / `Section` / `Quote` / `Image` / `Formula` / `CodeBlock` / `Raw` …, each theme a `.css` token bundle + `.md` authoring pro - Network accessline 31
### [Showcase](https://mmh1.top/#/ai-article) — articles built with `beautiful-article` + ReActicle - Network accessline 33
Real long-form articles, each authored end-to-end by an AI agent running this skill against the [`reacticle`](https://www.npmjs.com/package/reacticle) component protocol. Click any cover to open the live, single-file HTML article. - Network accessline 36
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/tools"> - Network accessline 37
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/tools"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/tools.webp" alt="Agent Tools 设计的最佳实践" width="320"> - Network accessline 38
<a href="https://mmh1.top/#/ai-article/tools"> - Network accessline 39
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/tools.webp" alt="Agent Tools 设计的最佳实践" width="320"> - Network accessline 44
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/skill"> - Network accessline 45
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/skill"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/skill.webp" alt="Agent Skill 是如何进化的?" width="320"> - Network accessline 46
<a href="https://mmh1.top/#/ai-article/skill"> - Network accessline 47
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/skill.webp" alt="Agent Skill 是如何进化的?" width="320"> - Network accessline 54
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/harness"> - Network accessline 55
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/harness"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/harness.webp" alt="Agent Harness 的解剖图" width="320"> - Network accessline 56
<a href="https://mmh1.top/#/ai-article/harness"> - Network accessline 57
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/harness.webp" alt="Agent Harness 的解剖图" width="320"> - Network accessline 62
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/prompt-cache"> - Network accessline 63
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/prompt-cache"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/prompt-cache.webp" alt="提示词缓存对 Agent 有多重要?" width="320"> - Network accessline 64
<a href="https://mmh1.top/#/ai-article/prompt-cache"> - Network accessline 65
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/prompt-cache.webp" alt="提示词缓存对 Agent 有多重要?" width="320"> - Network accessline 72
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/context"> - Network accessline 73
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/context"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/context.webp" alt="面向 Agent 的高效上下文工程" width="320"> - Network accessline 74
<a href="https://mmh1.top/#/ai-article/context"> - Network accessline 75
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/context.webp" alt="面向 Agent 的高效上下文工程" width="320"> - Network accessline 80
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/transformer"> - Network accessline 81
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/transformer"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/transformer.webp" alt="Attention Is All You Need" width="320"> - Network accessline 82
<a href="https://mmh1.top/#/ai-article/transformer"> - Network accessline 83
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/transformer.webp" alt="Attention Is All You Need" width="320"> - Network accessline 90
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-eval"> - Network accessline 91
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-eval"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-eval.webp" alt="把 AI Agent 的评测讲清楚" width="320"> - Network accessline 92
<a href="https://mmh1.top/#/ai-article/agent-eval"> - Network accessline 93
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-eval.webp" alt="把 AI Agent 的评测讲清楚" width="320"> - Network accessline 98
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-loop-codex"> - Network accessline 99
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-loop-codex"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-loop-codex.webp" alt="Codex 的 Agent Loop 是怎么做的?" widt - Network accessline 100
<a href="https://mmh1.top/#/ai-article/agent-loop-codex"> - Network accessline 101
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-loop-codex.webp" alt="Codex 的 Agent Loop 是怎么做的?" width="320"> - Network accessline 112
### [Theme Gallery](https://rearticle.mmh1.top/#/gallery) — one specimen article per theme - Network accessline 114
> 11 themes shipped. Full theme contracts (`.css` token bundle + `.md` authoring profile, anti-patterns, code/media style) are documented at [Theming](https://rearticle.mmh1.top/#/theming). - Network accessline 119
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> - Network accessline 120
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-tufte.webp" alt="Tufte · Data-Ink" width="26 - Network accessline 121
<a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> - Network accessline 122
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-tufte.webp" alt="Tufte · Data-Ink" width="260"> - Network accessline 127
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/movable-type"> - Network accessline 128
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/movable-type"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-press.webp" alt="Press · 书卷" width="260"> - Network accessline 129
<a href="https://rearticle.mmh1.top/#/gallery/movable-type"> - Network accessline 130
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-press.webp" alt="Press · 书卷" width="260"> - Network accessline 135
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> - Network accessline 136
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-shannon.webp" alt="Shannon · 工程暗色" width="260"> - Network accessline 137
<a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> - Network accessline 138
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-shannon.webp" alt="Shannon · 工程暗色" width="260"> - Network accessline 145
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> - Network accessline 146
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-vignelli.webp" alt="Vignelli · 瑞士" width="260"> - Network accessline 147
<a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> - Network accessline 148
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-vignelli.webp" alt="Vignelli · 瑞士" width="260"> - Network accessline 153
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> - Network accessline 154
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/knuth.png" alt="Knuth · 学术" width="260"> - Network accessline 155
<a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> - Network accessline 156
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/knuth.png" alt="Knuth · 学术" width="260"> - Network accessline 161
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> - Network accessline 162
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-freddie.webp" alt="Freddie · 暖黄" width="260"> - Network accessline 163
<a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> - Network accessline 164
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-freddie.webp" alt="Freddie · 暖黄" width="260"> - Network accessline 171
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> - Network accessline 172
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-andy.webp" alt="Andy · 静谧" width="260"> - Network accessline 173
<a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> - Network accessline 174
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-andy.webp" alt="Andy · 静谧" width="260"> - Network accessline 179
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/front-page"> - Network accessline 180
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/front-page"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bodoni.webp" alt="Bodoni · 报刊" width="260"> - Network accessline 181
<a href="https://rearticle.mmh1.top/#/gallery/front-page"> - Network accessline 182
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bodoni.webp" alt="Bodoni · 报刊" width="260"> - Network accessline 187
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> - Network accessline 188
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bayer.webp" alt="Bayer · 包豪斯" width="260"> - Network accessline 189
<a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> - Network accessline 190
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bayer.webp" alt="Bayer · 包豪斯" width="260"> - Network accessline 197
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> - Network accessline 198
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-fuller.webp" alt="Fuller · 蓝图" width="260"> - Network accessline 199
<a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> - Network accessline 200
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-fuller.webp" alt="Fuller · 蓝图" width="260"> - Network accessline 205
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/color-clash"> - Network accessline 206
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/color-clash"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-sottsass.webp" alt="Sottsass · 孟菲斯" width="260"> - Network accessline 207
<a href="https://rearticle.mmh1.top/#/gallery/color-clash"> - Network accessline 208
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-sottsass.webp" alt="Sottsass · 孟菲斯" width="260"> - Network accessline 220
> Browse all specimens with theme switching, search and filters at the live gallery: <https://rearticle.mmh1.top/#/gallery>. - Network accessline 235
The skill is primarily a **methodology + collaboration harness**. It ships a Vite + React + TypeScript scaffold built around the [`reacticle`](https://www.npmjs.com/package/reacticle) component protocol — the agent does not hand-write naked
skills/beautiful-article/README.zh-CN.md
- Network accessline 11
### 由 [ReActicle](https://github.com/ConardLi/reacticle) 驱动 - Network accessline 13
`beautiful-article` 是编辑型 **harness**(方法论、checkpoint、主题选型、sub-agent reviewer);[`reacticle`](https://github.com/ConardLi/reacticle) 是 Skill 在运行时调用的**底层组件协议** —— prose-first 的 React 语义组件 + 基于主题 token 的 `Raw` 自由层,统一接到同一套主题系统上。 - Network accessline 23
|---|---|---| | `beautiful-article`(本 Skill) | **怎么** 让 Agent 从任意素材出发,规划、撰写、审阅、交付一篇文章 —— 6 阶段流程、3 个硬 checkpoint、主题选型、sub-agent reviewer | 当前目录 | | `reacticle` | Skill 实际拼装出的组件词表 + 11 套 authoring 主题 —— `Article` / `Hero` / `Lead` / `Section` - Network accessline 25
| `reacticle` | Skill 实际拼装出的组件词表 + 11 套 authoring 主题 —— `Article` / `Hero` / `Lead` / `Section` / `Quote` / `Image` / `Formula` / `CodeBlock` / `Raw` …,每套主题 = 一份 `.css` token 包 + 一份 `.md` authoring profile | [`ConardLi/reacticle`](https://g - Network accessline 31
### [文章实例](https://mmh1.top/#/ai-article) —— 用 `beautiful-article` + ReActicle 写出来的真实文章 - Network accessline 33
每一篇都是 AI Agent 用本 Skill 调用 [`reacticle`](https://www.npmjs.com/package/reacticle) 组件协议端到端写完的真实长文。点封面即可在线打开单文件 HTML 版本。 - Network accessline 36
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/tools"> - Network accessline 37
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/tools"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/tools.webp" alt="Agent Tools 设计的最佳实践" width="320"> - Network accessline 38
<a href="https://mmh1.top/#/ai-article/tools"> - Network accessline 39
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/tools.webp" alt="Agent Tools 设计的最佳实践" width="320"> - Network accessline 44
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/skill"> - Network accessline 45
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/skill"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/skill.webp" alt="Agent Skill 是如何进化的?" width="320"> - Network accessline 46
<a href="https://mmh1.top/#/ai-article/skill"> - Network accessline 47
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/skill.webp" alt="Agent Skill 是如何进化的?" width="320"> - Network accessline 54
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/harness"> - Network accessline 55
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/harness"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/harness.webp" alt="Agent Harness 的解剖图" width="320"> - Network accessline 56
<a href="https://mmh1.top/#/ai-article/harness"> - Network accessline 57
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/harness.webp" alt="Agent Harness 的解剖图" width="320"> - Network accessline 62
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/prompt-cache"> - Network accessline 63
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/prompt-cache"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/prompt-cache.webp" alt="提示词缓存对 Agent 有多重要?" width="320"> - Network accessline 64
<a href="https://mmh1.top/#/ai-article/prompt-cache"> - Network accessline 65
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/prompt-cache.webp" alt="提示词缓存对 Agent 有多重要?" width="320"> - Network accessline 72
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/context"> - Network accessline 73
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/context"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/context.webp" alt="面向 Agent 的高效上下文工程" width="320"> - Network accessline 74
<a href="https://mmh1.top/#/ai-article/context"> - Network accessline 75
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/context.webp" alt="面向 Agent 的高效上下文工程" width="320"> - Network accessline 80
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/transformer"> - Network accessline 81
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/transformer"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/transformer.webp" alt="Attention Is All You Need" width="320"> - Network accessline 82
<a href="https://mmh1.top/#/ai-article/transformer"> - Network accessline 83
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/transformer.webp" alt="Attention Is All You Need" width="320"> - Network accessline 90
<tr> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-eval"> - Network accessline 91
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-eval"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-eval.webp" alt="把 AI Agent 的评测讲清楚" width="320"> - Network accessline 92
<a href="https://mmh1.top/#/ai-article/agent-eval"> - Network accessline 93
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-eval.webp" alt="把 AI Agent 的评测讲清楚" width="320"> - Network accessline 98
</td> <td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-loop-codex"> - Network accessline 99
<td width="50%" valign="top" align="center"> <a href="https://mmh1.top/#/ai-article/agent-loop-codex"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-loop-codex.webp" alt="Codex 的 Agent Loop 是怎么做的?" widt - Network accessline 100
<a href="https://mmh1.top/#/ai-article/agent-loop-codex"> - Network accessline 101
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/agent-loop-codex.webp" alt="Codex 的 Agent Loop 是怎么做的?" width="320"> - Network accessline 112
### [主题概览](https://rearticle.mmh1.top/#/gallery) —— 每套主题一篇样品文章 - Network accessline 114
> 11 套主题已上架。每套主题的完整契约(`.css` token 包 + `.md` authoring profile、anti-patterns、code/media style)见 [Theming](https://rearticle.mmh1.top/#/theming)。 - Network accessline 119
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> - Network accessline 120
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-tufte.webp" alt="Tufte · Data-Ink" width="26 - Network accessline 121
<a href="https://rearticle.mmh1.top/#/gallery/caffeine-half-life"> - Network accessline 122
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-tufte.webp" alt="Tufte · Data-Ink" width="260"> - Network accessline 127
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/movable-type"> - Network accessline 128
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/movable-type"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-press.webp" alt="Press · 书卷" width="260"> - Network accessline 129
<a href="https://rearticle.mmh1.top/#/gallery/movable-type"> - Network accessline 130
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-press.webp" alt="Press · 书卷" width="260"> - Network accessline 135
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> - Network accessline 136
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-shannon.webp" alt="Shannon · 工程暗色" width="260"> - Network accessline 137
<a href="https://rearticle.mmh1.top/#/gallery/pool-exhaustion"> - Network accessline 138
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-shannon.webp" alt="Shannon · 工程暗色" width="260"> - Network accessline 145
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> - Network accessline 146
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-vignelli.webp" alt="Vignelli · 瑞士" width="260"> - Network accessline 147
<a href="https://rearticle.mmh1.top/#/gallery/orbit-spec"> - Network accessline 148
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-vignelli.webp" alt="Vignelli · 瑞士" width="260"> - Network accessline 153
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> - Network accessline 154
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/knuth.png" alt="Knuth · 学术" width="260"> - Network accessline 155
<a href="https://rearticle.mmh1.top/#/gallery/linear-attention"> - Network accessline 156
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/knuth.png" alt="Knuth · 学术" width="260"> - Network accessline 161
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> - Network accessline 162
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-freddie.webp" alt="Freddie · 暖黄" width="260"> - Network accessline 163
<a href="https://rearticle.mmh1.top/#/gallery/first-newsletter"> - Network accessline 164
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-freddie.webp" alt="Freddie · 暖黄" width="260"> - Network accessline 171
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> - Network accessline 172
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-andy.webp" alt="Andy · 静谧" width="260"> - Network accessline 173
<a href="https://rearticle.mmh1.top/#/gallery/slow-breathing"> - Network accessline 174
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-andy.webp" alt="Andy · 静谧" width="260"> - Network accessline 179
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/front-page"> - Network accessline 180
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/front-page"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bodoni.webp" alt="Bodoni · 报刊" width="260"> - Network accessline 181
<a href="https://rearticle.mmh1.top/#/gallery/front-page"> - Network accessline 182
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bodoni.webp" alt="Bodoni · 报刊" width="260"> - Network accessline 187
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> - Network accessline 188
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bayer.webp" alt="Bayer · 包豪斯" width="260"> - Network accessline 189
<a href="https://rearticle.mmh1.top/#/gallery/geometry-of-meaning"> - Network accessline 190
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-bayer.webp" alt="Bayer · 包豪斯" width="260"> - Network accessline 197
<tr> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> - Network accessline 198
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-fuller.webp" alt="Fuller · 蓝图" width="260"> - Network accessline 199
<a href="https://rearticle.mmh1.top/#/gallery/rate-limiter-spec"> - Network accessline 200
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-fuller.webp" alt="Fuller · 蓝图" width="260"> - Network accessline 205
</td> <td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/color-clash"> - Network accessline 206
<td width="33%" valign="top" align="center"> <a href="https://rearticle.mmh1.top/#/gallery/color-clash"> <img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-sottsass.webp" alt="Sottsass · 孟菲斯" width="260"> - Network accessline 207
<a href="https://rearticle.mmh1.top/#/gallery/color-clash"> - Network accessline 208
<img src="https://raw.githubusercontent.com/ConardLi/assets/main/imgs/article/theam-sottsass.webp" alt="Sottsass · 孟菲斯" width="260"> - Network accessline 220
> 完整的 11 套主题样品(含主题切换、搜索与筛选)在线 gallery:<https://rearticle.mmh1.top/#/gallery>。 - Network accessline 235
Skill 本质上是一个**方法论 + 协作 harness**。它附带一个 Vite + React + TypeScript 脚手架,基于 [`reacticle`](https://www.npmjs.com/package/reacticle) 组件协议 —— Agent 不手写裸 HTML / CSS,而是用 prose-first 的语义组件 + 主题约束的 `Raw` 自由层来组合。
skills/beautiful-article/assets/scaffold-template/.npmrc
- Network accessline 1
registry=https://registry.npmjs.org/
skills/beautiful-article/assets/scaffold-template/article/Article.tsx
skills/beautiful-article/assets/scaffold-template/article/Cover.tsx
- Executable scriptline 1
Executable file
skills/beautiful-article/assets/scaffold-template/article/main.tsx
- Executable scriptline 1
Executable file
skills/beautiful-article/assets/scaffold-template/article/sections/01-opening.tsx
- Executable scriptline 1
Executable file
skills/beautiful-article/assets/scaffold-template/index.html
- Network accessline 6
<title>Beautiful Article</title> <!-- Theme fonts. tufte falls back to Georgia; press uses Newsreader. --> <link rel="preconnect" href="https://fonts.googleapis.com" /> - Network accessline 7
<!-- Theme fonts. tufte falls back to Georgia; press uses Newsreader. --> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> - Network accessline 8
<link rel="preconnect" href="https://fonts.googleapis.com" /> - Network accessline 9
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> - Network accessline 10
<link href="https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500&family=Source+Serif+4:opsz,wght@8..60,400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet" - Network accessline 11
href="https://fonts.googleapis.com/css2?family=Newsreader:opsz,wght@6..72,400;6..72,500&family=Source+Serif+4:opsz,wght@8..60,400&family=JetBrains+Mono:wght@400;500&display=swap"
skills/beautiful-article/assets/scaffold-template/package.json
- Executable scriptline 1
Executable file
skills/beautiful-article/assets/scaffold-template/vite.config.ts
- Executable scriptline 1
Executable file
skills/beautiful-article/manifest.json
- Network accessline 4
"category": "Editorial · Any source → beautiful article", "description": "Edit and design any source material (URL / PDF / DOCX / Markdown / plain text / screenshots / pasted notes) into a beautiful, share-ready article. Built on the reac - Network accessline 5
"description": "Edit and design any source material (URL / PDF / DOCX / Markdown / plain text / screenshots / pasted notes) into a beautiful, share-ready article. Built on the reacticle component protocol with a theme-constrained Raw layer; - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/beautiful-article",
skills/beautiful-article/references/cover.md
- Network accessline 68
- 文章讲"Codex 智能体循环" → 封面可以是**带箭头的循环图(USER → MODEL → TOOL)**; - 文章讲"色彩冲撞" → 封面可以是**两个互补色块的几何拼贴**。 5. **offline-first**。**唯一被硬禁的事**:远程图片(`<img src="https://...">`、 - Network accessline 69
- 文章讲"色彩冲撞" → 封面可以是**两个互补色块的几何拼贴**。 5. **offline-first**。**唯一被硬禁的事**:远程图片(`<img src="https://...">`、 Google Fonts 动态加载、跨域 CSS background-url 等)—— 离线打不开。 - Network accessline 70
5. **offline-first**。**唯一被硬禁的事**:远程图片(`<img src="https://...">`、 - Network accessline 142
- **纯文字封面**(只有标题居中,没有视觉主体)。 - **使用远程图片**(`<img src="https://...">`、`background-image: url(https://…)`)—— 离线打不开。 - Network accessline 143
- **使用远程图片**(`<img src="https://...">`、`background-image: url(https://…)`)—— 离线打不开。
skills/beautiful-article/scripts/html-to-pdf.sh
skills/beautiful-article/scripts/scaffold.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/beautiful-article/scripts/source-to-markdown-markitdown.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/beautiful-article/scripts/source-to-markdown.py
skills/gpt-image-2/README.md
- Access to secretsline 37
[Credential-related source omitted] - Network accessline 98
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-t - Network accessline 99
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-thumb.webp" - Network accessline 100
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-thumb.webp" alt="Liv - Network accessline 101
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fsocial-interface-mockup%2F3"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/social-interface-mockup/3-thumb. - Network accessline 102
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overl - Network accessline 103
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overlay/1-thu - Network accessline 104
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overlay/1-thumb.webp" - Network accessline 105
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fchat-interface-scene%2F3"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/chat-interface-scene/3-thumb.webp" - Network accessline 111
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/explod - Network accessline 112
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/exploded-view-po - Network accessline 113
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/exploded-view-poster/2-th - Network accessline 114
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fpremium-studio-product%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/premium-studio-product/ - Network accessline 115
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packag - Network accessline 116
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/cosm - Network accessline 117
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/cosmetic-pack - Network accessline 118
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fbeverage-label-design%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/beverage-l - Network accessline 124
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/ - Network accessline 125
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/background - Network accessline 126
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/background-replacem - Network accessline 127
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fobject-removal%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/object-removal/1-thumb.webp - Network accessline 128
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/produc - Network accessline 129
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/product-retouc - Network accessline 130
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/product-retouching/1-th - Network accessline 131
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fportrait-local-edit%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/portrait-local-edit/1- - Network accessline 137
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid - Network accessline 138
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid-infograph - Network accessline 139
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid-infographic/1-thum - Network accessline 140
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fcomparison-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/comparison-infographic/1-thum - Network accessline 141
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visu - Network accessline 142
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/ - Network accessline 143
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/dense-exp - Network accessline 144
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fvisual-report-page%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/visual-report - Network accessline 150
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/ - Network accessline 151
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/method-pip - Network accessline 152
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/method-pipeline-ove - Network accessline 153
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fneural-network-architecture%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/neural-network-a - Network accessline 154
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/sys - Network accessline 155
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/system-arch - Network accessline 156
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/system-architecture/ - Network accessline 157
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsequence-diagram%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/sequence-diagram/1-thum - Network accessline 163
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and- - Network accessline 164
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and-sequences/ - Network accessline 165
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and-sequences/anime-key - Network accessline 166
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ffood-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/food-map/1-thumb.webp" alt="Food map case" width="100%"></a - Network accessline 167
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt - Network accessline 168
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt="Travel - Network accessline 169
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt="Travel route ma - Network accessline 170
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/portraits-and-characters%2Fprofessional-portrait%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/portraits-and-characters/profes - Network accessline 174
<sub>Full library: <a href="https://gpt-image2.mmh1.top/#/case"><b>live case browser</b></a> · <a href="https://github.com/ConardLi/gpt-image-2-101/tree/main/public/case">case source repository</a> · local index at <code>website/gpt-image2- - Network accessline 218
| `ENABLE_GARDEN_IMAGEGEN` | Mode A | Master switch for Mode A (`1` / `true` / `yes` / `on`) | | `OPENAI_API_KEY` | Mode A | Required for actual image API calls | | `OPENAI_BASE_URL` | optional | Default `https://api.openai.com/v1`; can poi - Network accessline 219
[Credential-related source omitted] - Access to secretsline 219
[Credential-related source omitted] - Network accessline 220
| `OPENAI_BASE_URL` | optional | Default `https://api.openai.com/v1`; can point to any OpenAI-compatible gateway |
skills/gpt-image-2/README.zh-CN.md
- Access to secretsline 37
[Credential-related source omitted] - Network accessline 98
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-t - Network accessline 99
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-thumb.webp" - Network accessline 100
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Flive-commerce-ui%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/live-commerce-ui/1-thumb.webp" alt="直播带 - Network accessline 101
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fsocial-interface-mockup%2F3"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/social-interface-mockup/3-thumb. - Network accessline 102
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overl - Network accessline 103
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overlay/1-thu - Network accessline 104
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fproduct-card-overlay%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/product-card-overlay/1-thumb.webp" - Network accessline 105
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/ui-mockups%2Fchat-interface-scene%2F3"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/ui-mockups/chat-interface-scene/3-thumb.webp" - Network accessline 111
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/explod - Network accessline 112
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/exploded-view-po - Network accessline 113
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fexploded-view-poster%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/exploded-view-poster/2-th - Network accessline 114
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/product-visuals%2Fpremium-studio-product%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/product-visuals/premium-studio-product/ - Network accessline 115
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packag - Network accessline 116
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/cosm - Network accessline 117
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fcosmetic-packaging%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/cosmetic-pack - Network accessline 118
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/branding-and-packaging%2Fbeverage-label-design%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/branding-and-packaging/beverage-l - Network accessline 124
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/ - Network accessline 125
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/background - Network accessline 126
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fbackground-replacement%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/background-replacem - Network accessline 127
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fobject-removal%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/object-removal/1-thumb.webp - Network accessline 128
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/produc - Network accessline 129
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/product-retouc - Network accessline 130
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fproduct-retouching%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/product-retouching/1-th - Network accessline 131
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/editing-workflows%2Fportrait-local-edit%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/editing-workflows/portrait-local-edit/1- - Network accessline 137
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid - Network accessline 138
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid-infograph - Network accessline 139
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fbento-grid-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/bento-grid-infographic/1-thum - Network accessline 140
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/infographics%2Fcomparison-infographic%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/infographics/comparison-infographic/1-thum - Network accessline 141
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visu - Network accessline 142
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/ - Network accessline 143
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fdense-explainer-slides%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/dense-exp - Network accessline 144
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/slides-and-visual-docs%2Fvisual-report-page%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/slides-and-visual-docs/visual-report - Network accessline 150
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/ - Network accessline 151
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/method-pip - Network accessline 152
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fmethod-pipeline-overview%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/method-pipeline-ove - Network accessline 153
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/academic-figures%2Fneural-network-architecture%2F2"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/academic-figures/neural-network-a - Network accessline 154
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/sys - Network accessline 155
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/system-arch - Network accessline 156
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsystem-architecture%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/system-architecture/ - Network accessline 157
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/technical-diagrams%2Fsequence-diagram%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/technical-diagrams/sequence-diagram/1-thum - Network accessline 163
<table> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and- - Network accessline 164
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and-sequences/ - Network accessline 165
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/storyboards-and-sequences%2Fanime-key-visual%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/storyboards-and-sequences/anime-key - Network accessline 166
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ffood-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/food-map/1-thumb.webp" alt="美食地图案例" width="100%"></a><br/>< - Network accessline 167
</tr> <tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt - Network accessline 168
<tr> <td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt="旅行路线图案 - Network accessline 169
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/maps%2Ftravel-route-map%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/maps/travel-route-map/1-thumb.webp" alt="旅行路线图案例" width= - Network accessline 170
<td width="50%" align="center"><a href="https://gpt-image2.mmh1.top/#/case/portraits-and-characters%2Fprofessional-portrait%2F1"><img src="https://cdn.jsdelivr.net/gh/ConardLi/gpt-image-2-101@main/public/case/portraits-and-characters/profes - Network accessline 174
<sub>完整案例库:<a href="https://gpt-image2.mmh1.top/#/case"><b>线上案例浏览器</b></a> · <a href="https://github.com/ConardLi/gpt-image-2-101/tree/main/public/case">案例资源仓库</a> · 本地索引 <code>website/gpt-image2-website/public/case/INDEX.md</code>。</sub> - Network accessline 218
| `ENABLE_GARDEN_IMAGEGEN` | Mode A 必需 | 模式开关:`1` / `true` / `yes` / `on` 启用 Mode A | | `OPENAI_API_KEY` | Mode A 必需 | 真正调图像 API 用 | | `OPENAI_BASE_URL` | 可选 | 默认 `https://api.openai.com/v1`,可指向任意 OpenAI 兼容网关 | - Network accessline 219
[Credential-related source omitted] - Access to secretsline 219
[Credential-related source omitted] - Network accessline 220
| `OPENAI_BASE_URL` | 可选 | 默认 `https://api.openai.com/v1`,可指向任意 OpenAI 兼容网关 |
skills/gpt-image-2/SKILL.md
- Access to secretsline 34
[Credential-related source omitted] - Network accessline 112
- `ENABLE_GARDEN_IMAGEGEN` — **模式开关**。`1` / `true` / `yes` / `on` 时启用 Mode A;未设置或其它值则进入 Mode B / C。 - `OPENAI_API_KEY` — Mode A 必需;B / C 不需要。 - `OPENAI_BASE_URL` — 默认 `https://api.openai.com/v1`,可指向第三方兼容网关。 - Network accessline 113
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 114
- `OPENAI_BASE_URL` — 默认 `https://api.openai.com/v1`,可指向第三方兼容网关。
skills/gpt-image-2/manifest.json
- Network accessline 4
"category": "Image Generation / Prompt Engineering", "description": "Focused image generation and editing skill for GPT Image 2 and OpenAI-compatible image APIs. Supports three runtime modes — Garden local, host-native delegation, and adv - Network accessline 5
"description": "Focused image generation and editing skill for GPT Image 2 and OpenAI-compatible image APIs. Supports three runtime modes — Garden local, host-native delegation, and advisor-only — with 18 visual categories and 80+ structure - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/gpt-image-2",
skills/gpt-image-2/references/branding-and-packaging/character-merch-board.md
- Access to secretsline 136
[Credential-related source omitted]
skills/gpt-image-2/references/technical-diagrams/sequence-diagram.md
- Access to secretsline 131
[Credential-related source omitted]
skills/gpt-image-2/scripts/check-mode.js
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 12
[Credential-related source omitted] - Access to secretsline 12
[Credential-related source omitted] - Network accessline 13
const baseUrl = process.env.OPENAI_BASE_URL || "https://api.openai.com/v1"; - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 41
[Credential-related source omitted] - Access to secretsline 58
[Credential-related source omitted]
skills/gpt-image-2/scripts/edit.js
- Executable scriptline 1
Executable file
skills/gpt-image-2/scripts/generate.js
- Executable scriptline 1
Executable file
skills/gpt-image-2/scripts/package.json
- Executable scriptline 1
Executable file
skills/gpt-image-2/scripts/shared.js
- Executable scriptline 1
Executable file - Access to secretsline 34
[Credential-related source omitted] - Network accessline 137
export function buildBaseUrl() { return (process.env.OPENAI_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, ""); - Network accessline 138
return (process.env.OPENAI_BASE_URL || "https://api.openai.com/v1").replace(/\/$/, ""); - Access to secretsline 142
[Credential-related source omitted] - Access to secretsline 143
[Credential-related source omitted] - Network accessline 147
[Credential-related source omitted] - Network accessline 148
[Credential-related source omitted] - Network accessline 149
const res = await fetch(url, { - Network accessline 166
[Credential-related source omitted] - Network accessline 167
[Credential-related source omitted] - Network accessline 168
const res = await fetch(url, { - Network accessline 184
export async function fetchBytesFromUrl(url) { const res = await fetch(url); - Network accessline 185
const res = await fetch(url);
skills/kb-retriever/manifest.json
- Network accessline 4
"category": "Retrieval / Local Knowledge Base", "description": "Local knowledge-base retriever with progressive search. Navigates layered data_structure.md indexes, enforces learn-before-process for PDF and Excel, bounds retrieval to at m - Network accessline 5
"description": "Local knowledge-base retriever with progressive search. Navigates layered data_structure.md indexes, enforces learn-before-process for PDF and Excel, bounds retrieval to at most five rounds, and answers with sources.", "ho - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/kb-retriever",
skills/kb-retriever/scripts/convert_pdf_to_images.py
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/editor/editor.js
- Executable scriptline 1
Executable file - Network accessline 16
function message(text, error = false) { $('message').textContent = text; $('message').title = text; $('message').classList.toggle('error', error); } async function api(url, data) { const response = await fetch(url, data === undefined ? { - Network accessline 17
[Credential-related source omitted] - Network accessline 18
[Credential-related source omitted]
skills/motion-showreel/assets/editor/index.html
- Network accessline 9
<body> <header class="topbar"> <a class="brand" href="https://github.com/ConardLi/garden-skills" target="_blank" rel="noopener noreferrer" title="打开 garden skills GitHub 仓库">garden skills</a> - Network accessline 10
<header class="topbar"> <a class="brand" href="https://github.com/ConardLi/garden-skills" target="_blank" rel="noopener noreferrer" title="打开 garden skills GitHub 仓库">garden skills</a> <span class="project-title" id="project-name">工 - Network accessline 11
<a class="brand" href="https://github.com/ConardLi/garden-skills" target="_blank" rel="noopener noreferrer" title="打开 garden skills GitHub 仓库">garden skills</a>
skills/motion-showreel/assets/editor/progress.js
- Executable scriptline 1
Executable file - Network accessline 36
else { media.className = 'document-result'; media.textContent = '正在载入成果…'; media.tabIndex = 0; fetch(source, { credentials: 'omit' }).then(async response => { - Network accessline 37
media.className = 'document-result'; media.textContent = '正在载入成果…'; media.tabIndex = 0; fetch(source, { credentials: 'omit' }).then(async response => { if (!response.ok) throw new Error('文档无法载入'); - Network accessline 38
fetch(source, { credentials: 'omit' }).then(async response => { - Network accessline 76
const reason = deferReason(); if (reason) { $('progress-message').textContent = reason; setPanel(true); return; } const response = await fetch(new URL(`/api/preview/${id}`, parentOrigin), { credentials: 'omit' }); - Network accessline 77
if (reason) { $('progress-message').textContent = reason; setPanel(true); return; } const response = await fetch(new URL(`/api/preview/${id}`, parentOrigin), { credentials: 'omit' }); if (!response.ok) throw new Error('这个阶段的预览暂时无法打开 - Network accessline 78
const response = await fetch(new URL(`/api/preview/${id}`, parentOrigin), { credentials: 'omit' }); - Network accessline 157
if (stopped) return; try { const response = await fetch(endpoint.href, { cache: 'no-store', credentials: 'omit' }); - Network accessline 158
try { const response = await fetch(endpoint.href, { cache: 'no-store', credentials: 'omit' }); if (!response.ok) throw new Error('进度连接中断'); - Network accessline 159
const response = await fetch(endpoint.href, { cache: 'no-store', credentials: 'omit' });
skills/motion-showreel/assets/editor/viewport.js
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/build.sh
- Executable scriptline 1
#!/bin/sh
skills/motion-showreel/assets/starter/motion.js
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/narration.js
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/package.json
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/preview.js
- Executable scriptline 1
Executable file - Network accessline 23
for (const candidate of candidates) { const url = localAudio(candidate); const response = await fetch(url, { method: 'HEAD', cache: 'no-store' }).catch(() => null); - Network accessline 24
const url = localAudio(candidate); const response = await fetch(url, { method: 'HEAD', cache: 'no-store' }).catch(() => null); if (response?.ok) return { url: url.href, label: candidate }; - Network accessline 25
const response = await fetch(url, { method: 'HEAD', cache: 'no-store' }).catch(() => null);
skills/motion-showreel/assets/starter/score.layer.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/score.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/score.tone.js
- Executable scriptline 1
Executable file
skills/motion-showreel/assets/starter/timeline.js
- Executable scriptline 1
Executable file
skills/motion-showreel/manifest.json
- Network accessline 4
"category": "Motion Graphics / Code Video", "description": "Make code-rendered motion videos and narrated explainers up to 20 minutes, with MP4 and editable source. Confirm requirements and style frames before production. Preserve the 40- - Network accessline 5
"description": "Make code-rendered motion videos and narrated explainers up to 20 minutes, with MP4 and editable source. Confirm requirements and style frames before production. Preserve the 40-style library, deterministic render(t), beat t - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/motion-showreel",
skills/motion-showreel/references/narration.md
skills/motion-showreel/references/stack.md
- Network accessline 131
- **自托管**:把 `.woff2` 放进 `fonts/`,用 `@font-face` 声明,`loadFonts()` 等它加载完再 READY。渲染时不要链接 Google Fonts。 - 拉取开源字体:`https://github.com/google/fonts/tree/main/ofl/<family>`(OFL 授权)。 - Network accessline 132
- 拉取开源字体:`https://github.com/google/fonts/tree/main/ofl/<family>`(OFL 授权)。 - Network accessline 133
- **中文**:完整的 CJK 字体有几 MB 到十几 MB。可以按用到的字做子集:Google Fonts CSS API 带 `&text=` 参数,只返回这些字的字形,例如 `https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@900&text=<URL 编码的文字>`,把它指向的字体文件下载到 `fonts/` 再本地加载。文案改了要重新做子集。没有网络时用系统字体兜底:`"PingFang SC",
skills/motion-showreel/scripts/audio.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/build-long.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/check-env.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/editor.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 52
const server = http.createServer(async (req, res) => { try { const url = new URL(req.url, 'http://localhost'), pathname = decodeURIComponent(url.pathname); - Network accessline 53
try { const url = new URL(req.url, 'http://localhost'), pathname = decodeURIComponent(url.pathname); if (req.headers.host !== `127.0.0.1:${server.address().port}` && req.headers.host !== `localhost:${server.address().port}`) { s - Network accessline 54
const url = new URL(req.url, 'http://localhost'), pathname = decodeURIComponent(url.pathname); - Network accessline 55
if (req.headers.host !== `127.0.0.1:${server.address().port}` && req.headers.host !== `localhost:${server.address().port}`) { send(res, 403, { error: 'Invalid host' }); return; } if (req.headers.origin && ![`http://127.0.0.1:${server. - Network accessline 56
if (req.headers.origin && ![`http://127.0.0.1:${server.address().port}`, `http://localhost:${server.address().port}`].includes(req.headers.origin)) { send(res, 403, { error: 'Invalid origin' }); return; } - Network accessline 110
}); await new Promise((resolve, reject) => { server.once('error', reject); server.listen(0, '127.0.0.1', resolve); }); return { url: `http://127.0.0.1:${server.address().port}/editor`, server, project, - Network accessline 111
await new Promise((resolve, reject) => { server.once('error', reject); server.listen(0, '127.0.0.1', resolve); }); return { url: `http://127.0.0.1:${server.address().port}/editor`, server, project, async close() { if (active?.status = - Network accessline 112
return { url: `http://127.0.0.1:${server.address().port}/editor`, server, project,
skills/motion-showreel/scripts/inspect.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/lib/browser.mjs
- Executable scriptline 1
Executable file - Network accessline 60
return new Promise(resolve => { const server = http.createServer((req, res) => { let p = decodeURIComponent(new URL(req.url, 'http://x').pathname); - Network accessline 61
const server = http.createServer((req, res) => { let p = decodeURIComponent(new URL(req.url, 'http://x').pathname); if (p.endsWith('/')) p += 'index.html'; - Network accessline 62
let p = decodeURIComponent(new URL(req.url, 'http://x').pathname); - Network accessline 100
}); const qs = new URLSearchParams(query); qs.set('w', w); qs.set('h', h); qs.set('render', '1'); await page.goto(`http://127.0.0.1:${port}/${rel}?${qs}`); - Network accessline 101
const qs = new URLSearchParams(query); qs.set('w', w); qs.set('h', h); qs.set('render', '1'); await page.goto(`http://127.0.0.1:${port}/${rel}?${qs}`); const t0 = Date.now(); - Network accessline 102
await page.goto(`http://127.0.0.1:${port}/${rel}?${qs}`);
skills/motion-showreel/scripts/lib/editor-media.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/editor-model.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/editor-progress.mjs
- Executable scriptline 1
Executable file - Network accessline 140
if (!openings.has(preview.id)) openings.set(preview.id, (async () => { const child = await createChild(snapshot, { ...preview.options, quality: { ...options.quality, ...preview.quality }, allowExport: preview.final, readOnly: !previ - Network accessline 141
const child = await createChild(snapshot, { ...preview.options, quality: { ...options.quality, ...preview.quality }, allowExport: preview.final, readOnly: !preview.final, progressURL: `http://127.0.0.1:${server.address().port}/api - Network accessline 142
progressURL: `http://127.0.0.1:${server.address().port}/api/progress`, progressRevision: { id: preview.id, final: preview.final, stage: preview.stage, shot: preview.shot, name: preview.name } }); - Network accessline 165
if (req.headers.host !== host && req.headers.host !== host.replace('127.0.0.1', 'localhost')) { res.writeHead(403); res.end(); return; } if (!['GET', 'HEAD'].includes(req.method)) { res.writeHead(405); res.end(); return; } const - Network accessline 166
if (!['GET', 'HEAD'].includes(req.method)) { res.writeHead(405); res.end(); return; } const url = new URL(req.url, `http://${host}`); const ownOrigins = [`http://${host}`, `http://${host.replace('127.0.0.1', 'localhost')}`]; - Network accessline 167
const url = new URL(req.url, `http://${host}`); - Network accessline 168
const ownOrigins = [`http://${host}`, `http://${host.replace('127.0.0.1', 'localhost')}`]; - Network accessline 182
if (url.pathname === '/api/project') { res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'no-store' }); res.end(JSON.stringify({ project: null, progressURL: `http://${host}/api/progress - Network accessline 183
res.writeHead(200, { 'Content-Type': 'application/json; charset=utf-8', 'Cache-Control': 'no-store' }); res.end(JSON.stringify({ project: null, progressURL: `http://${host}/api/progress`, progressRevision: null })); return; } - Network accessline 184
res.end(JSON.stringify({ project: null, progressURL: `http://${host}/api/progress`, progressRevision: null })); return; - Network accessline 201
}); await new Promise((resolve, reject) => { server.once('error', reject); server.listen(0, '127.0.0.1', resolve); }); return { url: `http://127.0.0.1:${server.address().port}/progress`, server, - Network accessline 202
await new Promise((resolve, reject) => { server.once('error', reject); server.listen(0, '127.0.0.1', resolve); }); return { url: `http://127.0.0.1:${server.address().port}/progress`, server, async close() { closed = true; server.close - Network accessline 203
return { url: `http://127.0.0.1:${server.address().port}/progress`, server,
skills/motion-showreel/scripts/lib/fft.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/frames.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/narration-providers.mjs
- Executable scriptline 1
Executable file - Network accessline 61
if (!model || !voice) throw new Error('Gemini TTS needs --model/--voice or GEMINI_TTS_MODEL/GEMINI_TTS_VOICE'); if (!env.GEMINI_API_KEY) throw new Error('Set GEMINI_API_KEY in the environment'); const base = (env.GEMINI_TTS_BASE_URL - Network accessline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Network accessline 63
const base = (env.GEMINI_TTS_BASE_URL || 'https://generativelanguage.googleapis.com/v1beta').replace(/\/$/, ''); - Access to secretsline 72
[Credential-related source omitted] - Network accessline 91
if (!model || !voice) throw new Error('MiniMax TTS needs --model/--voice or MINIMAX_TTS_MODEL/MINIMAX_TTS_VOICE'); if (!env.MINIMAX_API_KEY) throw new Error('Set MINIMAX_API_KEY in the environment'); const url = endpoint(env.MINIMAX - Network accessline 92
[Credential-related source omitted] - Access to secretsline 92
[Credential-related source omitted] - Network accessline 93
const url = endpoint(env.MINIMAX_TTS_URL || 'https://api.minimax.io/v1/t2a_v2'); - Access to secretsline 99
[Credential-related source omitted]
skills/motion-showreel/scripts/lib/narration.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/project.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/synth.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/text-hook.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/lib/tone-render.mjs
- Executable scriptline 1
Executable file - Network accessline 64
page.on('response', r => { if (r.status() >= 400) console.error(`[tone page] ${r.status()} ${new URL(r.url()).pathname} (a sample or module path is wrong?)`); }); const qs = new URLSearchParams({ score: path.basename(scoreFile), ...(dur - Network accessline 65
const qs = new URLSearchParams({ score: path.basename(scoreFile), ...(dur ? { dur: String(dur) } : {}) }); await page.goto(`http://127.0.0.1:${port}/__msr/run/index.html?${qs}`); await page.waitForFunction(() => window.__done, null, - Network accessline 66
await page.goto(`http://127.0.0.1:${port}/__msr/run/index.html?${qs}`); - Network accessline 84
salamander: { licence: 'Salamander Grand Piano V3 by Alexander Holm — CC BY 3.0 (credit required)', base: 'https://tonejs.github.io/audio/salamander/', - Network accessline 85
licence: 'Salamander Grand Piano V3 by Alexander Holm — CC BY 3.0 (credit required)', base: 'https://tonejs.github.io/audio/salamander/', files: ['A0', 'C1', 'Ds1', 'Fs1', 'A1', 'C2', 'Ds2', 'Fs2', 'A2', 'C3', 'Ds3', 'Fs3', 'A3', 'C - Network accessline 86
base: 'https://tonejs.github.io/audio/salamander/', - Network accessline 95
const dst = path.join(dir, f); if (fs.existsSync(dst) && fs.statSync(dst).size > 0) { got++; continue; } const r = await fetch(p.base + f); - Network accessline 96
if (fs.existsSync(dst) && fs.statSync(dst).size > 0) { got++; continue; } const r = await fetch(p.base + f); if (!r.ok) die(`download failed: ${p.base + f} (${r.status})`); - Network accessline 97
const r = await fetch(p.base + f);
skills/motion-showreel/scripts/narration.mjs
skills/motion-showreel/scripts/package-lock.json
- Network accessline 13
"node_modules/@babel/runtime": { "version": "7.29.7", "resolved": "https://bnpm.byted.org/@babel/runtime/-/runtime-7.29.7.tgz", - Network accessline 14
"version": "7.29.7", "resolved": "https://bnpm.byted.org/@babel/runtime/-/runtime-7.29.7.tgz", "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", - Network accessline 15
"resolved": "https://bnpm.byted.org/@babel/runtime/-/runtime-7.29.7.tgz", - Network accessline 22
"node_modules/automation-events": { "version": "7.1.19", "resolved": "https://bnpm.byted.org/automation-events/-/automation-events-7.1.19.tgz", - Network accessline 23
"version": "7.1.19", "resolved": "https://bnpm.byted.org/automation-events/-/automation-events-7.1.19.tgz", "integrity": "sha512-cD+TLhJTI0q4AI3ktd353lrGZiVa9AchowSDzQzzGjSoYe22js4vlS32VUtWuaulghi1Yq0KYNWKk9wWuGymPA==", - Network accessline 24
"resolved": "https://bnpm.byted.org/automation-events/-/automation-events-7.1.19.tgz", - Network accessline 35
"node_modules/playwright": { "version": "1.63.0", "resolved": "https://bnpm.byted.org/playwright/-/playwright-1.63.0.tgz", - Network accessline 36
"version": "1.63.0", "resolved": "https://bnpm.byted.org/playwright/-/playwright-1.63.0.tgz", "integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==", - Network accessline 37
"resolved": "https://bnpm.byted.org/playwright/-/playwright-1.63.0.tgz", - Network accessline 50
"node_modules/playwright-core": { "version": "1.63.0", "resolved": "https://bnpm.byted.org/playwright-core/-/playwright-core-1.63.0.tgz", - Network accessline 51
"version": "1.63.0", "resolved": "https://bnpm.byted.org/playwright-core/-/playwright-core-1.63.0.tgz", "integrity": "sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==", - Network accessline 52
"resolved": "https://bnpm.byted.org/playwright-core/-/playwright-core-1.63.0.tgz", - Network accessline 62
"node_modules/standardized-audio-context": { "version": "25.3.77", "resolved": "https://bnpm.byted.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", - Network accessline 63
"version": "25.3.77", "resolved": "https://bnpm.byted.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", "integrity": "sha512-Ki9zNz6pKcC5Pi+QPjPyVsD9GwJIJWgryji0XL9cAJXMGyn+dPOf6Qik1AHei0+UNVcc4BOCa0hWLBz - Network accessline 64
"resolved": "https://bnpm.byted.org/standardized-audio-context/-/standardized-audio-context-25.3.77.tgz", - Network accessline 73
"node_modules/tone": { "version": "15.1.22", "resolved": "https://bnpm.byted.org/tone/-/tone-15.1.22.tgz", - Network accessline 74
"version": "15.1.22", "resolved": "https://bnpm.byted.org/tone/-/tone-15.1.22.tgz", "integrity": "sha512-TCScAGD4sLsama5DjvTUXlLDXSqPealhL64nsdV1hhr6frPWve0DeSo63AKnSJwgfg55fhvxj0iPPRwPN5o0ag==", - Network accessline 75
"resolved": "https://bnpm.byted.org/tone/-/tone-15.1.22.tgz", - Network accessline 83
"node_modules/tslib": { "version": "2.8.1", "resolved": "https://bnpm.byted.org/tslib/-/tslib-2.8.1.tgz", - Network accessline 84
"version": "2.8.1", "resolved": "https://bnpm.byted.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - Network accessline 85
"resolved": "https://bnpm.byted.org/tslib/-/tslib-2.8.1.tgz",
skills/motion-showreel/scripts/package.json
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/preview.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 30
const handlers = server.listeners('request'); server.removeAllListeners('request'); server.on('request', (req, res) => { const url = new URL(req.url, 'http://localhost'); - Network accessline 31
server.on('request', (req, res) => { const url = new URL(req.url, 'http://localhost'); let pathname; - Network accessline 32
const url = new URL(req.url, 'http://localhost'); - Network accessline 57
}); const query = new URLSearchParams({ preview: '1', w: String(w), h: String(h), fps: String(fps), ...(audio ? { audio } : {}) }); const url = `http://127.0.0.1:${actualPort}/${encodeURIComponent(target.rel)}?${query}`; - Network accessline 58
const query = new URLSearchParams({ preview: '1', w: String(w), h: String(h), fps: String(fps), ...(audio ? { audio } : {}) }); const url = `http://127.0.0.1:${actualPort}/${encodeURIComponent(target.rel)}?${query}`; return { url, serve - Network accessline 59
const url = `http://127.0.0.1:${actualPort}/${encodeURIComponent(target.rel)}?${query}`;
skills/motion-showreel/scripts/progress.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/render.mjs
- Executable scriptline 1
#!/usr/bin/env node
skills/motion-showreel/scripts/scaffold.sh
- Executable scriptline 1
#!/bin/sh
skills/motion-showreel/scripts/setup.sh
skills/motion-showreel/scripts/test/editor-layout.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/editor-model.test.mjs
- Executable scriptline 1
Executable file - Network accessline 74
const root = fixture(t), app = await createEditorServer(root); t.after(() => app.close()); const base = new URL(app.url).origin, response = await fetch(base + '/api/project'), data = await response.json(); - Network accessline 75
t.after(() => app.close()); const base = new URL(app.url).origin, response = await fetch(base + '/api/project'), data = await response.json(); const denied = await fetch(base + '/api/session', { method: 'POST', body: JSON.stringify(data - Network accessline 76
const base = new URL(app.url).origin, response = await fetch(base + '/api/project'), data = await response.json(); - Network accessline 77
const denied = await fetch(base + '/api/session', { method: 'POST', body: JSON.stringify(data.session) }); - Network accessline 78
[Credential-related source omitted] - Network accessline 79
[Credential-related source omitted] - Network accessline 80
[Credential-related source omitted] - Network accessline 81
[Credential-related source omitted] - Network accessline 82
assert.equal((await fetch(base + '/api/session', { method: 'POST', headers, body: JSON.stringify(data.session) })).status, 200); - Network accessline 88
assert.ok(high.peaks.some(v => v > 0.1), 'treble remains visible in the waveform'); const invalid = structuredClone(data.session); invalid.tracks[0].clips.push(structuredClone(invalid.tracks[0].clips[0])); assert.equal((await fetch(base - Network accessline 89
const invalid = structuredClone(data.session); invalid.tracks[0].clips.push(structuredClone(invalid.tracks[0].clips[0])); assert.equal((await fetch(base + '/api/session', { method: 'POST', headers, body: JSON.stringify(invalid) })).status - Network accessline 90
assert.equal((await fetch(base + '/api/session', { method: 'POST', headers, body: JSON.stringify(invalid) })).status, 400); - Network accessline 91
const range = await fetch(base + '/project/audio/a.wav', { headers: { Range: 'bytes=0-15' } }); - Network accessline 92
assert.equal(range.status, 206); assert.equal((await range.arrayBuffer()).byteLength, 16); const first = await fetch(base + '/api/jobs', { method: 'POST', headers, body: JSON.stringify({ type: 'mix', session: data.session }) }); const j - Network accessline 93
const first = await fetch(base + '/api/jobs', { method: 'POST', headers, body: JSON.stringify({ type: 'mix', session: data.session }) }); - Network accessline 94
const job = await first.json(); let result = job; for (let i = 0; i < 100 && result.status === 'running'; i++) { await new Promise(r => setTimeout(r, 30)); result = await (await fetch(base + '/api/jobs/' + job.id)).json(); } assert.equa - Network accessline 95
for (let i = 0; i < 100 && result.status === 'running'; i++) { await new Promise(r => setTimeout(r, 30)); result = await (await fetch(base + '/api/jobs/' + job.id)).json(); }
skills/motion-showreel/scripts/test/editor-progress.test.mjs
- Executable scriptline 1
Executable file - Network accessline 31
const root = rootFor(t), app = await createProgressServer(root); t.after(() => app.close()); let state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 32
t.after(() => app.close()); let state = await (await fetch(new URL('/api/progress', app.url))).json(); assert.equal(state.preview, null); assert.equal(state.stages.length, 6); - Network accessline 33
let state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 34
assert.equal(state.preview, null); assert.equal(state.stages.length, 6); const bootstrap = await (await fetch(new URL('/api/project', app.url))).json(); assert.equal(bootstrap.project, null); - Network accessline 35
const bootstrap = await (await fetch(new URL('/api/project', app.url))).json(); - Network accessline 36
assert.equal(bootstrap.project, null); assert.equal(bootstrap.progressURL, new URL('/api/progress', app.url).href); const shell = await (await fetch(app.url)).text(); - Network accessline 37
assert.equal(bootstrap.progressURL, new URL('/api/progress', app.url).href); const shell = await (await fetch(app.url)).text(); assert.equal((shell.match(/<iframe\b/g) || []).length, 1, 'the empty and finished workspaces share one shell - Network accessline 38
const shell = await (await fetch(app.url)).text(); - Network accessline 41
assert.equal(fs.existsSync(path.join(root, 'index.html')), false); updateProgress(root, { stage: 'scenes', done: 2, total: 8, message: '两个镜头已完成' }); state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 42
updateProgress(root, { stage: 'scenes', done: 2, total: 8, message: '两个镜头已完成' }); state = await (await fetch(new URL('/api/progress', app.url))).json(); assert.equal(state.stages.find(s => s.id === 'scenes').done, 2); - Network accessline 43
state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 56
await publishArtifact(root, 'tone.wav', { stage: 'narration', message: '口播样例' }); const artifact = readState(root).artifacts[0]; fs.writeFileSync(path.join(root, 'tone.wav'), 'later unfinished edit'); const response = await fetch(new UR - Network accessline 57
const artifact = readState(root).artifacts[0]; fs.writeFileSync(path.join(root, 'tone.wav'), 'later unfinished edit'); const response = await fetch(new URL(artifact.url, app.url), { headers: { Range: 'bytes=0-31' } }); assert.equal(resp - Network accessline 58
const response = await fetch(new URL(artifact.url, app.url), { headers: { Range: 'bytes=0-31' } }); - Network accessline 103
t.after(async () => { await page.close(); await app.close(); }); const endpoint = new URL('/api/progress', app.url); let state = await (await fetch(endpoint)).json(); - Network accessline 104
const endpoint = new URL('/api/progress', app.url); let state = await (await fetch(endpoint)).json(); assert.equal(state.syncWarning, null, 'generated QA files do not imply production has resumed'); - Network accessline 105
let state = await (await fetch(endpoint)).json(); - Network accessline 107
fs.writeFileSync(path.join(root, 'timeline.js'), 'export const DUR=30;'); const unchanged = fs.readFileSync(path.join(root, '.showreel-progress/status.json'), 'utf8'); state = await (await fetch(endpoint)).json(); - Network accessline 108
const unchanged = fs.readFileSync(path.join(root, '.showreel-progress/status.json'), 'utf8'); state = await (await fetch(endpoint)).json(); assert.match(state.syncWarning, /制作文件已更新/); - Network accessline 109
state = await (await fetch(endpoint)).json(); - Network accessline 121
assert.match(await page.locator('#progress-message').textContent(), /需求已确认/); assert.equal(await page.locator('[data-stage=brief] .stage-icon').evaluate(el => getComputedStyle(el).animationName), 'progress-spin'); state = await (await f - Network accessline 122
assert.equal(await page.locator('[data-stage=brief] .stage-icon').evaluate(el => getComputedStyle(el).animationName), 'progress-spin'); state = await (await fetch(endpoint)).json(); assert.equal(state.syncWarning, null); - Network accessline 123
state = await (await fetch(endpoint)).json(); - Access to secretsline 132
[Credential-related source omitted] - Network accessline 135
assert.equal(readState(root).stages.find(s => s.id === 'scenes').status, 'running', 'a playable work in progress does not claim the production stage is complete'); assert.equal(fs.existsSync(path.join(root, first.directory, '.env')), fals - Network accessline 136
[Credential-related source omitted] - Access to secretsline 136
[Credential-related source omitted] - Network accessline 137
let state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 138
const childURL = state.preview.url; const data = await (await fetch(new URL('/api/project', childURL))).json(); assert.equal(data.project.canExport, false); assert.equal(data.project.readOnly, true); - Network accessline 139
const data = await (await fetch(new URL('/api/project', childURL))).json(); - Network accessline 142
assert.equal(data.progressRevision.id, first.id); const childOrigin = new URL(childURL).origin; const allowed = await fetch(data.progressURL, { headers: { Origin: childOrigin } }); - Network accessline 143
const childOrigin = new URL(childURL).origin; const allowed = await fetch(data.progressURL, { headers: { Origin: childOrigin } }); assert.equal(allowed.status, 200); - Network accessline 144
const allowed = await fetch(data.progressURL, { headers: { Origin: childOrigin } }); - Network accessline 146
assert.equal(allowed.headers.get('access-control-allow-origin'), childOrigin); assert.equal(allowed.headers.get('vary'), 'Origin'); const unrelated = await fetch(data.progressURL, { headers: { Origin: 'http://127.0.0.1:9' } }); - Network accessline 147
assert.equal(allowed.headers.get('vary'), 'Origin'); const unrelated = await fetch(data.progressURL, { headers: { Origin: 'http://127.0.0.1:9' } }); assert.equal(unrelated.status, 403); - Network accessline 148
const unrelated = await fetch(data.progressURL, { headers: { Origin: 'http://127.0.0.1:9' } }); - Network accessline 149
assert.equal(unrelated.status, 403); assert.equal(unrelated.headers.get('access-control-allow-origin'), null); const post = (route, body) => fetch(new URL(route, childURL), { method: 'POST', headers: { 'Content-Type': 'application/json' - Network accessline 150
[Credential-related source omitted] - Network accessline 151
[Credential-related source omitted] - Network accessline 155
const original = fs.readFileSync(path.join(root, 'index.html'), 'utf8'); fs.writeFileSync(path.join(root, 'index.html'), original.replace('window.render=t=>{', 'window.render=t=>{throw new Error("unfinished scene");')); assert.equal(awa - Network accessline 156
fs.writeFileSync(path.join(root, 'index.html'), original.replace('window.render=t=>{', 'window.render=t=>{throw new Error("unfinished scene");')); assert.equal(await (await fetch(new URL('/project/index.html', childURL))).text(), original - Network accessline 157
assert.equal(await (await fetch(new URL('/project/index.html', childURL))).text(), original); - Network accessline 158
await assert.rejects(publishPreview(root, '.', { stage: 'scenes', fps: 10 }), /unfinished scene/); assert.equal(readState(root).preview.id, first.id); state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 159
assert.equal(readState(root).preview.id, first.id); state = await (await fetch(new URL('/api/progress', app.url))).json(); assert.equal(state.preview.url, childURL); assert.equal(state.stages.find(s => s.id === 'scenes').status, 'failed - Network accessline 160
state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 163
await assert.rejects(publishPreview(root, '.', { stage: 'scenes', final: true, fps: 10 }), /review stage/); await publishPreview(root, '.', { stage: 'review', final: true, fps: 10, quality: { subframes: 4, dpr: 2, grain: 3 } }); state = - Network accessline 164
await publishPreview(root, '.', { stage: 'review', final: true, fps: 10, quality: { subframes: 4, dpr: 2, grain: 3 } }); state = await (await fetch(new URL('/api/progress', app.url))).json(); const final = await (await fetch(new URL('/a - Network accessline 165
state = await (await fetch(new URL('/api/progress', app.url))).json(); - Network accessline 166
const final = await (await fetch(new URL('/api/project', state.preview.url))).json(); - Network accessline 252
state = readState(root); assert.equal(state.shots.length, 2); assert.equal(state.stages.find(s => s.id === 'scenes').done, 2); const latest = state.preview.id; const history = await (await fetch(new URL(`/api/preview/${old.id}`, app.url - Network accessline 253
const latest = state.preview.id; const history = await (await fetch(new URL(`/api/preview/${old.id}`, app.url))).json(); assert.equal(history.id, old.id); - Network accessline 254
const history = await (await fetch(new URL(`/api/preview/${old.id}`, app.url))).json(); - Network accessline 255
assert.equal(history.id, old.id); assert.equal((await (await fetch(new URL('/api/project', history.url))).json()).project.canExport, false); assert.equal(readState(root).preview.id, latest, 'browsing a previous shot must not change the - Network accessline 256
assert.equal((await (await fetch(new URL('/api/project', history.url))).json()).project.canExport, false);
skills/motion-showreel/scripts/test/editor.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/long.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/narration-clock.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/narration.test.mjs
- Executable scriptline 1
Executable file - Access to secretsline 32
[Credential-related source omitted] - Network accessline 46
test('MiniMax adapter uses configurable endpoint, hex output, model and voice', async t => { const root = workspace(t), outFile = path.join(root, 'out.bin'), wav = pcmWav(Buffer.alloc(4800)); const provider = await createProvider({ name - Network accessline 47
[Credential-related source omitted] - Network accessline 48
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted]
skills/motion-showreel/scripts/test/preview.test.mjs
- Executable scriptline 1
Executable file - Network accessline 36
const initial = await page.evaluate(() => ({ playing: window.__showreelPreview.playing, paused: window.__showreelPreview.audio.paused, current: window.__showreelPreview.audio.currentTime, src: window.__showreelPreview.audio.src })); asser - Network accessline 37
assert.equal(initial.playing, false); assert.equal(initial.paused, true); assert.equal(initial.current, 0); assert.match(initial.src, /audio\/final\.wav$/); const range = await fetch(new URL('audio/final.wav', preview.url), { headers: { R - Network accessline 38
const range = await fetch(new URL('audio/final.wav', preview.url), { headers: { Range: 'bytes=0-15' } }); - Network accessline 171
const root = fs.mkdtempSync(path.join(os.tmpdir(), 'showreel-preview-invalid-')); t.after(() => fs.rmSync(root, { recursive: true, force: true })); fs.writeFileSync(path.join(root, 'index.html'), '<canvas></canvas>'); await assert.rejec - Network accessline 172
fs.writeFileSync(path.join(root, 'index.html'), '<canvas></canvas>'); await assert.rejects(createPreviewServer(root, { size: '64x36', audio: 'https://example.com/voice.wav' }), /project-relative/); await assert.rejects(createPreviewServ - Network accessline 173
await assert.rejects(createPreviewServer(root, { size: '64x36', audio: 'https://example.com/voice.wav' }), /project-relative/);
skills/motion-showreel/scripts/test/render-context.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/starter.test.mjs
- Executable scriptline 1
Executable file
skills/motion-showreel/scripts/test/tools.test.mjs
- Executable scriptline 1
Executable file
skills/web-design-engineer/README.md
- Network accessline 13
This is a reusable **Skill** (structured system prompt) for AI coding agents — such as [Claude Code](https://docs.anthropic.com/en/docs/claude-code), [Cursor](https://cursor.com), and other tools that support the `SKILL.md` format — that dr - Network accessline 15
It distills the core design philosophy from [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs)'s system prompt into an open, portable, and customizable skill file that you can drop into any project. - Network accessline 142
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview - Network accessline 143
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview" />< - Network accessline 144
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview" /></a> - Network accessline 148
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji - Network accessline 149
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji-kenya - Network accessline 150
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji-kenya-hara preview" /></a> - Network accessline 156
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> - Network accessline 157
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> <br /><s - Network accessline 158
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> - Network accessline 162
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt=" - Network accessline 163
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt="dieter - Network accessline 164
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt="dieter-rams-braun preview" /></a> - Network accessline 170
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="mon - Network accessline 171
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="monocle- - Network accessline 172
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="monocle-magazine preview" /></a> - Network accessline 193
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview - Network accessline 194
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview" />< - Network accessline 195
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview" /></a> - Network accessline 199
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helveti - Network accessline 200
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.web - Network accessline 201
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp" alt="vignelli-swiss-helvetica - Network accessline 207
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt= - Network accessline 208
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt="bloo - Network accessline 209
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt="bloomberg-terminal preview" /></a> - Network accessline 213
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-da - Network accessline 214
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-dataink - Network accessline 215
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-dataink preview" /></a> - Network accessline 221
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-d - Network accessline 222
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-daily - Network accessline 223
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-daily preview" /></a> - Network accessline 244
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> - Network accessline 245
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> <br / - Network accessline 246
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> - Network accessline 250
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh - Network accessline 251
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh previe - Network accessline 252
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh preview" /></a> - Network accessline 258
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></ - Network accessline 259
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></a> <b - Network accessline 260
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></a> - Network accessline 264
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-p - Network accessline 265
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-pre-ai - Network accessline 266
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-pre-ai preview" /></a> - Network accessline 279
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" / - Network accessline 280
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" /></a> - Network accessline 281
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" /></a> - Network accessline 285
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-t - Network accessline 286
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-theory - Network accessline 287
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-theory preview" /></a> - Network accessline 293
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="r - Network accessline 294
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="resn-s - Network accessline 295
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="resn-storytelling preview" /></a> - Network accessline 316
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> - Network accessline 317
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> <br / - Network accessline 318
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> - Network accessline 322
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-busines - Network accessline 323
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek- - Network accessline 324
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp" alt="bloomberg-busi - Network accessline 330
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" - Network accessline 331
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" alt=" - Network accessline 332
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" alt="balenciaga-post-2017 preview" /> - Network accessline 353
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="m - Network accessline 354
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="mailch - Network accessline 355
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="mailchimp-freddie preview" /></a> - Network accessline 359
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-pre - Network accessline 360
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-press pre - Network accessline 361
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-press preview" /></a> - Network accessline 367
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" - Network accessline 368
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" alt=" - Network accessline 369
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" alt="headspace-meditation preview" /> - Network accessline 390
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y - Network accessline 391
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y2k-re - Network accessline 392
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y2k-retrofuturism preview" /></a> - Network accessline 396
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt - Network accessline 397
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt="mid- - Network accessline 398
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt="mid-century-modern preview" /></a> - Network accessline 409
cd demo/web-design-engineer-demo npm install && npm run dev # http://localhost:5181/ - Network accessline 410
npm install && npm run dev # http://localhost:5181/ - Network accessline 454
This skill is inspired by the system prompt of [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs), Anthropic's visual design product launched in April 2026. Claude Design's system prompt (~420 lines) encodes a soph
skills/web-design-engineer/README.zh-CN.md
- Network accessline 13
这是一个面向 AI 编程代理(如 [Claude Code](https://docs.anthropic.com/en/docs/claude-code)、[Cursor](https://cursor.com) 以及其他支持 `SKILL.md` 格式的工具)的可复用 **Skill**(结构化系统提示词),能显著提升 AI 生成的 HTML/CSS/JavaScript 产物的设计品质。 - Network accessline 15
它将 [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs) 系统提示词中的核心设计理念提炼为一个开放、可移植、可自定义的技能文件,可以直接放进任何项目中使用。 - Network accessline 142
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview - Network accessline 143
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview" />< - Network accessline 144
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/apple-hig.webp" alt="apple-hig preview" /></a> - Network accessline 148
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji - Network accessline 149
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji-kenya - Network accessline 150
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/muji-kenya-hara.webp" alt="muji-kenya-hara preview" /></a> - Network accessline 156
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> - Network accessline 157
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> <br /><s - Network accessline 158
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/aesop.webp" alt="aesop preview" /></a> - Network accessline 162
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt=" - Network accessline 163
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt="dieter - Network accessline 164
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/dieter-rams-braun.webp" alt="dieter-rams-braun preview" /></a> - Network accessline 170
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="mon - Network accessline 171
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="monocle- - Network accessline 172
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/monocle-magazine.webp" alt="monocle-magazine preview" /></a> - Network accessline 193
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview - Network accessline 194
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview" />< - Network accessline 195
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/pentagram.webp" alt="pentagram preview" /></a> - Network accessline 199
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helveti - Network accessline 200
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.web - Network accessline 201
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vignelli-swiss-helvetica.webp" alt="vignelli-swiss-helvetica - Network accessline 207
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt= - Network accessline 208
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt="bloo - Network accessline 209
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-terminal.webp" alt="bloomberg-terminal preview" /></a> - Network accessline 213
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-da - Network accessline 214
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-dataink - Network accessline 215
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/tufte-dataink.webp" alt="tufte-dataink preview" /></a> - Network accessline 221
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-d - Network accessline 222
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-daily - Network accessline 223
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/nyt-the-daily.webp" alt="nyt-the-daily preview" /></a> - Network accessline 244
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> - Network accessline 245
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> <br / - Network accessline 246
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/linear.webp" alt="linear preview" /></a> - Network accessline 250
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh - Network accessline 251
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh previe - Network accessline 252
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/vercel-mesh.webp" alt="vercel-mesh preview" /></a> - Network accessline 258
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></ - Network accessline 259
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></a> <b - Network accessline 260
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/raycast.webp" alt="raycast preview" /></a> - Network accessline 264
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-p - Network accessline 265
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-pre-ai - Network accessline 266
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/notion-pre-ai.webp" alt="notion-pre-ai preview" /></a> - Network accessline 279
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" / - Network accessline 280
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" /></a> - Network accessline 281
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/field-io.webp" alt="field-io preview" /></a> - Network accessline 285
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-t - Network accessline 286
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-theory - Network accessline 287
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/active-theory.webp" alt="active-theory preview" /></a> - Network accessline 293
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="r - Network accessline 294
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="resn-s - Network accessline 295
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/resn-storytelling.webp" alt="resn-storytelling preview" /></a> - Network accessline 316
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> - Network accessline 317
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> <br / - Network accessline 318
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/are-na.webp" alt="are-na preview" /></a> - Network accessline 322
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-busines - Network accessline 323
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek- - Network accessline 324
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/bloomberg-businessweek-turley.webp" alt="bloomberg-busi - Network accessline 330
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" - Network accessline 331
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" alt=" - Network accessline 332
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/balenciaga-post-2017.webp" alt="balenciaga-post-2017 preview" /> - Network accessline 353
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="m - Network accessline 354
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="mailch - Network accessline 355
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mailchimp-freddie.webp" alt="mailchimp-freddie preview" /></a> - Network accessline 359
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-pre - Network accessline 360
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-press pre - Network accessline 361
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/stripe-press.webp" alt="stripe-press preview" /></a> - Network accessline 367
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" - Network accessline 368
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" alt=" - Network accessline 369
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/headspace-meditation.webp" alt="headspace-meditation preview" /> - Network accessline 390
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y - Network accessline 391
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y2k-re - Network accessline 392
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/y2k-retrofuturism.webp" alt="y2k-retrofuturism preview" /></a> - Network accessline 396
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt - Network accessline 397
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt="mid- - Network accessline 398
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-design/mid-century-modern.webp" alt="mid-century-modern preview" /></a> - Network accessline 409
cd demo/web-design-engineer-demo npm install && npm run dev # http://localhost:5181/ - Network accessline 410
npm install && npm run dev # http://localhost:5181/ - Network accessline 454
此 Skill 的灵感来自 [Claude Design](https://www.anthropic.com/news/claude-design-anthropic-labs) 的系统提示词。Claude Design 是 Anthropic 于 2026 年 4 月推出的视觉设计产品。其系统提示词(约 420 行)编码了一套精密的设计原则、反模式和工作流约束,使其输出保持稳定的高品质。
skills/web-design-engineer/SKILL.md
- Network accessline 382
2. **Simple React state + setTimeout / requestAnimationFrame** — simple frame-by-frame or event-driven animations 3. **Custom `useTime` + `Easing` + `interpolate`** (full implementation in references) — timeline-driven video/demo scenes: sc - Network accessline 384
4. **Fallback: Popmotion** (`https://unpkg.com/popmotion@11.0.5/dist/popmotion.min.js`) — only if the above three layers genuinely can't cover the use case - Network accessline 427
| When clearly needed | Library | |---|---| | Charts (line / bar / pie) | Chart.js (`https://cdn.jsdelivr.net/npm/chart.js`) | - Network accessline 428
|---|---| | Charts (line / bar / pie) | Chart.js (`https://cdn.jsdelivr.net/npm/chart.js`) | | Complex custom visualizations | D3 v7 (`https://d3js.org/d3.v7.min.js`) | - Network accessline 429
| Charts (line / bar / pie) | Chart.js (`https://cdn.jsdelivr.net/npm/chart.js`) | - Network accessline 430
| Complex custom visualizations | D3 v7 (`https://d3js.org/d3.v7.min.js`) |
skills/web-design-engineer/manifest.json
- Network accessline 4
"category": "Design / Frontend", "description": "Build and redesign high-quality visual Web artifacts using HTML/CSS/JavaScript/React with calibrated design dials, contextual anti-pattern checks, preservation-aware redesigns, reusable blo - Network accessline 5
"description": "Build and redesign high-quality visual Web artifacts using HTML/CSS/JavaScript/React with calibrated design dials, contextual anti-pattern checks, preservation-aware redesigns, reusable blocks, and an executable browser acce - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/web-design-engineer",
skills/web-design-engineer/references/advanced-patterns.md
- Network accessline 174
const BrowserFrame = ({ children, url = "https://example.com", title = "Page" }) => ( - Network accessline 418
<canvas id="myChart" width="800" height="400"></canvas> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> - Network accessline 419
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> - Network accessline 497
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap" rel="stylesheet">
skills/web-video-presentation/README.md
- Network accessline 89
│ │ ├── minimax.sh # default — uses mmx-cli │ │ └── openai.sh # built-in — uses OPENAI_API_KEY via curl │ └── src/ - Network accessline 90
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Network accessline 133
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight- - Network accessline 134
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight-press - Network accessline 135
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight-press preview" /></a> - Network accessline 139
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-bot - Network accessline 140
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-botanical - Network accessline 141
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-botanical preview" /></a> - Network accessline 147
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden - Network accessline 148
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden previ - Network accessline 149
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden preview" /></a> - Network accessline 153
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint preview" - Network accessline 154
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint preview" /></a - Network accessline 155
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint preview" /></a> - Network accessline 161
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal- - Network accessline 162
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal-green - Network accessline 163
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal-green preview" /></a> - Network accessline 167
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber previ - Network accessline 168
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber preview" /> - Network accessline 169
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber preview" /></a> - Network accessline 175
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal pre - Network accessline 176
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal preview" - Network accessline 177
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal preview" /></a> - Network accessline 181
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="crea - Network accessline 182
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="creative-v - Network accessline 183
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="creative-voltage preview" /></a> - Network accessline 196
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press pre - Network accessline 197
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press preview" - Network accessline 198
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press preview" /></a> - Network accessline 202
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom preview" /> - Network accessline 203
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom preview" /></a> < - Network accessline 204
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom preview" /></a> - Network accessline 210
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monoc - Network accessline 211
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monochrome - Network accessline 212
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monochrome-print preview" /></a> - Network accessline 216
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vi - Network accessline 217
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vintage- - Network accessline 218
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vintage-editorial preview" /></a> - Network accessline 224
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine pre - Network accessline 225
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine preview" - Network accessline 226
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine preview" /></a> - Network accessline 230
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream - Network accessline 231
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream previ - Network accessline 232
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream preview" /></a> - Network accessline 238
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote - Network accessline 239
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote previ - Network accessline 240
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote preview" /></a> - Network accessline 244
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electr - Network accessline 245
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electric-stu - Network accessline 246
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electric-studio preview" /></a> - Network accessline 252
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold - Network accessline 253
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold previ - Network accessline 254
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold preview" /></a> - Network accessline 258
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb preview" - Network accessline 259
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb preview" /></a - Network accessline 260
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb preview" /></a> - Network accessline 266
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune preview" /></a> - Network accessline 267
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune preview" /></a> <br /><strong - Network accessline 268
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune preview" /></a> - Network accessline 272
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indi - Network accessline 273
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indigo-por - Network accessline 274
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indigo-porcelain preview" /></a> - Network accessline 280
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink previe - Network accessline 281
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink preview" /> - Network accessline 282
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink preview" /></a> - Network accessline 286
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper pr - Network accessline 287
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper preview" - Network accessline 288
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper preview" /></a> - Network accessline 294
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas - Network accessline 295
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas previ - Network accessline 296
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas preview" /></a>
skills/web-video-presentation/README.zh-CN.md
- Network accessline 88
│ │ ├── README.md # 三函数契约 + ElevenLabs / edge-tts / Azure / Google / say 的现成片段 │ │ ├── minimax.sh # 默认 provider(mmx-cli) │ │ └── openai.sh # 内置:OpenAI TTS(curl + OPENAI_API_KEY) - Network accessline 89
│ │ ├── minimax.sh # 默认 provider(mmx-cli) │ │ └── openai.sh # 内置:OpenAI TTS(curl + OPENAI_API_KEY) │ └── src/ - Network accessline 90
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Network accessline 133
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight- - Network accessline 134
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight-press - Network accessline 135
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/midnight-press.webp" alt="midnight-press 预览" /></a> - Network accessline 139
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-bot - Network accessline 140
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-botanical - Network accessline 141
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dark-botanical.webp" alt="dark-botanical 预览" /></a> - Network accessline 147
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden - Network accessline 148
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden 预览" / - Network accessline 149
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/chalk-garden.webp" alt="chalk-garden 预览" /></a> - Network accessline 153
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint 预览" /></ - Network accessline 154
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint 预览" /></a> <br - Network accessline 155
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/blueprint.webp" alt="blueprint 预览" /></a> - Network accessline 161
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal- - Network accessline 162
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal-green - Network accessline 163
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/terminal-green.webp" alt="terminal-green 预览" /></a> - Network accessline 167
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber 预览" / - Network accessline 168
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber 预览" /></a> - Network accessline 169
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/neon-cyber.webp" alt="neon-cyber 预览" /></a> - Network accessline 175
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal 预览" - Network accessline 176
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal 预览" /></ - Network accessline 177
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bold-signal.webp" alt="bold-signal 预览" /></a> - Network accessline 181
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="crea - Network accessline 182
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="creative-v - Network accessline 183
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/creative-voltage.webp" alt="creative-voltage 预览" /></a> - Network accessline 196
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press 预览" - Network accessline 197
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press 预览" /></ - Network accessline 198
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/paper-press.webp" alt="paper-press 预览" /></a> - Network accessline 202
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom 预览" /></a> - Network accessline 203
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom 预览" /></a> <br /> - Network accessline 204
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/newsroom.webp" alt="newsroom 预览" /></a> - Network accessline 210
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monoc - Network accessline 211
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monochrome - Network accessline 212
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/monochrome-print.webp" alt="monochrome-print 预览" /></a> - Network accessline 216
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vi - Network accessline 217
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vintage- - Network accessline 218
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/vintage-editorial.webp" alt="vintage-editorial 预览" /></a> - Network accessline 224
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine 预览" - Network accessline 225
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine 预览" /></ - Network accessline 226
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/sunset-zine.webp" alt="sunset-zine 预览" /></a> - Network accessline 230
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream - Network accessline 231
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream 预览" / - Network accessline 232
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/pastel-dream.webp" alt="pastel-dream 预览" /></a> - Network accessline 238
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote - Network accessline 239
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote 预览" / - Network accessline 240
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/warm-keynote.webp" alt="warm-keynote 预览" /></a> - Network accessline 244
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electr - Network accessline 245
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electric-stu - Network accessline 246
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/electric-studio.webp" alt="electric-studio 预览" /></a> - Network accessline 252
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold - Network accessline 253
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold 预览" / - Network accessline 254
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/bauhaus-bold.webp" alt="bauhaus-bold 预览" /></a> - Network accessline 258
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb 预览" /></ - Network accessline 259
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb 预览" /></a> <br - Network accessline 260
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/swiss-ikb.webp" alt="swiss-ikb 预览" /></a> - Network accessline 266
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune 预览" /></a> - Network accessline 267
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune 预览" /></a> <br /><strong><cod - Network accessline 268
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/dune.webp" alt="dune 预览" /></a> - Network accessline 272
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indi - Network accessline 273
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indigo-por - Network accessline 274
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/indigo-porcelain.webp" alt="indigo-porcelain 预览" /></a> - Network accessline 280
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink 预览" /> - Network accessline 281
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink 预览" /></a> - Network accessline 282
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/forest-ink.webp" alt="forest-ink 预览" /></a> - Network accessline 286
</td> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper 预览 - Network accessline 287
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper 预览" /></ - Network accessline 288
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/kraft-paper.webp" alt="kraft-paper 预览" /></a> - Network accessline 294
<tr> <td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas - Network accessline 295
<td align="center" width="50%"> <a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas 预览" / - Network accessline 296
<a href="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp"><img src="https://cdn.jsdelivr.net/gh/ConardLi/assets@main/imgs/web-video/split-canvas.webp" alt="split-canvas 预览" /></a>
skills/web-video-presentation/SKILL.md
- Network accessline 67
│ ├── README.md # 三函数契约 + 5 段现成代码片段(11labs / edge-tts / say / azure / gcloud) │ ├── minimax.sh # 默认 provider,用 mmx-cli │ └── openai.sh # 内置 OpenAI TTS(curl + OPENAI_API_KEY) - Network accessline 68
│ ├── minimax.sh # 默认 provider,用 mmx-cli │ └── openai.sh # 内置 OpenAI TTS(curl + OPENAI_API_KEY) ├── audio-segments.json # extract 产出(合成前 review) - Network accessline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Dangerous shell operationline 252
rm -rf presentation/src/chapters/01-example - Access to secretsline 366
[Credential-related source omitted] - Access to secretsline 385
[Credential-related source omitted]
skills/web-video-presentation/manifest.json
- Network accessline 4
"category": "Web Video / Presentation", "description": "Turn scripts, articles, lessons, product demos, and talks into click-driven 16:9 web presentations that can be screen-recorded as cinematic videos. Ships a Vite + React + TypeScript - Network accessline 5
"description": "Turn scripts, articles, lessons, product demos, and talks into click-driven 16:9 web presentations that can be screen-recorded as cinematic videos. Ships a Vite + React + TypeScript scaffold, a (chapter, step) cursor model, - Network accessline 6
"homepage": "https://github.com/ConardLi/garden-skills/tree/main/skills/web-video-presentation",
skills/web-video-presentation/references/AUDIO.md
- Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Network accessline 120
|---|---|---| | `OPENAI_API_KEY` | —— **必须** | API key | | `OPENAI_BASE_URL` | `https://api.openai.com/v1` | 切代理 / Azure-OpenAI | - Network accessline 121
[Credential-related source omitted] - Access to secretsline 121
[Credential-related source omitted] - Network accessline 122
| `OPENAI_BASE_URL` | `https://api.openai.com/v1` | 切代理 / Azure-OpenAI | - Network accessline 126
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Network accessline 165
2. 帮你装 MiniMax CLI(默认 provider,中文音色更稳) npm install -g mmx-cli && mmx auth login --api-key sk-xxxxx API key 在 https://platform.minimaxi.com 获取 - Network accessline 167
API key 在 https://platform.minimaxi.com 获取 - Access to secretsline 171
[Credential-related source omitted] - Network accessline 255
[Credential-related source omitted] - Access to secretsline 255
[Credential-related source omitted] - Network accessline 256
| 全部段 FAILED + key 是对的 | 多半 model / voice 名字错。`--voice=alloy` 试默认值;`OPENAI_TTS_MODEL=tts-1` 试默认模型;用 `bash -x scripts/synthesize-audio.sh` 看请求体 | | 走代理 / 走 Azure-OpenAI | `export OPENAI_BASE_URL=https://your-proxy/v1` | | HD 太慢 | 改成 `OPENAI_ - Network accessline 257
| 走代理 / 走 Azure-OpenAI | `export OPENAI_BASE_URL=https://your-proxy/v1` | - Access to secretsline 265
[Credential-related source omitted] - Network accessline 273
- Provider 契约 + 现成片段:[`scripts/tts-providers/README.md`](../templates/scripts/tts-providers/README.md) - mmx-cli 仓库:<https://github.com/MiniMax-AI/cli> - Network accessline 274
- mmx-cli 仓库:<https://github.com/MiniMax-AI/cli> - Network accessline 275
- mmx 官方文档:<https://platform.minimaxi.com/docs/token-plan/minimax-cli>
skills/web-video-presentation/references/EXAMPLES/hook-chapter/chapter.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/references/EXAMPLES/list-reveal/chapter.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/references/RECORDING.md
skills/web-video-presentation/scripts/scaffold.sh
- Executable scriptline 1
#!/usr/bin/env bash - Dangerous shell operationline 105
rm -f \ - Network accessline 193
1. cd $TARGET 2. npm run dev # 默认 http://localhost:5174(被占会自动换端口) - Network accessline 194
2. npm run dev # 默认 http://localhost:5174(被占会自动换端口) - Network accessline 213
• 手动模式:直接打开 http://localhost:5174(点击 / 方向键推进)
skills/web-video-presentation/templates/scripts/extract-narrations.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/scripts/synthesize-audio.sh
- Executable scriptline 1
#!/usr/bin/env bash
skills/web-video-presentation/templates/scripts/tts-providers/README.md
- Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 91
[Credential-related source omitted] - Network accessline 96
**已内置** —— 直接看 [`openai.sh`](./openai.sh)。 该文件也是写 HTTP-based provider 的**官方参考实现**:jq 构造 JSON payload、curl `-fsS` 提交、可选 base URL(接 Azure-OpenAI / 代理)、 - Network accessline 97
该文件也是写 HTTP-based provider 的**官方参考实现**:jq 构造 JSON payload、curl `-fsS` 提交、可选 base URL(接 Azure-OpenAI / 代理)、 可选 model env var、空音色 fallback 到默认值。新接 REST API 的 - Network accessline 98
payload、curl `-fsS` 提交、可选 base URL(接 Azure-OpenAI / 代理)、 - Access to secretsline 105
[Credential-related source omitted] - Network accessline 114
# Docs: https://elevenlabs.io/docs/api-reference/text-to-speech - Access to secretsline 115
[Credential-related source omitted] - Network accessline 119
tts_check() { command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Network accessline 120
command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Access to secretsline 122
[Credential-related source omitted] - Network accessline 126
[Credential-related source omitted] - Network accessline 127
[Credential-related source omitted] - Network accessline 128
[Credential-related source omitted] - Access to secretsline 128
[Credential-related source omitted] - Network accessline 138
[Credential-related source omitted] - Access to secretsline 138
[Credential-related source omitted] - Network accessline 139
"https://api.elevenlabs.io/v1/text-to-speech/$voice" \ - Access to secretsline 140
[Credential-related source omitted] - Network accessline 149
# Docs: https://github.com/rany2/edge-tts - Dangerous shell operationline 203
rm -f "$tmp" - Network accessline 211
# Docs: https://learn.microsoft.com/azure/ai-services/speech-service/rest-text-to-speech - Access to secretsline 212
[Credential-related source omitted] - Network accessline 215
tts_check() { command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Network accessline 216
command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Access to secretsline 217
[Credential-related source omitted] - Access to secretsline 224
[Credential-related source omitted] - Network accessline 234
[Credential-related source omitted] - Access to secretsline 234
[Credential-related source omitted] - Network accessline 235
"https://${AZURE_SPEECH_REGION}.tts.speech.microsoft.com/cognitiveservices/v1" \ - Access to secretsline 236
[Credential-related source omitted] - Network accessline 247
# Docs: https://cloud.google.com/text-to-speech/docs/reference/rest - Network accessline 252
tts_check() { command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Network accessline 253
command -v curl >/dev/null || { echo "✗ curl not found" >&2; return 1; } - Network accessline 264
cat <<'EOF' >&2 Install gcloud SDK and authenticate: https://cloud.google.com/sdk/docs/install - Network accessline 265
Install gcloud SDK and authenticate: https://cloud.google.com/sdk/docs/install gcloud auth application-default login - Network accessline 266
https://cloud.google.com/sdk/docs/install - Network accessline 282
curl -fsS -X POST https://texttospeech.googleapis.com/v1/text:synthesize \
skills/web-video-presentation/templates/scripts/tts-providers/minimax.sh
- Executable scriptline 1
Executable file - Network accessline 2
# MiniMax provider — uses the official mmx-cli. # # Docs: https://platform.minimaxi.com/docs/token-plan/minimax-cli - Network accessline 3
# # Docs: https://platform.minimaxi.com/docs/token-plan/minimax-cli # Repo: https://github.com/MiniMax-AI/cli - Network accessline 4
# Docs: https://platform.minimaxi.com/docs/token-plan/minimax-cli - Network accessline 5
# Repo: https://github.com/MiniMax-AI/cli - Network accessline 26
Install: npm install -g mmx-cli Login: mmx auth login --api-key sk-xxxxx (get a key at https://platform.minimaxi.com) - Network accessline 28
(get a key at https://platform.minimaxi.com)
skills/web-video-presentation/templates/scripts/tts-providers/openai.sh
- Executable scriptline 1
Executable file - Network accessline 2
# OpenAI TTS provider — uses the Audio Speech REST API via curl. # # Docs: https://platform.openai.com/docs/api-reference/audio/createSpeech - Network accessline 3
[Credential-related source omitted] - Network accessline 4
# Docs: https://platform.openai.com/docs/api-reference/audio/createSpeech - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
# OPENAI_BASE_URL=https://api.openai.com/v1 optional (for proxies / Azure-OpenAI) - Access to secretsline 11
[Credential-related source omitted] - Network accessline 15
tts_check() { if ! command -v curl >/dev/null; then - Network accessline 16
if ! command -v curl >/dev/null; then - Network accessline 17
echo "✗ curl not found in PATH." >&2 - Access to secretsline 24
[Credential-related source omitted] - Access to secretsline 25
[Credential-related source omitted] - Network accessline 34
[Credential-related source omitted] - Access to secretsline 34
[Credential-related source omitted] - Network accessline 35
(get one at https://platform.openai.com/api-keys) - Network accessline 36
Optional: export OPENAI_BASE_URL=https://your-proxy/v1 - Network accessline 39
Install deps (only if missing): curl — brew install curl / apt-get install curl - Network accessline 40
curl — brew install curl / apt-get install curl - Network accessline 53
local base="${OPENAI_BASE_URL:-https://api.openai.com/v1}" - Network accessline 63
# On HTTP error curl with -f exits non-zero, runner marks FAILED. - Network accessline 66
[Credential-related source omitted] - Access to secretsline 66
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted]
skills/web-video-presentation/templates/src/App.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/chapters/01-example/Example.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/chapters/01-example/narrations.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/components/AutoStartGate.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/components/AutoToggle.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/components/MaskReveal.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/components/ProgressBar.tsx
skills/web-video-presentation/templates/src/components/Stage.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/hooks/useAudioPlayer.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/hooks/useAutoMode.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/hooks/useStageScale.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/hooks/useStepper.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/main.tsx
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/registry/chapters.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/registry/types.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/templates/src/styles/fonts.css
- Network accessline 6
* here and to the THEMES.md "fonts loaded by default" list. * ───────────────────────────────────────────────────────────────────── */ @import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap"); - Network accessline 7
* ───────────────────────────────────────────────────────────────────── */ @import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Playfair+Displa - Network accessline 8
@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap"); - Network accessline 9
@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap"); - Network accessline 10
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,600&display=swap"); - Network accessline 11
@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,400;0,500;0,700;1,400;1,500&display=swap"); - Network accessline 12
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;700;900&display=swap"); - Network accessline 13
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&display=swap"); - Network accessline 14
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap"); - Network accessline 15
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700;900&display=swap"); - Network accessline 16
@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap"); - Network accessline 17
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap"); - Network accessline 18
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap"); - Network accessline 19
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;1,400&display=swap"); - Network accessline 20
@import url("https://fonts.googleapis.com/css2?family=Patrick+Hand&display=swap");
skills/web-video-presentation/templates/vite.config.ts
- Executable scriptline 1
Executable file
skills/web-video-presentation/themes/chalk-garden/tokens.css
- Network accessline 56
/* ─── decoration: film grain + vignette ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' num - Network accessline 57
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='100%25' height= - Network accessline 58
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/></filter><rect width='100%25' height='100%25' filter='url(%2
skills/web-video-presentation/themes/forest-ink/tokens.css
- Network accessline 62
/* ─── decoration: faint warm paper grain (National Geographic feel) ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoi - Network accessline 63
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 - Network accessline 64
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.50 0
skills/web-video-presentation/themes/kraft-paper/tokens.css
- Network accessline 61
/* ─── decoration: SIGNATURE — coarse warm kraft grain ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFreque - Network accessline 62
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' seed='7'/><feColorMatrix values='0 0 0 - Network accessline 63
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' seed='7'/><feColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.32 0
skills/web-video-presentation/themes/newsroom/tokens.css
- Network accessline 57
/* ─── decoration: subtler paper grain (less hairy than paper-press) ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoi - Network accessline 58
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='8'/><feColorMatrix values='0 0 0 - Network accessline 59
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='8'/><feColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.45 0 0
skills/web-video-presentation/themes/paper-press/tokens.css
- Network accessline 59
/* ─── decoration: paper grain (multiply on the stage) ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFreque - Network accessline 60
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' seed='4'/><feColorMatrix values='0 0 0 - Network accessline 61
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' seed='4'/><feColorMatrix values='0 0 0 0 0.6 0 0 0 0 0.55 0 0
skills/web-video-presentation/themes/pastel-dream/tokens.css
- Network accessline 61
/* ─── decoration: SIGNATURE — pastel pill ribbon at right edge ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1920' height='1080' preserveAspectRatio='xMaxYMid slice'><g><rect x= - Network accessline 62
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1920' height='1080' preserveAspectRatio='xMaxYMid slice'><g><rect x='1820' y='180' width='44' height='160' rx='22' fill='%23f0b4d4' opacity=' - Network accessline 63
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1920' height='1080' preserveAspectRatio='xMaxYMid slice'><g><rect x='1820' y='180' width='44' height='160' rx='22' fill='%23f0b4d4' opacity='0.55'/><rect x='1820' y
skills/web-video-presentation/themes/sunset-zine/tokens.css
- Network accessline 59
/* ─── decoration: coarse riso paper grain ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.6' nu - Network accessline 60
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3' seed='12'/><feColorMatrix values='0 0 0 - Network accessline 61
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.6' numOctaves='3' seed='12'/><feColorMatrix values='0 0 0 0 0.65 0 0 0 0 0.50 0
skills/web-video-presentation/themes/vintage-editorial/tokens.css
- Network accessline 60
/* ─── decoration: SIGNATURE — faint geometric dot + ring overlay ─── */ --surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><g fill='none' stroke='%23a89878' stroke-width=' - Network accessline 61
--surface-pattern: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><g fill='none' stroke='%23a89878' stroke-width='1' opacity='0.16'><circle cx='80' cy='90' r='52'/><circle cx='340' cy='250' - Network accessline 62
url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='400' height='400'><g fill='none' stroke='%23a89878' stroke-width='1' opacity='0.16'><circle cx='80' cy='90' r='52'/><circle cx='340' cy='250' r='78'/><circle cx='18
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 5 facts
- Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionbeautiful-article/assets/scaffold-template/article/Article.tsx:53High confidence
- Contacts generativelanguage.googleapis.com, which SKILL.md, the README and the plugin manifest do not mentionmotion-showreel/scripts/lib/narration-providers.mjs:63High confidence
- Contacts api.minimax.io, which SKILL.md, the README and the plugin manifest do not mentionmotion-showreel/scripts/lib/narration-providers.mjs:93High confidence
- Contacts tonejs.github.io, which SKILL.md, the README and the plugin manifest do not mentionmotion-showreel/scripts/lib/tone-render.mjs:86High confidence
- Contacts nodejs.org, which SKILL.md, the README and the plugin manifest do not mentionmotion-showreel/scripts/setup.sh:9High confidence
Signal confidence: 495 facts
- Network access in prose of documentationbeautiful-article/README.md:11Low confidence
- Network access in prose of documentationbeautiful-article/README.md:13Low confidence
- Network access in prose of documentationbeautiful-article/README.md:23Low confidence
- Network access in prose of documentationbeautiful-article/README.md:25Low confidence
- Network access in prose of documentationbeautiful-article/README.md:31Low confidence
- Network access in prose of documentationbeautiful-article/README.md:33Low confidence
- Network access in prose of documentationbeautiful-article/README.md:36Low confidence
- Network access in prose of documentationbeautiful-article/README.md:37Low confidence
- Network access in prose of documentationbeautiful-article/README.md:38Low confidence
- Network access in prose of documentationbeautiful-article/README.md:39Low confidence
- Network access in prose of documentationbeautiful-article/README.md:44Low confidence
- Network access in prose of documentationbeautiful-article/README.md:45Low confidence
- Network access in prose of documentationbeautiful-article/README.md:46Low confidence
- Network access in prose of documentationbeautiful-article/README.md:47Low confidence
- Network access in prose of documentationbeautiful-article/README.md:54Low confidence
- Network access in prose of documentationbeautiful-article/README.md:55Low confidence
- Network access in prose of documentationbeautiful-article/README.md:56Low confidence
- Network access in prose of documentationbeautiful-article/README.md:57Low confidence
- Network access in prose of documentationbeautiful-article/README.md:62Low confidence
- Network access in prose of documentationbeautiful-article/README.md:63Low confidence
- Network access in prose of documentationbeautiful-article/README.md:64Low confidence
- Network access in prose of documentationbeautiful-article/README.md:65Low confidence
- Network access in prose of documentationbeautiful-article/README.md:72Low confidence
- Network access in prose of documentationbeautiful-article/README.md:73Low confidence
- Network access in prose of documentationbeautiful-article/README.md:74Low confidence
- Network access in prose of documentationbeautiful-article/README.md:75Low confidence
- Network access in prose of documentationbeautiful-article/README.md:80Low confidence
- Network access in prose of documentationbeautiful-article/README.md:81Low confidence
- Network access in prose of documentationbeautiful-article/README.md:82Low confidence
- Network access in prose of documentationbeautiful-article/README.md:83Low confidence
- Network access in prose of documentationbeautiful-article/README.md:90Low confidence
- Network access in prose of documentationbeautiful-article/README.md:91Low confidence
- Network access in prose of documentationbeautiful-article/README.md:92Low confidence
- Network access in prose of documentationbeautiful-article/README.md:93Low confidence
- Network access in prose of documentationbeautiful-article/README.md:98Low confidence
- Network access in prose of documentationbeautiful-article/README.md:99Low confidence
- Network access in prose of documentationbeautiful-article/README.md:100Low confidence
- Network access in prose of documentationbeautiful-article/README.md:101Low confidence
- Network access in prose of documentationbeautiful-article/README.md:112Low confidence
- Network access in prose of documentationbeautiful-article/README.md:114Low confidence
- Network access in prose of documentationbeautiful-article/README.md:119Low confidence
- Network access in prose of documentationbeautiful-article/README.md:120Low confidence
- Network access in prose of documentationbeautiful-article/README.md:121Low confidence
- Network access in prose of documentationbeautiful-article/README.md:122Low confidence
- Network access in prose of documentationbeautiful-article/README.md:127Low confidence
- Network access in prose of documentationbeautiful-article/README.md:128Low confidence
- Network access in prose of documentationbeautiful-article/README.md:129Low confidence
- Network access in prose of documentationbeautiful-article/README.md:130Low confidence
- Network access in prose of documentationbeautiful-article/README.md:135Low confidence
- Network access in prose of documentationbeautiful-article/README.md:136Low confidence
and 445 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/beautiful-article/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/beautiful-article/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/beautiful-article/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/beautiful-article/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/beautiful-article/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/conardli-garden-skills/)