SDD-Harness는 Spec-Driven Development 워크플로우를 9개 에이전트로 분할하고 단계별로 최적의 모델을 선택하여 총 월 $12-15의 비용으로 운영되는 시스템입니다.
Overview
SDD-Harness는 소프트웨어 개발의 각 단계가 서로 다른 인지 능력을 요구한다는 통찰에 기반합니다. 초기 단계는 단순한 파일 매핑이나 컨텍스트 수집이 필요하고, 후속 단계는 깊은 추론과 정밀한 코드 생성이 필요합니다. 모든 단계에 프론티어 모델(Claude Opus, GPT-4 등)을 사용하는 것은 낭비입니다. SDD-Harness는 9개의 고유한 페이즈로 워크플로우를 나누고, 각 페이즈의 요구사항에 가장 적합한 모델을 할당합니다.
Background
기존의 AI 코딩 워크플로우는 단일 모델(주로 Claude 또는 GPT)에 모든 작업을 의존했습니다. 그러나 실제 개발 과정은 초기 탐색, 명세 작성, 설계, 구현, 검증 등 다양한 인지 부하를 가진 단계로 구성됩니다. Principal Architect가 대규모 .NET 8 마이크로서비스(약 600개 지점, 44,000개 문서)를 운영하며 토큰 비용 문제에 직면한 후, 불필요한 고급 모델 사용을 줄이기 위해 개발되었습니다.
How It Works
9개 페이즈와 모델 할당
-
sdd-init → DeepSeek V4 Flash (OpenCode Go)
- 목표: 프로젝트 초기 이해 구축. 저장소 매핑, 컨벤션 감지, 기술 식별, 컨텍스트 수집.
- 이유: 추론 거의 불필요. 속도와 컨텍스트 크기가 중요.
-
sdd-explore → Kimi K2.6 (OpenCode Go)
- 목표: 코드베이스 심층 탐색. 기존 구현 읽기, 의존성 추적, 테스트 스위트 분석, 패턴 식별.
- 이유: 대량 정보 효율적 처리, 에이전트 기능으로 동시 탐색 가능.
-
sdd-propose → GLM-5.1 (OpenCode Go)
- 목표: 접근 방식 평가. 대안 검토, 트레이드오프 고려, 방향 제안.
- 이유: 구조화된 추론과 기술적 의사결정에 강점.
-
sdd-spec → DeepSeek V4 Pro (High Reasoning)
- 목표: 공식 명세 작성. 모든 후속 단계의 기초.
- 이유: 품질이 가장 중요. 높은 추론 수준으로 모호함 방지.
-
sdd-design → DeepSeek V4 Pro (Medium Reasoning)
- 목표: 기술 설계. 컴포넌트, 클래스 구조, 책임, 인터페이스, 아키텍처 경계 정의.
- 이유: 어려운 결정은 명세 단계에서 이미 완료, 중간 추론으로 충분.
-
sdd-tasks → DeepSeek V4 Flash (OpenCode Go)
- 목표: 설계를 구조화된 실행 계획으로 변환. 의존성 순서가 있는 구현 태스크 생성.
- 이유: 일관성과 속도가 고급 추론보다 중요.
-
sdd-apply → DeepSeek V4 Pro (High Reasoning)
- 목표: 실제 코딩. 토큰 소비가 가장 많은 단계.
- 이유: 작은 실수가 비용 증가(추가 검토, 디버깅, 재작업)로 이어지므로 최고 품질 모델 사용.
-
sdd-verify → Qwen3-Coder 480B (OpenRouter)
- 목표: 독립적 검토. 구현을 명세와 비교, 검증 단계 실행, 생성 코드 검사, 불일치 탐지.
- 이유: 도구 호출 정확성(특히 쉘 호출)이 중요. 검증에서 실패한 쉘 호출 = 놓친 버그.
-
sdd-archive → DeepSeek V4 Flash (OpenCode Go)
- 목표: 완료된 작업 요약, 향후 작업을 위한 지식 저장.
- 이유: 기계적 작업, 광범위한 추론 불필요. 빠르고 저렴한 모델로 충분.
Orchestrator
Claude Sonnet 4.6 (OpenRouter): 코드가 아닌 게이트(gates)를 조정. 각 페이즈의 진입/진출 조건을 관리.
Key Ideas
- Per-phase model selection — 각 개발 단계의 인지 요구사항에 맞춰 모델을 할당함으로써 비용 대비 효율 극대화.
- Cost optimization — OpenCode Go 12-15/월.
- Frontier model sparing — 추론이 정말 필요한 단계(명세, 적용)에만 고급 모델 사용. 그 외 단계는 저비용 모델로 대체.
Examples / Use Cases
대규모 마이크로서비스 환경에서 새로운 기능을 추가할 때, SDD-Harness는 다음을 자동화합니다:
- 저장소 구조 파악 (sdd-init)
- 기존 구현 분석 (sdd-explore)
- 접근 방식 제안 및 평가 (sdd-propose)
- 상세 명세 작성 (sdd-spec)
- 기술 설계 생성 (sdd-design)
- 구현 태스크 분할 (sdd-tasks)
- 실제 코드 적용 (sdd-apply)
- 검증 및 테스트 (sdd-verify)
- 결과 요약 및 지식 저장 (sdd-archive)
Limitations / Considerations
- OpenCode Go 정액제 사용이 전제: $10/월로 특정 모델(GLM-5.1, Kimi K2.6, DS V4 Pro, DS V4 Flash)에 접근 가능.
- Qwen3-Coder 480B는 OpenRouter를 통해 별도 과금 (1.80/M output). 사용량이 적어 비용 부담 적음.
- Claude Sonnet 4.6 오케스트레이터는 게이트 조정만 수행, 토큰 소비 낮음.
- Kimi K2.6은 reasoning tiers(low/med/high) 대신 Thinking/Instant 모드 사용.
- GLM-5.1은 종합 벤치마크에서 Kimi보다 낮지만, 반성적(reflective) 단계(propose, spec critique)에서 실제 성능 우수.
- Flash를 init/tasks/archive에 사용하는 것은 타협이 아님 — 해당 단계는 추론 이점이 없음.