Borrowing it
Nothing to install: this file belongs to recca0120/code-quest. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/recca0120/code-quest/main/.claude/skills/fixture-driven-tdd/SKILL.mdgit clone --depth 1 https://github.com/recca0120/code-questWrote 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/skills/recca0120/code-quest/fixture-driven-tdd)<a href="https://agentmods.dev/skills/recca0120/code-quest/fixture-driven-tdd"><img src="https://agentmods.dev/badge/skills/recca0120/code-quest/fixture-driven-tdd/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/skills/recca0120/code-quest/fixture-driven-tdd"><img src="https://agentmods.dev/badge/skills/recca0120/code-quest/fixture-driven-tdd.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.00053 | $0.00616 |
| Opus 5.5 | $0.00021 | $0.00246 |
| Sonnet 5.5 | $0.00011 | $0.00123 |
| Haiku 4.5 | $0.00005 | $0.00062 |
Grade A, and why
fixture-driven-tdd 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 2mo 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 — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fixture-Driven TDD
Principle
Test data must come from real CLI output, never guessed. Use DB exports or
capture-fixture.sh.
Fixture Locations
apps/summoner/src/__fixtures__/claude/
├── real/ # 40+ files — DB exports & real CLI recordings
└── synthetic/ # 18 files — hand-crafted for untriggerable events
Fixtures are auto-loaded by TEMPLATES in apps/summoner/src/test/fake-claude.ts.
Workflow
1. Collect fixture
# Real CLI capture
scripts/capture-fixture.sh <name> [prompt]
# Or from DB
mysql -u root -h 127.0.0.1 -P 3306 code_quest -N -e \
"SELECT raw FROM raw_entries WHERE raw LIKE '{\"type\":\"<event_type>\"%' LIMIT 1;"
DB connection in apps/server/.env → DATABASE_URL.
2. Add to fixtures
Save to apps/summoner/src/__fixtures__/claude/real/<name>.jsonl (or synthetic/ if hand-crafted).
3. Add segment builder
In apps/summoner/src/test/fake-claude.ts, add to segments object:
myEvent(param: string): string {
const line = JSON.parse(TEMPLATES.MY_EVENT);
line.some_field = param;
line.uuid = `fake-my-event-${++_seq}`;
return JSON.stringify(line);
}
4. Write test (RED)
import { segments as s } from '@code-quest/summoner/test';
// Parser test
const parsed = adapter.parseLine(s.myEvent('test'));
expect(parsed.status).toBe('ok');
// Pipeline test
const claude = createFakeSummoner().claude();
const channelId = await claude.initialize(s.init('sess'));
await claude.emit(s.myEvent('test'));
expect(claude.received('message:my_event')).toHaveLength(1);
5. Implement (GREEN) → Refactor
Anti-patterns
- Never hand-write JSON that pretends to be CLI output
- Never use
inline JSONin tests — usesegments.*()builders - Synthetic fixtures must be clearly marked and tracked for replacement
Reference
- Capture script:
scripts/capture-fixture.sh - Tracking:
docs/fixture-capture-tracking.md - Segment builders:
apps/summoner/src/test/fake-claude.ts(60+ builders)
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.
- 2mo ago First seen · 83 lines · 53 tokens per session scan A 17d640c727f4
fixture-driven-tdd is a skill published in the GitHub repository recca0120/code-quest (11 stars, last pushed 4mo ago), licensed MIT. It adds 53 tokens to every session and 616 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-30.
Other skills, from other repositories
engram-testing-coverage
TDD and coverage standards for Engram. Trigger: When implementing behavior changes in any package.
principle-test-behavior-not-implementation
Apply when you write, change, or keep a test. Assert what the code's users can observe, so that the test fails when that behavior breaks and keeps passing when only the internals change.
conductor-implement
Execute tasks from a track's implementation plan following TDD workflow.
tdd
This skill should be used when the user wants to implement features or fix bugs using test-driven development. Enforces the RED-GREEN-REFACTOR cycle with vertical slicing, context isolation between test writing and implementation, human checkpoints, and auto-test feedback loops. Uses multi-agent orchestration with the…
mobiai-mobile-tdd
You MUST use this before writing any implementation code for a mobile feature, bug fix, refactor, or behavior change. Tests come before implementation — no exceptions.
iterative-development
TDD iteration loops using Claude Code Stop hooks - runs tests after each response, feeds failures back automatically.