69d4fab0b3
The check-generated CI step was failing with "web/skills.json is stale" because build-skills.mjs stamped a wall-clock generatedAt into the file, so every rebuild differed and git diff --exit-code never matched. - web/build-skills.mjs: drop the unused generatedAt timestamp -> deterministic output the CI staleness check can verify. Also tags each skill with its tier. - skill-tiers.json: single machine-readable source for tier membership (Production-Ready / Experimental); TIERS.md points to it. Playground upgrades (hosted on GitHub Pages): - Tier filter (Production-Ready / Stable / Experimental) + per-tile tier badges. - "Use this skill in another tool" panel: copy the instructions formatted for ChatGPT, Gemini, or raw — mirrors the generated exports/ files. - web/README documents the new options and the deterministic build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
2.1 KiB
2.1 KiB
Skill Playground
A zero-backend web app to run any skill in this repo with your own Claude API key.
Pick a skill → it becomes a form → fill it in → Claude executes the skill's instructions
and streams the result. Your key is stored only in your browser (localStorage) and sent
directly to api.anthropic.com. Nothing touches a server we own.
What you can do
- Search and filter the full library by keyword, bundle, and maturity tier (🟢 Production-Ready · 🔵 Stable · 🟡 Experimental) — every tile shows its tier.
- Run a skill against the Claude API and stream the output (copy or download as
.md). - Use it in another tool — each skill has a "Use this skill in another tool" panel
that copies the instructions formatted for ChatGPT, Gemini, or as raw text, so
you can paste it into any assistant. (Same output as the generated
exports/files.)
Run locally
node web/build-skills.mjs # regenerate skills.json from skills/
cd web && python3 -m http.server 8000
# open http://localhost:8000
It must be served over HTTP (not opened as a
file://URL) sofetch('skills.json')works.
Paste a key from console.anthropic.com and run.
How it works
build-skills.mjsscans../skills/*/SKILL.md, parses the frontmatter and the Required Inputs section, tags each skill with its tier (from../skill-tiers.json), and writes a deterministicskills.json(the UI's data source — no timestamp, so CI can verify it stays in sync).app.jssends the skill's instruction body as thesystemprompt and the filled-in fields as the user message, using the Anthropic Messages API withanthropic-dangerous-direct-browser-access: truefor direct browser calls.
Keep it in sync
Re-run node web/build-skills.mjs whenever skills are added or edited, and commit the
updated skills.json. (Or wire it into CI / a pre-commit hook.)
Deploy
It's fully static — host the web/ folder on GitHub Pages, Netlify, Vercel, or any
static host. No environment variables, no server.