← 목록
기타 2026-06-14 4KB 읽기 4분

코칭 행동제안 알고리즘 — 행동과학 근거 반영

날짜: 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.43recognitionMsg 마일스톤/이정표에만. 일반 완료 조용히.
예상된 유형보상 훼손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.js node --check: OK

잔여 이슈

  • recognitionMsg 를 프론트엔드(public/index.html 채팅 UI)가 실제로 표시하는 코드는 미작업 (updateAction API 응답에 포함만, 렌더링은 다음 세션)
  • 완료 횟수가 연속이 아닌 누적이므로 일별 실제 날짜 추적(createdAt 배열)도 추가하면 더 정확한 66일 곡선 가능