Playground

by cline26378461e978No license34 starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 2 months ago

Creates interactive HTML playgrounds — self-contained single-file explorers that let users configure something visually through controls, see a live preview, and copy out a prompt. Use when the user asks to make a playground, explorer, or interactive tool for a topic.

AI-generated overview

Builds self-contained interactive HTML playgrounds with controls, live preview, and copyable prompt output.

What it does
This skill guides the agent in producing a single self-contained HTML file that pairs interactive controls with a live preview and a generated natural-language prompt. It selects one of six bundled templates (design, data explorer, concept map, document critique, diff review, code map) and adapts it to the user's topic. The output is a dark-themed, dependency-free file that can be opened in a browser, with presets, sensible defaults, and a clipboard copy button.
When to use it
Use it when the user asks for an interactive playground, explorer, or visual tool for a topic, especially when the input space is large, visual, or structural and hard to express as plain text. It fits visual design decisions, query building, concept mapping, document review, code review, and codebase architecture exploration.
Requirements
No scripts ship with the skill; it is instructions and markdown templates only. The agent needs file-writing ability and, optionally, the ability to open the resulting HTML file in a browser. The generated playground must be a single HTML file with inline CSS and JS and no external dependencies.

Playground Builder

A playground is a self-contained HTML file with interactive controls on one side, a live preview on the other, and a prompt output at the bottom with a copy button. The user adjusts controls, explores visually, then copies the generated prompt back into their agent.

When to use this skill

When the user asks for an interactive playground, explorer, or visual tool for a topic — especially when the input space is large, visual, or structural and hard to express as plain text.

How to use this skill

  1. Identify the playground type from the user's request
  2. Load the matching template from templates/:
    • templates/design-playground.md — Visual design decisions (components, layouts, spacing, color, typography)
    • templates/data-explorer.md — Data and query building (SQL, APIs, pipelines, regex)
    • templates/concept-map.md — Learning and exploration (concept maps, knowledge gaps, scope mapping)
    • templates/document-critique.md — Document review (suggestions with approve/reject/comment workflow)
    • templates/diff-review.md — Code review (git diffs, commits, PRs with line-by-line commenting)
    • templates/code-map.md — Codebase architecture (component relationships, data flow, layer diagrams)
  3. Follow the template to build the playground. If the topic doesn't fit any template cleanly, use the one closest and adapt.
  4. Open in browser when available. After writing the HTML file, launch it in the user's default browser if the environment supports that; otherwise provide the file path.

Core requirements (every playground)

  • Single HTML file. Inline all CSS and JS. No external dependencies.
  • Live preview. Updates instantly on every control change. No "Apply" button.
  • Prompt output. Natural language, not a value dump. Only mentions non-default choices. Includes enough context to act on without seeing the playground. Updates live.
  • Copy button. Clipboard copy with brief "Copied!" feedback.
  • Sensible defaults + presets. Looks good on first load. Include 3-5 named presets that snap all controls to a cohesive combination.
  • Dark theme. System font for UI, monospace for code/values. Minimal chrome.

State management pattern

Keep a single state object. Every control writes to it, every render reads from it.

javascript
const state = { /* all configurable values */ };
function updateAll() {  renderPreview(); // update the visual  updatePrompt();  // rebuild the prompt text}// Every control calls updateAll() on change

Prompt output pattern

javascript
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(', ')}.`;}

Common mistakes to avoid

  • Prompt output is just a value dump → write it as a natural instruction
  • Too many controls at once → group by concern, hide advanced in a collapsible section
  • Preview doesn't update instantly → every control change must trigger immediate re-render
  • No defaults or presets → starts empty or broken on load
  • External dependencies → if CDN is down, playground is dead
  • Prompt lacks context → include enough that it's actionable without the playground

Source and attribution

Source:cline/skillsinskills/playgroundat commit2637846

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal