Skip to content
Agentmart
Submit a tool
This entry duplicates test-driven-development, which is the one we list in search.

test-driven-development

Write software using the RED-GREEN-REFACTOR cycle for reliable, well-tested code

Skill by taracodlabs

IndexedApache-2.0★ 863
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/taracodlabs-test-driven-development-07a4bd

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Write software using the RED-GREEN-REFACTOR cycle for reliable, well-tested code

Use cases: testing, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
test-driven-development
Description
Write software using the RED-GREEN-REFACTOR cycle for reliable, well-tested code
License
Apache-2.0
Instructions
156 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • skill.json

SKILL.md (first lines)

# Test-Driven Development (TDD)

Use the RED-GREEN-REFACTOR cycle to write reliable, well-tested software. Write tests first, then write the minimal code to pass them, then clean up.

## When to Use

- User wants to implement a new function or module correctly
- User wants to ensure edge cases are handled before they become bugs
- User is refactoring and wants a safety net
- User wants tests for business-critical logic
- User wants to document behavior through executable tests

## How to Use

### The TDD cycle

```
RED    → Write a failing test for the behavior you want
GREEN  → Write the minimum code to make the test pass
REFACTOR → Clean up the code without breaking tests
Repeat for each small behavior increment
```

### Phase 1: RED — Write a failing test first

Write the test before the implementation. It must fail to prove the test works.

```python
# test_calculator.py — write this BEFORE calculator.py
import pytest
from calculator import add

def test_add_two_positive_numbers():
  assert add(2, 3) == 5

def test_add_negative_number():
  assert add(-1, 5) == 4

def test_add_floats():
  assert abs(add(0.1, 0.2) - 0.3) < 1e-9
```

Run the tests — they should fail with `ModuleNotFoundError` or `ImportError`:

```powershell
pytest test_calculator.py -v
# Expected: FAILED (module not found)
```

### Phase 2: GREEN — Minimal implementation to pass

Write only enough code to make the tests pass — nothing more.

```python
# calculator.py
def add(a, b):
  return a + b
```

```powershell
pytest test_calculator.py -v
# Expected: 3 PASSED
```

### Phase 3: REFACTOR — Improve code quality

Clean up implementation and tests while keeping all tests green.

```python
# calculator.py — add type hints and docstring
def add(a: float, b: float) -> float:
  """Return the sum of a and b."""
  return a + b
```

```powershell
pytest test_calculator.py -v  # must still pass after refactor
```

### Write tests with pytest (Python)

```python
# Parametrize for multiple cases
@pytest.mark.parametrize("a,b,expected", [
  (2, 3, 5),
  (-1, 5, 4),
  (0, 0, 0),
  (1.5, 2.5, 4.0),
])
def test_add(a, b, expected):
  assert add(a, b) == expected

# Test exceptions
def test_add_rejects_string():
  with pytest.raises(TypeError):
    add("hello", 2)
```

### Write tests with Vitest / Jest (TypeScript / JavaScript)

```typescript
// calculator.test.ts
import { describe, it, expect } from 'vitest'
import { add } from './calculator'

describe('add()', () => {
  it('adds two positive numbers', () => {
    expect(add(2, 3)).toBe(5)
  })

  it('handles negative numbers', () => {
    expect(add(-1, 5)).toBe(4)
  })

  it('throws on non-number input', () => {
    expect(() => add('a' as any, 2)).toThrow()
  })
})
```

From taracodlabs/aiden, Apache-2.0.

More from taracodlabs/aiden

Signals

Stars
863
Forks
150
Open issues
12
Last commit (this folder)
May 3, 2026 (5 months ago)
Last release
Oct 19, 2026 (10 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from taracodlabs

Cite this page

test-driven-development skill. Agent Mart. https://agentmart.dev/skills/taracodlabs-test-driven-development-07a4bd (last updated 2026-10-24)