关于 playground
Playground Builder 是用于创建交互式可视化工具的技能,面向需要通过控件探索复杂主题并生成提示词的用户。它依据模板生成单个 HTML 文件,提供实时预览、预设和可复制的提示词输出。
主要功能
- 01依据主题选择匹配模板
- 02生成自包含 HTML 文件
- 03控件变化时实时更新预览
- 04生成可复制的自然语言提示词
- 05提供默认值与命名预设
适用场景
- 01交互式调整视觉设计方案
- 02探索数据并构建查询
- 03用概念图梳理学习主题
- 04逐行审阅代码差异
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ anthropics/ claude-plugins-official --skill playground安装后在 Claude Code 中输入/playground确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
templates/code-map.mdconcept-map.mddata-explorer.mddesign-playground.mddiff-review.mddocument-critique.md详细介绍
Playground Builder
playground 是一个自包含的 HTML 文件,一侧是交互式控件,另一侧是实时预览,底部是带有复制按钮的提示词输出。用户调整控件,进行可视化探索,然后将生成的提示词复制回 Claude。
何时使用此技能
当用户要求为某个主题提供交互式 playground、探索器或可视化工具时 —— 尤其是当输入空间很大、可视化或结构化,且难以用纯文本表达时。
如何使用此技能
- 确定 playground 类型,根据用户的请求
- 从
templates/加载匹配的模板:templates/design-playground.md— 视觉设计决策(组件、布局、间距、颜色、排版)templates/data-explorer.md— 数据和查询构建(SQL、API、管道、正则表达式)templates/concept-map.md— 学习和探索(概念图、知识空白、范围映射)templates/document-critique.md— 文档审阅(带有批准/拒绝/评论工作流的建议)templates/diff-review.md— 代码审查(git diff、提交、PR,支持逐行评论)templates/code-map.md— 代码库架构(组件关系、数据流、分层图)
- 按照模板构建 playground。如果主题不能完全契合任何模板,使用最接近的一个并加以调整。
- 在浏览器中打开。 编写 HTML 文件后,运行
open <filename>.html以在用户的默认浏览器中启动它。
核心要求(每个 playground)
- 单个 HTML 文件。 内联所有 CSS 和 JS。无外部依赖。
- 实时预览。 每次控件更改时即时更新。没有"应用"按钮。
- 提示词输出。 自然语言,而非值转储。只提及非默认选择。包含足够的上下文,使其无需查看 playground 即可执行。实时更新。
- 复制按钮。 剪贴板复制,带有简短的"已复制!"反馈。
- 合理的默认值 + 预设。 首次加载时看起来不错。包含 3-5 个命名预设,可将所有控件吸附到协调的组合。
- 深色主题。 UI 使用系统字体,代码/值使用等宽字体。极简界面。
状态管理模式
保持单一状态对象。每个控件写入它,每次渲染读取它。
const state = { /* all configurable values */ };
function updateAll() {
renderPreview(); // update the visual
updatePrompt(); // rebuild the prompt text
}
// Every control calls updateAll() on change
提示词输出模式
function updatePrompt() {
const parts = [];
// Only mention non-default values
if (state.borderRadius !== DEFAULTS.borderRadius) {
parts.push(`border-radius of ${state.borderRadius}px`);
}
// Use qualitative language alongside numbers
if (state.shadowBlur > 16) parts.push('a pronounced shadow');
else if (state.shadowBlur > 0) parts.push('a subtle shadow');
prompt.textContent = `Update the card to use ${parts.join(', ')}.`;
}
要避免的常见错误
- 提示词输出只是值转储 → 将其写为自然指令
- 一次有太多控件 → 按关注点分组,将高级选项隐藏在可折叠部分中
- 预览不会即时更新 → 每次控件更改都必须触发立即重新渲染
- 没有默认值或预设 → 加载时为空或损坏
- 外部依赖 → 如果 CDN 宕机,playground 就挂了
- 提示词缺乏上下文 → 包含足够内容,使其无需 playground 即可操作
评论
支持 Markdown