playground
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.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o playground.zip https://jpskill.com/download/22483.zip && unzip -o playground.zip && rm playground.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/22483.zip -OutFile "$d\playground.zip"; Expand-Archive "$d\playground.zip" -DestinationPath $d -Force; ri "$d\playground.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
playground.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
playgroundフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] プレイグラウンド
プレイグラウンドビルダー
プレイグラウンドは、片側にインタラクティブなコントロール、もう片側にライブプレビュー、下部にコピーボタン付きのプロンプト出力がある自己完結型のHTMLファイルです。ユーザーはコントロールを調整し、視覚的に探索し、生成されたプロンプトをClaudeにコピーして戻します。
このスキルを使用するタイミング
ユーザーが特定のトピックについてインタラクティブなプレイグラウンド、エクスプローラー、または視覚ツールを要求する場合、特に、入力空間が大きく、視覚的、または構造的で、プレーンテキストとして表現するのが難しい場合にこのスキルを使用します。
このスキルの使用方法
- ユーザーのリクエストからプレイグラウンドのタイプを特定します。
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— コードベースアーキテクチャ(コンポーネント間の関係、データフロー、レイヤー図)
- テンプレートに従ってプレイグラウンドを構築します。トピックがどのテンプレートにもきれに当てはまらない場合は、最も近いものを使用して適応させます。
- ブラウザで開きます。 HTMLファイルを作成したら、
open <filename>.htmlを実行して、ユーザーのデフォルトブラウザで起動します。
コア要件(すべてのプレイグラウンド)
- 単一のHTMLファイル。 すべてのCSSとJSをインライン化します。外部依存関係はありません。
- ライブプレビュー。 コントロールの変更ごとに即座に更新されます。「適用」ボタンはありません。
- プロンプト出力。 値のダンプではなく、自然言語です。デフォルト以外の選択肢のみを言及します。プレイグラウンドを見なくても操作できる十分なコンテキストを含みます。ライブで更新されます。
- コピーボタン。 短い「Copied!」フィードバック付きのクリップボードコピー。
- 適切なデフォルト + プリセット。 初回ロード時に見栄えが良いこと。すべてのコントロールを一貫した組み合わせにスナップする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がダウンすると、プレイグラウンドは機能しなくなる
- プロンプトにコンテキストが不足している → プレイグラウンドなしで実行可能であるのに十分な情報を含める
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
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 change
Prompt 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