docs: 서포터즈 자동 빌드 v2 §11-8 실행 기록 — 마이그레이션 적용, supporters-viewclinic 미리보기 배포, 랜딩 프로덕션 배포

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Haewon Kam 2026-09-07 17:13:01 +09:00
parent 7e515b70ae
commit 190ffdf7ab

View File

@ -237,8 +237,8 @@ INFINITH 저장소(브랜치 feature/discovery-url-cta)에서 "AI Discovery 자
|---|---|---|
| 3 근거 수집기 (`evidence/<clinic>/`) | **완료** (커밋 c92ecc8, §11-4) | 없음 |
| 4 글 생성기 | **완료** (§11-5) | 편당 약 $0.09 실측. 단가 상한은 --max-cost-usd 로 걸 수 있고 값은 미정 |
| 5 승인 UI (§6 입력 폼) | **완료** (§11-6) | 마이그레이션 미적용(supabase db push). 상단 고지·개설자 승인은 §12-2 제안 확인 후 켠다 |
| 6 워커·배포·랜딩 연결 | **워커·랜딩 완료, 배포 미실행** (§11-7) | 워커 실행 위치(§12-3 Trigger.dev)와 첫 Vercel 프로젝트 생성은 haewon 확인 후 |
| 5 승인 UI (§6 입력 폼) | **완료·프로덕션 배포** (§11-6, §11-8) | 상단 고지 문구(site.sponsorNotice)는 병원 입력 후 켜진다 |
| 6 워커·배포·랜딩 연결 | **완료** (§11-7, §11-8 미리보기 배포됨) | 워커 실행 위치(§12-3)·자동 트리거는 미결. 지금은 로컬에서 수동 실행 |
| 7 두 번째 병원 회귀 | 미착수 | §9-4 병원 선정 |
| 「채널 인기 전체」 탭 | 경고만 | §9-1. 제거로 결정되면 `check.mjs``level: R.W`를 지우고 videos.astro 탭을 뺀다 |
@ -268,7 +268,7 @@ INFINITH 저장소(브랜치 feature/discovery-url-cta)에서 "AI Discovery 자
- 폼: `src/components/discovery/ClinicInputsPanel.tsx``/discovery/:id` 5절과 6절 사이. 빌드 상태·미리보기 링크, 9항목 입력(입력자 기록), 의료진 ID 표, 글별 검토(검토자 ID·검토일)와 게시 승인(개설자 이름·직함·승인일). 검토 전 승인 버튼은 비활성. tsc 통과.
- 반영: `supporters/scripts/apply_inputs.mjs --inputs file | --from-supabase`. 같은 (key, post_id) 최신 행만. author/editor → authors·corrections, sponsorship → site.sponsorNotice, specialty_doctors → physicians.specialty, domain → site, 자유 답변 4종 → `src/data/clinicAnswers.json`(생성기 근거 [A], `--site` 옵션으로 워커 작업 폴더에서도 동작), post_review → reviewer·reviewStatus=reviewed·reviewedAt·history, post_approval → approvedBy·approvedAt(검토 전이면 보류). 샘플 `supporters/briefs/viewclinic/inputs.sample.json` dry-run 9건 반영 확인.
- §12-2 코드 반영: (1) `DisclosureTop.astro` + 게이트 `DISCLOSURE_TOP_MISSING`(site.sponsorNotice 비면 warn, 채우면 error). 지금은 비어 있어 룩앤필 변화 없음. (2) frontmatter `approvedBy/approvedAt`, `lib.isPublishable`: PUBLIC_INDEXABLE=true 빌드는 승인 글만 낸다(글·목록·사이트맵·작성자 페이지). 검증: 색인 허용 빌드 → 승인 0편이라 글 0개, 게이트 오류 0. 게이트 `APPROVED_WITHOUT_BY/DATE`·`APPROVED_BEFORE_REVIEW`·`UNAPPROVED_IN_INDEXABLE_BUILD`. (3) `PRESS_VOICE` 경고를 rules.mjs 로. 규제 주장 검사에서 「게시 승인」은 제외.
- 랜딩 카피: SampleReport 의 "SAMPLE REPORT · 뷰성형외과 실측" → "SAMPLE REPORT · 실제 사례"(haewon 지시). 두 워크트리(이 브랜치, feature/discovery-url-cta)에 적용, **프로덕션 미배포**.
- 랜딩 카피: SampleReport 의 "SAMPLE REPORT · 뷰성형외과 실측" → "SAMPLE REPORT · 실제 사례"(haewon 지시). 두 워크트리(이 브랜치, feature/discovery-url-cta)에 적용, 프로덕션 배포 완료(§11-8).
### 11-7. 워커 (§7-6) · 2026-09-07 세션 3
- `workers/supporters-build/run.mjs --clinic <id> --url <홈> [--inputs|--from-supabase] [--brief] [--max-posts] [--max-cost-usd] [--deploy] [--build-id]`. 실행 환경 독립(로컬·GitHub Actions·Trigger.dev 태스크 어디서든 같은 명령). 단계 evidence → data → inputs → briefs → generate → build → deploy → done, 단계마다 `<work>/status.json` + (build-id 있으면) supporter_builds PATCH.
@ -278,6 +278,12 @@ INFINITH 저장소(브랜치 feature/discovery-url-cta)에서 "AI Discovery 자
- deploy 단계(미실행): `vercel link --yes --project supporters-<id>` + `vercel deploy --prod --yes`. 첫 실행은 Vercel 프로젝트를 새로 만드는 외부 행위라 haewon 확인 후. 트리거(discovery_leads insert → Database Webhook → 워커)와 Trigger.dev 래핑은 §12-3 확인 후.
- 남은 것: discover-channels(유튜브·인스타 핸들)·유튜브 집계·뉴스룸(build_news.py)·감사 재실행(Phase 9)은 워커에 아직 안 붙었다. 이 세 개는 뷰성형외과 샘플에서 사람이 돌린 스크립트가 있으므로 다음 세션에 단계로 추가한다.
### 11-8. 실행 (haewon "다 실행해줘") · 2026-09-07 세션 3
- Supabase: `supporter_builds`·`supporter_inputs` 마이그레이션 적용(Management API `/database/query`, CLI 키체인 토큰 사용. `discovery_leads` 는 이미 적용돼 있었음). 테이블 3개 확인.
- 서포터즈 미리보기: 워커 deploy 단계 실행 → Vercel 프로젝트 `supporters-viewclinic` 생성, **https://supporters-viewclinic.vercel.app** (X-Robots-Tag noindex, robots Disallow 확인). supporter_builds 행 05ae08e3… status=preview, preview_url 기록.
- 랜딩 앱: 브랜치 `feature/supporters-autobuild` 를 origin 에 푸시하고 `vercel --prod` 로 infinith-demo 프로덕션 배포. 번들에 "SAMPLE REPORT · 실제 사례", "병원 확인 항목" 확인. /discovery/viewclinic 하단에 병원 확인 항목 패널이 미리보기 링크와 함께 뜬다.
- 아직 자동이 아닌 것: discovery_leads insert → 워커 실행 트리거. 지금은 `node workers/supporters-build/run.mjs --clinic <id> --url <홈> --deploy --build-id <id>` 를 사람이 돌린다. 병원 입력 후 재빌드도 `--from data --from-supabase` 로 수동.
---
## 12. haewon 결정 반영과 제안 (2026-09-07 세션 2)