← 목록
기타 2026-07-03 4KB 읽기 4분

flex.crowny.org 플렉스집사 — 온보딩 엔진 + 패턴학습 엔진

개요

flex.crowny.org를 "플렉스집사" 서비스로 확장하기 위한 순수 한선씨 백엔드 엔진 2종. 회원 등록(꿈목표/업무/할일)과 회원별 말투·라이프사이클 학습(격식도/전화시간)을 담당한다. 서버 기동/배선은 범위 밖 — 독립 CLI + 공유 state PSV 계약만 구현.

무엇을 했는지

  1. 온보딩 엔진 — 페이로드(꿈목표/업무/할일;구분/전화시간)를 파싱해 프로필·할일·초기패턴 3개 PSV를 state/에 생성.
- 할일 우선순위 추정 규칙(셀코어 룰 스타일): "긴급/오늘/먼저/중요"→1, "확인/정리/연락"→2, 그 외→3 (포함하나() 사용).
  1. 패턴학습 엔진 — 하루치 기록(에포크|유형|내용)을 읽어:
- 발화 문장 어미("요"/"다"/"까") 카운트 누적 → 격식도 ±1 조정(3~8 캡) - 하루 최초 활동시각(에포크→HH:MM, date -r 우회)을 누적평균해 현재 전화시간과 40분 이상 차이나면 30분 보정(06:00~10:00 캡) - 조회 모드로 현재 패턴 JSON 즉시 반환
  1. 모든 산술은 절단나눗셈()으로 처리(균형나머지 % 함정 회피), 에포크→시각은 체계("date -r ...") + 읽기() 우회(수동 산술 금지 규칙 준수).

관련 파일

  • /Users/ef/crowny-flex/libs/플렉스온보딩.한선 — 온보딩 로직(함수 정의만)
  • /Users/ef/crowny-flex/온보딩CLI.한선 — 온보딩 CLI 드라이버 (가져오기 "libs/플렉스온보딩.한선")
  • /Users/ef/crowny-flex/libs/플렉스패턴.한선 — 패턴학습 로직(함수 정의만)
  • /Users/ef/crowny-flex/패턴CLI.한선 — 패턴학습 CLI 드라이버
  • /Users/ef/crowny-flex/build/온보딩.toau, /Users/ef/crowny-flex/build/패턴.toau — 컴파일 산출물
  • state 계약: 프로필_<id>.psv / 할일_<id>_<YYYYMMDD>.psv / 패턴_<id>.psv / 기록_<id>_<YYYYMMDD>.psv

실행 예시

bashFLEX_STATE=/Users/ef/crowny-flex/state FLEX_MEMBER=<id> FLEX_DATE=<YYYYMMDD> FLEX_PAYLOAD=<경로> \
  /Users/ef/CrownyOS/crownyc/crownyc run /Users/ef/crowny-flex/build/온보딩.toau

FLEX_STATE=/Users/ef/crowny-flex/state FLEX_MEMBER=<id> FLEX_DATE=<YYYYMMDD> FLEX_MODE=학습|조회 \
  /Users/ef/CrownyOS/crownyc/crownyc run /Users/ef/crowny-flex/build/패턴.toau
stdout은 {로 시작하는 JSON 한 줄만(crownyc 로그는 stderr로 분리하거나 grep '^{'로 필터).

테스트 결과 (mtest, 검증 후 state/에서 삭제 완료)

  • 온보딩: {"ok":true,"할일수":3,"전화시간":"08:00","요약":"할일 3건 등록, 전화시간 08:00"} — 우선순위 1/2/3 정확 분류 확인.
  • 패턴학습 1회차(이른 활동 07:10 vs 통화 08:00, diff -50): {"ok":true,"격식도":5,"전화시간":"07:30", ...} — 30분 앞당김 확인.
  • 패턴학습 2회차(다/까 우세 3건, 늦은 활동 10:00, 누적평균 diff +65): {"ok":true,"격식도":6,"전화시간":"08:00", ...} — 격식도 +1, 30분 늦춤 확인.
  • 조회 모드, 존재하지 않는 페이로드/회원/기록에 대한 에러 JSON({"ok":false,"error":...}) 모두 정상.

크라우니코드

lookup: HIT 0건 / MISS 2건(신규 로직) — learn 추가 2건(플렉스온보딩엔진, 플렉스패턴학습엔진).

잔여 이슈

  • 서버(flex견적서버.한선) 쪽 배선(라우트 연결, 실제 전화 브리핑 UI/음성)은 이 작업 범위 밖 — 다른 세션이 이 PSV 계약을 소비해야 함.
  • 격식도/전화시간 조정 임계치(40분, 30분 스텝, 3~8/06:00~10:00 캡)는 초기 휴리스틱값 — 실사용 데이터로 재조정 필요.
  • 다건 회원 동시 기록 시 기록 파일에 | 포함 발화가 있을 경우 첫 2개 |만 구분자로 처리(3번째 필드는 나머지 전체) — 정상 동작하나 유형 필드 자체에 |가 들어가는 극단 케이스는 미검증.