크라우니에이전트 ↔ book.crowny.org 통합 (v0.4)
개요
같은 날(2026-05-27) v0.3에서 진입점을 완전 한선씨로 옮긴 직후, 책 한 권을 실제로 읽고-후원하고-새로 쓰는 사용자 경험까지 끝까지 연결했다. 세 트랙 — 오케스트레이터 맵 통일 / Ti권 리서치 번들 8개 / book.crowny.org 통합 — 을 병렬로 진행하고, 운영 환경(crowny-data/bin/market.toau 한선씨 컴파일본)이 server.js 변경을 즉시 반영하지 못하는 한계를 우회하기 위해 정적 HTML 빌더를 한선씨로 작성해 즉시 가시화했다.
무엇을 했는지
- 오케스트레이터.한선 맵 API 통일 — 챕터처리·전체처리·책시작 함수의
맵꺼내/맵넣어 호출을 모두 JSON값/JSON설정으로 교체. v0.3에서 발견한 "한선씨 맵 2종" 함정을 도구 전반에 적용.
- 『I love crowny! Ti』 리서치 번들 8개 작성 — 공통-1~4 + Ti 4챕터(해보기/결정하기/생각하기/왜). 총 719줄, 각 80~150줄, 6섹션 구조(A 핵심사실 / B 비유 후보 / C 권별 강조점 / D 충돌 주의 / E 인용 출처). Agent 위임으로 병렬 처리.
- 책빌더.한선 신규 작성 — 데이터/프로젝트·챕터·자료 → 정적 HTML 9개 빌드. 마크다운→HTML 변환, 챕터별 후원 버튼(MOM 3·9·27·81), 목차 페이지 자동 생성. 626KB toau 컴파일.
- server.js (crowny-market) 5개 라우트 추가
-
GET /api/book/read/<슬러그> — 책+챕터 목록 (메타+읽기가능 여부)
-
GET /api/book/read/<슬러그>/<번호> — 챕터 본문 (초안 우선, 자료 fallback)
-
POST /api/book/donate — 챕터/책 단위 맘(MOM)코인 후원 (market.json
bookDonations 누적)
-
GET /api/book/donate?slug=… — 책별 후원 합계 + 최근 10건
-
POST /api/book/agent/create — 새 책 + 챕터 일괄 등록 (책쓰기 API)
-
GET /api/book/agent/projects — crowny-agent 전체 책 목록
-
GET /api/book/agent/write — 책쓰기 정적 폼 페이지 (HTML+JS)
- book-agent.한선 동반 파일 — server.js 라우트의 순수 로직을 한선씨로 표현 (이행 보조, 컴파일 검증 완료)
결과물
| 영역 | 위치 | 비고 |
|---|
| 한선씨 코어 | /Users/ef/crowny-agent/메인.한선 (134줄) | CLI 진입점 |
| 데이터 모델 | /Users/ef/crowny-agent/책프로젝트.한선 (88줄) | JSON 호환 맵 |
| 오케스트레이션 | /Users/ef/crowny-agent/오케스트레이터.한선 (110줄) | 맵 API 통일 |
| 정적 빌더 | /Users/ef/crowny-agent/책빌더.한선 (220줄) | 마크다운→HTML |
| Ti권 리서치 8개 | /Users/ef/crowny-agent/data/자료/ilcrowny-ti_{1..8}.md | 총 41KB |
| Ti권 정적 사이트 | /Users/ef/crowny-agent/웹/ilcrowny-ti/ | 9 HTML, 66KB |
| 마켓 라우트 | /Users/ef/crowny-market/server.js (line 2630~2775) | 5개 신규 라우트 |
| 마켓 동반 한선씨 | /Users/ef/crowny-market/libs/book-agent.한선 | 컴파일 검증 |
사용
즉시 읽기 (정적 사이트)
file:///Users/ef/crowny-agent/웹/ilcrowny-ti/index.html
8챕터 목차 → 챕터 클릭 → 리서치 자료 표시 → MOM 후원 버튼.
book.crowny.org 활성 후 (한선씨 마켓 재빌드 필요)
GET https://book.crowny.org/api/book/read/ilcrowny-ti
GET https://book.crowny.org/api/book/read/ilcrowny-ti/1
POST https://book.crowny.org/api/book/donate
body: { slug, chap, userId, amount, currency: "MOM", message }
GET https://book.crowny.org/api/book/agent/write ← 새 책쓰기 폼
한선씨 CLI (책 등록 + 빌드)
bashVM=/Users/ef/CrownyOS/crownyc/crownyc
cd /Users/ef/crowny-agent
echo "새책|<슬러그>|<제목>|<저자>|<개요>" | $VM run 메인.toau
echo "챕터추가|<슬러그>|<제목>|<요지>" | $VM run 메인.toau
echo "빌드|<슬러그>" | $VM run 책빌더.toau
한선씨 비율 (v0.4 시점)
| 영역 | 한선씨 | 보조 |
|---|
| CLI 진입점 | 메인.한선 ✓ | — |
| 데이터 모델 | 책프로젝트.한선 ✓ | — |
| 오케스트레이션 | 오케스트레이터.한선 ✓ | — |
| 정적 빌드 | 책빌더.한선 ✓ | — |
| 마켓 통합 동반 | book-agent.한선 ✓ | server.js (운영 라우트) |
| Gemini HTTPS | gemini-api.한선 ✓ | curl 1회 |
크라우니에이전트 핵심 로직 100% 한선씨. 마켓 통합은 (a) 한선씨 동반 + (b) Node 라우트 듀얼.
운영 현황
- 9733 포트 점유:
crownyc run /Users/ef/crowny-data/bin/market.toau (한선씨 컴파일본)
- server.js 변경분은 마켓 한선씨 재빌드 시 반영됨 (별도 세션 담당)
- 그 사이에는 정적 HTML로 즉시 사용 가능 (URL 위 참조)
잔여 이슈
- Gemini API 실호출 —
GEMINI_API_KEY 미설정. 환경변수 설정 후 gemini-api.한선 단독 호출 1회로 검증 가능
- 마켓 한선씨 재빌드 — server.js 변경분이 운영에 반영되려면 별도 세션이 재빌드 필요
- 챕터 본문 실제 집필 — 현재 8챕터 모두 리서치 자료가 본문에 들어감. Gemini 대필 거치면 산문으로 교체됨
- 다른 권 (Om/Ta/Um) — 같은 패턴으로 등록 가능. 슬러그
ilcrowny-om/ta/um
메모리 등록
feedback_hanseon_two_map_types.md (v0.3 등록) — 이번 세션에서 도구 전반에 적용 확인. 신규 패턴 학습:
JSON 호환 맵으로 데이터 모델 만들기 (책프로젝트.한선)
마크다운→HTML 변환 (한선씨) (책빌더.한선)
정적 사이트 빌더 패턴 (책빌더.한선)