크라우니워드 명령셀라우터 — 65도메인 명령 라우팅 셀코어 룰 엔진
개요
크라우니워드(crowny-word) 도구/ 65도메인 1635함수 자산을 사용자 명령(예: "굵게", "찾기", "저장")으로부터 담당 도메인으로 라우팅하는 셀코어 룰 기반 연결층. 순수 한선씨(.한선), 셀코어(가져오기 "셀코어") 룰엔진 사용.
무엇을 했는지
/Users/ef/crowny-word/연결/명령셀라우터.한선 작성 (69쌍 명령표, 65도메인 전부 최소 1개 커버)명령표기본() — "명령|도메인|함수" PSV 텍스트 69행 (65도메인 각 1개 이상 + "저장" 중복행(모호 테스트용) + 3개 별칭성 여분)명령표파싱() / 명령표파싱캐시() — PSV → 병렬배열(명령들/도메인들/함수들)명령파싱(입력) — "명령:인자" 분리명령셀만들기(db,id,명령텍스트) — 셀 생성(s0/s1) + s2=명령코드라우팅룰들() / 라우팅룰들캐시() — 표 각 행 → 룰(s2==코드 → s10=도메인), 우선순위 차등 69+1(미지 폴백)개라우터실행(db,감사,명령텍스트) — 셀 생성 → 룰엔진실행 → 결정 반환 + 감사기록표조회(명령) — PSV 직접 매칭(별칭 해석 포함, 룰 미스 폴백용)후보수(명령) — 표 내 명령 중복 카운트(모호 판정용)별칭초기화()/별칭추가()/별칭해석() — 명령별칭.psv 파일 누적(라인당 덧쓰기)라우팅판정(명령) — 4상: 티=표+룰 일치 / 옴=표만 일치(별칭처럼 룰이 모르는 경우) / 타=미지 명령 / 음=모호(복수 후보)감사요약(감사) — 라우팅 이력 텍스트커버리지검사() — 명령표 도메인 dedupe 카운트 == 65 확인4상 판정 설계 근거
- 티(정상): "찾기" 등 표에 유일하게 등장하는 명령 — 표조회·룰엔진 둘 다 같은 도메인으로 수렴.
- 옴(불일치/보완필요): 별칭(
별칭추가("강조","굵게"))으로 등록된 명령 — 표조회는 별칭 해석을 거쳐 "서식런"을 찾지만,
- 타(미지): 표에도 룰에도 없는 완전 신규 명령.
- 음(모호): "저장"을 문서파일(문서저장)과 CWD포맷v2(v2저장) 양쪽에 중복 등록해 재현 —
후보수("저장")==2로 조기 검출.
성능 함정 발견 및 수정
최초 구현은 명령표파싱()과 라우팅룰들()(약 70개 룰 맵 객체 생성)을 매 라우터실행 호출마다 재계산했다.
자체시험(13회 라우팅) 실행 중 [STR] 조기경고: 문자열 핸들 432000/480000 (90%) 경고가 떠 VM 문자열 핸들 풀
고갈 위험이 실측됨. 해결: 최초 1회만 계산해 전역변수(_표파싱캐시, _룰캐시)에 저장하는 캐시 패턴 적용
(한선씨 top-level 변수는 함수 내부에서 전역으로 읽기/쓰기 가능함을 별도 스모크테스트로 확인) → 경고 완전 해소,
동일 자체시험 재실행 시 [STR] 경고 미발생. 이 캐시 패턴은 학습DB에 hanseon_전역캐시_핸들낭비방지로 등록.
관련 파일
/Users/ef/crowny-word/연결/명령셀라우터.한선— 본체 (신규)/Users/ef/crowny-word/데이터/명령별칭.psv— 별칭 누적 파일 (신규, 런타임 생성)/Users/ef/crowny-word/연결/도구레지스트리.한선— 참고한 기존 65도메인 스캔 패턴(함수/도메인 목록 대조용, import는 안 함 — top-level 시험실행() 실행 함정 회피)/Users/ef/CrownyOS/crownyc/apps/도구연결판정.한선— 셀코어 룰엔진 사용 패턴 참고 원본/Users/ef/CrownyOS/crownyc/libs/셀코어.한선— 룰엔진/셀/감사 API 정의
검증
cd /Users/ef/CrownyOS/crownyc
./hanseonc_high /Users/ef/crowny-word/연결/명령셀라우터.한선 > /tmp/명령셀라우터.toau
./crownyc run /tmp/명령셀라우터.toau
# 검사: PASS 37/37
크라우니코드: lookup/search MISS 2건("셀코어 룰 라우팅", "명령 파싱 라우터" 등 4회 검색 전부 MISS) → LLM 신규 생성. learn add 3건 완료(명령셀라우터_라우터실행, 명령셀라우터_라우팅판정_4상, hanseon_전역캐시_핸들낭비방지).
잔여 이슈
- 함수 필드(도구/*.한선 실제 함수명)는 데이터로만 기록되고 실제 호출(가져오기 후 함수 실행)까지는
- 69행 PSV는 하드코딩 상수 — 도구레지스트리.한선의 실측 스캔(1635함수) 결과와 자동 동기화되지 않음