Community코딩 & 개발github.com

umairmsm/wp-ship

WordPress 사이트 구축의 7단계: 스테이징 환경, 서버 보안 강화, 안전한 배포, 데이터베이스 콘텐츠 변경, 출시 감사, DNS 전환, 출시 후 첫 주 모니터링을 다룹니다.

wp-ship란 무엇인가요?

이 스킬은 워드프레스 사이트를 라이브 환경으로 안전하게 출시하기 위한 마지막 단계(7단계)를 담당합니다. 스테이징 환경을 실제 운영 환경과 동기화하고, Cloudflare Access 뒤에 배치하며, 서버 보안을 강화하고, 안전한 배포 스크립트(`scripts/deploy-safe.sh`)를 통해 사람이 직접 입력한 커밋 ID로 배포를 진행합니다. 데이터베이스 콘텐츠 변경은 코드와 분리하여 JSON 파일로 기록하고 스크립트로 적용하며, 출시 전에 launch-auditor 에이전트로 전체 감사를 수행합니다. DNS 전환 시 기존 비즈니스 중단을 방지하고, 출시 후 7일 동안 오류, 404, 문의 양함, 분석 등을 모니터링합니다. Claude Code와 같은 에이전트 플랫폼에서 사용할 수 있으며, 소유자만 SSH와 배포 명령을 실행할 수 있도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/umairmsm/wp-site-kit/tree/HEAD/skills/wp-ship

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

7단계: 출시 (Ship)

목표: 스테이징이 운영과 동일해지고, 모든 배포가 지루할 정도로 안전해지며, 출시 당일 롤백이 가능하고, 첫 주를 면밀히 관찰합니다.

소유자가 배포를 실행합니다. 에이전트는 준비, 확인 및 설명만 합니다. 에이전트는 서버에 SSH로 접속하거나, deploy-safe.sh를 실행하거나, DNS를 변경하거나, 소유자가 명시적으로 요청하지 않는 한 Cloudflare를 건드리지 않습니다. deploy-safe.sh는 터미널과 입력된 커밋 ID가 필요하므로 에이전트 혼자서 완료할 수 없습니다.

단계

  1. 스테이징 (references/deploy-and-launch.md, "스테이징"): 운영 호스트의 별도 폴더와 데이터베이스, WP_ENVIRONMENT_TYPE=staging, Cloudflare Access 뒤에 배치, 문의용 테스트 받은편지함.
  2. 보안 강화: 프로젝트의 docs/reference/DEPLOY_HARDENING.md를 사용하여 모든 서버를 강화합니다. 결과를 docs/reference/SECURITY_PRELAUNCH.md에 기록합니다.
  3. 엣지: references/cloudflare-edge.md의 Cloudflare 설정을 적용합니다. 이전 호스트 앞에서 프록시를 켜기 전에 테스트하십시오. 일부 호스트는 IP 기반 속도 제한을 두고 Cloudflare를 차단할 수 있습니다.
  4. 코드 배포, 소유자만:
    • 예제를 참고하여 deploy/targets.conf를 작성합니다.
    • scripts/deploy-safe.sh <commit> --target staging --dry-run을 실행하고 변경 목록을 확인한 후, --dry-run 없이 다시 실행합니다.
    • 이미 코드가 있는 서버에서 처음 실행하는 경우 --assume-live <commit>이 필요합니다.
  5. 콘텐츠를 별도로 배포합니다.
    • 코드에는 가격, 페이지 또는 법적 텍스트가 포함되지 않습니다.
    • 각 변경 사항을 docs/data/content-changes/<날짜>-<주제>.json에 기록합니다 (필드별 변경 전/후 값).
    • scripts/apply-content-change.sh <file> --target staging(dry run)으로 적용한 후 --apply를 실행합니다.
    • 데이터베이스 가져오기나 이동 후에는 scripts/check-emoji.sh --target <env>를 실행합니다.
  6. 출시 감사: 스테이징에 대해 launch-auditor 에이전트를 실행하고 실패한 항목을 수정한 후, 통과할 때까지 다시 실행합니다.
  7. 전환 계획: references/deploy-and-launch.md의 "전환(Cutover)" 섹션을 참고하여 계획을 작성합니다. 소유자가 날짜와 시간을 승인하고, 사이트가 이미 예약을 받고 있는 경우 비즈니스 파트너도 승인합니다.
  8. 라이브 전환: 운영 환경에 배포하고, 운영 환경에서 launch-auditor를 실행하며, Search Console에 사이트맵을 제출하고, 실제 받은편지함으로 실제 테스트 문의를 보냅니다.
  9. 7일간 모니터링: 오류, 404(리디렉션 추가), 문의 양함, 분석, Search Console 적용 범위를 모니터링합니다.

게이트 (SITE_STATUS.md에 체크)

  • 스테이징이 Access 뒤에 있고, noindex 설정, 메일 보호됨
  • 보안 강화가 적용되고 기록됨
  • 스테이징에 안전하게 배포됨; 스모크 테스트 통과
  • launch-auditor가 스테이징에서 PASS, 이후 운영에서도 PASS
  • 전환 계획 승인됨 (날짜, 롤백, 메일/MX 확인)
  • 7일 모니터링 완료

이 규칙을 만든 사고 사례

  • 에이전트가 라이브 가격을 변경하고, AI가 작성한 약관을 게시하고, 검토 없이 기능을 배포했으며, 보고서에서 해당 배포를 누락했습니다. 그 이후로: 병합된 커밋에서만, 스크립트를 통해, 사람이 입력하여 배포하며, 프로덕션 SSH 키는 사용할 때마다 확인을 요청합니다.
  • 스테이징의 문의 양식이 테스트 키를 사용하여 타사 양식 서비스로 게시되어 문의가 테스트 받은편지함으로 전달되었습니다. 출시 전에 라이브에서 실제 문의를 하나 보내고 도착하는지 확인하십시오.
  • 웹 분석이 "라이트" 모드에서 몇 주 동안 EU 방문자를 집계하지 않아 핵심 시장이 숨겨졌습니다. 첫날 설정을 확인하십시오.
  • 긴 배포(39개 커밋)가 pipefail 아래 git log | head의 SIGPIPE로 중단되었습니다. 이제 스크립트가 먼저 출력을 캡처합니다.
  • 서버 데이터베이스 가져오기에서 이모지가 ????로 변환되었습니다. 모든 가져오기 후에 check-emoji.sh를 실행하십시오.

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.

관련 스킬