From cem
Identifies breaking changes between custom element manifest versions and suggests migration steps. Use when migrating, upgrading components, finding deprecations, or comparing manifests.
npx claudepluginhub bennypowers/cem --plugin cemThis skill uses the workspace's default tool permissions.
Compare custom element manifests across versions to identify breaking changes and generate migration guidance.
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.
Compare custom element manifests across versions to identify breaking changes and generate migration guidance.
Determine the two versions to compare. Sources:
Git-based: Compare the current manifest against a previous git ref
git show {ref}:path/to/custom-elements.json
File-based: User provides two manifest files or paths
Package-based: Compare installed version against a target version
node_modules/{package}/custom-elements.jsonRead the current project's elements for context:
cem://elements
Compare the two manifests and categorize changes:
string to enum, boolean to string)deprecated field or deprecation notes in descriptionsFor each breaking change, search the project for affected usage:
Report the number of affected files and locations.
## Migration Report: {package} {old-version} -> {new-version}
### Summary
- Breaking changes: X
- Potentially breaking: X
- New features: X
- Deprecations: X
- Files affected: X
### Breaking Changes
#### 1. `<old-element>` removed
**Impact**: Used in X files
**Migration**: Replace with `<new-element>`
```diff
- <old-element attr="value">content</old-element>
+ <new-element attr="value">content</new-element>
```
**Files affected**:
- `src/pages/login.html:15`
- `src/components/form.html:42`
#### 2. `variant` attribute on `<prefix-button>` renamed to `appearance`
**Impact**: Used in X files
**Migration**: Rename the attribute
```diff
- <prefix-button variant="primary">
+ <prefix-button appearance="primary">
```
### Deprecation Warnings
[Items that still work but will break in a future version]
### New Features
[Brief summary of what's new — the user might want to adopt these]
### Recommended Migration Order
1. [Fix breaking changes that cause build/runtime errors first]
2. [Address deprecation warnings]
3. [Optionally adopt new features]