style(reports): v1.1 덱 제목·본문을 고객용 존댓말로 (판단 슬라이드 존댓말, 목차성 슬라이드 명사구)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Haewon Kam 2026-09-07 13:07:45 +09:00
parent 13a8fca775
commit fdb6aaf91b
5 changed files with 17 additions and 17 deletions

View File

@ -30,7 +30,7 @@ d.cover(
# 02 Executive summary
s = d.slide(eyebrow="Executive Summary",
title="읽을 수는 있지만, ", title_accent="인용할 근거가 부족",
title="읽을 수는 있지만, ", title_accent="인용할 근거가 부족합니",
lede=["36개 항목 중 32개를 실측했고, 오너 계정이 필요한 4개는 분모에서 제외했습니다.",
"접근성(A) 98%와 표면(D) 68%는 양호. 엔티티(B) 25%와 콘텐츠(C) 44%가 총점을 끌어내립니다."],
section="Summary")
@ -42,12 +42,12 @@ k4.kpi("4 / 36", "미검증 항목", "GA4 · 서버로그 · GSC · Bing")
# 03 What AI sees (dark)
s = d.slide(eyebrow="What AI Sees · 진단의 결론",
title="문제는 차단이 아니라 ", title_accent="내용", dark=True, section="Findings")
title="문제는 차단이 아니라 ", title_accent="내용에 있습니", dark=True, section="Findings")
L, R = s.cards2(y=s.band_y)
L.chip("정상", "good").rows([
("크롤러 접근 정상", "robots.txt가 AI 검색봇 12종을 허용. Cloudflare 차단 없음."),
("서버 렌더링 본문", "WordPress가 본문을 서버에서 렌더. JS 없이 10,757자 추출."),
("표면이 넓", "강남언니 후기 19,373건. 유튜브 1,215편. 블로그는 발행 중이고 AI 봇 허용."),
("표면이 넓습니", "강남언니 후기 19,373건. 유튜브 1,215편. 블로그는 발행 중이고 AI 봇 허용."),
], t_size=HEAD, b_size=BODY)
R.chip("치명", "critical").rows([
("누구인지 확정 불가", "MedicalClinic 스키마 없음, sameAs 비어 있음. 시술 목록 JSON-LD 무효."),
@ -80,12 +80,12 @@ W.grid(
Rail.title("읽는 법", size=HEAD).bullets([
"분모는 검증 항목의 배점 합. E는 분모가 2점뿐.",
"48.0 / 89 = 54점, 등급 C. v1.0 50점은 오판 포함.",
"미검증 4개는 계정 접근 후 1일 안에 채다.",
"미검증 4개는 계정 접근 후 1일 안에 채웁니다.",
], size=BODY)
# 05 A 접근성
s = d.slide(eyebrow="A · Access & Crawlability · 98%",
title="크롤러 접근은 ", title_accent="열려 있", section="A · Access")
title="크롤러 접근은 ", title_accent="열려 있습니", section="A · Access")
L, R = s.cards2(y=s.band_y)
L.chip("우수 · 3/3", "info").rows([
("A1 검색용 AI 봇 허용", "Disallow는 /wp-admin/ 뿐. 12종 UA로 GET, 전부 200."),
@ -100,7 +100,7 @@ R.chip("보완·미검증", "warning").rows([
# 06 B 엔티티 (dark)
s = d.slide(eyebrow="B · Entity & Structured Data · 25%",
title="AI가 병원을 ", title_accent="하나의 엔티티로 못 묶는", dark=True, section="B · Entity")
title="AI가 병원을 아직 ", title_accent="하나로 묶지 못합니", dark=True, section="B · Entity")
L, R = s.cards2(y=s.band_y)
L.chip("치명", "critical").rows([
("B1 JSON-LD 문법 무효", "ItemList 블록 쉼표 누락. 09-07에도 그대로. 파서가 통째로 버림."),
@ -115,7 +115,7 @@ R.chip("미흡", "warning").rows([
# 07 C 콘텐츠
s = d.slide(eyebrow="C · Answer-Ready Content · 44%",
title="프리저베 한 페이지만 ", title_accent="인용할 구조를 갖췄", section="C · Content")
title="프리저베 페이지가 ", title_accent="인용 구조의 기준입니", section="C · Content")
L, R = s.cards2(y=s.band_y)
L.chip("0점 항목", "critical").rows([
("C1 병원 정의문 없음", "메인은 슬라이더와 라벨. 가슴성형 페이지 첫 텍스트는 상담 폼."),
@ -130,7 +130,7 @@ R.chip("정정·부분 점수", "warning").rows([
# 08 D 표면 / E 측정 (dark)
s = d.slide(eyebrow="D · Surfaces / E · Measurement",
title="강남언니는 강하고, ", title_accent="GBP는 전화번호가 없", dark=True, section="D · Surfaces")
title="강남언니는 강하고, ", title_accent="GBP 보완이 필요합니", dark=True, section="D · Surfaces")
L, R = s.cards2(y=s.band_y)
L.chip("D · 표면 68%", "good").rows([
("D1 강남언니 우수", "후기 19,373건, 의료진 26명, 이벤트 52건. 핵심 표면 확보."),
@ -145,7 +145,7 @@ R.chip("E · 측정 0%", "critical").rows([
# 09 Action plan
s = d.slide(eyebrow="Action Plan",
title="즉시 고칠 것과 ", title_accent="4주 안에 만들 것", section="Action Plan")
title="지금 고칠 것과 ", title_accent="4주 안에 만들 것", section="Action Plan")
a, b, c = s.cards3(y=s.band_y)
a.chip("P0 · 1일~1주", "critical").title("엔티티·표면·측정", size=HEAD).bullets([
"깨진 JSON-LD 수정, MedicalClinic 스키마.",
@ -176,7 +176,7 @@ s.stats3([
# 11 Validation
s = d.slide(eyebrow="Validation · 120-Question Live Test",
title="진단을 120문항 실측으로 ", title_accent="검증했",
title="진단을 120문항 실측으로 ", title_accent="검증했습니",
lede="잠재 환자 질문 120개를 OpenAI·Perplexity 정식 API로 질의해 예측력을 채점했습니다 (09-01).",
section="Validation")
L, R = s.cards2(y=s.band_y)
@ -186,7 +186,7 @@ L.chip("예측 적중", "good").rows([
("표면(D)이 브랜드 방어", "병원명을 아는 36문항은 97~100% 답변. 근거는 강남언니·GBP·뉴스."),
], t_size=HEAD, b_size=BODY)
R.chip("진단 밖 발견 · 정정 반영", "info").rows([
("제3자 표면이 더 넓", "뉴스·채용공고·바비톡·네이버 예약이 개원연도·주차·휴진을 답함."),
("제3자 표면이 더 넓습니", "뉴스·채용공고·바비톡·네이버 예약이 개원연도·주차·휴진을 답함."),
("발행 중인 블로그가 인용됨", "ChatGPT 추천 근거가 blog.viewclinic.com. v1.0은 정지로 오판."),
("엔진별 오답 편차", "주차 질문에 Perplexity는 정답, ChatGPT는 추측. 구조화 부재의 비용."),
], t_size=HEAD, b_size=BODY)
@ -236,7 +236,7 @@ c.chip("액션 · 홈페이지 쪽", "critical").title("병원이 직접 고쳐
# 14 Integrity
s = d.slide(eyebrow="What We Don't Sell · 정직성 규약",
title="근거 없는 것은 ", title_accent="팔지 않는", section="Integrity")
title="근거 없는 것은 ", title_accent="약속하지 않습니", section="Integrity")
a, b, c = s.cards3(y=s.band_y)
a.icon_square().title("만들지 않는 것", size=HEAD).bullets([
"llms.txt. Google 공식 효과 0, 요청 로그 없음.",
@ -249,12 +249,12 @@ b.icon_square().title("약속하지 않는 것", size=HEAD).bullets([
c.icon_square().title("측정 규율", size=HEAD).bullets([
"단발 조회 보고 금지. 반복 측정만.",
"답변엔진 UI 자동 조회 금지. 약관 위반.",
"틀린 판정은 정정 슬라이드로 남다.",
"틀린 판정은 정정 슬라이드로 남깁니다.",
], size=BODY)
# 15 Method
s = d.slide(eyebrow="Method · AEO / GEO Rubric v1.0",
title="36개 항목, 100점, ", title_accent="근거 등급 명시", section="Method")
title="36개 항목, 100점, ", title_accent="근거 등급 명시", section="Method")
a, b, c = s.cards3(y=s.band_y)
a.icon_square().title("채점 방식", size=HEAD).bullets([
"항목별 0~3 레벨 × 배점. 미검증은 분모 제외.",
@ -262,9 +262,9 @@ a.icon_square().title("채점 방식", size=HEAD).bullets([
"등급 A 81+ · B 61~80 · C 41~60 · D 40 이하.",
], size=BODY)
b.icon_square().title("배점 근거", size=HEAD).bullets([
"차단되면 인용될 수 없다. A·B에 무게.",
"콘텐츠 전술 효과는 논쟁 중. C는 원칙만.",
"병의원은 강남언니가 장악. D1 배점 6.",
"차단되면 인용될 수 없 A·B에 무게.",
"콘텐츠 전술 효과는 논쟁 중이라 C는 원칙만.",
"병의원은 강남언니 비중이 커 D1 배점 6.",
], size=BODY)
c.icon_square().title("항목마다 붙는 태그", size=HEAD).bullets([
"근거 등급: 실측 / 학술 / 벤더 / 추정.",