CI CHEESU IN / portfolio
online v2026.05 00:00:00 KST
Works 목록
P-04 · AI · DevOps 자동화

ADO Claude 자동화 파이프라인

Azure DevOps 작업 픽업부터 Draft PR 생성까지 전 과정을 Claude Code 멀티에이전트로 자동화한 워크플로우 키트.

SHOWCASE Claude Code · Python · Azure DevOps cheesu/ado-claude-workflow
/ 01Stack
Claude CodePythonAzure DevOpsMulti-AgentPreToolUse Hook
/ 02 아키텍처 개요
/ 03문제 / 배경

ADO 스프린트마다 반복되는 수작업 — 작업 픽업, 브랜치 생성, 코드 구현, PR 제출까지 전부 사람이 직접 수행. Claude Code를 단순 사용하면 AI가 잘못된 파일을 수정하거나 승인 없이 커밋하는 위험도 존재했습니다.

/ 04구현 방식

Claude Code 기반 멀티에이전트 파이프라인을 직접 설계했습니다. 작업 복잡도에 따라 LIGHT/STANDARD 경로로 분기하고, 4개의 Python 훅으로 AI 행동을 명령 레벨에서 통제합니다. 2단계 TTL 승인 토큰으로 각 중요 단계에서 사용자 명시적 승인을 요구합니다.

/ 05설계 결정 & 트레이드오프

왜 단일 거대 프롬프트가 아니라 멀티에이전트로 분리했나

선택

계획·구현·리뷰를 한 컨텍스트에 섞으면 컨텍스트가 오염되고 자기검증이 누락됩니다. Planner / Implementer / Reviewer로 역할을 나누면 각 단계의 입출력 경계가 명확해지고, 리뷰어가 구현자의 맹점을 독립적으로 잡아냅니다.

트레이드오프

에이전트 간 핸드오프 비용과 컨텍스트 재로딩 토큰이 늘어납니다. handoff.md 릴레이 패턴과 Serena 기반 코드 읽기로 이 오버헤드를 상쇄했습니다.

왜 Opus와 Sonnet을 섞어 썼나

선택

결과 품질이 좌우되는 추론·리뷰 단계(Planner / Reviewer)에만 Opus를 배치하고, 반복적인 구현 작업은 비용이 낮은 Sonnet에 맡겼습니다. 품질이 필요한 곳에만 비싼 모델을 쓰는 구조입니다.

트레이드오프

모델 혼용으로 단계별 출력 포맷을 맞춰야 하고 파이프라인 설정이 복잡해집니다. LIGHT/STANDARD 분기로 단순 작업에서는 Opus 단계를 아예 건너뛰어 비용을 추가로 줄였습니다.

왜 프롬프트 가이드 대신 훅·토큰으로 강제했나

선택

프롬프트 지시만으로는 AI가 금지 경로를 편집하거나 승인 없이 커밋하는 사고를 막을 수 없습니다. PreToolUse 훅과 TTL 승인 토큰으로 명령이 실행되기 전 단계에서 물리적으로 차단했습니다.

트레이드오프

사용자 승인 단계가 늘어 완전 자동화의 매끄러움은 일부 포기했습니다. 대신 실제 프로덕션 레포에 안심하고 적용할 수 있는 안전성을 얻었습니다.

/ 06기술 하이라이트
/ A

멀티에이전트 역할 분리

Planner(Opus) / Implementer(Sonnet) / Reviewer(Opus) 3단 구조. 추론과 리뷰는 고사양 Opus, 반복 구현은 저비용 Sonnet으로 비용 최적화. LIGHT 모드에서는 UI 전용 작업 시 Planner/Reviewer를 생략해 불필요한 Opus 호출을 방지합니다.

/ B

4개 Python 훅 보안 게이트

PreToolUse/PostToolUse 훅으로 금지 경로 편집 차단(protect_paths), 파괴적 git 명령 차단(guard_shell), 미승인 ADO 상태 변경 차단(guard_ado), 편집 후 검증 리마인더 주입(after_edit_ctx). AI 행동을 물리적으로 제어합니다.

/ C

2단계 TTL 승인 토큰

Start Token(브랜치 생성·ADO 상태 변경 권한, TTL 1h) → Finish Token(커밋·Push·PR 생성 권한, TTL 2h) 순차 발급. 각 단계에서 사용자가 명시적으로 승인해야 다음 단계로 진행합니다.

/ D

handoff.md 릴레이 패턴

에이전트 간 컨텍스트를 파일(.claude/state/handoff.md)로 전달. 오케스트레이터만 Write 권한을 가지며, 서브에이전트는 Read만 가능. 에이전트 경계를 명확히 구분합니다.

/ E

토큰 소비량 분석 CLI

에이전트별 JSONL 세션 파일을 파싱해 단계별(explore/implement/verify) 토큰 소비량, API 호출 수, 캐시 read/create 토큰을 집계합니다. Serena MCP 도입으로 코드 읽기 토큰을 8~9배 절감(실측)했으며, Planner/Reviewer는 Opus, Implementer는 Sonnet으로 역할을 분리해 전체 세션 비용도 함께 최적화했습니다.