docs: 2026-09-18 핸드오버와 다음 세션 프롬프트
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f38c0f3bda
commit
11c4bb24b3
171
docs/HANDOVER_2026-09-18.md
Normal file
171
docs/HANDOVER_2026-09-18.md
Normal file
@ -0,0 +1,171 @@
|
||||
# 핸드오버 · 2026-09-18 (금)
|
||||
|
||||
다음 작업은 2026-09-19(토) 또는 다음 주. 이 문서 하나만 읽으면 이어서 할 수 있게 적는다.
|
||||
|
||||
---
|
||||
|
||||
## 0. 오늘 한 일 한 줄
|
||||
|
||||
랜딩에서 들어온 JK성형외과 신청을 자동 빌드로 완주시키고, 그 과정에서 드러난 파이프라인 결함 6건을 고쳤다. 그리고 진단 리포트에서 사이트 빌드까지 이어지는 제품 화면을 새로 만들었다.
|
||||
|
||||
---
|
||||
|
||||
## 1. 지금 상태
|
||||
|
||||
### 저장소 두 곳, 커밋 완료
|
||||
|
||||
**Productize-2** (`main`) · 프런트엔드
|
||||
```
|
||||
f38c0f3 feat(front): 진단 요약과 보완 계획을 보여 준 뒤 빌드하게 한다
|
||||
14c4b82 refactor(design): 요청문과 설명문을 텍스트 역할 토큰으로 가른다
|
||||
be1ea72 feat(front): 진단 리포트에서 사이트 빌드로 이어지는 화면
|
||||
74c70d6 docs(design): 신청 접수 알림과 완료 안내 메일 설계 v0.1
|
||||
5cf28d9 feat(front): 병원이 사이트에 실을 사진을 한 장씩 고르는 화면
|
||||
```
|
||||
|
||||
**Productize** (`feature/supporters-autobuild`) · 파이프라인
|
||||
```
|
||||
1eb166e fix(worker): 병원 입력을 큐 빌드에서도 반영하고, 이미지 확인 결과를 사이트에 적용한다
|
||||
fa48d43 fix(supporters): 의료진 목록 페이지를 사람별로 나누고 지번 주소도 좌표로 바꾼다
|
||||
```
|
||||
|
||||
**푸시하지 않았다.** 두 저장소 모두 로컬에만 있다.
|
||||
|
||||
`f38c0f3` 은 haewon 육안 확인 전에 커밋했다. 퇴근 시점에 작업 트리를 비워 두려고 먼저 넣은 것이라, 마음에 안 들면 `git reset --soft HEAD~1` 로 되돌리면 된다.
|
||||
|
||||
### 추적하지 않는 파일 2개
|
||||
|
||||
`scripts/out/naver_briefing_summary.json`, `scripts/out/sentiment_summary.json` 는 09-15 측정 산출물이고 오늘 세션 것이 아니라 그대로 뒀다. 주간보고가 이 파일을 근거로 인용하므로 보고서를 공유할 계획이면 같이 커밋해야 한다.
|
||||
|
||||
### 배포
|
||||
|
||||
| 대상 | 주소 | 상태 |
|
||||
|---|---|---|
|
||||
| JK성형외과 서포터즈 | https://supporters-jkplastic.vercel.app | 배포됨 · noindex · 의료진 9명·주변 안내 123곳 반영 |
|
||||
| 프런트엔드 | 배포 안 함 | 오늘 만든 화면은 로컬에만 있다 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 오늘 고친 파이프라인 결함 6건
|
||||
|
||||
| # | 결함 | 상태 |
|
||||
|---|---|---|
|
||||
| 1 | 의료진 목록 페이지를 사람별로 못 나눔. 9명이 "과전문의"라는 없는 사람 1명으로 합쳐짐 | 고침 |
|
||||
| 2 | 지번 주소를 좌표로 못 바꿔 주변 안내 전체가 빔 | 고침 |
|
||||
| 3 | 글이 예전 의료진 id를 들고 있으면 astro build 중단 | 고침 |
|
||||
| 4 | `--deploy` 없는 부분 재실행이 `preview_url` 을 지움 | 고침 |
|
||||
| 5 | 큐 워커가 `--from-supabase` 를 안 넘겨 **병원 입력이 하나도 반영되지 않던 것** | 고침 |
|
||||
| 6 | 이미지 수집 개수 중복 계산 (36장을 51장으로 보고) | 고침 |
|
||||
|
||||
**수정 효과 (JK 재실행 실측)**
|
||||
|
||||
| 항목 | 전 | 후 |
|
||||
|---|---|---|
|
||||
| 의료진 | 1명 (가짜 이름) | 9명 (실명·직함·약력 분리) |
|
||||
| 수집 뉴스 | 958건 | 1,165건 (기고·인터뷰 217 → 387) |
|
||||
| 주변 안내 | 0곳 | 국문 123곳 · 영문 108곳 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 오늘 만든 화면
|
||||
|
||||
```
|
||||
/discovery/:id 진단 리포트 → [이대로 빌드하기]
|
||||
/build/:id 빌드 진행 (5단계, supporter_builds 폴링)
|
||||
/images/:id 사진 확인 (한 장씩 사용/빼기)
|
||||
/supporters/:id 확인 항목 입력 (기존)
|
||||
```
|
||||
|
||||
**새 파일**
|
||||
```
|
||||
src/pages/SiteBuildPage.tsx 빌드 진행 화면
|
||||
src/pages/ImageReviewPage.tsx 사진 확인 화면
|
||||
src/components/discovery/ImageReviewPanel.tsx 사진 확인 본체
|
||||
src/components/discovery/BuildPlanSection.tsx 진단 요약 → 보완 계획 → 빌드
|
||||
src/components/ClinicNav.tsx 4단계 절차 상단 메뉴 + 이전 단계 플로팅 버튼
|
||||
src/lib/buildPhases.ts 워커 17단계 → 고객용 5묶음
|
||||
src/lib/buildCoverage.ts 빌드가 보완하는 카테고리 선정
|
||||
```
|
||||
|
||||
**설계상 지켜야 할 것 두 가지**
|
||||
|
||||
1. **빌드는 병원 홈페이지를 고치지 않는다.** 진단의 실행 항목은 단 하나도 빌드로 해결되지 않는다. 화면에서 "실행 항목 N건 해결"로 쓰면 지키지 못할 약속이 된다. 오늘 한 번 그렇게 만들었다가 고쳤다.
|
||||
2. **"결과"라는 말을 쓰지 않는다.** 빌드가 끝나도 사진 확인과 확인 항목이 남아 최종이 아니다.
|
||||
|
||||
**텍스트 역할 토큰** (`src/index.css`)
|
||||
```
|
||||
.ui-ask 요청문 (17px·600·인디고) · .ui-ask-block 은 왼쪽 규칙선
|
||||
.ui-body 설명 본문 (16px·slate-600)
|
||||
.ui-note 보조·출처 (14px·slate-400)
|
||||
.on-dark / .on-light 다크 섹션과 그 안의 흰 카드
|
||||
.btn-on-dark 다크 섹션 위 주 버튼 (기본 CTA 그라디언트는 흰 배경 전용)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. 바로 이어서 할 수 있는 것
|
||||
|
||||
### 4-1. haewon 육안 확인 (최우선)
|
||||
|
||||
`f38c0f3` 의 화면을 아직 안 보셨다. 확인할 것:
|
||||
|
||||
- `/discovery/viewclinic` 하단 **What We Will Fix** 섹션의 문구와 버튼 대비
|
||||
- 네 화면 오가며 **이전 단계 플로팅 버튼** (왼쪽 아래)
|
||||
- `/images/jkplastic` 썸네일 줄
|
||||
|
||||
```bash
|
||||
cd ~/orca/workspaces/INFINITH/Productize-2 && npm run dev # 포트 3000 사용 중이면 자동으로 다음 포트
|
||||
```
|
||||
|
||||
### 4-2. 분석 리포트의 남은 요소 흡수 (오늘 하던 것)
|
||||
|
||||
haewon이 고른 방향은 **"분석 리포트의 좋은 부분을 진단으로 흡수"** 였다. 채널 점수 링·로드맵 타임라인·KPI 세 가지 중 아직 하나도 안 옮겼다. 중간에 "OK 버튼" 이야기로 방향이 틀어져 `BuildPlanSection` 을 먼저 만들었다.
|
||||
|
||||
| 요소 | 기존 컴포넌트 | 데이터 |
|
||||
|---|---|---|
|
||||
| 채널 건강도 링 | `src/components/report/ChannelOverview.tsx` | `supporter_builds.report.channels` 에 실제 발견 채널이 있다 |
|
||||
| 로드맵 타임라인 | `src/components/report/RoadmapTimeline.tsx` | `result.actions` 의 P0/P1/P2 + effort 로 시간축을 만들 수 있다 |
|
||||
| KPI 대시보드 | `src/components/report/KPIDashboard.tsx` | **데이터 없음.** 목표치를 지어내면 안 된다. 재측정 기준으로 바꾸는 편이 맞다 |
|
||||
|
||||
로드맵이 가장 쉽고 값이 크다. 데이터가 이미 있고 진단의 Action Plan에 시간축만 없다.
|
||||
|
||||
### 4-3. 분석 리포트 자체의 결함 (옮기든 안 옮기든 남는 문제)
|
||||
|
||||
`/report/:id` 를 바노바기 리포트로 열어 확인한 것:
|
||||
- 히어로가 비어 있다. 첫 화면에 그라디언트만 크게 깔리고 제목·병원명이 없다
|
||||
- `데이터 없음 (NaN년)`. 개원 연도 계산이 깨져 NaN이 화면에 나온다
|
||||
- 섹션 사이 여백이 화면 하나 가까이 된다
|
||||
|
||||
---
|
||||
|
||||
## 5. 결정 대기 (haewon)
|
||||
|
||||
### 5-1. 메일 (설계 끝, 결정 필요)
|
||||
|
||||
`docs/DESIGN_신청알림메일_v0.1.md` §8
|
||||
|
||||
1. **발송 서비스**: Resend 추천. 계정과 발신 도메인(`o2o.kr` 하위 무엇으로)
|
||||
2. **운영자 알림 수신 주소**: 개인인지 공용인지
|
||||
3. **완료 안내를 사람이 보내는 방식으로 확정할지**
|
||||
4. **"리포트"의 정의**: 가장 큰 건. 랜딩은 AEO/GEO 진단 리포트를 약속하는데 파이프라인은 서포터즈 사이트를 만든다. 메일 문안을 쓰려면 이걸 먼저 정해야 한다
|
||||
|
||||
### 5-2. 진단 데이터가 3곳뿐
|
||||
|
||||
`DISCOVERY_RESULTS` 에 viewclinic·taeha·wonjin 만 있다. JK처럼 빌드만 한 병원은 `/discovery/:id` 에서 **No Audit Yet** 화면을 본다(오늘 만들었다). 진단은 36항목 실측이라 자동으로 안 따라온다. 자동화 범위를 어디까지 잡을지 별도 과제.
|
||||
|
||||
### 5-3. 기타
|
||||
|
||||
- `clinicDoctors` 4명 고정. JK는 9명인데 소개 페이지에 4명만 나온다
|
||||
- planner가 주변 안내 좌표를 받고도 범용 기본표를 쓴다
|
||||
- 뷰 의료진 id 두 벌 (`dr-cho` 수작업 10개 vs `dr-chojinwoo` 자동 27개). 뷰 재빌드 때 한쪽으로 모아야 한다
|
||||
- `check.mjs --update-layout` 으로 레이아웃 기준선 생성
|
||||
|
||||
---
|
||||
|
||||
## 6. 알아 두면 시간 아끼는 것
|
||||
|
||||
- **빌드는 백그라운드로 돌리고 다른 작업을 같이 한다.** `nohup node workers/supporters-build/run.mjs ... &` 로 띄우고 로그를 감시한다. 오늘 내내 그렇게 했다.
|
||||
- **같은 병원 빌드를 동시에 두 개 돌리면 안 된다.** 작업 폴더(`~/supporters-builds/<clinic>-<id>/`)를 공유해 서로 덮어쓴다.
|
||||
- **부분 재실행은 `--from <단계>`.** 글은 `--regenerate` 없으면 보존되어 생성 비용이 0이다.
|
||||
- **워커는 Productize 워크트리에서 돈다.** Productize-2 가 아니다. launchd 폴러 `com.infinith.supporters-poll`, 로그 `~/supporters-builds/poll.log`.
|
||||
- **주간보고는 gitignore 처리했다** (`docs/*주간보고*`). 개인 문서라 저장소에 올리지 않는다.
|
||||
82
docs/NEXT_SESSION_2026-09-19.md
Normal file
82
docs/NEXT_SESSION_2026-09-19.md
Normal file
@ -0,0 +1,82 @@
|
||||
# 다음 세션 프롬프트 · 2026-09-19 이후
|
||||
|
||||
아래 §0 을 그대로 복사해 새 세션 첫 메시지로 넣으면 된다.
|
||||
|
||||
---
|
||||
|
||||
## §0. 복사해서 붙일 프롬프트
|
||||
|
||||
```
|
||||
INFINITH AI Discovery 제품 개발을 이어서 한다.
|
||||
|
||||
작업 폴더: ~/orca/workspaces/INFINITH/Productize-2 (main)
|
||||
파이프라인: ~/orca/workspaces/INFINITH/Productize (feature/supporters-autobuild)
|
||||
|
||||
시작하기 전에 읽어라:
|
||||
docs/HANDOVER_2026-09-18.md 어제까지의 상태와 결정 대기 목록
|
||||
docs/DESIGN_신청알림메일_v0.1.md 메일 설계 (결정 대기 4건은 §8)
|
||||
|
||||
두 저장소 모두 커밋은 되어 있고 푸시는 안 했다. 시작할 때 git status 와
|
||||
다른 세션이 같은 폴더를 열고 있지 않은지 먼저 확인해라.
|
||||
|
||||
오늘 할 일은 아래에서 고른다. 1번을 먼저 하고, 내가 확인해 준 뒤 2번으로 간다.
|
||||
|
||||
1. 어제 만든 화면 육안 확인
|
||||
npm run dev 로 띄우고 /discovery/viewclinic, /build/jkplastic,
|
||||
/images/jkplastic 를 열어 둬라. 내가 본다.
|
||||
특히 볼 것: What We Will Fix 섹션 문구·버튼 대비, 왼쪽 아래 이전 단계 버튼,
|
||||
사진 확인 썸네일 줄.
|
||||
|
||||
2. 분석 리포트(/report/:id)의 로드맵 타임라인을 진단 리포트로 옮긴다
|
||||
진단의 Action Plan 은 P0/P1/P2 목록만 있고 시간축이 없다.
|
||||
기존 RoadmapTimeline 컴포넌트와 result.actions 의 effort 값을 쓴다.
|
||||
데이터를 지어내지 마라. 없는 값은 확인 대기로 둔다.
|
||||
|
||||
지켜야 할 것:
|
||||
- 서포터즈 빌드는 병원 홈페이지를 고치지 않는다. 진단 실행 항목이
|
||||
빌드로 해결된다고 화면에 쓰지 마라.
|
||||
- 고객 화면에 "결과"라는 말을 쓰지 마라. 빌드가 끝나도 사진 확인과
|
||||
확인 항목이 남아 최종이 아니다.
|
||||
- 텍스트는 src/index.css 의 .ui-ask / .ui-body / .ui-note 역할 토큰을 쓴다.
|
||||
다크 섹션은 .on-dark, 그 안의 흰 카드는 .on-light, 버튼은 .btn-on-dark.
|
||||
- 프로덕션 배포(vercel --prod, 병원 사이트)는 내 확인을 받고 실행한다.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## §1. 선택지 (위 프롬프트에서 2번 대신 고를 수 있는 것)
|
||||
|
||||
우선순위순이 아니라 성격순이다. 무엇을 할지는 haewon이 정한다.
|
||||
|
||||
### A. 분석 리포트 요소 흡수 (어제 정한 방향)
|
||||
|
||||
| 요소 | 난이도 | 비고 |
|
||||
|---|---|---|
|
||||
| 로드맵 타임라인 | 낮음 | 데이터가 이미 있다. 가장 값이 크다 |
|
||||
| 채널 건강도 링 | 중간 | `supporter_builds.report.channels` 를 쓴다 |
|
||||
| KPI 대시보드 | 보류 | 목표치 데이터가 없다. 지어내지 말고 재측정 기준으로 바꾸는 편이 맞다 |
|
||||
|
||||
### B. 메일 붙이기
|
||||
|
||||
결정 4건(설계 §8)이 먼저다. 다만 **순서 4번(모달 문구 수정)은 계정 없이 지금 할 수 있다.** 화면이 약속하는 것과 실제 동작의 어긋남부터 없애는 조치다.
|
||||
|
||||
### C. 파이프라인 잔여
|
||||
|
||||
- `clinicDoctors` 4명 고정을 병원 규모에 맞출지
|
||||
- planner가 tourism 좌표를 쓰도록
|
||||
- 뷰 의료진 id 두 벌 정리 (뷰 재빌드와 묶어서)
|
||||
- `check.mjs --update-layout` 레이아웃 기준선
|
||||
|
||||
### D. 분석 리포트 자체 수정
|
||||
|
||||
히어로 공백 · `NaN년` · 과한 여백. 옮기든 접든 남는 문제다.
|
||||
|
||||
---
|
||||
|
||||
## §2. 다음 측정에서 볼 값
|
||||
|
||||
09-15 실측에서 네이버 AI 브리핑이 120문항 중 119문항에 노출되는데 **논브랜드 83건 중 뷰성형외과 언급은 1건**이었다. 브랜드명을 아는 사람에게만 답변이 나오고, 시술이나 지역으로 찾는 사람에게는 도달하지 못한다.
|
||||
|
||||
서포터즈 사이트가 이 구간을 움직이는지가 제품의 핵심 증명이다. 뷰·원진·오라클이 색인 허용으로 전환된 뒤 같은 120문항을 다시 돌려 비교한다.
|
||||
|
||||
근거: `docs/reports/viewclinic/03_question_bank/Viewclinic_QB_Sentiment.md`, `scripts/out/naver_briefing_summary.json`
|
||||
Loading…
Reference in New Issue
Block a user