wp-ship

Étape 7 d'une construction WordPress wp-site-kit – mise en staging derrière Cloudflare Access, durcissement du serveur, déploiements sécurisés depuis un commit (scripts/deploy-safe.sh), modifications de contenu en base de données, audit de lancement, bascule DNS sans interrompre l'activité, et la première semaine après le lancement. À utiliser pour « déployer », « configurer le staging », « mise en production », « lancer », « basculer », « changer DNS », « durcir le serveur ».

Qu'est-ce que wp-ship ?

Cette compétence représente l'étape 7 (Ship) du pipeline wp-site-kit pour WordPress, dédiée à la mise en production sécurisée d'un site. Elle configure un environnement de staging derrière Cloudflare Access, applique un durcissement serveur documenté, et orchestre des déploiements de code via un script shell (deploy-safe.sh) qui nécessite une saisie humaine du commit, empêchant ainsi toute exécution automatisée non supervisée. Les modifications de contenu (prix, pages, textes légaux) sont gérées séparément du code, enregistrées dans des fichiers JSON et appliquées via un script dédié. Un audit de lancement (launch-auditor) valide le staging avant la bascule DNS, et une période de surveillance de 7 jours est imposée après la mise en production. La compétence est conçue pour les agents utilisant des outils comme Claude Code, Cursor ou Codex, et intègre des leçons tirées d'incidents réels (déploiements non revus, configuration erronée de formulaires, analytics en mode allégé, échecs d'import base de données).

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Étape 7 : Ship

Objectif : le staging reflète le site live, chaque déploiement est routinier, le jour du lancement dispose d'un rollback, et la première semaine est surveillée.

Le propriétaire exécute les déploiements. Les agents préparent, vérifient et expliquent. Ils ne se connectent pas en SSH aux serveurs, n'exécutent pas deploy-safe.sh, ne modifient pas le DNS et ne touchent pas à Cloudflare sauf si le propriétaire demande cette action précise. deploy-safe.sh nécessite un terminal et un identifiant de commit tapé, donc un agent ne peut pas le terminer seul.

Étapes

  1. Staging (references/deploy-and-launch.md, « Staging ») : son propre dossier et sa propre base de données sur l'hôte live, WP_ENVIRONMENT_TYPE=staging, derrière Cloudflare Access, une boîte de réception test pour les demandes de contact.
  2. Durcir chaque serveur avec le docs/reference/DEPLOY_HARDENING.md du projet. Enregistrer les résultats dans docs/reference/SECURITY_PRELAUNCH.md.
  3. Edge : paramètres Cloudflare depuis references/cloudflare-edge.md. Avant d'activer le proxy devant un ancien hôte, tester : certains hôtes limitent le débit par IP et bloqueront Cloudflare.
  4. Déployer le code, propriétaire uniquement :
    • remplir deploy/targets.conf à partir de l'exemple ;
    • exécuter scripts/deploy-safe.sh <commit> --target staging --dry-run, lire la liste des changements, puis relancer sans --dry-run ;
    • le premier exécution sur un serveur qui contient déjà du code nécessite --assume-live <commit>.
  5. Déployer le contenu séparément.
    • Le code ne transporte jamais les prix, les pages ou les textes légaux.
    • Enregistrer chaque modification sous docs/data/content-changes/<date>-<sujet>.json (valeurs avant et après par champ).
    • L'appliquer avec scripts/apply-content-change.sh <fichier> --target staging (dry run), puis --apply.
    • Après tout import ou déplacement de base de données, exécuter scripts/check-emoji.sh --target <env>.
  6. Audit de lancement : exécuter l'agent launch-auditor sur le staging, corriger ce qui échoue, et le relancer jusqu'à ce qu'il réussisse.
  7. Plan de bascule. Le rédiger à partir de references/deploy-and-launch.md, « Cutover ». Le propriétaire approuve la date et l'heure, ainsi que le partenaire commercial si le site prend déjà des réservations.
  8. Mise en production : déployer sur le live, exécuter launch-auditor sur le live, soumettre le sitemap à Search Console, envoyer une vraie demande de test à la vraie boîte de réception.
  9. Surveiller pendant 7 jours : erreurs, 404 (ajouter des redirections), boîte de réception des formulaires, analytics, couverture Search Console.

Porte (cocher dans SITE_STATUS.md)

  • Staging derrière Access, noindex, courrier protégé
  • Durcissement appliqué et enregistré
  • Déploiement sécurisé vers le staging ; test de fumée vert
  • launch-auditor RÉUSSI sur le staging, puis sur le live
  • Plan de bascule approuvé (date, rollback, courrier/MX vérifié)
  • Surveillance de 7 jours effectuée

Incidents qui ont façonné ces règles

  • Un agent a modifié les prix en live, publié des conditions générales rédigées par IA et déployé une fonctionnalité sans révision, et son rapport a omis le déploiement. Depuis : les déploiements proviennent uniquement de commits fusionnés, via le script, tapés par un humain, et les clés SSH de production demandent une confirmation à chaque utilisation.
  • Le formulaire de contact sur le staging publiait vers un service de formulaire tiers avec une clé test, donc les demandes allaient dans une boîte de réception test. Avant le lancement, envoyer une vraie demande sur le live et vérifier qu'elle arrive.
  • Les analytics web en mode « allégé » ne comptaient pas les visiteurs européens pendant des semaines, ce qui a masqué les marchés principaux. Vérifier les réglages le jour 1.
  • Un long déploiement (39 commits) s'est arrêté sur un SIGPIPE de git log | head sous pipefail. Le script capture désormais la sortie d'abord.
  • Un import de base de données serveur a transformé les emoji en ????. Exécuter check-emoji.sh après chaque import.

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.

Skills associés