Commit Graph

217 Commits

Author SHA1 Message Date
Haewon Kam
dca494fc21 feat(supporters): 주변 안내(/stay·/en/stay) 뷰 샘플에 추가 · 내비·언어 짝·사이트맵·스타일 이식, 구조 기준선 갱신
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 18:28:13 +09:00
Haewon Kam
daf6350c49 docs: 제품 핸드오버에 발행(색인) 단계와 완료 정의 추가
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 15:28:51 +09:00
Haewon Kam
6c3e2888a7 docs: AI Discovery Product 빌드 핸드오버 (제품 여정·상태, 브랜치·배포 지도, 빌드 순서, 결정 대기, 함정)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:22:58 +09:00
Haewon Kam
93509bf9b3 chore(supporters): 플래너 추천 장소 설명을 관광공사 데이터 유무에 따라 표기
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 13:11:25 +09:00
Haewon Kam
94d7edec45 style(supporters): 지도 출처 줄을 행 밖으로 옮겨 지도 상자와 카드 아래선을 맞춤
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:51:53 +09:00
Haewon Kam
d13ac35365 style(supporters): 오시는 길 지도를 카드 높이에 맞춰 늘림 (열 비율 1.5:1, invalidateSize)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:48:49 +09:00
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
6b01cc9f7b chore(supporters): 플래너 검증·출처 줄을 Productize 템플릿과 동일하게 (관광 데이터 없을 때 건너뜀)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:28:05 +09:00
Haewon Kam
65fb9be9c6 refactor(supporters): 플래너 히어로의 시술 목록·기준점 문구를 데이터(procedures.json 라벨, places.json origin)에서 읽음 · 병원별 이식 준비
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 11:20:06 +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
f9e91d3305 chore(public): 뷰성형외과 영문 AEO/GEO 보고서 정적 배포 (reports/viewclinic/global-en-2026-09-10)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 09:51:14 +09:00
Haewon Kam
24dbe03471 docs(reports): 뷰성형외과 영문 사이트 외국인 관점 AEO/GEO 진단 보고서 2026-09-10
- 영문 60문항 질문뱅크(7군) + Perplexity/OpenAI(뉴욕) 실측 러너 scripts/run_question_bank_en.py
- 자동 채점 + 사람 보정 → v1.0 64/B · AEO 65/B · GEO 72/B (국문 54/C · 42/C · 56/C)
- HTML/PDF 보고서 빌더(Playwright), 서술 narrative_ko.json, README 폴더 안내 추가

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 09:50:33 +09:00
Haewon Kam
e47c5e2fc6 spacing(supporters): 회복 일정 페이지 간격을 전역 규격에 맞춤
- 히어로 통계 위 이중 여백 제거(섹션 머리 1.6rem만), 숫자 크기 전역 .stat b 그대로
- 다크 날짜 카드 패딩을 전역 .stat(1.5rem 1.6rem)으로, 6장을 3×2 고정
- 타임라인 행 간격 1.1rem·행 패딩 1rem 1.2rem(영상 목록 .vlist/.vitem 규격), 숙소 그리드 간격 1.25rem(.grid 규격), 범례 음수 마진 제거
- 모바일: 전역 모바일 규격과 충돌하던 히어로·섹션·카드 패딩 덮어쓰기 제거

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 17:02:29 +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
378ca7e7cd mobile(supporters): 회복 일정 플래너 반응형 정비 + 사이트 헤더 모바일·태블릿 대응
- 헤더(≤900px): 첫 줄 브랜드·상담 예약, 둘째 줄 메뉴 가로 스크롤. 메뉴 6개가 두 줄로 겹치던 문제를 DOM 변경 없이 CSS만으로 해결(구조 지문 유지)
- 플래너 모바일: 히어로 통계·핵심 날짜 2열, 시술 그리드 2열, 타임라인 날짜 머리 가로 배치, 숙소·예약 카드 1열, 입력 16px(iOS 확대 방지)
- 하단 고정 요약 바: 결과가 있고 결과 섹션이 화면 아래에 있을 때만 표시. 시술명, 입국→출국, 박 수, 일정표 보기 버튼
- 검증: 1280 창 안 390/768px 아이프레임 하네스로 확인 (헤드리스 크롬은 창 최소 폭 때문에 400px 직접 캡처가 부정확)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:20:39 +09:00
Haewon Kam
27e77add65 design(supporters): 회복 일정 플래너를 홈·영상 페이지와 같은 섹션 리듬으로 재구성
- 다크 히어로(세리프 그라디언트 제목, 언어 알약, 글래스 통계 4장) → 틴트(Step 1~3 카드 그리드) → 다크(핵심 날짜 6개 글래스 통계) → 라이트(체류 확인·회복 규칙·외출 단계 카드) → 틴트(타임라인 흰 카드) → 다크(숙소·항공·상담·저장 카드)
- 데이터 타일의 웜 그라디언트 제거(가드레일: CTA 카드 한 장에만). 전역 .kpi 규칙과 충돌하던 클래스명 교체
- 영문 세리프 제목 + 한글 부제로 위계, 날짜·박 수는 Playfair 숫자
- 빈 상태(시술·날짜 미선택) 다크 섹션 추가

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-10 16:10:29 +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
2eb3d5cd06 feat(sentiment): 감성 판정 기준표 v0.3 — 1차 보정 반영, 결정론적 언급 탐지기, 월간 실측 체인
haewon 보정 라벨 29건으로 1차 보정을 마쳤다. sentiment 일치율이 75%로 기준선 80%에
미달해 불일치 7건에서 규칙 R1~R5를 뽑아 기준표와 판정기 프롬프트에 넣었다.

규칙 (기준표 §2)
- R1 결론 단락이 개별 항목보다 우선한다
- R2 mixed 는 긍정과 부정이 대등하게 병존할 때만
- R3 "후기 수가 많다"는 규모 서술이며 긍정 평가가 아니다
- R4 평가 축이 있는 목록에 포함되면 positive
- R5 강점 서술은 출처가 병원 홍보라도 positive

R4-a(목록에서 결론이 대상 병원을 빼면 positive 아님)와 R6(결론 없는 카탈로그는
neutral)은 시험 투입 후 철회했다. 일치율이 93%에서 89%로 떨어졌다. 하나 고치면
하나 깨진다. n=29 에서는 과적합이므로 R1~R5 에서 멈춘다.

결정론적 언급 탐지기 (기준표 §2-1, mention_kind)
sentiment 를 매기기 전에 상호 존재를 정규식으로 먼저 판정하고, 판정기가 언급이라
해도 탐지기가 없다고 하면 not_mentioned 로 덮는다. 언급 수가 모든 비율의 분모다.
- URL 을 먼저 지운다. news.nate.com/view/... 의 "view" 를 언급으로 세던 오탐 3건 제거
- "리뷰"의 "뷰" 처럼 다른 낱말의 일부인 약칭을 뺀다. G-04 오탐 제거
- 한글 상호의 음절 사이 공백을 허용한다. "뷰 성형외과" 미탐지 2건 해소
언급 84 → 83, 약한 언급 3 → 1.

수치 (뷰성형외과 240건)
감성 점수 53.6 → 58.4. 약한 언급 1건 제외 시 57.9. mixed 10 → 0.
haewon 라벨 대비 일치율 93%는 같은 표본으로 규칙을 고친 값이라 확정 근거가 아니다.
기준표 확정은 새 30건 2차 보정으로 한다. 리포트와 요약 JSON 에 confirmed=false 로 적었다.

월간 실측 체인 (scripts/monthly_ai_measure.py, 핸드오버 §2-4)
질문 뱅크 러너 → 감성 판정 → 리포트 → supporter_builds.report.sentiment 를 한 명령으로
묶었다. 보정은 사람 게이트이므로 체인에 넣지 않았다. 질문 뱅크 러너가 아직
뷰성형외과 전용이라 다른 병원으로 넓히려면 러너를 먼저 매개변수화해야 한다.

버그 수정
- --summary 를 --calibration 없이 돌리면 §7 생성에서 죽던 문제. 핸드오버가 권장하는
  명령이 그대로 터졌다(--calibration 은 haewon 라벨을 지우므로 빼야 한다)
- 결과 jsonl 의 rubric 필드와 리포트 머리말의 기준표 버전이 v0.1 로 하드코딩돼 있었다

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 10:53:32 +09:00
Haewon Kam
f6701c2788 docs(retro): v1.1 — haewon 기존 서비스 정의 반영, 기간 08-26부터, 타 프로젝트 사건 행 제거, 진단과 기존 리포트의 관계 한 줄
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 13:07:02 +09:00
Haewon Kam
9f5d073c5e docs(retro): 타 서비스 언급 제거 (프로젝트 격리 규칙)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 13:03:15 +09:00
Haewon Kam
7f79028415 docs(prd): 표현 수정 — 빈자리 → 공백·선점 기회 (haewon 피드백)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 12:02:13 +09:00
Haewon Kam
fa44771caa docs: Global Medical Hub PRD v0.1 (INFINITH 토큰 HTML) — 운영 구조·중립성/IP 비교, AIO2O 등록·신청 항목, 완료/부분/신규 기능 표, 로드맵·KPI·리스크. 회고 haewon 수정 반영
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 12:00:40 +09:00
Haewon Kam
c55a6ade12 docs: 핸드오버 v3(다음 세션 프롬프트·남은 일·결정 대기) + AI Discovery 회고 초안 2026-09-08
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 11:21:57 +09:00
Haewon Kam
d1b22b9872 feat(supporters): 병원별 고정값 clinic.json — 원진 유튜브 기준 채널 @wjwonjin 고정(haewon 결정), 워커 우선순위 고정값>인자>발견(영상 수)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 10:20:47 +09:00
Haewon Kam
995e1e7dfa feat(supporters): 채널 발견+엔티티 검증 — discover_channels.mjs(사이트 전수·웹검색·핸들 변형·레지스트리·플랫폼 검색, 근거 점수 3-state), 워커 discover 단계 → surfaces/sameAs, 패널·리포트 발견 채널 표, 원진 리포트 갱신
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 10:06:28 +09:00
Haewon Kam
388a4a5ea4 feat(discovery): 원진성형외과 AI Answer Readiness 리포트 v2.0 — 자동 채점+보정 결과(discovery_wonjin.ts, AEO 15/D·GEO 45/C), 독립 HTML 리포트 빌더 + Chrome PDF, docs/reports/wonjin/01_readiness_report
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 09:46:15 +09:00
Haewon Kam
dc0d233b58 feat(supporters): 홈페이지 이미지 단계 — 의료법 기준 이미지 규칙 문서, collect_images.mjs+img_process.py(법 조건부 이미지 자동 제외, 글자 이미지 검사), 워커 images 단계, 글별 히어로·갤러리 매칭. 원진 66장 반영 재배포
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 09:34:48 +09:00
Haewon Kam
eb873bc43a feat(supporters): 유튜브·로고 단계 — collect_youtube.mjs(API 집계·정보형 필터·쇼츠 판별), 워커 youtube 단계(로고·파비콘·homeVideos), 글↔영상 매칭, 카드 로고 대체, 기존 글 보존 재실행. 원진 재배포
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 09:09:00 +09:00
Haewon Kam
572978c316 docs: v2 §11-9 — haewon 결정 4건 반영, 원진성형외과 E2E 완주(6/6편, 게이트 0오류, supporters-wonjin.vercel.app)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 19:25:34 +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
190ffdf7ab docs: 서포터즈 자동 빌드 v2 §11-8 실행 기록 — 마이그레이션 적용, supporters-viewclinic 미리보기 배포, 랜딩 프로덕션 배포
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 17:13: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
64a3bce9a3 feat(supporters): 글 생성기 §7-4 — brief+근거 컨텍스트 → GPT-4.1 → 소스 게이트·수치 대조·근거 대조·수정 2회, 정답지 18편 회귀 18/18 통과
- scripts/generate_posts.mjs + gen/{evidence,prompt,serialize}.mjs, briefs/README.md, 새 문항 brief 예시
- 게이트 COMPARISON_CLAIM(타 병원·업계 평균 비교 수치) 신설 + 픽스처, 금칙어 부정문 예외, 직렬화 왕복 테스트
- 회귀 리포트·샘플 3편 docs/reports/viewclinic/04_supporters, v2 §11-5 기록

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 16:37:56 +09:00
Haewon Kam
76ec63bc1e feat(discovery): 기준표 v2.0 정식 채택 — 배지·헤더·랜딩 카피·비교 엑셀·덱 v2.0
- aeoGeoRubricV2 status active/2.0, 결과 rubricVersion 2.0. 리포트 헤더는 AEO·GEO 링 2개가 주, v1.0 종합은 보조 표기
- 랜딩: Hero 카피, ABMR 칩(AEO/GEO 목표), SampleReport(두 링 + 축별 8항목 바), Roadmap 제목, HowItWorks를 v2 계산값에서 파생. 발견 칩 수치 v1.1 스냅샷으로 정정
- 비교 엑셀 v2: scripts/build_supporters_v2_compare.ts(점수 계산 TS 단일 원본) → build_supporters_audit_v2_xlsx.py. 공식 AEO 42/GEO 56 · 서포터즈 noindex 상한 40(G1) · 색인 허용 AEO 94/GEO 77
- 덱 v2.0: build_viewclinic_deck_v2_0.py (17장, 표지 배지 v2.0, KPI AEO/GEO, 스코어카드 2장, Method v2.0) + 표준캔버스 + PDF. v1.0·v1.1 파일은 그대로
- docs/AEO_GEO_RUBRIC.md에 v2.0 채택 주석, AEO_GEO_RUBRIC_v2.md 재생성, 리포트 페이지 PDF 재출력

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 15:25:00 +09:00
Haewon Kam
c02de9ea51 feat(discovery): AEO/GEO 분리 채점 기준표 v2.0 초안 + 리포트 패널
- src/data/aeoGeoRubricV2.ts: AEO 답변 준비도 8항목·GEO 출처 준비도 8항목(각 100), 게이트 2종(크롤러 접근·본문 렌더링 → 상한 40), 부가 지표 11개
- v1.0 36항목을 v2 항목에 1:1 매핑(중복 0·미매핑 0, 스크립트 검사). 항목 점수 = v1 실측 레벨 가중 평균, 사람 판정(v2Results) 우선, 미검증은 분모 제외
- src/lib/discoveryScoreV2.ts 집계, src/components/discovery/AeoGeoV2Panel.tsx 리포트 패널(헤더 아래)
- 뷰성형외과 재채점: v1 54/C → AEO 42/C · GEO 56/C (사람 판정 4개는 수집기 원문 근거 초안). 태하: 게이트 G1(A2) 실패로 40 상한
- docs/AEO_GEO_RUBRIC_v2.md는 scripts/gen_rubric_v2_doc.ts로 코드에서 생성
- tsconfig exclude에 supporters·templates·evidence 추가 (Astro 하위 프로젝트가 루트 tsc에 잡히던 문제)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 15:12:35 +09:00
Haewon Kam
e52331a239 docs: 서포터즈 자동 빌드 v2 §11-4 근거 수집기 기록, §12 haewon 결정 반영 + 법적 책임 주체 제안 + 워커·배포 추천
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 14:28:40 +09:00
Haewon Kam
c92ecc83fb feat(supporters): 근거 수집기 scripts/collect_evidence.mjs + evidence/viewclinic (§7-3)
- 홈+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>
2026-09-07 14:26:15 +09:00
Haewon Kam
63756f5a5c docs: 서포터즈 자동 빌드 v2 §11 진행 기록 — 게이트 확장·템플릿화 완료, 남은 단계와 결정 의존 관계
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 14:07:53 +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
49c5e46f23 feat(supporters): 발행 게이트 확장 — v2 §3 검사 11종을 규칙 모듈·픽스처 테스트로 분리
- scripts/gate/rules.mjs: 운영자 어휘·구조 지문·화법·근거 type·규제 원문·결론 문장·수치 한정·확인일 일관성·검토자/검토일·영상 제목·표/체크리스트 (순수 함수)
- scripts/check.mjs: dist + 소스 frontmatter + 데이터 검사 러너, --update-layout, error/warn 분리
- scripts/gate/test.mjs + fixtures 9개: 실패 재현 + 18편 정답지 회귀 + 부정문 통과
- corrections.json 「답변엔진」 표현 고객 화면에서 제거, 반말 문장 1건 수정
- audit_aeo_geo.py: 표본 URL 5개 미만 경고(§3-10)
- 미결: 「채널 인기 전체」 탭은 경고만 (haewon 결정 대기)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:57:31 +09:00
Haewon Kam
a441f8a4ad docs: 서포터즈 자동 빌드 핸드오버 v2 — 사람 판단 11건을 규칙/검사/사람 게이트로 분해, 근거 프로토콜, 신뢰 층 스펙, 병원 입력 항목
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:47:19 +09:00
Haewon Kam
f23c5a5113 chore: v1.1 표준캔버스 pptx 재생성분 반영
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:42:00 +09:00
Haewon Kam
fdb6aaf91b style(reports): v1.1 덱 제목·본문을 고객용 존댓말로 (판단 슬라이드 존댓말, 목차성 슬라이드 명사구)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:07:45 +09:00
Haewon Kam
13a8fca775 chore(reports): docs/reports를 고객·단계별 폴더로 분류
- viewclinic/01_readiness_report (진단 덱 v1.0·v2_표준캔버스·v1.1 + 빌더) / 02_poc_proposal (POC 정본·v3 + 빌더) / 03_question_bank (QB 120문항·실측·엑셀) / 04_supporters (GEO 계획·콘텐츠 기획·감사 엑셀)
- taeha/ (태하 리포트 + 빌더), ibk/ (기업은행 블로그 감사), landing/ (랜딩 시안·스크린샷·HTML 내보내기)
- README.md에 구조·정본/파생본·빌드 명령 안내
- 경로 참조 갱신: 핸드오버 문서 4개, QB 스크립트 3개, 빌더 docstring, discovery 페이지 주석
- 이전에 삭제된 POC v2_표준캔버스 2파일 삭제 반영

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 13:03:53 +09:00
Haewon Kam
90ad27ee73 fix: 뷰성형외과 AI Answer Readiness 리포트 v1.1 — 2026-09-07 재검증 정정 3건 + 병원 요청 슬라이드
정정 (원본 HTML 5개 URL 재파싱):
- 블로그 정지(2024-05) → 오판. www post-sitemap만 본 결과. blog.viewclinic.com은 09-07까지 발행, robots가 AI 봇 14종 명시 허용
- FAQ 0개 → 프리저베 페이지 FAQ 7문항 + 유효 FAQPage 스키마. C2 0→2
- 수술시간·회복 표기 없음 → 프리저베·코·윤곽 페이지에 텍스트 존재(가격대 없음). C4 1→2
- 총점 50 → 54 (C 유지), C 카테고리 28% → 44%. 그 외 판정(H1 5개, ItemList 파싱 실패, sameAs 빈 값, 표 0, 진료시간 이미지, WP 5.5.3)은 재확인

산출물:
- src/data/discovery_viewclinic.ts: 레벨·근거·keyFindings·actions 정정, auditedAt 2026-09-07 (/discovery/viewclinic 반영)
- 덱 v1.1 (16장): Corrections 슬라이드 + "뷰성형외과에 부탁드리는 것"(정보·확인·액션 3열) 추가. haewon 편집 원본 v1.0은 보존
- 20in 원본 + 표준캔버스 축소본, PDF 각 1부

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:45:29 +09:00
Haewon Kam
659f22b987 feat(supporters): 2단계 2차 원천 콘텐츠 5편 초안 + 1차 4편 검토 확정 + 의료진 6명 추가
- 2차 5편 (검토 대기): 트임 3종 비교(눈 조진우), 기능코성형·이비인후과 협진(고은석), 윤곽·양악 회복 일정표(오정석), 실리프팅 vs 안면거상(김소영), 타원 수술 재수술 상담·시점(정재현)
- 근거: 쇼츠 정리 답 6편, 주의사항 페이지 부위별 원문(눈·코·윤곽·양악·리프팅), 코성형·안면윤곽·가슴재수술 페이지, 원장 인터뷰·칼럼 5건. 자료에 없는 수치(지속 기간, 코·윤곽 재수술 시점, 신경 손상 확률, 타원 상담 정책)는 "자료에 없음 / 확인 대기"로 명시
- 1차 4편 검토 완료 2026-09-07: 상담 질문 최순우, 회복 정재현, 마취 최진화(마취통증의학과 전문의로 교체), 검진 오원석. 견적 글은 검토자 없음
- authors.json physicians에 조진우·고은석·오정석·김소영·윤창운·최진화 추가 (공식 프로필 경력·URL)
- 기획서에 1·2차 상태 반영. 게이트 28페이지 오류 0

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:28:06 +09:00
Haewon Kam
2735de7e2a feat(supporters): 2단계 1차 원천 콘텐츠 5편 초안 (검토 대기) + 작성자 sameAs 한경 인터뷰
- C 선택 기준: 가슴성형 상담 질문 10가지 체크리스트 (답 적는 칸, 병원 공개 답 병기)
- F 가격·이벤트: 견적 확인 항목 9가지 + 비용 확인 경로 (금액 미기재)
- D 시술 정보: 가슴성형 회복 일정표 (당일~1년, 주의사항·애프터케어 페이지 원문 기준, 출근 시점은 병원 확인 대기)
- E 안전·신뢰: 수면마취 vs 전신마취 (쇼츠 E-04 + 안전수술시스템 마취 프로세스)
- D 시술 정보: 보형물 교체 주기와 검진 (쇼츠 D1-11 + FDA 위험 안내 + 검진센터·애프터케어)
- 모두 reviewStatus pending, 확인 안 된 수치는 쓰지 않고 "상담 확인"으로 표기. 참고 자료 유형 태그·확인일 포함
- authors.json: 안성민 sameAs에 한국경제 CEO 인터뷰 추가
- 기획서에 1차 초안 발행 기록

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:19:06 +09:00
Haewon Kam
1b0fd6624a docs(supporters): 2단계 원천 콘텐츠 기획서(13편) + 작성자 역할을 'AI오투오 대표 · 편집 책임'으로
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 11:07:17 +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