크라우니에이전트 — 완전 한선씨화 (v0.3)
개요
『I love crowny!』 4부작 멀티 LLM 협업 책쓰기 도구. 직전 세션은 bash CLI + Python/Node 래퍼로 동작했으나 "완전 한선씨, 완전 크라우니 기계어" 원칙에 어긋났다. 이번 세션에서 진입점 자체를 한선씨로 옮겨 한선씨 → TOAU 바이트코드 한 줄로 실행되도록 통합했다.
무엇을 했는지
- 메인.한선 신규 작성 — bash
crowny-agent대체. stdin 한 줄 디스패치, 파이프(|) 구분자로 한국어 토큰화 회피. - 책프로젝트.한선 JSON 호환 맵으로 재작성. 직전 버전은 내장
맵생성/맵넣어(해시맵 객체)를 썼는데,JSON.한선의JSON생성()이[키1, 값1, ...]배열 기반 맵만 직렬화해서 빈[]를 반환하던 버그를 근본 해결. - 5개 한선씨 파일 컴파일 검증
책프로젝트.한선 203,476 byte
- 오케스트레이터.한선 400,848 byte
- LLM브릿지.한선 200,816 byte
- 웹서버.한선 235,200 byte
- 스크립트/gemini-api.한선 144,032 byte
- 메인.한선 496,972 byte (가장 큰 진입점)
- 엔드투엔드 검증 — 한선씨 한 줄로 새책 → 챕터추가 8회 → 보기 → JSON 저장 전부 동작. UTF-8 한글 키/값 정상 직렬화.
- 『I love crowny! Ti』 책 등록 — 슬러그
ilcrowny-ti, 8챕터 (공통-1~4 + Ti 4챕터: 해보기/결정하기/생각하기/왜).
검증된 명령 (완전 한선씨)
bashVM=/Users/ef/CrownyOS/crownyc/crownyc
cd /Users/ef/crowny-agent
echo "새책|<슬러그>|<제목>|<저자>|<개요>" | $VM run 메인.toau
echo "챕터추가|<슬러그>|<제목>|<요지>" | $VM run 메인.toau
echo "보기|<슬러그>" | $VM run 메인.toau
echo "가격" | $VM run 메인.toau
echo "도움말" | $VM run 메인.toau
bash/python/node 진입점 호출이 사라졌다. VM이 TOAU 바이트코드 직접 실행, 한선씨 안에서 JSON 생성·파일 IO·문자열 분리·디스패치까지 처리.
한선씨 비율
| 영역 | 한선씨 | 보조 (외부 의존) |
|---|---|---|
| CLI 진입점 | 메인.한선 ✓ | — |
| 데이터 모델 | 책프로젝트.한선 ✓ | — |
| 오케스트레이션 | 오케스트레이터.한선 ✓ | — |
| LLM 추상화 | LLM브릿지.한선 ✓ | — |
| Gemini HTTPS | 스크립트/gemini-api.한선 ✓ | curl(체계 호출 1회) |
| 웹서버 | 웹서버.한선 ✓ | server.js(이행 잔존) |
관련 파일
| 경로 | 줄수 | 역할 |
|---|---|---|
/Users/ef/crowny-agent/메인.한선 | 134 | stdin 명령 디스패치 진입점 |
/Users/ef/crowny-agent/책프로젝트.한선 | 88 | 프로젝트/챕터 데이터 모델 (JSON 호환 맵) |
/Users/ef/crowny-agent/오케스트레이터.한선 | 100 | 책 한 권 처리 흐름 (T→O→A) |
/Users/ef/crowny-agent/LLM브릿지.한선 | 89 | Claude/Gemini 추상화 |
/Users/ef/crowny-agent/웹서버.한선 | 59 | HTTP UI 한선씨 표현 (이행) |
/Users/ef/crowny-agent/스크립트/gemini-api.한선 | 83 | curl 직접 HTTPS 호출 |
/Users/ef/crowny-agent/data/프로젝트/ilcrowny-ti.json | — | Ti 권 메타 (8챕터) |
/Users/ef/crowny-agent/data/챕터/ilcrowny-ti_*.json | 8 | 챕터 메타 |
핵심 발견 (메모리 등록 대상)
한선씨 맵 두 종류:
- 내장
맵생성() / 맵넣어 / 맵꺼내→ 해시맵 객체 (불투명, JSON 직렬화 불가) - JSON.한선 v1 API
[] / JSON설정 / JSON값→ 배열 기반 맵[키1, 값1, ...](JSON생성 호환)
JSON생성()이 빈 [] 반환하면 내장 해시맵을 잘못 쓴 것.잔여 이슈
- Gemini API 실호출 검증 —
GEMINI_API_KEY환경변수 +gemini-api.한선직접 호출 테스트 - 오케스트레이터 맵 API 통일 —
오케스트레이터.한선이 아직 내장맵꺼내사용 중. 챕터처리 호출 시 같은 문제 재발할 수 있음 - 공통-1~4 + Ti 4챕터 리서치 번들 작성 — 직전 세션이 8개 마크다운으로 작성한 자료가
/Users/ef/크라우니에이전트/리서치/에 있음. crowny-agent로 옮기거나 통합 필요 - 웹서버.한선 실서버화 — 현재 server.js가 9930번 포트 담당. 한선씨
웹서버v2.한선안정 후 풀이행 - 편집자 합본 빌드 — 권별 챕터 마크다운을 하나로 묶는 한선씨 함수 추가
이번 세션 비중
크라우니코드 비중 — 클로드 생성 100% (전부 신규 한선씨, 즉시 학습 대상):
메인.한선디스패치 패턴책프로젝트.한선JSON 호환 맵 패턴- 한국어 파이프 구분자 토큰화 (
분리/트림)
다음 한 줄
bashexport GEMINI_API_KEY="AIza..."
cd /Users/ef/crowny-agent
echo "보기|ilcrowny-ti" | /Users/ef/CrownyOS/crownyc/crownyc run 메인.toau