Playground
AnthropicOfficialPublished by Anthropic
- Skill
- Content generator
- Software development
- Apache-2.0
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Playground is a tool for creating single-file HTML explorers that allow users to interact with complex configurations through a visual interface. It provides a structured way to build tools where users adjust settings via controls, view live updates, and generate natural-language prompts based on their selections. By using predefined templates, it ensures consistency in design, state management, and prompt output, making it ideal for topics that are difficult to describe through text alone.
What it does
- Creates single-file HTML playgrounds with no external dependencies.
- Provides a live preview that updates instantly as controls are adjusted.
- Generates actionable, natural-language prompts based on user configuration.
- Supports multiple templates for design, data, architecture, and document review.
- Includes preset configurations for quick exploration.
- Features a copy-to-clipboard function for generated prompts.
When to use it
- When you need a visual tool to explore complex configuration spaces.
- When a user needs to generate specific prompts based on visual or structural choices.
- When you want to provide an interactive way to experiment with design, data, or architecture.
- When you need to simplify complex inputs into a user-friendly interface.
Advantages
- Self-contained files ensure portability and reliability without external dependencies.
- Immediate visual feedback improves user understanding and decision-making.
- Natural-language prompt generation bridges the gap between visual exploration and AI interaction.
- Standardized templates ensure a consistent and professional user experience.
Usage examples
- “Create a design playground for a card component.”
- Generates an HTML file with controls for border-radius, shadows, and spacing, allowing the user to visually design a card and copy the resulting prompt.
- “Build a data explorer for my SQL query builder.”
- Produces an interactive tool that lets the user select table joins and filters, outputting a natural-language request to generate the corresponding SQL.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/anthropics/playground/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip playground.zip -d .agents/skills
Documentation by Anthropic
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 Claude.
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
Identify the playground type from the user's request
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)
Follow the template to build the playground. If the topic doesn't fit any template cleanly, use the one closest and adapt.
Open in browser. After writing the HTML file, run
open <filename>.htmlto launch it in the user's default browser.
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.
const state = { /* all configurable values */ };
function updateAll() {
renderPreview(); // update the visual
updatePrompt(); // rebuild the prompt text
}
// Every control calls updateAll() on changePrompt output pattern
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
Files
- ATTRIBUTION.mdAdded by AutoGineer958 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md3.7 KiB
- templates/code-map.md6.1 KiB
- templates/concept-map.md3.6 KiB
- templates/data-explorer.md2.8 KiB
- templates/design-playground.md2.7 KiB
- templates/diff-review.md5.6 KiB
- templates/document-critique.md5.0 KiB
templates/code-map.md
Code Map Template
Use this template when the playground is about visualizing codebase architecture: component relationships, data flow, layer diagrams, system architecture with interactive commenting for feedback.
Layout
+-------------------+----------------------------------+
| | |
| Controls: | SVG Canvas |
| • View presets | (nodes + connections) |
| • Layer toggles | with zoom controls |
| • Connection | |
| type filters | Legend (bottom-left) |
| | |
| Comments (n): +----------------------------------+
| • List of user | Prompt output |
| comments with | [ Copy Prompt ] |
| delete buttons | |
+-------------------+----------------------------------+Code map playgrounds use an SVG canvas for the architecture diagram. Users click components to add comments, which become part of the generated prompt. Layer and connection filters let users focus on specific parts of the system.
Control types for code maps
| Decision | Control | Example |
|---|---|---|
| System view | Preset buttons | Full System, Chat Flow, Data Flow, Agent System |
| Visible layers | Checkboxes | Client, Server, SDK, Data, External |
| Connection types | Checkboxes with color indicators | Data Flow (blue), Tool Calls (green), Events (red) |
| Component feedback | Click-to-comment modal | Opens modal with textarea for feedback |
| Zoom level | +/−/reset buttons | Scale SVG for detail |
Canvas rendering
Use an <svg> element with dynamically generated nodes and paths. Key patterns:
Nodes: Rounded rectangles with title and subtitle (file path)
Connections: Curved paths (bezier) with arrow markers, styled by type
Layer organization: Group nodes by Y-position bands (e.g., y: 30-80 = Client, y: 130-180 = Server)
Click-to-comment: Click node → open modal → save comment → node gets visual indicator
Filtering: Toggle visibility of nodes by layer, connections by type
const nodes = [
{ id: 'api-client', label: 'API Client', subtitle: 'src/api/client.ts',
x: 100, y: 50, w: 140, h: 45, layer: 'client', color: '#dbeafe' },
// ...
];
const connections = [
{ from: 'api-client', to: 'server', type: 'data-flow', label: 'HTTP' },
{ from: 'server', to: 'db', type: 'data-flow' },
// ...
];
function renderDiagram() {
const visibleNodes = nodes.filter(n => state.layers[n.layer]);
// Draw connections first (under nodes), then nodes
connections.forEach(c => drawConnection(c));
visibleNodes.forEach(n => drawNode(n));
}Connection types and styling
Define 3-5 connection types with distinct visual styles:
| Type | Color | Style | Use for |
|---|---|---|---|
data-flow | Blue (#3b82f6) | Solid line | Request/response, data passing |
tool-call | Green (#10b981) | Dashed (6,3) | Function calls, API invocations |
event | Red (#ef4444) | Short dash (4,4) | Async events, pub/sub |
skill-invoke | Orange (#f97316) | Long dash (8,4) | Plugin/skill activation |
dependency | Gray (#6b7280) | Dotted | Import/require relationships |
Use SVG markers for arrowheads:
<marker id="arrowhead-blue" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
<polygon points="0 0, 8 3, 0 6" fill="#3b82f6"/>
</marker>Comment system
The key differentiator for code maps is click-to-comment functionality:
Click node → Open modal with component name, file path, textarea
Save comment → Add to comments list, mark node with visual indicator (colored border)
View comments → Sidebar list with component name, comment preview, delete button
Delete comment → Remove from list, update node visual, regenerate prompt
Comments should include the component context:
state.comments.push({
id: Date.now(),
target: node.id,
targetLabel: node.label,
targetFile: node.subtitle,
text: userInput
});Prompt output for code maps
The prompt combines system context with user comments:
This is the [PROJECT NAME] architecture, focusing on the [visible layers].
Feedback on specific components:
**API Client** (src/api/client.ts):
I want to add retry logic with exponential backoff here.
**Database Manager** (src/db/manager.ts):
Can we add connection pooling? Current implementation creates new connections per request.
**Auth Middleware** (src/middleware/auth.ts):
This should validate JWT tokens and extract user context.Only include comments the user added. Mention which layers are visible if not showing the full system.
Pre-populating with real data
For a specific codebase, pre-populate with:
Nodes: 15-25 key components with real file paths
Connections: 20-40 relationships based on actual imports/calls
Layers: Logical groupings (UI, API, Business Logic, Data, External)
Presets: "Full System", "Frontend Only", "Backend Only", "Data Flow"
Organize nodes in horizontal bands by layer, with consistent spacing.
Layer color palette (light theme)
| Layer | Node fill | Description |
|---|---|---|
| Client/UI | #dbeafe (blue-100) | React components, hooks, pages |
| Server/API | #fef3c7 (amber-100) | Express routes, middleware, handlers |
| SDK/Core | #f3e8ff (purple-100) | Core libraries, SDK wrappers |
| Agent/Logic | #dcfce7 (green-100) | Business logic, agents, processors |
| Data | #fce7f3 (pink-100) | Database, cache, storage |
| External | #fbcfe8 (pink-200) | Third-party services, APIs |
Example topics
Codebase architecture explorer (modules, imports, data flow)
Microservices map (services, queues, databases, API gateways)
React component tree (components, hooks, context, state)
API architecture (routes, middleware, controllers, models)
Agent system (prompts, tools, skills, subagents)
Data pipeline (sources, transforms, sinks, scheduling)
Plugin/extension architecture (core, plugins, hooks, events)
Requirements and compatibility
Written for: Claude Code, Claude apps
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Anthropic
- Publisher
- Anthropic (Official)
- Source
- anthropics/claude-plugins-official · plugins/playground/skills/playground · commit 0412be7
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from plugins/playground/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Anthropic.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download playground.zip