Commit Graph

72 Commits

Author SHA1 Message Date
Haewon Kam
bb68bdacad merge: feature/supporters-autobuild 진행분 (주변 안내 /stay, 워커 publish 색인 단계) 반영
머지 뒤에 브랜치가 5개 커밋 앞서 있었다. 주변 안내(/stay·/en/stay) 복원과
워커 publish 단계(IndexNow·검색 콘솔 소유 확인)가 거기 있었고, 먼저 올린 머지가
이 둘을 떨어뜨렸다. supporters/ 정본은 i18n 방식을 유지하고, 사이트맵과 site.json 은
양쪽 추가를 모두 살렸다. 템플릿은 supporters/ 에서 다시 내보낸다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 15:19:41 +09:00
Haewon Kam
b79565a6a6 docs: 핸드오버에 2026-09-12 확인 결과·§4-1 완료·판단 2건 기록
§1: 미확인으로 남겨 둔 항목을 실제로 확인해 표 앞에 결과를 붙였다. 리드 CTA 와
v2 기준표는 이미 main 에 있고, Supabase 마이그레이션은 전부 적용됐으며,
discovery_results 는 없다. supporters-viewclinic 의 /plan 이 404 인 것도 적었다.

§2: feature/product-1.0 으로 합친 결과와, 핸드오버가 적지 않은 네 번째 브랜치
Productize(랜딩 SSR 프리렌더·robots/sitemap/llms.txt)를 적었다.

§4-1: 완료로 바꾸고 정본 결정이 초안과 반대 방향임을 밝혔다.

§5: haewon 이 답한 두 항목(Product 1.0 범위 b, supporters 정본)을 결정으로 적었다.

§5-2 신설: 이번 세션에 내린 판단 2건을 발견·이유·한 것·되돌리는 법으로 남겼다.
영문 의료광고 고지를 승인 없이 번역하지 않기로 한 것과, 누락 탐지기가 상호만 찾아
지명으로 적힌 사실을 놓치던 것을 고친 내용이다. 빈 데이터로 빌드해 봐야 하드코딩이
드러난다는 것과, 게이트가 통과해도 빈 값이 만든 비문은 잡히지 않는다는 것을 함께 적었다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-12 15:17:23 +09:00
Haewon Kam
1a7195a96a docs: 하위 핸드오버에 월요일 세션·최종 상태 표기
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 19:51:55 +09:00
Haewon Kam
7b1be074ad docs: 주변 안내 복원 기록
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 18:29:04 +09:00
Haewon Kam
891b7bdece feat(supporters): 워커 publish 단계 · 배포 뒤 색인 작업 자동화 + 사람 체크리스트
- scripts/publish_site.mjs: 라이브 확인(홈·robots·sitemap·noindex), IndexNow(빙·네이버) 사이트맵 URL 알림, Google Search Console 사이트맵 제출·URL 색인 상태(서비스 계정 있을 때), 사람 몫 체크리스트(publish-checklist.md, status.humanTasks)
- 워커: data 단계에서 IndexNow 키 파일 생성, --indexable(noindex 헤더 제거·승인 글만), --domain(vercel domains add·SITE_URL), deploy 뒤 publish 단계, 상태 published_pending_tasks
- Base.astro: google/naver 소유 확인 메타(site.json googleSiteVerification·naverSiteVerification)
- 완료 정의: 배포가 아니라 색인 작업과 사람 체크리스트까지 (haewon 2026-09-11)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 15:28:48 +09:00
Haewon Kam
f01bc6cafc merge: feature/supporters-autobuild + feature/ai-sentiment-rubric 를 Product 1.0 한 줄기로 합침
Product 1.0 범위는 진단 + 서포터즈 초안(haewon 결정).

브랜치 확인 결과 핸드오버 §1 의 미확인 항목 두 건은 이미 해결 상태였다.
리드 CTA(DiscoveryLeadModal·discovery_leads 마이그레이션)와 AEO/GEO v2 기준표는
셋 다 main 에 있고 blob 이 동일하다. feature/discovery-url-cta 는 main 대비
ahead 0 / behind 22 인 낡은 포인터라 머지 대상에서 뺐다.

supporters/ 정본은 메인 쪽(뷰 수작업 샘플)으로 정했다(haewon 결정).
겹친 22개 파일 중 실제로 다른 것은 9개였고 전부 메인 쪽을 취했다.
layout-baseline.json 은 Base.astro 가 내는 언어 전환 링크 모양(a.lang-switch)과
짝이라 같은 쪽으로 가져왔다.

Productize 쪽에만 있던 두 가지를 정본으로 옮겼다.
- GA4 태그: site.json 의 ga4MeasurementId 가 G-형식일 때만 삽입한다.
  값이 없으면 스크립트가 아예 나가지 않는다. 키 이벤트 이름은
  data/ai_channels.json 의 conversion_events 와 맞춘다.
- 영문 법적 고지: 지원 관계·부작용 고지는 의료법 56조 대상이라 임의 번역하지 않는다.
  i18n.ts 에 병원 승인 없는 영문 번역이 들어 있어 푸터에서 쓰지 않도록 했다.
  site.json 의 sponsorNoticeEn · factSheet 의 sideEffectNoticeEn 이 채워지기 전까지
  영문 화면은 한국어 원문과 확인 대기 표기를 함께 낸다.

검증: astro build 32페이지, 게이트 41/41 통과, check.mjs 오류 0건
(경고 23건은 기존 건으로 site.sponsorNotice 미설정 18건과 원고 수치 한정 5건),
루트 tsc --noEmit 0 에러. GA4 는 임시 측정 ID 로 삽입·미삽입 양쪽을 확인하고 원복했다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 14:34:47 +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
c044546614 docs: 서포터즈 빌드 절차 문서를 제품 핸드오버의 하위 문서로 표기
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:22:18 +09:00
Haewon Kam
99195f09f3 docs: 다음 세션 핸드오버 (Product build 절차·격리 구조·결정 대기·함정) + 오라클 핸드오버 커밋
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:14:46 +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
b2caef9d02 docs(handover): 2026-09-09 진행분 반영 — 감성 1차 보정 완료, 남은 것은 2차 보정과 GA4 실연결
§2 각 항목에 진행 상태를 붙이고 결과 요약표를 넣었다. §4 함정에 세 줄을 더했다
(--calibration 버그 수정, 재판정 시 --out 처리, 언급 탐지를 LLM 에 맡기지 않는다).
§5 에 monthly_ai_measure.py 명령을 넣었다. §3-1 을 오늘 결과로 다시 썼다.

두 체크아웃 모두 푸시하지 않았고, 메인 체크아웃은 feature/ai-sentiment-rubric
브랜치에 있다. 문서에 적어 두었다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 10:54:52 +09:00
Haewon Kam
501d6002c6 docs(prd): 의료관광 허브 PRD v0.2 — 앵커의 병원 소개 역량 반영
2026-09-09 haewon 전달. 뷰성형외과 원장이 다른 병원 네트워크·파트너십이 많아
병원을 유치할 수 있다고 밝혔다. 명단·수·관계 단계가 확인되지 않았으므로 사실이
아니라 확인 대상으로 적었다.

- §04: "앵커의 병원 소개 역량이 큰 경우" 카드. 구조 판단(IP 귀속·중립성)은
  소개 규모와 무관하며 바뀌는 것은 소개 목표 수치와 그 대가라고 정리했다.
  앵커 계약 조항 5개(소개 목표 수치화, 성과 연동 대가, 소개 병원의 AIO2O
  직접 계약, 노출 우대 배제, 앵커 이탈 시 병원 계약 존속)와 확인 질문 4개
- §05: 의료법 27조 3항(영리 목적 환자 소개·알선·유인 금지) 확인 행. 병원 간
  상호 소개 관계를 허브로 옮길 때의 적용 여부는 변호사 확인 항목이다
- §08: 1단계 온보딩을 "최소 2~4곳, 앵커 소개 명단 확인 후 재산정" 으로.
  CEO 결정 (1)에 소개 목표·성과 연동·직접 계약 원칙·노출 우대 배제 추가
- §10: 앵커 의존 리스크(공급이 개인 관계에 붙는다), 미결 2건 추가

v0.1 은 그대로 두었다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 10:54:05 +09:00
Haewon Kam
8776a15183 feat(ga4): AI 유입 트래픽 연동 뼈대 + 리포트 "측정 가능 범위" 절
2026-09-08 작업분. GA4 에서 AI 답변엔진 유입을 채널로 갈라 보는 뼈대를 세웠다.

- data/ai_channels.json: AI 답변엔진 리퍼러 목록(채널 그룹 정의의 근거)
- scripts/ga4_ai_traffic.py: GA4 Data API 로 AI 유입을 뽑는 러너. --mock 으로 합성
  데이터 검증까지 마쳤다. 실제 속성 연결은 GCP 계정이 정해진 뒤다
- supporters/src/layouts/Base.astro + 템플릿 site.json 2곳: ga4MeasurementId 태그.
  쿠키 고지 배너 결정 전까지 미리보기에는 ID 를 넣지 않는다
- scripts/build_discovery_report.ts: Integrity 절에 "측정 가능 범위" 를 넣어
  무엇을 재고 무엇을 못 재는지 리포트가 스스로 밝히게 했다
- 원진 진단 리포트 v2.1(HTML·PDF) 재생성분

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-09 10:53:54 +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
484601b0f5 feat(supporters): 뉴스룸 워커 단계 + 뉴스 게이트 규칙, launchd 폴러 설치
- collect_news.mjs: 네이버 뉴스 검색 다중 질의(상호·원장·의료진·주제어, 429 백오프) + 언론보도 게시판 자동 발견/clinic.json newsBoard.
  관련성 = 제목·요약에 병원 이름(v2 §8). 제목·매체·날짜·원문 링크만 저장. news_outlets.mjs 는 build_news.py 매체 표 이식
- gate: BANNED_NEWS_TITLE(전후 사진·비교, 후기, 변신)·NEGATIVE_NEWS(규제·사건, "무사고" 통과)·checkNewsItems → check.mjs·test.mjs(19/19)
- 워커 news 단계(youtube 뒤, images 앞), --news-board/--no-news, status.report.news
- 뷰 news.json: 렛미인 "변신" 기사 41건 규칙으로 제외(excludedByGate 에 목록). 회귀 1,105건(수작업 1,096, 제목 일치 1,033), 원진 1,049건
- launchd 폴러 설치(haewon 지시): PATH 에 프레임워크 python3, bootstrap/bootout 안내
- 함정: JS \W 는 한글을 지움(제목 중복 판정 붕괴), 워드프레스 article:published_time 은 게시판 생성일, 네이버 질의당 1,000건
- v3 문서 §1·§2·§3·§5·§6 갱신, 템플릿 재내보내기

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 14:14:08 +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
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
63756f5a5c docs: 서포터즈 자동 빌드 v2 §11 진행 기록 — 게이트 확장·템플릿화 완료, 남은 단계와 결정 의존 관계
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-07 14:07:53 +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
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
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
Haewon Kam
1dd1384fbf feat: POC 덱 v3 — haewon 10페이지 폰트 기준을 전 슬라이드 적용 (본문 20 / 리드·인용 24 / 카드 제목 28)
haewon 수정 원본(Viewclinic_POC_Proposal.pptx)은 보존, 10페이지는 원본 유지.
나머지 14장에 런 164개 in-place 매핑 후 v3 + v3_표준캔버스(13.33in)로 저장.
빌드 스크립트에 재생성 금지 경고와 새 폰트 상수 역반영.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:52:43 +09:00
Haewon Kam
bf4e1a5548 fix: INFINITH 덱 폰트 pt 표준화 — 20in 캔버스를 2/3 균등 축소한 v2_표준캔버스 버전 추가
원인: INFINITH 덱 캔버스가 20x11.25in(표준 1.5배)이라 폰트 pt가 1.5배 부풀려짐
(본문 18pt = 화면상 12pt). ADO2 정본(12.5in)과 달리 14pt 지정 시 9.3pt처럼 렌더.
scripts/rescale_deck.py로 좌표·폰트·선·여백 전부 2/3 축소 → 13.33x7.5in 표준,
화면 모습 동일, pt 숫자 표준화(본문 12pt·타이틀 42pt). haewon 수정 원본은 보존.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:44:41 +09:00
Haewon Kam
69b580c135 feat: POC 부록 맨 앞에 '두 점수 읽는 법' 슬라이드 추가 (14→15장, 부록 1/5~5/5 재번호)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:33:40 +09:00
Haewon Kam
34edb3bef8 fix: QB 엑셀 GPT상세·PPLX상세를 논브랜드 84문항으로 한정 (브랜드 원본은 JSONL 보존)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:25:31 +09:00
Haewon Kam
591791a262 chore: QB 엑셀 파일명에 TOP50 명시 (Viewclinic_QB_Results_TOP50.xlsx) + 참조 갱신
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:21:59 +09:00
Haewon Kam
c2a02ce514 feat: AI Discovery 랭킹 시트 TOP20 → TOP50 확장
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155BJMHJyhqqAPGYjGKYhPS
2026-09-01 11:19:09 +09:00