Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Web Artifacts Builder

ASecurity

当需要为 claude.ai 构建含状态管理/路由/shadcn 组件的复杂多组件 HTML 制品(artifact)时使用;用脚手架初始化 React+TS+Vite 工程并打包为单文件 bundle.html 产物;不适用于简单的单文件 HTML/JSX 制品;触发词:web artifact、artifacts、复杂制品、shadcn、单文件HTML、bundle.html、React制品

3 stars
0 votes
0 copies
2 views
Added 9/19/2026
ai-agentstypescriptbashreactnodetestingfrontend

Works with

cursorcli

Security Analysis

A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned 9/19/2026

$npx -y skills add findscripter/everything-skills --skill web-artifacts-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Web Artifacts Builder?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Web Artifacts Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/findscripter-web-artifacts-builder/badge)](https://www.skillsdirectory.com/skills/findscripter-web-artifacts-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: web-artifacts-builder
title: Web 制品构建器(React/Tailwind/shadcn 单文件产物)
description: 当需要为 claude.ai 构建含状态管理/路由/shadcn 组件的复杂多组件 HTML 制品(artifact)时使用;用脚手架初始化 React+TS+Vite 工程并打包为单文件 bundle.html 产物;不适用于简单的单文件 HTML/JSX 制品;触发词:web artifact、artifacts、复杂制品、shadcn、单文件HTML、bundle.html、React制品
domain: 研发/frontend
triggers: [web artifact, artifacts, 复杂制品, shadcn, 单文件HTML, bundle.html, React制品]
tags: [frontend, react, typescript, vite, tailwind, shadcn-ui, parcel, artifact, bundle]
level: 进阶
status: stable
agents: [claude-code, codex, cursor, gemini-cli]
tools: [bash, pnpm, vite, parcel, tailwindcss, shadcn/ui, html-inline, react, typescript]
requires: []
related: [frontend-design, canvas-design, webapp-testing]
combines_with: [frontend-design, webapp-testing]
license: Apache-2.0
source: anthropics/skills
source_license: Apache-2.0
---
## 何时使用

用于为 claude.ai 构建**复杂、多组件**的 HTML 制品(artifact),尤其当制品需要:状态管理、客户端路由,或大量 shadcn/ui 组件时。技术栈固定为 React 18 + TypeScript + Vite + Tailwind CSS 3.4.1 + shadcn/ui,最终用 Parcel 打包并内联成单个自包含的 `bundle.html`,可直接作为 artifact 分享给用户。

**不该用的边界:**
- 简单的单文件 HTML/JSX 制品——直接手写即可,引入这套工程链反而增加成本。
- 非 claude.ai artifact 场景的常规 Web 工程(不需要内联成单文件)。
- 仅做静态视觉/设计稿,无组件交互逻辑——优先看「互见」中的设计类技能。

环境要求:Node.js ≥ 18(脚本会自动检测;Node 18 会把 Vite 固定到 5.4.11,Node 20+ 用 latest);需要 `bash` 执行脚本,未装 `pnpm` 时脚本会自动 `npm install -g pnpm`。脚本目录需包含 `shadcn-components.tar.gz`(预置 40+ 组件)。

## 步骤

1. **初始化工程**——运行脚手架,生成已配好的 React 工程。
2. **开发制品**——编辑生成的源码(`src/`),用 `@/` 路径别名导入 shadcn 组件。
3. **打包为单文件**——运行打包脚本,产出 `bundle.html`。
4. **分享产物**——把 `bundle.html` 作为 artifact 发给用户查看。
5. **(可选)测试/可视化**——仅在必要或用户要求时进行。

> 重要:通常**不要**前置测试,这会拖慢「请求 → 看到成品」的链路。先呈现制品,待用户要求或出现问题时再测。

指令:

```bash
# 步骤 1:初始化(在 skill 的 scripts/ 上下文中执行)
bash scripts/init-artifact.sh <project-name>
cd <project-name>

# 该脚本完成:React+TS(Vite)、Tailwind 3.4.1 + shadcn 主题、
#   @/ 路径别名、预置 40+ shadcn 组件、Radix UI 全量依赖、
#   .parcelrc 打包配置、Node 18+ 兼容(自动锁定 Vite 版本)

# 步骤 2:本地开发预览
pnpm dev

# 步骤 3:打包为单文件 artifact(在项目根目录执行)
bash scripts/bundle-artifact.sh
# 产出 bundle.html —— 所有 JS/CSS/依赖均已内联
```

`bundle-artifact.sh` 内部:安装 `parcel @parcel/config-default parcel-resolver-tspaths html-inline` → 生成带路径别名解析的 `.parcelrc` → `parcel build index.html --no-source-maps` → 用 `html-inline` 把 `dist/index.html` 内联为 `bundle.html`。前提:项目根目录必须有 `index.html` 入口。

## 设计与风格指令(务必遵守)

为避免所谓「AI slop」(廉价 AI 既视感),**避免**:过度居中布局、紫色渐变、千篇一律的统一圆角、Inter 字体。追求有层次、有差异化的版式。

## 示例

```tsx
// 用 @/ 别名导入预置 shadcn 组件
import { Button } from '@/components/ui/button'
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card'
import { Dialog, DialogContent, DialogTrigger } from '@/components/ui/dialog'

export default function App() {
  return (
    <Card>
      <CardHeader><CardTitle>仪表盘</CardTitle></CardHeader>
      <CardContent>
        <Dialog>
          <DialogTrigger asChild><Button>打开</Button></DialogTrigger>
          <DialogContent>内容</DialogContent>
        </Dialog>
      </CardContent>
    </Card>
  )
}
```

预置组件(40+)涵盖:accordion、alert、avatar、badge、button、calendar、card、carousel、checkbox、command、context-menu、dialog、drawer、dropdown-menu、form、hover-card、input、label、menubar、navigation-menu、popover、progress、radio-group、resizable、scroll-area、select、separator、sheet、skeleton、slider、sonner、switch、table、tabs、textarea、toast、toggle、toggle-group、tooltip 等。

## 注意事项

- **入口约束**:打包脚本要求项目根目录存在 `index.html`,否则报错退出。
- **Node 版本**:< 18 直接报错退出;18 ≤ 版本 < 20 时 Vite 锁定 5.4.11,20+ 用 latest。
- **包管理器**:统一用 `pnpm`;缺失时脚本自动全局安装。
- **路径别名**:`@/*` → `./src/*`,已在 `tsconfig.json`、`tsconfig.app.json`、`vite.config.ts` 三处配好;打包阶段由 `parcel-resolver-tspaths` 负责解析,勿擅自改动。
- **主题系统**:基于 CSS 变量 + `darkMode: ["class"]`,含完整 light/dark 配色与 `--radius` 等令牌,新增样式应复用这些变量而非硬编码颜色。
- **不要前置测试**:优先交付,按需再测,降低交付延迟。
- 组件文档参考:https://ui.shadcn.com/docs/components
- 许可:源技能为 Apache-2.0,本条目为忠实转写的中文适配版。

## 互见

- frontend-design:先确定视觉/交互设计方向,再用本技能落地为可交互制品。
- canvas-design:偏静态/平面设计稿场景的替代选择。
- webapp-testing:步骤 5 可选测试阶段,用其在浏览器中验证 `bundle.html` 行为。

Attribution

findscripterfindscripter
View sourceSee grades on GitHubMore from findscripter →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →