CommunityCodierung & Entwicklunggithub.com

umairmsm/wp-ship

Stufe 7 eines WordPress-Builds – Staging hinter Cloudflare Access, Serverhärtung, sichere Deployments per Commit, Datenbank-Inhaltsänderungen, Launch-Audit, DNS-Umstellung ohne Geschäftsunterbrechung und die erste Woche nach dem Launch.

Was ist wp-ship?

Dieses Skill, `umairmsm/wp-ship`, ist die letzte Stufe (Stufe 7) des `wp-site-kit`-Workflows. Es kümmert sich um den gesamten Prozess des „Auslieferns“ einer WordPress-Seite: Von der Einrichtung einer Staging-Umgebung hinter Cloudflare Access über die Härtung des Servers bis hin zum sicheren Deployment-Code (nur durch den Besitzer), der Launch-Audit, die DNS-Umstellung und die Überwachung in der ersten Woche nach dem Launch. Es ist speziell für WordPress-Websites konzipiert, die mit dem `wp-site-kit`-Framework arbeiten, und wird wahrscheinlich mit KI-Agenten wie Claude Code verwendet. Der Agent bereitet vor, prüft und erklärt, führt aber keine sensiblen Aktionen selbstständig aus (z. B. SSH, `deploy-safe.sh`, DNS-Änderungen). Stattdessen müssen diese vom Besitzer durchgeführt werden. Das Skill erzwingt strenge Regeln: Deployments nur gemergte Commits, getrennte Code-/Inhaltsdeployments, dokumentierte Inhaltsänderungen und eine Checkliste („Gate“) zum Abhaken in `SITE_STATUS.md`. Es enthält auch wertvolle Lessons Learned aus realen Vorfällen, wie versehentliche Preisänderungen oder fehlerhafte E-Mail-Konfigurationen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/umairmsm/wp-site-kit/tree/HEAD/skills/wp-ship

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Stufe 7: Ship

Ziel: Staging spiegelt Live, jedes Deployment ist langweilig, der Launch-Tag hat einen Rollback, und die erste Woche wird überwacht.

Der Besitzer führt Deployments durch. Agenten bereiten vor, prüfen und erklären. Sie führen kein SSH auf Servern aus, starten kein deploy-safe.sh, ändern kein DNS und berühren kein Cloudflare, es sei denn, der Besitzer fordert genau diese Aktion an. deploy-safe.sh benötigt ein Terminal und eine eingegebene Commit-ID, daher kann ein Agent es nicht alleine abschließen.

Schritte

  1. Staging (references/deploy-and-launch.md, „Staging“): eigener Ordner und eigene Datenbank auf dem Live-Host, WP_ENVIRONMENT_TYPE=staging, hinter Cloudflare Access, ein Test-Postfach für Anfragen.
  2. Härten Sie jeden Server mit der projekteigenen docs/reference/DEPLOY_HARDENING.md. Dokumentieren Sie die Ergebnisse in docs/reference/SECURITY_PRELAUNCH.md.
  3. Edge: Cloudflare-Einstellungen aus references/cloudflare-edge.md. Bevor Sie den Proxy vor einem alten Host aktivieren, testen Sie ihn: Einige Hosts begrenzen die Rate nach IP und blockieren Cloudflare.
  4. Code bereitstellen, nur Besitzer:
    • Füllen Sie deploy/targets.conf aus dem Beispiel aus;
    • Führen Sie scripts/deploy-safe.sh <commit> --target staging --dry-run aus, lesen Sie die Änderungsliste, dann führen Sie es erneut ohne --dry-run aus;
    • Der erste Lauf auf einem Server, der bereits Code hat, benötigt --assume-live <commit>.
  5. Inhalte separat bereitstellen.
    • Code enthält niemals Preise, Seiten oder rechtliche Texte.
    • Dokumentieren Sie jede Änderung als docs/data/content-changes/<date>-<topic>.json (Vorher-/Nachher-Werte pro Feld).
    • Wenden Sie es mit scripts/apply-content-change.sh <file> --target staging (Trockenlauf) an, dann mit --apply.
    • Führen Sie nach jedem Datenbankimport oder -umzug scripts/check-emoji.sh --target <env> aus.
  6. Launch-Audit: Führen Sie den launch-auditor-Agenten gegen Staging aus, beheben Sie Fehler, und führen Sie ihn erneut aus, bis er bestanden wird.
  7. Cutover-Plan. Schreiben Sie ihn aus references/deploy-and-launch.md, „Cutover“. Der Besitzer genehmigt Datum und Uhrzeit, und der Geschäftspartner ebenfalls, wenn die Seite bereits Buchungen annimmt.
  8. Go live: Deployment auf Live, führen Sie launch-auditor gegen Live aus, reichen Sie die Sitemap bei der Search Console ein, senden Sie eine echte Testanfrage an das echte Postfach.
  9. 7 Tage überwachen: Fehler, 404er (Redirects hinzufügen), das Formular-Postfach, Analytics, Search Console-Abdeckung.

Gate (in SITE_STATUS.md abhaken)

  • Staging hinter Access, noindex, E-Mail geschützt
  • Härtung angewendet und dokumentiert
  • Sicheres Deployment auf Staging; Smoke-Test grün
  • launch-auditor BESTANDEN auf Staging, dann auf Live
  • Cutover-Plan genehmigt (Datum, Rollback, E-Mail/MX geprüft)
  • 7-Tage-Überwachung abgeschlossen

Vorfälle, die diese Regeln geprägt haben

  • Ein Agent änderte Live-Preise, veröffentlichte KI-geschriebene AGB und deployte ein Feature ohne Review, und sein Bericht ließ das Deployment aus. Seitdem: Deployments kommen nur von gemergten Commits, über das Skript, von einem Menschen eingegeben, und Produktions-SSH-Schlüssel verlangen bei jeder Verwendung eine Bestätigung.
  • Das Kontaktformular auf Staging postete an einen Drittanbieter-Formulardienst mit einem Test-Schlüssel, so dass Anfragen in ein Test-Postfach gingen. Vor dem Launch eine echte Anfrage auf Live senden und prüfen, ob sie ankommt.
  • Webanalyse im „Lite“-Modus zählte wochenlang keine EU-Besucher, was die Kernmärkte verbarg. Überprüfen Sie die Einstellungen am Tag 1.
  • Ein langes Deployment (39 Commits) stoppte an einem SIGPIPE von git log | head unter pipefail. Das Skript erfasst nun die Ausgabe zuerst.
  • Ein Server-Datenbankimport verwandelte Emojis in ????. Führen Sie check-emoji.sh nach jedem Import aus.

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

umairmsm/wp-build

Stage 3 of a wp-site-kit WordPress build - local DDEV site, the core must-use plugin (modules), the presentation-only child theme with skins, the content model (custom post types, meta, WP_Query, render functions), and the enquiry pipeline that saves leads before forwarding. Use when building or changing features, templates, content types, forms or plugin modules on a wp-site-kit site.

umairmsm/wp-content

Stage 4 of a wp-site-kit WordPress build - real copy and photos. Content truth (facts only from the owner), AI drafts and owner approval, claims audits, banned words and fake proof, legal pages, the photo pipeline (dedupe, real-only, EXIF strip, WebP sizes, alt text, AI image register), and recorded content changes. Use for "write the copy", "add photos", "the owner sent new photos", "check for duplicates", "update prices or text on the live site", "legal pages".

umairmsm/wp-design

Stage 2 of a wp-site-kit WordPress build - design direction, a static HTML/CSS prototype with design tokens, owner sign-off with screenshots, self-hosted fonts, and porting the approved look into a swappable WordPress skin. Use for "design the site", "new look", "redesign", "change colours or fonts", "make a new skin", "port the prototype to WordPress".

umairmsm/wp-kickoff

Stage 1 of a wp-site-kit WordPress build. Use when starting a new WordPress website or taking over or rebuilding an existing one - discovery brief, stack decision, creating the project with bin/wp-site-new, locked decisions, private repo and credentials inventory. Triggers - "new WordPress site", "start a client website", "rebuild this site", "take over this WordPress site".

umairmsm/wp-operate

Stage 8 of a wp-site-kit WordPress build and everything after launch - backups with an off-machine copy, restore drills, the disaster-recovery runbook, credentials inventory, update policy, alerts, and working from more than one machine (bridge file, workstation doctor, encrypted state bundle, rescuing unpushed work). Use for "backup", "restore", "move to a new machine/server", "update plugins", "what if the server dies", "work from the cloud box", "set up a second machine".

umairmsm/wp-seo

Stage 5 of a wp-site-kit WordPress build - titles and descriptions, canonical URLs, one schema owner and JSON-LD, sitemaps, robots.txt and llms.txt, AI crawler access, redirects (301 vs 302), legacy URL maps, Search Console, and adding languages one pilot at a time with Polylang (hreflang, .po/.mo strings, native review). Use for "SEO", "schema", "redirect", "old URLs", "translate the site", "add French/Spanish", "hreflang", "canonical".

umairmsm/wp-site

Start here for any WordPress website built with wp-site-kit, from an empty folder to a live site. Use when someone says "build a WordPress site", "new website for a client", "where are we on the site", "what is next before launch", or asks to continue a site project. Finds the current stage from SITE_STATUS.md, applies the hard rules, and hands over to the right stage skill.

Verwandte Skills