Test-Driven Development workflow. Tests BEFORE code. Red-green-refactor cycle. Triggers: tdd, test-first, test-driven, red-green, coverage.
From kernelnpx claudepluginhub ariaxhan/kernel-claude --plugin kernelThis skill is limited to using the following tools:
reference/tdd-research.mdEnables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
<core_principles>
<mocking_patterns>
<!-- Supabase -->jest.mock('@/lib/supabase', () => ({
supabase: {
from: jest.fn(() => ({
select: jest.fn(() => ({
eq: jest.fn(() => Promise.resolve({
data: [{ id: 1, name: 'Test' }],
error: null
}))
}))
}))
}
}))
<!-- Redis -->
jest.mock('@/lib/redis', () => ({
searchByVector: jest.fn(() => Promise.resolve([
{ slug: 'test', similarity_score: 0.95 }
])),
checkHealth: jest.fn(() => Promise.resolve({ connected: true }))
}))
<!-- OpenAI -->
jest.mock('@/lib/openai', () => ({
generateEmbedding: jest.fn(() => Promise.resolve(
new Array(1536).fill(0.1)
))
}))
</mocking_patterns>
<test_organization>
src/
components/
Button/
Button.tsx
Button.test.tsx # Unit tests colocated
app/
api/
users/
route.ts
route.test.ts # Integration tests colocated
e2e/
auth.spec.ts # E2E tests separate
checkout.spec.ts
</test_organization>
<anti_patterns> <block id="code_before_test">Writing code then tests validates bugs. Test first or not at all.</block> <block id="testing_implementation">Test behavior, not structure. Refactoring should not break tests.</block> <block id="multiple_asserts">One behavior per test. If you need "and", split the test.</block> <block id="brittle_selectors">Use semantic selectors ([data-testid], role), not CSS classes.</block> <block id="test_dependency">Each test must be independent. No shared state between tests.</block> </anti_patterns>
<coverage_config>
{
"jest": {
"coverageThreshold": {
"global": {
"branches": 80,
"functions": 80,
"lines": 80,
"statements": 80
}
}
}
}
</coverage_config>
<on_complete> agentdb write-end '{"skill":"tdd","tests_written":<N>,"coverage":"<X%>","cycle":"red->green->refactor","failures_caught":["<list>"]}'
Record test count, coverage achieved, and what edge cases the tests catch. </on_complete>
</skill>