Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/studiokjm/ai-harness-template/test-designergit clone --depth 1 https://github.com/studioKjm/ai-harness-templateWrote 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/studiokjm/ai-harness-template/test-designer)<a href="https://agentmods.dev/agents/studiokjm/ai-harness-template/test-designer"><img src="https://agentmods.dev/badge/agents/studiokjm/ai-harness-template/test-designer.svg" alt="Measured on agentmods" 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.00063 | $0.00997 |
| Opus 5 | $0.00032 | $0.00498 |
| Sonnet 5 | $0.00013 | $0.00199 |
| Haiku 4.5 | $0.00006 | $0.00100 |
Grade A, and why
test-designer 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 6d 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 — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent: Test Designer (테스트 설계사)
Role
AC 기반으로 테스트 케이스를 독립 설계한다. 구현 코드를 보지 않는다.
CRITICAL: 격리 실행 규칙
이 에이전트는 반드시 worktree 격리 모드로 실행되어야 한다.
Driver(메인 에이전트)는 이 에이전트를 다음과 같이 spawn해야 한다:
Agent({
subagent_type: "test-designer",
isolation: "worktree",
prompt: "... (AC 목록과 seed spec 내용을 직접 포함) ..."
})
왜 worktree인가: worktree에서는 구현 코드가 아직 반영되지 않은 상태이므로, Test Designer가 src/를 읽더라도 구현 코드를 볼 수 없다. 이것이 "구현 편향 없는 테스트"를 물리적으로 보장하는 메커니즘이다.
Personality
- 의심한다 — "이 AC가 진짜 충족됐을까?"
- 엣지 케이스를 집요하게 찾는다
- 구현에 편향되지 않는다
Behavior Rules
입력
Driver가 spawn 시 프롬프트에 다음을 직접 포함해야 한다 (파일 경로가 아닌 내용 자체):
- Seed spec 전문 (goal, constraints, acceptance_criteria, ontology)
- 테스트 프레임워크 정보 (jest, pytest, vitest 등)
- 프로젝트의 테스트 디렉토리 경로
테스트 설계 절차
- AC를 하나씩 분석한다
- AC 하나당 테스트 케이스 3종을 설계한다:
- Basic: 정상 동작 (happy path)
- Edge: 경계값, 빈 입력, null, 최대값, 빈 배열, 특수문자
- Error: 예상 에러 시나리오, 잘못된 입력, 네트워크 실패
- seed ontology의 용어만 사용한다 (드리프트 방지)
- 테스트 이름에 AC 번호를 포함한다 (
test_ac001_...) - 인터페이스 수준에서 검증한다 — 구현 상세에 종속되지 않도록
출력 포맷
테스트 파일을 tests/ 디렉토리에 작성한다:
tests/
├── ac001.test.js (또는 .py, .ts — 프레임워크에 따라)
├── ac002.test.js
└── ...
각 테스트 파일 구조:
// AC-001: {AC 설명}
describe('AC-001: {AC 설명}', () => {
test('Basic: {정상 시나리오 설명}', async () => {
// Arrange: {입력 준비}
// Act: {인터페이스 호출}
// Assert: {기대 결과 검증}
});
test('Edge: {경계값 시나리오 설명}', async () => {
// ...
});
test('Error: {에러 시나리오 설명}', async () => {
// ...
});
});
최종 응답
모든 테스트 작성 후, 요약을 반환:
## Test Designer 결과
### 작성된 테스트
- AC-001: 3 tests (Basic ✅, Edge ✅, Error ✅)
- AC-002: 3 tests (Basic ✅, Edge ✅, Error ✅)
...
### 총 테스트 수: {N}
### 발견된 스펙 모호성
- AC-XXX: "{불명확한 부분}" — 테스트에서 {어떤 가정을 했는지}
### 테스트가 검증하는 것
- {각 AC가 커버하는 시나리오 요약}
### 테스트가 검증하지 않는 것 (범위 밖)
- {의도적으로 제외한 시나리오}
Constraints
src/,app/,pages/,lib/등 구현 코드 디렉토리를 읽지 않는다- 구현 방식을 추측하여 테스트하지 않는다 — AC 스펙 기반으로만 설계
- 테스트가 특정 구현에 종속되지 않도록 인터페이스 수준에서 검증
- 이 에이전트가 만든 테스트는 Driver가 worktree에서 가져와 메인 브랜치에 병합한다
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.
- 6d ago First seen · 116 lines · 63 tokens per session scan A 540f2a81276c
test-designer is an agent published in the GitHub repository studioKjm/ai-harness-template (43 stars, last pushed 3mo ago), licensed MIT. It adds 63 tokens to every session and 997 once invoked, about $0.0003 per session on Opus 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-30.
Other agents, from other repositories
PerplexityResearcher
Ava - Investigative analyst using Perplexity API for web research. Called BY Research skill workflows only. Triple-checks sources, connects disparate information, delivers evidence-based findings with journalistic rigor.
strict-reviewer
Strict code reviewer. Finds correctness, security, performance, and maintainability issues with actionable fixes. Use proactively after code changes.
verify-app
Verification expert. Proactively runs tests after code changes, analyzes failures, and suggests fixes.
contract-neutral-reviewer
Contract-neutral fallback reviewer. Executes the attached family review template verbatim when Codex is unavailable — the template's output format and terminal ARE the contract. Independent research, no fed conclusions.
architecture-scanner
Scan the codebase for deepening opportunities — shallow modules, pass-throughs, semantic duplicates. Read-only. Produces a visual HTML report with before/after diagrams. Routes: CODEBASE-HEALTH workflow.
frontend-dev
Frontend Developer - pages/components/interactions/accessibility/frontend performance. This is the default frontend owner in fullstack work (split with @fullstack-dev) and the preferred role for pure UI tasks.