패블 마에스터 갑옷 v1 — 제어역전 구조화 (2026-07-12, 한 번에 구축)
사장님: "크라우니코드가 명령을 받아 패블에 오케스트레이션 명령을 준다." → 한 번에 실현.
구조 (제어역전)
사용자 명령 →
UserPromptSubmit 훅(크라우니갑옷훅.sh) → 크라우니코드 갑옷이 프론트에서 받음
→
갑옷라우터.한선(결정론 4상 라우팅, 한선씨) → 유형별 토큰0 도구
→ HIT면 답 주입(패블 토큰0) / MISS면 오케스트레이션 지시 주입.
부품
/Users/ef/CrownyOS/crownyc/갑옷라우터.한선 — 명령→유형(코드/지식/철학/분류/생성)|판정|도구|슬러그. 평탄화(역순 만약 덮어쓰기), ASCII env CMD(bash 한글변수 함정 회피). 컴파일·5명령 실측.
~/.claude/scripts/크라우니갑옷.sh — 라우팅+토큰0 조회(llm/철학 인라인, brain은 지시)+지시 생성. 전 단계 ctimeout(행 방지).
~/.claude/scripts/크라우니갑옷훅.sh — UserPromptSubmit 래퍼. settings.json 배선(백업 .bak-갑옷훅).
라이브 실측
- "복리가 뭐야" → 크라우니LLM 코어 0ms 토큰0 HIT 주입 (훅 총 0.7s)
- "디자인 개편해줘" → 오케스트레이션 지시 주입 (0.1s)
- 통지/워크플로우결과 → 스킵
정직한 한계 (v1)
- 토큰0 HIT율 = 하부도구 커버리지에 종속: 크라우니LLM 88%(폐집합 벤치)·brain 협소(정확매칭). 새 명령은 대개 MISS→지시.
- MISS 지시도 가치: 게이트 강제(우회 로그 적발) + 모델/검증/learn 명시. 100x는 커버리지(래칫) 성장에 비례해 실현.
- UserPromptSubmit 훅은 세션 시작 시 로드 → 이번 세션 내 즉시활성 여부는 하네스 의존(다음 세션 확실). 훅 스크립트 자체는 self-test 통과.
- brain 인라인 미실행(MISS 4.5s 지연) → 코드 요청은 지시로 "brain.sh run 먼저 호출" 유도.
다음 밀도화(측정된 순서)
① 상주서버 상주화(레이턴시 ms) ② 토큰0 커버리지 래칫(learn-back 실가동) ③ 라우터 유형 정밀화(철학 vs 지식 우선순위).
1단계 완성 (7레벨 결속, 2026-07-12) — 패블이 직접 도구제작(격상 역할)
기존 자산 결속(맨땅 아님): 작업구분.sh(7레벨 o/t1-t4/admin/s-admin) + 도구화.sh(3단: 작업→레시피→도구→메타) + 음게이트생성.sh(crownyLLM 제작과정=MISS→생성→KB 래칫).
- 크라우니갑옷.sh 업그레이드: 라우터(유형→토큰0도구) + 작업구분(레벨→디스패치) 결속.
- o=로컬 토큰0 / t1=haiku·t2=sonnet·t3=opus·t4=fable / admin=사용자·s-admin=kps이관.
- 모든 MISS 지시에 "★에이전트 작업 후 도구화(도구화.sh or brain.sh learn)로 크라우니코드 저장(래칫)" 명시 — 다음부터 로컬 토큰0.
- 실측 4명령 통과(o→토큰0답, t2/t3→레벨별 지시+도구화).
정직한 상태
- 구조=완성(7레벨 분류·디스패치·도구화지시·훅 라이브). 로컬처리 실효력=토큰0 커버리지 종속(현재 정의/반복룰만, 새 생성은 MISS→지시). 쓸수록 래칫으로 커버리지↑.
- 1단계 = 크라우니코드가 프론트+7레벨 지시. 2단계(크라우니코드+패블 공동 지시생성) + 목표(패블=모니터·최적화·도구제작 전담, 작업 미관여)는 다음 지평 — 패블 라운드트립 설계 필요.
적대검증 + 정량완료 (2026-07-12)
1단계 적대검증 실측(30건 라우팅·25 false-HIT·21 견고성)
- 견고성: 21/21 PASS(행/크래시 0, 순차 최대159ms·21병렬 390ms).
- 원 유형정확도 73%·레벨43%·완전일치30%. false-HIT 7/25=28%(치명).
치명결함 수정(직접 적용·재측정)
- 가짜HIT(크라우니갑옷.sh:28):
grep -q '코어'→grep -q '"목적지":"코어"'. 재측정: 셀코어/아이스크림코어=MISS(정직), 복리=HIT(정확). 가짜HIT 제거.
- 유형 라우팅: 마지막-매치-승리→매치개수 최다. 하드케이스 재측정 12/13=92%(73%→). 코드키워드 버그·수정 추가.
- 레벨 floor(패턴D): MISS인데 레벨=o면 유형별 상향(철학→t3·생성→t1·코드→t2). 재측정 확인.
- 자가치유 컴파일 ctimeout 배선(저위험 방어).
- 갑옷 밖 잔여: crowny_code_gen 분포밖 5/5 가짜HIT(갑옷 미사용, brain.sh만 씀). 메모리 기록.
2단계 정량완료
- 공동지시생성.한선+공동지시.sh+테스트: PASS=10 FAIL=0/10. 6연결어+단일작업 커버, 2회 결정론 동일. 신규 VM함정(최상위 반환 무한루프) 발견·회피.
2차 적대검증 (신규케이스) — 1차 "정량완료" 주장 붕괴
- 신규 라우팅 46.7%(14/30) — 내가 잰 92%는 1차 실패케이스 과적합. 알고리즘(매치개수·레벨floor) 로직은 일반화되나 키워드 커버리지가 자연구어(디버깅·이분류 요청) 미포함, '만들어/짜줘' 범용동사 코드 과매칭.
- 철학 가짜HIT 100%(치명) — 철학엔진 respond가 미일치시 "「Q」음(그래프밖)—확보 이관"(모른다) 반환, 갑옷이 출력존재만 보고 HIT. 진짜 철학질문마저 t3봉쇄. →고침(폴백 grep 제외), 검증: 실철학질문 MISS→t3, 폴백 MISS. 제거됨.
- llm 의미 가짜HIT ~33%(4/6) — 목적지=코어 수정은 포맷만 검증. 질의와 무관한 딴 단어 사전정의를 HIT로. 근본=크라우니LLM word-match, 갑옷 패치 불가 → 주입문구를 "후보·질의일치 확인 후 사용"으로 정직화(제거는 못함, 패블이 검증).
- 셀 경로 죽은분기 — case에 cell) 없음. 분류유형은 항상 t1 지시로(안전하나 셀조회 미배선).
- 회귀 없음 — 매치개수·레벨floor 로직은 30건 결정론 재현. 명시적 케이스(t4/admin/s-admin)는 정상.
정직한 현 상태 (완료 아님)
- 고침(검증): 철학 가짜HIT 제거, llm 정직 캐비엇, 견고성 21/21.
- 미해결(하부도구 개선 필요, 갑옷패치 밖): 라우팅 키워드 커버리지(46.7%), llm 의미매칭(크라우니LLM 개선), 셀 배선.
- ★교훈: 1차 "정량완료"는 성급·과적합. 완료 주장 전 반드시 신규케이스 적대검증(과적합 회피).