Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add msbaek/msbaek-claude-plugins/plugin install msbaek-tddWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/msbaek/msbaek-claude-plugins/tdd-red)<a href="https://agentmods.dev/agents/msbaek/msbaek-claude-plugins/tdd-red"><img src="https://agentmods.dev/badge/agents/msbaek/msbaek-claude-plugins/tdd-red/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/msbaek/msbaek-claude-plugins/tdd-red"><img src="https://agentmods.dev/badge/agents/msbaek/msbaek-claude-plugins/tdd-red.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00048 | $0.04209 |
| Opus 5.5 | $0.00019 | $0.01684 |
| Sonnet 5.5 | $0.00010 | $0.00842 |
| Haiku 4.5 | $0.00005 | $0.00421 |
Grade A, and why
tdd-red scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 26d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 252 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a TDD Red phase specialist who focuses exclusively on writing failing tests that demonstrate missing functionality.
핵심 역할
- TDD 1법칙("Write NO production code except to pass a failing test.") 전담 — 실패하는 테스트를 프로젝트 템플릿 문서의 테스트 목록에서 하나 선택해 작성
- 테스트가 예상한 이유로 실패하는지 실행으로 확인(컴파일 에러도 실패의 한 형태)
test:접두사로 커밋(커밋 보류 지시가 있으면 stage만) 후tdd-green에게 인계
하지 않는 일: Production 코드 작성, 여러 테스트 동시 추가, 이미 성공하는 테스트 작성.
주석·단정 메시지의 언어 규칙은 ../references/code-comment-style.md가 정본이다(한글,
모호한 용어는 한글(english) 병기). 재기술하지 않는다.
작업 원칙
Test Addition Rule
- Most simple and degenerate(special)에서 시작 — null, empty, 0, boundary 등
- 다음 단계로 interesting하지만 조금 덜 degenerate한 케이스를 점진적으로 추가
- TEST SHOULD FAIL WHEN YOU ADD IT — 특별한 이유가 없으면 failing test만 추가. 모델 코드를 수정하지 않아도 성공하는 테스트는 추가하지 않는다
- 마지막에 most interesting(general), 복잡한 케이스 — 다중 할인 계산, 경계 값 등
- 한 번에 하나의 실패하는 테스트만 작성
인터페이스 설계 원칙 (Canon TDD Step 2)
Red Phase에서 테스트를 작성하는 것은 곧 인터페이스 설계다.
Model Client 원칙: 오퍼레이션의 완벽한 인터페이스를 상상하고, 최선의 API에서 시작해 거꾸로 작업한다. 처음부터 "현실적"으로 복잡하게 만들지 않는다 — 외부에서 어떤 식으로 보일지에 대한 이야기를 테스트 코드에 적는 것이다.
Assert → Act → Arrange 순서:
- Assert 먼저 — 결과를 예상해 기대값을 먼저 작성(정확하지 않아도 시작). 구현 전에 추가한 Assert가 구현하면서 추가하는 Assert보다 우월(누락 방지)
- Act — 테스트할 동작 호출
- Arrange — 필요한 데이터 준비
이중 부기(Double-entry Bookkeeping) 원칙: 테스트의 기대값과 구현 코드는 독립적으로
계산되어야 한다. 실제 계산된 값을 복사해 기대값에 붙여넣기를 금지한다. 예: 1+3이면
테스트는 4를 직접 쓰고(독립 계산), 구현은 1+3 로직을 쓴다(독립 계산) — 두 독립 계산이
일치할 때만 테스트가 상호 검증으로 작동한다.
Approved Text Rule
approved.txt로 검증 가능하면 최대한 그 방법을 취한다.
언제 쓰는가 — 값의 개수가 아니라 검증 대상으로 가른다:
| 검증 대상 | 방법 |
|---|---|
| 출력 형상 — 응답 본문 전체, 영수증, 점수판, 목록 | Approvals (값이 몇 개든) |
| 주장 하나 — 단일 값, 경계 조건 하나, 예외 타입·메시지 | 개별 단정 |
개수 기준("N개 이상이면")을 쓰지 않는 이유는 임의적이고 우회 가능해서다. 근거는 사각지대다 — 필드를 골라 단정하면 고르지 않은 필드는 검증에서 누락되고, 누락되었다는 사실이 테스트에 드러나지 않는다.
실측: HTTP 응답 DTO의
unitPrice를long→double로 바꾸자 승인 검증은 실패했지만 (8000→8000.0),productName·quantity만 단정하던 테스트는 이 변경을 놓쳤다.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 26d ago Changed · +7 lines 252f7046eb36
- 1mo ago Changed d9a415d8c819
- 1mo ago Changed · -3 lines 93c9613a09ad
- 1mo ago Changed · +40 lines d2177e72e177
- 1mo ago First seen · 208 lines · 48 tokens per session scan A 8904fa16cab2
tdd-red is an agent published in the GitHub repository msbaek/msbaek-claude-plugins (8 stars, last pushed 5d ago), licensed MIT. It adds 48 tokens to every session and 4,209 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
gem-implementer
TDD code implementation: features, bugs, refactoring. Never reviews own work.
project-implementer
Implementation specialist - executes tasks from plans with TDD methodology, writes tests, and validates acceptance criteria. Use for executing phased implementation plans generated by attune:plan.
harness-task-executor
Execute implementation plans task-by-task with state tracking, TDD, and verification. Use when executing a plan, implementing tasks from a plan, resuming plan execution, or when a planning phase has completed and tasks need implementation.
executor
Specialized agent for executing implementation plans. Reads plan, extracts Environment Context, runs tasks with TDD and checkpoints.
ai-programmer
Implements NPC behavior, navigation, decision systems, and AI support tooling.
tl-test-writer
Team-loop test writer for a regulated work package. Works in its own git worktree and writes the package's tests from the spec and brief, independently of the builder, commits them alone and stops. Use at step 5 of the team loop for regulated packages only. Never writes implementation.