Community라이팅 & 에디팅github.com

ethanplusai/astro-conversion-kit

DNS 전환 직후부터 30일 동안 사이트 전환을 검증하고, 프로덕션과 사전 런치 기준을 비교하며, 모니터링을 예약합니다. 읽기 전용이며 결과에 관계없이 0을 반환합니다.

astro-conversion-kit란 무엇인가요?

이 스킬은 DNS 전환이 완료된 직후부터 30일 동안 사이트 전환의 성공 여부를 자동으로 검증하고 모니터링하는 읽기 전용 도구입니다. 프로덕션 환경, 스테이징 호스트, 이전 호스트 및 리디렉션 맵의 URL을 가져오고, 4개의 공개 DNS 리졸버에 도메인을 질의하여 DNS 전파, 인증서, HTTP 및 WWW 리디렉션, noindex, robots.txt, sitemap, 보안 헤더 등 20여 가지 항목을 점검합니다. 이 스킬은 Claude Code에서 실행되며, `--mode cutover`와 `--mode watch` 두 가지 모드로 작동합니다. cutover 모드는 DNS 전환 직후에 실행하여 실제 전환이 완료되었는지 확인하고, watch 모드는 이후 30일 동안 매일 실행하여 변경 사항이나 드리프트를 감지합니다. 또한 사전 런치 단계에서 생성된 `baseline.json`과 `redirects.csv`를 입력으로 받아 프로덕션과 기준을 비교합니다. 주요 특징은 엄격한 증거 기반 보고, 사람이 수행해야 하는 6가지 항목의 명확한 구분, 그리고 'Not covered' 항목을 절대 통과로 간주하지 않는 규칙입니다. 이 스킬은 사이트를 수정하거나, 양식을 제출하거나, 설정을 변경하거나, API를 호출하지 않으며, 항상 종료 코드 0을 반환합니다. 런치 발표는 이 보고서가 완전히 깨끗할 때만 이루어져야 한다는 원칙을 따릅니다. 지원 플랫폼: Claude Code. 이 스킬은 `pre-launch`와 `launch-audit` 다음에 실행되며, 이전 단계에서 생성된 기준 데이터와 리디렉션 맵을 필요로 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ethanplusai/astro-conversion-kit/tree/HEAD/skills/post-launch

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

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

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

문서

post-launch

감시자입니다. DNS가 이동한 순간부터 30일 동안 매일 한 번 실행됩니다. 보고만 하며, 결코 차단하거나 수정하거나 알리지 않습니다.

하나의 규칙

블로커는 먼저 읽고 마지막에 발표합니다. 발표는 이 보고서가 깨끗하게 나올 때까지 이루어지지 않습니다 — 이메일, 게시글, 고객 전화 모두 없습니다. 발표는 되돌릴 수 없는 런치의 유일한 단계이며, 여기 두 블로커는 런치가 실제로 일어나지 않은 상태를 정확히 나타냅니다: 아무도 통과할 수 없는 인증서와 검색 엔진에 사이트를 잊으라고 지시하는 noindex입니다. 둘 다 이미 로그인한 브라우저에서는 정상으로 보입니다.

누군가 블로커가 있는 상태에서 발표를 요청한다면, 블로커가 무엇이며 그 비용이 무엇인지 명확히 말하고 누그러뜨리지 마십시오.

읽기 전용

이 스킬은 읽기 전용입니다. 라이브 사이트, 스테이징 호스트, 이전 호스트 및 리디렉션 맵의 URL을 가져오고, 4개의 공개 DNS 리졸버에 도메인이 어디를 가리키는지 질의합니다. 정확히 두 가지만 기록하며, 둘 다 운영자 자신의 기록입니다: 보고서 번들과 그 안의 watch.json입니다. 사이트를 수정하거나, 양식을 제출하거나, 설정을 변경하거나, 공급자 API를 호출하거나, DNS를 건드리지 않습니다.

세 가지 규칙이 있으며, 보고할 때 이를 다시 언급해야 합니다:

  1. 모든 결과에 대한 증거. URL, 상태, 헤더, DNS 응답, CSV 행.
  2. 건너뛰기는 통과가 아닙니다. 제공하지 않은 모든 입력은 Not covered에 명명된 행이 됩니다.
  3. Not covered는 절대 통과가 아닙니다. 그 섹션을 사람에게 그대로 반복해야 합니다.

두 가지 모드

모드시점답변하는 질문
--mode cutoverDNS가 이동한 순간 및 수정 후실제로 런치가 일어났는가
--mode watch1~30일 동안 매일 한 번오늘 마감된 것은 무엇이며, 드리프트가 있는가

cutover를 먼저 실행하고, 발견된 것을 수정한 후 다시 실행하여 깨끗해질 때까지 반복한 다음 발표하십시오. 같은 날 watch를 시작하십시오.

1. 입력 수집

빠뜨린 모든 입력은 실행할 수 없는 검사가 됩니다. 각각을 요청하십시오; 추측하지 마십시오.

  • 프로덕션 URL. 필수.
  • baseline.json — pre-launch 번들에서, 또는 전환 전 스테이징에 대해 실행된 launch-audit 실행에서 가져옵니다. 이것이 "무언가 변경되었는가"를 측정하는 기준입니다. 없으면 네 가지 검사는 비교할 대상이 없고 다섯 번째는 --expect-analytics로 폴백합니다. 모두 그렇게 말합니다.
  • redirects.csv — --old-url로 구축된 launch-audit 번들에서 가져옵니다. 모든 행이 작성된 URL에서 다시 요청됩니다.
  • 이전 사이트의 URL, 교체되는 경우.
  • 스테이징 URL, 실행 시 스테이징 복사본이 봉인되었는지 확인할 수 있습니다.
  • 애널리틱스 측정 ID, 기준이 없는 경우 사용됩니다.
  • 예상되었던 DNS 레코드, apex= 및 www= 값으로.

기준 또는 리디렉션 맵이 없다면 실행 전에 말하십시오: 이들은 이전 두 단계에서 나오며, 전환 후에는 재생성할 수 없습니다.

2. 전환 확인 실행

스크립트를 실행하십시오; 소스를 읽거나 구현을 다시 작성하지 마십시오.

node scripts/post-launch.mjs --mode cutover --url <production url> \
  --baseline <baseline.json 경로> --redirects <redirects.csv 경로> \
  --old-url <이전 사이트 url> --staging-url <스테이징 url> \
  --expect-analytics <측정 id> --expect-dns apex=<ip>,www=<host> --out <dir>

경로는 이 스킬의 자체 디렉토리를 기준으로 합니다 — 해당 디렉토리에서 명령을 실행하십시오. 번들은 현재 작업 디렉토리 아래에 기록됩니다: --out 없이 ./website-launch/<host>-post-launch-<date>/에 위치하며, 위 명령어로는 이 스킬의 자체 디렉토리 내부가 됩니다. 작업이 있는 곳에 번들을 기록하려면 --out을 사용하십시오.

기타 플래그: --dev-host <host> (반복 가능), --browser auto|on|off, --out <dir>, --config <path>, --json, --help.

종료 코드: 전환이 아무리 나빠도 항상 0입니다. 사용 오류 또는 IO 실패의 경우 2. 종료 0이 "런치가 정상"을 의미하지는 않습니다 — 이는 보고하며 차단하지 않습니다. 보고서를 읽으십시오.

3. 이 순서로 보고서 읽기

references/reading-the-report.md에 번들 레이아웃이 있습니다. references/cutover-day.md는 실행 순서가 왜 그런지 설명합니다 — 순서를 무시하고 수정하기 전에 읽으십시오.

  1. 블로커. 굵게, 어떤 단계에서 왔든 먼저 출력됩니다. 다른 것보다 먼저, 그리고 누군가에게 사이트가 살아있다고 말하기 전에 수정하십시오.
  2. 높은 수준의 발견 사항. 리디렉션 드리프트, 누락된 페이지, 죽은 양식 엔드포인트, 라이브 스테이징 복사본, 여전히 서빙 중인 이전 호스트 — 각각은 지금 당장 트래픽이나 문의를 잃고 있는 것입니다. 이번 주가 아닌 오늘의 작업입니다.
  3. 기준 차이. references/baseline-diff.md는 런치 시 이동이 예상되는 필드와 절대 이동해서는 안 되는 필드를 설명합니다. 전체 차이를 손상으로 보고하지 말고, 아무도 요청하지 않은 부분만 보고하십시오.
  4. 보통 및 정보. 읽으십시오. 무엇인지 말하십시오. 오늘은 수정하지 마십시오.
  5. Not covered, 그대로. 모든 행, 편집되지 않은 상태, 크롤링이 볼 수 없는 두 가지를 포함합니다.

그런 다음 블로커가 사라질 때까지 다시 실행하고 계속 다시 실행하십시오.

4. 여섯 가지 사람 작업 수행

매 실행마다 끝에 출력되며 선택 사항이 아닙니다:

sitemap 제출 (Search Console 및 Bing)   ·   상위 페이지 인덱싱 요청
새 Search Console 속성 확인        ·   실시간 애널리틱스 확인
이전 호스트 유지 및 리디렉션           ·   깨끗할 때만 발표

남을 대신해 체크하지 마십시오. "엔드포인트가 200을 반환함"은 "사람이 테스트 제출을 받음"이 아니며, "태그가 HTML에 있음"은 "실시간으로 히트가 나타남"이 아닙니다.

5. Watch 실행, 매일

node scripts/post-launch.mjs --mode watch --url <production url> --day <n>

마감된 것, 오늘 마감되는 것, 다음 7일 동안 예정된 것을 출력한 후, 자동화된 부분을 다시 실행하고 실행을 기록합니다. references/thirty-day-watch.md에 전체 일정, 각 날짜에 Search Console과 애널리틱스에서 확인할 사항, 그리고 "정상"이 어떻게 보이는지가 있습니다 — 일반적인 런치 후 하락이 재난으로 보고되지 않도록 합니다.

--day를 생략하면 첫 번째 실행부터 계산합니다. watch가 실행되지 않은 날은 자동화된 작업에 대해 마감된 상태로 남습니다; 사람 작업은 사람이 해결할 때까지 마감된 상태로 남습니다. 스크립트가 하는 어떤 것도 누군가가 Search Console을 열었다는 증거가 아니기 때문입니다.

6. 30일째

두 가지, 둘 다 자동화되지 않았습니다:

  • 회고. 무엇이 회귀했는지, 리디렉션 맵이 놓친 것은 무엇인지, 다음 런치에서 반복되지 않도록 pre-launch 게이트에 무엇을 추가할 것인지. 기록하십시오.
  • 이전 호스트 결정. Search Console에 이전 URL의 크롤링이 더 이상 표시되지 않고 그리고 리디렉션이 최소 30일 동안 유지된 경우에만 이전 호스트를 폐기할 수 있습니다. 둘 다 참이 될 때까지 비용을 계속 지불하십시오. 일찍 끄면 이전 사이트가 얻은 모든 링크를 버리는 것입니다.

7. 결과 제시

개수가 아니라 결정문으로 시작하십시오.

  1. 평결. "전환에 하나의 블로커가 있습니다" 또는 "전환이 깨끗합니다." 한 문장.
  2. 차단하는 것, 수정 사항을 명시하여.
  3. 누출되는 것, 원인별로 그룹화: 높은 수준의 발견 사항, 평이한 언어로.
  4. 기준 대비 변경된 것 중 아무도 요청하지 않은 것.
  5. Not covered, 그대로.
  6. 사람 작업, 완료된 것과 완료되지 않은 것.
  7. 런치가 발표되어도 되는지 여부. 명시적으로, 어느 쪽이든 말하십시오.

실행되지 않는 두 가지 검사

  • 카피 대 소스 문서. 라이브 페이지의 단어를 승인된 카피와 비교하지 않습니다. 사람이 둘 다 읽어야 합니다.
  • 페이지 대 합의된 범위. 어떤 페이지가 존재해야 했는지 알지 못합니다. 만들어지지 않은 페이지는 여기에서 보이지 않습니다.

참조

파일내용
references/cutover-day.md순서가 있는 일일 스크립트와 각 단계가 그 위치에 있는 이유
references/thirty-day-watch.md일정, Search Console과 애널리틱스에서 읽을 사항, 정상의 모습, 이전 호스트 규칙
references/baseline-diff.md모든 차이 필드, 런치 시 예상되는 변경과 예상되지 않는 변경
references/reading-the-report.md번들, 심각도, ID, 분류 방법

위치

pre-launch는 배포 전에 저장소를 차단하고 막습니다. launch-audit는 스테이징 또는 라이브 URL을 크롤링하고 보고합니다. post-launch가 이것입니다: 전환과 그 후 30일. 이 순서로 실행하십시오 — 이 스킬이 필요한 기준과 리디렉션 맵은 처음 두 단계에서만, 그리고 이전 사이트가 여전히 작동 중일 때만 만들 수 있습니다.

Individual skills in this repo

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

ethanplusai/astro-conversion-kit

Crawl a live website, read-only and paced, into a capture/ folder that a rebuild is checked against — every page's HTML, text and head tags, redirects with every hop, links, third-party scripts, the media set, stylesheets, fonts, logo and icons, feeds, templates, and live screenshots at three widths. Use before converting or rebuilding a site, when asked to crawl, capture, snapshot or inventory a site, or when a capture stopped on blocks and needs resuming.

ethanplusai/astro-conversion-kit

Convert a live website (WordPress first; Drupal, Webflow, Squarespace, Wix and static sites too) into a static Astro site with the same URLs, content, head tags, media, redirects and look, proven by parity gates and a pixel-level visual review, ending in one pull request, a noindexed staging deploy and a launch runbook. Use when asked to convert, rebuild, migrate or clone a site to Astro, when handed a site URL with this kit's link, to resume a conversion from .conversion/state.json, or with --apply <id> to apply one suggestion as a proposal.

ethanplusai/astro-conversion-kit

Audit a live or staging website and report what would go wrong at launch — crawl and inventory, indexability, redirects for a domain cutover, links, images, forms, accessibility, performance, analytics, content sanity, and full-page screenshots for a visual pass. Use before or right after a site launch, when asked to QA, audit, or review a website, when a site is moving to a new domain, or when somebody asks whether a site is ready to go live. Read-only: it never submits a form, clicks a control, or edits anything.

ethanplusai/astro-conversion-kit

Freeze a site capture into baseline/ and prove an Astro build matches it — every route, redirect (one hop, through a simulation of the host), SEO head field, visible text, internal link, media file, sitemap entry, feed, form, third-party script and security header — with approved differences in exceptions.json and improvements in proposals.json. Use after a capture to build the baseline, when compiling redirects.csv for Vercel or Cloudflare, before calling any conversion page done, when a gate fails and needs reading, or to check a staging deploy against the baseline.

관련 스킬