SkillAgentSearch skills...

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-demos

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

74/100

Category

Design

Supported Platforms

Universal

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.

Substance
26/30
Structure
18/20
Description
15/15
Adoption
0/20
Freshness
15/15

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 found

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.

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.

SkillScoreStarsUpdatedFormat
write-demos (this skill)by bennypowers7403d agoSKILL.md
taste-skillby Leonxlnx100110.6ktodayCLAUDE.md
Agent-Reachby Panniantong100109.2ktodayCLAUDE.md
headroomby headroomlabs-ai10078.9ktodayCLAUDE.md
CowAgentby zhayujie10047.8ktodayCLAUDE.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.

name: 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 — fileGlob determines where demos live; urlPattern captures path segments with :param; urlTemplate builds served URLs from those params (supports alias, slug, lower, upper template functions). Example: elements/rh-card/demo/sizes.html with urlTemplate: /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 in dependencies or 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 use itemprop, not name or property

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

View on GitHub
GitHub Stars0
CategoryDesign
Updated3d ago
Forks0

Trust signals

80/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium1 low