요청: 북스-AI-핸드오프-콘텐츠
- 날짜: 2026-06-13 12:15:10
- 작업 경로: /Users/ef/crowny-agent/웹
요청 본문
크라우니AI → 북스 핸드오프(착지경험) 콘텐츠 산출: welcome.html + 추천매핑.json + AI 말걸기 카피 3종
관련 산출
(클로드가 작업 결과를 이어 기록)
완료 (2026-06-13)
산출물 3종 생성 완료
- welcome.html (
/Users/ef/crowny-agent/웹/welcome.html)
book, v, level, interest, q) 파싱 → book.crowny.org가 추천 정규화
- 책목록.json 조회 → 카드 렌더링 (title, desc, 버전별 부제목)
- 다크모드 토글, 반응형 480/680/1024
- 스타일: --bg #F6F1E7, 골드 #C9A961, Noto Serif KR, Pretendard
- "지금 읽기" (해당 리더로) + "다른 책 보기" (서고)
- 폴백: 모든 오류 시 ilovecrowny/om (절대 404 없음)- 추천매핑.json (
/Users/ef/crowny-agent/data/라이브/추천매핑.json)
- AI-말걸기-카피.md (
/Users/ef/crowny-agent/data/라이브/AI-말걸기-카피.md)
generateBookNudgeUrl(level, interest)
- 구현 가이드: 대화 동선 설계, 레벨 결정, 관심사 추론
- 사용 예시 4건 (kid+money, general+ai, expert+world, generic)
- 영어 버전 예시(향후 국제 확장용)
- 콘텐츠 조정 팁표기술 계약 (검증 완료)
- 경로 구조:
/<book>/<version>/index.html (build-reader.js L414/482 writeFileSync 확인)
- 착지: /welcome?from=ai&... 또는 직접 /?book=...&v=...
- API 채널: /api/book/recommend (서비스측 라우트 구현 대기)- VM 함정 처리 (책서버.한선에 적용할 것):
요청_경로() raw 반환 → ? 제거 후 매칭 필수
- 디스패처에 /welcome 라우트 정적 폴백보다 먼저 배치
- JSON 응답: JSON생성([키,값,..]) 배열형 (맵 금지, 저장 안전)
- Content-Length 생략 (한글 desc 바이트≠글자수)
- 버전 검증: 책목록.json versions[] 배열에 포함() 확인- crowny.org AI 측:
generateBookNudgeUrl() 함수 추가
- 대화 중 주제 감지 → ASCII 토큰 변환 (기술→ai, 돈→money)
- 사용자 긍정 응답 시 링크 노출
- from=ai 파라미터 필수 (착지측 분석 용)잔여 작업
/welcome + /api/book/recommend GET/POST쿼리제거(), 쿼리값()HTTP응답_JSON(200, {...route, title, desc, reason})generateBookNudgeUrl() + 대화 텍스트 삽입파일 경로 정리
| 파일 | 경로 | 용도 |
|---|---|---|
| welcome.html | /Users/ef/crowny-agent/웹/welcome.html | 착지 페이지 |
| 추천매핑.json | /Users/ef/crowny-agent/data/라이브/추천매핑.json | 레벨+관심 → 책+버전 SSOT |
| AI-말걸기-카피.md | /Users/ef/crowny-agent/data/라이브/AI-말걸기-카피.md | 대화 카피 + 구현 가이드 |
| 책서버.한선 | /Users/ef/crowny-agent/책서버.한선 | 라우트 구현 대기 |
| philosophy.js | crowny.org:9852 소스 | generateBookNudgeUrl() 추가 대기 |