From cem
Generates documentation for custom elements from manifest data, including overview, usage examples, attributes, slots, events, and styling references. Use for doc generation requests.
npx claudepluginhub bennypowers/cem --plugin cemThis skill uses the workspace's default tool permissions.
Generate documentation for custom elements based on their manifest API surface,
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Generate documentation for custom elements based on their manifest API surface, including usage examples and integration guidance.
Read the target element's full manifest data:
cem://element/{tagName}
And each sub-resource for complete coverage:
cem://element/{tagName}/attributes
cem://element/{tagName}/slots
cem://element/{tagName}/events
cem://element/{tagName}/css/parts
cem://element/{tagName}/css/custom-properties
cem://element/{tagName}/css/states
Also read project-level guidelines for tone and conventions:
cem://guidelines
!cat ${CLAUDE_SKILL_DIR}/html-comment-syntax.md
Search the project for existing documentation patterns:
Look for existing docs files to match format and structure:
docs/, documentation/, or alongside source*.stories.ts, *.stories.js)Match the project's existing doc style:
Generate HTML examples using generate_html for:
| Name | Type | Default | Description |
|---|
For enum attributes, include a sub-table or list of valid values with descriptions.
| Name | Description | Content Guidelines |
|---|
Include example HTML showing content in each slot.
| Name | Detail | Description |
|---|
Include JavaScript examples showing how to listen for and handle each event.
CSS Custom Properties:
| Property | Default | Description |
|---|
CSS Parts:
| Part | Description |
|---|
CSS States:
| State | Description |
|---|
Include a CSS example showing common customizations.
Document any manifest-sourced accessibility patterns:
Adapt the output format to match what the user needs:
*.stories.ts with knobs for each attributeAsk the user which format they prefer if it's not clear from context.
generate_html to produce valid HTML, don't hand-write examples that might have errorscem://elements@summary for the short description, @cssprop / @csspart / @slot / @fires for API docs. Well-written JSDoc produces a better manifest, which produces better MCP and LSP support.<meta itemprop="name"> and <meta itemprop="description"> for demo metadata. Keep demos self-contained with inline imports.html tagged template literals are used for slot/part docs. Backticks in these comments (e.g. `currentColor`) break cem's TS transform because they're parsed as template literal boundaries. Escape them with ``` or avoid them.