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

크라우니워드 명령셀라우터 — 65도메인 명령 라우팅 셀코어 룰 엔진

개요

크라우니워드(crowny-word) 도구/ 65도메인 1635함수 자산을 사용자 명령(예: "굵게", "찾기", "저장")으로부터 담당 도메인으로 라우팅하는 셀코어 룰 기반 연결층. 순수 한선씨(.한선), 셀코어(가져오기 "셀코어") 룰엔진 사용.

무엇을 했는지

  • /Users/ef/crowny-word/연결/명령셀라우터.한선 작성 (69쌍 명령표, 65도메인 전부 최소 1개 커버)
  • 셀 슬롯 설계: s0=명령원문, s1=인자유무, s2=명령코드(표 행 인덱스), s10=결정(도메인이름/"미지")
  • 함수 구성:
  • 명령표기본() — "명령|도메인|함수" PSV 텍스트 69행 (65도메인 각 1개 이상 + "저장" 중복행(모호 테스트용) + 3개 별칭성 여분)
  • 명령표파싱() / 명령표파싱캐시() — PSV → 병렬배열(명령들/도메인들/함수들)
  • 명령파싱(입력) — "명령:인자" 분리
  • 명령셀만들기(db,id,명령텍스트) — 셀 생성(s0/s1) + s2=명령코드
  • 라우팅룰들() / 라우팅룰들캐시() — 표 각 행 → 룰(s2==코드 → s10=도메인), 우선순위 차등 69+1(미지 폴백)개
  • 라우터실행(db,감사,명령텍스트) — 셀 생성 → 룰엔진실행 → 결정 반환 + 감사기록
  • 표조회(명령) — PSV 직접 매칭(별칭 해석 포함, 룰 미스 폴백용)
  • 후보수(명령) — 표 내 명령 중복 카운트(모호 판정용)
  • 별칭초기화()/별칭추가()/별칭해석() — 명령별칭.psv 파일 누적(라인당 덧쓰기)
  • 라우팅판정(명령) — 4상: 티=표+룰 일치 / 옴=표만 일치(별칭처럼 룰이 모르는 경우) / 타=미지 명령 / 음=모호(복수 후보)
  • 감사요약(감사) — 라우팅 이력 텍스트
  • 커버리지검사() — 명령표 도메인 dedupe 카운트 == 65 확인
  • 4상 판정 설계 근거

    • 티(정상): "찾기" 등 표에 유일하게 등장하는 명령 — 표조회·룰엔진 둘 다 같은 도메인으로 수렴.
    • 옴(불일치/보완필요): 별칭(별칭추가("강조","굵게"))으로 등록된 명령 — 표조회는 별칭 해석을 거쳐 "서식런"을 찾지만,
    룰엔진은 명령표에 없는 별칭 문자열의 명령코드를 못 찾아(-1) "미지명령" 폴백 룰이 적용됨 → 표만 일치, 실제 불일치 감지.
    • 타(미지): 표에도 룰에도 없는 완전 신규 명령.
    • 음(모호): "저장"을 문서파일(문서저장)과 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함수) 결과와 자동 동기화되지 않음
    (향후 도구레지스트리.psv를 읽어 대표 명령을 자동 추출하는 개선 여지 있음, 현재는 수동 큐레이션).