@respira/wordpress-mcp-server 7.3.0 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/acf-tools.d.ts +0 -10
  2. package/dist/acf-tools.d.ts.map +1 -1
  3. package/dist/acf-tools.js +0 -15
  4. package/dist/acf-tools.js.map +1 -1
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +31 -36
  7. package/dist/config.js.map +1 -1
  8. package/dist/server.d.ts +0 -47
  9. package/dist/server.d.ts.map +1 -1
  10. package/dist/server.js +404 -462
  11. package/dist/server.js.map +1 -1
  12. package/dist/wordpress-client.d.ts +26 -29
  13. package/dist/wordpress-client.d.ts.map +1 -1
  14. package/dist/wordpress-client.js +115 -148
  15. package/dist/wordpress-client.js.map +1 -1
  16. package/package.json +2 -2
  17. package/skills/activity-report-composer/README.md +38 -0
  18. package/skills/activity-report-composer/SKILL.md +167 -0
  19. package/skills/activity-report-composer/metadata.json +42 -0
  20. package/skills/brand-voice-synthesizer/README.md +43 -0
  21. package/skills/brand-voice-synthesizer/SKILL.md +259 -0
  22. package/skills/brand-voice-synthesizer/metadata.json +46 -0
  23. package/skills/build-oxygen6-page/SKILL.md +59 -0
  24. package/skills/conversion-audit/README.md +37 -0
  25. package/skills/conversion-audit/SKILL.md +185 -0
  26. package/skills/conversion-audit/metadata.json +46 -0
  27. package/skills/custom-post-type-architect/README.md +34 -0
  28. package/skills/custom-post-type-architect/SKILL.md +158 -0
  29. package/skills/custom-post-type-architect/metadata.json +39 -0
  30. package/skills/design-system-synthesizer/README.md +46 -0
  31. package/skills/design-system-synthesizer/SKILL.md +395 -0
  32. package/skills/design-system-synthesizer/metadata.json +57 -0
  33. package/skills/figma-to-elementor/SKILL.md +204 -0
  34. package/skills/html-to-bricks/README.md +43 -0
  35. package/skills/html-to-bricks/SKILL.md +135 -0
  36. package/skills/html-to-bricks/metadata.json +41 -0
  37. package/skills/internal-link-builder/SKILL.md +258 -0
  38. package/skills/internal-link-builder/metadata.json +46 -0
  39. package/skills/migrate-beaver-builder-to-bricks/SKILL.md +251 -0
  40. package/skills/migrate-beaver-builder-to-gutenberg/SKILL.md +248 -0
  41. package/skills/migrate-brizy-to-gutenberg/SKILL.md +248 -0
  42. package/skills/migrate-divi-to-breakdance/SKILL.md +312 -0
  43. package/skills/migrate-divi-to-bricks/SKILL.md +321 -0
  44. package/skills/migrate-divi-to-gutenberg/SKILL.md +328 -0
  45. package/skills/migrate-elementor-to-breakdance/SKILL.md +287 -0
  46. package/skills/migrate-elementor-to-bricks/SKILL.md +289 -0
  47. package/skills/migrate-elementor-to-gutenberg/SKILL.md +327 -0
  48. package/skills/migrate-elementor-to-oxygen/SKILL.md +300 -0
  49. package/skills/migrate-oxygen-to-breakdance/SKILL.md +235 -0
  50. package/skills/migrate-oxygen-to-bricks/SKILL.md +237 -0
  51. package/skills/migrate-thrive-architect-to-gutenberg/SKILL.md +257 -0
  52. package/skills/migrate-visual-composer-to-gutenberg/SKILL.md +261 -0
  53. package/skills/migrate-wpbakery-to-bricks/SKILL.md +336 -0
  54. package/skills/migrate-wpbakery-to-gutenberg/SKILL.md +345 -0
  55. package/skills/mobile-experience-report/SKILL.md +719 -0
  56. package/skills/mobile-experience-report/telemetry.ts +137 -0
  57. package/skills/page-template-library/README.md +41 -0
  58. package/skills/page-template-library/SKILL.md +175 -0
  59. package/skills/page-template-library/metadata.json +44 -0
  60. package/skills/prime-the-agent/README.md +49 -0
  61. package/skills/prime-the-agent/SKILL.md +225 -0
  62. package/skills/prime-the-agent/metadata.json +46 -0
  63. package/skills/respira-setup-assistant/SKILL.md +386 -0
  64. package/skills/respira-setup-assistant/metadata.json +36 -0
  65. package/skills/seo-aeo-amplifier/README.md +61 -0
  66. package/skills/seo-aeo-amplifier/SKILL.md +277 -0
  67. package/skills/seo-aeo-amplifier/metadata.json +62 -0
  68. package/skills/stale-content-detector/README.md +41 -0
  69. package/skills/stale-content-detector/SKILL.md +156 -0
  70. package/skills/stale-content-detector/metadata.json +43 -0
  71. package/skills/technical-debt-audit/SKILL.md +691 -0
  72. package/skills/technical-debt-audit/telemetry.ts +142 -0
  73. package/skills/woocommerce-health-check/SKILL.md +719 -0
  74. package/skills/woocommerce-health-check/telemetry.ts +137 -0
  75. package/skills/wordpress-ai-image-optimizer/README.md +49 -0
  76. package/skills/wordpress-ai-image-optimizer/SKILL.md +232 -0
  77. package/skills/wordpress-ai-image-optimizer/metadata.json +63 -0
  78. package/skills/wordpress-site-dna/README.md +81 -0
  79. package/skills/wordpress-site-dna/SKILL.md +669 -0
  80. package/skills/wordpress-site-dna/telemetry.ts +137 -0
  81. package/dist/__tests__/acf-tool-routing.test.d.ts +0 -2
  82. package/dist/__tests__/acf-tool-routing.test.d.ts.map +0 -1
  83. package/dist/__tests__/acf-tool-routing.test.js +0 -37
  84. package/dist/__tests__/acf-tool-routing.test.js.map +0 -1
  85. package/dist/__tests__/cowork-bootstrap.test.d.ts +0 -2
  86. package/dist/__tests__/cowork-bootstrap.test.d.ts.map +0 -1
  87. package/dist/__tests__/cowork-bootstrap.test.js +0 -61
  88. package/dist/__tests__/cowork-bootstrap.test.js.map +0 -1
@@ -0,0 +1,248 @@
1
+ # Migrate Brizy to Gutenberg
2
+
3
+ **Version:** 2.0.0
4
+ **Updated:** 2026-06-30
5
+ **Freshly updated:** v2.0.0 weaves in the current Respira safety and precision flow — `respira_find_builder_targets` to inventory and scope source pages up front, a `respira_get_snapshot` checkpoint before any write, and surgical fixes via `respira_find_element` + `respira_update_element` (and `respira_batch_update` for multi-element or multi-page corrections) instead of rewriting whole pages. Rollback is now explicit (restore the snapshot, delete the draft duplicates). Reflects the current 16 supported builders.
6
+
7
+ Full-site migration from Brizy Builder to the WordPress block editor (Gutenberg). Audits every Brizy-built page, maps components to their Gutenberg block equivalents, builds a migration plan for approval, and executes page-by-page conversion into native block markup — all through duplicates so your live site stays untouched. Use this skill whenever someone mentions migrating from Brizy to Gutenberg, switching from Brizy to blocks, converting Brizy pages to the block editor, or moving away from Brizy to native WordPress.
8
+
9
+ ## What This Skill Does
10
+
11
+ Brizy uses a proprietary content format with its own component system, storing data in `brizy_post_uid` and related custom meta fields. Gutenberg uses a flat block structure in `post_content` with HTML comment delimiters. The migration requires extracting Brizy's custom format, identifying each component type, and translating it to equivalent core Gutenberg blocks.
12
+
13
+ This skill reads every Brizy page, extracts the builder content, translates each component to its Gutenberg block equivalent, and writes the result to duplicate pages in native block markup — giving you a complete parallel version of your site to review before going live.
14
+
15
+ **Handles:**
16
+ - Section → Group block mapping
17
+ - Row/Column → Columns/Column block mapping
18
+ - Text components → Paragraph/Heading blocks
19
+ - Image components → Image block
20
+ - Button components → Buttons/Button block
21
+ - Video components → Video/Embed block
22
+ - Icon components → basic equivalents
23
+ - Spacer/Divider → Spacer/Separator blocks
24
+ - Map component → basic embed fallback
25
+ - Form elements → flagged for manual handling (Contact Form 7 or similar)
26
+ - Custom HTML/embed content
27
+
28
+ ## What This Skill Does NOT Do
29
+
30
+ - Migrate Brizy's global styling system — must be recreated in theme settings or Global Styles
31
+ - Convert Brizy popup designs — Gutenberg has no native popup system
32
+ - Replicate Brizy's built-in form submissions — a separate form plugin is needed
33
+ - Migrate Brizy Cloud templates or synced content
34
+ - Convert Brizy Pro dynamic content features — flagged for manual handling
35
+ - Preserve Brizy's hover effects and animations — Gutenberg has limited animation support
36
+ - Guarantee pixel-perfect visual parity — different rendering approaches
37
+
38
+ ## Requirements
39
+
40
+ - Respira for WordPress plugin installed and connected
41
+ - MCP connection active (desktop or WebMCP)
42
+ - Brizy Builder active on the source site
43
+ - Read access to scan Brizy content
44
+ - Write access to create duplicates with Gutenberg content
45
+
46
+ ## Trigger Phrase
47
+
48
+ - "migrate brizy to gutenberg"
49
+
50
+ ## Alternative Triggers
51
+
52
+ - "convert brizy to blocks"
53
+ - "switch from brizy to gutenberg"
54
+ - "move brizy to block editor"
55
+ - "replace brizy with gutenberg"
56
+ - "brizy to wordpress blocks"
57
+ - "migrate brizy to native wordpress"
58
+
59
+ ## Builder Technical Context
60
+
61
+ **Source: Brizy**
62
+ - Content stored in post_meta key `brizy_post_uid` and Brizy's custom format
63
+ - Proprietary component structure with sections, rows, columns, and elements
64
+ - Read via `respira_extract_builder_content` with `builder=brizy`
65
+ - Components: sections, rows, columns, text, image, button, video, icon, spacer, map, form, embed, etc.
66
+
67
+ **Target: Gutenberg (Block Editor)**
68
+ - Content stored in `post_content` as HTML with block comment delimiters
69
+ - Format: `<!-- wp:paragraph --><p>Text</p><!-- /wp:paragraph -->`
70
+ - Write via standard WordPress content tools (`respira_update_page` / `respira_update_post`)
71
+ - Core blocks: `paragraph`, `heading`, `image`, `buttons`, `columns`, `group`, `html`, `video`, `separator`, `spacer`, `embed`, etc.
72
+
73
+ ## Execution Workflow
74
+
75
+ ### Phase 1: Pre-Migration Audit
76
+
77
+ 1. Verify Respira + MCP connection via `respira_get_site_context`. If unavailable, stop and show setup guidance.
78
+ 2. Detect Brizy presence via `respira_get_builder_info` or `respira_list_plugins`.
79
+ 3. Inventory all Brizy-built content:
80
+ - `respira_list_pages` and `respira_list_posts` — identify all content
81
+ - `respira_find_builder_targets` with `builder=brizy` — find Brizy-managed pages
82
+ 4. For each Brizy page, extract content:
83
+ - `respira_extract_builder_content` with `builder=brizy`
84
+ - Catalog: component types used, nesting depth, popups, forms, dynamic content usage
85
+ 5. Produce an **Audit Report**:
86
+ - Total pages/posts using Brizy
87
+ - Component type frequency (how many sections, text blocks, images, etc.)
88
+ - Complexity flags (popups, forms, dynamic content, Brizy Pro features)
89
+ - Estimated migration difficulty per page (simple / moderate / complex)
90
+
91
+ ### Phase 2: Migration Plan
92
+
93
+ Present a structured migration plan:
94
+
95
+ ```
96
+ ## Brizy → Gutenberg Migration Plan
97
+
98
+ ### Site Overview
99
+ - Total Brizy pages: X
100
+ - Simple pages (direct mapping): X
101
+ - Moderate pages (some manual review needed): X
102
+ - Complex pages (significant manual work): X
103
+
104
+ ### Component Mapping
105
+ | Brizy Component | Gutenberg Block | Notes |
106
+ |---|---|---|
107
+ | Section | Group | Container mapping |
108
+ | Row / Columns | Columns / Column | Layout structure |
109
+ | Text | Paragraph / Heading | Content parsed into blocks |
110
+ | Image | Image | Direct mapping |
111
+ | Button | Buttons > Button | Wrapped in container |
112
+ | ... | ... | ... |
113
+
114
+ ### Migration Order
115
+ 1. [Page Title] — Simple — estimated 2 min
116
+ 2. [Page Title] — Moderate — estimated 5 min
117
+ ...
118
+
119
+ ### Items Requiring Manual Attention
120
+ - [Page X] — Brizy popup (no Gutenberg equivalent)
121
+ - [Page Y] — Brizy form (needs form plugin replacement)
122
+ - Global styles — must be configured in theme settings
123
+ ```
124
+
125
+ Then ask:
126
+
127
+ > Here's the migration plan. Would you like me to:
128
+ > 1. Migrate all pages (creates duplicates for review)
129
+ > 2. Migrate only simple pages first
130
+ > 3. Migrate specific pages you choose
131
+ > 4. Just keep this as a reference — no changes
132
+
133
+ Wait for explicit confirmation before proceeding.
134
+
135
+ ### Phase 3: Page-by-Page Migration
136
+
137
+ For each approved page:
138
+
139
+ 1. Extract Brizy content via `respira_extract_builder_content` with `builder=brizy`
140
+ 2. Map each Brizy component to Gutenberg blocks:
141
+ - Sections → `<!-- wp:group -->` blocks
142
+ - Rows/Columns → `<!-- wp:columns -->` with `<!-- wp:column -->` children
143
+ - Text → Parse into `<!-- wp:paragraph -->` and `<!-- wp:heading -->` blocks
144
+ - Image → `<!-- wp:image -->` with src, alt, caption
145
+ - Button → `<!-- wp:buttons -->` wrapper with `<!-- wp:button -->` child
146
+ - Video → `<!-- wp:video -->` or `<!-- wp:embed -->` block
147
+ - Spacer → `<!-- wp:spacer -->` block
148
+ - Custom HTML → `<!-- wp:html -->` block
149
+ - Preserve text content, image URLs, link targets
150
+ - Flag unmappable components with `<!-- wp:paragraph --><p>[MIGRATION NOTE: ...]</p><!-- /wp:paragraph -->`
151
+ 3. Assemble the complete Gutenberg block markup
152
+ 4. Take a `respira_get_snapshot` checkpoint of the target before any write, so the page can be restored exactly if the conversion needs unwinding
153
+ 5. Create a duplicate via `respira_create_page_duplicate` or `respira_create_post_duplicate`
154
+ 6. Write the Gutenberg markup into the duplicate's `post_content` via `respira_update_page` or `respira_update_post`
155
+ 7. Surgical fixes (not a rewrite): when a single block lands wrong — a heading, a button label, a spacing value — locate it with `respira_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.
156
+ 8. Log the migration result (success, warnings, manual review items)
157
+
158
+ ### Phase 4: Post-Migration Verification
159
+
160
+ 1. Summarize all migrated pages with status:
161
+ - Clean migrations (no issues)
162
+ - Migrations with warnings (flagged items needing review)
163
+ - Failed migrations (if any)
164
+ 2. List all manual review items:
165
+ - Popups that need a separate popup plugin solution
166
+ - Forms that need a WordPress form plugin (Contact Form 7, WPForms, etc.)
167
+ - Dynamic content that needs reconnecting
168
+ - Brizy Pro features that have no Gutenberg equivalent
169
+ 3. Provide review instructions:
170
+ - Where to find duplicates in WordPress admin
171
+ - How to preview pages in the block editor
172
+ - How to delete duplicates if not wanted
173
+
174
+ ## Safety Model
175
+
176
+ - Read-only analysis first — full Brizy content audit before any changes
177
+ - Explicit user confirmation before creating any duplicates
178
+ - Snapshot before every write — `respira_get_snapshot` captures the target so it can be returned to its exact prior state
179
+ - Duplicate-first only — never modifies live/published Brizy content
180
+ - Never auto-publishes duplicates
181
+ - Explicit rollback path — restore the snapshot via `respira_restore_snapshot`, or delete the draft duplicates, to undo a migration cleanly
182
+ - Preserves all original Brizy content untouched
183
+
184
+ ## Honest Disclaimer
185
+
186
+ This skill converts Brizy page structures to Gutenberg block markup and creates duplicates for review.
187
+
188
+ It cannot:
189
+ - Guarantee pixel-perfect visual parity between builders
190
+ - Migrate Brizy popups or forms automatically
191
+ - Convert Brizy Pro dynamic content features
192
+ - Replicate hover effects or animations
193
+ - Replace a thorough manual QA pass on every page
194
+
195
+ It can:
196
+ - Map 65-80% of standard Brizy components to core Gutenberg blocks
197
+ - Preserve content, images, links, and basic layout structure
198
+ - Move you off a third-party builder dependency to native WordPress
199
+ - Save days of manual rebuild work
200
+ - Identify exactly what needs manual attention
201
+
202
+ ## Tooling
203
+
204
+ **Core WordPress tools**
205
+ - `respira_get_site_context`
206
+ - `respira_get_builder_info`
207
+ - `respira_list_pages`
208
+ - `respira_list_posts`
209
+ - `respira_list_plugins`
210
+ - `respira_find_builder_targets`
211
+ - `respira_extract_builder_content`
212
+ - `respira_get_snapshot`
213
+ - `respira_restore_snapshot`
214
+ - `respira_find_element`
215
+ - `respira_update_element`
216
+ - `respira_batch_update`
217
+ - `respira_create_page_duplicate`
218
+ - `respira_create_post_duplicate`
219
+ - `respira_update_page`
220
+ - `respira_update_post`
221
+ - `respira_read_page`
222
+ - `respira_read_post`
223
+
224
+ ## Telemetry
225
+
226
+ After run completion, send fire-and-forget usage tracking to:
227
+
228
+ - `POST https://www.respira.press/api/skills/track-usage`
229
+
230
+ Include:
231
+ - `skill_slug = migrate-brizy-to-gutenberg`
232
+ - site/version context
233
+ - duration and success
234
+ - pages audited, pages migrated, warnings count
235
+ - tools used
236
+
237
+ Never block user flow on telemetry failure.
238
+
239
+ ## Related Skills
240
+
241
+ - WordPress Site DNA (understand site structure before migrating)
242
+ - Technical Debt Audit (clean up before or after migration)
243
+ - SEO & AEO Amplifier (verify SEO preservation post-migration)
244
+
245
+ ---
246
+
247
+ Built by Respira Team
248
+ https://respira.press/skills/migrate-brizy-to-gutenberg
@@ -0,0 +1,312 @@
1
+ # Migrate Divi to Breakdance
2
+
3
+ **Version:** 2.0.0
4
+ **Updated:** 2026-06-30
5
+ **Freshly updated:** v2.0.0 weaves in the current Respira safety and precision flow — `respira_find_builder_targets` to inventory and scope the Divi source pages up front, a `respira_get_snapshot` checkpoint before any write, and surgical fixes via `respira_find_element` + `respira_update_element` (and `respira_batch_update` for multi-element or multi-page corrections) instead of re-injecting whole pages. Rollback is now explicit (restore the snapshot, delete the draft duplicates). Reflects the current 16 supported builders.
6
+
7
+ Converts Divi-built WordPress pages to Breakdance Builder. Parses Divi's shortcode-based content from post_content, maps each module to its Breakdance element equivalent, generates a migration plan for approval, and writes Breakdance content to the target pages. Use this skill whenever someone wants to move from Divi to Breakdance, switch builders from Divi to Breakdance, or rebuild Divi pages in Breakdance.
8
+
9
+ ## What This Skill Does
10
+
11
+ Divi and Breakdance take very different approaches to content storage — Divi uses nested shortcodes in `post_content`, while Breakdance uses a structured format in post meta. This skill bridges that gap by parsing the full Divi shortcode tree, understanding each module's intent, and recreating it as the appropriate Breakdance element. Breakdance was built by the Oxygen team with a focus on clean output and intuitive editing, making it a popular Divi replacement for users who want better performance without a steep learning curve.
12
+
13
+ **Handles:**
14
+ - et_pb_section → Breakdance Section element
15
+ - et_pb_row/et_pb_column → Breakdance Div elements with flex layout
16
+ - et_pb_text → Breakdance Text element
17
+ - et_pb_blurb → Breakdance Icon Box or container with children
18
+ - et_pb_image → Breakdance Image element
19
+ - et_pb_button → Breakdance Button element
20
+ - et_pb_video → Breakdance Video element
21
+ - et_pb_divider → Breakdance Separator element
22
+ - et_pb_accordion/et_pb_toggle → Breakdance Accordion element
23
+ - et_pb_tabs → Breakdance Tabs element
24
+ - et_pb_gallery → Breakdance Gallery element
25
+ - et_pb_slider → Breakdance Slider element
26
+ - et_pb_pricing_tables → Breakdance Pricing Table element
27
+ - et_pb_code → Breakdance Code element
28
+ - et_pb_counters → Breakdance Progress Bar element
29
+ - et_pb_map → Breakdance Map element
30
+ - Custom CSS → Breakdance custom CSS fields
31
+ - Column widths → Breakdance flex percentages
32
+
33
+ **Preserves:**
34
+ - All text content and inline formatting
35
+ - Image URLs, alt text, dimensions
36
+ - Typography settings (font, size, weight, line-height)
37
+ - Color values and gradients
38
+ - Spacing (margin, padding)
39
+ - Background images, overlays
40
+ - Border and shadow settings
41
+ - Button labels, URLs, targets
42
+ - CSS classes
43
+
44
+ ## What This Skill Does NOT Do
45
+
46
+ - **Specialty sections** — Divi's specialty layouts need manual setup in Breakdance.
47
+ - **Global modules** — Divi's `et_pb_layout` global modules are inlined during migration. Breakdance global blocks are separate.
48
+ - **Third-party Divi modules** — Plugins extending Divi are flagged for manual recreation.
49
+ - **Divi theme customizer** — Global design settings from the Divi customizer must be configured in Breakdance's design settings.
50
+ - **Dynamic content** — Divi's dynamic features need Breakdance's dynamic data system.
51
+ - **Contact forms** — et_pb_contact_form must be rebuilt with Breakdance's form element or a forms plugin.
52
+ - **Divi Library** — Layouts in et_pb_layout post type are not migrated automatically.
53
+ - **Motion effects and animations** — Scroll effects differ between builders.
54
+ - **Theme dependency** — If using Divi theme, switching to Breakdance means using a different base theme.
55
+
56
+ ## Requirements
57
+
58
+ - Respira for WordPress plugin installed and connected
59
+ - MCP connection active (desktop or WebMCP)
60
+ - Divi theme or Divi Builder plugin active (to read source content)
61
+ - Breakdance plugin installed and active (to write target content)
62
+ - Read access to scan Divi content
63
+ - Write access to create duplicates with Breakdance content
64
+
65
+ ## Trigger Phrase
66
+
67
+ - "migrate divi to breakdance"
68
+
69
+ ## Alternative Triggers
70
+
71
+ - "convert divi to breakdance"
72
+ - "switch from divi to breakdance"
73
+ - "rebuild divi pages in breakdance"
74
+ - "move from divi to breakdance"
75
+ - "divi to breakdance migration"
76
+ - "replace divi with breakdance"
77
+
78
+ ## Source Builder: Divi
79
+
80
+ Divi stores content as shortcodes in `post_content`:
81
+
82
+ ```
83
+ [et_pb_section fb_built="1" _builder_version="4.x"]
84
+ [et_pb_row]
85
+ [et_pb_column type="4_4"]
86
+ [et_pb_text]<p>Content</p>[/et_pb_text]
87
+ [et_pb_image src="photo.jpg" alt="Photo"][/et_pb_image]
88
+ [/et_pb_column]
89
+ [/et_pb_row]
90
+ [/et_pb_section]
91
+ ```
92
+
93
+ Key Divi specifics:
94
+ - **Hierarchy**: section → row → column → module (strict nesting)
95
+ - **Column types**: `4_4` (100%), `1_2` (50%), `1_3` (33%), `2_3` (66%), `1_4` (25%), `3_4` (75%)
96
+ - **Settings as attributes**: `background_color`, `custom_margin`, `custom_padding`
97
+ - **Content encoding**: HTML entities, percent-encoding in attribute values
98
+ - **Global modules**: `global_module` attribute referencing `et_pb_layout` post
99
+ - **Section types**: regular, fullwidth, specialty
100
+
101
+ Read Divi content via `respira_extract_builder_content` with `builder=divi`.
102
+
103
+ ## Target Builder: Breakdance
104
+
105
+ Breakdance stores content in post meta with a structured element format.
106
+
107
+ Key Breakdance specifics:
108
+ - Elements use types like `EssentialElements\\Heading`, `EssentialElements\\Text`, `EssentialElements\\Image`
109
+ - Section and Div elements for layout structure
110
+ - Clean CSS output with minimal wrapper markup
111
+ - Built-in form builder, WooCommerce support, popup system
112
+ - Responsive design through breakpoint-specific settings
113
+ - Created by the Oxygen team — combines Oxygen's clean output with friendlier UX
114
+
115
+ Write Breakdance content via `respira_inject_builder_content` with `builder=breakdance`.
116
+
117
+ ## Execution Workflow
118
+
119
+ ### Phase 1: Pre-Migration Audit
120
+
121
+ 1. Verify Respira + MCP connection via `respira_get_site_context`. If unavailable, stop and show setup guidance.
122
+ 2. Confirm Divi is active via `respira_list_plugins` and `respira_get_site_context`.
123
+ 3. Confirm Breakdance is installed and active via `respira_list_plugins`.
124
+ 4. **Important**: If using Divi theme, note the user needs a compatible base theme for Breakdance.
125
+ 5. Scan and scope all Divi content:
126
+ - `respira_list_pages` and `respira_list_posts` — identify all content
127
+ - `respira_find_builder_targets` with `builder=divi` — inventory the Divi-managed pages to scope the migration
128
+ - Confirm the builder per page via `respira_get_builder_info`
129
+ 6. Extract Divi content via `respira_extract_builder_content` with `builder=divi`
130
+ 7. Build inventory:
131
+ - Total Divi pages/posts
132
+ - Module types (frequency count)
133
+ - Specialty sections detected
134
+ - Global modules referenced
135
+ - Third-party modules
136
+ - Content encoding issues
137
+ - Complexity per page
138
+
139
+ ### Phase 2: Migration Plan
140
+
141
+ ```
142
+ ## Divi → Breakdance Migration Plan
143
+
144
+ ### Theme Note
145
+ [If Divi theme]: Switching from Divi theme. Breakdance works with most
146
+ themes — you'll need a lightweight base theme (Astra, GeneratePress, etc.)
147
+ or Breakdance can handle full site rendering.
148
+
149
+ ### Why Breakdance
150
+ Breakdance produces significantly cleaner CSS and HTML output compared to
151
+ Divi. Built by the Oxygen team, it offers similar power with a more
152
+ intuitive interface. Most Divi modules have direct Breakdance equivalents.
153
+
154
+ ### Site Inventory
155
+ - Total Divi pages: X
156
+ - Total modules to convert: X
157
+ - Auto-convertible: X (Y%)
158
+ - Manual attention: X (Y%)
159
+
160
+ ### Module → Element Mapping
161
+ | Divi Module | Breakdance Element | Status |
162
+ |-------------------|-------------------|--------|
163
+ | et_pb_text | Text | Auto |
164
+ | et_pb_image | Image | Auto |
165
+ | et_pb_blurb | Icon Box | Auto |
166
+ | et_pb_button | Button | Auto |
167
+ | et_pb_slider | Slider | Auto |
168
+ | et_pb_accordion | Accordion | Auto |
169
+ | et_pb_pricing | Pricing Table | Auto |
170
+ | et_pb_contact | Form | Partial|
171
+ | [divi addon] | — | Manual |
172
+
173
+ ### Page-by-Page Plan
174
+ 1. **[Page Title]** — X modules, [complexity]
175
+ 2. ...
176
+ ```
177
+
178
+ Ask for confirmation:
179
+ > Ready to migrate? Your original Divi pages remain completely untouched.
180
+ > 1. Migrate all pages
181
+ > 2. Migrate specific pages
182
+ > 3. Start with a test page (recommended)
183
+ > 4. Just keep this plan
184
+
185
+ ### Phase 3: Page-by-Page Migration
186
+
187
+ For each approved page:
188
+
189
+ 1. Read Divi content via `respira_extract_builder_content` with `builder=divi`
190
+ 2. Parse the shortcode tree:
191
+ - Build section → row → column → module hierarchy
192
+ - Decode encoded content
193
+ - Resolve global module references
194
+ - Calculate column widths from type attributes
195
+ 3. Generate Breakdance element structure:
196
+ - `et_pb_section` → Breakdance Section
197
+ - `et_pb_row` + `et_pb_column` → Breakdance Div elements with flex layout and percentage widths
198
+ - Map each module to Breakdance element:
199
+ - `et_pb_text` → Text element (preserve HTML content)
200
+ - `et_pb_blurb` → Icon Box element (map icon, title, body)
201
+ - `et_pb_image` → Image element (map src, alt)
202
+ - `et_pb_button` → Button element (map text, URL, style)
203
+ - `et_pb_accordion` → Accordion element (map items)
204
+ - `et_pb_tabs` → Tabs element (map tab titles and content)
205
+ - Map colors, spacing, typography to Breakdance settings
206
+ - Flag unmappable modules
207
+ 4. Take a `respira_get_snapshot` checkpoint of the target before any write, so the page can be restored exactly if the conversion needs unwinding
208
+ 5. Create duplicate via `respira_create_page_duplicate` or `respira_create_post_duplicate`
209
+ 6. Write Breakdance content to the duplicate via `respira_inject_builder_content` with `builder=breakdance`
210
+ 7. Surgical fixes (not a re-inject): when a single element lands wrong — a heading, a button label, a spacing value — locate it with `respira_find_element` and correct it in place with `respira_update_element`. For repeated corrections across many elements or several migrated pages, batch them with `respira_batch_update` rather than re-injecting whole pages.
211
+ 8. Report status
212
+
213
+ ### Phase 4: Post-Migration Verification
214
+
215
+ 1. Summarize migrations:
216
+ - Pages migrated, elements created, items flagged
217
+ 2. For each migrated page:
218
+ - Link to Breakdance editor
219
+ - Flagged items list
220
+ - Layout and encoding notes
221
+ 3. Post-migration checklist:
222
+ - [ ] Open each duplicate in Breakdance editor
223
+ - [ ] Verify section and layout structure
224
+ - [ ] Check responsive views
225
+ - [ ] Verify images and media
226
+ - [ ] Test links and buttons
227
+ - [ ] Recreate flagged modules
228
+ - [ ] Rebuild forms with Breakdance form element
229
+ - [ ] Set up global templates (header/footer) in Breakdance
230
+ - [ ] Review Breakdance's clean CSS output
231
+ - [ ] Compare with Divi original
232
+ - [ ] Check for Divi shortcode remnants
233
+
234
+ ## Safety Model
235
+
236
+ - Read-only analysis first — full content scan before any changes
237
+ - Explicit user confirmation required before creating duplicates
238
+ - Original Divi pages are never modified or deleted
239
+ - All migrated content goes to draft duplicates only
240
+ - Never auto-publishes migrated pages
241
+ - Takes a `respira_get_snapshot` checkpoint before each write
242
+ - Explicit rollback: restore the snapshot via `respira_restore_snapshot`, or delete the draft duplicates if they are not wanted
243
+ - Warns about theme implications if using Divi theme
244
+
245
+ ## Honest Disclaimer
246
+
247
+ This skill converts Divi page content to Breakdance format and creates draft duplicates for review.
248
+
249
+ It cannot:
250
+ - Migrate specialty section layouts perfectly
251
+ - Convert global modules to Breakdance global blocks automatically
252
+ - Handle third-party Divi plugin modules
253
+ - Transfer Divi theme customizer settings
254
+ - Migrate popups, dynamic content, or animations
255
+ - Guarantee pixel-perfect visual fidelity from shortcodes
256
+
257
+ It can:
258
+ - Parse Divi's complex shortcode hierarchies including encoded content
259
+ - Convert 80-90% of standard Divi modules to Breakdance elements
260
+ - Produce cleaner CSS and HTML output than Divi
261
+ - Preserve all text, images, links, and core styling
262
+ - Save significant manual rebuilding time
263
+ - Clearly flag everything needing manual work
264
+ - Keep original pages completely safe
265
+
266
+ ## Tooling
267
+
268
+ **Core WordPress tools**
269
+ - `respira_get_site_context`
270
+ - `respira_list_plugins`
271
+ - `respira_list_pages`
272
+ - `respira_list_posts`
273
+ - `respira_read_page`
274
+ - `respira_read_post`
275
+ - `respira_get_builder_info`
276
+ - `respira_extract_builder_content`
277
+ - `respira_inject_builder_content`
278
+ - `respira_find_builder_targets`
279
+ - `respira_create_page_duplicate`
280
+ - `respira_create_post_duplicate`
281
+ - `respira_get_snapshot`
282
+ - `respira_restore_snapshot`
283
+ - `respira_find_element`
284
+ - `respira_update_element`
285
+ - `respira_batch_update`
286
+
287
+ ## Telemetry
288
+
289
+ After run completion, send fire-and-forget usage tracking to:
290
+
291
+ - `POST https://www.respira.press/api/skills/track-usage`
292
+
293
+ Include:
294
+ - `skill_slug = migrate-divi-to-breakdance`
295
+ - site/version context
296
+ - duration and success
297
+ - pages migrated, elements created, modules flagged counts
298
+ - tools used
299
+
300
+ Never block user flow on telemetry failure.
301
+
302
+ ## Related Skills
303
+
304
+ - WordPress Site DNA (understand site structure and theme before migrating)
305
+ - Internal Link Builder (verify internal links post-migration)
306
+ - SEO & AEO Amplifier (verify SEO preservation post-migration)
307
+ - Technical Debt Audit (find Divi shortcode remnants post-migration)
308
+
309
+ ---
310
+
311
+ Built by Respira Team
312
+ https://respira.press/skills/migrate-divi-to-breakdance