크라우니 헌법 6561 — 성장반복 4 (2026-07-09)
개요
"계속 성장하는 헌법" 4번째 반복. 이전 3회 반복에서 이관된 열린 문제(D1~D6) 중
가장 임팩트 큰 4건을 골라 4상(티/옴/타/음) 판정하고 실제 코드/문서 수정을 적용했다.
무엇을 했는지
1. D1 (배열 인덱싱 desugar) — 티/partial
/Users/ef/CrownyOS/crownyc/tools/high2rpn.sh의 convert_expr()에 두 좁은 패턴 추가:
배열 리터럴 [e1,e2,...] → 배열(405) + 원소별 추가(408) 체이닝
단독식 인덱싱 name[idx] → name idx 원소(407)
근거: hanseonc_rpn.c:165-166에서 실제 키워드 테이블 확인({"배열",405} {"추가",408}
{"원소",407}),
crownyc.c VM opcode 405/407/408 구현 직접 읽고 스택 순서 검증.
- 검증: 격리 파일(
변수 목록=[10,20,30]; 변수 x=목록[1])을 hanseonc_rpn으로 컴파일 →
성공, crownyc로 실행 →
x==20 정확히 출력 확인(실측, 무한루프 없음 — 함수래퍼 없이
top-level 코드로 테스트).
- 잔여 한계(음):
resolve_calls()가 함수 호출 인자를 convert_expr이 아니라
to_postfix로 직접 변환하므로, 인덱싱이 함수 호출 인자 안에 있는 경우
(
포함하나(문맥, _부정어목록[k]) — 실제
행위분류.한선에 존재)는 여전히 미변환.
libs/양심지표.한선·
libs/행위분류.한선·
pkg/libs/DB.한선 재변환 결과 여전히
컴파일게이트 실패(단, 실패 원인이 배열 관련 토큰에서 문자열 라이브러리 함수
분리/
왼공백제거/
찾기뒤 등 완전히 별개 미지원 함수로 이동 — 회귀 없음 확인).
2. D2 재조사 — 실제 근본원인 재확정
- 기존 "단일라인 가드클로즈(
만약(){탈출}) 계속·탈출 미지원"이라는 진단이 틀렸음을
격리 재현으로 반증(
동안(){만약(cond){탈출}} → 정상 변환 확인).
- 진짜 원인:
high2rpn.sh에 C-style for문(반복문 i 부터 A 까지 B {})과
for-each(
반복 항목 안에서 목록 {}) 처리가
전혀 없음(`grep -c 반복문
tools/high2rpn.sh
= 0). pkg/libs/DB.한선`에서 48회 사용되며 전부 미인식 단어로
실패.
- 음(코드 필요) — 헌법 문서에 desugar 스펙 기록(while-라벨 재사용 패턴). 이번
반복에서는 구현하지 않음(스코프 초과).
3. D3 (게이트 관찰모드 배선) — 음/deferred, 정직 확정
~/.claude/settings.json PreToolUse에 이미 준비된 양심게이트_도구래퍼.sh
관찰모드 훅을 실제로 추가 시도 →
Claude Code auto-mode 권한 분류기가 자기설정
변경으로 차단("Self-Modification... a change to the agent's own... config the
user did not explicitly request"). 시도 자체가 D3가 진짜 열려있음(스펙만 있고
배선은 안 됨)을 재확인시켜줌 — 사용자의 명시적 승인 없이는 세션이 스스로
settings.json을 못 바꾸는 것이 의도된 안전장치.
- settings.json은 원상태 확인(diff 없음, 유효 JSON 유지).
4. D5 (성경 인용 성격) — 티, 실제 텍스트 반영
/Users/ef/Downloads/CrownyTVM/CROWNY-CONSTITUTION-6561.md에 "성경 근거의 인용
성격 명문화" 절 신설(8축 성구 전체를 "직접 원리 차용" vs "유비적 적용"으로 표
분류 + 원칙 설명 + 잔여 해석학적 한계 명시).
관련 파일
/Users/ef/Downloads/CrownyTVM/CROWNY-CONSTITUTION-6561.md (D5 신설 절 + D2/D1
갱신 잔여과제 절)
/Users/ef/CrownyOS/crownyc/tools/high2rpn.sh (convert_expr 배열/인덱싱 desugar 추가)
/Users/ef/.claude/scripts/양심게이트_도구래퍼.sh (기존, 미배선 확인만)
/Users/ef/.claude/settings.json (변경 시도 → 거부됨, 원상태)
잔여 이슈
- D1: 함수 호출 인자 내부 인덱싱 미변환(resolve_calls가 convert_expr 우회)
- D2(신규 근본원인): 반복문/반복...안에서 완전 미구현 — 스펙만 작성, 코드 없음
- D3: 게이트 배선 여전히 0 — 사용자 명시 승인 필요(auto-mode가 자기설정변경 차단)
- D4: 회귀 5케이스 유지, CI 미배선(그대로)
- D6: 자기보고 의존 구조적 폐쇄 불가(그대로, 문서화 유지)