뷰 배포가 Vercel 빌드에서 멈췄다. 워커는 통과했는데 Vercel 이 막힌 이유는
--from deploy 가 빌드 게이트를 건너뛰고 바로 배포로 갔고, Vercel 은 자체 npm run build
(astro build && check.mjs)를 돌리기 때문이다. 실패는 두 가지였다.
1. HOME_DUPLICATE: 검토자 표시줄의 원장 이력이 병원 홈페이지 문장과 40자 일치했다.
이 자리는 병원 의료진 페이지의 이력을 프로필 링크와 함께 그대로 옮기는 귀속 표시라
설계상 일치한다. 다른 말로 바꿔 쓰면 이력이 사실과 달라진다.
/stay 의 인용 블록(#recovery-quote)을 이미 같은 이유로 빼고 있어서, 같은 규칙으로
.doctor-strip 을 QUOTED_BLOCKS 에 넣었다. 금칙어·운영자 어휘 검사는 그대로 적용된다.
2. 대표 이미지 alt 의 효과 주장: 배정된 alt 가 "손상된 피부 세포 재생과 콜라겐 생성으로
흉터와 색소침착 개선" 처럼 결과를 주장했다. 의료법 56조 2항 8호 대상이고 주제도 맞지 않았다.
이미지 자체는 문제가 없으므로 빼지 않고, 효과·결과 어휘가 있으면 출처만 밝히는 중립
문구로 바꾼다. 수집기의 분류를 믿지 않는다(일러스트가 시설로 들어온다)는 이유로
"시설 사진" 처럼 유형을 단정하지 않고 "홈페이지 이미지"로 쓴다.
검증: 세 사이트 모두 npm run build 종료코드 0(Vercel 이 돌리는 명령과 같다).
게이트 41/41, 샘플 check.mjs 오류 0건, tsc 0 에러, 내보내기 0.
연속 중복은 뷰 1·원진 1 이고, 오라클은 수집 이미지가 없어 그대로다.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- 템플릿: Planner.astro, lib/plan.ts·tour.ts, styles/plan.css, planStrings, pages plan·en/plan·404. Base 내비 회복 일정 → /plan, 언어 짝 /plan↔/en/plan, 옛 주소 리다이렉트(vercel.json), 사이트맵
- 워커 planner 단계(recovery 다음): scripts/build_planner_data.mjs 가 업종별 기본 규칙표(scripts/template/planner/procedures.plastic|derm.json)에 병원 시술 페이지 원문(recoveryNotes)을 matchKeywords 로 붙이고, 장소는 briefs/<clinic>/planner.places.json(큐레이션) 또는 범용 기본표(관광공사 기준 좌표)로 만든다
- 브리프: viewclinic·oracle 큐레이션 장소. 빈 템플릿(관광 데이터 없음)도 빌드·검증 통과(plan.test 14건)
- 이전 세션의 미커밋 작업(피부과 수집·OCR·게이트·언어 스위치, stay 페이지 제거)도 이 커밋에 함께 들어감. docs/prd 변경은 제외
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- 홈+page 사이트맵에서 원문 페이지 발견 → 경로 우선·단어 경계 분류(주의사항·애프터케어·검진·안전·의료진·오시는길·시설·소개·예약·시술)
- 본문 컨테이너 선택 + 페이지 간 반복 줄(메뉴·푸터) 제거, 헤딩·문단·목록·표·이미지·링크 구조화
- doctors.json: 이름·직함·약력. 약력이 이미지 글자면 textInImages, 2줄 미만이면 '확인 대기' (뷰성형외과 27명 전원 확인 대기)
- facts.draft.json: 전화·주소·사업자번호·대표·진료시간 정규식 후보 + 출처 URL
- home_text.txt: 전 페이지 본문(29만 자). check.mjs --home-text= 로 40자 중복 검사 기준 교체 가능 → 18편 0오류
- --posts 옵션: 글에 인용된 병원 URL 커버리지 리포트 (뷰성형외과 16/16, /face/main/은 301 추적)
- robots.txt Disallow 존중, UA 명시, 요청 간 400ms
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- src/data/site.json 신설(매체 이름·로고·홈 큐레이션), factSheet에 kind·areaLabel·transitShort·transitNote·reservationUrl·doctorsUrl·youtube.title 추가
- lib.ts: PENDING('확인 대기')·v()·has()·surface()·editor() 도입, 스키마는 빈 값을 빼고 생성
- 페이지·컴포넌트 15개에서 뷰성형외과 하드코딩 제거, 빈 데이터 empty-state (글 0편·영상 0건·뉴스 0건·이미지 없음)
- 검증: 28페이지 표시 텍스트·구조 지문 이전 빌드와 동일(홈 title 마침표 1건만 정정), JSON-LD 차이는 빈 sameAs 제거뿐
- scripts/export_template.mjs + scripts/template/data(빈 데이터 세트) → templates/supporters-astro (빈 데이터로 10페이지 0오류 빌드, 게이트 통과)
- 게이트 픽스처를 자체 authors로 분리해 템플릿에서도 테스트 통과, 구조 기준선의 글 상세 페이지는 사전순 첫 글로 동적 선택
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- supporters/: Astro 사이트 소스 (pages·components·posts·factSheet/authors/videos 데이터, 뉴스룸 916건 빌더, 발행 게이트 check.mjs, vercel.json)
- supporters/docs/: v1~v3 스크린샷 기록
- docs/INFINITH_Viewclinic_Supporters_Site_Design_v0.1.md: 서포터즈 사이트 설계 문서
- docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD.md: 다음 세션 자동 빌드 프롬프트
- docs/reports/Viewclinic_Supporters_vs_Official_AEO_Audit.xlsx + scripts/build_supporters_audit_xlsx.py: 서포터즈 vs 공식 사이트 AEO/GEO 감사 비교
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>