diff --git a/docs/AI_DISCOVERY_BUILD2_HANDOVER.md b/docs/AI_DISCOVERY_BUILD2_HANDOVER.md new file mode 100644 index 0000000..1bb4077 --- /dev/null +++ b/docs/AI_DISCOVERY_BUILD2_HANDOVER.md @@ -0,0 +1,86 @@ +# AI Discovery · Build 2 Handover (자동 채점 파이프라인) + +2026-08-31 랜딩(/discovery) 프로덕션 배포까지 끝난 상태에서, 다음 세션이 이어받을 빌드 범위를 담는다. +직전 인수인계는 `docs/AI_DISCOVERY_FRONTEND_HANDOVER.md`(랜딩 구현, 완료됨). + +--- + +## 0. 다음 세션 실행 프롬프트 (복붙용) + +``` +docs/AI_DISCOVERY_BUILD2_HANDOVER.md 를 읽고 AI Discovery 자동 채점기를 구현해줘. + +- P0: scripts/audit_aeo_geo.py — 병원 URL 입력 → 기준표 auto 22항목(55점) 자동 채점 + → src/data/discovery_.ts 초안 생성 (semi/manual은 'unverified' + 수집된 증거 메모) +- 참조 구현: ~/Claude/Agentic Marketing/ADO2/009. AEO-GEO/06_skill-snapshot/scripts/crawler_audit.py +- 검증: 뷰성형외과를 재채점해 auto 항목 판정이 discovery_viewclinic.ts 기존 실측과 일치해야 한다 +- 완료 기준: 새 업체 URL 1개를 30분 안에 /discovery/:id 리포트로 올릴 수 있다 +끝나면 git push + vercel --prod 까지. +``` + +--- + +## 1. 현재 상태 (2026-08-31) + +| 항목 | 상태 | +|---|---| +| 랜딩 `/discovery` | 프로덕션 배포 완료 (https://infinith-demo.vercel.app/discovery) | +| 리포트 `/discovery/:id` | viewclinic 48점/C, taeha 68점/B | +| 데이터 파생 | 랜딩·리포트의 모든 수치는 `scoreDiscovery` 계산값. `nextGradeTarget`·`scorePctColor` 헬퍼 포함 | +| lint | `npm run lint`(tsc) 0 에러. 단, 실제 검사는 AEO-GEO-Audit 워크트리에서만 가능 (main 워크트리는 node_modules에 tsc 없음) | +| 영업 자료 | POC 제안서 `docs/reports/Viewclinic_POC_Proposal.pptx/.pdf` (10장) | + +## 2. 확정 결정 (2026-08-31 haewon) + +1. **태하 케이스는 랜딩 샘플로 노출하지 않는다.** 랜딩 샘플은 뷰성형외과 단일 유지. + `/discovery/taeha` 라우트와 데이터는 삭제하지 않고 유지한다 (영업 시 직접 링크로만 사용). +2. 리포트 PDF는 항상 PPTX 덱을 만든 뒤 soffice 변환으로 뽑는다 (HTML 인쇄 방식 금지, 기존 결정 유지). + +## 3. 빌드 우선순위 + +### P0 · 자동 채점기 `scripts/audit_aeo_geo.py` + +지금 병목은 진단 1건당 수작업 실측이다. 기준표 36항목의 자동화 가능성은 이미 rubric에 태깅되어 있다: + +| method | 항목 수 | 배점 합 | 처리 방식 | +|---|---|---|---| +| auto | 22 | 55점 | 스크립트가 판정까지 | +| semi | 5 | 17점 | 스크립트가 증거 수집, 판정은 사람 (C1 정의문·C4 수치·C7 E-E-A-T·D3 오픈웹·D5 플레이스) | +| manual | 9 | 28점 | 'unverified' 유지 (A6·C8·D1·D2·D4·E1~E4) | + +- 입력: 메인 URL + 대표 시술/서비스 페이지 URL 1개 (뷰성형외과 실측과 동일 조건: JS 미실행 HTML 기준) +- 항목별 체크 로직은 `src/data/aeoGeoRubric.ts`의 `howToCheck` 필드에 이미 구현 스펙으로 적혀 있다 +- 출력: `src/data/discovery_.ts` 초안. `evidence`는 실측 문자열로 채운다 (판정 근거 없는 항목을 0점 처리하지 말 것, 분모 제외 규칙 유지) +- 운영 플로우: 스크립트 초안 → 사람이 semi/manual 보정 → `discoveryResults.ts`에 1줄 추가 → 리포트 페이지 자동 생성 +- 형태는 로컬 Python 스크립트로 시작한다. Edge Function(`discover-aeo-geo`)化는 셀프서브 전환이 결정된 뒤에 한다. +- 업체 선정 방법(기존 확정): 분야 키워드로 네이버 검색 → 파워링크 1위 광고주. 광고 리다이렉트는 직접 못 따라가므로 상호로 재검색해 도메인 확인. + +### P1 · 계약 후 미검증 해소 runbook + +뷰성형외과(또는 첫 계약 업체) 계약 시 실행할 체크리스트를 문서화한다: +E1 서버로그 AI 봇 추출, E2 GA4 AI 채널그룹, E3 GSC, A6 Bing Webmaster, D6 Wikidata 조회. +미검증 5개가 해소되면 분모가 88 → 100으로 바뀌므로 총점이 변한다는 사실을 리포트에 명시한다. + +### P1 · 덱 스크린샷 자동 갱신 + +랜딩 변경 → 캡처 → 크롭(히어로 0~1384px, 리포트 밴드는 #F4F6FB 행 범위 감지) → `build_viewclinic_poc_deck.py` 리빌드를 스크립트 하나로 묶는다. + +### P2 · 기준선 스팟체크 러너 (E4) + +질의 10개 × 5회 반복, 언급률 + 신뢰구간으로만 기록한다. +답변엔진 소비자 UI 자동 조회는 약관 위반이므로 금지 (API 또는 수동 기록). + +## 4. 오너 결정 대기 (빌드 전 haewon 확인) + +- 카테고리 가중치 확정 (현행 A20/B20/C25/D20/E10/F5) +- 랜딩 CTA 형태: 현행 mailto(o2oteam@o2o.kr) 유지 vs 신청 폼(Supabase 테이블) 전환. + 계약 기반 영업 모델(PART III 피봇)과의 정합을 보고 결정한다. +- 다음 진단 대상 업종·키워드 + +## 5. 하지 않을 것 (정직성 규약, 변경 없음) + +- llms.txt 제작·판매 +- "스키마 넣으면 인용된다" 약속, 순위·노출 보장 문구 +- 단발 조회 보고 +- 답변엔진 소비자 UI 자동 조회 +- 네이버 블로그 증량 (AI 크롤러 차단 확인, 글로벌 AEO 기여 0)