Yadda 3.0.0: AI 에이전트 시대의 BDD
Yadda 3.0.0: BDD in the Age of AI Agents
TL;DR Highlight
Claude Code로 Yadda 3.0을 하루 만에 내고, 실행 가능한 명세의 가치를 말한다
Who Should Read
여러 코딩 에이전트에 일을 맡기면서 결과가 요구사항대로인지 검증할 방법이 고민인 개발자
Core Mechanics
- Yadda 3.0은 대부분 Claude가 썼다
- Claude Code with Opus 4.8로 현대화 작업을 했고 사람의 개입은 아주 적었다.
- 착수부터 npm 배포까지 약 하루였고 저자는 그동안 다른 일을 병행했다.
- 작업을 단계별로 쪼갰다
- 불필요한 기능 제거, 툴체인 갱신, 기계적 포맷팅, 소스 현대화, API 변경 탐색, 예제·CI, 문서·TypeScript 정의 순서였다.
- 각 단계는 구현 전에 먼저 계획했다.
- 코드와 테스트를 같은 단계에서 고치지 않았다
- 에이전트가 둘을 동시에 바꾸면 '정답'의 기준까지 바꿀 수 있어 테스트 통과의 증거 가치가 약해진다.
- 기존의 탄탄한 테스트 스위트가 바깥 제약으로 작동했다.
- 병목은 코딩이 아니라 사람의 조율이다
- 저자는 작업 3개를 편하게, 가끔 4~5개를 동시에 굴릴 수 있었다.
- 그 이상은 에이전트별 맥락·결정·리뷰 순서를 놓쳤고, 오케스트레이션이 다음 핵심 계층이라고 본다.
- 실행 가능한 명세는 에이전트의 계약이 된다
- 위키는 시스템이 실제로 그렇게 동작하는지 알려주지 못하지만 실행 가능한 명세는 알려준다.
- 구현·테스트·리뷰 에이전트와 CI가 같은 명세를 쓸 수 있다.
Community Reactions
- BDD에서 왜 자연어를 쓰는지 모르겠다는 의견
- 추상화 계층 자체는 좋지만 자연어는 비싸고 이상한 선택으로 보인다는 반응이다.
- 비개발자가 읽고 쓰는 이점도 실제로는 전통적 DSL에서 한 번 본 게 전부라고 한다.
- AI 코드베이스에 BDD를 붙여 봤더니 대체로 긍정적이었다는 경험
- 엔지니어링한 코드베이스와 바이브코딩한 코드베이스 두 곳에 적용했다.
- 고수준 API·UI 테스트가 DB 접근 표준화와 단일 API SDK 같은 첫 정리를 강제했다고 한다.
- 명세에서 시작하는 흐름이 뱀이 제 꼬리를 무는 격일 수 있다는 의견
- 토론을 BDD로 바꿔 AI의 레일로 쓰는 아이디어가 기발하거나 순환일 수 있지만 해볼 가치는 있다는 반응이다.
How to Apply
- 회의록 하나를 후보 명세로 바꿔 보기
- 오늘 요구사항 문서나 회의 메모 하나를 골라 LLM에게 Given/When/Then 시나리오 초안으로 바꾸게 하라.
- 용어가 도메인 언어와 맞는지 직접 고쳐 확정하라.
- 에이전트 작업에서 코드와 테스트 수정을 분리하기
- 리팩터링 작업을 시킬 때 프로덕션 코드 변경 단계와 테스트 변경 단계를 나눠 지시하라.
- 코드 변경 단계에서는 기존 테스트를 고치지 말라는 규칙을 프롬프트에 넣어라.
- 대규모 작업을 단계별 에픽으로 쪼개기
- 제거, 툴체인, 포맷팅, 소스 변경, 문서 순으로 단계를 나누고 각 단계 전에 계획을 먼저 받아라.
- 기계적 포맷팅은 동작 변경과 따로 커밋하라.
- 병렬 에이전트는 3개부터 시작하기
- git worktree로 에이전트마다 작업 사본을 분리하라.
- 맥락을 놓치기 시작하는 지점을 기록해 동시에 돌릴 수를 정하라.
Try It
# Claude 또는 ChatGPT 대화창에 붙여넣기 (원문 아이디어의 간이 버전: 요구사항 → 실행 가능한 명세 초안)
아래 요구사항을 BDD 명세 초안으로 바꿔줘. 도메인 용어를 일관되게 쓰고, 절차적 스크립트가 아니라 의도를 설명하는 문장으로 써줘. 형식은 GitHub-flavoured Markdown이야.
# Feature: 기능 이름
## Scenario: 시나리오 이름
- 문장 목록
요구사항:
{{회의록 또는 요구사항}}
마지막에 용어가 일관되지 않거나 모호한 부분을 따로 목록으로 알려줘.
이어서 해 볼 것: 확정한 명세를 구현 에이전트에게 주고, 명세를 만족하는 코드만 쓰고 테스트는 수정하지 말라고 지시해 봐.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓