코칭 행동제안 알고리즘 — 행동과학 근거 반영
날짜: 2026-06-14
근거: /Users/ef/CrownyDoc/projects/2026-06-13-코칭-행동과학-근거.md (딥리서치)개요
크라우니AI 코칭 엔진(코치.한선 + engine/coach.js)의 행동제안·보상·넛지 로직에
행동과학 메타분석 근거(효과크기 기반)를 반영했다.
무엇을 했는지
1. 코치.한선 — 행동제안 if-then·미세행동·4상 정교화
다음행동제안 함수
- 티: "아침 커피 후, '[목표]'을(를) 딱 5분만 해보세요. 언제 시작하시겠어요?" (if-then + 앵커 습관)
- 옴: 동기 설교 제거 → "가장 걸리는 게 뭔지 같이 살펴볼까요?" (장벽 탐색)
- 타: 외부압력 목표·이미 즐기는 일엔 보상 보류 명시
- 음: 앵커 소멸·장기정체 이관 명확화
사상행동제안 함수
- 4상 행동 텍스트를 if-then 미세행동 형식으로 교체
- 티: "아침 커피 후 → '[목표]' 5분 시작하기"
- 옴: "가장 걸리는 것 하나 찾아보기" (장벽 제거 탐색)
- 타: "진짜 중요한지 점검하기" (자기일치성 스크리닝)
행동쪼개기 함수
- "더 작게: …(5분만)" → "아직 안 됐다면 크기 문제예요. … → 딱 2분, 지금 당장 가능한 첫 동작 하나만"
넛지생성 함수
- if-then 앵커링: "오늘 '[미세행동]' — 언제 시작하기 편하세요?"
- 비전 기반: "오늘 비전에 가장 가까운 작은 행동 하나가 있다면, 언제 어디서 할 수 있을까요?"
- 공백: "오늘 가장 작게 시작할 수 있는 것 하나가 있다면 뭔가요?" (동기 설교 제거)
2. engine/coach.js — 보상·66일·넛지 문구
updateAction 함수
- 토큰 적립 → 마일스톤(3/6/9회 완료)에만 소량 적립. 매 완료 남발 금지.
completedDays누적 카운트 추가 (하루 빠짐 리셋 없음 — Lally 2010)recognitionMsg: 예상밖 언어 인정 메시지 (1회차/마일스톤/66일 이정표). 일반 완료는 조용히.- 반환값에
completedDays,habit66pct,recognitionMsg추가
checkProgress 함수
- 66일 정착 추적 필드:
completedDays,habit66pct,habitStatus추가 - 넛지 문구 → 마찰제거형: "다음 한 가지를 하는 데 지금 가장 걸리는 게 뭔가요?"
buildCoachContext 함수
- 66일 정착 진행률 라인 추가 (누락 하루 리셋 없음 명시)
- 넛지 지시 문구 → "동기 설교 말고 장벽 제거 질문 + if-then 계획 유도(d=0.65)"
근거 → 구현 매핑
| 근거 | 효과크기 | 구현 |
|---|---|---|
| if-then 실행계획 (Gollwitzer) | d=0.65 | 다음행동제안·사상행동제안·넛지생성 전체 if-then 형식화 |
| 마찰 감소 | d=0.52 | 미세행동 5분, 쪼개기 2분, 넛지 "언제?" 앵커 질문 |
| 숙달경험(Bandura) | 변량 18.4% | 작은 실제 성공 빈도 설계, 격려 말 → 성공 설계로 |
| 예상밖 언어 인정 (Deci 1999) | d=+0.43 | recognitionMsg 마일스톤/이정표에만. 일반 완료 조용히. |
| 예상된 유형보상 훼손 | d=−0.40 | 토큰 마일스톤(3회)에만 소량. 매 완료 남발 제거. |
| 66일 정착 (Lally 2010) | 평균 66일 | completedDays 누적, habit66pct, 하루 빠짐 리셋 없음 |
| 넛지 보정후 약함 | d=0.004 | 넛지 문구를 마찰감소와 결합 시에만 (동기 설교 제거) |
관련 파일 경로
/Users/ef/crowny-ai/코치.한선— 한선씨 코어 (if-then·미세행동·4상)/Users/ef/crowny-ai/engine/coach.js— JS 어댑터 (보상·66일·넛지)/Users/ef/CrownyDoc/projects/2026-06-13-코칭-행동과학-근거.md— 딥리서치 원본
컴파일/검증 결과
코치.한선컴파일: 성공 (hanseonc_high)- 자가테스트: ═══ 자가테스트 통과 ═══ (welcome→share 1순환, 미완 재제안, R/W 라운드트립, 넛지)
engine/coach.jsnode --check: OK
잔여 이슈
recognitionMsg를 프론트엔드(public/index.html채팅 UI)가 실제로 표시하는 코드는 미작업 (updateAction API 응답에 포함만, 렌더링은 다음 세션)- 완료 횟수가 연속이 아닌 누적이므로 일별 실제 날짜 추적(createdAt 배열)도 추가하면 더 정확한 66일 곡선 가능