mcpField
P
playground

playground

github.com/cline开发402.7k 次安装15 周前更新
代码仓库

关于 playground

playground 是一项用于构建独立 HTML 交互式演示场的 Skill,包含控制项、实时预览和生成的提示词。它引导 Agent 选择模板,为视觉或结构性主题制作交互工具。

主要功能

  1. 01六种常见演示场模板
  2. 02内联 CSS 和 JavaScript 的单文件 HTML
  3. 03控制项变化时实时更新预览
  4. 04带复制按钮的提示词输出
  5. 05暗色主题、默认值和命名预设

适用场景

  1. 01交互式探索视觉设计选项
  2. 02构建数据和查询探索器
  3. 03绘制概念图或代码库架构图
  4. 04通过评论审阅文档或代码差异

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cline/skills --skill playground

安装后在 Claude Code 中输入/playground确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

templates/
code-map.md
concept-map.md
data-explorer.md
design-playground.md
diff-review.md
document-critique.md

详细介绍

Playground Builder

Playground 是一个独立的 HTML 文件:一侧提供交互控件,另一侧显示实时预览,底部则显示带复制按钮的提示词输出。用户调整控件、进行可视化探索,然后将生成的提示词复制回其 Agent。

何时使用此技能

当用户要求为某个主题创建交互式 playground、探索器或可视化工具时使用,尤其是当输入空间庞大、具有视觉或结构特征,且难以用纯文本表达时。

如何使用此技能

  1. 根据用户的请求确定 playground 类型
  2. 从 templates/ 中加载匹配的模板:
    • templates/design-playground.md — 视觉设计决策(组件、布局、间距、颜色、排版)
    • templates/data-explorer.md — 数据与查询构建(SQL、API、管道、正则表达式)
    • templates/concept-map.md — 学习与探索(概念图、知识盲区、范围映射)
    • templates/document-critique.md — 文档审阅(通过批准/拒绝/评论工作流提供建议)
    • templates/diff-review.md — 代码审查(Git 差异、提交、带逐行评论的 PR)
    • templates/code-map.md — 代码库架构(组件关系、数据流、分层图)
  3. 按照模板构建 playground。如果主题与任何模板都不完全匹配,请使用最接近的模板并进行调整。
  4. **如果环境支持,请在浏览器中打开。**编写 HTML 文件后,如果环境支持,请在用户的默认浏览器中启动该文件;否则提供文件路径。

核心要求(适用于每个 playground)

  • **单个 HTML 文件。**将所有 CSS 和 JS 内嵌其中,不使用外部依赖。
  • **实时预览。**每次控件变更都会立即更新。不要使用“应用”按钮。
  • **提示词输出。**使用自然语言,而不是单纯罗列数值。只提及非默认选项。提供足够的上下文,即使不查看 playground 也能据此采取行动。实时更新。
  • **复制按钮。**复制到剪贴板,并显示简短的“已复制!”反馈。
  • **合理的默认值和预设。**首次加载时就有良好的显示效果。提供 3–5 个命名预设,一键将所有控件设为协调一致的组合。
  • **深色主题。**界面使用系统字体,代码/数值使用等宽字体。界面保持简洁。

状态管理模式

使用单个状态对象。每个控件都向其中写入,每次渲染都从中读取。

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