본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 27. 22:05

Cadence v8.4: Claude가 작성하고 Codex가 검토하며 Bugbot이 분류하는 멀티 모델 코딩 하네스

요약

Cadence v8.4는 SDLC의 각 단계마다 서로 다른 LLM을 배치하는 멀티 모델 코딩 하네스입니다. 단일 모델이 작성과 검토를 모두 수행할 때 발생하는 인지적 사각지대를 해결하기 위해 모델 간 역할 분담을 오케스트레이션합니다.

핵심 포인트

  • SDLC 단계별로 최적화된 서로 다른 모델(Claude, Codex 등) 활용
  • 단일 모델 사용 시 발생하는 동일한 오류 패턴 및 과잉 확신 문제 해결
  • YAML 파일을 통한 간편한 멀티 모델 오케스트레이션 지원
  • 작성, 검토, 버그 분류 등 역할 분리를 통한 코드 품질 향상

Claude가 작성합니다. Codex가 검토합니다. Bugbot이 분류합니다. Gemini는 의회에 앉아 있습니다.

Cadence는 오픈 소스 코딩 하네스 (coding harness)입니다. Devin, Cursor agents, Aider, Goose와 같은 카테고리에 속하지만, 한 가지 구조적인 베팅을 하고 있습니다. 바로 서로 다른 SDLC (Software Development Life Cycle, 소프트웨어 개발 생명 주기) 역할이 서로 다른 모델에서 실행된다는 점입니다. 코드를 작성하는 모델은 코드를 검토하는 모델이 아니며, 두 모델 모두 버그 리포트를 분류하는 모델도 아닙니다. 각 단계별로 모델을 직접 선택할 수 있으며, 오케스트레이션 (orchestration)은 편집 가능한 YAML 파일 하나로 이루어집니다.

이번 주에 v8.4.0을 출시했습니다. 왜 멀티 모델 (multi-model) 관점이 중요한지, 그리고 이 하네스가 실제로 무엇을 하는지 설명하겠습니다.

단일 모델의 문제점

대부분의 코딩 에이전트 (well-funded된 에이전트들을 포함하여)는 전체 SDLC를 하나의 모델로 실행합니다. 동일한 가중치 (weights)가 diff를 작성하고, diff를 검토하며, 버그 리포트가 실제인지 여부를 결정합니다. 이는 주니어 엔지니어가 자신의 PR (Pull Request)을 스스로 셀프 리뷰하게 하고, 어떤 Sentry 알림을 무시할지 직접 결정하게 하는 것과 같습니다.

미묘하게 잘못된 코드를 작성한 모델은 통계적으로 그 코드의 버그를 잡아내기에 가장 좋지 않은 모델입니다. 그들은 동일한 사각지대를 공유하기 때문입니다. 동일한 fencepost error (경계값 오류), 동일하게 선호하는 안티 패턴 (anti-patterns), 그리고 자신이 틀린 부분에 대한 동일한 과잉 확신을 가집니다. Tier-1 인간 팀은 이런 식으로 리뷰하지 않습니다. 작성자가 글을 씁니다. 다른 누군가가 리뷰합니다. 제3자가 운영 환경의 장애를 분류합니다. 서로 다른 사람, 서로 다른 인지적 프레임 (cognitive frames), 서로 다른 인센티브가 존재합니다.

Cadence는 LLM (Large Language Model)을 동일한 방식으로 다룹니다. 작성자와 검토자는 서로 다른 모델이어야 하며, 이상적으로는 서로 다른 제품군(families)에 속하고, 서로 다른 데이터 믹스 (data mixes)로 학습된 모델이어야 합니다.

Cadence가 하는 일

Cadence는 재배선 가능한 기술 (rewireable skills)의 파이프라인입니다:

brainstorm -> spec -> plan -> implement -> migrate -> validate -> PR -> review -> bugbot -> merge

각 단계는 하나의 기술입니다: 마크다운 (markdown) 계약서와 약간의 하네스 글루 (harness glue)로 구성됩니다. 각 단계는 서로 다른 제공업체 (provider)로 라우팅될 수 있습니다. 제가 실행하는 기본 설정은 다음과 같습니다:

  • brainstorm / spec — 구조화된 장문 추론 (longform reasoning)을 위한 Claude (Anthropic)
  • implement — 작문 단계 (writing pass)를 위한 Claude Sonnet
  • review — diff에 대한 적대적 검토 (adversarial pass)를 위한 GPT-5.5 / Codex
  • council (선택 사항) — 아키텍처 결정에 대한 타이 브레이크 (tie-breaks)를 위해 투입되는 Gemini
  • bugbot triage — PR 상의 Cursor bugbot을 실행한 후, 모델 단계를 거쳐 각 발견 사항을 분류 (실제 버그 / 오탐 (false positive) / 낮은 가치)하고, 이유와 함께 수정하거나 기각함

멀티 모델 설정이 잡아내는 흥미로운 실패 모드 (failure modes): Claude가 테스트를 과도하게 모킹 (over-mocks)하면 Codex가 이를 잡아냅니다. Codex가 가상의 레이스 컨디션 (race conditions)에 과도하게 집착하면 Claude가 오탐 (false positive)임을 표시합니다. Gemini가 스키마 결정에 대해 두 모델 모두와 의견이 다를 경우, council이 이를 해결합니다. 이 중 마법 같은 것은 없으며, 가중치 (weights)를 공유하지 않는 모델들이 독립적으로 세 번의 패스 (passes)를 수행하는 것뿐입니다.

위험 계층별 검토 깊이 (Risk-tiered review depth)

모든 명세 (spec)는 프론트매터 (frontmatter)에 위험 계층 (risk tier)을 선언합니다. 하네스 (harness)는 이를 읽고 머지 (merge) 전에 실행할 검토 패스 (review passes) 횟수를 선택합니다:

  • Low — 1회 검토 패스
  • Medium — 2회 패스
  • High — 3회 패스 및 council 참여

이것은 정직한 엔지니어링 ROI (투자 대비 효율)입니다. 오타 수정에 GPT-5.5의 세 번의 라운드가 필요하지는 않습니다. 하지만 운영 테이블 (production tables)을 건드리는 마이그레이션에는 필요합니다.

동시 멀티-PR 디스패치 (Concurrent multi-PR dispatch)

v7.11.0에는 워크트리 격리 (worktree isolation) 기능이 탑재되었습니다. N개의 명세를 병렬로 실행할 수 있으며, 각 명세는 자체적인 git worktree와 자체적인 Cadence 세션에서 실행되어 각각의 PR을 생성합니다. 저는 단 한 번의 작업 세션 동안 교차 오염 (cross-contamination) 없이 4개의 PR을 동시에 배포했습니다. 하네스가 워크트리 생명주기 (lifecycle)를 관리하므로, 사용자는 명세를 지정하기만 하면 됩니다.

16개 이상의 제공업체 (providers)

제공업체 어댑터 계층 (provider adapter layer)은 다음을 지원합니다: Anthropic, OpenAI, Google (Gemini), Groq, Ollama, AWS Bedrock, Azure OpenAI, Cohere, Mistral, DeepSeek, Together, Fireworks, Perplexity, OpenRouter, xAI Grok, 그리고 사용자가 지정하는 모든 OpenAI 호환 엔드포인트 (endpoint). 모든 단계는 프로필 (profile)에서 재정의할 수 있습니다:

.cadence/profile.yaml

phases:
implement:
provider: anthropic
model: claude-opus-4-7
review:
provider: openai
model: gpt-5.5

council:
provider: google
model: gemini-3.5-pro
bugbot_triage:
provider: anthropic
model: claude-haiku-4-7

스킬 (skill) 코드를 건드리지 않고도 제공자 (provider)를 교체할 수 있습니다. 내일 새로운 모델이 출시된다면, 단 한 줄만 변경하면 됩니다.

증거 (Receipts)

Cadence는 스스로를 배포합니다. 대부분의 v7.x 버전과 모든 v8.x 버전은 자체 파이프라인 (pipeline)을 거쳤습니다: Cadence가 명세 (spec)를 작성하고, Cadence가 구현하며, Cadence가 검토하고, Cadence가 Bugbot으로 분류(triage)하며, Cadence가 병합 (merge)했습니다. 병합된 PR (pull requests)은 여기서 확인할 수 있습니다:

https://github.com/axledbetter/cadence/pulls?q=is%3Apr+is%3Amerged

도그푸딩 (dogfooding)은 테스트 스위트 (test suite)입니다.
배포 접점 (distribution surface)으로서의 Claude Code.

한 가지 정리해 둘 사항이 있습니다: Cadence의 스킬 (skills)은 배포 접점 중 하나인 Anthropic의 Claude Code CLI를 통해 로드됩니다. 이 하네스 (harness)에 관심을 갖기 위해 반드시 Claude Code 사용자일 필요는 없습니다. 오케스트레이션 (orchestration), 멀티 모델 라우팅 (multi-model routing), 워크트리 디스패치 (worktree dispatch), Bugbot 분류 (triage)는 모두 제공자 중립적 (provider-agnostic)입니다. Claude Code는 스킬 로더 (skill loader)를 위한 편리한 호스트 역할을 할 뿐입니다. 그것이 관계의 전부입니다.

사용해 보기

npm install -g @delegance/cadence@latest
cadence autopilot examples/specs/node-cli.md

저장소 (Repo): https://github.com/axledbetter/cadence

라이선스 및 사용 범위 (License and footprint)

MIT. 로컬 우선 (Local-first). 귀하의 API 키를 사용하여 귀하의 기기에서 실행됩니다. 호스팅된 에이전트 (hosted agent), 텔레메트리 (telemetry), 사용자당 구독 (per-seat subscription), "영업팀에 문의"와 같은 절차가 없습니다. 만약 귀하의 고용주가 노트북에서 npm install을 실행하고 제공자 API를 호출할 수 있다고 허용한다면, 귀하는 Cadence를 실행할 수 있습니다.

단일 모델이 모든 작업에 능숙한 척하지 않는 오픈 소스 코딩 하네스 (coding harness)를 기다려 오셨다면, 이것이 바로 제가 만든 것입니다. 풀 리퀘스트 (pull requests), 이슈 (issues), 그리고 회의적인 의견 모두 환영합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0