AI에게 병렬적으로 작업시켜 생산성을 높이는 장점은 누리면서도, 무엇을 할지는 스스로 결정하고, 완성된 것은 자신이 읽어본 후에 통과시키는 형태로 만들고 싶어서, cmux(AI 에이전트를 병렬로 구동하는 터미널)와 Claude Code를 이용해 워크플로우를 구성했습니다.
특별한 것은 없지만, 본 기사에서는 그 메커니즘을 소개합니다.
전체 개요
시스템의 핵심은 터미널 탭을 '지휘탑(司令塔)'과 '워커(ワーカー)'로 완전히 분리하는 것입니다. 단일 Claude Code에 모든 것을 맡기면 컨텍스트가 뒤섞여 정확도가 떨어지므로, 물리적으로 두뇌를 분리합니다.
- 지휘탑 탭: 시스템 전체를 관통하는 문서의 '원본' 리포지토리를 열어두는 탭. 자신(인간)은 기본적으로 여기에 상주합니다 -
- 워커 탭: 실제 코드 변경을 수행하는 탭. 1태스크 = 1 worktree = 1탭 원칙으로, Claude Code를 독립적으로 구동합니다
지휘탑에는 자신의 옆에서 교통정리만 하는 Claude 세션을 하나 두고 있습니다.
司令塔モデルの図。司令塔の中に自分と交通整理役の Claude がいて、どちらもコードは書かない。そこから権限境界つきの指示書でワーカータブ×3を動かす。ワーカーは実装と自己レビューを通してから draft PR を作り、完了・停止時に司令塔へ1行報告する。人間は差分を読んで動作確認してから自分でマージする
워커 탭에서의 작업이 완료되었거나 인간의 판단(승인 또는 에러 대응)이 필요할 때는, 지휘탑 탭에 있는 자신에게 한 줄로 보고가 오도록 운영하고 있습니다.
워크플로우
오늘 하루 할 태스크를 지휘탑 탭에서 선택하고, 다음 흐름으로 병렬 구현을 진행합니다. 반복하는 절차는 매번 지시하는 것을 그만두고 스킬로 만들었습니다.
1. 【인간】 설계 및 지시서 작성
AI에게 모든 것을 맡기는 것이 아니라, 무엇을 목표로 할지(완료 조건)의 판단은 인간이 합니다. 지휘탑 탭에서 명확한 지시서를 작성하여 워커에 전달합니다.
그렇다고 해서 사양을 처음부터 스스로 작성하는 것은 아닙니다. 무엇을 하고 싶은지라는 목표를 명확히 하여 전달하고, 나머지는 AI에게 설계하도록 합니다. 그것을 그대로 승인하는 것이 아니라, 왜 그러한 구현 플랜을 세웠는지에 대한 근거를 현재 코드 상태와 공식 문서 및 최신 베스트 프랙티스를 끌어와 설명하게 하고, 이해한 후에 승인합니다. '왠지 좋아 보여서' 승인하는 것이 아니라, 근거를 이해한 후에 승인하는 형태입니다. 결정된 것은 issue에 작성하고 그것을 사양의 원본으로 삼습니다.
2. 【AI】 1태스크 1탭에서의 병렬 구현
워커 탭의 Claude Code에 지시를 던지고, draft PR(임시 풀 리퀘스트) 생성까지 자율 구동시킵니다. AI가 자율 구동하는 동안 저는 다른 작업을 합니다.
draftPR 완료 보고는 리뷰 스킬을 거쳐서, 수정이 끝난 후에 하도록 시키고 있습니다.
3. 【인간】 PR 확인 및 병합(Merge)
AI가 draft PR을 생성하면, 최종적인 확인과 병합은 반드시 자신의 손으로 진행합니다.
확인은 두 가지입니다. 차이점의 이해와 동작 확인입니다.
차이점을 읽는 방식에서 정한 것은 세부 코드 작성 방식은 보지 않는다는 것입니다. 무엇을 하고 있는지를 이해하도록 합니다.
동작 확인은, 실제로 작동하는 것을 자신이 확인한 후에 병합합니다. 이곳은 앞으로 AI에게 맡기고 싶은 부분이지만, 현재는 자신의 손으로 진행하고 있습니다.
요약
현재는 첫 구현 전의 설계 부분과 최종적인 병합 전 확인 작업은 자신에게 남겨두고, 작업만 AI에게 병렬로 맡기는 이 워크플로우를 진행하고 있습니다.
AI에게 코드를 위임하기에 조금이라도 불안함을 느끼는 분들에게 참고가 되었으면 합니다.
Discussion