write-demos
The standards-based Web Components multitool. Generate Custom Elements Manifests, Dev Server, LSP, and MCP for your app or design system
Install / Use
npx skills add bennypowers/cem --skill write-demosInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
DesignSupported Platforms
Our assessment of write-demos
write-demos scores 74/100 on our quality scale, 240th of 267 Design skills we index.
Its SKILL.md is 3.2 KB long, well organised into 8 sections with 3 code examples: a solid amount of guidance for an agent.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- The repository was last updated 3 days ago, so write-demos is actively maintained.
- Our last check on 2026-09-26 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 80/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
write-demos compared with similar skills
All 4 of these similar skills score higher than write-demos; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| write-demos (this skill)by bennypowers | 74 | 0 | 3d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 110.6k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.2k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.9k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
Frequently asked questions
- How do I install write-demos?
- Run
npx skills add bennypowers/cem --skill write-demos. The install tabs above show the steps for each supported agent. - Which AI agents does write-demos work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is write-demos safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It declares no license and scores 80/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is write-demos still maintained?
- The repository was last updated 3 days ago, so write-demos is actively maintained.
Skill content
View source on GitHubname: write-demos description: > Write demo HTML files for custom elements that work with cem serve. Use when the user asks to "write a demo", "create a demo", "add a demo", "demo file", "demo page", or mentions "cem serve demos". tools: Read, Glob, Grep, generate_html
Write Element Demos
Critical: Demos Are Partials
Never include <!DOCTYPE>, <html>, <head>, or <body>.
The dev server wraps partials with its own document shell, import maps,
and live reload. Adding document structure breaks rendering.
Workflow
1. Gather Context
Read the element's manifest data (cem://element/{tagName} and sub-resources)
and check .config/cem.yaml for:
generate.demoDiscovery—fileGlobdetermines where demos live;urlPatterncaptures path segments with:param;urlTemplatebuilds served URLs from those params (supportsalias,slug,lower,uppertemplate functions). Example:elements/rh-card/demo/sizes.htmlwithurlTemplate: /elements/{{.tag | alias}}/demo/{{.demo}}/serves at/elements/card/demo/sizes/. Index demos become the directory root.serve.urlRewrites(if present) — maps served URLs back to filesystem paths when they differ (e.g.,/elements/card/...to/elements/rh-card/...). Most projects don't need this. Check if configured, and set up if asked.serve.importMap— bare specifiers need to be independenciesor the import map config
2. Write Demos
Place files where fileGlob expects them (typically elements/my-el/demo/).
Index demo — simplest possible usage, no metadata needed:
<script type="module">
import '../my-button.js';
</script>
<my-button>Click Me</my-button>
Feature demos — one feature per file, with metadata:
<meta itemprop="name"
content="With Icon">
<meta itemprop="description"
content="Button with a leading icon in the icon slot">
<script type="module">
import '../my-button.js';
import '../../my-icon/my-icon.js';
</script>
<my-button variant="primary">
<my-icon slot="icon"
name="check"></my-icon>
Save Changes
</my-button>
Multi-element demos — use demo-for to associate with specific elements:
<meta itemprop="demo-for"
content="my-button my-icon">
3. Validate
Call validate_html on the demo content, then verify:
- No document shell tags
- Script imports resolve (relative paths from demo file to source)
<meta>tags useitemprop, notnameorproperty
Common Mistakes
| Mistake | Fix |
|---------|-----|
| Adding <!DOCTYPE> / <html> | Demos are partials |
| <meta name="description"> | <meta itemprop="description"> |
| Absolute import paths | Relative from demo file to source |
| Importing from devDependencies | Move to dependencies |
| External CSS/JS links | Inline styles and scripts |
| Everything in one file | One feature per demo |
| Missing type="module" | Always <script type="module"> |
Guidelines
- Index is minimal: default demo should be copy-paste simple
- Self-contained: inline all CSS and JS
- One feature per file: variants, states, features get separate demos
- Use
generate_html: produce valid element markup via the MCP tool
Related Skills
taste-skill
110.6kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
109.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.8kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
