compose
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 composeInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
DesignSupported Platforms
Our assessment of compose
compose scores 76/100 on our quality scale, 234th of 269 Design skills we index.
Its SKILL.md is 3.8 KB long, well organised into 18 sections with 4 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 4 days ago, so compose 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.
compose compared with similar skills
All 4 of these similar skills score higher than compose; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| compose (this skill)by bennypowers | 76 | 0 | 4d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 111.0k | 1d ago | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 109.5k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.0k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.8k | today | CLAUDE.md |
Frequently asked questions
- How do I install compose?
- Run
npx skills add bennypowers/cem --skill compose. The install tabs above show the steps for each supported agent. - Which AI agents does compose 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 compose 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 compose still maintained?
- The repository was last updated 4 days ago, so compose is actively maintained.
Skill content
View source on GitHubname: compose description: > Suggest and generate custom element compositions for a UI goal. Use when the user asks to "compose elements", "build a layout", "combine components", "create a page with", "what elements should I use for", or describes a UI they want to build using custom elements. tools: Read, generate_html, validate_html
Component Composition Advisor
Given a UI goal, recommend which custom elements to use together and generate composed HTML.
Workflow
Phase 1: Understand the Goal
Clarify (if not already provided):
- What UI is the user trying to build? (e.g., "login form", "data table", "card grid")
- Any constraints? (e.g., specific elements they must use, layout requirements)
- What level of detail? (quick wireframe-level vs production-ready)
Phase 2: Survey Available Elements
Read the complete element library:
cem://elements
Read project-level guidelines for composition patterns:
cem://guidelines
For each candidate element, read its full API to understand capabilities and slot expectations:
cem://element/{tagName}
cem://element/{tagName}/slots
cem://element/{tagName}/attributes
Phase 3: Select Elements
Choose elements based on:
Semantic Fit
- Does the element's purpose match the role it would play in the composition?
- Is the element designed for this kind of content?
Slot Compatibility
- Can the elements nest correctly via slots?
- Do parent element slots accept the kind of content the child elements produce?
- Are there slot content guidelines that constrain composition?
Attribute Harmony
- Do the elements share compatible attribute patterns?
- Can they be configured to work together without conflicts?
- Do variant/size attributes compose sensibly?
Event Flow
- Can parent elements respond to child element events?
- Is the event propagation path logical?
Phase 4: Generate Composed HTML
For each element in the composition, call generate_html to produce valid markup, then combine them.
Present the composition as:
## Composition: [UI Goal]
### Elements Used
| Element | Role | Why |
|------------------|------------|----------------------------------------|
| `<prefix-card>` | Container | Provides visual grouping and elevation |
| `<prefix-input>` | Form field | Text input with built-in validation |
### HTML
[Complete composed HTML with comments explaining structure]
### How It Works
- [Explain the composition: which elements are slotted where]
- [Note any attribute interactions between elements]
- [Describe the event flow for interactive compositions]
### Styling
[CSS showing how to style the composition, using CSS custom properties and parts from the composed elements]
### Alternatives Considered
- [Other element combinations that could work, and why this one is better]
Phase 5: Validate
Call validate_html on the final composed HTML to verify:
- All elements are used correctly
- Slot content follows guidelines
- No attribute conflicts
- Accessibility patterns are maintained
Report any issues and fix them before presenting the final result.
Guidelines
- Prefer composition over customization: Use multiple elements together rather than forcing one element to do everything
- Respect slot guidelines: If a slot says "text content only", don't put a complex element in it
- Keep nesting shallow: Deeply nested compositions are fragile and hard to style
- Show the minimal composition first: Start simple, then offer enhanced versions with more elements
- Consider responsive behavior: Note if the composition needs different structure at different viewport sizes
- Document the "why": Explain why each element was chosen so the user can make substitutions
Related Skills
taste-skill
111.0kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
109.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
79.0kCompress 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.
