Go to file
Claude c35fad2737
자연스러움 피드백 계측(N4-12) 구현: 초안 무수정 발송률 + 원탭 나답아요 평가
암묵 신호: Message.DraftEdited(nullable)를 트윈 승인-발송 경로에서 클라이언트가
보낸 original_draft_text와 실제 발송 텍스트를 diff해 계산(사람 메시지·구버전
클라는 nil, 추측하지 않음). 명시 신호: Message.NaturalnessRating(nullable) +
POST /messages/:id/feedback(트윈 메시지만, 재제출은 덮어씀)로 "이 답장
나답아요?" 원탭 👍/👎을 채팅방에 비침투적으로(모달 아님, 한 번 탭하면
다시 안 보임) 노출. /admin/metrics에 draft_unedited_rate·
naturalness_positive_rate 추가(분모 0 zero-guard), 대시보드 카드 2개 추가.

PoC 실행이나 결론이 아니라 캡처 장치일 뿐 — 실제 자연스러움 %는 N5 이후
실 베타 데이터로 확정한다. docs/roadmap.md·deploy-checklist.md N4-12 동기화.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014YSB5PqF38raTxP5ABgr9m
2026-08-03 07:39:55 +00:00
ai-service 관계 메모 실제 반영(2.7-E) 구현: draftRequest에 RelationshipNote 전달 + 프롬프트 주입 2026-08-03 05:37:33 +00:00
backend 제품명 변경(분신→와카뷰) + 소프트 그라디언트/글래스모피즘 UI + 브랜드 로딩 화면 2026-07-31 01:15:42 +00:00
core-backend 자연스러움 피드백 계측(N4-12) 구현: 초안 무수정 발송률 + 원탭 나답아요 평가 2026-08-03 07:39:55 +00:00
deploy feat(deploy): Docker Compose stack for msn.iykyka.com (N2-B) 2026-07-31 02:26:40 +00:00
docs 자연스러움 피드백 계측(N4-12) 구현: 초안 무수정 발송률 + 원탭 나답아요 평가 2026-08-03 07:39:55 +00:00
mobile 자연스러움 피드백 계측(N4-12) 구현: 초안 무수정 발송률 + 원탭 나답아요 평가 2026-08-03 07:39:55 +00:00
poc/tone-corpus Merge origin/main: keep gradient/glassmorphism UI, port demo-invite + boot hardening, purge 분신 branding 2026-07-31 01:30:50 +00:00
scripts docs(ops): complete N3 stabilize — backup, tester guide, smoke results 2026-07-31 04:06:09 +00:00
secrets feat(fcm): send pushes via HTTP v1 service account 2026-07-31 07:33:23 +00:00
.dockerignore feat(deploy): Docker Compose stack for msn.iykyka.com (N2-B) 2026-07-31 02:26:40 +00:00
.env.example feat(fcm): send pushes via HTTP v1 service account 2026-07-31 07:33:23 +00:00
.gitignore feat(fcm): send pushes via HTTP v1 service account 2026-07-31 07:33:23 +00:00
AGENTS.md docs: add deploy/residual checklist (N1–N5) after Phase 1 A–C 2026-07-31 01:54:55 +00:00
CLAUDE.md docs: add deploy/residual checklist (N1–N5) after Phase 1 A–C 2026-07-31 01:54:55 +00:00
README.md docs: record Gemini key live on msn.iykyka.com (draft status=ok) 2026-07-31 04:19:44 +00:00
docker-compose.yml feat(fcm): send pushes via HTTP v1 service account 2026-07-31 07:33:23 +00:00

README.md

hikikomori / 와카뷰 (가칭)

카카오톡 대안 메신저 — "나를 대신해 남과 대화하는 AI 와카뷰".

구조

경로 역할
docs/ 기획·PRD·기술설계·로드맵·PoC 계획
core-backend/ Go 코어 (가입·메시지·WebSocket·자율성·안전장치)
ai-service/ Python AI 내부 API (/draft, /escalate/check)
backend/ 초기 Python 프로토타입 (참고용)
poc/tone-corpus/ PoC 실험 스크립트
mobile/ Flutter 클라이언트 (Android 우선)

문서

AI 에이전트 규칙

  • AGENTS.md · CLAUDE.md
  • 브랜치: 작업·머지는 항상 main
  • 리모트: GitHub origin + Gitea gitea(iykyka) — main 갱신 후 ./scripts/push-both.sh

현재 단계

  • Phase 1 A~C + N2 컷오버 + N3 안정화 완료 — 라이브: https://msn.iykyka.com
  • 테스터 안내: docs/tester-guide.md · 데모 코드 DEMO-YKAVU
  • 다음 (선택): N4 FCM·Android QA
  • 맨 마지막: N5 / D — 사람 PoC (docs/roadmap.md §3). §3 기본값 추측 금지
  • 프로토타입 공유 URL은 docs/prototype.mdSHARE_URL에 Master가 기입

로컬 실행 (요약)

# 터미널 1 — AI 서비스
cd ai-service && pip install -r requirements.txt
export GEMINI_API_KEY=...   # or repo-root .env
uvicorn app.main:app --port 8001

# 터미널 2 — 코어 백엔드
cd core-backend
export ADMIN_API_TOKEN=dev-admin-token
go run . migrate && go run .

# 초대 코드 발급 예:
# curl -X POST http://localhost:8080/invites -H "Authorization: Bearer $ADMIN_API_TOKEN"

# 터미널 3 — Flutter (Android)
cd mobile && flutter run --dart-define=CORE_API_BASE=http://10.0.2.2:8080

Docker (N2-B / msn.iykyka.com)

cp .env.example .env   # ADMIN_API_TOKEN, POSTGRES_PASSWORD 필수
# 로컬: PUBLIC_API_BASE=http://localhost:8088
docker compose up -d --build
curl -sS http://localhost:8088/health

Postgres·AI는 내부망만. 엣지 프록시는 web:80(또는 WEB_HOST_PORT)만 공개.