Best for
- Use when the user says 'migrate wpbakery to gutenberg', 'remove wpbakery', 'get rid of visual composer', or 'decommission wpbakery'.
respira-press/agent-skills-wordpress/skills/migrate-wpbakery-to-gutenberg/SKILL.md
Use when the user says 'migrate wpbakery to gutenberg', 'remove wpbakery', 'get rid of visual composer', or 'decommission wpbakery'. Parses WPBakery shortcodes, maps elements to core blocks, and creates draft duplicates for review.
Decision brief
Version: 2.1.0 Updated: 2026-08-04 Freshly updated: v2.1.0 adds design-token awareness: conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carry…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/respira-press/agent-skills-wordpress --skill "skills/migrate-wpbakery-to-gutenberg"Inspect the Agent Skill "migrate-wpbakery-to-gutenberg" from https://github.com/respira-press/agent-skills-wordpress/blob/5d1da85c853404519229c5514df332b54031304c/skills/migrate-wpbakery-to-gutenberg/SKILL.md at commit 5d1da85c853404519229c5514df332b54031304c. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance. 2. Confirm WPBakery is active via respiralistplugins. 3. Check WordPress version (6.0+ required, 6.3+ ideal). 4. Identify active theme — note if it bundles WPBakery and ad…
1. Verify Respira + MCP connection via respiragetsitecontext. If unavailable, stop and show setup guidance. 2. Confirm WPBakery is active via respiralistplugins. 3. Check WordPress version (6.0+ required, 6.3+ ideal). 4. Identify active theme — note if it bundles WPBakery and ad…
Review the “Phase 2: Migration Plan” section in the pinned source before continuing.
1. Read WPBakery content via respiraextractbuildercontent with builder=wpbakery 2. Parse the shortcode tree: - Identify vcrow → vccolumn → element hierarchy - Decode CSS from Design Options attribute - Decode link URLs from WPBakery's percent-encoding format - Handle vcrowinner/…
1. Summarize all migrations - Design tokens registered in the block editor's global styles (token names and counts) 2. For each migrated page: - Link to edit in Gutenberg - Flagged items - Design Options settings that were simplified 3. Post-migration checklist: - [ ] Open each…
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 97/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 42 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Version: 2.1.0 Updated: 2026-08-04 Freshly updated: v2.1.0 adds design-token awareness: conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carrying value copies. Reuse registered tokens instead of re-inlining raw values, and report the registration in the migration summary.
Converts WPBakery Page Builder (formerly Visual Composer) pages to native Gutenberg blocks. Parses WPBakery's shortcode-based content from post_content, maps each element to its closest core block equivalent, generates a migration plan for approval, and writes clean block markup to the target pages. Use this skill whenever someone wants to move from WPBakery to Gutenberg, eliminate the WPBakery dependency, switch to native blocks, or modernize an older WordPress site still running WPBakery.
WPBakery is one of the oldest and most widely-installed WordPress page builders — millions of sites still run it. It stores content as shortcodes in post_content using the [vc_*] prefix. The good news: WPBakery's shortcode structure is relatively straightforward compared to Divi's encoding complexities. The challenge: many WPBakery sites are older and may use deprecated elements, custom shortcodes from themes, or VC-specific plugins that add nonstandard elements.
This skill parses the WPBakery shortcode tree, extracts content and settings, and generates equivalent Gutenberg blocks. The result is clean, modern WordPress content free from shortcode dependencies.
Handles:
Preserves:
el_class attributeel_id attributecss attribute containing encoded CSS) stores background, border, padding as a single encoded string. Basic properties are extracted; complex combinations may be simplified.WPBakery stores content as shortcodes in post_content:
[vc_row full_width="stretch_row" css=".vc_custom_123{padding-top:40px}"]
[vc_column width="1/2" el_class="my-class"]
[vc_column_text]
<h2>Welcome</h2>
<p>Content with <strong>formatting</strong>.</p>
[/vc_column_text]
[vc_single_image image="456" img_size="large" alignment="center"]
[/vc_column]
[vc_column width="1/2"]
[vc_btn title="Learn More" style="flat" color="primary" link="url:https%3A%2F%2Fexample.com"]
[/vc_column]
[/vc_row]
Key WPBakery specifics:
[vc_row] → [vc_column width="1/2"] → elements1/1, 1/2, 1/3, 2/3, 1/4, 3/4, 1/6, 5/6[vc_row_inner][vc_column_inner] for nested layoutscss=".vc_custom_12345{background-color:#f5f5f5;padding:20px}"url:https%3A%2F%2F...||target:_blankfull_width attribute: stretch_row, stretch_row_content, stretch_row_content_no_spacesel_class for custom CSS classes, el_id for IDsRead WPBakery content via respira_extract_builder_content with builder=wpbakery.
Gutenberg stores content in post_content as HTML with block delimiters:
<!-- wp:columns -->
<div class="wp-block-columns">
<!-- wp:column {"width":"50%"} -->
<div class="wp-block-column" style="flex-basis:50%">
<!-- wp:heading {"level":2} -->
<h2 class="wp-block-heading">Welcome</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Content with <strong>formatting</strong>.</p>
<!-- /wp:paragraph -->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
Key Gutenberg specifics:
style attributepost_contentWrite Gutenberg content via respira_update_page or respira_update_post targeting the content field.
respira_get_site_context. If unavailable, stop and show setup guidance.respira_list_plugins.respira_list_pages and respira_list_posts — identify all contentrespira_find_builder_targets with builder=wpbakery — inventory the WPBakery-managed pages to scope the migrationrespira_get_builder_inforespira_extract_builder_content with builder=wpbakery## WPBakery → Gutenberg Migration Plan
### Site Context
WPBakery sites are often older WordPress installations. Consider this migration
as a modernization opportunity — not just a builder swap.
### Theme Note
[If theme bundles WPBakery]: Your theme ([theme name]) bundles WPBakery
and likely adds custom elements. These theme-specific elements (X found)
will need manual recreation. Consider whether this theme should also
be updated to a modern block theme.
### Site Inventory
- Total WPBakery pages: X
- Total elements to convert: X
- Direct block equivalents: X (Y%)
- Approximate equivalents: X (Y%)
- Manual recreation needed: X (Y%)
### Element Mapping Summary
| WPBakery Element | Gutenberg Block | Fidelity |
|--------------------|-----------------|-----------|
| vc_column_text | wp:paragraph | Exact |
| vc_single_image | wp:image | Exact |
| vc_custom_heading | wp:heading | Exact |
| vc_btn | wp:buttons | Close |
| vc_row/vc_column | wp:columns | Close |
| vc_gallery | wp:gallery | Close |
| vc_toggle | wp:details | Close |
| vc_grid | wp:query | Manual |
| [theme element] | — | Manual |
### Design Options Analysis
- Pages with simple Design Options: X (colors and padding — auto-mapped)
- Pages with complex Design Options: X (gradients, borders — partially mapped)
### Page-by-Page Plan
1. **[Page Title]** — X elements, [complexity]
2. ...
Ask for confirmation:
WPBakery → Gutenberg is a modernization step. Pages will be cleaner and faster.
- Migrate all pages
- Migrate specific pages
- Start with a test page (recommended for sites with theme-bundled elements)
- Just keep this plan
For each approved page:
respira_extract_builder_content with builder=wpbakeryvc_row → <!-- wp:columns --> (check full_width for alignment)vc_column → <!-- wp:column {"width":"X%"} --> (convert fractions: 1/2→50%, 1/3→33.33%, etc.)vc_column_text → Parse inner HTML, split into appropriate blocks:
<h2> → <!-- wp:heading {"level":2} --><p> → <!-- wp:paragraph --><ul>/<ol> → <!-- wp:list -->vc_single_image → <!-- wp:image {"id":N,"sizeSlug":"large"} -->vc_btn → <!-- wp:buttons --> (decode URL, map style/color)vc_custom_heading → <!-- wp:heading --> (extract tag, text, alignment)el_class as className in block attributesel_id as anchor in block attributes<!-- MIGRATION NOTE: ... -->respira_get_snapshot checkpoint of the target before any write, so the page can be restored exactly if the conversion needs unwindingrespira_create_page_duplicate or respira_create_post_duplicaterespira_update_page or respira_update_postrespira_find_element and correct it in place with respira_update_element. For repeated corrections across many blocks or several migrated pages, batch them with respira_batch_update rather than regenerating and re-writing whole pages.Conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and the converted pages reference those tokens instead of carrying value copies. When fixing or extending a migrated page, reuse the registered tokens (respira_list_design_tokens shows them) rather than re-inlining raw hex values or font stacks. And say so when you finish: the migration summary should name the tokens that were registered and note that migrated pages reference them.
respira_get_snapshot checkpoint before each writerespira_restore_snapshot, or delete the draft duplicates if they are not wantedThis skill converts WPBakery page content to Gutenberg blocks and creates draft duplicates for review.
It cannot:
It can:
Core WordPress tools
respira_get_site_contextrespira_list_pluginsrespira_list_pagesrespira_list_postsrespira_read_pagerespira_read_postrespira_get_builder_inforespira_extract_builder_contentrespira_find_builder_targetsrespira_create_page_duplicaterespira_create_post_duplicaterespira_update_pagerespira_update_postrespira_get_snapshotrespira_restore_snapshotrespira_find_elementrespira_update_elementrespira_batch_updateAfter run completion, send fire-and-forget usage tracking to:
POST https://www.respira.press/api/skills/track-usageInclude:
skill_slug = migrate-wpbakery-to-gutenbergNever block user flow on telemetry failure.
Built by Respira Team https://respira.press/skills/migrate-wpbakery-to-gutenberg
Frequently asked questions
Version: 2.1.0 Updated: 2026-08-04 Freshly updated: v2.1.0 adds design-token awareness: conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carry…
The source record exposes this install command: npx skills add https://github.com/respira-press/agent-skills-wordpress --skill "skills/migrate-wpbakery-to-gutenberg". Inspect the command and pinned source before running it.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
coreyhaines31/marketingskills
When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers o
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance
narrative-io/narrative-skills-marketplace
Translate a fuzzy analytical question into a rigorous investigation plan. Interrogates the ask, grounds the plan in the available data dictionary, applies analytical best practices, and produces a structured brief of query specifications for a downstream query-writing skill. Plans, does not write SQL. Use when: "why did X drop", "is there a relationship between A and B", "who are our highest-value customers", "what's driving the change in Y", "investigate this trend", "design an analysis for", "