From claude-seo
Guarded deploy workflow for the LIVE gotodive.com and gotodive.eu sites. Enforces backup -> diff -> precheck -> explicit user confirmation -> deploy (scp + chmod 644 + cache flush) -> live verification (grep + encoding + Playwright) -> rollback on failure. Both prod sites are LIVE; this skill prevents shipping broken markup, encoding corruption, or unconfirmed changes. Triggers on: deploy, ship to prod, push live, release, rollback, safe deploy.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-seo:safe-deploy [com | eu] [files...][com | eu] [files...]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Invocation:** `/safe-deploy $1` where `$1` is `com` (gotodive.com) or `eu`
Invocation: /safe-deploy $1 where $1 is com (gotodive.com) or eu
(gotodive.eu). Both are LIVE production. NEVER skip the confirmation gate.
$env:SSH_PROD_HOST='89.58.21.27'; $env:SSH_PROD_USER='hosting220420'
$env:SSH_PROD_KEY='~/.ssh/gotodive_prod'; $env:SSH_PROD_PORT='22'
$key = $env:SSH_PROD_KEY -replace '^~', $env:USERPROFILE
$tgt = "$($env:SSH_PROD_USER)@$($env:SSH_PROD_HOST)"
Web root: .com = gotodive.com/httpdocs, .eu = gotodive.eu/httpdocs.
Theme base (.com): gotodive.com/httpdocs/wp-content/themes/gotodive-com.
scp uses -P (capital) for port; ssh uses -p.
Run /precheck <slug-or-all>. If PRECHECK: FAIL, STOP and hand back to the
caller (content-loop / design-system) to fix. Do not deploy red content.
ssh ... 'cp <path> <path>.bak-$(date +%Y%m%d%H%M)' (single-quoted; avoid
parentheses / escaped double-quotes inside ssh — they hang the shell).$HOME/wp --path=. db export ~/gotodive-com-predeploy-<date>.sql.style.css Version header was bumped.scp -i $key -P $env:SSH_PROD_PORT <localfile> "${tgt}:$base/<path>"
then ssh ... 'chmod 644 <path>; $HOME/wp --path=. cache flush; $HOME/wp --path=. transient delete --all'
ALWAYS chmod 644 after scp; ALWAYS flush cache + transients.
CRITICAL: scp is binary-safe (preserves UTF-8). NEVER deploy non-ASCII content
by echoing through PowerShell — it corrupts ·->??. Use scp or eval-file.python scripts/_deploy-locale-bodies.py --env prod --langs ru,de --all --write$HOME/wp --path=. eval-file <file>, then rm -f <file>.Invoke-WebRequest "https://<site>/?nocache=$(Get-Random)", grep the
new copy, and assert ZERO ?? / mojibake in the served HTML..bak file (or re-import the DB dump), flush cache,
re-verify, then fix locally and re-run from PHASE 0.Report: site, files deployed, version bump, live-verify result, backup location.
(), [], and escaped double-quotes inside.style.css Version on every CSS/theme.json change.npx claudepluginhub alexturbo23/gotodive --plugin claude-seoOffers UI/UX design guidance for web and mobile with 50+ styles, 161 color palettes, 57 font pairings, and 99 UX guidelines across 10 stacks. Use for designing pages, components, color systems, or reviewing UI code.
Mines projects and conversations into a searchable memory palace. Activates on queries about MemPalace, memory palace, mining, searching, palace setup, wings, rooms, drawers, or recalling past work.