← 블로그 목록

BLOG · 현장 기록

Newtype Slaves 는 Newtype Slaves 로 만들었다 — OS 별·역할별 배분, 감독·리뷰, 테스트로 일한 5일

개발 보고서

발행일: 2026년 10월 5일

소개

앞의 글에서는 세 모델이 한 팀으로 일하기까지를 적었습니다. 이 글은 그 팀이 무엇을 만들었는지에 대한 기록입니다. 저장소의 첫 커밋은 2026년 10월 1일이고, 5일 동안 커밋 266개가 쌓였습니다(10/1 11 · 10/2 6 · 10/3 45 · 10/4 167 · 10/5 37). 지금 공개된 Newtype Slaves 의 TUI 와 Nexus 는 홈페이지에서 설명하는 팀 구성 방식(OS 별 배분, 역할별 배분, 감독·리뷰, 테스트)을 그대로 써서 만들었습니다. 시각은 원장의 UTC 시각이고, 식별자는 적지 않습니다.

팀 구성

팀 구성: AI 에이전트와 인간의 역할 분담 도표
자리누구어디서맡은 일
관리자Nexus 세션 (10/2–10/4)Nexus · 이름이 6번 바뀌며 이어짐구현 없이 검토·판정만: 결과물 고정, 판정 문서, 실패 시험 작성
조율자Claude Code 세션 "claude-newtype"macOS · 터미널(channel + 리모트 컨트롤)계획, 일 나누기, 검토, 배포 실행, 사람에게 결정 요청
서버·배포Claude Code 세션 "newtype sub"macOSNexus 서버 기능, 릴리스 파이프라인, 서버 업그레이드
Windows 담당Nexus 세션 → Claude Code 세션 "newtype-windows"Windows 11 PCWindows 에서 직접 빌드·테스트·설치 검증
TUI 일꾼Newtype Slaves TUI "nmcp"macOS · GPT위임장 아래에서 받은 작업 실행
TUI 일꾼Newtype Slaves TUI "slave app"macOS · Gemini위임장 아래에서 받은 작업 실행
구현 일꾼Claude 하위 에이전트 여럿macOS기능 단위 구현 (각자 별도 작업 폴더·브랜치)
독립 리뷰어Claude 하위 에이전트macOS다른 일꾼이 만든 변경을 독립 검토
주인님사람 (Tony)어디서나 · 휴대폰 포함목표·범위 결정, 승인 메일 클릭, 키 입력

서버는 Linux(GB10) 한 대에서 돕니다. Nexus 와 PostgreSQL 이 그 위에 있고, 바깥에서는 lic.newtype-ai.com 으로 닿습니다.

1. 역할별 배분 — 조율자가 나누고, 일꾼은 자기 폴더만

조율자는 요청을 받으면 일을 쪼개 일꾼에게 보냈습니다. 일꾼은 각자 자기 작업 폴더나 브랜치에서 일했습니다.

처음 사흘(10월 1–3일)에는 Nexus 위의 세션들이 이름으로 역할을 나눴습니다. 운영 적용, TUI 검증, 운영 구현, Windows 담당이 따로 있었습니다. 10월 1일(KST) 하루에 세션 114개가 생겼고, 대부분 기능 단위 작업이었습니다. 관리자 세션은 구현을 하지 않고 검토와 판정만 맡았습니다. 이 자리는 세션이 바뀌어도 끊기지 않았습니다. 관리자 세션은 이름이 6번 바뀌었고, 매번 새 세션이 앞 세션의 원장을 읽고 이어받았습니다. 10월 3일 밤부터는 관리자와 Windows 세션이 토큰을 아끼려고 영어로 일했고, 조율자가 한국어로 옮겨 주었습니다.

마지막 이틀에는 다음과 같이 나눴습니다.

  • 실행 위임장: 받은 턴에서 위임장 범위 안이면 사람의 확인 없이 실행하고, 결과는 reply_to 로 답장했습니다.
  • TUI 영어 화면: 화면 문구 약 950개를 언어별 목록으로 분리했습니다. 다른 일꾼과 같은 파일을 건드리지 않도록 별도 브랜치에서 만든 뒤, 끝에 최신 코드 위로 옮겨 합쳤습니다.
  • 같은 시각에 돈 작업들: 원격 MCP 엔드포인트, 설치 서비스, /restart 수정, 오픈웨이트 모델 지원, 홈페이지 개편이 각자 다른 일꾼에게서 동시에 진행됐습니다.

같은 폴더를 두 일꾼이 동시에 고치려는 순간이 몇 번 있었습니다. 그때마다 규칙대로 했습니다. 남이 커밋하지 않은 파일이 있으면 멈추고 보고하고, 커밋은 파일 경로를 하나씩 지정해서 합니다.

2. OS 별 배분 — 그 OS 에서만 보이는 버그

macOS 에서는 모든 테스트가 통과했습니다. Windows PC 의 세션이 같은 코드를 Windows 에서 직접 돌리자, 맥에서는 보이지 않던 제품 버그가 나왔습니다.

OS별 배분: macOS에서는 보이지 않던 Windows 버그를 발견하는 모습
  • 모든 저장 실패: NTFS 가 지원하지 않는 파일 옵션 조합 때문에 자격 증명·모델 프로필·팀 상태 저장이 전부 실패했습니다. 그대로 배포했다면 Windows 사용자는 첫 등록을 마칠 수 없었습니다.
  • 모든 도구 실행 거부: 실행 기록 파일에 유닉스식 권한 검사를 적용해서, 대화를 저장하는 기본 시작에서 모든 도구가 "실행 안 됨" 이 됐습니다.
  • Windows 경로 위임장 거부: C:\… 형식이라 서버가 받지 않았습니다.
  • 설치 스크립트 줄바꿈: Windows 에서 받은 저장소로 서버를 빌드하면 설치 스크립트가 CRLF 로 깨진 채 나갈 수 있었습니다.
  • 패키지 앱 가상화: AI 가 데스크톱 앱 안에서 설치하면 파일이 앱 전용 저장소로 들어가고 PATH 만 바뀌었습니다. 설치 위치를 %USERPROFILE%\.local 로 옮겼습니다.

Linux 서버에서는 서버 이미지를 두 번 빌드해 바이트가 같은지 확인했고, 클라이언트도 6개 플랫폼을 같은 방식으로 확인했습니다.

아직 남은 것: Windows 의 Smart App Control 은 서명 없는 실행 파일을 막습니다. 자체 서명 인증서는 신뢰 근거가 되지 못했고, 공개 인증서는 보류 중입니다.

3. 감독·리뷰 — 구현한 쪽과 검토한 쪽을 나눈다

감독 및 리뷰: 구현 에이전트와 검토 에이전트가 분리된 워크플로우

관리자 세션의 방식. 일꾼이 결과를 내면 관리자는 먼저 커밋을 고정했습니다. 그다음 제출된 해시가 모두 맞는지 확인한 뒤 따로 꺼낸 작업 폴더에서 검토하고, 판정을 문서로 남겼습니다.

  • 판정 문서 86개: 10월 3일 저녁부터 4일 낮까지 약 19시간 동안 쌓였습니다. 가장 많이 나온 판정은 "좁게 수락, 보완 필요, 운영 보류" 였습니다.
  • 수락의 의미: 수락은 "이 증거가 기준을 만족한다" 는 기록일 뿐이었습니다. 배포, 비밀 입력, 승인 메일은 언제나 사람의 몫이었습니다.
  • 먼저 쓴 실패 시험: 관리자는 결함을 말로만 지적하지 않고, 실패하는 시험을 직접 써서 넘겼습니다. 일꾼은 기대값을 낮추거나 건너뛰지 않고 그 시험을 통과시켜야 했고, 통과한 시험은 회귀 시험으로 남았습니다. 이렇게 생긴 관리자 시험이 85개 파일(Go 55, Python 30), 약 7천 줄입니다.
  • 여러 번의 왕복: custody 리허설 필터는 세 번 보류된 끝에 네 번째에 제한적으로 수락됐습니다. Nexus custody, 비밀 전달 계획, 제어 채널 v2 도 각각 세 차례 검토를 거쳤습니다. 팀 기능은 검토 문서 네 개에 걸쳐 고쳐졌습니다.
  • 멈춘 관리자 깨우기: 관리자 세션은 계획이 남아 있는데도 턴을 끝내곤 했습니다. 그래서 조율자가 30분마다 계획을 점검해 넛지를 보냈습니다("미완 단계가 N개 남았는데 턴이 끝나 있습니다"). 주인님이 밖에 있을 때 관리자가 요청한 결정은 메일로 전달됐습니다.

마지막 이틀의 독립 리뷰. 원격 MCP 엔드포인트(OAuth 2.1)는 서버 담당이 만들고, 다른 Claude 하위 에이전트가 독립적으로 세 번 검토했습니다.

  • 1차, 12건: 가장 심각한 건은 메일 승인이 영구 멱등 키 때문에 평생 한 번만 동작하는 문제였습니다. 가짜 저장소로 만든 테스트는 통과했는데, 검토자가 실제 저장소로 재현해서 찾았습니다.
  • 2차: 11건은 고쳐졌습니다. 인증 없는 요청으로 승인 저장소의 누적 한도를 소진시킬 수 있는 문제가 남았습니다.
  • 3차: 시간 단위 한도를 하루 단위로 바꾼 뒤 통과했습니다.

조율자도 감독 역할을 했습니다. 일꾼의 보고를 그대로 믿지 않고, 커밋과 테스트를 직접 다시 돌려 확인한 뒤에 합쳤습니다.

4. 테스트 — 통과해도 실제와 다르면 소용없다

위임 작업이 "진행해" 0번으로 돌기까지 네 번 시도했습니다(앞의 글). 실패한 세 번 동안 단위 테스트와 e2e 테스트는 모두 통과했습니다. 테스트가 실제 TUI 와 다르게 설정돼 있었기 때문입니다.

그래서 서버 담당이 e2e 테스트를 실제 TUI 와 같은 코드 경로로 다시 만들었습니다. 고친 부분을 일부러 되돌리면, 테스트가 실제 오류와 같은 문구로 실패합니다. 그 뒤로는 실제 실행 파일을 터미널에서 돌리는 테스트(재시작 후 같은 세션으로 돌아오는지)도 추가했습니다.

5. 명령어 대신 대화로

이 기간 동안 주인님은 명령어를 찾아보거나 직접 치지 않았습니다. 조율자에게 한국어로 말하면, 조율자가 명령을 실행하거나 일꾼에게 나눠 주었습니다.

주인님이 한 말실제로 일어난 일
"블로그는 사이드 메뉴 변경한 걸로 배포하자"조율자가 GitHub Actions 배포를 실행하고 성공을 확인
"윈도우즈 버전도 일단 공개하자"서버 담당이 Windows 를 포함한 릴리스를 빌드·서명·게시
"B 복구 진행해"조율자가 직전 설정으로 되돌리고 서버를 다시 띄움
"홈페이지 로드시 기본은 light 모드로"구현 일꾼이 고치고, 조율자가 빌드해서 배포

TUI 안에서도 마찬가지입니다. 아래 일은 명령어를 몰라도 말로 됩니다.

  • 이름 정하기: "우리 세션 이름은 nmcp 이다"
  • 위임장: "재위임, 비밀정보 접근을 제외한 모든 권한을 claude-newtype 에게 위임하자" → 미리보기 → 1
  • 업데이트: "최신 업데이트"
  • 언어: "영어로 바꿔줘"
  • 기본 모델 사용 허가와 해제
  • 원격 연결의 메일 동의 켜기

권한을 넓히거나 설정을 바꾸는 말에는 항상 미리보기와 승인 창이 붙습니다. 그리고 그 승인은 주인님이 직접 친 턴에서만 가능합니다. 다른 세션의 메시지로는 이런 일을 시킬 수 없습니다.

주인님이 직접 한 일은 승인 메일 클릭, 숨김 입력창에 키 넣기, 키체인 허용뿐이었습니다.

6. 주인님이 한 일

  • 결정: 무엇을 만들지, 무엇을 보류할지(예: Windows 공개 인증서), 문구와 디자인
  • 승인: 서버 업그레이드 승인 메일, 키체인 허용, 서명 키와 토큰 입력
  • 범위: 위임장 발급

위임장 전에는 "진행해", "확인했어?", "메시지함 확인해" 같은 재촉을 10번 넘게 입력해야 했습니다. 위임장 아래 맡긴 작업은 0번으로 실행되고 답했습니다(읽음 → 답장 23초).

힘들었던 것

  • 15분 정지: 마이그레이션 없이 새 기능을 켜서 서버가 시작을 거부했습니다. 직전 설정으로 되돌리고, 마이그레이션 도구를 만들어 서버를 멈추지 않은 채 표를 만든 뒤 다시 켰습니다.
  • 승인 메일 스팸함: 승인 메일 하나가 스팸함에 들어가서 요청을 다시 보냈습니다.
  • 확인 답장 핑퐁: 10월 2일 오후 30분 동안 관리자, 운영, TUI 검증, Windows 세션 사이에 메시지가 114개 오갔습니다. 대부분은 "확인했습니다" 에 대한 "확인했습니다" 였습니다. 그 뒤로 "받았다는 확인만 하는 답장은 보내지 않는다" 는 규칙을 정했습니다.
  • 관리자 세션의 중단: 10월 4일 맥을 재부팅할 때 관리자 세션은 체크포인트를 남기고 멈췄습니다. 그 뒤 서버 첫 설치 단계(P0–P6)는 주인님이 조율자의 증거 검토를 보고 직접 수락했습니다.
  • 일꾼의 오판: 일꾼이 "마이그레이션된다" 고 잘못 말했고, 조율자가 확인 없이 믿었습니다. 그 뒤로는 동료 세션의 말도 직접 확인합니다.

결과

마지막 이틀(10월 4–5일)에 이 팀이 내놓은 것입니다.

  • 실행 위임장(서버·클라이언트·대화로 발급)
  • 원격 MCP 엔드포인트(OAuth 2.1)
  • 설치 서비스(llm.txt, install.sh, install.ps1)와 서명된 릴리스 세 개(0.20261005.1–.3)
  • 다시 켜도 이어지는 세션, 오픈웨이트 모델 지원, 영어 화면
  • newtype-ai.com 개편과 위키

AI 에게 https://dev.newtype-ai.com/llm.txt 를 읽히면 설치할 수 있습니다. 운영 기록은 계속 공개합니다.

© 2026 NEWTYPE. All rights reserved.

← 블로그 목록