finance.crowny.org — 대화식(Claude 스타일) 전환 + 셀코어 로직 일원화
개요
finance.crowny.org를
기본 대화식(Claude 스타일) 서비스로 전환. 랜딩(설명) 페이지는 버튼으로 남기되,
진입 즉시 봇이 질문으로 시작 → 니즈파악 → 상품추천 → 접수 → 진행확인 → 추가권유 → 소개받기 →
비즈니스 전체진행 공유(고객을 주주처럼 대우) 8단계 흐름.
핵심: 대화/추천/분기 로직을 ad-hoc if-else가 아니라
셀코어 상태기계 + 룰엔진 + 오케 + 셀 슬롯으로 일원화.
울트라 워크플로우 10에이전트(설계4 → 구축2 → 컴파일 수리1회 → 검증3) 병렬 진행.
아키텍처 (셀코어 일원화)
- 세션 = 셀코어 셀 1개. 슬롯에 단계/소스/카테고리/니즈/이름/연락처/접수번호/진행단계/업셀/소개 저장.
- 대화 전이 = 상태기계 (상태기계생성 9상태 + 이행추가 11전이, 조건슬롯 13). 매 턴 상태기계틱으로 자동 전이.
- 상품추천·추가권유 = 오케 (오케결정 + 4 업셀 룰: 렌탈→집사/보안, 솔루션→네트워크, 집사→자산/트레이딩). 결정론적, 외부 LLM 불필요.
- 자유입력 → 키워드 룰로 칩값 매핑(입력 어댑터). 의사결정은 셀코어가 담당.
신규 라우트 (백엔드 크라우니파이낸스.한선, 2.78MB toau)
POST /api/chat/start → 세션 셀 생성 + 인사 상태 반환 (session, stageCode 0, bot, choices 5)
POST /api/chat {session, choice|message} → 상태기계 1틱 전진 (stage, bot, choices, card: recommend|track|upsell|shareholder)
GET /api/shareholder → 주주식 전체진행 (operator, ecosystemTotals byCategory, connectedServices 10, 시즌1)
POST /api/referral {name,phone} + GET /api/referral/:code → 소개코드(CRF-) 발급/조회, 맘·포네 보상, idempotent
- 접수는 기존 접수등록 재사용(중복 구현 없음).
프론트엔드 (대화 UI)
web/index.html = 신규 대화식 챗 셸 (100dvh 그리드, 헤더 "서비스 소개"→/guide.html, 봇 인사 첫 화면 즉시).
web/assets/chat.css / chat.js (신규) — 메시지 버블·퀵리플라이 칩·진행/추천/주주/소개 카드·타이핑 인디케이터. 세션 localStorage(cfSession).
web/guide.html = 기존 리치 렌탈 랜딩 보존 복사(기존 style.css/app.js 그대로).
- 디자인: crowny.org 베이지#FAF9F7+골드#C9A961, Pretendard, light/dark 토글, ◇/⬡ TOAU, 44px+ 탭, 모바일 단일컬럼.
검증 (3중, 모두 PASS)
- 셀코어 일원화 감사: PASS 8.5/10 — 상태기계 9상태/11전이, 세션=셀, 오케 4룰 실사용·런타임 검증. ad-hoc 의사결정 if-else 없음. (감점: SM 전이가 칩 직접 슬롯쓰기와 다소 중복 — 형식적 권위)
- E2E 흐름: PASS 8/8 단계 — greet→need→recommend→collect→received→track→upsell→referral→sharing 전 단계 + shareholder/referral/자유입력 라우팅/재시작 루프/에러 경로. 접수 #10 E2E 생성. (근본원인: 이전 수동 백엔드가 소스편집 이전 빌드 → 재컴파일·재기동으로 해결)
- 모바일 디자인: PASS 8.5/10 — 390px 봇 질문 즉시 표시, 칩·입력바·버블 직관. (치명 버그 발견·수정: chat.js 프론트/백 스키마 불일치 → renderBotReply 스키마 어댑터로 재작성; collect 자유입력→로컬 미니폼 핸드오프; 아바타 정렬·헤더 클립 CSS 수정)
- 독립 재확인: /api/chat/start(5칩)·chat 턴(greet→need)·/api/shareholder(10서비스) 정상. 최종 모바일 스크린샷 확인.
관련 파일
- 백엔드: /Users/ef/crowny-finance/src/크라우니파이낸스.한선 (대화엔진: 상태기계+룰+오케, /api/chat·shareholder·referral)
- 프론트: web/index.html(챗), web/assets/chat.css, web/assets/chat.js, web/guide.html(리치랜딩 보존)
- 실행: 백엔드 :9750(crownyc run), 프록시 :9754(proxy.js, SPA fallback) — 워치독 비관리(수동 기동)
잔여 이슈 / 폴리시
- 상태기계 전이가 칩 직접 슬롯쓰기와 중복 → SM에 실질 게이팅 권한 부여(슬롯13만 단계 판단)로 정합성 강화 검토.
- 첫 로드 시 봇 버블 1개라 메시지영역 여백 큼(칩·입력 하단 고정) — 칩을 최신 메시지 바로 아래 앵커링하면 첫 화면 밀도 개선.
- collect 단계 자유입력 이름/연락처는 로컬 미니폼 경로 사용(서버 칩 주도) — 추후 서버 자유입력 캡처 보강.
- 셀코어 규칙 198건 수확·11 신규 등록(규칙저장소.dat).