ワンクリックで
showcase
Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs)
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | showcase |
| description | Generate or update the wheely showcase deck (reveal.js HTML with screenshots and GIFs) |
| user_invocable | true |
Generate a self-contained HTML slide deck demonstrating the wheely simulation platform.
showcase/showcase.html — a single self-contained HTML file (all images embedded as base64 data URIs). No external image files should remain in the directory.
Ensure playwright and chromium are available in the project venv:
pip install -e ".[dev]"
.venv/bin/python -m playwright install chromium
Also requires ffmpeg for GIF generation from frame sequences.
.venv/bin/uvicorn wheely.server:app --port 8765
Run in background. Verify with curl -s -o /dev/null -w "%{http_code}" http://localhost:8765/.
Use Playwright (headless Chromium) at 850x600 viewport with device_scale_factor: 2 for retina quality.
http://localhost:8765, wait for WebSocket Connected statuspage.evaluate(), page.select_option(), page.click() etc.page.screenshot()ffmpeg -y -framerate 15 -i frame_%04d.png \
-vf "scale=850:600:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" \
output.gif
Write showcase/showcase.html as a self-contained reveal.js presentation:
cdn.jsdelivr.net)<img src="filename.png"> initially while authoringmargin: 0.08 for safe text areaThis step is mandatory. After building the deck, verify every slide fits a 4:3 screen with no text cutoff:
file:// URL in headless PlaywrightReveal.getTotalSlides(), calling Reveal.slide(i) for eachfont-size in CSS (body text: 0.55em, code: 0.38em, lists: 0.55em)This step is mandatory. The final HTML must be fully self-contained:
src="filename.png" or src="filename.gif"):
src="filename.ext" with src="data:image/<type>;base64,<data>"showcase/ directoryshowcase/ contains only showcase.htmlThis can be done with a Python one-liner:
import base64; from pathlib import Path
html = Path('showcase.html').read_text()
for f, mime in [('img.png','image/png'), ('anim.gif','image/gif')]:
d = base64.b64encode(Path(f).read_bytes()).decode()
html = html.replace(f'src="{f}"', f'src="data:{mime};base64,{d}"')
Path('showcase.html').write_text(html)
#1a1a2e, headings #e94560, accents #4fc3f7atom-one-dark highlight.js theme#0f3460 background, #16213e for cards#0f3460 background with #4fc3f7 text#4ade80 green values