#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

Compare on GitHub

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

Compare on GitHub

skills/kb-retriever/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

2b9a89340b70 → 2b9a89340b70

Compare on GitHub

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

Compare on GitHub

skills/web-design-engineer/SKILL.md

Week of Oct 26, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

2b9a89340b70 → 2b9a89340b70

Compare on GitHub

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

Compare on GitHub

View on GitHubAdd to my skills

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>/
14.5kGitHub stars
1kstars in 7 days
6skills in this repository
13commits in 30 days

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

Aug 2, 2026Nov 6, 202614,462

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

9,021 tokens

When the skill is activated

Reference documents

57,384 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 背景原则
  2. 边界(先判断要不要进这个 Skill)
  3. 工作流总览
  4. 硬性质检协议(贯穿整个 Skill)
  5. 各阶段文件读取指南(渐进加载,别一次全读)
  6. Phase 0 —— Intake
  7. Phase 1 —— Source → Markdown
  8. Phase 2 —— Editorial Planning
  9. Phase 3 —— Plan Checkpoint(★硬节点 · Checkpoint 1,必须停)
  10. Phase 4 —— First Spread(文章版"第一章验收")
  11. Checkpoint 2 · First Spread(★硬节点,必须停)
  12. Phase 5 —— Full Article Build
  13. Phase 6 —— Final Review(三视角终审)
  14. Phase 7 —— Repair(最小切片)
  15. Checkpoint 3 · Final(★交付确认)
  16. Phase 8 —— Delivery
  17. 默认策略
  18. 成功标准
  19. 相关资源(按"何时读"标注)

Scripts executed separately

  • assets/scaffold-template/article/Article.tsx
  • assets/scaffold-template/article/Cover.tsx
  • assets/scaffold-template/article/main.tsx
  • assets/scaffold-template/article/sections/01-opening.tsx
  • assets/scaffold-template/package.json
  • assets/scaffold-template/vite.config.ts
  • scripts/html-to-pdf.sh
  • scripts/scaffold.sh
  • scripts/source-to-markdown-markitdown.py
  • scripts/source-to-markdown.py

Files

  • ../../.claude-plugin/marketplace.jsonasset2,299 bytes
  • README.mddoc24,181 bytes
  • README.zh-CN.mddoc23,731 bytes
  • SKILL.mdcore31,482 bytes
  • SKILL.mdcore31,482 bytes
  • SKILL.mdcore31,482 bytes
  • SKILL.mdcore31,482 bytes
  • SKILL.mdcore31,482 bytes
  • assets/scaffold-template/.npmrcasset37 bytes
  • assets/scaffold-template/article/Article.tsxruns2,811 bytes
  • assets/scaffold-template/article/Cover.tsxruns7,660 bytes
  • assets/scaffold-template/article/main.tsxruns1,173 bytes
  • assets/scaffold-template/article/sections/01-opening.tsxruns1,314 bytes
  • assets/scaffold-template/index.htmlasset755 bytes
  • assets/scaffold-template/package.jsonruns783 bytes
  • assets/scaffold-template/tsconfig.jsonasset512 bytes
  • assets/scaffold-template/tsconfig.node.jsonasset230 bytes
  • assets/scaffold-template/vite.config.tsruns614 bytes
  • manifest.jsonasset733 bytes
  • references/article-types.mddoc3,767 bytes
  • references/article-types/briefing.mddoc2,177 bytes
  • references/article-types/dialogue.mddoc2,181 bytes
  • references/article-types/essay.mddoc2,129 bytes
  • references/article-types/explainer.mddoc2,388 bytes
  • references/article-types/full-report.mddoc2,422 bytes
  • references/article-types/interactive-explainer.mddoc5,042 bytes
  • references/article-types/longform.mddoc2,325 bytes
  • references/article-types/review.mddoc2,342 bytes
  • references/article-types/tutorial.mddoc2,268 bytes
  • references/article-types/visual-essay.mddoc2,504 bytes
  • references/asset-policy.mddoc3,833 bytes
  • references/component-policy.mddoc5,543 bytes
  • references/cover.mddoc11,868 bytes
  • references/harness.mddoc2,123 bytes
  • references/html-output.mddoc1,988 bytes
  • references/information-density.mddoc3,238 bytes
  • references/layout.mddoc2,003 bytes
  • references/pdf-output.mddoc10,041 bytes
  • references/plan-template.mddoc5,851 bytes
  • references/raw-policy.mddoc4,485 bytes
  • references/repair-policy.mddoc1,236 bytes
  • references/review-checklist.mddoc7,312 bytes
  • references/scaffold.mddoc3,602 bytes
  • references/section-build.mddoc5,405 bytes
  • references/source-to-markdown.mddoc6,401 bytes
  • references/theme-selection.mddoc2,301 bytes
  • scripts/html-to-pdf.shruns6,377 bytes
  • scripts/pdf-print-overrides.cssasset6,457 bytes
  • scripts/scaffold.shruns7,516 bytes
  • scripts/source-to-markdown-markitdown.pyruns3,308 bytes
  • scripts/source-to-markdown.pyruns5,992 bytes
  • theme-profiles/andy.mddoc3,426 bytes
  • theme-profiles/bayer.mddoc3,198 bytes
  • theme-profiles/bodoni.mddoc3,307 bytes
  • theme-profiles/freddie.mddoc3,420 bytes
  • theme-profiles/fuller.mddoc3,276 bytes
  • theme-profiles/index.jsonasset5,912 bytes
  • theme-profiles/knuth.mddoc3,603 bytes
  • theme-profiles/press.mddoc3,633 bytes
  • theme-profiles/shannon.mddoc3,831 bytes
  • theme-profiles/sottsass.mddoc3,420 bytes
  • theme-profiles/tufte.mddoc3,621 bytes
  • theme-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 GitHub

Skills 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

  1. #117 on Nov 1
  2. #118 on Nov 2
  3. #119 on Nov 3
  4. #117 on Nov 4
  5. #116 on Nov 5
  6. #114 since Nov 6
41 earlier periods
  1. #117 on Aug 2
  2. #117 on Aug 7
  3. #116 from Aug 8 to Aug 9
  4. #118 from Aug 10 to Aug 11
  5. #119 from Aug 12 to Aug 15
  6. #118 on Aug 16
  7. #119 from Aug 17 to Aug 18
  8. #120 from Aug 19 to Aug 21
  9. #119 on Aug 22
  10. #120 from Aug 23 to Aug 25
  11. #116 on Aug 26
  12. #113 from Aug 27 to Aug 28
  13. #112 on Aug 29
  14. #111 from Aug 30 to Aug 31
  15. #112 on Sep 1
  16. #111 on Sep 2
  17. #112 on Sep 3
  18. #111 on Sep 4
  19. #112 on Sep 5
  20. #111 on Sep 6
  21. #112 from Sep 7 to Sep 15
  22. #111 from Sep 16 to Sep 17
  23. #113 on Sep 18
  24. #112 on Sep 19
  25. #113 from Sep 20 to Sep 25
  26. #112 from Sep 26 to Sep 29
  27. #111 on Sep 30
  28. #113 from Oct 1 to Oct 3
  29. #112 on Oct 4
  30. #113 on Oct 5
  31. #111 on Oct 6
  32. #113 from Oct 7 to Oct 12
  33. #114 from Oct 13 to Oct 14
  34. #115 on Oct 15
  35. #116 from Oct 16 to Oct 18
  36. #118 on Oct 19
  37. #117 from Oct 20 to Oct 22
  38. #118 from Oct 23 to Oct 24
  39. #119 on Oct 25
  40. #117 from Oct 28 to Oct 29
  41. #118 from Oct 30 to Oct 31

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/beautiful-article/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/beautiful-article/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/beautiful-article/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/gpt-image-2/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/motion-showreel/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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

  • Executable scriptline 1
    Executable file
  • Network accessline 51
    Made with{" "}           <a             href="https://github.com/ConardLi/garden-skills"
  • Network accessline 52
    <a             href="https://github.com/ConardLi/garden-skills"             target="_blank"
  • Network accessline 53
    href="https://github.com/ConardLi/garden-skills"

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

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 150
    rm -rf "$TMP_DIR"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 113
    req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0"})
  • Network accessline 114
    with urllib.request.urlopen(req, timeout=30) as resp:  # noqa: S310

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

  • Network accessline 82
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Network accessline 88
    [Credential-related source omitted]
  • Access to secretsline 88
    [Credential-related source omitted]

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

  • Executable scriptline 1
    #!/usr/bin/env node
  • Access to secretsline 13
    [Credential-related source omitted]

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

  • Executable scriptline 1
    #!/bin/sh
  • Network accessline 9
    command -v node >/dev/null 2>&1 || { echo "✗ Node.js 18+ is required (https://nodejs.org)"; exit 1; }

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

  • Network accessline 21
    1. **浏览器全屏**(F11 / Ctrl+Cmd+F),URL 改成    `http://localhost:5173/?auto=1`
  • Network accessline 22
    `http://localhost:5173/?auto=1`

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

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    const DEFAULT_GITHUB_URL =   "https://github.com/ConardLi/garden-skills";
  • Network accessline 17
    "https://github.com/ConardLi/garden-skills";

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
Signal confidence: 495 facts

and 445 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/beautiful-article/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/beautiful-article/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/beautiful-article/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/beautiful-article/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

ConardLi/garden-skills: #114 on hotskills, 14.5k stars

[![ConardLi/garden-skills on hotskills](https://hotskills.dev/badge/conardli-garden-skills.svg)](https://hotskills.dev/skill/conardli-garden-skills/)