1. 호스트 · 컨테이너
외부 노출 표면(꽁꽁이 봇·게이트웨이·대시보드)은 Colima(Docker) 안에서만 동작합니다. 호스트의 메모리 디렉터리·인증 정보는 컨테이너에 마운트하지 않습니다.
관리자의 컨텍스트를 축적하는 KB와 24시간 실행 런타임이 한 호스트 위에 같이 살고 있습니다. 외부 창구는 권한이 격리된 봇이 받고, 내부 작업은 풀 권한 타타가 받습니다.
한 대의 mac mini가 KB·런타임·외부 봇·주기 업무를 같이 호스팅합니다. 별도 클라우드 워커 없이, 호스트와 컨테이너만으로 분리합니다.
외부 노출 표면(꽁꽁이 봇·게이트웨이·대시보드)은 Colima(Docker) 안에서만 동작합니다. 호스트의 메모리 디렉터리·인증 정보는 컨테이너에 마운트하지 않습니다.
Hermes 스택·호스트 브리지·주기 업무 모두 launchd LaunchAgent로 부팅 시 자동 기동. Colima 자체도 brew services로 자동 시작합니다.
kisusu.dev는 단일 Next.js 앱(Vercel)을 서브도메인 라우팅으로 분기합니다. Cloudflare DNS는 Vercel 통합으로 자동 등록·SSL 발급.
내부 권한이 필요한 타타는 Claude Code(Max OAuth). 외부 응대용 꽁꽁이는 gpt-5.5(OpenAI Codex OAuth). 키와 모델 자체가 분리되어 있습니다.
타타는 관리자의 프로필·취향·진행 중 프로젝트·피드백·레퍼런스를 누적하는 KB이자, 그 컨텍스트로 실제 작업을 수행하는 런타임입니다.
디스코드 등 외부 채널로 들어오는 모든 입력은 꽁꽁이가 1차로 받습니다. KB가 필요한 질의만 권한이 제한된 타타로 escalate되며, 그때도 응답 단계에서 한 번 더 sanitize됩니다.
Hermes 위에서 동작하는 Discord 봇. 가벼운 톤·외부 응대 전담. KB는 직접 못 보고, 필요할 때만 사수인 타타에게 escalate합니다.
외부 경로로 호출된 타타는 Read·Grep·Glob과 화이트리스트 read-only Bash만 허용. WebFetch·Edit·Write·위험 Bash 차단.
꽁꽁이를 거쳐 나가는 응답은 PII·토큰·내부 절대 경로를 자체 필터링. 외부 신뢰 단계가 낮을수록 더 강하게.
T0(관리자 본인)만 KB까지 닿는 escalate 권한. T1은 봇과의 일반 대화까지만. 디스코드 멘션이 곧 라우팅이고 별도 프로토콜은 두지 않습니다.
Hermes는 Colima(Docker) 안. 호스트의 ~/.claude·인증 정보는 컨테이너에 절대 마운트하지 않음.
호스트 브리지는 TCP localhost로 노출. bearer token + admin user ID 이중 검증을 통과해야 진입.
외부 경로 타타는 read-only settings로 부팅. 액션 도구(Edit/Write/위험 Bash·WebFetch) 차단.
응답 단계에서 PII·시크릿·내부 경로 필터링. 권한 격리 위에 정보 격리를 한 겹 더.
launchd가 매일 정해진 시각에 잡을 깨우고, claude-scheduler 안의 잡이 Claude Code(-p)로 실제 작업을 돌린 뒤 디스코드 채널로 결과를 떨어뜨립니다.
정시 잡과 별개로, 임의 서브셋·임의 cap으로 collect → Whiner → 디스코드 발송을 한 번에 도는 슬래시 스킬. 정시 풀과 격리된 alias 풀에 결과를 쓰기 때문에 평상 운영을 오염시키지 않습니다.
외부에서 들어오는 입력, 타타에서 나가는 출력, 그리고 정시 잡이 떨어뜨리는 결과까지 — 같은 호스트 안에서 권한과 채널만 다르게 라우팅됩니다.
Inbound — 외부 입력은 권한 격리를 통과해서만 KB에 닿습니다
Outbound — 타타가 능동 알림을 보내는 경로
Cron — launchd가 깨우는 정시 잡
사람이 같은 정보를 두 번 설명하지 않아도 되도록, 같은 작업을 두 번 시키지 않아도 되도록 — 컨텍스트는 KB로 누적되고, 실행은 런타임이 알아서 합니다.