크라우니 자율사고 코칭 코어 (코치.한선)
개요
사용자가 꿈·목표를 찾고 → 비전 선언 → 4상 행동제안 → 체크 → 보상 → 공유하는
코칭 상태기계. crowny-ai server.js 핫패스 밖에서 단독 실행되는 한선씨 실행기.
백엔드(coach.js, 다른 트랙)는 이 엔진이 쓰는 JSON 산출만 읽는다.
무엇을 했는지
상태기계 7상태/11전이: welcome→discover→declare→propose→checkin→reward→share→(순환)propose
자유입력 키워드 룰: "다시시작"→welcome, "목표"→discover 점프
checkin 미완 → propose 재제안(행동 쪼개기, 자율루프 split 차용)
다음행동제안(목표,누적호응,누적거부) — 결정.한선 4상(티 자동제안/옴 검색후/타 보류/음 위임)
사상행동제안(목표,시작번호) — 목표 하나에 티/옴/타/음 4상 균형 행동 생성
비전정리(키워드들) — discover 키워드 배열 → 비전 선언 문장 합성
아침제안생성() — data/coach/.json 전체 스캔(글자수 가드) → 각 프로필 pendingNudge 기록 (배치)
진입점: 기본=자가테스트(welcome→share 1순환 시연), COACH_MODE=아침=배치
아침 LaunchAgent: StartCalendarInterval Hour=7, RunAtLoad=false(미로드)검증 결과
- 컴파일 OK (hanseonc_high), 자가테스트 11단계 전부 통과
- JSON 스키마 R/W 라운드트립 확인 — 표준 JSON 파서로 검증, 필수 7키 + action 5필드 일치
- 아침모드: 프로필 스캔→pendingNudge(text+actionId) 기록 확인, 빈 디렉토리 graceful
- 학습DB 등록: intent=코칭코어
공유 인터페이스 계약 (준수)
data/coach/<owner>.json:
{ owner, state(welcome|discover|declare|propose|checkin|reward|share),
vision, goals[], actions[{id,text,phase(티|옴|타|음),status(제안|진행|완료),reward}],
pendingNudge{text,actionId}, history[] }
관련 파일
- /Users/ef/crowny-ai/코치.한선 (엔진)
- /Users/ef/crowny-ai/data/coach/<owner>.json (프로필, JSON)
- /Users/ef/Library/LaunchAgents/com.crowny.ai.coach.plist (아침 7시, 미로드)
- /Users/ef/crowny-ai/logs/coach.out (배치 로그)
실행
cd /Users/ef/CrownyOS/crownyc
./hanseonc_high /Users/ef/crowny-ai/코치.한선 > /tmp/코치.toau 2>/dev/null
./crownyc run /tmp/코치.toau # 자가테스트
COACH_MODE=아침 ./crownyc run /tmp/코치.toau # 아침 배치
잔여 이슈 / 함정
- hanseonc_high 에 CLI 인자 내장함수 없음 → 모드 선택은 환경변수 COASH_MODE 로 (인수개수/명령행인자 미정의)
- 디렉토리 스캔: 파일목록(".")=4095개 0값 반환(불량) → 체계("ls .json > /tmp") + 읽기 패턴 사용
- LaunchAgent 미로드: 사용자가
launchctl load -w ~/Library/LaunchAgents/com.crowny.ai.coach.plist 로 활성