From 63756f5a5ce5550f41d4a6c1f2127ffeed866247 Mon Sep 17 00:00:00 2001 From: Haewon Kam Date: Mon, 7 Sep 2026 14:07:53 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=84=9C=ED=8F=AC=ED=84=B0=EC=A6=88=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=B9=8C=EB=93=9C=20v2=20=C2=A711=20?= =?UTF-8?q?=EC=A7=84=ED=96=89=20=EA=B8=B0=EB=A1=9D=20=E2=80=94=20=EA=B2=8C?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=ED=99=95=EC=9E=A5=C2=B7=ED=85=9C=ED=94=8C?= =?UTF-8?q?=EB=A6=BF=ED=99=94=20=EC=99=84=EB=A3=8C,=20=EB=82=A8=EC=9D=80?= =?UTF-8?q?=20=EB=8B=A8=EA=B3=84=EC=99=80=20=EA=B2=B0=EC=A0=95=20=EC=9D=98?= =?UTF-8?q?=EC=A1=B4=20=EA=B4=80=EA=B3=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v2.md | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v2.md b/docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v2.md index e30450c..736ea0a 100644 --- a/docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v2.md +++ b/docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v2.md @@ -208,3 +208,36 @@ INFINITH 저장소(브랜치 feature/discovery-url-cta)에서 "AI Discovery 자 - 자동 생성 글이 §4 순서 밖의 사실을 포함하지 않는다(근거 없는 수치 = 0건, 수동 대조 10편). - §6 입력이 비어 있어도 사이트가 "확인 대기" 표기로 빌드·배포된다. - 병원이 §6을 채우면 코드 수정 없이 데이터만으로 검토 완료·스키마가 켜진다. + +--- + +## 11. 진행 기록 (2026-09-07 세션 2 · 브랜치 `feature/supporters-autobuild`, 워크트리 `orca/workspaces/INFINITH/Productize`) + +§7의 1·2단계를 마쳤다. 3단계부터는 §9의 답이 필요한 항목이 섞여 있어 아래 "남은 결정"을 먼저 본다. + +### 11-1. 게이트 확장 (§7-1) · 커밋 49c5e46 +- `supporters/scripts/gate/rules.mjs`: §3의 "검사"를 순수 함수로. error(배포 차단) 11종 + warn 6종. + - error: OPERATOR_VOCAB(3-1) · SOURCE_TYPE_MISSING/UNKNOWN(3-4) · REGULATION_SOURCE_MISSING(3-4) · CONCLUSION_PHRASE(3-5) · NUMBER_DATE_MISMATCH(3-6) · REVIEWED_WITHOUT_DATE/REVIEWER · REVIEWER_UNKNOWN · AUTHOR_UNKNOWN(3-7) · BANNED_VIDEO_TITLE(3-8) · BANNED_PHRASE · HOME_DUPLICATE(기존) + - warn: LAYOUT_CHANGED(3-2, 픽셀 대신 텍스트를 뺀 tag.class 구조 지문 비교) · HEADING_VERB · PLAIN_ENDING(3-3) · NUMERIC_NO_QUALIFIER(3-5) · FACT_NEXTCHECK_PASSED(3-6) · NO_TABLE_OR_CHECKLIST(3-11) + - 결론 문장 검사는 문장 단위이고 부정문("보장되는 것은 아닙니다")과 임상 의견 표기("원장의 임상 판단")는 통과시킨다. 정답지 18편이 이 예외 없이는 걸린다. +- `scripts/check.mjs`: dist + 소스 frontmatter + 데이터 JSON 검사. `--update-layout`은 haewon이 룩앤필 변경을 승인한 뒤에만. +- `scripts/gate/test.mjs` + `fixtures/` 9개: 실패 재현 7건(운영자 어휘·type 없는 source·reviewed인데 reviewedAt 없음·검토자 미등록·확인일 불일치·영상 제목 금칙·결론 문장·규제 원문 없음) + 18편 회귀 + 부정문 통과. `npm run gate:test`. +- 18편 결과: 오류 0, 경고 10(수치 한정 없음 5, 「채널 인기 전체」 탭 영상 제목 5). corrections.json의 「답변엔진」과 반말 문장 1건은 고쳤다. +- `scripts/audit_aeo_geo.py`: 표본 URL 5개 미만 경고(§3-10). 채점기 자체는 아직 2개 URL만 읽는다. + +### 11-2. 템플릿화 (§7-2) · 커밋 622441e +- 병원 고유값은 `factSheet.json`(사실) · `authors.json`(사람) · `site.json`(매체 이름·로고·홈 큐레이션·방문 약도·추천 글) 세 파일로만 들어간다. 페이지 15개에서 하드코딩을 뺐다. +- `lib.ts`: `PENDING = '확인 대기'`, `v()`(표시), `has()`(스키마·링크), `surface()`. 빈 값은 화면에 "확인 대기", 스키마에서는 필드 제거. +- 검증: 28페이지의 표시 텍스트와 구조 지문이 리팩터 전 빌드와 동일. JSON-LD 차이는 빈 `sameAs: []` 제거뿐. +- `scripts/export_template.mjs` → `templates/supporters-astro/`. 글·데이터·이미지·home_text·구조 기준선을 빼고 `scripts/template/data/`의 빈 세트를 넣는다. 병원 문자열이 남으면 실패. 빈 데이터로 10페이지 0오류 빌드, 게이트 통과. +- 템플릿 사용: `templates/supporters-astro`를 복사 → 데이터 6개 + posts + public/img + home_text 채움 → `__CLINIC_ID__` 치환 → `npm ci && npm run build`. + +### 11-3. 남은 단계와 의존 관계 +| 단계 | 상태 | 막는 것 | +|---|---|---| +| 3 근거 수집기 (`evidence//*.json`) | 미착수 | 없음. Firecrawl 키는 `.env`에 있음(v1 §6). 뷰성형외과 6종 페이지(주의사항·애프터케어·검진·안전·시술 상세·의료진)로 회귀 | +| 4 글 생성 프롬프트 | 미착수 | §9-5 생성 모델·키·단가 상한 | +| 5 승인 UI (§6 입력 폼) | 미착수 | §9-2 폼 위치, §9-3 법적 책임 주체 | +| 6 워커·배포·랜딩 연결 | 미착수 | §9-6 워커 위치·배포 방식, `discovery_leads` 마이그레이션 미적용 | +| 7 두 번째 병원 회귀 | 미착수 | §9-4 병원 선정 | +| 「채널 인기 전체」 탭 | 경고만 | §9-1. 제거로 결정되면 `check.mjs`의 `level: R.W`를 지우고 videos.astro 탭을 뺀다 |