Commit Graph

19 Commits

Author SHA1 Message Date
Haewon Kam
587462552b feat(supporters): 오시는 길 지도·길찾기 (VisitMap) 방문 안내와 영어 홈에 추가
- OpenStreetMap 타일 + Leaflet(cdnjs) 지도, 병원 핀, 주소 복사, 문의 전화, 네이버·카카오 길찾기(영어 화면은 구글 길찾기 추가). 벤치마크 2026-09-11
- 좌표는 factSheet.geo(운영 기록 source 는 화면에 내지 않음), 없으면 관광공사 수집 메타, 둘 다 없으면 지도 없이 주소·버튼만

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:38:07 +09:00
Haewon Kam
83b8343262 feat(supporters): 회복 일정 플래너에 한국관광공사 TourAPI 데이터 합침 + 옛 주소 리다이렉트 + 404 페이지
- src/lib/tour.ts: 사전 수집 JSON(medicalTourismKo/medicalTourism)을 추천 후보로 변환. 관광지·문화시설→관광, 쇼핑, 음식점(일반식 단계에서만), 숙박→숙소. 사우나·스파는 회복기 금지라 제외. 거리로 외출 등급(600m·3km)
- 큐레이션(places.json) 1순위, TourAPI 2순위 가점. 타임라인 추천에 이동 시간 라벨과 '관광공사' 표시
- 체류 기간과 겹치는 행사 섹션(가까운 순 6곳, 자유 외출 단계 도달일 표시), 자유 외출(L3) 날에 행사 1건 추가
- 숙소 그리드에 TourAPI 숙박 가까운 순 6곳 추가(예약 검색은 영문 이름으로)
- scripts/fetch_medical_tourism.py: Productize 브랜치의 수집 스크립트 가져옴(화면 경로 주석 갱신)
- vercel.json: /recovery·/stay·/en/recovery·/en/stay → /plan·/en/plan 영구 리다이렉트. src/pages/404.astro 사이트 스타일 404
- 테스트 14건(어댑터·우선순위·유동식 제외·축제)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:01:32 +09:00
Haewon Kam
295401f356 en(supporters): 영어 홈에서 상담 언어·통역 문구 제거 (haewon)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 17:00:17 +09:00
Haewon Kam
c750cfd6d9 i18n(supporters): 전역 언어 전환(KO/EN)을 헤더 하나로 통일, 영어 홈 /en 신설
- 헤더 lang-switch: 현재 페이지의 상대 언어 페이지로 이동(/ ↔ /en, /plan ↔ /en/plan, 그 외는 언어 홈). 구조 기준선 갱신(haewon 승인)
- 영어 페이지에서는 메뉴·CTA·배너·뒤로가기·푸터(지원 고지·부작용 고지·링크·주소)까지 함께 전환. lib/i18n.ts, data/factSheetEn.json
- /en 영어 홈: 히어로, Start Here 카드, 병원 숫자, 오는 길(공항 경로·진료시간), 병원 사실, 원칙. 한국어 글은 번역 없이 링크만 안내
- 플래너의 페이지 내 언어 토글 제거, Step 1은 국적만. sitemap·hreflang 추가

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:38:41 +09:00
Haewon Kam
e40f9ceb94 feat(supporters): 회복 일정 플래너 /plan · /en/plan · 시술별 회복 규칙표, 큐레이션 장소, 예약 딥링크, 헤더 내비 연결
- src/pages/plan.astro, src/pages/en/plan.astro: 한국어·영어 페이지, hreflang 상호 연결
- src/components/Planner.astro: 5단계 흐름(언어·국적 → 시술·수술일 → 선호 → 일정표 → 예약·저장), 브라우저 안 계산, URL 해시 공유, ICS 저장
- src/lib/plan.ts: 입국 권장일·출국 가능 최소일·외출 등급·식사 단계·추천 점수·딥링크·ICS 순수 함수
- src/data/procedures.json: 시술 8종 규칙표. 값마다 clinic/provisional 표시, 병원 확인 전 잠정값은 화면 배지
- src/data/places.json: 신논현역 기준 큐레이션 31곳 (구글 지도·예약 사이트 검색 링크만)
- src/data/planStrings.json: UI 문자열 ko/en
- scripts/gate/plan.test.mjs: 계산·데이터 정합성 검증 11건
- Base.astro: lang·alternates prop, 내비 '회복 일정', 푸터 링크. 구조 기준선 갱신(haewon 승인)
- visit.astro: 플래너 진입 CTA 카드. sitemap에 /plan, /en/plan 추가
- 설계 근거: docs/INFINITH_Viewclinic_Supporters_Site_Design_v0.2.md §13

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:00:33 +09:00
Haewon Kam
ee8c06f53b feat(supporters): haewon 결정 반영 — 채널 인기 전체 탭 제거, 단가 상한 $10 기본, 큐 폴러(poll.mjs)+launchd, /supporters/:id 페이지, URL 신청→빌드 큐, 수집기 UA·슬래시 수정, 기획 목록 일반화(원진 6편)
WIP: 원진성형외과 회귀는 글 생성 단계에서 네트워크 끊김(fetch failed)으로 중단. 다음 세션에 --from generate 로 재실행.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 18:54:01 +09:00
Haewon Kam
7e515b70ae feat(supporters): 승인 UI·입력 반영·워커 — §7-5 ClinicInputsPanel + supporter_builds/inputs 마이그레이션 + apply_inputs, §12-2 상단 고지·개설자 승인·색인 빌드 필터, §7-6 워커 E2E(뷰성형외과 URL → 5편 → 게이트 0오류)
- 게이트: DISCLOSURE_TOP_MISSING, APPROVED_*, UNAPPROVED_IN_INDEXABLE_BUILD, PRESS_VOICE 규칙화, 픽스처 추가 (16/16)
- 생성기: --site 옵션, 병원 확인 답변(clinicAnswers) 근거 [A]
- default_briefs.mjs 첫 배치 자동 기획, workers/supporters-build/run.mjs
- 랜딩: SAMPLE REPORT 라벨 "실제 사례"로 (haewon 지시)
- v2 §11-6·§11-7 기록, E2E 리포트

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 17:07:06 +09:00
Haewon Kam
622441e6aa feat(supporters): 템플릿화 — 병원 고유값을 데이터로 분리하고 templates/supporters-astro 내보내기
- 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>
2026-09-07 14:07:14 +09:00
Haewon Kam
f776c3813b feat(supporters): 의학 검토 완료 확정 — 6편 검토일 2026-09-07, reviewedAt 필드·lastReviewed 스키마
- reviewer가 있는 6편(촉감·표면·프리저베·재수술·안전·병원 소개) reviewStatus reviewed, reviewedAt 2026-09-07, 갱신 기록에 "담당 원장 의학 검토 완료"
- 스키마 reviewedAt 추가. Article JSON-LD에 reviewedBy(Physician @id) + lastReviewed
- 글 상단 "의학 검토 {원장} (검토일)", ReviewBox "검토 완료 {검토일}"
- 샘플 배너 "정식 공개 전입니다"로 축약, 소개의 검토 대기 문장 삭제
- GEO 계획 문서 1단계 G2 반영 표기

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:02:14 +09:00
Haewon Kam
ffbd1e66bd feat(supporters): GEO 0단계 반영 — 작성자 안성민, 근거 범위 표현, 참고 자료 유형, 갱신 기록, 정정 기록 페이지
- 작성자: 가명 2명 → 안성민(편집자·편집 책임) 1명. 소개·푸터·ReviewBox에 편집 책임과 정정 요청 이메일(o2oteam@o2o.kr) 명시
- 의학 검토: 영상 출연 원장을 감수자로 표기하던 방식을 중단. 상단 메타 "설명 {원장}" + "의학 검토 대기", ReviewBox는 검토 완료 시에만 원장명·날짜 표시
- 근거 범위(G4): 촉감 글 FDA 승인 범위 한정, 표면 글 나노텍스처를 원장 의견으로 한정, 프리저베 30분·다음 날 출근 영상 사례 한정, 재수술 글 제품 권유를 임상 의견으로 한정, 안전 글 결론 문장 교체
- 원자료(G3): sources에 type 태그(병원 제공/원장 설명/제품 정보/규제·연구/플랫폼 집계/2차 자료). FDA P230005, FDA 위험 안내, ISO 14607 원문 링크 추가
- 일관성(G6): 후기 글 요약·FAQ에 플랫폼별 확인일 병기, "해외 환자 비중" 삭제. 홈 통계에 확인일
- 갱신 추적(G5): 글 frontmatter history + History 컴포넌트. 팩트 시트 checkedAt/nextCheck 표시
- 정정 경로(G8): /corrections 정정 기록 페이지(정정 7건), 푸터·소개·ReviewBox에 정정 요청 링크. 사이트맵 반영
- GEO 계획 문서에 0단계 반영 내역 기록

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 10:53:01 +09:00
Haewon Kam
8198051632 fix(supporters): 의료진 영상·뉴스룸·병원 정보의 운영자 시점 설명을 고객 문장으로 교체
- 의료진 영상: 선별 기준 설명(60초 롱폼/쇼츠 분류, 임베드·복제 고지)을 "무엇을 볼 수 있는지"로. 탭명 설명 영상 Top 10 / 1분 답변 영상, 1위 통계는 설명 영상 기준으로
- 뉴스룸: "링크 트리", 수집 질의 수 등 제거. In The News, "제목을 누르면 원문으로". 제3자 보도 미포함 사실은 고객 문장으로 유지
- 병원 정보: "홈페이지에 텍스트가 없어 강남언니 표기 사용" 사정 설명 제거, 출처 표기만 유지
- 홈 칩: "영상 1,215편을 근거로" → "원장이 직접 설명한 영상을 근거로" (채널 전체 편수를 근거 수로 읽히지 않게)
- 글 상세 영상 메모 "이 글의 주 원천" → "이 글의 바탕이 된 영상"

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:37:42 +09:00
Haewon Kam
f683fca187 feat(supporters): 메뉴 '의료진 영상' + 영상 페이지 상단에 의료진 소개 링크 2개 (공식 홈페이지 의료진 소개 · 강남언니 등록 의료진)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:33:41 +09:00
Haewon Kam
c631b9cdd8 fix(supporters): 글 목록 카테고리 블록 반응형 그리드 + 태블릿 헤더 한 줄 유지
- /posts: 카테고리 섹션이 글 수만큼만 칸을 차지하는 그리드 (데스크톱 3열 → 1000px 이하 2열 → 660px 이하 1열).
  1편짜리 병원 소개·방문·예약·안전·신뢰·후기·평판이 데스크톱에서 나란히 배치되고 세로로 쌓이지 않음
- 헤더: 720~1040px 구간에 메뉴 간격·크기 축소, nowrap. 새 메뉴 이름 5개가 두 줄로 깨지던 문제 해결
- docs/v4-screenshots: posts 데스크톱·태블릿·좁은 폭·모바일 스크린샷 추가

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:27:25 +09:00
Haewon Kam
8e2dd63b00 feat(supporters): Astra 개선안 일부 수용 — 메뉴 재명명, 방문 안내 페이지 신설, 고객 상태별 진입 카드
- 메뉴: 상담 전 질문(/posts) · 의료진 설명(/videos) · 병원 소식(/newsroom) · 방문 안내(/visit, 신설) · 매체 소개(/about). 기존 페이지는 그대로, 병원 정보(/clinic)는 푸터와 방문 안내에서 연결
- /visit 신설: 예약 경로 3가지 → 진료시간 → 찾아가기(지하철·주차 약도) → 도착 후 동선 → 상담 전 읽어볼 글 → 상담 예약 CTA. 값은 factSheet.json에서만
- 홈 히어로 아래 "Start Here / Where Are You Now?" 섹션: 처음 알아볼 때 · 병원을 선택할 때 · 방문을 준비할 때 카드 3개 (기존 .card 룩, 영어 세리프 헤딩 유지)
- 통계 숫자 블록 유지, 1문항 1URL 원칙 유지. 사이트맵에 /visit 추가

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:22:22 +09:00
Haewon Kam
7239ae16c4 fix(supporters): 홈 원칙 카드 제목을 명사구로 (답하는 방식 / 싣지 않는 것 / 밝히는 것)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:05:39 +09:00
Haewon Kam
c87ee03d54 feat(supporters): 히어로 제목을 '뷰성형외과, 궁금한 것부터 답합니다'로 바꾸고 2pt 확대 (2.7rem→2.86rem)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:02:07 +09:00
Haewon Kam
32e050a501 fix(supporters): v3 룩앤필 복원, 텍스트만 고객용으로 유지
- 홈 구조·영어 세리프 헤딩·아이브로우·통계 블록을 v3 그대로 되돌림 (주제 카드 섹션 제거)
- 통계 3칸은 답한 질문 수 / 원장 설명 영상 / 강남언니 후기로 숫자 유지, 설명만 고객 문장
- about·editorial·posts·clinic 상단 제목을 v3 방식(영어 세리프 h1)으로 복원
- 글 상세 아이브로우 "D · 시술 정보" 복원 (QB 번호만 제외)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 09:00:53 +09:00
Haewon Kam
24b8be0f3d feat(supporters): 고객용 메시지와 운영자용 설명 분리 (v4)
- 홈: "답변엔진 인용", "질문 뱅크 120", "홈페이지 문장 복사 안 함", "의료법 56조" 등 제작 원칙 섹션 제거.
  주제별 찾기(카테고리 카드) · 최근 답한 질문 · 원장 영상 · 병원 둘러보기 · 신뢰 근거 3가지 · 병원 정보로 재구성. 영어 덱 스타일 헤딩을 한국어 고객 문장으로 교체
- /about: 방문자용 "이 사이트에 대해"로 다시 씀 (근거, 작성·감수, 싣지 않는 것, 병원과의 관계, 문의)
- /editorial 신설: 운영자용 편집 기준 (질문 뱅크, 글 구조, 원천 변환, 중복 회피, 스키마, 발행 게이트, 고객/운영자 경계). noindex, 푸터에서만 연결
- 내비 "운영 원칙" → "소개", 샘플 배너에서 noindex 언급 제거, 글 상세 QB 번호는 data-qb 속성으로만 유지
- 글 목록·병원 정보·영상·뉴스룸·작성자 페이지의 "단일 원본", "API 집계", "수집 기준", "팩트 시트" 문구 정리
- 후기 글·방문 안내 글의 법 조문·답변엔진 언급을 고객 문장으로 교체
- Base에 noindex prop 추가. docs/v4-screenshots 기록

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 08:57:56 +09:00
Haewon Kam
03ed725481 feat: 뷰성형외과 서포터즈 샘플 사이트 v3 + 설계 v0.1 + 공식 사이트 대비 AEO 감사
- 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>
2026-09-07 08:40:10 +09:00