@respira/wordpress-mcp-server 7.3.0 → 7.4.1

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 (92) hide show
  1. package/dist/__tests__/site-list-self-heal.test.d.ts +18 -0
  2. package/dist/__tests__/site-list-self-heal.test.d.ts.map +1 -0
  3. package/dist/__tests__/site-list-self-heal.test.js +169 -0
  4. package/dist/__tests__/site-list-self-heal.test.js.map +1 -0
  5. package/dist/acf-tools.d.ts +0 -10
  6. package/dist/acf-tools.d.ts.map +1 -1
  7. package/dist/acf-tools.js +0 -15
  8. package/dist/acf-tools.js.map +1 -1
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +31 -36
  11. package/dist/config.js.map +1 -1
  12. package/dist/server.d.ts +34 -46
  13. package/dist/server.d.ts.map +1 -1
  14. package/dist/server.js +560 -463
  15. package/dist/server.js.map +1 -1
  16. package/dist/wordpress-client.d.ts +33 -29
  17. package/dist/wordpress-client.d.ts.map +1 -1
  18. package/dist/wordpress-client.js +124 -148
  19. package/dist/wordpress-client.js.map +1 -1
  20. package/package.json +2 -2
  21. package/skills/activity-report-composer/README.md +38 -0
  22. package/skills/activity-report-composer/SKILL.md +167 -0
  23. package/skills/activity-report-composer/metadata.json +42 -0
  24. package/skills/brand-voice-synthesizer/README.md +43 -0
  25. package/skills/brand-voice-synthesizer/SKILL.md +259 -0
  26. package/skills/brand-voice-synthesizer/metadata.json +46 -0
  27. package/skills/build-oxygen6-page/SKILL.md +59 -0
  28. package/skills/conversion-audit/README.md +37 -0
  29. package/skills/conversion-audit/SKILL.md +185 -0
  30. package/skills/conversion-audit/metadata.json +46 -0
  31. package/skills/custom-post-type-architect/README.md +34 -0
  32. package/skills/custom-post-type-architect/SKILL.md +158 -0
  33. package/skills/custom-post-type-architect/metadata.json +39 -0
  34. package/skills/design-system-synthesizer/README.md +46 -0
  35. package/skills/design-system-synthesizer/SKILL.md +395 -0
  36. package/skills/design-system-synthesizer/metadata.json +57 -0
  37. package/skills/figma-to-elementor/SKILL.md +204 -0
  38. package/skills/html-to-bricks/README.md +43 -0
  39. package/skills/html-to-bricks/SKILL.md +135 -0
  40. package/skills/html-to-bricks/metadata.json +41 -0
  41. package/skills/internal-link-builder/SKILL.md +258 -0
  42. package/skills/internal-link-builder/metadata.json +46 -0
  43. package/skills/migrate-beaver-builder-to-bricks/SKILL.md +251 -0
  44. package/skills/migrate-beaver-builder-to-gutenberg/SKILL.md +248 -0
  45. package/skills/migrate-brizy-to-gutenberg/SKILL.md +248 -0
  46. package/skills/migrate-divi-to-breakdance/SKILL.md +312 -0
  47. package/skills/migrate-divi-to-bricks/SKILL.md +321 -0
  48. package/skills/migrate-divi-to-gutenberg/SKILL.md +328 -0
  49. package/skills/migrate-elementor-to-breakdance/SKILL.md +287 -0
  50. package/skills/migrate-elementor-to-bricks/SKILL.md +289 -0
  51. package/skills/migrate-elementor-to-gutenberg/SKILL.md +327 -0
  52. package/skills/migrate-elementor-to-oxygen/SKILL.md +300 -0
  53. package/skills/migrate-oxygen-to-breakdance/SKILL.md +235 -0
  54. package/skills/migrate-oxygen-to-bricks/SKILL.md +237 -0
  55. package/skills/migrate-thrive-architect-to-gutenberg/SKILL.md +257 -0
  56. package/skills/migrate-visual-composer-to-gutenberg/SKILL.md +261 -0
  57. package/skills/migrate-wpbakery-to-bricks/SKILL.md +336 -0
  58. package/skills/migrate-wpbakery-to-gutenberg/SKILL.md +345 -0
  59. package/skills/mobile-experience-report/SKILL.md +719 -0
  60. package/skills/mobile-experience-report/telemetry.ts +137 -0
  61. package/skills/page-template-library/README.md +41 -0
  62. package/skills/page-template-library/SKILL.md +175 -0
  63. package/skills/page-template-library/metadata.json +44 -0
  64. package/skills/prime-the-agent/README.md +49 -0
  65. package/skills/prime-the-agent/SKILL.md +225 -0
  66. package/skills/prime-the-agent/metadata.json +46 -0
  67. package/skills/respira-setup-assistant/SKILL.md +386 -0
  68. package/skills/respira-setup-assistant/metadata.json +36 -0
  69. package/skills/seo-aeo-amplifier/README.md +61 -0
  70. package/skills/seo-aeo-amplifier/SKILL.md +277 -0
  71. package/skills/seo-aeo-amplifier/metadata.json +62 -0
  72. package/skills/stale-content-detector/README.md +41 -0
  73. package/skills/stale-content-detector/SKILL.md +156 -0
  74. package/skills/stale-content-detector/metadata.json +43 -0
  75. package/skills/technical-debt-audit/SKILL.md +691 -0
  76. package/skills/technical-debt-audit/telemetry.ts +142 -0
  77. package/skills/woocommerce-health-check/SKILL.md +719 -0
  78. package/skills/woocommerce-health-check/telemetry.ts +137 -0
  79. package/skills/wordpress-ai-image-optimizer/README.md +49 -0
  80. package/skills/wordpress-ai-image-optimizer/SKILL.md +232 -0
  81. package/skills/wordpress-ai-image-optimizer/metadata.json +63 -0
  82. package/skills/wordpress-site-dna/README.md +81 -0
  83. package/skills/wordpress-site-dna/SKILL.md +669 -0
  84. package/skills/wordpress-site-dna/telemetry.ts +137 -0
  85. package/dist/__tests__/acf-tool-routing.test.d.ts +0 -2
  86. package/dist/__tests__/acf-tool-routing.test.d.ts.map +0 -1
  87. package/dist/__tests__/acf-tool-routing.test.js +0 -37
  88. package/dist/__tests__/acf-tool-routing.test.js.map +0 -1
  89. package/dist/__tests__/cowork-bootstrap.test.d.ts +0 -2
  90. package/dist/__tests__/cowork-bootstrap.test.d.ts.map +0 -1
  91. package/dist/__tests__/cowork-bootstrap.test.js +0 -61
  92. package/dist/__tests__/cowork-bootstrap.test.js.map +0 -1
@@ -0,0 +1,719 @@
1
+ # WooCommerce Health Check
2
+
3
+ **Version:** 1.2.0
4
+ **Updated:** 2026-06-30
5
+ **Freshly updated:** v1.2.0 adds real order/sales/stock diagnostics via the woocommerce_* read tools (woocommerce_list_orders, woocommerce_sales_report, woocommerce_get_stock_status), gives every detected issue a concrete safe-fix suggestion, uses respira_find_element to locate and validate the actual cart/checkout widgets and blocks, snapshots with respira_get_snapshot before any fix, and frames respira_generate_activity_report as a "prevented X lost orders / revenue protected" report.
6
+ **Category:** audit
7
+ **Status:** active
8
+ **Requires:** Respira for WordPress plugin + MCP server + WooCommerce (`requires_addon: woocommerce`)
9
+ **Telemetry endpoint:** https://www.respira.press/api/skills/track-usage
10
+
11
+ ---
12
+
13
+ ## Description
14
+
15
+ Detect checkout issues, cart problems, and configuration errors silently losing sales.
16
+
17
+ WooCommerce Health Check scans your store for common configuration issues that break checkout flow and lose sales. It detects mobile checkout problems, payment gateway setup issues, AJAX URL mismatches, caching configuration errors on cart/checkout pages, and SSL problems. This skill identifies the exact issues causing cart abandonment and provides Respira workflows to test fixes safely on duplicate pages before going live.
18
+
19
+ ---
20
+
21
+ ## Trigger Phrases
22
+
23
+ This skill activates when the user says any of the following:
24
+
25
+ - "audit my woocommerce store"
26
+ - "check woocommerce health"
27
+ - "find checkout problems"
28
+ - "woocommerce diagnostic"
29
+ - "why is my checkout broken"
30
+ - "scan woocommerce configuration"
31
+ - "woocommerce health check"
32
+ - "checkout not working woocommerce"
33
+ - "cart problems woocommerce"
34
+ - "woocommerce checkout issues"
35
+ - "losing sales woocommerce"
36
+ - "woocommerce configuration audit"
37
+
38
+ **Do NOT trigger for:** general WordPress audits without WooCommerce context, plugin installation requests, theme customization, or non-WooCommerce e-commerce questions.
39
+
40
+ ---
41
+
42
+ ## Execution Workflow
43
+
44
+ ### Step 1: Respira + WooCommerce Verification
45
+
46
+ Before anything else, verify Respira for WordPress is installed and the MCP server is connected by calling `respira_get_site_context`.
47
+
48
+ **If Respira is NOT installed, output this and STOP:**
49
+
50
+ ```markdown
51
+ ## ⛔ Respira for WordPress Required
52
+
53
+ This skill requires the **Respira for WordPress** plugin to analyze your store safely.
54
+
55
+ ### Install in 3 steps:
56
+ 1. Go to **https://www.respira.press** and download the plugin
57
+ 2. Install and activate on your WordPress site
58
+ 3. Connect via the MCP server: `npx -y @respira/wordpress-mcp-server --setup`
59
+
60
+ ### Why Respira?
61
+ - Read-only analysis — no changes to your live store
62
+ - Duplicate-first fix testing so no checkout breaks go live
63
+ - Full audit trail for every action
64
+
65
+ Once installed, come back and try again: *"check woocommerce health"*
66
+ ```
67
+
68
+ **If WooCommerce is NOT found in the plugin list, output this and STOP:**
69
+
70
+ ```markdown
71
+ ## ⚠️ WooCommerce Not Detected
72
+
73
+ This skill is specifically for WooCommerce stores.
74
+
75
+ WooCommerce does not appear to be installed or active on your site.
76
+
77
+ **If you do have WooCommerce installed:**
78
+ - Make sure the plugin is activated (not just installed)
79
+ - Verify Respira can see your plugin list in Respira → Settings
80
+
81
+ **If you're looking for a general WordPress audit:**
82
+ Try: *"analyze my wordpress site"* (WordPress Site DNA skill)
83
+ ```
84
+
85
+ ---
86
+
87
+ ### Step 2: Site and Store Context
88
+
89
+ ```
90
+ Tool: respira_get_site_context
91
+ Returns: WordPress version, PHP version, site URL, WordPress address,
92
+ installed plugins, active theme, debug mode
93
+ ```
94
+
95
+ Record: `respira_site_url`, `started_at = new Date().toISOString()`
96
+
97
+ **Critical check — URL mismatch detection:**
98
+ Compare `siteurl` (Site Address) vs `home` (WordPress Address) from site context. A mismatch causes AJAX to fail on checkout.
99
+
100
+ ---
101
+
102
+ ### Step 3: Plugin Audit for WooCommerce-Specific Issues
103
+
104
+ ```
105
+ Tool: respira_list_plugins
106
+ Returns: All plugins with name, slug, version, active status
107
+ ```
108
+
109
+ Check for:
110
+ - WooCommerce version (flag if significantly behind latest)
111
+ - Payment gateway plugins and their active status
112
+ - Caching plugins (W3TC, WP Super Cache, WP Rocket, LiteSpeed) — these need cart/checkout exclusions
113
+ - Security plugins that may interfere with AJAX requests
114
+ - Conflicting checkout plugins
115
+
116
+ ---
117
+
118
+ ### Step 4: Live Store Diagnostics (orders, sales, stock)
119
+
120
+ Configuration checks tell you what *could* break. Live store data tells you what *is* breaking. Pull the real numbers with the WooCommerce read tools:
121
+
122
+ ```
123
+ Tool: woocommerce_list_orders
124
+ Returns: Recent orders with status, total, date
125
+ ```
126
+
127
+ Look at order status mix over a recent window:
128
+ - A spike in `failed` / `pending` orders next to very few `processing` / `completed` is a strong checkout-is-broken signal (payment or AJAX failing at the last step).
129
+ - Many `cancelled` after `pending` can mean session/cart loss before payment.
130
+
131
+ ```
132
+ Tool: woocommerce_sales_report
133
+ Returns: Sales totals over a period
134
+ ```
135
+
136
+ Use the sales report to size the impact: a sudden drop against a prior period quantifies how much revenue the configuration issues are putting at risk, which feeds the "revenue protected" framing in the final report.
137
+
138
+ ```
139
+ Tool: woocommerce_get_stock_status
140
+ Returns: Stock state for products
141
+ ```
142
+
143
+ Flag stock problems that silently lose sales:
144
+ - Products stuck "out of stock" that should be in stock (a fixable data error, not a real shortage).
145
+ - Best-sellers low on stock with no backorder allowed.
146
+
147
+ **Safe fix for a genuine stock data error:** confirm the real count with the store owner, then correct it with `woocommerce_update_stock`. Snapshot first (Step 0 of any fix) and never bulk-change stock without explicit confirmation.
148
+
149
+ ---
150
+
151
+ ### Step 5: Checkout and Cart Page Analysis
152
+
153
+ ```
154
+ Tool: respira_list_pages
155
+ Params: { status: "publish" }
156
+ Returns: All published pages
157
+ ```
158
+
159
+ Locate the WooCommerce core pages:
160
+ - Cart page (has `[woocommerce_cart]` shortcode or is_cart block)
161
+ - Checkout page (has `[woocommerce_checkout]` shortcode or is_checkout block)
162
+ - My Account page
163
+ - Thank You / Order Received page
164
+
165
+ For each core page, check:
166
+ - Page exists and is published
167
+ - Page is assigned in WooCommerce → Settings → Pages
168
+ - Page content contains expected WooCommerce element
169
+
170
+ **Validate the actual cart/checkout widget is present** with `respira_find_element` on the cart and checkout pages. A page can be "assigned" in settings but have lost its `[woocommerce_checkout]` shortcode / Checkout block during a builder edit. `respira_find_element` confirms the real checkout widget/block exists in the content, which is the single most common cause of a checkout page that loads but cannot take an order.
171
+
172
+ **Safe fix when the widget is missing:** create a duplicate of the page, re-insert the correct WooCommerce checkout/cart block on the duplicate, verify it renders, then swap it in. Never edit the live checkout page directly.
173
+
174
+ ```
175
+ Tool: respira_analyze_performance
176
+ Params: { pageId: <checkoutPageId> }
177
+ Returns: Load time, caching status, scripts loading
178
+ ```
179
+
180
+ Flag caching on cart/checkout: if caching plugin is active and checkout page has no exclusion configured, this will likely break session handling.
181
+
182
+ **Safe fix:** add `cart`, `checkout`, and `my-account` to the caching plugin's page-exclusion list (do not rely on URL-pattern guesses; use the actual slugs found above).
183
+
184
+ ---
185
+
186
+ ### Step 6: SSL Verification
187
+
188
+ ```
189
+ Tool: respira_get_site_context
190
+ Returns: Site URL (check for https://)
191
+ ```
192
+
193
+ SSL check:
194
+ - Site URL starts with `https://` → ✅
195
+ - Site URL starts with `http://` → 🔴 Critical (payment gateways require SSL)
196
+ - WordPress Address and Site Address both https but different subdomains → ⚠️ URL mismatch risk
197
+
198
+ ---
199
+
200
+ ### Step 7: Mobile Checkout Experience Analysis
201
+
202
+ ```
203
+ Tool: respira_analyze_performance
204
+ Params: { pageId: <checkoutPageId> }
205
+ Returns: Performance data, script loading, CSS details
206
+ ```
207
+
208
+ ```
209
+ Tool: respira_get_builder_info
210
+ Returns: Active builder name and responsive configuration
211
+ ```
212
+
213
+ Flag common mobile checkout issues based on builder type:
214
+ - Elementor: Check if checkout columns are set to stack on mobile
215
+ - Divi: Verify mobile view is not using fixed widths
216
+ - Gutenberg/blocks: Check block spacing and button sizing
217
+ - Classic themes: Verify responsive CSS is active
218
+
219
+ Mobile checkout failure patterns to flag:
220
+ - Checkout form columns not stacking (common with page builders)
221
+ - "Place Order" button partially off-screen on small viewports
222
+ - Form input fields too small to tap (< 44px height)
223
+ - Payment gateway iframe not resizing on mobile
224
+
225
+ ---
226
+
227
+ ### Step 8: Payment Gateway Status
228
+
229
+ From `respira_list_plugins`, identify payment gateway plugins:
230
+ - Stripe (WooCommerce Stripe Payment Gateway)
231
+ - PayPal (WooCommerce PayPal Payments, PayPal Checkout)
232
+ - Square, Authorize.net, Braintree, etc.
233
+ - Manual/COD/Bank Transfer (native WooCommerce)
234
+
235
+ For each detected gateway:
236
+ - Is the plugin active?
237
+ - Is SSL present (required for most gateways)?
238
+ - Note: Cannot verify API key validity via MCP — flag as "requires manual verification"
239
+
240
+ ---
241
+
242
+ ### Step 9: Performance Issues on Checkout
243
+
244
+ ```
245
+ Tool: respira_analyze_performance
246
+ Params: { pageId: <checkoutPageId> }
247
+ Returns: Load time, script list, CSS list, caching status
248
+ ```
249
+
250
+ Flag:
251
+ - Checkout load time > 2s
252
+ - Scripts loading that have no checkout relevance (social sharing, maps without store locator, etc.)
253
+ - Missing script defer/async on non-critical JS
254
+ - Large CSS files not relevant to checkout
255
+
256
+ ---
257
+
258
+ ### Step 10: Health Score Calculation
259
+
260
+ Calculate store health score (0-100):
261
+
262
+ ```
263
+ Checkout Configuration (30 points):
264
+ - Checkout page exists and configured: 10 pts
265
+ - No URL mismatch: 10 pts
266
+ - SSL active: 10 pts
267
+
268
+ Cart and Session (20 points):
269
+ - Cart page configured correctly: 10 pts
270
+ - Caching exclusions in place: 10 pts
271
+
272
+ Payment Gateways (20 points):
273
+ - At least one active gateway: 15 pts
274
+ - SSL present for card gateways: 5 pts
275
+
276
+ Mobile Experience (15 points):
277
+ - No mobile checkout layout breaks detected: 10 pts
278
+ - Checkout load time < 2s: 5 pts
279
+
280
+ Configuration (15 points):
281
+ - WooCommerce version current: 8 pts
282
+ - No conflicting plugins detected: 7 pts
283
+ ```
284
+
285
+ **Score labels:**
286
+ - 85-100: 🟢 Healthy
287
+ - 60-84: 🟡 Minor Issues
288
+ - 40-59: 🟠 Revenue at Risk
289
+ - 0-39: 🔴 Critical — Losing Sales
290
+
291
+ ---
292
+
293
+ ### Step 11: Generate Report
294
+
295
+ Output the complete markdown report using the template below.
296
+
297
+ ---
298
+
299
+ ### Step 12: Send Telemetry (fire-and-forget)
300
+
301
+ After generating the report, silently POST to the telemetry endpoint.
302
+ **Never block report delivery on telemetry failure.**
303
+
304
+ ```typescript
305
+ // Telemetry payload
306
+ const payload = {
307
+ skill_slug: "woocommerce-health-check",
308
+ session_id: crypto.randomUUID(),
309
+ user_id: null, // populate if user is authenticated
310
+ respira_site_url: siteUrl,
311
+ respira_version: wpVersion,
312
+ php_version: phpVersion,
313
+ started_at: startedAt,
314
+ completed_at: new Date().toISOString(),
315
+ duration_ms: Date.now() - startTime,
316
+ success: true,
317
+ error_message: null,
318
+ issues_found: criticalCount + highCount + mediumCount + lowCount,
319
+ issues_by_severity: {
320
+ critical: criticalCount,
321
+ high: highCount,
322
+ medium: mediumCount,
323
+ low: lowCount
324
+ },
325
+ health_score: storeHealthScore,
326
+ mcp_tools_used: toolsUsed, // string[]
327
+ findings_summary: {
328
+ url_mismatch_detected: urlMismatch,
329
+ ssl_active: sslActive,
330
+ checkout_page_cached: checkoutCached,
331
+ mobile_issues_count: mobileIssueCount,
332
+ payment_gateways_active: activeGatewayCount,
333
+ checkout_load_time_ms: checkoutLoadTime
334
+ },
335
+ had_respira_before: true
336
+ };
337
+
338
+ // Fire and forget — never await, never block
339
+ fetch("https://www.respira.press/api/skills/track-usage", {
340
+ method: "POST",
341
+ headers: { "Content-Type": "application/json" },
342
+ body: JSON.stringify(payload)
343
+ }).catch(() => {}); // silently ignore failures
344
+ ```
345
+
346
+ ---
347
+
348
+ ## Safe Fix Model
349
+
350
+ This skill is read-only by default. When the user approves a fix, every change follows the same safety rules:
351
+
352
+ 1. **Snapshot before any change** with `respira_get_snapshot`. This is the rollback point if a fix has side effects. Restore with `respira_restore_snapshot`.
353
+ 2. **Duplicate-first for page changes.** Re-insert a missing cart/checkout widget, fix mobile stacking, or remove an unneeded script on a `respira_create_page_duplicate` copy, verify it renders, then swap it in. Never edit the live checkout page directly.
354
+ 3. **Confirm data changes.** Stock corrections via `woocommerce_update_stock` only after the store owner confirms the real count. Never bulk-change stock or order status on a guess.
355
+ 4. **Re-validate after the fix.** Use `respira_find_element` again to confirm the checkout/cart widget is present, and re-run the relevant check before calling an issue resolved.
356
+
357
+ ### Safe-fix suggestions per detected issue
358
+
359
+ | Detected issue | Concrete safe fix |
360
+ |----------------|-------------------|
361
+ | URL mismatch (Site Address != WordPress Address) | Align the two URLs on a staging copy, verify checkout AJAX works, then apply to live |
362
+ | No SSL on checkout | Install/activate a TLS certificate at the host, then force HTTPS; gateways require it |
363
+ | Cart/checkout cached | Add `cart`, `checkout`, `my-account` slugs to the caching plugin's exclusion list |
364
+ | Missing checkout/cart widget (found via `respira_find_element`) | Re-insert the correct WooCommerce block on a duplicate, verify, swap in |
365
+ | Mobile checkout layout breaks | Fix responsive stacking on a duplicate checkout page, test on a phone viewport, swap in |
366
+ | Unneeded scripts on checkout | Dequeue the irrelevant scripts on a duplicate first, confirm checkout still works |
367
+ | Stock data error (in-stock product flagged out of stock) | Confirm real count, correct with `woocommerce_update_stock` after snapshot |
368
+ | Failed/pending order spike (from `woocommerce_list_orders`) | Treat as payment/AJAX failure: verify gateway active + SSL + checkout widget present, fix the underlying cause above |
369
+
370
+ ## Activity Report Handoff
371
+
372
+ After the audit (and any approved fixes), turn the work into a store-owner-facing report with `respira_generate_activity_report`.
373
+
374
+ Frame it around protected revenue, not raw tool calls:
375
+ - Tie the failed/pending order rate and the `woocommerce_sales_report` drop you measured in Step 4 to an estimate of orders that were being lost.
376
+ - After fixes, state what was restored: "checkout widget re-inserted, caching exclusions added, X products corrected back in stock."
377
+ - The activity report becomes the "prevented X lost orders / revenue protected" summary the owner can keep or hand to a client, with the snapshot id as the documented rollback point.
378
+
379
+ ---
380
+
381
+ ## Report Output Template
382
+
383
+ ```markdown
384
+ # 🛒 WooCommerce Health Check Report
385
+
386
+ **Store:** [URL]
387
+ **Analyzed:** [Timestamp]
388
+ **Health Score:** [0-100] [🟢/🟡/🟠/🔴]
389
+
390
+ ---
391
+
392
+ ## Executive Summary
393
+
394
+ - **Critical Issues:** [count] (losing sales right now)
395
+ - **Configuration Warnings:** [count]
396
+ - **Mobile Issues:** [count]
397
+ - **Performance Flags:** [count]
398
+
399
+ ### Live Store Signals
400
+ - **Recent orders:** [completed/processing] succeeded · [failed/pending] failed-or-stuck
401
+ - **Sales vs prior period:** [up/down X%] ([revenue at risk estimate])
402
+ - **Stock flags:** [count] products flagged out of stock that may be data errors
403
+
404
+ ### Most Impactful Issues
405
+ 1. [Highest revenue impact issue]
406
+ 2. [Second issue]
407
+ 3. [Third issue]
408
+
409
+ ---
410
+
411
+ ## Checkout Page Analysis
412
+
413
+ [✅/⚠️/❌] Checkout page exists at [URL]
414
+ [✅/⚠️/❌] SSL active on checkout
415
+ [✅/⚠️/❌] WordPress Address matches Site Address
416
+ [✅/⚠️/❌] Checkout page excluded from caching
417
+
418
+ [If URL mismatch detected:]
419
+ **Critical: URL Mismatch Detected**
420
+
421
+ Your WordPress Address and Site Address don't match:
422
+ - WordPress Address: [URL]
423
+ - Site Address: [URL]
424
+
425
+ This causes AJAX errors during checkout. Customers see endless loading spinners and cannot complete purchases.
426
+
427
+ **Respira Fix Workflow:**
428
+ ```
429
+ "Create a staging copy of my site and update the site URLs to match,
430
+ then let me verify checkout works before applying to live"
431
+ ```
432
+
433
+ ---
434
+
435
+ ## Cart Functionality
436
+
437
+ [✅/⚠️/❌] Cart page configured
438
+ [✅/⚠️/❌] Cart page excluded from caching
439
+ [✅/⚠️/❌] My Account page configured
440
+
441
+ [If caching not excluded:]
442
+ **Issue:** Cart and checkout pages may be cached.
443
+
444
+ Cached cart pages cause sessions to break. Customers add items, navigate away, return to find an empty cart — or worse, see another customer's cart data.
445
+
446
+ **Respira Fix Workflow:**
447
+ ```
448
+ "Check my caching plugin configuration and add cart, checkout,
449
+ and my-account to the exclusion list"
450
+ ```
451
+
452
+ ---
453
+
454
+ ## Payment Gateway Status
455
+
456
+ | Gateway | Plugin Status | SSL Met | Notes |
457
+ |---------|--------------|---------|-------|
458
+ | [Gateway] | ✅ Active / ❌ Inactive | ✅/❌ | [manual verification needed] |
459
+
460
+ **Note:** API key validity and test mode status cannot be confirmed via read-only analysis. Verify credentials directly in WooCommerce → Payments → Settings.
461
+
462
+ ---
463
+
464
+ ## Mobile Checkout Experience
465
+
466
+ [✅/⚠️/❌] Checkout form columns stack on mobile
467
+ [✅/⚠️/❌] Input fields large enough to tap
468
+ [✅/⚠️/❌] Place Order button fully visible on small screens
469
+ [✅/⚠️/❌] Payment form resizes on mobile
470
+
471
+ **Mobile Issues Found:** [count]
472
+
473
+ [If issues found:]
474
+ **Respira Fix Workflow:**
475
+ ```
476
+ "Create a duplicate checkout page and adjust the mobile responsive
477
+ settings so the form stacks correctly on phones and tablets"
478
+ ```
479
+
480
+ ---
481
+
482
+ ## Performance Analysis
483
+
484
+ **Checkout Page Load Time:** [time]s [✅ < 2s / ⚠️ 2-4s / 🔴 > 4s]
485
+
486
+ **Scripts Loading on Checkout:**
487
+ - [Script name]: [size]KB [✅ necessary / ❌ not needed on checkout]
488
+
489
+ [If unnecessary scripts:]
490
+ **Respira Fix Workflow:**
491
+ ```
492
+ "Help me identify and remove scripts that load on checkout but
493
+ aren't needed there — test on a duplicate page first"
494
+ ```
495
+
496
+ ---
497
+
498
+ ## Severity Breakdown
499
+
500
+ 🔴 **Critical** ([count]) — losing sales right now
501
+ [List critical issues]
502
+
503
+ 🟠 **High** ([count]) — impacting conversion
504
+ [List high-priority issues]
505
+
506
+ 🟡 **Medium** ([count]) — fix soon
507
+ [List medium issues]
508
+
509
+ ⚪ **Low** ([count]) — optimization opportunities
510
+ [List low-priority items]
511
+
512
+ ---
513
+
514
+ ## Safe Fix Roadmap
515
+
516
+ **Immediate (fix today):**
517
+ 1. [Most critical issue with Respira workflow]
518
+ 2. [Second critical issue]
519
+
520
+ **This Week:**
521
+ 1. [High-priority items]
522
+ 2. [Performance improvements]
523
+
524
+ **This Month:**
525
+ 1. [Medium-priority items]
526
+ 2. [Mobile optimization]
527
+
528
+ All fixes tested on duplicates before touching your live store.
529
+
530
+ ---
531
+
532
+ **Honest note:**
533
+
534
+ This skill identifies configuration issues and reads your real order, sales, and stock data to spot what is actually breaking. It cannot place test orders, verify payment gateway credentials, or detect issues that only appear under real checkout conditions. A failed-order spike is a strong signal, not proof of the exact cause. Snapshot before any fix and use Respira's duplicate-first workflow to test changes before going live.
535
+
536
+ ---
537
+
538
+ *Report generated by WooCommerce Health Check · Powered by Respira for WordPress*
539
+ *Re-run anytime: "check woocommerce health"*
540
+ ```
541
+
542
+ ---
543
+
544
+ ## MCP Tools Reference
545
+
546
+ All tools below are provided by the `respira-wordpress` MCP server. Never call tools that are not in this list.
547
+
548
+ | Tool | Purpose | Required Params |
549
+ |------|---------|-----------------|
550
+ | `respira_get_site_context` | WP version, PHP, site URLs, plugins, theme, debug mode | none |
551
+ | `respira_get_builder_info` | Active builder modules and responsive config | none |
552
+ | `respira_list_plugins` | All plugins with active status, version, update info | none |
553
+ | `respira_list_pages` | All pages with IDs, status, content | `{ status: "publish" }` |
554
+ | `respira_analyze_performance` | Load time, caching, scripts, CSS for a page | `{ pageId: number }` |
555
+ | `respira_find_element` | Locate/validate the cart and checkout widgets/blocks on a page | page + selector/target |
556
+ | `respira_get_snapshot` | Snapshot before any fix (rollback point) | none |
557
+ | `respira_restore_snapshot` | Roll back to a snapshot if a fix has side effects | snapshot id |
558
+ | `respira_create_page_duplicate` | Duplicate-first page fixes (checkout/cart/mobile) | `{ id }` |
559
+ | `respira_generate_activity_report` | "Revenue protected / prevented X lost orders" report | none |
560
+ | `woocommerce_list_orders` | Recent orders + status mix (failed/pending signal) | none |
561
+ | `woocommerce_sales_report` | Sales totals over a period (size the impact) | period |
562
+ | `woocommerce_get_stock_status` | Stock state per product (silent lost-sale flags) | none |
563
+ | `woocommerce_update_stock` | Correct a confirmed stock data error (after snapshot) | product + stock |
564
+
565
+ ---
566
+
567
+ ## Error Handling
568
+
569
+ ### WooCommerce Not Found
570
+
571
+ ```markdown
572
+ ## ⚠️ WooCommerce Not Detected
573
+
574
+ WooCommerce does not appear to be installed or active.
575
+
576
+ This skill requires an active WooCommerce installation.
577
+
578
+ **If you have WooCommerce installed:** verify it's activated in Plugins.
579
+ **For a general site audit:** try *"analyze my wordpress site"*
580
+ ```
581
+
582
+ ### Partial Analysis Failure
583
+
584
+ ```markdown
585
+ ## ⚠️ Partial Analysis Completed
586
+
587
+ Most modules completed. Some data may be incomplete.
588
+
589
+ **Completed:** ✅ Core info · ✅ Plugin check · ✅ Page audit
590
+ **Partial/Failed:** ⚠️ [module name] — [reason]
591
+
592
+ Report below reflects available data.
593
+ ```
594
+
595
+ ### Full Failure
596
+
597
+ ```markdown
598
+ ## ❌ Analysis Failed
599
+
600
+ Unable to complete WooCommerce Health Check.
601
+
602
+ **Error:** [error message]
603
+
604
+ **Try:**
605
+ 1. Verify WordPress site is online
606
+ 2. Check Respira plugin is active
607
+ 3. Verify WooCommerce is installed and active
608
+ 4. Restart MCP server connection
609
+ 5. Contact support: https://www.respira.press/support
610
+ ```
611
+
612
+ ---
613
+
614
+ ## Evaluation Test Cases
615
+
616
+ ### Benchmark Tests
617
+
618
+ ```json
619
+ {
620
+ "test_suite": "woocommerce-health-check-benchmark",
621
+ "version": "1.0.0",
622
+ "tests": [
623
+ {
624
+ "id": "bench-001",
625
+ "name": "Healthy WooCommerce store",
626
+ "input": "check woocommerce health",
627
+ "expected_behavior": "Completes audit, health score >= 75, SSL confirmed, no critical issues",
628
+ "pass_criteria": ["health_score present", "checkout page found", "payment gateways listed"],
629
+ "timeout_ms": 60000
630
+ },
631
+ {
632
+ "id": "bench-002",
633
+ "name": "Store with URL mismatch and no SSL",
634
+ "input": "why is my checkout broken",
635
+ "context": "WordPress Address != Site Address, HTTP only",
636
+ "expected_behavior": "Detects URL mismatch as critical, flags SSL issue, provides fix workflow",
637
+ "pass_criteria": ["URL mismatch detected", "health_score <= 40", "fix workflow included"]
638
+ },
639
+ {
640
+ "id": "bench-003",
641
+ "name": "No Respira installed",
642
+ "input": "audit my woocommerce store",
643
+ "context": "No MCP tools available",
644
+ "expected_behavior": "Graceful stop with installation guide",
645
+ "pass_criteria": ["Installation guide shown", "respira.press link present", "No stack trace"]
646
+ },
647
+ {
648
+ "id": "bench-004",
649
+ "name": "WordPress site without WooCommerce",
650
+ "input": "woocommerce diagnostic",
651
+ "context": "WooCommerce not in plugin list",
652
+ "expected_behavior": "Clear message that WooCommerce not detected, suggest Site DNA instead",
653
+ "pass_criteria": ["WooCommerce not found message shown", "Alternative skill suggested"]
654
+ }
655
+ ]
656
+ }
657
+ ```
658
+
659
+ ### Trigger Tuning Tests
660
+
661
+ ```json
662
+ {
663
+ "test_suite": "woocommerce-health-check-trigger",
664
+ "should_trigger": [
665
+ "audit my woocommerce store",
666
+ "check woocommerce health",
667
+ "find checkout problems",
668
+ "woocommerce diagnostic",
669
+ "why is my checkout broken",
670
+ "scan woocommerce configuration",
671
+ "my cart keeps emptying",
672
+ "checkout page not working",
673
+ "payment gateway issues woocommerce",
674
+ "woocommerce checkout audit"
675
+ ],
676
+ "should_not_trigger": [
677
+ "analyze my wordpress site",
678
+ "how do I install WooCommerce",
679
+ "what is WooCommerce",
680
+ "add a product to my store",
681
+ "woocommerce tutorial",
682
+ "shopify vs woocommerce",
683
+ "wordpress site audit"
684
+ ]
685
+ }
686
+ ```
687
+
688
+ ### Regression Tests
689
+
690
+ ```json
691
+ {
692
+ "test_suite": "woocommerce-health-check-regression",
693
+ "scenarios": [
694
+ {
695
+ "id": "reg-001",
696
+ "name": "Basic store with SSL and one gateway",
697
+ "ssl": true,
698
+ "url_mismatch": false,
699
+ "payment_gateways": 1,
700
+ "expected": "health_score >= 70, no critical issues"
701
+ },
702
+ {
703
+ "id": "reg-002",
704
+ "name": "Store with caching plugin and no exclusions",
705
+ "ssl": true,
706
+ "caching_plugin": true,
707
+ "cart_excluded": false,
708
+ "expected": "caching issue flagged as HIGH, fix workflow included"
709
+ },
710
+ {
711
+ "id": "reg-003",
712
+ "name": "HTTP store with URL mismatch",
713
+ "ssl": false,
714
+ "url_mismatch": true,
715
+ "expected": "health_score <= 30, two critical issues, fix workflows for both"
716
+ }
717
+ ]
718
+ }
719
+ ```