2026-06-17 한선씨 3레이어 정본 재정리 + RPN vs 고수준 딥리서치
개요
"한선RPN이 고수준 대비 못 하는 게 있나" 질문에서 출발 → 딥리서치 4갈래 →
이미 결정·약속됐던 3레이어(T/O/A) 정본 형식이 그 답임을 재확인 → 방치된 3레이어 체계를 재정리(정본 286개 .3layer 재생성).
딥리서치 결론 (소스 근거)
4 병렬 에이전트(hanseonc_high / RPN 프론트엔드 / VM·ISA729 / 트랜스파일러+헌법)로 소스 정독.
- RPN이 고수준 대비 원천적으로 못 하는 작업은 없다. 두 프론트엔드(hanseonc_high, hanseonc_rpn/std)가 동일 ISA729 TOAU 기계어로 컴파일된다(crownyc.c exec_opcode는 opcode 번호만 봄). 차이는 기계어 표현력이 아니라 컴파일러 프론트엔드 완성도.
- VM은 ISA729 95%+ 약 560 opcode 구현(명세의 2.5배 확장). 진짜 상한은 VM이며, 둘 다 그 위에 있음.
- 고수준 hanseonc_high = 454 내장함수, 함수/재귀/조건(만약·혹시·모르면 3값)/반복3종/배열/맵/문자열보간/구조체+메서드/예외/패턴매칭/회로DSL — 이미 러스트·파이선급.
- RPN 프론트엔드 실파손:
가져오기 완전 미구현 스텁(hanseonc_rpn.c:462), 설정(배열쓰기)=opcode 415=PAULI 오매핑, 문자열 리터럴 base=50000 충돌 → 실용 ~30%.
- clike_to_rpn.py 변환 무손실 아님: 탈출/계속·반복문·반복…안에서·시도·모르면·구조체 미변환.
- 정정: hanseonc_std.toau는 동결·무소스 아님 —
hanseonc_std.asm(1,765줄) 소스 존재. (메모리 feedback_hanseonc_std_broken 정정 필요)
핵심 통찰 — 3레이어가 답
"RPN을 정본으로 두느냐"는 잘못된 질문.
3레이어가 셋을 한 산출물에 1:1로 공존시킨다:
- T(티,+1) = 한글 원본 = 고수준 한선씨(저작 편의)
- O(음,0) =
@의미코드 [ISA729:opcode] = 언어독립 의미(클로드 즉시 이해)
- A(타,−1) = TOAU 기계어(.toau) = ISA729 기계 1:1
헌법의 "기계 1:1·추상화갭 제로"를 A층이 충족. 헌법 개정 불필요. (2026-03-28 선언된 형식)
3레이어 재정리 (방치 → 현재화)
- 분류: pkg/libs(=libs 심볼릭링크)의 .한선 9,975(비-rpn) 중 정본 286개(import 인프라 276 ∪ 기존 큐레이션 162) 식별. 제외: RPN 부본 3,981 + 생성 도메인물 ~9,689(게임/수업/지하철/차량 등).
- 재생성: 286개 .3layer 전부 재생성(T+O+통계), 배치 awk 6.3초. 기존 stale 114 + 신규 124 포함.
- 정본 대장:
~/.claude/knowledge/3layer_정본대장.txt (286줄).
관련 파일/도구
- 형식 스펙:
CrownyOS/docs/3LAYER_FORMAT.md
- 산출물:
CrownyOS/docs/3layer/*.3layer (286)
- 도구체인:
CrownyOS/crownyc/tools/3layer/ (T2O추출기.한선 · 배치_3layer.sh · 3layer_diff.sh · dict_갱신.sh 등)
- 의미사전:
CrownyOS/crownyc/pkg/docs/CROWNY_DICT.md(79KB) + CrownyOS/docs/CROWNY_DICT.md(148KB) — 2벌 공존
도구 수정 완료 (2026-06-17 후속)
- ✅
extract_3layer.sh 신설 — 단일 .한선→.3layer 추출기(디렉토리 스캔 없음). 배치 extract() 로직 분리한 재사용 코어. @커버리지 % 공란 버그도 수정(39.9% 정상).
- ✅
3layer_diff.sh 수정 — line50 14k 전체배치스캔 → extract_3layer.sh 직접호출. 0.05초(이전 행). O+A층 정상.
- ✅
3layer_정본갱신.sh 신설 — 정본 대장 기반 mtime 증분 갱신(make 스타일). --with-a로 A층(.toau)도. 286개 0.05초 검증(1재생성/285최신).
- ✅
dict_갱신.sh 수정 — ① grep -c ... || echo 0(0\n0 산술오류) → || true ② 13,956 전체스캔 → 정본 286 대장 기반. 2,435 함수 추출, CROWNY_DICT.md 재생성(3477줄). 백업 rotation(최신1).
- ✅ 재방치 방지 훅 —
3layer_정본훅.sh + settings.json PostToolUse(Write|Edit). 정본 .한선 저장 시 O층 자동 갱신(정본 대장 정확매칭만, 생성물 무시, A층 제외 경량). 검증: JSON 갱신 / 서울지하철 무시.
사전 병합 + 범용 안정화 (2026-06-17 후속 2)
- 2벌 정합성 해소(병합): 두 CROWNY_DICT.md가 반쪽씩이었음 — pkg/docs(A)=손큐레이션 온톨로지(섹션 9~17: 불확실성/의도/6W1H/메타/화용/인식론, 코드추출 불가·대체불가) 보유·함수목록 stale / docs(B)=함수목록만. 병합: A를 SSOT로, 자동 함수섹션(8)을
<!-- AUTO:START/END --> 마커로 감싸 그 안만 갱신 → 온톨로지(9섹션) 보존 + 함수 2,435 최신 공존(3,658줄). docs(B)→A 심링크로 일원화(양쪽 CLAUDE.md 경로 동시 충족).
- dict_갱신.sh v2: 마커 기반 in-place 교체(마커 없으면 실행 거부=파괴방지), 백업 회전 5, 정본대장 스캔, 경로 이식성(스크립트 위치 기반). 멱등 검증(2회 실행 온톨로지 9·함수 2,435 불변).
- 단일 진입점:
3layer_정본갱신.sh --with-dict(또는 --all) = 3레이어 286 + 사전 한 번에.
- 운영 선언:
crownyc/tools/3layer/README.md — SSOT·마커·도구·재방치방지 원칙 명문화.
잔여 이슈 (정본 재정리와 별개)
- (정본 무관, VM/컴파일러 수정 가치) 배열쓰기 opcode 신설(415 PAULI 충돌), RPN
가져오기 구현, hanseonc_high try/catch 리턴스택 보정.
- 정본 세트는 import그래프로 자동 식별 가능 → 주기적 대장 갱신기(신규 인프라 라이브러리 자동 편입)도 고려.
- 170/286 정본만
^함수 보유(나머지=데이터/설정/회로 라이브러리) — 함수 인덱스 2,435는 그 170개 기준.