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

규칙저장소 → 셀코어 룰엔진 브리지 (2026-07-07)

개요

오늘 진행된 std/규칙저장소 폴더링·재검토(INDEX.md)에서 확인된 핵심 발견 — "규칙저장소.dat(33,488줄)는 harvest 전용 쓰기전용 로그이며, 셀코어 E-룰엔진 (룰생성/룰조건추가/룰변경추가/룰엔진실행)에 실제 로드하는 코드가 없다" — 를 해소하는 다음 단계 작업. 보존가치 있는 규칙(lint 19건 + rule 2건 전량, 그리고 condition.psv 27,846건 중 웹모드인가() 보일러플레이트를 제외한 고빈도 상위 30종)을 셀코어 룰 객체로 실체화해 "실행되는 룰"로 전환했다.

무엇을 했는지

  1. 큐레이션: condition.psv(27,846건, 이 VM 빌드의 버퍼잘라 비영오프셋
버그로 전수 스트리밍 불가)에서 재현 가능한 awk 파이프라인(sort|uniq -c)으로 웹모드인가() 보일러플레이트(2,467건, 8.9%)를 제외한 상위 30종을 선정해 std/규칙저장소/조건상위30.psv(빈도|패턴|출처, 3컬럼)로 저장.
  1. 브리지 도구 작성: std/규칙브리지.한선 — lint.psv(19)/rule.psv(2)/
조건상위30.psv(30) 총 51건을 8컬럼 스키마 (룰이름|우선순위|조건슬롯|연산자|값|변경슬롯|새값|출처)로 파싱·직렬화해 std/규칙저장소/브리지룰셋.psv에 기록. - lint 다중파이프 함정(19건 중 1건이 "&&"/"(||)" 패턴 자체에 리터럴 파이프를 포함해 단순 분리시 컬럼이 9개로 갈라짐)을 극성토큰("타"/"옴"/숫자) 좌→우 스캔으로 해결. - condition 패턴 파싱: 괄호 열림/닫힘 카운트 비교로 "비교식(X op V)"과 "함수콜 절단형(함수(인자), 원래 truthy 체크)"을 구분, 후자는 != 0(진리값 관측)으로 변환. - 함정 실측: x = x + 함수호출() 누적이 조용히 소실되는 VM 함정(기존 메모리 feedback_hanseon_accum_funcall과 동일 패턴)을 이번 작업에서도 재현·수정 — 매 브리지 함수 내부의 문자열 누적을 임시변수 분리로 고쳐 51행이 온전히 직렬화되도록 함(수정 전엔 조건 30행만 남고 lint+rule 21행이 소실됐었다).
  1. 슬롯 격리 설계: 셀코어 27슬롯 레이아웃의 데이터 영역을 카테고리별로 분리
— 조건(16/17), lint(18/19), rule(21/22). 애초 슬롯16/17 공유 설계였으나 lint의 "슬롯 != -1"(느슨한 매치) 조건과 900~950대 최고 우선순위 조합이 condition 데모 셀을 항상 가로챌 구조임을 데모 작성 전에 발견해 사전 분리.
  1. 실증 데모: std/규칙브리지데모.한선 — 브리지룰셋.psv 51건을
룰생성/룰조건추가/룰변경추가로 셀코어에 등록하고, 서로 다른 카테고리를 대표하는 샘플 셀 3종에 룰엔진실행을 실행. 컴파일+실행 검증 완료:

   [전] 셀1.슬롯21=1 슬롯22=없음   → [후] 슬롯22=1   (rule자동추출_1, 우선순위1100)
   [전] 셀2.슬롯18=6 슬롯19=없음   → [후] 슬롯19=1   (lint0_한선씨함정검사:논리연산자, "&&" 매치)
   [전] 셀3.슬롯16=5 슬롯17=없음   → [후] 슬롯17=1   (cond0_루트_gt, 빈도778 최우선)
   총 적용수 = 3 / 셀 3개 전량 발화
   

  1. INDEX.md 갱신: std/규칙저장소/INDEX.md에 "6. 브리지 완료(2026-07-07)"
섹션 추가 — 변환 건수 표, 산출 파일 경로, 데모 결과, 잔여 과제.
  1. 크라우니코드 학습: crownycode-learn.sh add로 3건 등록
(규칙브리지_lint변환, 규칙브리지_condition파싱, 규칙브리지데모_룰엔진로드).

관련 파일

  • /Users/ef/Downloads/CrownyTVM/std/규칙저장소/조건상위30.psv — 큐레이션 입력(30줄)
  • /Users/ef/Downloads/CrownyTVM/std/규칙브리지.한선 — 브리지 변환 도구
  • /Users/ef/Downloads/CrownyTVM/std/규칙저장소/브리지룰셋.psv — 산출 룰셋(51행, 8컬럼)
  • /Users/ef/Downloads/CrownyTVM/std/규칙브리지데모.한선 — 실증 데모
  • /Users/ef/Downloads/CrownyTVM/std/규칙저장소/INDEX.md — §6 브리지 완료 섹션
  • /Users/ef/Downloads/CrownyTVM/std/셀코어.han — E.룰엔진 API(룰생성/룰조건추가/
룰변경추가/룰평가/룰엔진실행, 363~471행)

잔여 이슈

  • condition.psv 나머지 27,816건(상위30 제외)은 여전히 미브리지 — 버퍼잘라
비영오프셋 VM 버그(opcode395) 해결 전까지는 bash/awk 사전 집계 후 소량 큐레이션 확장이 현실적 경로. 버그 자체는 crownyc.c의 별도 수정 과제로 이미 규칙저장소분류.한선 헤더에 기록돼 있음(이번 작업 범위 밖).
  • assignment/return/function/datastructure/iteration(4,569건)은 조건→액션
트리거 구조가 아니라 이번 브리지 범위 밖(오늘 재검토 §4①에서 "저가치 자동수확 로그"로 이미 분류됨).
  • 이번 브리지의 슬롯 매핑은 "카테고리 1개당 관측/발화 슬롯 1쌍" 단순화다.
같은 카테고리 내 서로 다른 원본 변수명(활성/열림/체크됨 등)은 여전히 슬롯16 하나로 수렴돼, 실서비스 적용 시엔 변수별 전용 셀 유형(슬롯0=주어 태그)이 추가로 필요하다.

크라우니코드

lookup HIT 3(규칙저장소_레코드분류 계열 기존 패턴) / MISS 0 / learn 3 (규칙브리지_lint변환, 규칙브리지_condition파싱, 규칙브리지데모_룰엔진로드)