Agent skill
bake-site-compare
Compare production WordPress sites against their baked static versions to find differences. Use when testing Bake deployments, checking for missing assets, broken styles, console errors, or any visual/functional discrepancies between production and static sites. Triggers on requests to compare sites, verify bake output, check for differences, or test static deployments.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/bake-site-compare
SKILL.md
Bake Site Comparison
Compare a production WordPress site against its baked static version to ensure they're visually and functionally identical.
Prerequisites
- Browser automation MCP must be available (Playwright or claude-in-chrome)
- Access to the bake.kdl config file at
/Users/coreyja/Projects/bake/bake.kdl
Workflow
1. Parse Site Configuration
Read /Users/coreyja/Projects/bake/bake.kdl to get:
- Production URL: The
productionfield (e.g.,https://theconnectedapproach.com) - Baked URL: The
alternative-hostsentry ending in.lavenderiguana.live(e.g.,tca.lavenderiguana.live) - CDN Allowlist: External domains that should NOT be rewritten (important for checking asset loading)
If user specifies a site name (e.g., "tca", "lavenderiguana"), use that site's config. Otherwise, ask which site to compare.
2. Discover All Pages
Get all pages to compare using one of:
- Fetch and parse
/sitemap.xmlfrom production site - Fetch and parse
/sitemap_index.xmlif it's a sitemap index - Include key pages:
/,/contact/, and any pages from sitemap
3. Compare Each Page
For each page, compare production vs baked version:
Visual Comparison
- Navigate to production URL in one tab
- Navigate to corresponding baked URL in another tab
- Take screenshots of both
- Scroll down incrementally, taking screenshots at each section
- Note any visual differences (missing images, broken layouts, different text)
Network Analysis
- Check for 404 errors on the baked site
- Check for failed resource loads (CSS, JS, images, fonts)
- Compare network requests - anything loading on production but failing on baked
Console Errors
- Capture console errors/warnings from both sites
- Flag any errors unique to the baked version
Specific Checks
FontAwesome Icons:
// Check if FontAwesome icons are rendering
document.querySelectorAll('[class*="fa-"]').length
// Check FontAwesome stylesheets loaded
Array.from(document.styleSheets).filter(s => s.href?.includes('fontawesome')).map(s => s.href)
Lazy-Loaded Images:
// Check for images with data-src/data-srcset (WordPress lazy loading)
document.querySelectorAll('img[data-src], img[data-srcset]').length
// Verify actual src is populated after scroll
document.querySelectorAll('img').forEach(img => {
if (img.dataset.src && !img.src.includes(img.dataset.src)) {
console.log('Lazy image not loaded:', img.dataset.src);
}
});
Background Images:
// Check for elements with background-image in inline styles
document.querySelectorAll('[style*="background"]').length
// Check Elementor data-settings for background images
document.querySelectorAll('[data-settings]').forEach(el => {
const settings = JSON.parse(el.dataset.settings || '{}');
if (settings.background_image) console.log('BG:', settings.background_image);
});
Elementor Forms:
// Check if Elementor Pro frontend config exists and has correct ajaxurl
window.ElementorProFrontendConfig?.ajaxurl
// On baked sites, this should point to the form handler service, not WordPress
External Resources:
// Check if CDN resources are loading (should NOT be rewritten to /external/)
Array.from(document.querySelectorAll('link[href], script[src]'))
.filter(el => (el.href || el.src)?.includes('/external/'))
.map(el => el.href || el.src)
4. Document Findings
For each difference found, record:
- Page URL (both production and baked)
- Type of issue (visual, network, console, specific check)
- Screenshot or evidence
- Severity (blocking vs cosmetic)
5. Create Linear Issues
For each significant issue, create a Linear issue in the Bake project:
Team: Bake (or appropriate team)
Title: [BAKE-XXX] Brief description of the issue
Labels: bug, site-comparison
Description:
- Production URL: [url]
- Baked URL: [url]
- Issue: [detailed description]
- Evidence: [screenshot/console output/network log]
- Affected pages: [list if multiple]
Group related issues (e.g., if the same asset is missing on multiple pages, create one issue).
Known Issue Patterns
FontAwesome Icons Not Rendering
- Cause: CDN URLs being rewritten to
/external/paths when they should be allowed - Check: Verify domain is in
cdn-allowlistin bake.kdl - Issue prefix: BAKE-018
Lazy-Loaded Images Missing
- Cause:
data-src/data-srcsetattributes not being processed - Check: Compare img element attributes between production and baked
- Issue prefix: BAKE-022
CSS Background Images Missing
- Cause: Inline styles or Elementor data-settings JSON not being parsed
- Check: Look for missing hero sections, client logos, background patterns
- Issue prefix: BAKE-023
Elementor Forms Not Working
- Cause:
ajaxurlpointing to WordPress instead of form handler - Check: Verify
ElementorProFrontendConfig.ajaxurlvalue - Issue prefix: BAKE-019
External Domain Assets 404
- Cause: External URLs rewritten but not downloaded to correct path
- Check: Network tab for 404s on
/external/paths - Issue prefix: BAKE-021
Output Format
After comparison, provide a summary:
## Site Comparison Results: [site-name]
Production: [url]
Baked: [url]
### Pages Checked: X
### Issues Found: Y
- [Issue 1]: Brief description (Linear: BAKE-XXX)
- [Issue 2]: Brief description (Linear: BAKE-XXX)
### All Clear:
- FontAwesome: OK/Issues
- Lazy Images: OK/Issues
- Background Images: OK/Issues
- Forms: OK/Issues
- Console Errors: OK/Issues
- Network 404s: OK/Issues
### Linear Issues Created:
- BAKE-XXX: [title]
- BAKE-YYY: [title]
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?