tdd-obra

Test-Driven Development methodology enforcing RED-GREEN-REFACTOR cycle. Use for writing tests first, preventing regression, and ensuring code correctness. Based on obra/superpowers.

5 stars

Best use case

tdd-obra is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Test-Driven Development methodology enforcing RED-GREEN-REFACTOR cycle. Use for writing tests first, preventing regression, and ensuring code correctness. Based on obra/superpowers.

Teams using tdd-obra should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/tdd-obra/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/development/tdd-obra/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/tdd-obra/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How tdd-obra Compares

Feature / Agenttdd-obraStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Test-Driven Development methodology enforcing RED-GREEN-REFACTOR cycle. Use for writing tests first, preventing regression, and ensuring code correctness. Based on obra/superpowers.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Test-Driven Development (TDD) Skill

## Overview

This skill enforces strict test-first development methodology. The core principle: "Write the test first. Watch it fail. Write minimal code to pass." If you didn't watch the test fail, you don't know if it tests the right thing.

## Quick Start

1. **Write one failing test** - Minimal test demonstrating desired behavior
2. **Verify RED** - Run test, confirm it fails (not errors)
3. **Write minimal code** - Just enough to pass
4. **Verify GREEN** - All tests pass
5. **Refactor** - Clean up while maintaining green

## When to Use

- Starting new features or modules
- Fixing bugs (write failing test reproducing bug first)
- Refactoring existing code
- Any production code development
- Code review verification

## Iron Law

**Produce no production code without a failing test first.**

Any code written before tests must be deleted entirely - no exceptions for keeping it as reference material.

## Red-Green-Refactor Cycle

### RED Phase

Write one minimal test demonstrating desired behavior:
- Use clear, descriptive test names
- Test real behavior, not mocks
- One assertion focus per test

### Verify RED (Mandatory)

Run tests and confirm:
- Test fails (not errors)
- Failure message matches expectations
- Failure occurs because feature is missing, not due to typos

### GREEN Phase

Write simplest code passing the test:
- No over-engineering or feature additions
- No refactoring other code
- Implement only what satisfies the test

### Verify GREEN (Mandatory)

Confirm:
- Target test passes
- All existing tests remain passing
- No errors or warnings appear

### REFACTOR Phase

After green only, clean up implementation:
- Remove duplication
- Improve naming
- Extract helpers
- Maintain all passing tests

## Why Tests-After Fails

| Approach | Validates |
|----------|-----------|
| Tests-first | "What should this do?" |
| Tests-after | "What did I build?" |

Tests written after code:
- Pass immediately, proving nothing
- May test the wrong thing
- Verify implementation rather than behavior
- Miss edge cases forgotten during coding
- Never demonstrate the test catching real bugs

## Common Rationalizations (All Invalid)

These are "Red Flags" requiring complete restart with proper TDD:
- "Too simple to test"
- "I'll test after"
- "Already manually tested"
- "Tests slow me down"
- "I know this works"

## Bug Fix Pattern

```
1. Write failing test reproducing the bug
2. Verify test fails for expected reason
3. Implement minimal fix
4. Verify all tests pass
5. Refactor if needed
6. Commit with test and fix together
```

## Verification Checklist

Before completing work:
- [ ] Every function has a test
- [ ] Each test was watched failing first
- [ ] Tests failed for expected reasons
- [ ] Minimal code passes each test
- [ ] All tests pass without warnings
- [ ] Tests employ real code with minimal mocking
- [ ] Edge cases and errors are covered

## Best Practices

### Do

1. Write test name as behavior specification
2. Use AAA pattern: Arrange, Act, Assert
3. Test edge cases explicitly
4. Keep tests independent
5. Run full suite frequently
6. Commit test and implementation together

### Don't

1. Write tests after implementation
2. Test implementation details
3. Use excessive mocking
4. Skip verification steps
5. Batch multiple behaviors in one test
6. Ignore flaky tests

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| Test passes immediately | Wrote code first | Delete code, start over with test |
| Test errors instead of fails | Syntax or setup issue | Fix test setup, not production code |
| Tests pass but feature broken | Testing wrong thing | Review test assertions |
| Flaky tests | Async or state issues | Fix test isolation |

## Metrics

| Metric | Target | Description |
|--------|--------|-------------|
| Test-First Rate | 100% | Tests written before code |
| RED Verification | 100% | All tests watched failing |
| Coverage | >80% | Line coverage baseline |
| Critical Path Coverage | 100% | Auth, payments, security |
| Test Independence | 100% | No test order dependencies |

## Related Skills

- [systematic-debugging](../systematic-debugging/SKILL.md) - Debug with methodology
- [writing-plans](../planning/writing-plans/SKILL.md) - Plan implementations
- [subagent-driven](../subagent-driven/SKILL.md) - Structured development

---

## Version History

- **1.0.0** (2026-01-19): Initial release adapted from obra/superpowers

Related Skills

test-oversized-skill

5
from vamseeachanta/workspace-hub

A test fixture skill that exceeds 200 lines with multiple H2/H3 sections for split testing.

interactive-report-generator

5
from vamseeachanta/workspace-hub

Generate interactive HTML reports with Plotly visualizations from data analysis results. Supports dashboards, charts, and professional styling.

data-validation-reporter

5
from vamseeachanta/workspace-hub

Generate interactive validation reports with quality scoring, missing data analysis, and type checking. Combines Pandas validation, Plotly visualization, and YAML configuration for comprehensive data quality reporting.

agent-os-framework

5
from vamseeachanta/workspace-hub

Generate standardized .agent-os directory structure with product documentation, mission, tech-stack, roadmap, and decision records. Enables AI-native workflows.

OrcaFlex Specialist Skill

5
from vamseeachanta/workspace-hub

```yaml

repo-ecosystem-hygiene

5
from vamseeachanta/workspace-hub

Interpret the daily read-only repo ecosystem hygiene audit and route remediation through approved workflows.

domain-knowledge-sweep

5
from vamseeachanta/workspace-hub

Systematic multi-source research of an engineering domain. Spawns parent issue → 6 research subissues (Standards, Academic, Industry, LinkedIn-marketing, Code-audit, Synthesis) → gap implementation subissues. Replaces LinkedIn-only extraction with defensible comprehensive sourcing.

subagent-write-verification

5
from vamseeachanta/workspace-hub

Independently verify subagent-claimed file writes with filesystem and git checks before treating the artifact as real, before committing it, and before referencing the path in downstream prompts.

git-operation-serialization-preflight

5
from vamseeachanta/workspace-hub

Before any commit, stash, merge, reset, rebase, or checkout in a multi-agent or shared-checkout environment, run a bounded preflight to detect active git writers and stale index/config locks, then serialize the mutating step under a single-writer guarantee.

public-knowledge-graph-governance

5
from vamseeachanta/workspace-hub

Maintain public-safe knowledge graph artifacts for llm-wiki and similar markdown knowledge bases. Use when changing graph generators, validators, schema docs, weekly freshness checks, or public/private source-scope boundaries.

llm-wiki-weekly-freshness

5
from vamseeachanta/workspace-hub

Class-level governance workflow for keeping llm-wiki-style markdown knowledge bases current, public-safe, graph/index-valid, and useful for code development. Use when reviewing llm-wiki architecture/content, scanning new LLM concepts, maintaining public knowledge graphs, producing an issue roadmap, or running recurring freshness cadence.

llm-wiki-source-extraction-coverage

5
from vamseeachanta/workspace-hub

Doc-type-aware extraction contract for llm-wiki source ingestion with measurable coverage and source-anchored traceability. Use when (1) ingesting a PDF, DOCX, XLSX, PPTX, HTML, or scanned-image source into a wiki `sources/` page, (2) computing the pre-extraction estimate (what fraction of the source we expect to recover) and post-extraction yield (what fraction we actually recovered), (3) anchoring wiki claims back to specific page / paragraph / cell / slide positions in the source so a reviewer can re-verify or revise against the actual document, (4) deciding whether OCR fallback or manual transcription is needed. Codifies workspace-hub's existing OCR fallback chain and python-docx / openpyxl / trafilatura patterns into a format-specific routing table. Companion to research/llm-wiki-page-shape-contract (Rule 7 input-layer pages) and research/llm-wiki — this skill is the defense against silent extraction failure.