문서 / specs/001-harness-public-site/quickstart.md

Quickstart Validation: 5240lab 하네스 공개 사이트

공개 사이트를 처음부터 검증하는 절차.

Prerequisites

  • 이 저장소의 프로젝트 루트에서 실행
  • Node.js 24.x와 npm
  • 근거 원본이 있는 상위 5240lab 워크스페이스

Install and baseline

npm install
npm run verify:evidence
npm test

예상 결과: 모든 선별 근거가 원본 파일·행·발췌·공개 안전성 검사를 통과하고 단위· 렌더 계약 테스트가 통과한다.

Full verification

npm run verify

예상 결과: 근거, 콘텐츠, 테스트, 타입, 린트와 production build가 모두 성공한다.

Local browser acceptance

npm run test:browser

Playwright가 검사용 개발 서버를 자동으로 시작하고 종료한다.

다음을 확인한다.

  1. /, /guide, /5240lab, /roadmap가 200을 반환한다.
  2. 기능정의서 작성 시점, Superpowers와 매뉴얼 동기화 단계가 /guide에 있다.
  3. 근거 필터가 키보드로 동작하고 JavaScript를 끄면 전체 근거가 보인다.
  4. L0~L4, 100점과 개선 전후 판정이 /roadmap에 있다.
  5. 375, 768, 1024, 1440px에서 수평 넘침과 핵심 콘텐츠 손실이 없다.
  6. 심각·중대 접근성 위반이 없다.
  7. 알 수 없는 경로가 404를 유지하고 복구 링크를 제공한다.

Candidate release

Phase 8 로컬 release interface는 구현되어 있다. 서비스 root는 운영 기본값 대신 격리된 임시 디렉터리로 덮어써서 점검할 수 있다.

export HARNESS_RELEASE_ROOT="$(mktemp -d)"
./deploy/build-release.sh --release-root "$HARNESS_RELEASE_ROOT" --release-id harness-local-check
./deploy/deploy.sh --release-root "$HARNESS_RELEASE_ROOT" --release-id harness-local-check --candidate-port 3631 --check-only

예상 결과: versioned standalone artifact가 생성되고 후보 포트에서 health와 내부 smoke를 통과하지만 활성 release는 바뀌지 않는다.

Production acceptance

아래 외부 활성화와 smoke는 T064 운영 승인, DNS와 TLS 구성이 끝난 뒤 실행한다.

./deploy/deploy.sh --release-id RELEASE_ID --external-base-url https://harness.insapien.co.kr
curl -fsS https://harness.insapien.co.kr/api/health
node scripts/smoke.mjs https://harness.insapien.co.kr

예상 결과: 네 공개 경로·health·정적 자산·404가 모두 통과하고 배포 기록에 활성 release와 근거 검증일이 남는다.

Rollback drill

격리된 fixture release, 후보 포트와 가짜 service restart를 사용해 두 실패 경로를 실행한다.

npm run test:deploy

후보 health 실패에는 활성 link가 유지되고, 활성화 후 외부 smoke 실패에는 이전 release가 다시 활성화되어야 한다. 이 훈련은 실제 systemd, Nginx, DNS 또는 TLS를 변경하지 않는다. 실행 결과는 deployment report에 기록한다.